10 #ifndef CT_GENERALMATRIX_H 11 #define CT_GENERALMATRIX_H 30 virtual void zero() = 0;
37 virtual void mult(
const doublereal* b, doublereal* prod)
const = 0;
44 virtual void leftMult(
const doublereal*
const b, doublereal*
const prod)
const = 0;
79 virtual doublereal
rcond(doublereal a1norm) = 0;
95 virtual doublereal
oneNorm()
const = 0;
98 virtual size_t nRows()
const = 0;
112 virtual int solve(doublereal* b,
size_t nrhs=1,
size_t ldb=0) = 0;
125 virtual doublereal*
ptrColumn(
size_t j) = 0;
133 virtual doublereal&
operator()(
size_t i,
size_t j) = 0;
141 virtual doublereal
operator()(
size_t i,
size_t j)
const = 0;
147 virtual vector_fp::iterator
begin() = 0;
153 virtual vector_fp::const_iterator
begin()
const = 0;
162 virtual doublereal*
const*
colPts() = 0;
172 virtual size_t checkRows(doublereal& valueSmall)
const = 0;
182 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.
An error indicating that an unimplemented function has been called.
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()
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.
This file contains definitions for utility functions and text for modules, inputfiles, logs, textlogs, (see Input File Handling, Diagnostic Output, and Writing messages to the screen).
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 bool factored() const
true if the current factorization is up to date with the matrix
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 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 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.
Namespace for the Cantera kernel.
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.