6 #ifndef MYRAMATH_EXPRESSION_INDEX_H 7 #define MYRAMATH_EXPRESSION_INDEX_H 14 #include <myramath/MYRAMATH_EXPORT.h> 16 #ifdef MYRAMATH_ENABLE_CPP11 17 #include <initializer_list> 30 for (
int n = 0; n < N; ++n)
37 for (
int n = 0; n < N; ++n)
41 #ifdef MYRAMATH_ENABLE_CPP11 44 Index(std::initializer_list<int> list)
46 for (
int n = 0; n < N; ++n)
47 contents[n] = *(list.begin()+n);
53 const int& operator [](
int n)
const 54 {
return contents[n]; }
55 int& operator [](
int n)
56 {
return contents[n]; }
59 const int* data()
const 65 const int* begin()
const 66 {
return contents+0; }
67 const int* end()
const 68 {
return contents+N; }
72 {
return contents+0; }
74 {
return contents+N; }
77 template<
int F>
Index<F> first()
const 81 template<
int L>
Index<L> last()
const 82 {
return Index<L>(this->begin()+N-L); }
94 for (
int n = 0; n < N; ++n)
108 for (
int n = 0; n < N1; ++n)
110 for (
int n = 0; n < N2; ++n)
116 MYRAMATH_EXPORT
Index<1> make_Index(
int i);
117 MYRAMATH_EXPORT
Index<2> make_Index(
int i,
int j);
118 MYRAMATH_EXPORT
Index<3> make_Index(
int i,
int j,
int k);
std::vector< T > concatenate(const std::vector< T > &v1, const std::vector< T > &v2)
Returns [v1 v2].
Definition: concatenate.h:19
Essentially a std::array<int,N>, provided for backwards compatibility.
Definition: Index.h:23