10#ifndef CT_GENERALMATRIX_H
11#define CT_GENERALMATRIX_H
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;
98 virtual size_t nRows()
const = 0;
112 virtual int solve(doublereal* b,
size_t nrhs=1,
size_t ldb=0) = 0;
147 virtual vector_fp::iterator
begin() = 0;
153 virtual vector_fp::const_iterator
begin()
const = 0;
172 virtual size_t checkRows(doublereal& valueSmall)
const = 0;
virtual doublereal *const * colPts()=0
Return a vector of const pointers to the columns.
virtual doublereal rcond(doublereal a1norm)=0
Returns an estimate of the inverse of the condition number for the matrix.
virtual vector_fp::const_iterator begin() const =0
Return a const iterator pointing to the first element.
virtual int factor()=0
Factors the A matrix, overwriting A.
virtual doublereal rcondQR()
Returns an estimate of the inverse of the condition number for the matrix.
virtual void clearFactorFlag()
clear the factored flag
virtual doublereal & operator()(size_t i, size_t j)=0
Index into the (i,j) element.
virtual doublereal * ptrColumn(size_t j)=0
Return a pointer to the top of column j, columns are assumed to be contiguous in memory.
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 int factorQR()
Factors the A matrix using the QR algorithm, overwriting A.
virtual vector_fp::iterator begin()=0
Return an iterator pointing to the first element.
virtual int factorAlgorithm() const =0
Return the factor algorithm used.
virtual doublereal oneNorm() const =0
Calculate the one norm of the matrix.
virtual size_t nRows() const =0
Return the number of rows in the matrix.
virtual size_t checkColumns(doublereal &valueSmall) const =0
Check to see if we have any zero columns in the Jacobian.
GeneralMatrix()
Base Constructor.
virtual size_t checkRows(doublereal &valueSmall) const =0
Check to see if we have any zero rows in the Jacobian.
virtual doublereal operator()(size_t i, size_t j) const =0
Constant Index into the (i,j) element.
virtual void zero()=0
Zero the matrix elements.
int m_factored
Indicates whether the matrix is factored.
virtual void useFactorAlgorithm(int fAlgorithm)
Change the way the matrix is factored.
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 void leftMult(const doublereal *const b, doublereal *const prod) const =0
Multiply b*A and write result to prod.
An error indicating that an unimplemented function has been called.
This file contains definitions of constants, types and terms that are used in internal routines and a...
Definitions for the classes that are thrown when Cantera experiences an error condition (also contain...
This file contains definitions for utility functions and text for modules, inputfiles,...
Namespace for the Cantera kernel.