25 #ifndef GRIDCONTAINER_GRIDINDEXHELPER_H 26 #define GRIDCONTAINER_GRIDINDEXHELPER_H 34 namespace GridContainer {
53 template<
typename... AxesTypes>
83 size_t axisIndex(
size_t axis,
size_t array_index)
const;
106 template <
typename Coord>
110 template <
typename Coord,
typename... RestCoords>
112 Coord coord, RestCoords... rest_coords)
const;
128 template<
typename... AxesTypes>
void checkAllFixedAreZero(const std::map< size_t, size_t > &fixed_indices, Coord coord) const
Checks if any of the given coordinates is fixed and not zero.
std::vector< size_t > m_axes_index_factors
size_t axisIndex(size_t axis, size_t array_index) const
std::vector< size_t > m_axes_sizes
Helper class for converting multi-dimensional grid coordinates to the index of a long data array and ...
GridIndexHelper & operator=(GridIndexHelper< AxesTypes... > &&)=default
Provides information related with an axis of a GridContainer.
std::vector< std::string > m_axes_names
virtual ~GridIndexHelper()=default
Default destructor.
GridIndexHelper< AxesTypes... > makeGridIndexHelper(const std::tuple< GridAxis< AxesTypes >... > &axes_tuple)
GridIndexHelper(const std::tuple< GridAxis< AxesTypes >... > &axes_tuple)
size_t totalIndex(decltype(std::declval< GridAxis< AxesTypes >>().size())... coords) const
size_t totalIndexChecked(decltype(std::declval< GridAxis< AxesTypes >>().size())... coords) const