
#ifndef _INDEX_CONSTRUCTOR_HPP_
#define _INDEX_CONSTRUCTOR_HPP_

/*! @name
These constructors generated by @c index_constructor.py mimic the list literal
of python. Constructors with more arguments exist but they are omitted from this
document for simplicity.
*/
//! @{
Index(size_t j0) : idx(1) { idx[0] = j0; };
Index(size_t j0, size_t j1) : idx(2) {
  idx[0] = j0;
  idx[1] = j1;
};
Index(size_t j0, size_t j1, size_t j2) : idx(3) {
  idx[0] = j0;
  idx[1] = j1;
  idx[2] = j2;
};

//! @cond
Index(size_t j0, size_t j1, size_t j2, size_t j3) : idx(4) {
  idx[0] = j0;
  idx[1] = j1;
  idx[2] = j2;
  idx[3] = j3;
};
Index(size_t j0, size_t j1, size_t j2, size_t j3, size_t j4) : idx(5) {
  idx[0] = j0;
  idx[1] = j1;
  idx[2] = j2;
  idx[3] = j3;
  idx[4] = j4;
};
Index(size_t j0, size_t j1, size_t j2, size_t j3, size_t j4, size_t j5)
    : idx(6) {
  idx[0] = j0;
  idx[1] = j1;
  idx[2] = j2;
  idx[3] = j3;
  idx[4] = j4;
  idx[5] = j5;
};
Index(size_t j0, size_t j1, size_t j2, size_t j3, size_t j4, size_t j5,
      size_t j6)
    : idx(7) {
  idx[0] = j0;
  idx[1] = j1;
  idx[2] = j2;
  idx[3] = j3;
  idx[4] = j4;
  idx[5] = j5;
  idx[6] = j6;
};
Index(size_t j0, size_t j1, size_t j2, size_t j3, size_t j4, size_t j5,
      size_t j6, size_t j7)
    : idx(8) {
  idx[0] = j0;
  idx[1] = j1;
  idx[2] = j2;
  idx[3] = j3;
  idx[4] = j4;
  idx[5] = j5;
  idx[6] = j6;
  idx[7] = j7;
};
Index(size_t j0, size_t j1, size_t j2, size_t j3, size_t j4, size_t j5,
      size_t j6, size_t j7, size_t j8)
    : idx(9) {
  idx[0] = j0;
  idx[1] = j1;
  idx[2] = j2;
  idx[3] = j3;
  idx[4] = j4;
  idx[5] = j5;
  idx[6] = j6;
  idx[7] = j7;
  idx[8] = j8;
};
Index(size_t j0, size_t j1, size_t j2, size_t j3, size_t j4, size_t j5,
      size_t j6, size_t j7, size_t j8, size_t j9)
    : idx(10) {
  idx[0] = j0;
  idx[1] = j1;
  idx[2] = j2;
  idx[3] = j3;
  idx[4] = j4;
  idx[5] = j5;
  idx[6] = j6;
  idx[7] = j7;
  idx[8] = j8;
  idx[9] = j9;
};
Index(size_t j0, size_t j1, size_t j2, size_t j3, size_t j4, size_t j5,
      size_t j6, size_t j7, size_t j8, size_t j9, size_t j10)
    : idx(11) {
  idx[0] = j0;
  idx[1] = j1;
  idx[2] = j2;
  idx[3] = j3;
  idx[4] = j4;
  idx[5] = j5;
  idx[6] = j6;
  idx[7] = j7;
  idx[8] = j8;
  idx[9] = j9;
  idx[10] = j10;
};
Index(size_t j0, size_t j1, size_t j2, size_t j3, size_t j4, size_t j5,
      size_t j6, size_t j7, size_t j8, size_t j9, size_t j10, size_t j11)
    : idx(12) {
  idx[0] = j0;
  idx[1] = j1;
  idx[2] = j2;
  idx[3] = j3;
  idx[4] = j4;
  idx[5] = j5;
  idx[6] = j6;
  idx[7] = j7;
  idx[8] = j8;
  idx[9] = j9;
  idx[10] = j10;
  idx[11] = j11;
};
Index(size_t j0, size_t j1, size_t j2, size_t j3, size_t j4, size_t j5,
      size_t j6, size_t j7, size_t j8, size_t j9, size_t j10, size_t j11,
      size_t j12)
    : idx(13) {
  idx[0] = j0;
  idx[1] = j1;
  idx[2] = j2;
  idx[3] = j3;
  idx[4] = j4;
  idx[5] = j5;
  idx[6] = j6;
  idx[7] = j7;
  idx[8] = j8;
  idx[9] = j9;
  idx[10] = j10;
  idx[11] = j11;
  idx[12] = j12;
};
Index(size_t j0, size_t j1, size_t j2, size_t j3, size_t j4, size_t j5,
      size_t j6, size_t j7, size_t j8, size_t j9, size_t j10, size_t j11,
      size_t j12, size_t j13)
    : idx(14) {
  idx[0] = j0;
  idx[1] = j1;
  idx[2] = j2;
  idx[3] = j3;
  idx[4] = j4;
  idx[5] = j5;
  idx[6] = j6;
  idx[7] = j7;
  idx[8] = j8;
  idx[9] = j9;
  idx[10] = j10;
  idx[11] = j11;
  idx[12] = j12;
  idx[13] = j13;
};
Index(size_t j0, size_t j1, size_t j2, size_t j3, size_t j4, size_t j5,
      size_t j6, size_t j7, size_t j8, size_t j9, size_t j10, size_t j11,
      size_t j12, size_t j13, size_t j14)
    : idx(15) {
  idx[0] = j0;
  idx[1] = j1;
  idx[2] = j2;
  idx[3] = j3;
  idx[4] = j4;
  idx[5] = j5;
  idx[6] = j6;
  idx[7] = j7;
  idx[8] = j8;
  idx[9] = j9;
  idx[10] = j10;
  idx[11] = j11;
  idx[12] = j12;
  idx[13] = j13;
  idx[14] = j14;
};
Index(size_t j0, size_t j1, size_t j2, size_t j3, size_t j4, size_t j5,
      size_t j6, size_t j7, size_t j8, size_t j9, size_t j10, size_t j11,
      size_t j12, size_t j13, size_t j14, size_t j15)
    : idx(16) {
  idx[0] = j0;
  idx[1] = j1;
  idx[2] = j2;
  idx[3] = j3;
  idx[4] = j4;
  idx[5] = j5;
  idx[6] = j6;
  idx[7] = j7;
  idx[8] = j8;
  idx[9] = j9;
  idx[10] = j10;
  idx[11] = j11;
  idx[12] = j12;
  idx[13] = j13;
  idx[14] = j14;
  idx[15] = j15;
};

//! @endcond

//! @}
#endif  // _INDEX_CONSTRUCTOR_HPP_
