slu_cdefs.h File Reference

Header file for real operations. More...

#include <math.h>
#include <limits.h>
#include "slu_Cnames.h"
#include "supermatrix.h"
#include "slu_util.h"
#include "slu_scomplex.h"

Go to the source code of this file.

Classes

struct  GlobalLU_t
 

Typedefs

typedef int int_t
 

Functions

void cgssv (superlu_options_t *, SuperMatrix *, int *, int *, SuperMatrix *, SuperMatrix *, SuperMatrix *, SuperLUStat_t *, int *)
 Driver routines. More...
 
void cgssvx (superlu_options_t *, SuperMatrix *, int *, int *, int *, char *, float *, float *, SuperMatrix *, SuperMatrix *, void *, int, SuperMatrix *, SuperMatrix *, float *, float *, float *, float *, mem_usage_t *, SuperLUStat_t *, int *)
 
void cgsisv (superlu_options_t *, SuperMatrix *, int *, int *, SuperMatrix *, SuperMatrix *, SuperMatrix *, SuperLUStat_t *, int *)
 
void cgsisx (superlu_options_t *, SuperMatrix *, int *, int *, int *, char *, float *, float *, SuperMatrix *, SuperMatrix *, void *, int, SuperMatrix *, SuperMatrix *, float *, float *, mem_usage_t *, SuperLUStat_t *, int *)
 
void cCreate_CompCol_Matrix (SuperMatrix *, int, int, int, complex *, int *, int *, Stype_t, Dtype_t, Mtype_t)
 Supernodal LU factor related. More...
 
void cCreate_CompRow_Matrix (SuperMatrix *, int, int, int, complex *, int *, int *, Stype_t, Dtype_t, Mtype_t)
 
void cCopy_CompCol_Matrix (SuperMatrix *, SuperMatrix *)
 
void cCreate_Dense_Matrix (SuperMatrix *, int, int, complex *, int, Stype_t, Dtype_t, Mtype_t)
 
void cCreate_SuperNode_Matrix (SuperMatrix *, int, int, int, complex *, int *, int *, int *, int *, int *, Stype_t, Dtype_t, Mtype_t)
 
void cCopy_Dense_Matrix (int, int, complex *, int, complex *, int)
 
void countnz (const int, int *, int *, int *, GlobalLU_t *)
 
void ilu_countnz (const int, int *, int *, GlobalLU_t *)
 
void fixupL (const int, const int *, GlobalLU_t *)
 
void callocateA (int, int, complex **, int **, int **)
 
void cgstrf (superlu_options_t *, SuperMatrix *, int, int, int *, void *, int, int *, int *, SuperMatrix *, SuperMatrix *, SuperLUStat_t *, int *)
 
int csnode_dfs (const int, const int, const int *, const int *, const int *, int *, int *, GlobalLU_t *)
 
int csnode_bmod (const int, const int, const int, complex *, complex *, GlobalLU_t *, SuperLUStat_t *)
 
void cpanel_dfs (const int, const int, const int, SuperMatrix *, int *, int *, complex *, int *, int *, int *, int *, int *, int *, int *, GlobalLU_t *)
 
void cpanel_bmod (const int, const int, const int, const int, complex *, complex *, int *, int *, GlobalLU_t *, SuperLUStat_t *)
 
int ccolumn_dfs (const int, const int, int *, int *, int *, int *, int *, int *, int *, int *, int *, GlobalLU_t *)
 
int ccolumn_bmod (const int, const int, complex *, complex *, int *, int *, int, GlobalLU_t *, SuperLUStat_t *)
 
int ccopy_to_ucol (int, int, int *, int *, int *, complex *, GlobalLU_t *)
 
int cpivotL (const int, const double, int *, int *, int *, int *, int *, GlobalLU_t *, SuperLUStat_t *)
 
void cpruneL (const int, const int *, const int, const int, const int *, const int *, int *, GlobalLU_t *)
 
void creadmt (int *, int *, int *, complex **, int **, int **)
 
void cGenXtrue (int, int, complex *, int)
 
void cFillRHS (trans_t, int, complex *, int, SuperMatrix *, SuperMatrix *)
 
void cgstrs (trans_t, SuperMatrix *, SuperMatrix *, int *, int *, SuperMatrix *, SuperLUStat_t *, int *)
 
void cgsitrf (superlu_options_t *, SuperMatrix *, int, int, int *, void *, int, int *, int *, SuperMatrix *, SuperMatrix *, SuperLUStat_t *, int *)
 
int cldperm (int, int, int, int[], int[], complex[], int[], float[], float[])
 
int ilu_csnode_dfs (const int, const int, const int *, const int *, const int *, int *, GlobalLU_t *)
 
void ilu_cpanel_dfs (const int, const int, const int, SuperMatrix *, int *, int *, complex *, float *, int *, int *, int *, int *, int *, int *, GlobalLU_t *)
 
int ilu_ccolumn_dfs (const int, const int, int *, int *, int *, int *, int *, int *, int *, int *, GlobalLU_t *)
 
int ilu_ccopy_to_ucol (int, int, int *, int *, int *, complex *, int, milu_t, double, int, complex *, int *, GlobalLU_t *, float *)
 
int ilu_cpivotL (const int, const double, int *, int *, int, int *, int *, int *, int *, double, milu_t, complex, GlobalLU_t *, SuperLUStat_t *)
 
int ilu_cdrop_row (superlu_options_t *, int, int, double, int, int *, double *, GlobalLU_t *, float *, float *, int)
 
void cgsequ (SuperMatrix *, float *, float *, float *, float *, float *, int *)
 Driver related. More...
 
void claqgs (SuperMatrix *, float *, float *, float, float, float, char *)
 
void cgscon (char *, SuperMatrix *, SuperMatrix *, float, float *, SuperLUStat_t *, int *)
 
float cPivotGrowth (int, SuperMatrix *, int *, SuperMatrix *, SuperMatrix *)
 
void cgsrfs (trans_t, SuperMatrix *, SuperMatrix *, SuperMatrix *, int *, int *, char *, float *, float *, SuperMatrix *, SuperMatrix *, float *, float *, SuperLUStat_t *, int *)
 
int sp_ctrsv (char *, char *, char *, SuperMatrix *, SuperMatrix *, complex *, SuperLUStat_t *, int *)
 
int sp_cgemv (char *, complex, SuperMatrix *, complex *, int, complex, complex *, int)
 
int sp_cgemm (char *, char *, int, int, int, complex, SuperMatrix *, complex *, int, complex, complex *, int)
 
float slamch_ (char *)
 
int cLUMemInit (fact_t, void *, int, int, int, int, int, float, SuperMatrix *, SuperMatrix *, GlobalLU_t *, int **, complex **)
 Memory-related. More...
 
void cSetRWork (int, int, complex *, complex **, complex **)
 
void cLUWorkFree (int *, complex *, GlobalLU_t *)
 
int cLUMemXpand (int, int, MemType, int *, GlobalLU_t *)
 
complexcomplexMalloc (int)
 
complexcomplexCalloc (int)
 
float * floatMalloc (int)
 
float * floatCalloc (int)
 
int cmemory_usage (const int, const int, const int, const int)
 
int cQuerySpace (SuperMatrix *, SuperMatrix *, mem_usage_t *)
 
int ilu_cQuerySpace (SuperMatrix *, SuperMatrix *, mem_usage_t *)
 
void creadhb (int *, int *, int *, complex **, int **, int **)
 Auxiliary routines. More...
 
void creadrb (int *, int *, int *, complex **, int **, int **)
 
void creadtriple (int *, int *, int *, complex **, int **, int **)
 
void cCompRow_to_CompCol (int, int, int, complex *, int *, int *, complex **, int **, int **)
 
void cfill (complex *, int, complex)
 
void cinf_norm_error (int, SuperMatrix *, complex *)
 
void PrintPerf (SuperMatrix *, SuperMatrix *, mem_usage_t *, complex, complex, complex *, complex *, char *)
 
float sqselect (int, float *, int)
 
void cPrint_CompCol_Matrix (char *, SuperMatrix *)
 Routines for debugging. More...
 
void cPrint_SuperNode_Matrix (char *, SuperMatrix *)
 
void cPrint_Dense_Matrix (char *, SuperMatrix *)
 
void cprint_lu_col (char *, int, int, int *, GlobalLU_t *)
 
int print_double_vec (char *, int, double *)
 
void check_tempv (int, complex *)
 

Detailed Description

Header file for real operations.

 
-- SuperLU routine (version 4.1) --
Univ. of California Berkeley, Xerox Palo Alto Research Center,
and Lawrence Berkeley National Lab.
November, 2010

Global data structures used in LU factorization -

  nsuper: supernodes = nsuper + 1, numbered [0, nsuper].
  (xsup,supno): supno[i] is the supernode no to which i belongs;
 xsup(s) points to the beginning of the s-th supernode.
 e.g.   supno 0 1 2 2 3 3 3 4 4 4 4 4   (n=12)
         xsup 0 1 2 4 7 12
 Note: dfs will be performed on supernode rep. relative to the new 
       row pivoting ordering

  (xlsub,lsub): lsub[*] contains the compressed subscript of
 rectangular supernodes; xlsub[j] points to the starting
 location of the j-th column in lsub[*]. Note that xlsub 
 is indexed by column.
 Storage: original row subscripts

     During the course of sparse LU factorization, we also use
 (xlsub,lsub) for the purpose of symmetric pruning. For each
 supernode {s,s+1,...,t=s+r} with first column s and last
 column t, the subscript set
    lsub[j], j=xlsub[s], .., xlsub[s+1]-1
 is the structure of column s (i.e. structure of this supernode).
 It is used for the storage of numerical values.
 Furthermore,
    lsub[j], j=xlsub[t], .., xlsub[t+1]-1
 is the structure of the last column t of this supernode.
 It is for the purpose of symmetric pruning. Therefore, the
 structural subscripts can be rearranged without making physical
 interchanges among the numerical values.

 However, if the supernode has only one column, then we
 only keep one set of subscripts. For any subscript interchange
 performed, similar interchange must be done on the numerical
 values.

 The last column structures (for pruning) will be removed
 after the numercial LU factorization phase.

  (xlusup,lusup): lusup[*] contains the numerical values of the
 rectangular supernodes; xlusup[j] points to the starting
 location of the j-th column in storage vector lusup[*]
 Note: xlusup is indexed by column.
 Each rectangular supernode is stored by column-major
 scheme, consistent with Fortran 2-dim array storage.

  (xusub,ucol,usub): ucol[*] stores the numerical values of
 U-columns outside the rectangular supernodes. The row
 subscript of nonzero ucol[k] is stored in usub[k].
 xusub[i] points to the starting location of column i in ucol.
 Storage: new row subscripts; that is subscripts of PA.

Typedef Documentation

◆ int_t

typedef int int_t

Function Documentation

◆ callocateA()

void callocateA ( int  ,
int  ,
complex **  ,
int **  ,
int **   
)

◆ ccolumn_bmod()

int ccolumn_bmod ( const int  ,
const int  ,
complex ,
complex ,
int ,
int ,
int  ,
GlobalLU_t ,
SuperLUStat_t  
)

◆ ccolumn_dfs()

int ccolumn_dfs ( const int  ,
const int  ,
int ,
int ,
int ,
int ,
int ,
int ,
int ,
int ,
int ,
GlobalLU_t  
)

◆ cCompRow_to_CompCol()

void cCompRow_to_CompCol ( int  ,
int  ,
int  ,
complex ,
int ,
int ,
complex **  ,
int **  ,
int **   
)

◆ cCopy_CompCol_Matrix()

void cCopy_CompCol_Matrix ( SuperMatrix ,
SuperMatrix  
)

◆ cCopy_Dense_Matrix()

void cCopy_Dense_Matrix ( int  ,
int  ,
complex ,
int  ,
complex ,
int   
)

◆ ccopy_to_ucol()

int ccopy_to_ucol ( int  ,
int  ,
int ,
int ,
int ,
complex ,
GlobalLU_t  
)

◆ cCreate_CompCol_Matrix()

void cCreate_CompCol_Matrix ( SuperMatrix ,
int  ,
int  ,
int  ,
complex ,
int ,
int ,
Stype_t  ,
Dtype_t  ,
Mtype_t   
)

Supernodal LU factor related.

◆ cCreate_CompRow_Matrix()

void cCreate_CompRow_Matrix ( SuperMatrix ,
int  ,
int  ,
int  ,
complex ,
int ,
int ,
Stype_t  ,
Dtype_t  ,
Mtype_t   
)

◆ cCreate_Dense_Matrix()

void cCreate_Dense_Matrix ( SuperMatrix ,
int  ,
int  ,
complex ,
int  ,
Stype_t  ,
Dtype_t  ,
Mtype_t   
)

◆ cCreate_SuperNode_Matrix()

void cCreate_SuperNode_Matrix ( SuperMatrix ,
int  ,
int  ,
int  ,
complex ,
int ,
int ,
int ,
int ,
int ,
Stype_t  ,
Dtype_t  ,
Mtype_t   
)

◆ cfill()

void cfill ( complex ,
int  ,
complex   
)

◆ cFillRHS()

void cFillRHS ( trans_t  ,
int  ,
complex ,
int  ,
SuperMatrix ,
SuperMatrix  
)

◆ cGenXtrue()

void cGenXtrue ( int  ,
int  ,
complex ,
int   
)

◆ cgscon()

void cgscon ( char ,
SuperMatrix ,
SuperMatrix ,
float  ,
float *  ,
SuperLUStat_t ,
int  
)

◆ cgsequ()

void cgsequ ( SuperMatrix ,
float *  ,
float *  ,
float *  ,
float *  ,
float *  ,
int  
)

Driver related.

◆ cgsisv()

void cgsisv ( superlu_options_t ,
SuperMatrix ,
int ,
int ,
SuperMatrix ,
SuperMatrix ,
SuperMatrix ,
SuperLUStat_t ,
int  
)

◆ cgsisx()

void cgsisx ( superlu_options_t ,
SuperMatrix ,
int ,
int ,
int ,
char ,
float *  ,
float *  ,
SuperMatrix ,
SuperMatrix ,
void *  ,
int  ,
SuperMatrix ,
SuperMatrix ,
float *  ,
float *  ,
mem_usage_t ,
SuperLUStat_t ,
int  
)

◆ cgsitrf()

void cgsitrf ( superlu_options_t ,
SuperMatrix ,
int  ,
int  ,
int ,
void *  ,
int  ,
int ,
int ,
SuperMatrix ,
SuperMatrix ,
SuperLUStat_t ,
int  
)

◆ cgsrfs()

void cgsrfs ( trans_t  ,
SuperMatrix ,
SuperMatrix ,
SuperMatrix ,
int ,
int ,
char ,
float *  ,
float *  ,
SuperMatrix ,
SuperMatrix ,
float *  ,
float *  ,
SuperLUStat_t ,
int  
)

◆ cgssv()

void cgssv ( superlu_options_t ,
SuperMatrix ,
int ,
int ,
SuperMatrix ,
SuperMatrix ,
SuperMatrix ,
SuperLUStat_t ,
int  
)

Driver routines.

◆ cgssvx()

void cgssvx ( superlu_options_t ,
SuperMatrix ,
int ,
int ,
int ,
char ,
float *  ,
float *  ,
SuperMatrix ,
SuperMatrix ,
void *  ,
int  ,
SuperMatrix ,
SuperMatrix ,
float *  ,
float *  ,
float *  ,
float *  ,
mem_usage_t ,
SuperLUStat_t ,
int  
)

◆ cgstrf()

void cgstrf ( superlu_options_t ,
SuperMatrix ,
int  ,
int  ,
int ,
void *  ,
int  ,
int ,
int ,
SuperMatrix ,
SuperMatrix ,
SuperLUStat_t ,
int  
)

◆ cgstrs()

void cgstrs ( trans_t  ,
SuperMatrix ,
SuperMatrix ,
int ,
int ,
SuperMatrix ,
SuperLUStat_t ,
int  
)

◆ check_tempv()

void check_tempv ( int  ,
complex  
)

◆ cinf_norm_error()

void cinf_norm_error ( int  ,
SuperMatrix ,
complex  
)

◆ claqgs()

void claqgs ( SuperMatrix ,
float *  ,
float *  ,
float  ,
float  ,
float  ,
char  
)

◆ cldperm()

int cldperm ( int  ,
int  ,
int  ,
int  [],
int  [],
complex  [],
int  [],
float  [],
float  [] 
)

◆ cLUMemInit()

int cLUMemInit ( fact_t  ,
void *  ,
int  ,
int  ,
int  ,
int  ,
int  ,
float  ,
SuperMatrix ,
SuperMatrix ,
GlobalLU_t ,
int **  ,
complex **   
)

Memory-related.

◆ cLUMemXpand()

int cLUMemXpand ( int  ,
int  ,
MemType  ,
int ,
GlobalLU_t  
)

◆ cLUWorkFree()

void cLUWorkFree ( int ,
complex ,
GlobalLU_t  
)

◆ cmemory_usage()

int cmemory_usage ( const int  ,
const int  ,
const int  ,
const int   
)

◆ complexCalloc()

complex* complexCalloc ( int  )

◆ complexMalloc()

complex* complexMalloc ( int  )

◆ countnz()

void countnz ( const int  ,
int ,
int ,
int ,
GlobalLU_t  
)

◆ cpanel_bmod()

void cpanel_bmod ( const int  ,
const int  ,
const int  ,
const int  ,
complex ,
complex ,
int ,
int ,
GlobalLU_t ,
SuperLUStat_t  
)

◆ cpanel_dfs()

void cpanel_dfs ( const int  ,
const int  ,
const int  ,
SuperMatrix ,
int ,
int ,
complex ,
int ,
int ,
int ,
int ,
int ,
int ,
int ,
GlobalLU_t  
)

◆ cPivotGrowth()

float cPivotGrowth ( int  ,
SuperMatrix ,
int ,
SuperMatrix ,
SuperMatrix  
)

◆ cpivotL()

int cpivotL ( const int  ,
const double  ,
int ,
int ,
int ,
int ,
int ,
GlobalLU_t ,
SuperLUStat_t  
)

◆ cPrint_CompCol_Matrix()

void cPrint_CompCol_Matrix ( char ,
SuperMatrix  
)

Routines for debugging.

◆ cPrint_Dense_Matrix()

void cPrint_Dense_Matrix ( char ,
SuperMatrix  
)

◆ cprint_lu_col()

void cprint_lu_col ( char ,
int  ,
int  ,
int ,
GlobalLU_t  
)

◆ cPrint_SuperNode_Matrix()

void cPrint_SuperNode_Matrix ( char ,
SuperMatrix  
)

◆ cpruneL()

void cpruneL ( const int  ,
const int ,
const int  ,
const int  ,
const int ,
const int ,
int ,
GlobalLU_t  
)

◆ cQuerySpace()

int cQuerySpace ( SuperMatrix ,
SuperMatrix ,
mem_usage_t  
)

◆ creadhb()

void creadhb ( int ,
int ,
int ,
complex **  ,
int **  ,
int **   
)

Auxiliary routines.

◆ creadmt()

void creadmt ( int ,
int ,
int ,
complex **  ,
int **  ,
int **   
)

◆ creadrb()

void creadrb ( int ,
int ,
int ,
complex **  ,
int **  ,
int **   
)

◆ creadtriple()

void creadtriple ( int ,
int ,
int ,
complex **  ,
int **  ,
int **   
)

◆ cSetRWork()

void cSetRWork ( int  ,
int  ,
complex ,
complex **  ,
complex **   
)

◆ csnode_bmod()

int csnode_bmod ( const int  ,
const int  ,
const int  ,
complex ,
complex ,
GlobalLU_t ,
SuperLUStat_t  
)

◆ csnode_dfs()

int csnode_dfs ( const int  ,
const int  ,
const int ,
const int ,
const int ,
int ,
int ,
GlobalLU_t  
)

◆ fixupL()

void fixupL ( const int  ,
const int ,
GlobalLU_t  
)

◆ floatCalloc()

float* floatCalloc ( int  )

◆ floatMalloc()

float* floatMalloc ( int  )

◆ ilu_ccolumn_dfs()

int ilu_ccolumn_dfs ( const int  ,
const int  ,
int ,
int ,
int ,
int ,
int ,
int ,
int ,
int ,
GlobalLU_t  
)

◆ ilu_ccopy_to_ucol()

int ilu_ccopy_to_ucol ( int  ,
int  ,
int ,
int ,
int ,
complex ,
int  ,
milu_t  ,
double  ,
int  ,
complex ,
int ,
GlobalLU_t ,
float *   
)

◆ ilu_cdrop_row()

int ilu_cdrop_row ( superlu_options_t ,
int  ,
int  ,
double  ,
int  ,
int ,
double ,
GlobalLU_t ,
float *  ,
float *  ,
int   
)

◆ ilu_countnz()

void ilu_countnz ( const int  ,
int ,
int ,
GlobalLU_t  
)

◆ ilu_cpanel_dfs()

void ilu_cpanel_dfs ( const int  ,
const int  ,
const int  ,
SuperMatrix ,
int ,
int ,
complex ,
float *  ,
int ,
int ,
int ,
int ,
int ,
int ,
GlobalLU_t  
)

◆ ilu_cpivotL()

int ilu_cpivotL ( const int  ,
const double  ,
int ,
int ,
int  ,
int ,
int ,
int ,
int ,
double  ,
milu_t  ,
complex  ,
GlobalLU_t ,
SuperLUStat_t  
)

◆ ilu_cQuerySpace()

int ilu_cQuerySpace ( SuperMatrix ,
SuperMatrix ,
mem_usage_t  
)

◆ ilu_csnode_dfs()

int ilu_csnode_dfs ( const int  ,
const int  ,
const int ,
const int ,
const int ,
int ,
GlobalLU_t  
)

◆ print_double_vec()

int print_double_vec ( char ,
int  ,
double  
)

◆ PrintPerf()

void PrintPerf ( SuperMatrix ,
SuperMatrix ,
mem_usage_t ,
complex  ,
complex  ,
complex ,
complex ,
char  
)

◆ slamch_()

float slamch_ ( char )

◆ sp_cgemm()

int sp_cgemm ( char ,
char ,
int  ,
int  ,
int  ,
complex  ,
SuperMatrix ,
complex ,
int  ,
complex  ,
complex ,
int   
)

◆ sp_cgemv()

int sp_cgemv ( char ,
complex  ,
SuperMatrix ,
complex ,
int  ,
complex  ,
complex ,
int   
)

◆ sp_ctrsv()

int sp_ctrsv ( char ,
char ,
char ,
SuperMatrix ,
SuperMatrix ,
complex ,
SuperLUStat_t ,
int  
)

◆ sqselect()

float sqselect ( int  ,
float *  ,
int   
)