33template<
class S,
class Representation = FundamentalRepresentation,
class Options=CoeffReal>
40 static const int Dimension = Representation::Dimension;
43 static const int Nhcs = Options::Nhcs;
45 typedef typename Options::_Coeff_t
Coeff_t;
46 typedef typename Options::template PrecisionMapper<Simd>::LowerPrecVector
SimdL;
86 template<
class _Spinor>
93 mult(&phi(), &
U(mu), &chi());
98 vsplat(UU()()(i, j),
U(mu)()(i, j));
101 mult(&phi(), &UU(), &chi());
110 GaugeLinkField
U(Umu.Grid());
111 GaugeField Uadj(Umu.Grid());
112 for (
int mu = 0; mu <
Nd; mu++) {
123 GaugeGrid->LocalIndexToLocalCoor(lidx, lcoor);
125 peekLocalSite(ScalarUmu, Umu_v, lcoor);
126 for (int mu = 0; mu < 4; mu++) ScalarUds(mu) = ScalarUmu(mu);
128 peekLocalSite(ScalarUmu, Uadj_v, lcoor);
129 for (int mu = 0; mu < 4; mu++) ScalarUds(mu + 4) = ScalarUmu(mu);
131 pokeLocalSite(ScalarUds, Uds_v, lcoor);
#define accelerator_inline
auto Cshift(const Expression &expr, int dim, int shift) -> decltype(closure(expr))
DomainWallVec5dImpl< vComplexD, FundamentalRepresentation, CoeffComplexHalfComms > ZDomainWallVec5dImplDF
DomainWallVec5dImpl< vComplex,FundamentalRepresentation, CoeffComplex > ZDomainWallVec5dImplR
DomainWallVec5dImpl< vComplexD, FundamentalRepresentation, CoeffComplex > ZDomainWallVec5dImplD
DomainWallVec5dImpl< vComplexD, FundamentalRepresentation, CoeffRealHalfComms > DomainWallVec5dImplDF
DomainWallVec5dImpl< vComplexD, FundamentalRepresentation, CoeffReal > DomainWallVec5dImplD
DomainWallVec5dImpl< vComplexF, FundamentalRepresentation, CoeffRealHalfComms > DomainWallVec5dImplFH
DomainWallVec5dImpl< vComplex,FundamentalRepresentation, CoeffReal > DomainWallVec5dImplR
DomainWallVec5dImpl< vComplex,FundamentalRepresentation, CoeffRealHalfComms > DomainWallVec5dImplRL
DomainWallVec5dImpl< vComplex,FundamentalRepresentation, CoeffComplexHalfComms > ZDomainWallVec5dImplRL
DomainWallVec5dImpl< vComplexF, FundamentalRepresentation, CoeffReal > DomainWallVec5dImplF
DomainWallVec5dImpl< vComplexF, FundamentalRepresentation, CoeffComplexHalfComms > ZDomainWallVec5dImplFH
DomainWallVec5dImpl< vComplexF, FundamentalRepresentation, CoeffComplex > ZDomainWallVec5dImplF
accelerator_inline void vsplat(Grid_simd2< S, V > &ret, ABtype a, ABtype b)
void mult(Lattice< obj1 > &ret, const Lattice< obj2 > &lhs, const Lattice< obj3 > &rhs)
void PokeIndex(Lattice< vobj > &lhs, const Lattice< decltype(peekIndex< Index >(vobj(), 0))> &rhs, int i)
auto PeekIndex(const Lattice< vobj > &lhs, int i) -> Lattice< decltype(peekIndex< Index >(vobj(), i))>
Lattice< vobj > adj(const Lattice< vobj > &lhs)
#define autoView(l_v, l, mode)
#define NAMESPACE_BEGIN(A)
#define thread_for(i, num,...)
WilsonCompressorTemplate< HCS, HS, S, WilsonProjector > WilsonCompressor
static INTERNAL_PRECISION U
WilsonImplParams ImplParams
iScalar< iVector< iVector< vtype, Dimension >, Nhcs > > iImplHalfCommSpinor
iImplGaugeField< typename Simd::scalar_type > SiteScalarGaugeField
PeriodicGaugeImpl< GaugeImplTypes< S, Representation::Dimension > > Gimpl
void TraceSpinImpl(GaugeLinkField &mat, PropagatorField &P)
Options::template PrecisionMapper< Simd >::LowerPrecVector SimdL
Options::_Coeff_t Coeff_t
static const bool isFundamental
DomainWallVec5dImpl(const ImplParams &p=ImplParams())
iImplHalfSpinor< Simd > SiteHalfSpinor
static const int Dimension
static accelerator_inline void loadLinkElement(Simd ®, ref &memory)
void InsertForce4D(GaugeField &mat, FermionField &Btilde, FermionField &A, int mu)
static accelerator_inline void multLink(_Spinor &phi, const SiteDoubledGaugeField &U, const _Spinor &chi, int mu, StencilEntry *SE, StencilView &St)
iImplPropagator< Simd > SitePropagator
INHERIT_GIMPL_TYPES(Gimpl)
void DoubleStore(GridBase *GaugeGrid, DoubledGaugeField &Uds, const GaugeField &Umu)
iImplGaugeLink< typename Simd::scalar_type > SiteScalarGaugeLink
iImplSpinor< Simd > SiteSpinor
Lattice< SiteDoubledGaugeField > DoubledGaugeField
iImplDoubledGaugeField< typename Simd::scalar_type > SiteDoubledGaugeField
StencilImpl::View_type StencilView
void InsertForce5D(GaugeField &mat, FermionField &Btilde, FermionField Ã, int mu)
WilsonCompressor< SiteHalfCommSpinor, SiteHalfSpinor, SiteSpinor > Compressor
iScalar< iVector< iVector< vtype, Dimension >, Ns > > iImplSpinor
iScalar< iVector< iVector< vtype, Dimension >, Nhs > > iImplHalfSpinor
iImplHalfCommSpinor< SimdL > SiteHalfCommSpinor
iVector< iScalar< iMatrix< vtype, Dimension > >, Nds > iImplDoubledGaugeField
Lattice< SiteSpinor > FermionField
Lattice< SitePropagator > PropagatorField
WilsonStencil< SiteSpinor, SiteHalfSpinor, ImplParams > StencilImpl
static const bool LsVectorised
iScalar< iMatrix< iMatrix< vtype, Dimension >, Ns > > iImplPropagator
iVector< iScalar< iMatrix< vtype, Dimension > >, Nd > iImplGaugeField
void extractLinkField(std::vector< GaugeLinkField > &mat, DoubledGaugeField &Uds)
iScalar< iScalar< iMatrix< vtype, Dimension > > > iImplGaugeLink
void outerProductImpl(PropagatorField &mat, const FermionField &Btilde, const FermionField &A)
Base::View_type View_type