array, matrix & vector


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:

    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
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