SuperLU Distributed 8.2.1
Distributed memory sparse direct solver
supernodal_etree.c File Reference

function to generate supernodal etree More...

#include <stdio.h>
#include <assert.h>
#include "superlu_ddefs.h"
Include dependency graph for supernodal_etree.c:

Macros

#define INT_T_ALLOC(x)   ((int_t *) SUPERLU_MALLOC ( (x) * sizeof (int_t)))
 

Functions

int_t log2i (int_t index)
 
int_tsupernodal_etree (int_t nsuper, int_t *etree, int_t *supno, int_t *xsup)
 
int_ttopological_ordering (int_t nsuper, int_t *setree)
 
treeList_tsetree2list (int_t nsuper, int_t *setree)
 
int free_treelist (int_t nsuper, treeList_t *treeList)
 
int_t estimateWeight (int_t nsupers, int_t *setree, treeList_t *treeList, int_t *xsup)
 
int_t calcTreeWeight (int_t nsupers, int_t *setree, treeList_t *treeList, int_t *xsup)
 
int_t printFileList (char *sname, int_t nnodes, int_t *dlist, int_t *setree)
 
int_t getDescendList (int_t k, int_t *dlist, treeList_t *treeList)
 
int_t getCommonAncsCount (int_t k, treeList_t *treeList)
 
int_t getCommonAncestorList (int_t k, int_t *alist, int_t *seTree, treeList_t *treeList)
 
int cmpfunc (const void *a, const void *b)
 
int_tgetPermNodeList (int_t nnode, int_t *nlist, int_t *perm_c_sup, int_t *iperm_c_sup)
 
int_tgetEtreeLB (int_t nnodes, int_t *perm_l, int_t *gTopOrder)
 
int_tgetSubTreeRoots (int_t k, treeList_t *treeList)
 
int_t testSubtreeNodelist (int_t nsupers, int_t numList, int_t **nodeList, int_t *nodeCount)
 
int_t testListPerm (int_t nodeCount, int_t *nodeList, int_t *permList, int_t *gTopLevel)
 
int_t mergPermTest (int_t nperms, int_t *gperms, int_t *nnodes)
 
int_tmerg_perms (int_t nperms, int_t *nnodes, int_t **perms)
 
int_tgetGlobal_iperm (int_t nsupers, int_t nperms, int_t **perms, int_t *nnodes)
 
int_tgetTreeHeads (int_t maxLvl, int_t nsupers, treeList_t *treeList)
 
int_tcalcNumNodes (int_t maxLvl, int_t *treeHeads, treeList_t *treeList)
 
int_t ** getNodeList (int_t maxLvl, int_t *setree, int_t *nnodes, int_t *treeHeads, treeList_t *treeList)
 
int_tgetGridTrees (gridinfo3d_t *grid3d)
 
int_tgetReplicatedTrees (gridinfo3d_t *grid3d)
 
int_tgetMyIperm (int_t nnodes, int_t nsupers, int_t *myPerm)
 
int_tgetMyTopOrder (int_t nnodes, int_t *myPerm, int_t *myIperm, int_t *setree)
 
int_t checkConsistancyPermTopOrder (int_t nnodes, int_t *myTopOrder)
 
int_tgetMyEtLims (int_t nnodes, int_t *myTopOrder)
 
treeTopoInfo_t getMyTreeTopoInfo (int_t nnodes, int_t nsupers, int_t *myPerm, int_t *setree)
 
int_tEtree_LevelBoundry (int_t *perm, int_t *tsort_etree, int_t nsuper)
 
int_tcalculate_num_children (int_t nsuper, int_t *setree)
 
void Print_EtreeLevelBoundry (int_t *Etree_LvlBdry, int_t max_level, int_t nsuper)
 
void print_etree_leveled (int_t *setree, int_t *tsort_etree, int_t nsuper)
 
void printEtree (int_t nsuper, int_t *setree, treeList_t *treeList)
 
void print_etree (int_t *setree, int_t *iperm, int_t nsuper)
 

Detailed Description

function to generate supernodal etree

-- Distributed SuperLU routine (version 7.0) --
Lawrence Berkeley National Lab, Oak Ridge National Lab
May 12, 2021

Macro Definition Documentation

◆ INT_T_ALLOC

#define INT_T_ALLOC (   x)    ((int_t *) SUPERLU_MALLOC ( (x) * sizeof (int_t)))

Function Documentation

◆ calcNumNodes()

int_t * calcNumNodes ( int_t  maxLvl,
int_t treeHeads,
treeList_t treeList 
)

◆ calcTreeWeight()

int_t calcTreeWeight ( int_t  nsupers,
int_t setree,
treeList_t treeList,
int_t xsup 
)

◆ calculate_num_children()

int_t * calculate_num_children ( int_t  nsuper,
int_t setree 
)

◆ checkConsistancyPermTopOrder()

int_t checkConsistancyPermTopOrder ( int_t  nnodes,
int_t myTopOrder 
)
Here is the caller graph for this function:

◆ cmpfunc()

int cmpfunc ( const void *  a,
const void *  b 
)
Here is the caller graph for this function:

◆ estimateWeight()

int_t estimateWeight ( int_t  nsupers,
int_t setree,
treeList_t treeList,
int_t xsup 
)
Here is the caller graph for this function:

◆ Etree_LevelBoundry()

int_t * Etree_LevelBoundry ( int_t perm,
int_t tsort_etree,
int_t  nsuper 
)

◆ free_treelist()

int free_treelist ( int_t  nsuper,
treeList_t treeList 
)

◆ getCommonAncestorList()

int_t getCommonAncestorList ( int_t  k,
int_t alist,
int_t seTree,
treeList_t treeList 
)
Here is the caller graph for this function:

◆ getCommonAncsCount()

int_t getCommonAncsCount ( int_t  k,
treeList_t treeList 
)

◆ getDescendList()

int_t getDescendList ( int_t  k,
int_t dlist,
treeList_t treeList 
)
Here is the caller graph for this function:

◆ getEtreeLB()

int_t * getEtreeLB ( int_t  nnodes,
int_t perm_l,
int_t gTopOrder 
)

◆ getGlobal_iperm()

int_t * getGlobal_iperm ( int_t  nsupers,
int_t  nperms,
int_t **  perms,
int_t nnodes 
)

◆ getGridTrees()

int_t * getGridTrees ( gridinfo3d_t grid3d)

◆ getMyEtLims()

int_t * getMyEtLims ( int_t  nnodes,
int_t myTopOrder 
)
Here is the caller graph for this function:

◆ getMyIperm()

int_t * getMyIperm ( int_t  nnodes,
int_t  nsupers,
int_t myPerm 
)
Here is the caller graph for this function:

◆ getMyTopOrder()

int_t * getMyTopOrder ( int_t  nnodes,
int_t myPerm,
int_t myIperm,
int_t setree 
)
Here is the caller graph for this function:

◆ getMyTreeTopoInfo()

treeTopoInfo_t getMyTreeTopoInfo ( int_t  nnodes,
int_t  nsupers,
int_t myPerm,
int_t setree 
)

◆ getNodeList()

int_t ** getNodeList ( int_t  maxLvl,
int_t setree,
int_t nnodes,
int_t treeHeads,
treeList_t treeList 
)

◆ getPermNodeList()

int_t * getPermNodeList ( int_t  nnode,
int_t nlist,
int_t perm_c_sup,
int_t iperm_c_sup 
)

◆ getReplicatedTrees()

int_t * getReplicatedTrees ( gridinfo3d_t grid3d)

◆ getSubTreeRoots()

int_t * getSubTreeRoots ( int_t  k,
treeList_t treeList 
)
Here is the caller graph for this function:

◆ getTreeHeads()

int_t * getTreeHeads ( int_t  maxLvl,
int_t  nsupers,
treeList_t treeList 
)

◆ log2i()

int_t log2i ( int_t  index)
Here is the caller graph for this function:

◆ merg_perms()

int_t * merg_perms ( int_t  nperms,
int_t nnodes,
int_t **  perms 
)

◆ mergPermTest()

int_t mergPermTest ( int_t  nperms,
int_t gperms,
int_t nnodes 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ print_etree()

void print_etree ( int_t setree,
int_t iperm,
int_t  nsuper 
)

◆ print_etree_leveled()

void print_etree_leveled ( int_t setree,
int_t tsort_etree,
int_t  nsuper 
)

◆ Print_EtreeLevelBoundry()

void Print_EtreeLevelBoundry ( int_t Etree_LvlBdry,
int_t  max_level,
int_t  nsuper 
)

◆ printEtree()

void printEtree ( int_t  nsuper,
int_t setree,
treeList_t treeList 
)

◆ printFileList()

int_t printFileList ( char *  sname,
int_t  nnodes,
int_t dlist,
int_t setree 
)

◆ setree2list()

treeList_t * setree2list ( int_t  nsuper,
int_t setree 
)

◆ supernodal_etree()

int_t * supernodal_etree ( int_t  nsuper,
int_t etree,
int_t supno,
int_t xsup 
)

Returns Supernodal Elimination Tree

Parameters
nsuperNumber of Supernodes
etreeScalar elimination tree
supnoVertex to supernode mapping
xsupSupernodal boundaries
Returns
Supernodal elimination tree

◆ testListPerm()

int_t testListPerm ( int_t  nodeCount,
int_t nodeList,
int_t permList,
int_t gTopLevel 
)

◆ testSubtreeNodelist()

int_t testSubtreeNodelist ( int_t  nsupers,
int_t  numList,
int_t **  nodeList,
int_t nodeCount 
)

◆ topological_ordering()

int_t * topological_ordering ( int_t  nsuper,
int_t setree 
)