47 for(
int s=0; s<Ls; s++){
51 }
else if (s==(Ls-1)) {
68 for(
int s=0; s<
Ls; s++){
72 }
else if (s==(
Ls-1)) {
90 for(
int s=0; s<Ls; s++){
94 }
else if (s==(Ls-1)) {
111 for(
int s=0; s<
Ls; s++){
115 }
else if (s==(
Ls-1)) {
130 if(this->shift != 0.0){ MooeeInv_shift(psi,chi);
return; }
134 chi.Checkerboard() = psi.Checkerboard();
139 for(
int s=1; s<Ls; s++){
144 for(
int s=0; s<Ls-1; s++){
149 for(
int s=0; s<Ls-1; s++){
150 axpby_ssp_pplus(chi,
one/this->dee[s], chi, -this->ueem[s]/this->dee[Ls-1], chi, s, Ls-1);
152 axpby_ssp(chi,
one/this->dee[Ls-1], chi, czero, chi, Ls-1, Ls-1);
155 for(
int s=Ls-2; s>=0; s--){
165 chi.Checkerboard() = psi.Checkerboard();
168 FermionField tmp(psi.Grid());
172 axpby_ssp(tmp, czero, tmp, this->MooeeInv_shift_lc[0], psi, 0, 0);
173 for(
int s=1; s<Ls; s++){
175 axpby_ssp(tmp,
one, tmp, this->MooeeInv_shift_lc[s], psi, 0, s);
179 for(
int s=0; s<Ls-1; s++){
184 for(
int s=0; s<Ls-1; s++){
185 axpby_ssp_pplus(chi,
one/this->dee[s], chi, -this->ueem[s]/this->dee[Ls-1], chi, s, Ls-1);
187 axpby_ssp(chi,
one/this->dee[Ls-1], chi, czero, chi, Ls-1, Ls-1);
190 if(this->pm == 1){
axpby_ssp_pplus(chi,
one, chi, this->MooeeInv_shift_norm[Ls-1], tmp, Ls-1, 0); }
192 for(
int s=Ls-2; s>=0; s--){
194 if(this->pm == 1){
axpby_ssp_pplus(chi,
one, chi, this->MooeeInv_shift_norm[s], tmp, s, 0); }
202 if(this->shift != 0.0){ MooeeInvDag_shift(psi,chi);
return; }
206 chi.Checkerboard() = psi.Checkerboard();
211 for(
int s=1; s<Ls; s++){
216 for(
int s=0; s<Ls-1; s++){
221 for(
int s=0; s<Ls-1; s++){
227 for(
int s=Ls-2; s>=0; s--){
237 chi.Checkerboard() = psi.Checkerboard();
240 FermionField tmp(psi.Grid());
244 axpby_ssp(tmp, czero, tmp, this->MooeeInvDag_shift_lc[0], psi, 0, 0);
245 for(
int s=1; s<Ls; s++){
247 axpby_ssp(tmp,
one, tmp, this->MooeeInvDag_shift_lc[s], psi, 0, s);
251 for(
int s=0; s<Ls-1; s++){
256 for(
int s=0; s<Ls-1; s++){
262 if(this->pm == 1){
axpby_ssp_pplus(chi,
one, chi, this->MooeeInvDag_shift_norm[Ls-1], tmp, Ls-1, 0); }
264 for(
int s=Ls-2; s>=0; s--){
266 if(this->pm == 1){
axpby_ssp_pplus(chi,
one, chi, this->MooeeInvDag_shift_norm[s], tmp, s, 0); }
271#ifdef MOBIUS_EOFA_DPERP_LINALG
280INSTANTIATE_DPERP_MOBIUS_EOFA(WilsonImplFH);
281INSTANTIATE_DPERP_MOBIUS_EOFA(WilsonImplDF);
282INSTANTIATE_DPERP_MOBIUS_EOFA(GparityWilsonImplFH);
283INSTANTIATE_DPERP_MOBIUS_EOFA(GparityWilsonImplDF);
284INSTANTIATE_DPERP_MOBIUS_EOFA(ZWilsonImplFH);
285INSTANTIATE_DPERP_MOBIUS_EOFA(ZWilsonImplDF);
std::vector< T, uvmAllocator< T > > Vector
GparityWilsonImpl< vComplexF, FundamentalRepresentation, CoeffReal > GparityWilsonImplF
GparityWilsonImpl< vComplexD, FundamentalRepresentation, CoeffReal > GparityWilsonImplD
Lattice< vobj > conjugate(const Lattice< vobj > &lhs)
void axpby_ssp_pplus(Lattice< vobj > &z, Coeff a, const Lattice< vobj > &x, Coeff b, const Lattice< vobj > &y, int s, int sp)
void axpby_ssp_pminus(Lattice< vobj > &z, Coeff a, const Lattice< vobj > &x, Coeff b, const Lattice< vobj > &y, int s, int sp)
void axpby_ssp(Lattice< vobj > &z, Coeff a, const Lattice< vobj > &x, Coeff b, const Lattice< vobj > &y, int s, int sp)
#define NAMESPACE_BEGIN(A)
WilsonImpl< vComplexF, FundamentalRepresentation, CoeffReal > WilsonImplF
WilsonImpl< vComplexD, FundamentalRepresentation, CoeffComplex > ZWilsonImplD
WilsonImpl< vComplexD, FundamentalRepresentation, CoeffReal > WilsonImplD
WilsonImpl< vComplexF, FundamentalRepresentation, CoeffComplex > ZWilsonImplF
void M5Ddag_shift(const FermionField &psi, const FermionField &phi, FermionField &chi, std::vector< Coeff_t > &lower, std::vector< Coeff_t > &diag, std::vector< Coeff_t > &upper, std::vector< Coeff_t > &shift_coeffs)
virtual void MooeeInv(const FermionField &in, FermionField &out)
virtual void MooeeInvDag_shift(const FermionField &in, FermionField &out)
virtual void M5D(const FermionField &psi, FermionField &chi)
virtual void MooeeInv_shift(const FermionField &in, FermionField &out)
virtual void M5Ddag(const FermionField &psi, FermionField &chi)
virtual void MooeeInvDag(const FermionField &in, FermionField &out)
void M5D_shift(const FermionField &psi, const FermionField &phi, FermionField &chi, std::vector< Coeff_t > &lower, std::vector< Coeff_t > &diag, std::vector< Coeff_t > &upper, std::vector< Coeff_t > &shift_coeffs)