slu_sdefs.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"

Go to the source code of this file.

Classes

struct  GlobalLU_t
 

Typedefs

typedef int int_t
 

Functions

void sgssv (superlu_options_t *, SuperMatrix *, int *, int *, SuperMatrix *, SuperMatrix *, SuperMatrix *, SuperLUStat_t *, int *)
 Driver routines. More...
 
void sgssvx (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 sgsisv (superlu_options_t *, SuperMatrix *, int *, int *, SuperMatrix *, SuperMatrix *, SuperMatrix *, SuperLUStat_t *, int *)
 
void sgsisx (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 sCreate_CompCol_Matrix (SuperMatrix *, int, int, int, float *, int *, int *, Stype_t, Dtype_t, Mtype_t)
 Supernodal LU factor related. More...
 
void sCreate_CompRow_Matrix (SuperMatrix *, int, int, int, float *, int *, int *, Stype_t, Dtype_t, Mtype_t)
 
void sCopy_CompCol_Matrix (SuperMatrix *, SuperMatrix *)
 
void sCreate_Dense_Matrix (SuperMatrix *, int, int, float *, int, Stype_t, Dtype_t, Mtype_t)
 
void sCreate_SuperNode_Matrix (SuperMatrix *, int, int, int, float *, int *, int *, int *, int *, int *, Stype_t, Dtype_t, Mtype_t)
 
void sCopy_Dense_Matrix (int, int, float *, int, float *, 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 sallocateA (int, int, float **, int **, int **)
 
void sgstrf (superlu_options_t *, SuperMatrix *, int, int, int *, void *, int, int *, int *, SuperMatrix *, SuperMatrix *, SuperLUStat_t *, int *)
 
int ssnode_dfs (const int, const int, const int *, const int *, const int *, int *, int *, GlobalLU_t *)
 
int ssnode_bmod (const int, const int, const int, float *, float *, GlobalLU_t *, SuperLUStat_t *)
 
void spanel_dfs (const int, const int, const int, SuperMatrix *, int *, int *, float *, int *, int *, int *, int *, int *, int *, int *, GlobalLU_t *)
 
void spanel_bmod (const int, const int, const int, const int, float *, float *, int *, int *, GlobalLU_t *, SuperLUStat_t *)
 
int scolumn_dfs (const int, const int, int *, int *, int *, int *, int *, int *, int *, int *, int *, GlobalLU_t *)
 
int scolumn_bmod (const int, const int, float *, float *, int *, int *, int, GlobalLU_t *, SuperLUStat_t *)
 
int scopy_to_ucol (int, int, int *, int *, int *, float *, GlobalLU_t *)
 
int spivotL (const int, const double, int *, int *, int *, int *, int *, GlobalLU_t *, SuperLUStat_t *)
 
void spruneL (const int, const int *, const int, const int, const int *, const int *, int *, GlobalLU_t *)
 
void sreadmt (int *, int *, int *, float **, int **, int **)
 
void sGenXtrue (int, int, float *, int)
 
void sFillRHS (trans_t, int, float *, int, SuperMatrix *, SuperMatrix *)
 
void sgstrs (trans_t, SuperMatrix *, SuperMatrix *, int *, int *, SuperMatrix *, SuperLUStat_t *, int *)
 
void sgsitrf (superlu_options_t *, SuperMatrix *, int, int, int *, void *, int, int *, int *, SuperMatrix *, SuperMatrix *, SuperLUStat_t *, int *)
 
int sldperm (int, int, int, int[], int[], float[], int[], float[], float[])
 
int ilu_ssnode_dfs (const int, const int, const int *, const int *, const int *, int *, GlobalLU_t *)
 
void ilu_spanel_dfs (const int, const int, const int, SuperMatrix *, int *, int *, float *, float *, int *, int *, int *, int *, int *, int *, GlobalLU_t *)
 
int ilu_scolumn_dfs (const int, const int, int *, int *, int *, int *, int *, int *, int *, int *, GlobalLU_t *)
 
int ilu_scopy_to_ucol (int, int, int *, int *, int *, float *, int, milu_t, double, int, float *, int *, GlobalLU_t *, float *)
 
int ilu_spivotL (const int, const double, int *, int *, int, int *, int *, int *, int *, double, milu_t, float, GlobalLU_t *, SuperLUStat_t *)
 
int ilu_sdrop_row (superlu_options_t *, int, int, double, int, int *, double *, GlobalLU_t *, float *, float *, int)
 
void sgsequ (SuperMatrix *, float *, float *, float *, float *, float *, int *)
 Driver related. More...
 
void slaqgs (SuperMatrix *, float *, float *, float, float, float, char *)
 
void sgscon (char *, SuperMatrix *, SuperMatrix *, float, float *, SuperLUStat_t *, int *)
 
float sPivotGrowth (int, SuperMatrix *, int *, SuperMatrix *, SuperMatrix *)
 
void sgsrfs (trans_t, SuperMatrix *, SuperMatrix *, SuperMatrix *, int *, int *, char *, float *, float *, SuperMatrix *, SuperMatrix *, float *, float *, SuperLUStat_t *, int *)
 
int sp_strsv (char *, char *, char *, SuperMatrix *, SuperMatrix *, float *, SuperLUStat_t *, int *)
 
int sp_sgemv (char *, float, SuperMatrix *, float *, int, float, float *, int)
 
int sp_sgemm (char *, char *, int, int, int, float, SuperMatrix *, float *, int, float, float *, int)
 
float slamch_ (char *)
 
int sLUMemInit (fact_t, void *, int, int, int, int, int, float, SuperMatrix *, SuperMatrix *, GlobalLU_t *, int **, float **)
 Memory-related. More...
 
void sSetRWork (int, int, float *, float **, float **)
 
void sLUWorkFree (int *, float *, GlobalLU_t *)
 
int sLUMemXpand (int, int, MemType, int *, GlobalLU_t *)
 
float * floatMalloc (int)
 
float * floatCalloc (int)
 
int smemory_usage (const int, const int, const int, const int)
 
int sQuerySpace (SuperMatrix *, SuperMatrix *, mem_usage_t *)
 
int ilu_sQuerySpace (SuperMatrix *, SuperMatrix *, mem_usage_t *)
 
void sreadhb (int *, int *, int *, float **, int **, int **)
 Auxiliary routines. More...
 
void sreadrb (int *, int *, int *, float **, int **, int **)
 
void sreadtriple (int *, int *, int *, float **, int **, int **)
 
void sCompRow_to_CompCol (int, int, int, float *, int *, int *, float **, int **, int **)
 
void sfill (float *, int, float)
 
void sinf_norm_error (int, SuperMatrix *, float *)
 
void PrintPerf (SuperMatrix *, SuperMatrix *, mem_usage_t *, float, float, float *, float *, char *)
 
float sqselect (int, float *, int)
 
void sPrint_CompCol_Matrix (char *, SuperMatrix *)
 Routines for debugging. More...
 
void sPrint_SuperNode_Matrix (char *, SuperMatrix *)
 
void sPrint_Dense_Matrix (char *, SuperMatrix *)
 
void sprint_lu_col (char *, int, int, int *, GlobalLU_t *)
 
int print_double_vec (char *, int, double *)
 
void check_tempv (int, float *)
 

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

◆ check_tempv()

void check_tempv ( int  ,
float *   
)

◆ countnz()

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

◆ fixupL()

void fixupL ( const int  ,
const int ,
GlobalLU_t  
)

◆ floatCalloc()

float* floatCalloc ( int  )

◆ floatMalloc()

float* floatMalloc ( int  )

◆ ilu_countnz()

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

◆ ilu_scolumn_dfs()

int ilu_scolumn_dfs ( const int  ,
const int  ,
int ,
int ,
int ,
int ,
int ,
int ,
int ,
int ,
GlobalLU_t  
)

◆ ilu_scopy_to_ucol()

int ilu_scopy_to_ucol ( int  ,
int  ,
int ,
int ,
int ,
float *  ,
int  ,
milu_t  ,
double  ,
int  ,
float *  ,
int ,
GlobalLU_t ,
float *   
)

◆ ilu_sdrop_row()

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

◆ ilu_spanel_dfs()

void ilu_spanel_dfs ( const int  ,
const int  ,
const int  ,
SuperMatrix ,
int ,
int ,
float *  ,
float *  ,
int ,
int ,
int ,
int ,
int ,
int ,
GlobalLU_t  
)

◆ ilu_spivotL()

int ilu_spivotL ( const int  ,
const double  ,
int ,
int ,
int  ,
int ,
int ,
int ,
int ,
double  ,
milu_t  ,
float  ,
GlobalLU_t ,
SuperLUStat_t  
)

◆ ilu_sQuerySpace()

int ilu_sQuerySpace ( SuperMatrix ,
SuperMatrix ,
mem_usage_t  
)

◆ ilu_ssnode_dfs()

int ilu_ssnode_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 ,
float  ,
float  ,
float *  ,
float *  ,
char  
)

◆ sallocateA()

void sallocateA ( int  ,
int  ,
float **  ,
int **  ,
int **   
)

◆ scolumn_bmod()

int scolumn_bmod ( const int  ,
const int  ,
float *  ,
float *  ,
int ,
int ,
int  ,
GlobalLU_t ,
SuperLUStat_t  
)

◆ scolumn_dfs()

int scolumn_dfs ( const int  ,
const int  ,
int ,
int ,
int ,
int ,
int ,
int ,
int ,
int ,
int ,
GlobalLU_t  
)

◆ sCompRow_to_CompCol()

void sCompRow_to_CompCol ( int  ,
int  ,
int  ,
float *  ,
int ,
int ,
float **  ,
int **  ,
int **   
)

◆ sCopy_CompCol_Matrix()

void sCopy_CompCol_Matrix ( SuperMatrix ,
SuperMatrix  
)

◆ sCopy_Dense_Matrix()

void sCopy_Dense_Matrix ( int  ,
int  ,
float *  ,
int  ,
float *  ,
int   
)

◆ scopy_to_ucol()

int scopy_to_ucol ( int  ,
int  ,
int ,
int ,
int ,
float *  ,
GlobalLU_t  
)

◆ sCreate_CompCol_Matrix()

void sCreate_CompCol_Matrix ( SuperMatrix ,
int  ,
int  ,
int  ,
float *  ,
int ,
int ,
Stype_t  ,
Dtype_t  ,
Mtype_t   
)

Supernodal LU factor related.

◆ sCreate_CompRow_Matrix()

void sCreate_CompRow_Matrix ( SuperMatrix ,
int  ,
int  ,
int  ,
float *  ,
int ,
int ,
Stype_t  ,
Dtype_t  ,
Mtype_t   
)

◆ sCreate_Dense_Matrix()

void sCreate_Dense_Matrix ( SuperMatrix ,
int  ,
int  ,
float *  ,
int  ,
Stype_t  ,
Dtype_t  ,
Mtype_t   
)

◆ sCreate_SuperNode_Matrix()

void sCreate_SuperNode_Matrix ( SuperMatrix ,
int  ,
int  ,
int  ,
float *  ,
int ,
int ,
int ,
int ,
int ,
Stype_t  ,
Dtype_t  ,
Mtype_t   
)

◆ sfill()

void sfill ( float *  ,
int  ,
float   
)

◆ sFillRHS()

void sFillRHS ( trans_t  ,
int  ,
float *  ,
int  ,
SuperMatrix ,
SuperMatrix  
)

◆ sGenXtrue()

void sGenXtrue ( int  ,
int  ,
float *  ,
int   
)

◆ sgscon()

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

◆ sgsequ()

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

Driver related.

◆ sgsisv()

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

◆ sgsisx()

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

◆ sgsitrf()

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

◆ sgsrfs()

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

◆ sgssv()

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

Driver routines.

◆ sgssvx()

void sgssvx ( 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  
)

◆ sgstrf()

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

◆ sgstrs()

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

◆ sinf_norm_error()

void sinf_norm_error ( int  ,
SuperMatrix ,
float *   
)

◆ slamch_()

float slamch_ ( char )

◆ slaqgs()

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

◆ sldperm()

int sldperm ( int  ,
int  ,
int  ,
int  [],
int  [],
float  [],
int  [],
float  [],
float  [] 
)

◆ sLUMemInit()

int sLUMemInit ( fact_t  ,
void *  ,
int  ,
int  ,
int  ,
int  ,
int  ,
float  ,
SuperMatrix ,
SuperMatrix ,
GlobalLU_t ,
int **  ,
float **   
)

Memory-related.

◆ sLUMemXpand()

int sLUMemXpand ( int  ,
int  ,
MemType  ,
int ,
GlobalLU_t  
)

◆ sLUWorkFree()

void sLUWorkFree ( int ,
float *  ,
GlobalLU_t  
)

◆ smemory_usage()

int smemory_usage ( const int  ,
const int  ,
const int  ,
const int   
)

◆ sp_sgemm()

int sp_sgemm ( char ,
char ,
int  ,
int  ,
int  ,
float  ,
SuperMatrix ,
float *  ,
int  ,
float  ,
float *  ,
int   
)

◆ sp_sgemv()

int sp_sgemv ( char ,
float  ,
SuperMatrix ,
float *  ,
int  ,
float  ,
float *  ,
int   
)

◆ sp_strsv()

int sp_strsv ( char ,
char ,
char ,
SuperMatrix ,
SuperMatrix ,
float *  ,
SuperLUStat_t ,
int  
)

◆ spanel_bmod()

void spanel_bmod ( const int  ,
const int  ,
const int  ,
const int  ,
float *  ,
float *  ,
int ,
int ,
GlobalLU_t ,
SuperLUStat_t  
)

◆ spanel_dfs()

void spanel_dfs ( const int  ,
const int  ,
const int  ,
SuperMatrix ,
int ,
int ,
float *  ,
int ,
int ,
int ,
int ,
int ,
int ,
int ,
GlobalLU_t  
)

◆ sPivotGrowth()

float sPivotGrowth ( int  ,
SuperMatrix ,
int ,
SuperMatrix ,
SuperMatrix  
)

◆ spivotL()

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

◆ sPrint_CompCol_Matrix()

void sPrint_CompCol_Matrix ( char ,
SuperMatrix  
)

Routines for debugging.

◆ sPrint_Dense_Matrix()

void sPrint_Dense_Matrix ( char ,
SuperMatrix  
)

◆ sprint_lu_col()

void sprint_lu_col ( char ,
int  ,
int  ,
int ,
GlobalLU_t  
)

◆ sPrint_SuperNode_Matrix()

void sPrint_SuperNode_Matrix ( char ,
SuperMatrix  
)

◆ spruneL()

void spruneL ( const int  ,
const int ,
const int  ,
const int  ,
const int ,
const int ,
int ,
GlobalLU_t  
)

◆ sqselect()

float sqselect ( int  ,
float *  ,
int   
)

◆ sQuerySpace()

int sQuerySpace ( SuperMatrix ,
SuperMatrix ,
mem_usage_t  
)

◆ sreadhb()

void sreadhb ( int ,
int ,
int ,
float **  ,
int **  ,
int **   
)

Auxiliary routines.

◆ sreadmt()

void sreadmt ( int ,
int ,
int ,
float **  ,
int **  ,
int **   
)

◆ sreadrb()

void sreadrb ( int ,
int ,
int ,
float **  ,
int **  ,
int **   
)

◆ sreadtriple()

void sreadtriple ( int ,
int ,
int ,
float **  ,
int **  ,
int **   
)

◆ sSetRWork()

void sSetRWork ( int  ,
int  ,
float *  ,
float **  ,
float **   
)

◆ ssnode_bmod()

int ssnode_bmod ( const int  ,
const int  ,
const int  ,
float *  ,
float *  ,
GlobalLU_t ,
SuperLUStat_t  
)

◆ ssnode_dfs()

int ssnode_dfs ( const int  ,
const int  ,
const int ,
const int ,
const int ,
int ,
int ,
GlobalLU_t  
)