48 for( i = 0; i < n ; i++, colptr++, loc2glob++ )
50 ig = (graph->loc2glob == NULL) ? i : *loc2glob - baseval;
51 for (j = colptr[0]; j < colptr[1]; j++, rowptr++ )
53 jg = *rowptr - baseval;
68 indj = (newrow - graph->rowptr) + baseval;
72 graph->nnz = *colptr - *(graph->colptr);
116 const spmatrix_t *spm,
117 pastix_graph_t **graph )
119 pastix_graph_t *tmpgraph = NULL;
124 MALLOC_INTERN( tmpgraph, 1, pastix_graph_t );
125 memset( tmpgraph, 0,
sizeof(pastix_graph_t) );
128 pastix_print( spm->clustnum, 0,
"%s", OUT_SUBSTEP_GRAPH );
144 if( (spm->mtxtype == SpmSymmetric) ||
145 (spm->mtxtype == SpmHermitian) ) {
148 pastix_print(spm->clustnum, 0,
"%s", OUT_ORDER_SYMGRAPH);
154 pastix_print(spm->clustnum, 0,
"%s", OUT_ORDER_SORT);
159 pastix_print(spm->clustnum, 0,
"%s", OUT_ORDER_NODIAG);
164 assert( tmpgraph->fmttype == SpmCSC );
165 assert( tmpgraph->flttype == SpmPattern );
166 assert( tmpgraph->values == NULL );
BEGIN_C_DECLS typedef int pastix_int_t
int graphUpdateComputedFields(pastix_graph_t *graph)
Update dofs, nnz, nnzexp, gnnz, n, nexp, gN of a given graph.
void graphLoad(const pastix_data_t *pastix_data, pastix_graph_t *graph)
Load a graph from a file.
int graphSpm2Graph(pastix_graph_t *graph, const spmatrix_t *spm)
This routine build a graph thanks to an spm;.
int graphSymmetrize(pastix_graph_t *graph)
Symmetrize a given graph.
void graphNoDiag(pastix_graph_t *graph)
This routine removes the diagonal edges from a centralized graph.
int graphPrepare(pastix_data_t *pastix_data, const spmatrix_t *spm, pastix_graph_t **graph)
This routine initializes the graph.
void graphSort(pastix_graph_t *graph)
This routine sortes the subarray of edges of each vertex.
Main PaStiX data structure.