71 const pastix_graph_t *subgraph,
92 extendint_Init( &vec, (sqrt(n)+1) * pastix_imax( distance, maxwidth ) * 2 );
96 colptr = graph->colptr;
101 for (ip=fnode; ip<lnode; ip++, subvert++) {
106 *subvert = -maxdepth-1;
111 while( d < distance ) {
115 for (jj = colptr[i ]-baseval;
116 jj < colptr[i+1]-baseval; jj++) {
118 j = rows[jj]-baseval;
127 if ( lvl <= sn_level ) {
135 depth = sn_level - lvl;
136 *subvert = pastix_imax( depth, *subvert );
152 if ( maxwidth > 0 ) {
156 sortptr[0] = subvertlvl;
158 sortptr[2] = order->
peritab + fnode;
160 qsort3IntAsc( sortptr, n );
165 assert( (j >= 0) && (j < n) );
170 memcpy( subvertlv2, subvertlvl, n *
sizeof(
pastix_int_t) );
172 colptr = subgraph->colptr;
173 rows = subgraph->rowptr;
174 maxdepth = -maxdepth;
180 for (ip=n-1; ip>=0; ip--) {
181 if ( subvertlv2[ip] < maxdepth ) {
192 while( d < maxwidth ) {
195 assert( subvertlvl[ip] == subvertlvl[ perm[i] ] );
197 for (jj = colptr[i ];
198 jj < colptr[i+1]; jj++) {
204 if ( subvertlv2[jp] > subvertlv2[ip] ) {
207 subvertlvl[jp] = subvertlvl[ip];
215 maxdepth = -maxdepth;
217 memFree_null( subvertlv2 );
223 sortptr[0] = subvertlvl;
225 sortptr[2] = order->
peritab + fnode;
227 qsort3IntAsc( sortptr, n );
239 for(i=n-1; i >= 0; i--) {
240 while ( subvertlvl[i] < (-d-1) ) {
243 if ( d >= maxdepth ) {
BEGIN_C_DECLS typedef int pastix_int_t
pastix_int_t extendint_Size(const ExtendVectorINT *)
Return the number of element stored in the vector.
void extendint_Clear(ExtendVectorINT *)
Cleanup the vector.
pastix_int_t extendint_Read(const ExtendVectorINT *, pastix_int_t)
Return the element of index eltnum.
pastix_int_t * extendint_Init(ExtendVectorINT *, pastix_int_t)
Initialize the extendVector structure with the initial size given.
void extendint_Add(ExtendVectorINT *, pastix_int_t)
Add an element elt to the end of the vector.
void extendint_Exit(ExtendVectorINT *)
Free the extendVector structure.
The extend integer array structure.
void graphComputeProjection(const pastix_graph_t *graph, const int *vertlvl, pastix_order_t *order, const pastix_graph_t *subgraph, pastix_order_t *suborder, pastix_int_t fnode, pastix_int_t lnode, pastix_int_t sn_level, pastix_int_t distance, pastix_int_t maxdepth, pastix_int_t maxwidth, pastix_int_t *depthsze)
TODO.