24# if defined(PORD_INTSIZE64) || defined(INTSIZE64)
35#if defined(INTSIZE64) || defined(PORD_INTSIZE64)
47 *ncmpa = mumps_pord( *nvtx, *nedges, xadj, adjncy, nv );
50#if defined(INTSIZE64) || defined(PORD_INTSIZE64)
62 *ncmpa = mumps_pord_wnd( *nvtx, *nedges, xadj, adjncy, nv, totw );
102 PORD_INT *ncolfactor, *ncolupdate, *parent, *vtx2front;
103 PORD_INT *first, *link, nfronts, J, K, u, vertex, vertex_root, count;
105 for (u = nvtx; u >= 0; u--)
107 xadj_pe[u] = xadj_pe[u] - 1;
109 for (K = nedges-1; K >= 0; K--)
111 adjncy[K] = adjncy[K] - 1;
123 for (u = 0; u < nvtx; u++)
138 for (J = 0; J < nfronts; J++)
140 for (u = nvtx-1; u >= 0; u--)
152 vertex_root = first[K];
153 if (vertex_root == -1)
156# if defined(PORD_INTSIZE64) || defined(INTSIZE64)
157 printf(
" Internal error in mumps_pord, %ld\n",K);
159 printf(
" Internal error in mumps_pord, %d\n",K);
165 xadj_pe[vertex_root] = 0;
167 xadj_pe[vertex_root] = - (first[parent[K]]+1);
168 nv[vertex_root] = ncolfactor[K] + ncolupdate[K];
170 for (vertex = link[vertex_root]; vertex != -1; vertex = link[vertex])
173 xadj_pe[vertex] = - (vertex_root+1);
181 free(first); free(link);
219 PORD_INT *ncolfactor, *ncolupdate, *parent, *vtx2front;
220 PORD_INT *first, *link, nfronts, J, K, u, vertex, vertex_root, count;
222 for (u = nvtx; u >= 0; u--)
224 xadj_pe[u] = xadj_pe[u] - 1;
226 for (K = nedges-1; K >= 0; K--)
228 adjncy[K] = adjncy[K] - 1;
240 for (u = 0; u < nvtx; u++)
255 for (J = 0; J < nfronts; J++)
257 for (u = nvtx-1; u >= 0; u--)
269 vertex_root = first[K];
270 if (vertex_root == -1)
273# if defined(PORD_INTSIZE64) || defined(INTSIZE64)
274 printf(
" Internal error in mumps_pord, %ld\n",K);
276 printf(
" Internal error in mumps_pord, %d\n",K);
282 xadj_pe[vertex_root] = 0;
284 xadj_pe[vertex_root] = - (first[parent[K]]+1);
285 nv[vertex_root] = ncolfactor[K] + ncolupdate[K];
287 for (vertex = link[vertex_root]; vertex != -1; vertex = link[vertex])
290 xadj_pe[vertex] = - (vertex_root+1);
298 free(first); free(link);
#define SPACE_DOMAIN_SIZE
#define SPACE_NODE_SELECTION3
#define SPACE_NODE_SELECTION2
#define SPACE_NODE_SELECTION1
#define mymalloc(ptr, nr, type)
#define MUMPS_PORD_INTSIZE
integer, dimension(:), allocatable nv
PORD_INT nextPostorder(elimtree_t *, PORD_INT)
elimtree_t * SPACE_ordering(graph_t *, options_t *, timings_t *)
PORD_INT firstPostorder(elimtree_t *)
void freeElimTree(elimtree_t *)
struct _elimtree elimtree_t