slu_zdefs.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_dcomplex.h"

Go to the source code of this file.

Classes

struct  GlobalLU_t
 

Typedefs

typedef int int_t
 

Functions

void zgssv (superlu_options_t *, SuperMatrix *, int *, int *, SuperMatrix *, SuperMatrix *, SuperMatrix *, SuperLUStat_t *, int *)
 Driver routines. More...
 
void zgssvx (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 zgsisv (superlu_options_t *, SuperMatrix *, int *, int *, SuperMatrix *, SuperMatrix *, SuperMatrix *, SuperLUStat_t *, int *)
 
void zgsisx (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 zCreate_CompCol_Matrix (SuperMatrix *, int, int, int, doublecomplex *, int *, int *, Stype_t, Dtype_t, Mtype_t)
 Supernodal LU factor related. More...
 
void zCreate_CompRow_Matrix (SuperMatrix *, int, int, int, doublecomplex *, int *, int *, Stype_t, Dtype_t, Mtype_t)
 
void zCopy_CompCol_Matrix (SuperMatrix *, SuperMatrix *)
 
void zCreate_Dense_Matrix (SuperMatrix *, int, int, doublecomplex *, int, Stype_t, Dtype_t, Mtype_t)
 
void zCreate_SuperNode_Matrix (SuperMatrix *, int, int, int, doublecomplex *, int *, int *, int *, int *, int *, Stype_t, Dtype_t, Mtype_t)
 
void zCopy_Dense_Matrix (int, int, doublecomplex *, int, doublecomplex *, 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 zallocateA (int, int, doublecomplex **, int **, int **)
 
void zgstrf (superlu_options_t *, SuperMatrix *, int, int, int *, void *, int, int *, int *, SuperMatrix *, SuperMatrix *, SuperLUStat_t *, int *)
 
int zsnode_dfs (const int, const int, const int *, const int *, const int *, int *, int *, GlobalLU_t *)
 
int zsnode_bmod (const int, const int, const int, doublecomplex *, doublecomplex *, GlobalLU_t *, SuperLUStat_t *)
 
void zpanel_dfs (const int, const int, const int, SuperMatrix *, int *, int *, doublecomplex *, int *, int *, int *, int *, int *, int *, int *, GlobalLU_t *)
 
void zpanel_bmod (const int, const int, const int, const int, doublecomplex *, doublecomplex *, int *, int *, GlobalLU_t *, SuperLUStat_t *)
 
int zcolumn_dfs (const int, const int, int *, int *, int *, int *, int *, int *, int *, int *, int *, GlobalLU_t *)
 
int zcolumn_bmod (const int, const int, doublecomplex *, doublecomplex *, int *, int *, int, GlobalLU_t *, SuperLUStat_t *)
 
int zcopy_to_ucol (int, int, int *, int *, int *, doublecomplex *, GlobalLU_t *)
 
int zpivotL (const int, const double, int *, int *, int *, int *, int *, GlobalLU_t *, SuperLUStat_t *)
 
void zpruneL (const int, const int *, const int, const int, const int *, const int *, int *, GlobalLU_t *)
 
void zreadmt (int *, int *, int *, doublecomplex **, int **, int **)
 
void zGenXtrue (int, int, doublecomplex *, int)
 
void zFillRHS (trans_t, int, doublecomplex *, int, SuperMatrix *, SuperMatrix *)
 
void zgstrs (trans_t, SuperMatrix *, SuperMatrix *, int *, int *, SuperMatrix *, SuperLUStat_t *, int *)
 
void zgsitrf (superlu_options_t *, SuperMatrix *, int, int, int *, void *, int, int *, int *, SuperMatrix *, SuperMatrix *, SuperLUStat_t *, int *)
 
int zldperm (int, int, int, int[], int[], doublecomplex[], int[], double[], double[])
 
int ilu_zsnode_dfs (const int, const int, const int *, const int *, const int *, int *, GlobalLU_t *)
 
void ilu_zpanel_dfs (const int, const int, const int, SuperMatrix *, int *, int *, doublecomplex *, double *, int *, int *, int *, int *, int *, int *, GlobalLU_t *)
 
int ilu_zcolumn_dfs (const int, const int, int *, int *, int *, int *, int *, int *, int *, int *, GlobalLU_t *)
 
int ilu_zcopy_to_ucol (int, int, int *, int *, int *, doublecomplex *, int, milu_t, double, int, doublecomplex *, int *, GlobalLU_t *, double *)
 
int ilu_zpivotL (const int, const double, int *, int *, int, int *, int *, int *, int *, double, milu_t, doublecomplex, GlobalLU_t *, SuperLUStat_t *)
 
int ilu_zdrop_row (superlu_options_t *, int, int, double, int, int *, double *, GlobalLU_t *, double *, double *, int)
 
void zgsequ (SuperMatrix *, double *, double *, double *, double *, double *, int *)
 Driver related. More...
 
void zlaqgs (SuperMatrix *, double *, double *, double, double, double, char *)
 
void zgscon (char *, SuperMatrix *, SuperMatrix *, double, double *, SuperLUStat_t *, int *)
 
double zPivotGrowth (int, SuperMatrix *, int *, SuperMatrix *, SuperMatrix *)
 
void zgsrfs (trans_t, SuperMatrix *, SuperMatrix *, SuperMatrix *, int *, int *, char *, double *, double *, SuperMatrix *, SuperMatrix *, double *, double *, SuperLUStat_t *, int *)
 
int sp_ztrsv (char *, char *, char *, SuperMatrix *, SuperMatrix *, doublecomplex *, SuperLUStat_t *, int *)
 
int sp_zgemv (char *, doublecomplex, SuperMatrix *, doublecomplex *, int, doublecomplex, doublecomplex *, int)
 
int sp_zgemm (char *, char *, int, int, int, doublecomplex, SuperMatrix *, doublecomplex *, int, doublecomplex, doublecomplex *, int)
 
double dlamch_ (char *)
 
int zLUMemInit (fact_t, void *, int, int, int, int, int, double, SuperMatrix *, SuperMatrix *, GlobalLU_t *, int **, doublecomplex **)
 Memory-related. More...
 
void zSetRWork (int, int, doublecomplex *, doublecomplex **, doublecomplex **)
 
void zLUWorkFree (int *, doublecomplex *, GlobalLU_t *)
 
int zLUMemXpand (int, int, MemType, int *, GlobalLU_t *)
 
doublecomplexdoublecomplexMalloc (int)
 
doublecomplexdoublecomplexCalloc (int)
 
doubledoubleMalloc (int)
 
doubledoubleCalloc (int)
 
int zmemory_usage (const int, const int, const int, const int)
 
int zQuerySpace (SuperMatrix *, SuperMatrix *, mem_usage_t *)
 
int ilu_zQuerySpace (SuperMatrix *, SuperMatrix *, mem_usage_t *)
 
void zreadhb (int *, int *, int *, doublecomplex **, int **, int **)
 Auxiliary routines. More...
 
void zreadrb (int *, int *, int *, doublecomplex **, int **, int **)
 
void zreadtriple (int *, int *, int *, doublecomplex **, int **, int **)
 
void zCompRow_to_CompCol (int, int, int, doublecomplex *, int *, int *, doublecomplex **, int **, int **)
 
void zfill (doublecomplex *, int, doublecomplex)
 
void zinf_norm_error (int, SuperMatrix *, doublecomplex *)
 
void PrintPerf (SuperMatrix *, SuperMatrix *, mem_usage_t *, doublecomplex, doublecomplex, doublecomplex *, doublecomplex *, char *)
 
double dqselect (int, double *, int)
 
void zPrint_CompCol_Matrix (char *, SuperMatrix *)
 Routines for debugging. More...
 
void zPrint_SuperNode_Matrix (char *, SuperMatrix *)
 
void zPrint_Dense_Matrix (char *, SuperMatrix *)
 
void zprint_lu_col (char *, int, int, int *, GlobalLU_t *)
 
int print_double_vec (char *, int, double *)
 
void check_tempv (int, doublecomplex *)
 

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

◆ countnz()

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

◆ dlamch_()

double dlamch_ ( char )

◆ doubleCalloc()

double* doubleCalloc ( int  )

◆ doublecomplexCalloc()

doublecomplex* doublecomplexCalloc ( int  )

◆ doublecomplexMalloc()

doublecomplex* doublecomplexMalloc ( int  )

◆ doubleMalloc()

double* doubleMalloc ( int  )

◆ dqselect()

double dqselect ( int  ,
double ,
int   
)

◆ fixupL()

void fixupL ( const int  ,
const int ,
GlobalLU_t  
)

◆ ilu_countnz()

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

◆ ilu_zcolumn_dfs()

int ilu_zcolumn_dfs ( const int  ,
const int  ,
int ,
int ,
int ,
int ,
int ,
int ,
int ,
int ,
GlobalLU_t  
)

◆ ilu_zcopy_to_ucol()

int ilu_zcopy_to_ucol ( int  ,
int  ,
int ,
int ,
int ,
doublecomplex ,
int  ,
milu_t  ,
double  ,
int  ,
doublecomplex ,
int ,
GlobalLU_t ,
double  
)

◆ ilu_zdrop_row()

int ilu_zdrop_row ( superlu_options_t ,
int  ,
int  ,
double  ,
int  ,
int ,
double ,
GlobalLU_t ,
double ,
double ,
int   
)

◆ ilu_zpanel_dfs()

void ilu_zpanel_dfs ( const int  ,
const int  ,
const int  ,
SuperMatrix ,
int ,
int ,
doublecomplex ,
double ,
int ,
int ,
int ,
int ,
int ,
int ,
GlobalLU_t  
)

◆ ilu_zpivotL()

int ilu_zpivotL ( const int  ,
const double  ,
int ,
int ,
int  ,
int ,
int ,
int ,
int ,
double  ,
milu_t  ,
doublecomplex  ,
GlobalLU_t ,
SuperLUStat_t  
)

◆ ilu_zQuerySpace()

int ilu_zQuerySpace ( SuperMatrix ,
SuperMatrix ,
mem_usage_t  
)

◆ ilu_zsnode_dfs()

int ilu_zsnode_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 ,
doublecomplex  ,
doublecomplex  ,
doublecomplex ,
doublecomplex ,
char  
)

◆ sp_zgemm()

int sp_zgemm ( char ,
char ,
int  ,
int  ,
int  ,
doublecomplex  ,
SuperMatrix ,
doublecomplex ,
int  ,
doublecomplex  ,
doublecomplex ,
int   
)

◆ sp_zgemv()

int sp_zgemv ( char ,
doublecomplex  ,
SuperMatrix ,
doublecomplex ,
int  ,
doublecomplex  ,
doublecomplex ,
int   
)

◆ sp_ztrsv()

int sp_ztrsv ( char ,
char ,
char ,
SuperMatrix ,
SuperMatrix ,
doublecomplex ,
SuperLUStat_t ,
int  
)

◆ zallocateA()

void zallocateA ( int  ,
int  ,
doublecomplex **  ,
int **  ,
int **   
)

◆ zcolumn_bmod()

int zcolumn_bmod ( const int  ,
const int  ,
doublecomplex ,
doublecomplex ,
int ,
int ,
int  ,
GlobalLU_t ,
SuperLUStat_t  
)

◆ zcolumn_dfs()

int zcolumn_dfs ( const int  ,
const int  ,
int ,
int ,
int ,
int ,
int ,
int ,
int ,
int ,
int ,
GlobalLU_t  
)

◆ zCompRow_to_CompCol()

void zCompRow_to_CompCol ( int  ,
int  ,
int  ,
doublecomplex ,
int ,
int ,
doublecomplex **  ,
int **  ,
int **   
)

◆ zCopy_CompCol_Matrix()

void zCopy_CompCol_Matrix ( SuperMatrix ,
SuperMatrix  
)

◆ zCopy_Dense_Matrix()

void zCopy_Dense_Matrix ( int  ,
int  ,
doublecomplex ,
int  ,
doublecomplex ,
int   
)

◆ zcopy_to_ucol()

int zcopy_to_ucol ( int  ,
int  ,
int ,
int ,
int ,
doublecomplex ,
GlobalLU_t  
)

◆ zCreate_CompCol_Matrix()

void zCreate_CompCol_Matrix ( SuperMatrix ,
int  ,
int  ,
int  ,
doublecomplex ,
int ,
int ,
Stype_t  ,
Dtype_t  ,
Mtype_t   
)

Supernodal LU factor related.

◆ zCreate_CompRow_Matrix()

void zCreate_CompRow_Matrix ( SuperMatrix ,
int  ,
int  ,
int  ,
doublecomplex ,
int ,
int ,
Stype_t  ,
Dtype_t  ,
Mtype_t   
)

◆ zCreate_Dense_Matrix()

void zCreate_Dense_Matrix ( SuperMatrix ,
int  ,
int  ,
doublecomplex ,
int  ,
Stype_t  ,
Dtype_t  ,
Mtype_t   
)

◆ zCreate_SuperNode_Matrix()

void zCreate_SuperNode_Matrix ( SuperMatrix ,
int  ,
int  ,
int  ,
doublecomplex ,
int ,
int ,
int ,
int ,
int ,
Stype_t  ,
Dtype_t  ,
Mtype_t   
)

◆ zfill()

void zfill ( doublecomplex ,
int  ,
doublecomplex   
)

◆ zFillRHS()

void zFillRHS ( trans_t  ,
int  ,
doublecomplex ,
int  ,
SuperMatrix ,
SuperMatrix  
)

◆ zGenXtrue()

void zGenXtrue ( int  ,
int  ,
doublecomplex ,
int   
)

◆ zgscon()

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

◆ zgsequ()

void zgsequ ( SuperMatrix ,
double ,
double ,
double ,
double ,
double ,
int  
)

Driver related.

◆ zgsisv()

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

◆ zgsisx()

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

◆ zgsitrf()

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

◆ zgsrfs()

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

◆ zgssv()

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

Driver routines.

◆ zgssvx()

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

◆ zgstrf()

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

◆ zgstrs()

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

◆ zinf_norm_error()

void zinf_norm_error ( int  ,
SuperMatrix ,
doublecomplex  
)

◆ zlaqgs()

void zlaqgs ( SuperMatrix ,
double ,
double ,
double  ,
double  ,
double  ,
char  
)

◆ zldperm()

int zldperm ( int  ,
int  ,
int  ,
int  [],
int  [],
doublecomplex  [],
int  [],
double  [],
double  [] 
)

◆ zLUMemInit()

int zLUMemInit ( fact_t  ,
void *  ,
int  ,
int  ,
int  ,
int  ,
int  ,
double  ,
SuperMatrix ,
SuperMatrix ,
GlobalLU_t ,
int **  ,
doublecomplex **   
)

Memory-related.

◆ zLUMemXpand()

int zLUMemXpand ( int  ,
int  ,
MemType  ,
int ,
GlobalLU_t  
)

◆ zLUWorkFree()

void zLUWorkFree ( int ,
doublecomplex ,
GlobalLU_t  
)

◆ zmemory_usage()

int zmemory_usage ( const int  ,
const int  ,
const int  ,
const int   
)

◆ zpanel_bmod()

void zpanel_bmod ( const int  ,
const int  ,
const int  ,
const int  ,
doublecomplex ,
doublecomplex ,
int ,
int ,
GlobalLU_t ,
SuperLUStat_t  
)

◆ zpanel_dfs()

void zpanel_dfs ( const int  ,
const int  ,
const int  ,
SuperMatrix ,
int ,
int ,
doublecomplex ,
int ,
int ,
int ,
int ,
int ,
int ,
int ,
GlobalLU_t  
)

◆ zPivotGrowth()

double zPivotGrowth ( int  ,
SuperMatrix ,
int ,
SuperMatrix ,
SuperMatrix  
)

◆ zpivotL()

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

◆ zPrint_CompCol_Matrix()

void zPrint_CompCol_Matrix ( char ,
SuperMatrix  
)

Routines for debugging.

◆ zPrint_Dense_Matrix()

void zPrint_Dense_Matrix ( char ,
SuperMatrix  
)

◆ zprint_lu_col()

void zprint_lu_col ( char ,
int  ,
int  ,
int ,
GlobalLU_t  
)

◆ zPrint_SuperNode_Matrix()

void zPrint_SuperNode_Matrix ( char ,
SuperMatrix  
)

◆ zpruneL()

void zpruneL ( const int  ,
const int ,
const int  ,
const int  ,
const int ,
const int ,
int ,
GlobalLU_t  
)

◆ zQuerySpace()

int zQuerySpace ( SuperMatrix ,
SuperMatrix ,
mem_usage_t  
)

◆ zreadhb()

void zreadhb ( int ,
int ,
int ,
doublecomplex **  ,
int **  ,
int **   
)

Auxiliary routines.

◆ zreadmt()

void zreadmt ( int ,
int ,
int ,
doublecomplex **  ,
int **  ,
int **   
)

◆ zreadrb()

void zreadrb ( int ,
int ,
int ,
doublecomplex **  ,
int **  ,
int **   
)

◆ zreadtriple()

void zreadtriple ( int ,
int ,
int ,
doublecomplex **  ,
int **  ,
int **   
)

◆ zSetRWork()

void zSetRWork ( int  ,
int  ,
doublecomplex ,
doublecomplex **  ,
doublecomplex **   
)

◆ zsnode_bmod()

int zsnode_bmod ( const int  ,
const int  ,
const int  ,
doublecomplex ,
doublecomplex ,
GlobalLU_t ,
SuperLUStat_t  
)

◆ zsnode_dfs()

int zsnode_dfs ( const int  ,
const int  ,
const int ,
const int ,
const int ,
int ,
int ,
GlobalLU_t  
)