| 17 | |
| 18 | // Default, C-style strides |
| 19 | inline std::vector<ssize_t> c_strides(const std::vector<ssize_t> &shape, ssize_t itemsize) { |
| 20 | auto ndim = shape.size(); |
| 21 | std::vector<ssize_t> strides(ndim, itemsize); |
| 22 | if (ndim > 0) { |
| 23 | for (size_t i = ndim - 1; i > 0; --i) { |
| 24 | strides[i - 1] = strides[i] * shape[i]; |
| 25 | } |
| 26 | } |
| 27 | return strides; |
| 28 | } |
| 29 | |
| 30 | // F-style strides; default when constructing an array_t with `ExtraFlags & f_style` |
| 31 | inline std::vector<ssize_t> f_strides(const std::vector<ssize_t> &shape, ssize_t itemsize) { |
no test coverage detected