SuperLU_DIST  4.0
superlu_dist on CPU and GPU clusters
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
Functions
sp_colorder.c File Reference

Permutes the columns of the original matrix. More...

#include "superlu_ddefs.h"

Functions

int check_perm_dist (char *, int_t, int_t *)
 
void sp_colorder (superlu_options_t *options, SuperMatrix *A, int_t *perm_c, int_t *etree, SuperMatrix *AC)
 

Detailed Description

Permutes the columns of the original matrix.

– Distributed SuperLU routine (version 1.0) –
Lawrence Berkeley National Lab, Univ. of California Berkeley.
September 1, 1999

Function Documentation

int check_perm_dist ( char *  what,
int_t  n,
int_t perm 
)
void sp_colorder ( superlu_options_t options,
SuperMatrix A,
int_t perm_c,
int_t etree,
SuperMatrix AC 
)

Purpose

sp_colorder() 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 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 = SLU_NC or SLU_NCP; Dtype = SLU__D; Mtype = SLU_GE.
        In the future, more general A can 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.