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.