30#ifndef GRID_QCD_MOBIUS_EOFA_FERMION_H
31#define GRID_QCD_MOBIUS_EOFA_FERMION_H
54 virtual void Omega (
const FermionField& in, FermionField& out,
int sign,
int dag);
55 virtual void Dtilde (
const FermionField& in, FermionField& out);
56 virtual void DtildeInv (
const FermionField& in, FermionField& out);
59 virtual void M (
const FermionField& in, FermionField& out);
60 virtual void Mdag (
const FermionField& in, FermionField& out);
63 virtual void Mooee (
const FermionField& in, FermionField& out);
64 virtual void MooeeDag (
const FermionField& in, FermionField& out);
65 virtual void MooeeInv (
const FermionField& in, FermionField& out);
67 virtual void MooeeInvDag (
const FermionField& in, FermionField& out);
70 virtual void M5D (
const FermionField& psi, FermionField& chi);
71 virtual void M5Ddag (
const FermionField& psi, FermionField& chi);
76 void M5D(
const FermionField& psi,
const FermionField& phi, FermionField& chi,
77 std::vector<Coeff_t>& lower, std::vector<Coeff_t>& diag, std::vector<Coeff_t>& upper);
79 void M5D_shift(
const FermionField& psi,
const FermionField& phi, FermionField& chi,
80 std::vector<Coeff_t>& lower, std::vector<Coeff_t>& diag, std::vector<Coeff_t>& upper,
81 std::vector<Coeff_t>& shift_coeffs);
83 void M5Ddag(
const FermionField& psi,
const FermionField& phi, FermionField& chi,
84 std::vector<Coeff_t>& lower, std::vector<Coeff_t>& diag, std::vector<Coeff_t>& upper);
86 void M5Ddag_shift(
const FermionField& psi,
const FermionField& phi, FermionField& chi,
87 std::vector<Coeff_t>& lower, std::vector<Coeff_t>& diag, std::vector<Coeff_t>& upper,
88 std::vector<Coeff_t>& shift_coeffs);
#define NAMESPACE_BEGIN(A)
AbstractEOFAFermion(GaugeField &_Umu, GridCartesian &FiveDimGrid, GridRedBlackCartesian &FiveDimRedBlackGrid, GridCartesian &FourDimGrid, GridRedBlackCartesian &FourDimRedBlackGrid, RealD _mq1, RealD _mq2, RealD _mq3, RealD _shift, int _pm, RealD _M5, RealD _b, RealD _c, const ImplParams &p=ImplParams())
virtual void DtildeInv(const FermionField &in, FermionField &out)
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)
MobiusEOFAFermion(GaugeField &_Umu, GridCartesian &FiveDimGrid, GridRedBlackCartesian &FiveDimRedBlackGrid, GridCartesian &FourDimGrid, GridRedBlackCartesian &FourDimRedBlackGrid, RealD _mq1, RealD _mq2, RealD _mq3, RealD _shift, int pm, RealD _M5, RealD _b, RealD _c, const ImplParams &p=ImplParams())
std::vector< Coeff_t > MooeeInv_shift_lc
std::vector< Coeff_t > MooeeInv_shift_norm
std::vector< Coeff_t > MooeeInvDag_shift_lc
virtual void MooeeInv(const FermionField &in, FermionField &out)
virtual void Omega(const FermionField &in, FermionField &out, int sign, int dag)
virtual void MooeeInvDag_shift(const FermionField &in, FermionField &out)
virtual void Instantiatable(void)
virtual void Mooee(const FermionField &in, FermionField &out)
void M5D(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 > MooeeInvDag_shift_norm
void SetCoefficientsPrecondShiftOps(void)
virtual void MooeeDag(const FermionField &in, FermionField &out)
virtual void Mdag(const FermionField &in, FermionField &out)
virtual void Dtilde(const FermionField &in, FermionField &out)
virtual void RefreshShiftCoefficients(RealD new_shift)
virtual void M(const FermionField &in, FermionField &out)
virtual void M5D(const FermionField &psi, FermionField &chi)
std::vector< Coeff_t > Mooee_shift
virtual void MooeeInv_shift(const FermionField &in, FermionField &out)
void M5Ddag(const FermionField &psi, const FermionField &phi, FermionField &chi, std::vector< Coeff_t > &lower, std::vector< Coeff_t > &diag, std::vector< Coeff_t > &upper)
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)