array, matrix & vector¶
Synopsis:
template <typename ValueType, int Rank, typename TraversalOrder=void> class array;
template <typename ValueType, typename TraversalOrder=void> class matrix;
template <typename ValueType> class vector;
The library provides three basic containers:
- array: general (rectangular) N-dimensionnal array; models MutableCuboidArray concept.
- matrix: models the MutableMatrix concept.
- vector: models the MutableVector concept.
and the corresponding view classes: array_view, matrix_view, vector_view (Cf Views).
The matrix and vector are very similar to an array of dimension 2 and 1 respectivily, except for their algebra. Array form an array algebra, where operation are done element-wise, while matrix and vector form the usual algebra and vector space of linear algebra.
Template parameters¶
Template parameter | Accepted type | Access in the class | Meaning |
---|---|---|---|
ValueType | any regular type (typically a scalar). | value_type | The type of the element of the array |
Rank | int | rank | The rank of the array |
TraversalOrder | ull_t | Traversal Order for loops and iterators |
NB: Rank is only present for array, since matrix have rank 2 and vector rank 1.
Member types¶
Member type | Definitions |
---|---|
value_type | ValueType |
view_type | The corresponding view type |
regular_type | The corresponding regular type i.e. the container itself |
Member constexpr¶
Member | Type | Definitions |
---|---|---|
rank | int | Rank of the container (Rank for array), 2 for matrix, 1 for vector |
Member functions¶
Member function | Meaning |
---|---|
(constructor) | |
(destructor) | |
operator = | assigns values to the container |
operator +=,-=,*=,/= | compound assignment operators |
operator () | element of access/views/lazy expressions |
begin/cbegin | returns iterator to the beginning |
end/cend | returns iterator to the end |
resize | resize the container |
bool is_empty() const | Is the array empty ? |
Non-member functions¶
Member function | Meaning |
---|---|
swap | Swap of 2 containers |
deep_swap | Deep swap of the data of 2 containers ??? |
operator<< | Writing to stream |