1
0
mirror of https://github.com/paboyle/Grid.git synced 2025-08-02 12:47:07 +01:00

Zmobius working -- not asm yet

This commit is contained in:
Peter Boyle
2016-12-09 22:51:32 +00:00
parent fb8d4b2357
commit 0091b50f49
3 changed files with 303 additions and 106 deletions

View File

@@ -33,6 +33,11 @@ namespace Grid {
namespace QCD {
template<typename T> struct switcheroo { static int iscomplex() { return 0; } };
template<> struct switcheroo<ComplexD> { static int iscomplex() { return 1; } };
template<> struct switcheroo<ComplexF> { static int iscomplex() { return 1; } };
template<class Impl>
class CayleyFermion5D : public WilsonFermion5D<Impl>
{
@@ -75,11 +80,18 @@ namespace Grid {
std::vector<Coeff_t> &lower,
std::vector<Coeff_t> &diag,
std::vector<Coeff_t> &upper);
void MooeeInternal(const FermionField &in, FermionField &out,int dag,int inv);
void MooeeInternalCompute(int dag, int inv, Vector<iSinglet<Simd> > & Matp, Vector<iSinglet<Simd> > & Matm);
void MooeeInternalAsm(const FermionField &in, FermionField &out,
int LLs, int site,
Vector<iSinglet<Simd> > &Matp,
Vector<iSinglet<Simd> > &Matm);
void MooeeInternalZAsm(const FermionField &in, FermionField &out,
int LLs, int site,
Vector<iSinglet<Simd> > &Matp,
Vector<iSinglet<Simd> > &Matm);
virtual void Instantiatable(void)=0;
@@ -117,6 +129,12 @@ namespace Grid {
std::vector<Coeff_t> ueem;
std::vector<Coeff_t> dee;
// Matrices of 5d ee inverse params
Vector<iSinglet<Simd> > MatpInv;
Vector<iSinglet<Simd> > MatmInv;
Vector<iSinglet<Simd> > MatpInvDag;
Vector<iSinglet<Simd> > MatmInvDag;
// Constructors
CayleyFermion5D(GaugeField &_Umu,
GridCartesian &FiveDimGrid,