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

Detailed Description

template<typename FloatType>
class SpoolesSolver< FloatType >

Interface for SPOOLES sparse solver.

This wrapper provides an interface for the public-domain SPOOLES solver for sparse, symmetric or unsymmetric, real- or complex-valued linear systems.

http://www.netlib.org/linalg/spooles/spooles.2.2.html

See Also
AbstractLinearSolverTpl

#include <spoolessolver.h>

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

Public Member Functions

 SpoolesSolver (uint typeflag)
 construct solver object
 
void configure (const ConfigParser &cfg)
 configure context
 
bool factor (const CsrMatrix< FloatType > *pa)
 perform full factorization
 
bool refactor (const CsrMatrix< FloatType > *pa)
 perform numerical factorization of a new matrix with the same pattern
 
bool solve (const DMatrix< FloatType > &b, DMatrix< FloatType > &x)
 solve system once a factorization is available
 
bool solve (const DVector< FloatType > &b, DVector< FloatType > &x)
 solve system once a factorization is available
 
- 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 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
 

Protected Attributes

const CsrMatrix< FloatType > * m_pa
 the matrix currently factored
 
SpoolesBase m_context
 wrapper around the spooles solver
 
- 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?
 

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
 

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