TBCI Numerical high perf. C++ Library  2.8.0
Macros | Enumerations | Functions
superlu.h File Reference

Declaration of superLU solver functions. More...

#include "tbci/vector.h"
#include "tbci/cscmatrix.h"
Include dependency graph for superlu.h:

Go to the source code of this file.

Macros

#define COLPERM_T_DECLARED
 

Enumerations

enum  colperm_t {
  NATURAL, MMD_ATA, MMD_AT_PLUS_A, COLAMD,
  MY_PERMC, NATURAL, MMD_ATA, MMD_AT_PLUS_A,
  COLAMD, MY_PERMC, NATURAL, MMD_ATA,
  MMD_AT_PLUS_A, COLAMD, MY_PERMC
}
 get column permutation vector perm_c[], according to permc_spec: permc_spec = NATURAL(0): use the natural ordering permc_spec = MMD_ATA(1): use minimum degree ordering on structure of a'*a permc_spec = MMD_AT_PLUS_A(2): use minimum degree ordering on structure of a'+a More...
 

Functions

NAMESPACE_TBCI int lu_solve (CSCMatrix< double > &M, Vector< double > &x, const Vector< double > &rhs, colperm_t permc_spec=NATURAL, bool verbose=false, bool symm=false)
 
TVector< double > lu_solve (CSCMatrix< double > &M, const Vector< double > &rhs, colperm_t permc_spec=NATURAL, bool verbose=false, bool symm=false)
 

Detailed Description

Declaration of superLU solver functions.

Author
Kurt Garloff
Version
Id:
superlu.h,v 1.6.2.11 2019/05/28 11:13:02 garloff Exp

Definition in file superlu.h.

Macro Definition Documentation

#define COLPERM_T_DECLARED

Definition at line 21 of file superlu.h.

Enumeration Type Documentation

enum colperm_t

get column permutation vector perm_c[], according to permc_spec: permc_spec = NATURAL(0): use the natural ordering permc_spec = MMD_ATA(1): use minimum degree ordering on structure of a'*a permc_spec = MMD_AT_PLUS_A(2): use minimum degree ordering on structure of a'+a

Enumerator
NATURAL 
MMD_ATA 
MMD_AT_PLUS_A 
COLAMD 
MY_PERMC 
NATURAL 
MMD_ATA 
MMD_AT_PLUS_A 
COLAMD 
MY_PERMC 
NATURAL 
MMD_ATA 
MMD_AT_PLUS_A 
COLAMD 
MY_PERMC 

Definition at line 20 of file superlu.h.

Function Documentation

NAMESPACE_TBCI int lu_solve ( CSCMatrix< double > &  M,
Vector< double > &  x,
const Vector< double > &  rhs,
colperm_t  permc_spec = NATURAL,
bool  verbose = false,
bool  symm = false 
)

Sparse LU solver for CSCMatrix, calling SuperLU routine. SuperLU is a direct solver, that uses advanced techniques to order elements to make LU decomposition perform very well.

For pentadiagonal systems, it performs often better(!) than iterative solvers in case no good guess value is available or if very high accuracy is needed.

Definition at line 29 of file superlu_d.cpp.

References a, ABORT, CSCMatrix< T >::columnPointer(), CSCMatrix< T >::columns(), CSCMatrix< T >::dataPointer(), dCreate_CompCol_Matrix(), dCreate_Dense_Matrix(), Destroy_CompCol_Matrix(), Destroy_SuperMatrix_Store(), Destroy_SuperNode_Matrix(), dgssv(), dQuerySpace(), mem_usage_t::expansions, mem_usage_t::for_lu, BVector< T >::get_fortran_vector(), get_perm_c(), intMalloc(), CSCMatrix< T >::rowIndexPointer(), CSCMatrix< T >::rows(), CSCMatrix< T >::size(), SLU_D, SLU_DN, SLU_GE, SLU_NC, sp_ienv(), StatFree(), StatInit(), SUPERLU_FREE, mem_usage_t::total_needed, and U.

TVector<double> lu_solve ( CSCMatrix< double > &  M,
const Vector< double > &  rhs,
colperm_t  permc_spec = NATURAL,
bool  verbose = false,
bool  symm = false 
)
inline

Definition at line 41 of file superlu.h.

References lu_solve(), TVector< T >::size(), and x.