libgenua
Basic Geometry, Numerical Algorithms and Interfaces
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Groups Pages
Public Member Functions | Private Attributes | List of all members
EigenSparseChol< FloatType > Class Template Reference

Detailed Description

template<typename FloatType>
class EigenSparseChol< FloatType >

Interface to sparse Cholesky solver.

This is an interface to the SimplicialLDLT solver from the Eigen library. It can only solve symmetrix problems and is available whenever the Eigen header library has been found by the qmake run.

See Also
AbstractLinearSolverTpl

#include <eigensparsesolver.h>

Inheritance diagram for EigenSparseChol< FloatType >:
[legend]
Collaboration diagram for EigenSparseChol< FloatType >:
[legend]

Public Member Functions

 EigenSparseChol (uint ignored=0)
 construct, do nothing more
 
bool factor (const CsrMatrix< FloatType > *pa)
 symbolic and numerical factorization
 
bool refactor (const CsrMatrix< FloatType > *pa)
 factorize again, reusing the symbolic factorization
 
bool solve (const DMatrix< FloatType > &b, DMatrix< FloatType > &x)
 solve system
 
bool solve (const DVector< FloatType > &b, DVector< FloatType > &x)
 solve system
 
- Public Member Functions inherited from AbstractLinearSolverTpl< FloatType >
 AbstractLinearSolverTpl ()
 default construction for undefined matrix type
 
 AbstractLinearSolverTpl (uint typeflag)
 construction for defined matrix type
 
virtual ~AbstractLinearSolverTpl ()
 virtual destructor
 
uint matrixType () const
 the matrix type for which this solver has been instantiated
 
const std::string & name () const
 solver name (libary/implementation)
 
virtual void configure (const ConfigParser &)
 load configuration settings
 
virtual bool factor (const CsrMatrix< FloatType, 1 > *pa)=0
 full factorization (minimum interface)
 
virtual bool refactor (const CsrMatrix< FloatType, 1 > *pa)
 numerical factorization only (if supported)
 
void transposed (bool flag)
 request to solve the transposed problem (not always supported)
 
virtual bool solve (const CsrMatrix< FloatType, 1 > *pa, const DMatrix< FloatType > &b, DMatrix< FloatType > &x)
 single-shot solve (may be more efficient for some solvers)
 
virtual bool solve (const CsrMatrix< FloatType, 1 > *pa, const DVector< FloatType > &b, DVector< FloatType > &x)
 single-shot solve (may be more efficient for some solvers)
 
virtual bool resolve (const CsrMatrix< FloatType, 1 > *pa, const DMatrix< FloatType > &b, DMatrix< FloatType > &x)
 solution with new values in A, but the same non-zero pattern
 
virtual bool resolve (const CsrMatrix< FloatType, 1 > *pa, const DVector< FloatType > &b, DVector< FloatType > &x)
 solution with new values in A, but the same non-zero pattern
 
size_t factorizations () const
 number of (re-) factorizations
 
size_t solves () const
 number of (re-) factorizations
 
virtual float factorTime () const
 access timing data (if supported by implementation)
 
virtual float solveTime () const
 access timing data (if supported by implementation)
 
virtual float maxMemory () const
 memory, in Megabyte, as reported by solver (if possible)
 
virtual void release ()
 release internal storage
 
virtual double condest ()
 return estimated condition number after factorization (if supported)
 
void verbose (bool flag)
 enable diagnostid printing
 

Private Attributes

SpMatrixType m_alu
 local copy of coefficient matrix
 
Eigen::SimplicialLDLT
< SpMatrixType > 
m_solver
 actual solver
 

Additional Inherited Members

- Static Public Member Functions inherited from AbstractLinearSolverTpl< FloatType >
static SolverPtr create (uint)
 Create a new instance of any solver which is supported by the library. More...
 
- Protected Member Functions inherited from AbstractLinearSolverTpl< FloatType >
bool isSymmetric ()
 matrix property tests
 
bool isReal ()
 matrix property tests
 
bool isComplex ()
 matrix property tests
 
- Protected Attributes inherited from AbstractLinearSolverTpl< FloatType >
uint m_mtxflags
 matrix type flag
 
std::string m_implName
 implementation/solver/library name for logging
 
float m_factorTime
 timing data; only useful if child classes set these values
 
size_t m_factorCount
 call statistics; only useful if child classes set these values
 
bool m_solveTransposed = false
 whether to solve the transposed problem A^T x = b
 
int m_verbose = 0
 print diagnostic info?
 

The documentation for this class was generated from the following file: