SuperLU 7.0.0
Functions
sp_preorder.c File Reference

Permute and performs functions on columns of original matrix. More...

#include "slu_ddefs.h"
Include dependency graph for sp_preorder.c:

Functions

void sp_preorder (superlu_options_t *options, SuperMatrix *A, int *perm_c, int *etree, SuperMatrix *AC)
 

Function Documentation

◆ sp_preorder()

void sp_preorder ( superlu_options_t options,
SuperMatrix A,
int *  perm_c,
int *  etree,
SuperMatrix AC 
)
Purpose
=======

sp_preorder() permutes the columns of the original matrix. It performs
the following steps:

   1. Apply column permutation perm_c[] to A's column pointers to form AC;

   2. If options->Fact = DOFACT, then
      (1) Compute column elimination tree etree[] of AC'AC;
      (2) Post order etree[] to get a postordered elimination tree etree[],
          and a postorder permutation post[];
      (3) Apply post[] permutation to columns of AC;
      (4) Overwrite perm_c[] with the product perm_c * post.

Arguments
=========

options (input) superlu_options_t*
        Specifies whether or not the elimination tree will be re-used.
        If options->Fact == DOFACT, this means first time factor A, 
        etree is computed, postered, and output.
        Otherwise, re-factor A, etree is input, unchanged on exit.

A       (input) SuperMatrix*
        Matrix A in A*X=B, of dimension (A->nrow, A->ncol). The number
        of the linear equations is A->nrow. Currently, the type of A can be:
        Stype = NC or SLU_NCP; Mtype = SLU_GE.
        In the future, more general A may be handled.

perm_c  (input/output) int*
        Column permutation vector of size A->ncol, which defines the 
        permutation matrix Pc; perm_c[i] = j means column i of A is 
        in position j in A*Pc.
        If options->Fact == DOFACT, perm_c is both input and output.
        On output, it is changed according to a postorder of etree.
        Otherwise, perm_c is input.

etree   (input/output) int*
        Elimination tree of Pc'*A'*A*Pc, dimension A->ncol.
        If options->Fact == DOFACT, etree is an output argument,
        otherwise it is an input argument.
        Note: etree is a vector of parent pointers for a forest whose
        vertices are the integers 0 to A->ncol-1; etree[root]==A->ncol.

AC      (output) SuperMatrix*
        The resulting matrix after applied the column permutation
        perm_c[] to matrix A. The type of AC can be:
        Stype = SLU_NCP; Dtype = A->Dtype; Mtype = SLU_GE.
Here is the call graph for this function: