|
TBCI Numerical high perf. C++ Library
2.8.0
|
Declaration of superLU solver functions. More...
#include "tbci/vector.h"#include "tbci/cscmatrix.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) |
Declaration of superLU solver functions.
Definition in file superlu.h.
| 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 | |
| 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.
1.8.5