slu_ddefs.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 dgssv (superlu_options_t *, SuperMatrix *, int *, int *, SuperMatrix *, SuperMatrix *, SuperMatrix *, SuperLUStat_t *, int *)
 Driver routines. More...
 
void dgssvx (superlu_options_t *, SuperMatrix *, int *, int *, int *, char *, double *, double *, SuperMatrix *, SuperMatrix *, void *, int, SuperMatrix *, SuperMatrix *, double *, double *, double *, double *, mem_usage_t *, SuperLUStat_t *, int *)
 
void dgsisv (superlu_options_t *, SuperMatrix *, int *, int *, SuperMatrix *, SuperMatrix *, SuperMatrix *, SuperLUStat_t *, int *)
 
void dgsisx (superlu_options_t *, SuperMatrix *, int *, int *, int *, char *, double *, double *, SuperMatrix *, SuperMatrix *, void *, int, SuperMatrix *, SuperMatrix *, double *, double *, mem_usage_t *, SuperLUStat_t *, int *)
 
void dCreate_CompCol_Matrix (SuperMatrix *, int, int, int, double *, int *, int *, Stype_t, Dtype_t, Mtype_t)
 Supernodal LU factor related. More...
 
void dCreate_CompRow_Matrix (SuperMatrix *, int, int, int, double *, int *, int *, Stype_t, Dtype_t, Mtype_t)
 
void dCopy_CompCol_Matrix (SuperMatrix *, SuperMatrix *)
 
void dCreate_Dense_Matrix (SuperMatrix *, int, int, double *, int, Stype_t, Dtype_t, Mtype_t)
 
void dCreate_SuperNode_Matrix (SuperMatrix *, int, int, int, double *, int *, int *, int *, int *, int *, Stype_t, Dtype_t, Mtype_t)
 
void dCopy_Dense_Matrix (int, int, double *, int, double *, 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 dallocateA (int, int, double **, int **, int **)
 
void dgstrf (superlu_options_t *, SuperMatrix *, int, int, int *, void *, int, int *, int *, SuperMatrix *, SuperMatrix *, SuperLUStat_t *, int *)
 
int dsnode_dfs (const int, const int, const int *, const int *, const int *, int *, int *, GlobalLU_t *)
 
int dsnode_bmod (const int, const int, const int, double *, double *, GlobalLU_t *, SuperLUStat_t *)
 
void dpanel_dfs (const int, const int, const int, SuperMatrix *, int *, int *, double *, int *, int *, int *, int *, int *, int *, int *, GlobalLU_t *)
 
void dpanel_bmod (const int, const int, const int, const int, double *, double *, int *, int *, GlobalLU_t *, SuperLUStat_t *)
 
int dcolumn_dfs (const int, const int, int *, int *, int *, int *, int *, int *, int *, int *, int *, GlobalLU_t *)
 
int dcolumn_bmod (const int, const int, double *, double *, int *, int *, int, GlobalLU_t *, SuperLUStat_t *)
 
int dcopy_to_ucol (int, int, int *, int *, int *, double *, GlobalLU_t *)
 
int dpivotL (const int, const double, int *, int *, int *, int *, int *, GlobalLU_t *, SuperLUStat_t *)
 
void dpruneL (const int, const int *, const int, const int, const int *, const int *, int *, GlobalLU_t *)
 
void dreadmt (int *, int *, int *, double **, int **, int **)
 
void dGenXtrue (int, int, double *, int)
 
void dFillRHS (trans_t, int, double *, int, SuperMatrix *, SuperMatrix *)
 
void dgstrs (trans_t, SuperMatrix *, SuperMatrix *, int *, int *, SuperMatrix *, SuperLUStat_t *, int *)
 
void dgsitrf (superlu_options_t *, SuperMatrix *, int, int, int *, void *, int, int *, int *, SuperMatrix *, SuperMatrix *, SuperLUStat_t *, int *)
 
int dldperm (int, int, int, int[], int[], double[], int[], double[], double[])
 
int ilu_dsnode_dfs (const int, const int, const int *, const int *, const int *, int *, GlobalLU_t *)
 
void ilu_dpanel_dfs (const int, const int, const int, SuperMatrix *, int *, int *, double *, double *, int *, int *, int *, int *, int *, int *, GlobalLU_t *)
 
int ilu_dcolumn_dfs (const int, const int, int *, int *, int *, int *, int *, int *, int *, int *, GlobalLU_t *)
 
int ilu_dcopy_to_ucol (int, int, int *, int *, int *, double *, int, milu_t, double, int, double *, int *, GlobalLU_t *, double *)
 
int ilu_dpivotL (const int, const double, int *, int *, int, int *, int *, int *, int *, double, milu_t, double, GlobalLU_t *, SuperLUStat_t *)
 
int ilu_ddrop_row (superlu_options_t *, int, int, double, int, int *, double *, GlobalLU_t *, double *, double *, int)
 
void dgsequ (SuperMatrix *, double *, double *, double *, double *, double *, int *)
 Driver related. More...
 
void dlaqgs (SuperMatrix *, double *, double *, double, double, double, char *)
 
void dgscon (char *, SuperMatrix *, SuperMatrix *, double, double *, SuperLUStat_t *, int *)
 
double dPivotGrowth (int, SuperMatrix *, int *, SuperMatrix *, SuperMatrix *)
 
void dgsrfs (trans_t, SuperMatrix *, SuperMatrix *, SuperMatrix *, int *, int *, char *, double *, double *, SuperMatrix *, SuperMatrix *, double *, double *, SuperLUStat_t *, int *)
 
int sp_dtrsv (char *, char *, char *, SuperMatrix *, SuperMatrix *, double *, SuperLUStat_t *, int *)
 
int sp_dgemv (char *, double, SuperMatrix *, double *, int, double, double *, int)
 
int sp_dgemm (char *, char *, int, int, int, double, SuperMatrix *, double *, int, double, double *, int)
 
double dlamch_ (char *)
 
int dLUMemInit (fact_t, void *, int, int, int, int, int, double, SuperMatrix *, SuperMatrix *, GlobalLU_t *, int **, double **)
 Memory-related. More...
 
void dSetRWork (int, int, double *, double **, double **)
 
void dLUWorkFree (int *, double *, GlobalLU_t *)
 
int dLUMemXpand (int, int, MemType, int *, GlobalLU_t *)
 
doubledoubleMalloc (int)
 
doubledoubleCalloc (int)
 
int dmemory_usage (const int, const int, const int, const int)
 
int dQuerySpace (SuperMatrix *, SuperMatrix *, mem_usage_t *)
 
int ilu_dQuerySpace (SuperMatrix *, SuperMatrix *, mem_usage_t *)
 
void dreadhb (int *, int *, int *, double **, int **, int **)
 Auxiliary routines. More...
 
void dreadrb (int *, int *, int *, double **, int **, int **)
 
void dreadtriple (int *, int *, int *, double **, int **, int **)
 
void dCompRow_to_CompCol (int, int, int, double *, int *, int *, double **, int **, int **)
 
void dfill (double *, int, double)
 
void dinf_norm_error (int, SuperMatrix *, double *)
 
void PrintPerf (SuperMatrix *, SuperMatrix *, mem_usage_t *, double, double, double *, double *, char *)
 
double dqselect (int, double *, int)
 
void dPrint_CompCol_Matrix (char *, SuperMatrix *)
 Routines for debugging. More...
 
void dPrint_SuperNode_Matrix (char *, SuperMatrix *)
 
void dPrint_Dense_Matrix (char *, SuperMatrix *)
 
void dprint_lu_col (char *, int, int, int *, GlobalLU_t *)
 
int print_double_vec (char *, int, double *)
 
void check_tempv (int, double *)
 

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  ,
double  
)

◆ countnz()

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

◆ dallocateA()

void dallocateA ( int  ,
int  ,
double **  ,
int **  ,
int **   
)

◆ dcolumn_bmod()

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

◆ dcolumn_dfs()

int dcolumn_dfs ( const int  ,
const int  ,
int ,
int ,
int ,
int ,
int ,
int ,
int ,
int ,
int ,
GlobalLU_t  
)

◆ dCompRow_to_CompCol()

void dCompRow_to_CompCol ( int  ,
int  ,
int  ,
double ,
int ,
int ,
double **  ,
int **  ,
int **   
)

◆ dCopy_CompCol_Matrix()

void dCopy_CompCol_Matrix ( SuperMatrix ,
SuperMatrix  
)

◆ dCopy_Dense_Matrix()

void dCopy_Dense_Matrix ( int  ,
int  ,
double ,
int  ,
double ,
int   
)

◆ dcopy_to_ucol()

int dcopy_to_ucol ( int  ,
int  ,
int ,
int ,
int ,
double ,
GlobalLU_t  
)

◆ dCreate_CompCol_Matrix()

void dCreate_CompCol_Matrix ( SuperMatrix ,
int  ,
int  ,
int  ,
double ,
int ,
int ,
Stype_t  ,
Dtype_t  ,
Mtype_t   
)

Supernodal LU factor related.

◆ dCreate_CompRow_Matrix()

void dCreate_CompRow_Matrix ( SuperMatrix ,
int  ,
int  ,
int  ,
double ,
int ,
int ,
Stype_t  ,
Dtype_t  ,
Mtype_t   
)

◆ dCreate_Dense_Matrix()

void dCreate_Dense_Matrix ( SuperMatrix ,
int  ,
int  ,
double ,
int  ,
Stype_t  ,
Dtype_t  ,
Mtype_t   
)

◆ dCreate_SuperNode_Matrix()

void dCreate_SuperNode_Matrix ( SuperMatrix ,
int  ,
int  ,
int  ,
double ,
int ,
int ,
int ,
int ,
int ,
Stype_t  ,
Dtype_t  ,
Mtype_t   
)

◆ dfill()

void dfill ( double ,
int  ,
double   
)

◆ dFillRHS()

void dFillRHS ( trans_t  ,
int  ,
double ,
int  ,
SuperMatrix ,
SuperMatrix  
)

◆ dGenXtrue()

void dGenXtrue ( int  ,
int  ,
double ,
int   
)

◆ dgscon()

void dgscon ( char ,
SuperMatrix ,
SuperMatrix ,
double  ,
double ,
SuperLUStat_t ,
int  
)

◆ dgsequ()

void dgsequ ( SuperMatrix ,
double ,
double ,
double ,
double ,
double ,
int  
)

Driver related.

◆ dgsisv()

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

◆ dgsisx()

void dgsisx ( superlu_options_t ,
SuperMatrix ,
int ,
int ,
int ,
char ,
double ,
double ,
SuperMatrix ,
SuperMatrix ,
void *  ,
int  ,
SuperMatrix ,
SuperMatrix ,
double ,
double ,
mem_usage_t ,
SuperLUStat_t ,
int  
)

◆ dgsitrf()

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

◆ dgsrfs()

void dgsrfs ( trans_t  ,
SuperMatrix ,
SuperMatrix ,
SuperMatrix ,
int ,
int ,
char ,
double ,
double ,
SuperMatrix ,
SuperMatrix ,
double ,
double ,
SuperLUStat_t ,
int  
)

◆ dgssv()

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

Driver routines.

◆ dgssvx()

void dgssvx ( superlu_options_t ,
SuperMatrix ,
int ,
int ,
int ,
char ,
double ,
double ,
SuperMatrix ,
SuperMatrix ,
void *  ,
int  ,
SuperMatrix ,
SuperMatrix ,
double ,
double ,
double ,
double ,
mem_usage_t ,
SuperLUStat_t ,
int  
)

◆ dgstrf()

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

◆ dgstrs()

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

◆ dinf_norm_error()

void dinf_norm_error ( int  ,
SuperMatrix ,
double  
)

◆ dlamch_()

double dlamch_ ( char )

◆ dlaqgs()

void dlaqgs ( SuperMatrix ,
double ,
double ,
double  ,
double  ,
double  ,
char  
)

◆ dldperm()

int dldperm ( int  ,
int  ,
int  ,
int  [],
int  [],
double  [],
int  [],
double  [],
double  [] 
)

◆ dLUMemInit()

int dLUMemInit ( fact_t  ,
void *  ,
int  ,
int  ,
int  ,
int  ,
int  ,
double  ,
SuperMatrix ,
SuperMatrix ,
GlobalLU_t ,
int **  ,
double **   
)

Memory-related.

◆ dLUMemXpand()

int dLUMemXpand ( int  ,
int  ,
MemType  ,
int ,
GlobalLU_t  
)

◆ dLUWorkFree()

void dLUWorkFree ( int ,
double ,
GlobalLU_t  
)

◆ dmemory_usage()

int dmemory_usage ( const int  ,
const int  ,
const int  ,
const int   
)

◆ doubleCalloc()

double* doubleCalloc ( int  )

◆ doubleMalloc()

double* doubleMalloc ( int  )

◆ dpanel_bmod()

void dpanel_bmod ( const int  ,
const int  ,
const int  ,
const int  ,
double ,
double ,
int ,
int ,
GlobalLU_t ,
SuperLUStat_t  
)

◆ dpanel_dfs()

void dpanel_dfs ( const int  ,
const int  ,
const int  ,
SuperMatrix ,
int ,
int ,
double ,
int ,
int ,
int ,
int ,
int ,
int ,
int ,
GlobalLU_t  
)

◆ dPivotGrowth()

double dPivotGrowth ( int  ,
SuperMatrix ,
int ,
SuperMatrix ,
SuperMatrix  
)

◆ dpivotL()

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

◆ dPrint_CompCol_Matrix()

void dPrint_CompCol_Matrix ( char ,
SuperMatrix  
)

Routines for debugging.

◆ dPrint_Dense_Matrix()

void dPrint_Dense_Matrix ( char ,
SuperMatrix  
)

◆ dprint_lu_col()

void dprint_lu_col ( char ,
int  ,
int  ,
int ,
GlobalLU_t  
)

◆ dPrint_SuperNode_Matrix()

void dPrint_SuperNode_Matrix ( char ,
SuperMatrix  
)

◆ dpruneL()

void dpruneL ( const int  ,
const int ,
const int  ,
const int  ,
const int ,
const int ,
int ,
GlobalLU_t  
)

◆ dqselect()

double dqselect ( int  ,
double ,
int   
)

◆ dQuerySpace()

int dQuerySpace ( SuperMatrix ,
SuperMatrix ,
mem_usage_t  
)

◆ dreadhb()

void dreadhb ( int ,
int ,
int ,
double **  ,
int **  ,
int **   
)

Auxiliary routines.

◆ dreadmt()

void dreadmt ( int ,
int ,
int ,
double **  ,
int **  ,
int **   
)

◆ dreadrb()

void dreadrb ( int ,
int ,
int ,
double **  ,
int **  ,
int **   
)

◆ dreadtriple()

void dreadtriple ( int ,
int ,
int ,
double **  ,
int **  ,
int **   
)

◆ dSetRWork()

void dSetRWork ( int  ,
int  ,
double ,
double **  ,
double **   
)

◆ dsnode_bmod()

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

◆ dsnode_dfs()

int dsnode_dfs ( const int  ,
const int  ,
const int ,
const int ,
const int ,
int ,
int ,
GlobalLU_t  
)

◆ fixupL()

void fixupL ( const int  ,
const int ,
GlobalLU_t  
)

◆ ilu_countnz()

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

◆ ilu_dcolumn_dfs()

int ilu_dcolumn_dfs ( const int  ,
const int  ,
int ,
int ,
int ,
int ,
int ,
int ,
int ,
int ,
GlobalLU_t  
)

◆ ilu_dcopy_to_ucol()

int ilu_dcopy_to_ucol ( int  ,
int  ,
int ,
int ,
int ,
double ,
int  ,
milu_t  ,
double  ,
int  ,
double ,
int ,
GlobalLU_t ,
double  
)

◆ ilu_ddrop_row()

int ilu_ddrop_row ( superlu_options_t ,
int  ,
int  ,
double  ,
int  ,
int ,
double ,
GlobalLU_t ,
double ,
double ,
int   
)

◆ ilu_dpanel_dfs()

void ilu_dpanel_dfs ( const int  ,
const int  ,
const int  ,
SuperMatrix ,
int ,
int ,
double ,
double ,
int ,
int ,
int ,
int ,
int ,
int ,
GlobalLU_t  
)

◆ ilu_dpivotL()

int ilu_dpivotL ( const int  ,
const double  ,
int ,
int ,
int  ,
int ,
int ,
int ,
int ,
double  ,
milu_t  ,
double  ,
GlobalLU_t ,
SuperLUStat_t  
)

◆ ilu_dQuerySpace()

int ilu_dQuerySpace ( SuperMatrix ,
SuperMatrix ,
mem_usage_t  
)

◆ ilu_dsnode_dfs()

int ilu_dsnode_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 ,
double  ,
double  ,
double ,
double ,
char  
)

◆ sp_dgemm()

int sp_dgemm ( char ,
char ,
int  ,
int  ,
int  ,
double  ,
SuperMatrix ,
double ,
int  ,
double  ,
double ,
int   
)

◆ sp_dgemv()

int sp_dgemv ( char ,
double  ,
SuperMatrix ,
double ,
int  ,
double  ,
double ,
int   
)

◆ sp_dtrsv()

int sp_dtrsv ( char ,
char ,
char ,
SuperMatrix ,
SuperMatrix ,
double ,
SuperLUStat_t ,
int  
)