DiFfRG
Loading...
Searching...
No Matches
DiFfRG::CoordinatePackND< Coordinates > Class Template Reference

Utility class for combining multiple coordinate systems into one. More...

#include <coordinates.hh>

Public Types

using ctype = typename std::tuple_element<0, std::tuple<Coordinates...>>::type::ctype
 

Public Member Functions

 CoordinatePackND (Coordinates... coordinates)
 Construct a new CoordinatePackND object.
 
template<typename... I>
__forceinline__ __host__ __device__ std::array< ctype, dimforward (I &&...i) const
 
template<typename... I, int... Is>
__forceinline__ __host__ __device__ std::array< ctype, dimforward_impl (std::integer_sequence< int, Is... >, I &&...i) const
 
template<typename... I>
__forceinline__ __host__ __device__ std::array< ctype, sizeof...(I)> backward (I &&...i) const
 
template<typename... I, int... Is>
std::array< ctype, sizeof...(I)> __forceinline__ __host__ __device__ backward_impl (std::integer_sequence< int, Is... >, I &&...i) const
 
template<uint i>
const auto & get_coordinates () const
 
uint size () const
 
std::array< uint, sizeof...(Coordinates)> sizes () const
 

Static Public Attributes

static constexpr uint dim = sizeof...(Coordinates)
 

Protected Attributes

const std::tuple< Coordinates... > coordinates
 

Detailed Description

template<typename... Coordinates>
class DiFfRG::CoordinatePackND< Coordinates >

Utility class for combining multiple coordinate systems into one.

Template Parameters
Coordinates...the coordinate systems to combine

Member Typedef Documentation

◆ ctype

template<typename... Coordinates>
using DiFfRG::CoordinatePackND< Coordinates >::ctype = typename std::tuple_element<0, std::tuple<Coordinates...>>::type::ctype

Constructor & Destructor Documentation

◆ CoordinatePackND()

template<typename... Coordinates>
DiFfRG::CoordinatePackND< Coordinates >::CoordinatePackND ( Coordinates... coordinates)
inline

Construct a new CoordinatePackND object.

Parameters
coordinatesthe coordinate systems to combine

Member Function Documentation

◆ backward()

template<typename... Coordinates>
template<typename... I>
__forceinline__ __host__ __device__ std::array< ctype, sizeof...(I)> DiFfRG::CoordinatePackND< Coordinates >::backward ( I &&... i) const
inline

◆ backward_impl()

template<typename... Coordinates>
template<typename... I, int... Is>
std::array< ctype, sizeof...(I)> __forceinline__ __host__ __device__ DiFfRG::CoordinatePackND< Coordinates >::backward_impl ( std::integer_sequence< int, Is... > ,
I &&... i ) const
inline

◆ forward()

template<typename... Coordinates>
template<typename... I>
__forceinline__ __host__ __device__ std::array< ctype, dim > DiFfRG::CoordinatePackND< Coordinates >::forward ( I &&... i) const
inline

◆ forward_impl()

template<typename... Coordinates>
template<typename... I, int... Is>
__forceinline__ __host__ __device__ std::array< ctype, dim > DiFfRG::CoordinatePackND< Coordinates >::forward_impl ( std::integer_sequence< int, Is... > ,
I &&... i ) const
inline

◆ get_coordinates()

template<typename... Coordinates>
template<uint i>
const auto & DiFfRG::CoordinatePackND< Coordinates >::get_coordinates ( ) const
inline

◆ size()

template<typename... Coordinates>
uint DiFfRG::CoordinatePackND< Coordinates >::size ( ) const
inline

◆ sizes()

template<typename... Coordinates>
std::array< uint, sizeof...(Coordinates)> DiFfRG::CoordinatePackND< Coordinates >::sizes ( ) const
inline

Member Data Documentation

◆ coordinates

template<typename... Coordinates>
const std::tuple<Coordinates...> DiFfRG::CoordinatePackND< Coordinates >::coordinates
protected

◆ dim

template<typename... Coordinates>
uint DiFfRG::CoordinatePackND< Coordinates >::dim = sizeof...(Coordinates)
staticconstexpr

The documentation for this class was generated from the following file: