mirror of
https://github.com/paboyle/Grid.git
synced 2025-04-04 19:25:56 +01:00
Multiple implementations for the 5d hopping terms, depending on cache friendly
ops and/or the 5th direction being vectorised All use 4d redblack.
This commit is contained in:
parent
79a8ca1a62
commit
dfd714e1ef
@ -51,11 +51,29 @@ namespace Grid {
|
|||||||
virtual void MooeeDag (const FermionField &in, FermionField &out);
|
virtual void MooeeDag (const FermionField &in, FermionField &out);
|
||||||
virtual void MooeeInv (const FermionField &in, FermionField &out);
|
virtual void MooeeInv (const FermionField &in, FermionField &out);
|
||||||
virtual void MooeeInvDag (const FermionField &in, FermionField &out);
|
virtual void MooeeInvDag (const FermionField &in, FermionField &out);
|
||||||
virtual void MooeeLDUInv (const FermionField &in, FermionField &out);
|
virtual void Meo5D (const FermionField &psi, FermionField &chi);
|
||||||
virtual void MooeeLDUInvDag (const FermionField &in, FermionField &out);
|
|
||||||
virtual void MooeeDenseInv (const FermionField &in, FermionField &out);
|
virtual void M5D (const FermionField &psi, FermionField &chi);
|
||||||
virtual void MooeeDenseInvDag (const FermionField &in, FermionField &out);
|
virtual void M5Ddag(const FermionField &psi, FermionField &chi);
|
||||||
void MooeeDenseInternal(const FermionField &in, FermionField &out,int dag,int inv);
|
|
||||||
|
/////////////////////////////////////////////////////
|
||||||
|
// Instantiate different versions depending on Impl
|
||||||
|
/////////////////////////////////////////////////////
|
||||||
|
void M5D(const FermionField &psi,
|
||||||
|
const FermionField &phi,
|
||||||
|
FermionField &chi,
|
||||||
|
std::vector<RealD> &lower,
|
||||||
|
std::vector<RealD> &diag,
|
||||||
|
std::vector<RealD> &upper);
|
||||||
|
|
||||||
|
void M5Ddag(const FermionField &psi,
|
||||||
|
const FermionField &phi,
|
||||||
|
FermionField &chi,
|
||||||
|
std::vector<RealD> &lower,
|
||||||
|
std::vector<RealD> &diag,
|
||||||
|
std::vector<RealD> &upper);
|
||||||
|
void MooeeInternal(const FermionField &in, FermionField &out,int dag,int inv);
|
||||||
|
|
||||||
virtual void Instantiatable(void)=0;
|
virtual void Instantiatable(void)=0;
|
||||||
|
|
||||||
// force terms; five routines; default to Dhop on diagonal
|
// force terms; five routines; default to Dhop on diagonal
|
||||||
@ -100,6 +118,7 @@ namespace Grid {
|
|||||||
RealD _mass,RealD _M5,const ImplParams &p= ImplParams());
|
RealD _mass,RealD _M5,const ImplParams &p= ImplParams());
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
void SetCoefficientsZolotarev(RealD zolohi,Approx::zolotarev_data *zdata,RealD b,RealD c);
|
void SetCoefficientsZolotarev(RealD zolohi,Approx::zolotarev_data *zdata,RealD b,RealD c);
|
||||||
void SetCoefficientsTanh(Approx::zolotarev_data *zdata,RealD b,RealD c);
|
void SetCoefficientsTanh(Approx::zolotarev_data *zdata,RealD b,RealD c);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user