PaStiX Handbook  6.3.2
Ordering internal function documentation

Functions

EliminTreeorderBuildEtree (const pastix_order_t *order)
 This routine build the elimination tree associated to an ordering. More...
 
static void compute_subtree_size (pastix_int_t n, const pastix_int_t *father, const pastix_int_t *iperm, pastix_int_t *T)
 Computes the size of each subtree. More...
 
static void compute_post_order (pastix_int_t n, const pastix_int_t *father, pastix_int_t *perm, pastix_int_t *invp, pastix_int_t *T)
 Computes the post order of the elimination tree given on entry. More...
 
static void compute_elimination_tree (pastix_int_t n, const pastix_int_t *ia, const pastix_int_t *ja, const pastix_int_t *perm, const pastix_int_t *invp, pastix_int_t *father)
 Compute the elimination tree of a matrix A (without computing the symbolic factorization) associated with a reordering of the matrix. More...
 
static int ordering_load (pastix_order_t *ordeptr, FILE *stream)
 Load an ordering from a file. More...
 
static int ordering_save (const pastix_order_t *ordeptr, FILE *stream)
 Save an ordering to a file. More...
 

Detailed Description

Function Documentation

◆ orderBuildEtree()

EliminTree* orderBuildEtree ( const pastix_order_t order)

This routine build the elimination tree associated to an ordering.

Parameters
[in]orderThe ordering structure.
Returns
the elimination tree structure associated to the ordering.

Definition at line 41 of file order_apply_level_order.c.

References pastix_order_s::cblknbr, eTreeInit(), eTreeSetSons(), etree_node_s::fathnum, etree_s::nodetab, pastix_int_t, etree_node_s::sonsnbr, and pastix_order_s::treetab.

Referenced by orderApplyLevelOrder(), and pastix_subtask_order().

◆ compute_subtree_size()

static void compute_subtree_size ( pastix_int_t  n,
const pastix_int_t father,
const pastix_int_t iperm,
pastix_int_t T 
)
inlinestatic

Computes the size of each subtree.

Parameters
[in]nThe number of nodes.
[in]fatherArray of size n. List of father to each node. If node i is a root then father[i] = i.
[in]ipermArray of size n. The inverse permutation vector.
[out]TArray of size n. On exit, size of each subtree.

Definition at line 47 of file order_find_supernodes.c.

References pastix_int_t.

Referenced by compute_post_order(), and orderFindSupernodes().

◆ compute_post_order()

static void compute_post_order ( pastix_int_t  n,
const pastix_int_t father,
pastix_int_t perm,
pastix_int_t invp,
pastix_int_t T 
)
inlinestatic

Computes the post order of the elimination tree given on entry.

Parameters
[in]nThe number of nodes.
[in]fatherArray of size n. List of father to each node. If node i is a root then father[i] = i.
[in,out]permArray of size n. The permutation vector. On exit, the postorder permutation vector.
[in,out]invpArray of size n. The inverse permutation vector. On exit, the postorder inverse permutation vector.
[in,out]TWorkspace of size n.

Definition at line 116 of file order_find_supernodes.c.

References compute_subtree_size(), and pastix_int_t.

Referenced by orderFindSupernodes().

◆ compute_elimination_tree()

static void compute_elimination_tree ( pastix_int_t  n,
const pastix_int_t ia,
const pastix_int_t ja,
const pastix_int_t perm,
const pastix_int_t invp,
pastix_int_t father 
)
inlinestatic

Compute the elimination tree of a matrix A (without computing the symbolic factorization) associated with a reordering of the matrix.

Parameters
[in]nThe number of vertices in the given CSC
[in]iaArray of size n+1. The column pointer tabular for the given CSC. (In C numbering)
[in]jaArray of size ia[n]. The list of edges in the given CSC (In C numbering)
[in]permArray of size n. The permutation vector.
[in]invpArray of size n. The inverse permutation vector.
[in,out]fatherArray of size n. On entry, an allocated array of size n. On exit, father[i] = father of ith node on the eliminination tree. If node i is a root then father[i] = i.

Definition at line 232 of file order_find_supernodes.c.

References pastix_int_t.

Referenced by orderFindSupernodes().

◆ ordering_load()

static int ordering_load ( pastix_order_t ordeptr,
FILE *  stream 
)
inlinestatic

Load an ordering from a file.

Parameters
[in,out]ordeptrThe ordering structure to fill in.
[in]streamThe stream where to read the informations.
Return values
PASTIX_SUCCESSon successful exit,
PASTIX_ERR_FILEif a problem occurs during the read.

Definition at line 43 of file order_io.c.

References pastix_order_s::baseval, pastix_order_s::cblknbr, PASTIX_ERR_FILE, pastix_int_t, PASTIX_SUCCESS, pastixOrderAlloc(), pastixOrderExit(), pastix_order_s::peritab, pastix_order_s::permtab, pastix_order_s::rangtab, pastix_order_s::treetab, and pastix_order_s::vertnbr.

Referenced by pastixOrderLoad().

◆ ordering_save()

static int ordering_save ( const pastix_order_t ordeptr,
FILE *  stream 
)
inlinestatic

Save an ordering to a file.

Parameters
[in,out]ordeptrThe ordering structure to dump to disk.
[in]streamThe stream where to write the ordering.
Return values
PASTIX_SUCCESSon successful exit,
PASTIX_ERR_BADPARAMETERif the ordeptr structure is incorrect,
PASTIX_ERR_FILEif a problem occurs during the write.

Definition at line 199 of file order_io.c.

References pastix_order_s::baseval, pastix_order_s::cblknbr, PASTIX_ERR_BADPARAMETER, PASTIX_ERR_FILE, pastix_int_t, PASTIX_SUCCESS, pastix_order_s::permtab, pastix_order_s::rangtab, pastix_order_s::treetab, and pastix_order_s::vertnbr.

Referenced by pastixOrderSave().