47 Array2D(
const size_t m,
const size_t n,
const double v=0.0);
59 Array2D(
const size_t m,
const size_t n, span<const double> values);
73 virtual void resize(
size_t n,
size_t m,
double v=0.0);
89 void setRow(
size_t n, span<const double> rw);
97 void getRow(
size_t n, span<double> rw)
const;
162 double value(
size_t i,
size_t j)
const {
182 const vector<double>&
data()
const {
186 void operator*=(
double a);
189 span<double>
col(
size_t j) {
194 span<const double>
col(
size_t j)
const {
A class for 2D arrays stored in column-major (Fortran-compatible) form.
vector< double > m_data
Data stored in a single array.
span< const double > col(size_t j) const
Return a read-only span over column j.
void zero()
Set all of the entries to zero.
Array2D()=default
Default constructor.
size_t m_nrows
Number of rows.
void getColumn(size_t m, span< double > col) const
Get the values in column m.
void setRow(size_t n, span< const double > rw)
Set the nth row to array rw.
void appendColumn(span< const double > c)
Append a column to the existing matrix using a std vector.
void getRow(size_t n, span< double > rw) const
Get the nth row and return it in a vector.
size_t nRows() const
Number of rows.
size_t m_ncols
Number of columns.
double value(size_t i, size_t j) const
Returns the value of a single matrix entry.
double & operator()(size_t i, size_t j)
Allows setting elements using the syntax A(i,j) = x.
size_t nColumns() const
Number of columns.
const vector< double > & data() const
Return a const reference to the data vector.
void setColumn(size_t m, span< const double > col)
Set the values in column m to those in array col.
span< double > col(size_t j)
Return a writable span over column j.
vector< double > & data()
Return a reference to the data vector.
double & value(size_t i, size_t j)
Returns a changeable reference to position in the matrix.
double operator()(size_t i, size_t j) const
Allows retrieving elements using the syntax x = A(i,j).
virtual void resize(size_t n, size_t m, double v=0.0)
Resize the array, and fill the new entries with 'v'.
This file contains definitions of constants, types and terms that are used in internal routines and a...
Namespace for the Cantera kernel.
void operator*=(Array2D &m, double a)
Overload the times equals operator for multiplication of a matrix and a scalar.
std::ostream & operator<<(std::ostream &s, const Array2D &m)
Output the current contents of the Array2D object.