61 std::vector< T > subscripts(dimensions.size());
63 std::vector<T> k(dimensions.size(),1);
64 for (
int ii = 0; ii < dimensions.size()-1; ++ii)
65 k[ii+1] = k[ii]*dimensions[ii];
68 if (index >= k.back()*dimensions.back())
69 throw std::out_of_range(
"in IndexToSubscript, index exceeds max based on dimension sizes");
72 for (
int ii = dimensions.size()-1; ii >= 0; --ii)
75 T J = (index -
I) / k[ii];
std::vector< T > IndexToSubscript(T index, std::vector< T > const &dimensions)
Convert a zero-based index to a zero-based subscript vector.
Definition utility.hpp:58