56 PORD_INT *vtxmap, istage, totnstep, totnzf;
63 options = default_options;
91 printf(
"compressed graph constructed (#nodes %d, #edges %d)\n",
98 printf(
"no compressed graph constructed\n");
112 printf(
"quality of multisector: #stages %d, #nodes %d, weight %d\n",
124 { totnstep = totnzf = 0;
126 for (istage = 0; istage < ms->
nstages; istage++)
131 printf(
"quality of ordering: #steps %d, nzl %d, ops %e\n", totnstep,
173#if defined(cleaned_version)
246 nelem = css->
xnzl[neqs];
330 for (k = 0; k < neqs; k++)
331 yvec[perm[k]] = rhs[k];
342 for (k = 0; k < neqs; k++)
343 xvec[k] = yvec[perm[k]];
396 timings_t t_graph, t_ord, t_etree, t_symb, t_num, t_solvetri;
405 options = default_options;
425 printf(
"\ninduced graph constructed: #vertices %d, #edges %d, #components "
437 printf(
"quality of initial elim. tree: #fronts %d, #indices %d\n\t"
450 printf(
"quality of transformed elim. tree: #fronts %d, #indices %d\n\t"
462 printf(
"quality of factor matrix:\n\tneqs %d, #indices %d, nzl %d\n",
473 printf(
"performance of numerical factorization: %6.2f mflops\n",
484 printf(
"performance of forward/backward solve: %6.2f mflops\n",
515 cpus[21] = t_solvetri;
551 timings_t t_etree_merge, t_symb, t_num, t_solvetri;
553 PORD_INT *invp, i, msglvl, maxzeros;
559 options = default_options;
561 maxzeros = options[1];
581 printf(
"\ninduced graph constructed: #vertices %d, #edges %d, #components "
589 for (i = 0; i < G->
nvtx; i++)
597 printf(
"quality of initial elim. tree: #fronts %d, #indices %d\n\t"
610 printf(
"quality of transformed elim. tree: #fronts %d, #indices %d\n\t"
622 printf(
"quality of factor matrix:\n\tneqs %d, #indices %d, nzl %d\n",
633 printf(
"performance of numerical factorization: %6.2f mflops\n",
644 printf(
"performance of forward/backward solve: %6.2f mflops\n",
655 cpus[1] = t_etree_construct;
656 cpus[2] = t_etree_merge;
663 cpus[9] = t_solvetri;
690 timings_t t_etree_construct, t_etree_merge, t_map;
693 PORD_INT *invp, i, msglvl, maxzeros, bal, dimQ;
699 options = default_options;
701 maxzeros = options[1];
717 for (i = 0; i < G->
nvtx; i++)
724 printf(
"quality of initial elim. tree: #fronts %d, #indices %d\n\t"
737 printf(
"quality of transformed elim. tree: #fronts %d, #indices %d\n\t"
752 { cpus[0] = t_etree_construct;
753 cpus[1] = t_etree_merge;
#define NUMFAC_TIME_SLOTS
#define SPACE_DOMAIN_SIZE
#define SPACE_NODE_SELECTION3
#define OPTION_ETREE_NONZ
#define TIME_COARSEDOMDEC
#define SPACE_NODE_SELECTION2
#define SPACE_NODE_SELECTION1
elimtree_t * SPACE_ordering(graph_t *G, options_t *options, timings_t *cpus)
#define pord_starttimer(var)
#define pord_resettimer(var)
#define pord_stoptimer(var)
#define mymalloc(ptr, nr, type)
FLOAT nTriangularOps(elimtree_t *)
graph_t * setupGraphFromMtx(inputMtx_t *)
elimtree_t * fundamentalFronts(elimtree_t *)
void forwardSubst1x1(factorMtx_t *, FLOAT *)
elimtree_t * orderMinPriority(minprior_t *, options_t *, timings_t *)
void SPACE_solveTriangular(factorMtx_t *L, FLOAT *rhs, FLOAT *xvec)
multisector_t * constructMultisector(graph_t *, options_t *, timings_t *)
void SPACE_solve(inputMtx_t *, FLOAT *, FLOAT *, options_t *, timings_t *)
void freeFactorMtx(factorMtx_t *)
void freeMultisector(multisector_t *)
frontsub_t * setupFrontSubscripts(elimtree_t *, inputMtx_t *)
PORD_INT connectedComponents(graph_t *)
void permFromElimTree(elimtree_t *, PORD_INT *)
void backwardSubst1x1(factorMtx_t *, FLOAT *)
void freeInputMtx(inputMtx_t *)
elimtree_t * mergeFronts(elimtree_t *, PORD_INT)
minprior_t * setupMinPriority(multisector_t *)
FLOAT nFactorOps(elimtree_t *)
factorMtx_t * SPACE_symbFac(elimtree_t *, inputMtx_t *)
void freeGraph(graph_t *)
graph_t * compressGraph(graph_t *, PORD_INT *)
inputMtx_t * permuteInputMtx(inputMtx_t *, PORD_INT *)
PORD_INT nFactorIndices(elimtree_t *)
elimtree_t * SPACE_transformElimTree(elimtree_t *, PORD_INT)
PORD_INT nWorkspace(elimtree_t *)
void SPACE_numFac(factorMtx_t *, timings_t *)
PORD_INT nFactorEntries(elimtree_t *)
void initFactorMtx(factorMtx_t *L, inputMtx_t *)
mapping_t * setupMapping(elimtree_t *, PORD_INT, PORD_INT)
elimtree_t * expandElimTree(elimtree_t *, PORD_INT *, PORD_INT)
mapping_t * SPACE_mapping(graph_t *, PORD_INT *, options_t *, timings_t *)
css_t * setupCSSFromFrontSubscripts(frontsub_t *)
void SPACE_solveWithPerm(inputMtx_t *, PORD_INT *, FLOAT *, FLOAT *, options_t *, timings_t *)
elimtree_t * setupElimTree(graph_t *, PORD_INT *, PORD_INT *)
void numfac(factorMtx_t *L, timings_t *cpus)
factorMtx_t * newFactorMtx(PORD_INT)
elimtree_t * permuteElimTree(elimtree_t *, PORD_INT *)
PORD_INT justifyFronts(elimtree_t *)
void freeMinPriority(minprior_t *)
void freeElimTree(elimtree_t *)
struct _minprior minprior_t
struct _frontsub frontsub_t
struct _multisector multisector_t
struct _factorMtx factorMtx_t
struct _inputMtx inputMtx_t
struct _elimtree elimtree_t