TBCI Numerical high perf. C++ Library 2.8.0
superlu_d.cpp File Reference

Super-LU interface for TBCI NumLib (double). More...

#include "tbci/cscmatrix.h"
#include "tbci/superlu/util.h"
#include "tbci/superlu/dsp_defs.h"
Include dependency graph for superlu_d.cpp:

Go to the source code of this file.

Functions

NAMESPACE_TBCI int lu_solve (CSCMatrix< double > &M, Vector< double > &x, const Vector< double > &rhs, colperm_t permc_spec, bool verbose, bool symm)
 WEAK (TVector< double > lu_solve(CSCMatrix< double > &M, const Vector< double > &rhs, colperm_t permc_spec, bool verbose, bool symm))
 The symbol was part of the library before, so keep it as weak symbol for copmatibility reasons.

Detailed Description

Super-LU interface for TBCI NumLib (double).

Definition in file superlu_d.cpp.

Function Documentation

◆ lu_solve()

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, 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, U, and x.

Referenced by lu_solve(), and WEAK().

◆ WEAK()

WEAK ( TVector< double > lu_solveCSCMatrix< double > &M, const Vector< double > &rhs, colperm_t permc_spec, bool verbose, bool symm)

The symbol was part of the library before, so keep it as weak symbol for copmatibility reasons.

Definition at line 145 of file superlu_d.cpp.

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