71 int vol = psi.Grid()->oSites()/LLs;
74 RealD shift = this->shift;
75 RealD alpha = this->alpha;
77 RealD mq1 = this->mq1;
79 chi.Checkerboard() = psi.Checkerboard();
83 Eigen::MatrixXd Pplus = Eigen::MatrixXd::Zero(Ls,Ls);
84 Eigen::MatrixXd Pminus = Eigen::MatrixXd::Zero(Ls,Ls);
86 for(
int s=0;s<Ls;s++){
87 Pplus(s,s) = this->bee[s];
88 Pminus(s,s) = this->bee[s];
91 for(
int s=0; s<Ls-1; s++){
92 Pminus(s,s+1) = -this->cee[s];
95 for(
int s=0; s<Ls-1; s++){
96 Pplus(s+1,s) = -this->cee[s+1];
98 Pplus (0,Ls-1) = mq1*this->cee[0];
99 Pminus(Ls-1,0) = mq1*this->cee[Ls-1];
102 Coeff_t N = 2.0 * ( std::pow(alpha+1.0,Ls) + mq1*std::pow(alpha-1.0,Ls) );
103 for(
int s=0; s<Ls; ++s){
104 if(pm == 1){ Pplus(s,Ls-1) += shift * k * N * std::pow(-1.0,s) * std::pow(alpha-1.0,s) / std::pow(alpha+1.0,Ls+s+1); }
105 else{ Pminus(Ls-1-s,Ls-1) -= shift * k * N * std::pow(-1.0,s) * std::pow(alpha-1.0,s) / std::pow(alpha+1.0,Ls+s+1); }
109 Eigen::MatrixXd PplusMat ;
110 Eigen::MatrixXd PminusMat;
113 PplusMat = Pplus.inverse();
114 PminusMat = Pminus.inverse();
121 PplusMat.adjointInPlace();
122 PminusMat.adjointInPlace();
127 for(
auto site=0; site<vol; site++){
130 SiteHalfSpinor SitePplus;
131 SiteHalfSpinor SitePminus;
133 for(
int s1=0; s1<Ls; s1++){
135 for(
int s2=0; s2<Ls; s2++){
136 int lex2 = s2 + Ls*site;
137 if(PplusMat(s1,s2) != 0.0){
141 if(PminusMat(s1,s2) != 0.0){
146 chi[s1+Ls*site] = SiteChi*0.5;
151#ifdef MOBIUS_EOFA_DPERP_DENSE
167INSTANTIATE_DPERP_MOBIUS_EOFA(GparityWilsonImplFH);
168INSTANTIATE_DPERP_MOBIUS_EOFA(GparityWilsonImplDF);
169INSTANTIATE_DPERP_MOBIUS_EOFA(WilsonImplFH);
170INSTANTIATE_DPERP_MOBIUS_EOFA(WilsonImplDF);
171INSTANTIATE_DPERP_MOBIUS_EOFA(ZWilsonImplFH);
172INSTANTIATE_DPERP_MOBIUS_EOFA(ZWilsonImplDF);
GparityWilsonImpl< vComplexF, FundamentalRepresentation, CoeffReal > GparityWilsonImplF
GparityWilsonImpl< vComplexD, FundamentalRepresentation, CoeffReal > GparityWilsonImplD
#define NAMESPACE_BEGIN(A)
static constexpr int DaggerYes
static constexpr int DaggerNo
static constexpr int InverseYes
accelerator_inline void accumRecon5p(iVector< vtype, Ns > &fspin, const iVector< vtype, Nhs > &hspin)
accelerator_inline void spProj5m(iVector< vtype, Nhs > &hspin, const iVector< vtype, Ns > &fspin)
accelerator_inline void accumRecon5m(iVector< vtype, Ns > &fspin, const iVector< vtype, Nhs > &hspin)
accelerator_inline void spProj5p(iVector< vtype, Nhs > &hspin, const iVector< vtype, Ns > &fspin)
WilsonImpl< vComplexF, FundamentalRepresentation, CoeffReal > WilsonImplF
WilsonImpl< vComplexD, FundamentalRepresentation, CoeffComplex > ZWilsonImplD
WilsonImpl< vComplexD, FundamentalRepresentation, CoeffReal > WilsonImplD
WilsonImpl< vComplexF, FundamentalRepresentation, CoeffComplex > ZWilsonImplF
virtual void MooeeInv(const FermionField &in, FermionField &out)
virtual void MooeeInvDag_shift(const FermionField &in, FermionField &out)
virtual void MooeeInv_shift(const FermionField &in, FermionField &out)
virtual void MooeeInvDag(const FermionField &in, FermionField &out)