67#define INHERIT_CLOVER_TYPES(Impl) \
68 typedef typename WilsonCloverTypes<Impl>::SiteClover SiteClover; \
69 typedef typename WilsonCloverTypes<Impl>::CloverField CloverField;
71#define INHERIT_COMPACT_CLOVER_TYPES(Impl) \
72 typedef typename CompactWilsonCloverTypes<Impl>::SiteCloverDiagonal SiteCloverDiagonal; \
73 typedef typename CompactWilsonCloverTypes<Impl>::SiteCloverTriangle SiteCloverTriangle; \
74 typedef typename CompactWilsonCloverTypes<Impl>::SiteMask SiteMask; \
75 typedef typename CompactWilsonCloverTypes<Impl>::CloverDiagonalField CloverDiagonalField; \
76 typedef typename CompactWilsonCloverTypes<Impl>::CloverTriangleField CloverTriangleField; \
77 typedef typename CompactWilsonCloverTypes<Impl>::MaskField MaskField; \
79 template<typename vtype> using iImplCloverDiagonal = \
80 iScalar<iVector<iVector<vtype, CompactWilsonCloverTypes<Impl>::Ndiagonal>, CompactWilsonCloverTypes<Impl>::Nblock>>; \
81 template<typename vtype> using iImplCloverTriangle = \
82 iScalar<iVector<iVector<vtype, CompactWilsonCloverTypes<Impl>::Ntriangle>, CompactWilsonCloverTypes<Impl>::Nblock>>;
84#define INHERIT_COMPACT_CLOVER_SIZES(Impl) \
85 static constexpr int Nred = CompactWilsonCloverTypes<Impl>::Nred; \
86 static constexpr int Nblock = CompactWilsonCloverTypes<Impl>::Nblock; \
87 static constexpr int Ndiagonal = CompactWilsonCloverTypes<Impl>::Ndiagonal; \
88 static constexpr int Ntriangle = CompactWilsonCloverTypes<Impl>::Ntriangle;
#define NAMESPACE_BEGIN(A)
iScalar< iScalar< iScalar< vtype > > > iSinglet
iImplCloverTriangle< Simd > SiteCloverTriangle
iScalar< iVector< iVector< vtype, Ndiagonal >, Nblock > > iImplCloverDiagonal
iImplCloverDiagonal< Simd > SiteCloverDiagonal
static constexpr int Ntriangle
static constexpr int Nblock
iScalar< iVector< iVector< vtype, Ntriangle >, Nblock > > iImplCloverTriangle
iSinglet< Simd > SiteMask
static constexpr int Nred
static constexpr int Ndiagonal
Lattice< SiteCloverDiagonal > CloverDiagonalField
Lattice< SiteMask > MaskField
Lattice< SiteCloverTriangle > CloverTriangleField
iImplClover< Simd > SiteClover
iScalar< iMatrix< iMatrix< vtype, Impl::Dimension >, Ns > > iImplClover
Lattice< SiteClover > CloverField