18template <
class... Reptypes>
29 template <std::
size_t N>
30 using repr_type =
typename std::tuple_element<N, Representation_type>::type;
46 template <std::
size_t I = 0>
50 template <std::
size_t I = 0>
51 inline typename std::enable_if<(I < tuple_size), void>::type
update(
53 std::get<I>(
rep).update_representation(
U);
65template <
int Colours>
72template <
template <
typename>
class A,
class TupleClass,
73 size_t N = TupleClass::tuple_size,
size_t... S>
76template <
template <
typename>
class A,
class TupleClass,
size_t... S>
79 typedef typename TupleClass::Representation_Fields
Rfields;
81 template <std::
size_t N>
82 using elem =
typename std::tuple_element<N, Rfields>::type;
90 <<
"Access:" << std::tuple_size<std::tuple<elem<S>...> >::value
93 <<
"Access vectors:" << std::tuple_size<VectorCollection>::value
GridLogger GridLogMessage(1, "Message", GridLogColours, "NORMAL")
#define NAMESPACE_BEGIN(A)
static INTERNAL_PRECISION U
typename std::tuple_element< N, Representation_type >::type repr_type
std::enable_if<(I==tuple_size), void >::type update(LatticeSourceField &U)
std::tuple< typename Reptypes::LatticeField... > Representation_Fields
std::tuple< Reptypes... > Representation_type
std::enable_if<(I< tuple_size), void >::type update(LatticeSourceField &U)
std::tuple_element< 0, Representation_Fields >::type LatticeSourceField
Representations(GridBase *grid)
static const int tuple_size
Representations< FundamentalRepresentation > NoHirep
Representations< EmptyRep< typename ScalarImplR::Field > > ScalarFields
Representations< EmptyRep< typename ScalarAdjImplR::Field > > ScalarMatrixFields
Representations< EmptyRep< typename ScalarNxNAdjImplR< Colours >::Field > > ScalarNxNMatrixFields
std::tuple< elem< S > ... > FieldTypeCollection
typename std::tuple_element< N, Rfields >::type elem
TupleClass::Representation_Fields Rfields
std::tuple< std::vector< A< elem< S > > * > ... > VectorCollection