int ResidJacEval::evalJacobian(const doublereal t, const doublereal delta_t, doublereal cj, const doublereal* const y, const doublereal* const ydot, DenseMatrix& J, doublereal* const resid) { doublereal* const* jac_colPts = J.colPts(); return evalJacobianDP(t, delta_t, cj, y, ydot, jac_colPts, resid); }
void DenseMatrix::mult(const DenseMatrix& B, DenseMatrix& prod) const { if (m_ncols != B.nColumns() || m_nrows != B.nRows() || m_ncols != m_nrows || m_ncols != prod.nColumns() || m_nrows != prod.nColumns()) { throw CanteraError("mult(const DenseMatrix &B, DenseMatrix &prod)", "Cannot multiply matrices that are not square and/or not the same size."); } const doublereal* const* bcols = B.const_colPts(); doublereal* const* prodcols = prod.colPts(); for (size_t col=0; col < m_ncols; ++col) { // Loop over ncols multiplying A*column of B and storing in corresponding prod column mult(bcols[col], prodcols[col]); } }