| 63 | |
| 64 | template <size_t N> |
| 65 | static inline std::array<int, N> make_stride (const std::array<int, N> &size) |
| 66 | { |
| 67 | std::array<int, N> stride; |
| 68 | |
| 69 | stride[N - 1] = 1; |
| 70 | for (int i = (int)N - 2; i >= 0; i--) |
| 71 | { |
| 72 | stride[i] = stride[i + 1] * size[i + 1]; |
| 73 | } |
| 74 | |
| 75 | return stride; |
| 76 | } |
| 77 | |
| 78 | /// Class to represent NDArrays, row major order, continuous memory |
| 79 | template <typename T, size_t Dim> |