SG++-Doxygen-Documentation
Loading...
Searching...
No Matches
sgpp::base::sle_solver Namespace Reference

Classes

class  Armadillo
 Linear system solver using Armadillo (direct full solver). More...
 
class  Auto
 Automatic choice of external linear solver. More...
 
class  BiCGStab
 Linear system solver implementing the iterative BiCGStab method. More...
 
class  Eigen
 Linear system solver using Eigen (direct full solver). More...
 
class  GaussianElimination
 Linear system solver implementing the direct Gaussian elimination. More...
 
class  Gmmpp
 Linear system solver using Gmm++ (iterative sparse solver). More...
 
class  SLESolver
 Abstract class for solving systems of linear equations. More...
 
class  UMFPACK
 Linear system solver using UMFPACK (direct sparse solver). More...
 

Typedefs

typedef ::Eigen::MatrixXd EigenMatrix
 
typedef ::Eigen::VectorXd EigenVector
 
typedef UF_long sslong
 

Functions

void addSLESolver (SLESolver *solver, std::vector< SLESolver * > &solvers, const std::map< SLESolver *, bool > &supports)
 Add a solver to the vector of solvers, if the solver is supported (e.g.
 
void callback (const gmm::iteration &iter)
 Gmm++ status printing callback.
 
bool solveInternal (const EigenMatrix &A, const ::Eigen::HouseholderQR< EigenMatrix > &A_QR, DataVector &b, DataVector &x)
 
bool solveInternal (const gmm::csr_matrix< double > &A, DataVector &b, DataVector &x)
 
bool solveInternal (void *numeric, const std::vector< sslong > &Ap, const std::vector< sslong > &Ai, const std::vector< double > &Ax, DataVector &b, DataVector &x)
 

Typedef Documentation

◆ EigenMatrix

typedef ::Eigen::MatrixXd sgpp::base::sle_solver::EigenMatrix

◆ EigenVector

typedef ::Eigen::VectorXd sgpp::base::sle_solver::EigenVector

◆ sslong

Function Documentation

◆ addSLESolver()

void sgpp::base::sle_solver::addSLESolver ( SLESolver solver,
std::vector< SLESolver * > &  solvers,
const std::map< SLESolver *, bool > &  supports 
)

Add a solver to the vector of solvers, if the solver is supported (e.g.

SG++ configured and compiled for use with the solve) and it's not already in the vector.

Parameters
solverlinear solver
solversvector of solvers
supportsmap indicating which solvers are supported

Referenced by sgpp::base::sle_solver::Auto::solve().

◆ callback()

void sgpp::base::sle_solver::callback ( const gmm::iteration &  iter)

Gmm++ status printing callback.

Parameters
iteriteration information

References sgpp::base::Printer::getInstance(), and sgpp::base::Printer::printStatusUpdate().

Referenced by solveInternal().

◆ solveInternal() [1/3]

bool sgpp::base::sle_solver::solveInternal ( const EigenMatrix A,
const ::Eigen::HouseholderQR< EigenMatrix > &  A_QR,
DataVector b,
DataVector x 
)
Parameters
Acoefficient matrix
A_QRHouseholder QR decomposition of coefficient matrix
bright-hand side
[out]xsolution of the linear system
Returns
whether all went well (false if errors occurred)

Referenced by sgpp::base::sle_solver::Eigen::solve(), sgpp::base::sle_solver::UMFPACK::solve(), and sgpp::base::sle_solver::Gmmpp::solve().

◆ solveInternal() [2/3]

bool sgpp::base::sle_solver::solveInternal ( const gmm::csr_matrix< double > &  A,
DataVector b,
DataVector x 
)
Parameters
Acoefficient matrix
bright-hand side
[out]xsolution of the linear system
Returns
whether all went well (false if errors occurred)

References callback(), sgpp::base::Printer::getInstance(), sgpp::base::Printer::printStatusEnd(), sgpp::base::Printer::printStatusNewLine(), and sgpp::base::Printer::printStatusUpdate().

◆ solveInternal() [3/3]

bool sgpp::base::sle_solver::solveInternal ( void *  numeric,
const std::vector< sslong > &  Ap,
const std::vector< sslong > &  Ai,
const std::vector< double > &  Ax,
DataVector b,
DataVector x 
)
Parameters
numericresult of umfpack_dl_numeric()
ApCCS column pointers
AiCCS row indices
AxCCS matrix entries
bright-hand side
[out]xsolution to the system
Returns
whether all went well (false if errors occurred)

References sgpp::base::DataVector::getPointer(), and sgpp::base::DataVector::setAll().