Diana  0.8.3
Public Member Functions | Private Member Functions | Private Attributes
DianaLSQRSolver Class Reference

#include <DianaLSQRSolver.hpp>

Inheritance diagram for DianaLSQRSolver:
IDianaLinearAlgebraSolver

List of all members.

Public Member Functions

 DianaLSQRSolver (const DianaSparseArray &spar) throw (Common::Error::ECapeUnknown, Common::Error::ECapeBadArgument, Common::Error::ECapeOutOfBounds, Common::Error::ECapeSolvingError, Common::Error::ECapeNoMemory)
DianaLSQRSolveroperator= (const DianaSparseArray &spar) throw (Common::Error::ECapeUnknown, Common::Error::ECapeBadArgument, Common::Error::ECapeOutOfBounds, Common::Error::ECapeSolvingError, Common::Error::ECapeNoMemory)
void solve (const Common::Types::CapeArrayDouble &rhs, Common::Types::CapeArrayDouble &sol, Common::Types::CapeBoolean transpose=false) throw (Common::Error::ECapeUnknown, Common::Error::ECapeBadArgument, Common::Error::ECapeOutOfBounds, Common::Error::ECapeSolvingError, Common::Error::ECapeNoMemory)
void solve (int n, const double *rhs, double *sol, Common::Types::CapeBoolean transpose=false) throw (Common::Error::ECapeUnknown, Common::Error::ECapeBadArgument, Common::Error::ECapeOutOfBounds, Common::Error::ECapeSolvingError, Common::Error::ECapeNoMemory)
void mulvec (const Common::Types::CapeArrayDouble &vec, Common::Types::CapeArrayDouble &res, Common::Types::CapeBoolean transpose=false) throw (Common::Error::ECapeUnknown, Common::Error::ECapeBadArgument, Common::Error::ECapeOutOfBounds, Common::Error::ECapeSolvingError, Common::Error::ECapeNoMemory)
void mulvec (int nvec, const double *vec, int nres, double *res, Common::Types::CapeBoolean transpose=false) throw (Common::Error::ECapeUnknown, Common::Error::ECapeBadArgument, Common::Error::ECapeOutOfBounds, Common::Error::ECapeSolvingError, Common::Error::ECapeNoMemory)

Private Member Functions

void init_matrix (const DianaSparseArray &spar) throw (Common::Error::ECapeUnknown, Common::Error::ECapeBadArgument, Common::Error::ECapeOutOfBounds, Common::Error::ECapeSolvingError, Common::Error::ECapeNoMemory)
double norm2 (int n, const double *vec)

Private Attributes

DianaSparseArray::crc_type crc32sa
long nRows
long nCols
long nNonZeros
std::vector< long > irow
std::vector< long > jcol
std::vector< double > aval
Common::Types::CapeDouble dblUround

Detailed Description

Solver based on the algorithm proposed in the paper C. C. Paige and M. A. Saunders. LSQR: An algorithm for sparse linear equations and sparse least squares, TOMS 8(1), 43-71 (1982).


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