#include <matrix_template.h>
Public Member Functions | |
| matrix_template (void) | |
| matrix_template (size_t n, size_t m) | |
| matrix_template (const T &val, size_t n, size_t m) | |
| matrix_template (const T *p, size_t n, size_t m) | |
| matrix_template (const std::valarray< T > &vv, size_t n, size_t m) | |
| size_t | rows (void) const |
| size_t | columns (void) const |
| T | operator() (size_t i, size_t j) const |
| T & | operator() (size_t i, size_t j) |
Protected Attributes | |
| size_t | nrows |
| number of rows | |
| size_t | ncols |
| number of columns | |
| std::valarray< T > | v |
Friends | |
| template<class TT > | |
| matrix_template< TT > | operator+ (const matrix_template< TT > &v1, const matrix_template< TT > &v2) |
| template<class TT > | |
| matrix_template< TT > | operator- (const matrix_template< TT > &v1, const matrix_template< TT > &v2) |
| template<class TT > | |
| matrix_template< TT > | operator+ (const matrix_template< TT > &v1) |
| template<class TT > | |
| matrix_template< TT > | operator- (const matrix_template< TT > &v1) |
| template<class TT , class SS > | |
| matrix_template< TT > | operator* (const SS &c, const matrix_template< TT > &v2) |
| template<class TT , class SS > | |
| matrix_template< TT > | operator* (const matrix_template< TT > &v1, const SS &c) |
| template<class TT , class SS > | |
| matrix_template< TT > | operator/ (const matrix_template< TT > &v1, const SS &c) |
| template<class TT > | |
| matrix_template< TT > | operator* (const matrix_template< TT > &v1, const matrix_template< TT > &v2) |
| template<class TT > | |
| vector_template< TT > | operator* (const matrix_template< TT > &v1, const vector_template< TT > &v2) |
| template<class TT > | |
| vector_template< TT > | operator* (const vector_template< TT > &v1, const matrix_template< TT > &v2) |
| template<class TT > | |
| std::ostream & | operator<< (std::ostream &os, const matrix_template< TT > &v) |
The class matrix_template is a template class for two-dimensional matrices.
The representation is based on a valarray with value semantics. This class is designed for matrices of modest size.
The interface is more restricted than for a valarray, e.g. there is no operator+ (const matrix_template<T> & v1, const T & c).
If efficiency becomes an issue, one can defer evaluation and introduce closures (B. Stroustrup, The C++ Programming Language, 3rd edition, 22.4.7)
| matrix_template | ( | void | ) | [inline] |
Default constructor
| matrix_template | ( | size_t | n, | |
| size_t | m | |||
| ) | [inline] |
Construct a matrix_template of size
.
| matrix_template | ( | const T & | val, | |
| size_t | n, | |||
| size_t | m | |||
| ) | [inline] |
Construct a matrix_template of size
and initialize each component with val.
| matrix_template | ( | const T * | p, | |
| size_t | n, | |||
| size_t | m | |||
| ) | [inline] |
Construct from an array.
| matrix_template | ( | const std::valarray< T > & | vv, | |
| size_t | n, | |||
| size_t | m | |||
| ) | [inline] |
Construct from a valarray.
| size_t columns | ( | void | ) | const [inline] |
Returns the number of columns of a matrix_template.
| T & operator() | ( | size_t | i, | |
| size_t | j | |||
| ) | [inline] |
Subscription via ()
| T operator() | ( | size_t | i, | |
| size_t | j | |||
| ) | const [inline] |
Subscription via ()
| size_t rows | ( | void | ) | const [inline] |
Returns the number of rows of a matrix_template.
1.6.2-20100208