Template Class Matrix¶
- Defined in File Matrix.h
Inheritance Relationships¶
Derived Type¶
public necsim::Map< T >(Template Class Map)
Class Documentation¶
-
template<class
T>
classMatrix¶ A class containing the Matrix object, set up as an array of Row objects. Includes basic operations, as well as the importCsv() function for more advanced reading from file.
- Template Parameters
T: the type of the values in the matrix
Subclassed by necsim::Map< T >
Public Functions
-
Matrix(unsigned long rows = 0, unsigned long cols = 0)¶ The standard constructor.
- Parameters
rows: optionally provide the number of rows.cols: optionally provide the number of columns.
-
virtual
~Matrix()¶ The destructor.
-
void
setSize(unsigned long rows, unsigned long cols) Sets the matrix size. Similar concept to that for Rows.
- Parameters
rows: the number of rows.cols: the number of columns.
-
unsigned long
getCols() const Getter for the number of columns.
- Return
- the number of columns.
-
unsigned long
getRows() const Getter for the number of rows.
- Return
- the number of rows.
-
void
fill(T val) Fills the matrix with the given value.
- Parameters
val: the value to fill
-
unsigned long
index(const unsigned long &row, const unsigned long &col) const Gets the index of a particular row and column in the matrix.
- Return
- the index of row and column within the matrix
- Parameters
row: the row number to indexcol: the column number to index
-
T &
get(const unsigned long &row, const unsigned long &col) Gets the value at a particular index.
- Return
- the value at the specified row and column
- Parameters
row: the row number to get the value atcol: the column number to get the value at
-
const T &
get(const unsigned long &row, const unsigned long &col) const Gets the value at a particular index.
- Return
- the value at the specified row and column
- Parameters
row: the row number to get the value atcol: the column number to get the value at
-
T
getCopy(const unsigned long &row, const unsigned long &col) const Gets the value at a particular index.
- Return
- the value at the specified row and column
- Parameters
row: the row number to get the value atcol: the column number to get the value at
-
vector<T>::iterator
begin() Returns iterators for range-based for loops.
- Return
- iterator to the start of the vector
-
vector<T>::iterator
end() Returns end iterators for range-based for loops.
- Return
- iterator to the end of the vector
-
vector<T>::const_iterator
begin() const Returns iterators for range-based for loops.
- Return
- iterator to the start of the vector
-
vector<T>::const_iterator
end() const Returns end iterators for range-based for loops.
- Return
- iterator to the end of the vector
-
double
getMean() const Gets the arithmetic mean of the Matrix.
- Return
- the mean value in the matrix
-
T
sum() const
-
Matrix &
operator=(const Matrix &m)¶ Overloading the = operator.
- Parameters
m: the matrix to copy from.
-
Matrix
operator+(const Matrix &m) const Overloading the + operator.
- Note
- If matrices are of different sizes, the operation is performed on the 0 to minimum values of each dimension.
- Return
- the matrix object which is the sum of the two matrices.
- Parameters
m: the matrix to add to this matrix.
-
Matrix
operator-(const Matrix &m) const Overloading the - operator.
- Note
- If matrices are of different sizes, the operation is performed on the 0 to minimum values of each dimension.
- Return
- the matrix object which is the subtraction of the two matrices.
- Parameters
m: the matrix to subtract from this matrix.
-
Matrix &
operator+=(const Matrix &m) Overloading the += operator so that the new object is written to the current object.
- Note
- If matrices are of different sizes, the operation is performed on the 0 to minimum values of each dimension.
- Parameters
m: the Matrix object to add to this matrix.
-
Matrix &
operator-=(const Matrix &m) Overloading the -= operator so that the new object is written to the current object.
- Note
- If matrices are of different sizes, the operation is performed on the 0 to minimum values of each dimension.
- Parameters
m: the Matrix object to subtract from this matrix.
-
Matrix
operator*(const double s) const Overloading the * operator for scaling.
- Note
- If matrices are of different sizes, the operation is performed on the 0 to minimum values of each dimension.
- Return
- the scaled matrix.
- Parameters
s: the constant to scale the matrix by.
-
Matrix
operator*(Matrix &m) const Overloading the * operator for matrix multiplication.
- Note
- If matrices are of different sizes, the operation is performed on the 0 to minimum values of each dimension. Multiplies each value in the matrix with its corresponding value in the other matrix.
- Return
- the product of each ith,jth value of the matrix.
- Parameters
m: the matrix to multiply with
-
Matrix &
operator*=(const double s) Overloading the *= operator so that the new object is written to the current object.
- Note
- If matrices are of different sizes, the operation is performed on the 0 to minimum values of each dimension.
- Parameters
m: the Matrix object to add to this matrix.
-
Matrix &
operator*=(const Matrix &m) Overloading the *= operator so that the new object is written to the current object.
- Note
- If matrices are of different sizes, the operation is performed on the 0 to minimum values of each dimension.
- Parameters
m: the Matrix object to add to this matrix.
-
Matrix
operator/(const double s) const Overloading the / operator for scaling.
- Note
- If matrices are of different sizes, the operation is performed on the 0 to minimum values of each dimension.
- Return
- the scaled matrix.
- Parameters
s: the constant to scale the matrix by.
-
Matrix &
operator/=(const double s) Overloading the /= operator so that the new object is written to the current object.
- Note
- If matrices are of different sizes, the operation is performed on the 0 to minimum values of each dimension.
- Parameters
m: the Matrix object to add to this matrix.
-
Matrix &
operator/=(const Matrix &m) Overloading the /= operator so that the new object is written to the current object.
- Note
- If matrices are of different sizes, the operation is performed on the 0 to minimum values of each dimension.
- Parameters
m: the Matrix object to add to this matrix.
-
void
setValue(const unsigned long &row, const unsigned long &col, const char *value) Sets the value at the specified indices, including handling type conversion from char to the template class.
- Parameters
row: the row index.col: the column index.value: the value to set
-
void
setValue(const unsigned long &row, const unsigned long &col, const T &value) Sets the value at the specified indices, including handling type conversion from char to the template class.
- Parameters
row: the row index.col: the column index.value: the value to set
-
virtual void
import(const string &filename)¶ Imports the matrix from a csv file.
- Exceptions
runtime_error: if type detection for the filename fails.
- Parameters
filename: the file to import.
-
bool
importCsv(const string &filename) Imports the matrix from a csv file using the fast-csv-parser method.
- Return
- true if the csv can be imported.
- Parameters
filename: the path to the file to import.Imports the matrix from a csv file using the standard, slower method.
- Parameters
filename: the path to the file to import.
Protected Attributes
-
unsigned long
num_cols= {}
-
unsigned long
num_rows= {}
-
vector<T>
matrix
Friends
-
ostream &
writeOut(ostream &os, const Matrix &m)¶ Writes the object to the output stream.
- Note
- This is done slightly inefficiently to preserve the output taking the correct form.
- Return
- the output stream
- Parameters
os: the output stream to write tom: the object to write out
-
istream &
readIn(istream &is, Matrix &m)¶ Reads in from the input stream.
- Return
- Parameters
is: the input stream to read fromm: the object to read into
-
ostream &
operator<<(ostream &os, const Matrix &m)¶ Overloading the << operator for outputting to an output stream. This can be used for writing to console or storing to file.
- Return
- the output stream.
- Parameters
os: the output stream.m: the matrix to output.
-
istream &
operator>>(istream &is, Matrix &m)¶ Overloading the >> operator for inputting from an input stream. This can be used for writing to console or storing to file.
- Return
- the input stream.
- Parameters
is: the input stream.m: the matrix to input to.