|
template<class T , size_t N, class G > |
Array< T, N > | generateArray (G generator) |
| Generate an array using the given generator. More...
|
|
template<size_t N, class G > |
auto | generateArray (G generator) -> Array< decltype(generator()), N > |
| Generate an array using the given generator. More...
|
|
template<class T , size_t N, class U > |
Array< T, N > | copyAs (const Array< U, N > &src) |
| Copy an Array to an Array of a different type. More...
|
|
template<class F , class U , size_t N> |
Array< decltype(F{}(U{})), N > | apply (const Array< U, N > &src, F f) |
| Apply a function to all elements of the array and return a copy. More...
|
|
template<class T , size_t N, class... Args> |
Array< T, N > | fillArray (Args... args) |
| Fill the array with the same value for each element. More...
|
|
template<class T , size_t N, class U , class V = U> |
Array< T, N > | generateIncrementalArray (U start=0, V increment=V(1)) |
| Generate an array where the first value is given, and the subsequent values are calculated as the previous value incremented with a given value:
\( x[0] = \mathrm{start} \)
\( x[k+1] = x[k] + \mathrm{increment} \) . More...
|
|
template<class T , size_t M, size_t N> |
Array< T, M+N > | cat (const Array< T, M > &a, const Array< T, N > &b) |
| Concatenate two arrays. More...
|
|
template<class T1 , class T2 , size_t N1, size_t N2, bool Reverse1, bool Reverse2, bool Const1, bool Const2> |
Array< decltype(T1() *T2()), N1+N2 - 1 > | distribute (const ArraySlice< T1, N1, Reverse1, Const1 > &a, const ArraySlice< T2, N2, Reverse2, Const2 > &b) |
|
template<class T1 , class T2 , size_t N1, size_t N2, bool Reverse1, bool Const1> |
Array< decltype(T1() *T2()), N1+N2 - 1 > | distribute (const ArraySlice< T1, N1, Reverse1, Const1 > &a, const Array< T2, N2 > &b) |
|
template<class T1 , class T2 , size_t N1, size_t N2, bool Reverse2, bool Const2> |
Array< decltype(T1() *T2()), N1+N2 - 1 > | distribute (const Array< T1, N1 > &a, const ArraySlice< T2, N2, Reverse2, Const2 > &b) |
|
template<class T1 , class T2 , size_t N1, size_t N2> |
Array< decltype(T1() *T2()), N1+N2 - 1 > | distribute (const Array< T1, N1 > &a, const Array< T2, N2 > &b) |
|
template<size_t Start, size_t End> |
auto | slice () -> ArraySlice< T, abs_diff(Start, End)+1,(End< Start), false > |
|
template<size_t Start, size_t End> |
auto | slice () const -> ArraySlice< T, abs_diff(Start, End)+1,(End< Start), true > |
|
template<size_t Start, size_t End> |
auto | slice () const -> ArraySlice< T, abs_diff(End, Start)+1, Reverse ^(End< Start), Const > |
|
template<class T , size_t N, bool Reverse, bool Const> |
ArraySlice< T, N, Reverse, Const >::iterator | operator+ (typename ArraySlice< T, N, Reverse, Const >::iterator::difference_type n, typename ArraySlice< T, N, Reverse, Const >::iterator a) |
| <T, N, Reverse, Const>::iterator More...
|
|
template<class T1 , class T2 , size_t N1, size_t N2, bool Reverse1, bool Reverse2, bool Const1, bool Const2> |
bool | operator== (ArraySlice< T1, N1, Reverse1, Const1 > a, ArraySlice< T2, N2, Reverse2, Const2 > b) |
| Slice == Slice. More...
|
|
template<class T1 , class T2 , size_t N1, size_t N2, bool Reverse2, bool Const2> |
bool | operator== (const Array< T1, N1 > &a, ArraySlice< T2, N2, Reverse2, Const2 > b) |
| Array == Slice. More...
|
|
template<class T1 , class T2 , size_t N1, size_t N2, bool Reverse1, bool Const1> |
bool | operator== (ArraySlice< T1, N1, Reverse1, Const1 > a, const Array< T2, N2 > &b) |
| Slice == Array. More...
|
|
template<class T1 , class T2 , size_t N1, size_t N2, bool Reverse1, bool Reverse2, bool Const1, bool Const2> |
bool | operator!= (ArraySlice< T1, N1, Reverse1, Const1 > a, ArraySlice< T2, N2, Reverse2, Const2 > b) |
| Slice != Slice. More...
|
|
template<class T1 , class T2 , size_t N1, size_t N2, bool Reverse2, bool Const2> |
bool | operator!= (const Array< T1, N1 > &a, ArraySlice< T2, N2, Reverse2, Const2 > b) |
| Array != Slice. More...
|
|
template<class T1 , class T2 , size_t N1, size_t N2, bool Reverse1, bool Const1> |
bool | operator!= (ArraySlice< T1, N1, Reverse1, Const1 > a, const Array< T2, N2 > &b) |
| Slice != Array. More...
|
|
template<class T1 , class T2 , size_t N1, size_t N2, bool Reverse1, bool Reverse2, bool Const1, bool Const2> |
Array< decltype(T1 {}+T2 {}), N1 > | operator+ (ArraySlice< T1, N1, Reverse1, Const1 > a, ArraySlice< T2, N2, Reverse2, Const2 > b) |
| Slice + Slice. More...
|
|
template<class T1 , class T2 , size_t N1, size_t N2> |
Array< decltype(T1 {}+T2 {}), N1 > | operator+ (const Array< T1, N1 > &a, const Array< T2, N2 > &b) |
| Array + Array. More...
|
|
template<class T1 , class T2 , size_t N1, size_t N2, bool Reverse1, bool Reverse2, bool Const1, bool Const2> |
const ArraySlice< T1, N1, Reverse1, Const1 > & | operator+= (const ArraySlice< T1, N1, Reverse1, Const1 > &a, const ArraySlice< T2, N2, Reverse2, Const2 > &b) |
| Slice += Slice. More...
|
|
template<class T1 , class T2 , size_t N1, size_t N2> |
Array< T1, N1 > & | operator+= (Array< T1, N1 > &a, const Array< T2, N2 > &b) |
| Array += Array. More...
|
|
template<class T1 , class T2 , size_t N1, size_t N2, bool Reverse1, bool Reverse2, bool Const1, bool Const2> |
Array< decltype(T1 {} - T2 {}), N1 > | operator- (ArraySlice< T1, N1, Reverse1, Const1 > a, ArraySlice< T2, N2, Reverse2, Const2 > b) |
| Slice - Slice. More...
|
|
template<class T1 , class T2 , size_t N1, size_t N2> |
Array< decltype(T1 {} - T2 {}), N1 > | operator- (const Array< T1, N1 > &a, const Array< T2, N2 > &b) |
| Array - Array. More...
|
|
template<class T1 , class T2 , size_t N1, size_t N2, bool Reverse1, bool Reverse2, bool Const1, bool Const2> |
const ArraySlice< T1, N1, Reverse1, Const1 > & | operator-= (const ArraySlice< T1, N1, Reverse1, Const1 > &a, const ArraySlice< T2, N2, Reverse2, Const2 > &b) |
| Slice -= Slice. More...
|
|
template<class T1 , class T2 , size_t N1, size_t N2> |
Array< T1, N1 > & | operator-= (Array< T1, N1 > &a, const Array< T2, N2 > &b) |
| Array -= Array. More...
|
|
template<class T1 , class T2 , size_t N1, bool Reverse1, bool Const1> |
Array< decltype(T1 {} *T2 {}), N1 > | operator* (ArraySlice< T1, N1, Reverse1, Const1 > a, T2 b) |
| Slice * Scalar. More...
|
|
template<class T1 , class T2 , size_t N1> |
Array< decltype(T1 {} *T2 {}), N1 > | operator* (const Array< T1, N1 > &a, T2 b) |
| Array * Scalar. More...
|
|
template<class T1 , class T2 , size_t N2, bool Reverse2, bool Const2> |
Array< decltype(T1 {} *T2 {}), N2 > | operator* (T1 a, ArraySlice< T2, N2, Reverse2, Const2 > b) |
| Scalar * Slice. More...
|
|
template<class T1 , class T2 , size_t N2> |
Array< decltype(T1 {} *T2 {}), N2 > | operator* (T1 a, const Array< T2, N2 > &b) |
| Scalar * Array. More...
|
|
template<class T1 , class T2 , size_t N1, bool Reverse1, bool Const1> |
const ArraySlice< T1, N1, Reverse1, Const1 > & | operator*= (const ArraySlice< T1, N1, Reverse1, Const1 > &a, T2 b) |
| Slice *= Scalar. More...
|
|
template<class T1 , class T2 , size_t N1> |
Array< T1, N1 > & | operator*= (Array< T1, N1 > &a, T2 b) |
| Array *= Scalar. More...
|
|
template<class T1 , class T2 , size_t N1, bool Reverse1, bool Const1> |
Array< decltype(T1 {}/T2 {}), N1 > | operator/ (ArraySlice< T1, N1, Reverse1, Const1 > a, T2 b) |
| Slice / Scalar. More...
|
|
template<class T1 , class T2 , size_t N1> |
Array< decltype(T1 {}/T2 {}), N1 > | operator/ (const Array< T1, N1 > &a, T2 b) |
| Array / Scalar. More...
|
|
template<class T1 , class T2 , size_t N1, bool Reverse1, bool Const1> |
const ArraySlice< T1, N1, Reverse1, Const1 > & | operator/= (const ArraySlice< T1, N1, Reverse1, Const1 > &a, T2 b) |
| Slice /= Scalar. More...
|
|
template<class T1 , class T2 , size_t N1> |
Array< T1, N1 > & | operator/= (Array< T1, N1 > &a, T2 b) |
| Array /= Scalar. More...
|
|
template<class T , size_t N, bool Reverse, bool Const> |
Array< decltype(-T {}), N > | operator- (ArraySlice< T, N, Reverse, Const > a) |
| -Slice More...
|
|
template<class T , size_t N> |
Array< decltype(-T {}), N > | operator- (const Array< T, N > &a) |
| -Array More...
|
|