64 for (
int i=0; i<
Ls; i++)
printfQuda(
"b_5[%d] = %e\t c_5[%d] = %e\n", i,
b_5[i],i,
c_5[i]);
93 mutable unsigned long long flops;
120 const double &k)
const = 0;
136 unsigned long long Flops()
const {
unsigned long long rtn =
flops;
flops = 0;
return rtn; }
738 #endif // _DIRAC_QUDA_H
DiracImprovedStaggeredPC & operator=(const DiracImprovedStaggeredPC &dirac)
Dirac(const DiracParam ¶m)
virtual void reconstruct(cudaColorSpinorField &x, const cudaColorSpinorField &b, const QudaSolutionType) const
void Dslash5(cudaColorSpinorField &out, const cudaColorSpinorField &in, const QudaParity parity) const
virtual void DslashXpay(cudaColorSpinorField &out, const cudaColorSpinorField &in, const QudaParity parity, const cudaColorSpinorField &x, const double &k) const
void M(cudaColorSpinorField &out, const cudaColorSpinorField &in) const
virtual void checkParitySpinor(const cudaColorSpinorField &, const cudaColorSpinorField &) const
virtual void checkParitySpinor(const cudaColorSpinorField &, const cudaColorSpinorField &) const
double c_5[QUDA_MAX_DWF_LS]
NEW: used by mobius domain wall only.
DiracImprovedStaggeredPC(const DiracParam ¶m)
void prepare(cudaColorSpinorField *&src, cudaColorSpinorField *&sol, cudaColorSpinorField &x, cudaColorSpinorField &b, const QudaSolutionType) const
void MdagM(cudaColorSpinorField &out, const cudaColorSpinorField &in) const
virtual ~DiracTwistedMassPC()
virtual void M(cudaColorSpinorField &out, const cudaColorSpinorField &in) const
void setDiracSloppyParam(DiracParam &diracParam, QudaInvertParam *inv_param, bool pc)
cudaColorSpinorField * tmp1
virtual void reconstruct(cudaColorSpinorField &x, const cudaColorSpinorField &b, const QudaSolutionType) const
DiracMatrix(const Dirac &d)
void operator()(cudaColorSpinorField &out, const cudaColorSpinorField &in, cudaColorSpinorField &tmp) const
void prepare(cudaColorSpinorField *&src, cudaColorSpinorField *&sol, cudaColorSpinorField &x, cudaColorSpinorField &b, const QudaSolutionType) const
virtual ~DiracImprovedStaggered()
void reconstruct(cudaColorSpinorField &x, const cudaColorSpinorField &b, const QudaSolutionType) const
DiracWilson(const DiracParam ¶m)
virtual ~DiracImprovedStaggeredPC()
DiracDomainWall4DPC & operator=(const DiracDomainWall4DPC &dirac)
DiracWilsonPC & operator=(const DiracWilsonPC &dirac)
void Dslash5inv(cudaColorSpinorField &out, const cudaColorSpinorField &in, const QudaParity parity, const double &k) const
void MdagM(cudaColorSpinorField &out, const cudaColorSpinorField &in) const
DiracTwistedMassPC(const DiracTwistedMassPC &dirac)
void Clover(cudaColorSpinorField &out, const cudaColorSpinorField &in, const QudaParity parity) const
virtual void M(cudaColorSpinorField &out, const cudaColorSpinorField &in) const
DiracWilsonPC(const DiracParam ¶m)
void TwistInv(cudaColorSpinorField &out, const cudaColorSpinorField &in) const
virtual void prepare(cudaColorSpinorField *&src, cudaColorSpinorField *&sol, cudaColorSpinorField &x, cudaColorSpinorField &b, const QudaSolutionType) const
DiracStaggeredPC(const DiracParam ¶m)
void M(cudaColorSpinorField &out, const cudaColorSpinorField &in) const
virtual ~DiracDomainWallPC()
virtual ~DiracStaggered()
DiracMdag(const Dirac &d)
void twistedCloverApply(cudaColorSpinorField &out, const cudaColorSpinorField &in, const QudaTwistGamma5Type twistType, const int parity) const
void reconstruct(cudaColorSpinorField &x, const cudaColorSpinorField &b, const QudaSolutionType) const
virtual void MdagM(cudaColorSpinorField &out, const cudaColorSpinorField &in) const
void prepare(cudaColorSpinorField *&src, cudaColorSpinorField *&sol, cudaColorSpinorField &x, cudaColorSpinorField &b, const QudaSolutionType) const
bool newTmp(cudaColorSpinorField **, const cudaColorSpinorField &) const
void CloverInv(cudaColorSpinorField &out, const cudaColorSpinorField &in, const QudaParity parity) const
DiracMdagM(const Dirac *d)
double c_5[QUDA_MAX_DWF_LS]
void reconstruct(cudaColorSpinorField &x, const cudaColorSpinorField &b, const QudaSolutionType) const
DiracTwistedMassPC & operator=(const DiracTwistedMassPC &dirac)
virtual void prepare(cudaColorSpinorField *&src, cudaColorSpinorField *&sol, cudaColorSpinorField &x, cudaColorSpinorField &b, const QudaSolutionType) const
virtual ~DiracDomainWall4DPC()
void operator()(cudaColorSpinorField &out, const cudaColorSpinorField &in, cudaColorSpinorField &Tmp1, cudaColorSpinorField &Tmp2) const
virtual void prepare(cudaColorSpinorField *&src, cudaColorSpinorField *&sol, cudaColorSpinorField &x, cudaColorSpinorField &b, const QudaSolutionType) const
void operator()(cudaColorSpinorField &out, const cudaColorSpinorField &in, cudaColorSpinorField &Tmp1, cudaColorSpinorField &Tmp2) const
virtual void reconstruct(cudaColorSpinorField &x, const cudaColorSpinorField &b, const QudaSolutionType) const =0
void operator()(cudaColorSpinorField &out, const cudaColorSpinorField &in) const
void Dslash5inv(cudaColorSpinorField &out, const cudaColorSpinorField &in, const QudaParity parity, const double &k) const
DiracWilson & operator=(const DiracWilson &dirac)
void prepare(cudaColorSpinorField *&src, cudaColorSpinorField *&sol, cudaColorSpinorField &x, cudaColorSpinorField &b, const QudaSolutionType) const
virtual void M(cudaColorSpinorField &out, const cudaColorSpinorField &in) const
void operator()(cudaColorSpinorField &out, const cudaColorSpinorField &in, cudaColorSpinorField &tmp) const
DiracTwistedMass & operator=(const DiracTwistedMass &dirac)
virtual void MdagM(cudaColorSpinorField &out, const cudaColorSpinorField &in) const
virtual void prepare(cudaColorSpinorField *&src, cudaColorSpinorField *&sol, cudaColorSpinorField &x, cudaColorSpinorField &b, const QudaSolutionType) const
DiracTwistedCloverPC(const DiracTwistedCloverPC &dirac)
QudaMatPCType getMatPCType() const
virtual void Dslash(cudaColorSpinorField &out, const cudaColorSpinorField &in, const QudaParity parity) const
virtual void MdagM(cudaColorSpinorField &out, const cudaColorSpinorField &in) const
virtual void reconstruct(cudaColorSpinorField &x, const cudaColorSpinorField &b, const QudaSolutionType) const
virtual void reconstruct(cudaColorSpinorField &x, const cudaColorSpinorField &b, const QudaSolutionType) const
virtual void M(cudaColorSpinorField &out, const cudaColorSpinorField &in) const
cudaGaugeField & fatGauge
DiracMobiusDomainWallPC & operator=(const DiracMobiusDomainWallPC &dirac)
unsigned long long flops() const
void checkSpinorAlias(const cudaColorSpinorField &, const cudaColorSpinorField &) const
virtual void DslashXpay(cudaColorSpinorField &out, const cudaColorSpinorField &in, const QudaParity parity, const cudaColorSpinorField &x, const double &k) const =0
void setDiracParam(DiracParam &diracParam, QudaInvertParam *inv_param, bool pc)
DiracStaggered & operator=(const DiracStaggered &dirac)
virtual void M(cudaColorSpinorField &out, const cudaColorSpinorField &in) const
void Dslash4Xpay(cudaColorSpinorField &out, const cudaColorSpinorField &in, const QudaParity parity, const cudaColorSpinorField &x, const double &k) const
virtual void Dslash(cudaColorSpinorField &out, const cudaColorSpinorField &in, const QudaParity parity) const =0
int commDim[QUDA_MAX_DIM]
virtual void M(cudaColorSpinorField &out, const cudaColorSpinorField &in) const
double shift
Shift term added onto operator (M^dag M + shift)
virtual void DslashXpay(cudaColorSpinorField &out, const cudaColorSpinorField &in, const QudaParity parity, const cudaColorSpinorField &x, const double &k) const
void reconstruct(cudaColorSpinorField &x, const cudaColorSpinorField &b, const QudaSolutionType) const
virtual void DslashXpay(cudaColorSpinorField &out, const cudaColorSpinorField &in, const QudaParity parity, const cudaColorSpinorField &x, const double &k) const
DiracDomainWallPC(const DiracParam ¶m)
void TwistClover(cudaColorSpinorField &out, const cudaColorSpinorField &in, const int parity) const
void Dslash4(cudaColorSpinorField &out, const cudaColorSpinorField &in, const QudaParity parity) const
void Dslash5(cudaColorSpinorField &out, const cudaColorSpinorField &in, const QudaParity parity) const
cudaColorSpinorField * tmp
void M(cudaColorSpinorField &out, const cudaColorSpinorField &in) const
DiracClover & operator=(const DiracClover &dirac)
virtual void reconstruct(cudaColorSpinorField &x, const cudaColorSpinorField &b, const QudaSolutionType) const
void M(cudaColorSpinorField &out, const cudaColorSpinorField &in) const
DiracStaggeredPC & operator=(const DiracStaggeredPC &dirac)
virtual void Dslash(cudaColorSpinorField &out, const cudaColorSpinorField &in, const QudaParity parity) const
void Dagger(QudaDagType dag)
virtual void Dslash(cudaColorSpinorField &out, const cudaColorSpinorField &in, const QudaParity parity) const
void M(cudaColorSpinorField &out, const cudaColorSpinorField &in) const
DiracDomainWall & operator=(const DiracDomainWall &dirac)
unsigned long long Flops() const
virtual void checkParitySpinor(const cudaColorSpinorField &, const cudaColorSpinorField &) const
DiracMatrix(const Dirac *d)
DiracTwistedCloverPC & operator=(const DiracTwistedCloverPC &dirac)
DiracDomainWall4DPC(const DiracParam ¶m)
int commDim[QUDA_MAX_DIM]
virtual void MdagM(cudaColorSpinorField &out, const cudaColorSpinorField &in) const
void Dslash5Xpay(cudaColorSpinorField &out, const cudaColorSpinorField &in, const QudaParity parity, const cudaColorSpinorField &x, const double &k) const
enum QudaMatPCType_s QudaMatPCType
DiracTwistedClover & operator=(const DiracTwistedClover &dirac)
void MdagM(cudaColorSpinorField &out, const cudaColorSpinorField &in) const
virtual void MdagM(cudaColorSpinorField &out, const cudaColorSpinorField &in) const =0
void MdagM(cudaColorSpinorField &out, const cudaColorSpinorField &in) const
cudaColorSpinorField * tmp2
DiracDomainWall(const DiracParam ¶m)
DiracMMdag(const Dirac &d)
enum QudaSolutionType_s QudaSolutionType
virtual void MdagM(cudaColorSpinorField &out, const cudaColorSpinorField &in) const
virtual ~DiracTwistedCloverPC()
double b_5[QUDA_MAX_DWF_LS]
NEW: used by domain wall and twisted mass.
void deleteTmp(cudaColorSpinorField **, const bool &reset) const
DiracTwistedClover(const DiracTwistedClover &dirac)
void prepare(cudaColorSpinorField *&src, cudaColorSpinorField *&sol, cudaColorSpinorField &x, cudaColorSpinorField &b, const QudaSolutionType) const
QudaMatPCType matpcType
NEW: used by mobius domain wall only.
void Dslash(cudaColorSpinorField &out, const cudaColorSpinorField &in, const QudaParity parity) const
enum QudaDagType_s QudaDagType
void MdagM(cudaColorSpinorField &out, const cudaColorSpinorField &in) const
enum QudaParity_s QudaParity
void axpyCuda(const double &a, cudaColorSpinorField &x, cudaColorSpinorField &y)
virtual void M(cudaColorSpinorField &out, const cudaColorSpinorField &in) const
cudaCloverField * cloverInv
DiracCloverPC(const DiracParam ¶m)
virtual void prepare(cudaColorSpinorField *&src, cudaColorSpinorField *&sol, cudaColorSpinorField &x, cudaColorSpinorField &b, const QudaSolutionType) const
void operator()(cudaColorSpinorField &out, const cudaColorSpinorField &in) const
virtual void DslashXpay(cudaColorSpinorField &out, const cudaColorSpinorField &in, const QudaParity parity, const cudaColorSpinorField &x, const double &k) const
virtual ~DiracMobiusDomainWallPC()
void operator()(cudaColorSpinorField &out, const cudaColorSpinorField &in) const
DiracDomainWallPC & operator=(const DiracDomainWallPC &dirac)
void prepare(cudaColorSpinorField *&src, cudaColorSpinorField *&sol, cudaColorSpinorField &x, cudaColorSpinorField &b, const QudaSolutionType) const
double shift
Shift term added onto operator (M^dag M + shift)
void setMass(double mass)
virtual void prepare(cudaColorSpinorField *&src, cudaColorSpinorField *&sol, cudaColorSpinorField &x, cudaColorSpinorField &b, const QudaSolutionType) const
DiracMobiusDomainWallPC(const DiracParam ¶m)
void Dslash5Xpay(cudaColorSpinorField &out, const cudaColorSpinorField &in, const QudaParity parity, const cudaColorSpinorField &x, const double &k) const
void Dslash4(cudaColorSpinorField &out, const cudaColorSpinorField &in, const QudaParity parity) const
void MdagM(cudaColorSpinorField &out, const cudaColorSpinorField &in) const
virtual ~DiracTwistedClover()
void reconstruct(cudaColorSpinorField &x, const cudaColorSpinorField &b, const QudaSolutionType) const
void Dslash4pre(cudaColorSpinorField &out, const cudaColorSpinorField &in, const QudaParity parity) const
DiracClover(const DiracParam ¶m)
cudaColorSpinorField * tmp2
void operator()(cudaColorSpinorField &out, const cudaColorSpinorField &in, cudaColorSpinorField &tmp) const
virtual void checkFullSpinor(const cudaColorSpinorField &, const cudaColorSpinorField &) const
virtual void MdagM(cudaColorSpinorField &out, const cudaColorSpinorField &in) const
virtual void DslashXpay(cudaColorSpinorField &out, const cudaColorSpinorField &in, const QudaParity parity, const cudaColorSpinorField &x, const double &k) const
Dirac & operator=(const Dirac &dirac)
QudaInvertParam inv_param
virtual void DslashXpay(cudaColorSpinorField &out, const cudaColorSpinorField &in, const QudaParity parity, const cudaColorSpinorField &x, const double &k) const
void Dslash(cudaColorSpinorField &out, const cudaColorSpinorField &in, const QudaParity parity) const
NEW : added setFace(), domainWallDslashCuda() got an extra argument.
cpuColorSpinorField * out
void TwistCloverInv(cudaColorSpinorField &out, const cudaColorSpinorField &in, const int parity) const
virtual void M(cudaColorSpinorField &out, const cudaColorSpinorField &in) const =0
cudaColorSpinorField * tmp1
virtual void MdagM(cudaColorSpinorField &out, const cudaColorSpinorField &in) const
virtual void prepare(cudaColorSpinorField *&src, cudaColorSpinorField *&sol, cudaColorSpinorField &x, cudaColorSpinorField &b, const QudaSolutionType) const =0
void operator()(cudaColorSpinorField &out, const cudaColorSpinorField &in, cudaColorSpinorField &Tmp1, cudaColorSpinorField &Tmp2) const
#define QUDA_MAX_DWF_LS
Maximum length of the Ls dimension for domain-wall fermions.
void Dslash4Xpay(cudaColorSpinorField &out, const cudaColorSpinorField &in, const QudaParity parity, const cudaColorSpinorField &x, const double &k) const
DiracMdagM(const Dirac &d)
void operator()(cudaColorSpinorField &out, const cudaColorSpinorField &in, cudaColorSpinorField &tmp) const
virtual void reconstruct(cudaColorSpinorField &x, const cudaColorSpinorField &b, const QudaSolutionType) const
virtual void operator()(cudaColorSpinorField &out, const cudaColorSpinorField &in) const =0
cudaGaugeField * fatGauge
void prepare(cudaColorSpinorField *&src, cudaColorSpinorField *&sol, cudaColorSpinorField &x, cudaColorSpinorField &b, const QudaSolutionType) const
DiracMMdag(const Dirac *d)
cudaGaugeField & longGauge
virtual void reconstruct(cudaColorSpinorField &x, const cudaColorSpinorField &b, const QudaSolutionType) const
cudaCloverField & cloverInv
void twistedApply(cudaColorSpinorField &out, const cudaColorSpinorField &in, const QudaTwistGamma5Type twistType) const
virtual void MdagM(cudaColorSpinorField &out, const cudaColorSpinorField &in) const
void DslashXpay(cudaColorSpinorField &out, const cudaColorSpinorField &in, const QudaParity parity, const cudaColorSpinorField &x, const double &k) const
cudaGaugeField * longGauge
enum QudaTwistGamma5Type_s QudaTwistGamma5Type
#define QUDA_MAX_DIM
Maximum number of dimensions supported by QUDA. In practice, no routines make use of more than 5...
void M(cudaColorSpinorField &out, const cudaColorSpinorField &in) const
DiracTwistedMass(const DiracTwistedMass &dirac)
void M(cudaColorSpinorField &out, const cudaColorSpinorField &in) const
static Dirac * create(const DiracParam ¶m)
double b_5[QUDA_MAX_DWF_LS]
virtual void Dslash(cudaColorSpinorField &out, const cudaColorSpinorField &in, const QudaParity parity) const
void Mdag(cudaColorSpinorField &out, const cudaColorSpinorField &in) const
DiracStaggered(const DiracParam ¶m)
DiracCloverPC & operator=(const DiracCloverPC &dirac)
virtual void reconstruct(cudaColorSpinorField &x, const cudaColorSpinorField &b, const QudaSolutionType) const
void operator()(cudaColorSpinorField &out, const cudaColorSpinorField &in, cudaColorSpinorField &Tmp1, cudaColorSpinorField &Tmp2) const
virtual void prepare(cudaColorSpinorField *&src, cudaColorSpinorField *&sol, cudaColorSpinorField &x, cudaColorSpinorField &b, const QudaSolutionType) const
virtual ~DiracDomainWall()
virtual ~DiracStaggeredPC()
void reconstruct(cudaColorSpinorField &x, const cudaColorSpinorField &b, const QudaSolutionType) const
void operator()(cudaColorSpinorField &out, const cudaColorSpinorField &in) const
virtual void M(cudaColorSpinorField &out, const cudaColorSpinorField &in) const
DiracMdag(const Dirac *d)
void DslashXpay(cudaColorSpinorField &out, const cudaColorSpinorField &in, const QudaParity parity, const cudaColorSpinorField &x, const double &k) const
NEW : added setFace(), domainWallDslashCuda() got an extra argument.
virtual void Dslash(cudaColorSpinorField &out, const cudaColorSpinorField &in, const QudaParity parity) const
DiracImprovedStaggered(const DiracParam ¶m)
virtual ~DiracTwistedMass()
void checkParitySpinor(const cudaColorSpinorField &, const cudaColorSpinorField &) const
QudaMatPCType getMatPCType() const
virtual void M(cudaColorSpinorField &out, const cudaColorSpinorField &in) const
void reconstruct(cudaColorSpinorField &x, const cudaColorSpinorField &b, const QudaSolutionType) const
void MdagM(cudaColorSpinorField &out, const cudaColorSpinorField &in) const
virtual void prepare(cudaColorSpinorField *&src, cudaColorSpinorField *&sol, cudaColorSpinorField &x, cudaColorSpinorField &b, const QudaSolutionType) const
virtual void reconstruct(cudaColorSpinorField &x, const cudaColorSpinorField &b, const QudaSolutionType) const
virtual void MdagM(cudaColorSpinorField &out, const cudaColorSpinorField &in) const
enum QudaDiracType_s QudaDiracType
void checkParitySpinor(const cudaColorSpinorField &, const cudaColorSpinorField &) const
DiracImprovedStaggered & operator=(const DiracImprovedStaggered &dirac)
void Twist(cudaColorSpinorField &out, const cudaColorSpinorField &in) const
virtual void prepare(cudaColorSpinorField *&src, cudaColorSpinorField *&sol, cudaColorSpinorField &x, cudaColorSpinorField &b, const QudaSolutionType) const
void MMdag(cudaColorSpinorField &out, const cudaColorSpinorField &in) const