|What type of supernodes we want. |
|int||ccolumn_dfs (const int m, const int jcol, int *perm_r, int *nseg, int *lsub_col, int *segrep, int *repfnz, int *xprune, int *marker, int *parent, int *xplore, GlobalLU_t *Glu)|
-- SuperLU routine (version 3.0) -- Univ. of California Berkeley, Xerox Palo Alto Research Center, and Lawrence Berkeley National Lab. October 15, 2003
Copyright (c) 1994 by Xerox Corporation. All rights reserved.
THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY EXPRESSED OR IMPLIED. ANY USE IS AT YOUR OWN RISK.
Permission is hereby granted to use or copy this program for any purpose, provided the above notices are retained on all copies. Permission to modify the code and to distribute modified code is granted, provided the above notices are retained, and a notice that the code was modified is included with the above copyright notice.
|int ccolumn_dfs||(||const int||m,|
Purpose ======= CCOLUMN_DFS performs a symbolic factorization on column jcol, and decide the supernode boundary.
This routine does not use numeric values, but only use the RHS row indices to start the dfs.
A supernode representative is the last column of a supernode. The nonzeros in U[*,j] are segments that end at supernodal representatives. The routine returns a list of such supernodal representatives in topological order of the dfs that generates them. The location of the first nonzero in each such supernodal segment (supernodal entry location) is also returned.
Local parameters ================ nseg: no of segments in current U[*,j] jsuper: jsuper=EMPTY if column j does not belong to the same supernode as j-1. Otherwise, jsuper=nsuper.
marker2: A-row --> A-row/col (0/1) repfnz: SuperA-col --> PA-row parent: SuperA-col --> SuperA-col xplore: SuperA-col --> index to L-structure
Return value ============ 0 success; > 0 number of bytes allocated when run out of space.