14 #ifndef CT_GENERALMATRIX_H
15 #define CT_GENERALMATRIX_H
53 virtual void zero() = 0;
60 virtual void mult(
const doublereal* b, doublereal* prod)
const = 0;
67 virtual void leftMult(
const doublereal*
const b, doublereal*
const prod)
const = 0;
103 virtual doublereal
rcond(doublereal a1norm) = 0;
119 virtual doublereal
oneNorm()
const = 0;
122 virtual size_t nRows()
const = 0;
130 virtual size_t nRowsAndStruct(
size_t*
const iStruct = 0)
const = 0;
144 virtual int solve(doublereal* b,
size_t nrhs=1,
size_t ldb=0) = 0;
157 virtual doublereal*
ptrColumn(
size_t j) = 0;
166 virtual doublereal&
operator()(
size_t i,
size_t j) = 0;
175 virtual doublereal
operator()(
size_t i,
size_t j)
const = 0;
189 virtual vector_fp::iterator
begin() = 0;
195 virtual vector_fp::const_iterator
begin()
const = 0;
205 virtual doublereal*
const*
colPts() = 0;
216 virtual size_t checkRows(doublereal& valueSmall)
const = 0;
227 virtual size_t checkColumns(doublereal& valueSmall)
const = 0;
virtual doublereal * ptrColumn(size_t j)=0
Return a pointer to the top of column j, columns are assumed to be contiguous in memory.
int matrixType_
Matrix type.
An error indicating that an unimplemented function has been called.
virtual GeneralMatrix * duplMyselfAsGeneralMatrix() const =0
Duplicator member function.
int m_factored
Indicates whether the matrix is factored.
virtual doublereal oneNorm() const =0
Calculate the one norm of the matrix.
virtual void clearFactorFlag()
clear the factored flag
virtual size_t nRows() const =0
Return the number of rows in the matrix.
virtual doublereal rcond(doublereal a1norm)=0
Returns an estimate of the inverse of the condition number for the matrix.
GeneralMatrix(int matType)
Base Constructor.
virtual vector_fp::iterator begin()=0
Return an iterator pointing to the first element.
This file contains definitions of terms that are used in internal routines and are unlikely to need m...
virtual int factorQR()
Factors the A matrix using the QR algorithm, overwriting A.
virtual int factorAlgorithm() const =0
Return the factor algorithm used.
virtual ~GeneralMatrix()
Destructor. Does nothing.
virtual int factor()=0
Factors the A matrix, overwriting A.
virtual void zero()=0
Zero the matrix elements.
virtual doublereal & operator()(size_t i, size_t j)=0
Index into the (i,j) element.
virtual size_t checkRows(doublereal &valueSmall) const =0
Check to see if we have any zero rows in the Jacobian.
virtual void leftMult(const doublereal *const b, doublereal *const prod) const =0
Multiply b*A and write result to prod.
virtual void mult(const doublereal *b, doublereal *prod) const =0
Multiply A*b and write result to prod.
virtual bool factored() const
true if the current factorization is up to date with the matrix
virtual int solve(doublereal *b, size_t nrhs=1, size_t ldb=0)=0
Solves the Ax = b system returning x in the b spot.
virtual size_t nRowsAndStruct(size_t *const iStruct=0) const =0
Return the size and structure of the matrix.
virtual void copyData(const GeneralMatrix &y)=0
Copy the data from one array into another without doing any checking.
virtual size_t checkColumns(doublereal &valueSmall) const =0
Check to see if we have any zero columns in the Jacobian.
virtual doublereal *const * colPts()=0
Return a vector of const pointers to the columns.
GeneralMatrix & operator=(const GeneralMatrix &right)
Assignment operator.
virtual doublereal rcondQR()
Returns an estimate of the inverse of the condition number for the matrix.
Definitions for the classes that are thrown when Cantera experiences an error condition (also contain...
virtual void useFactorAlgorithm(int fAlgorithm)
Change the way the matrix is factored.