17 matpcType(param.matpcType),
23 halo_precision(param.halo_precision),
24 profile(
"Dirac", false)
33 matpcType(dirac.matpcType),
39 halo_precision(dirac.halo_precision),
40 profile(
"Dirac", false)
71 if (*tmp)
return false;
88 #define flip(x) (x) = ((x) == QUDA_DAG_YES ? QUDA_DAG_NO : QUDA_DAG_YES) 110 errorQuda(
"CUDA Dirac operator requires UKQCD basis, out = %d, in = %d",
115 errorQuda(
"Input precision %d and output spinor precision %d don't match in dslash_quda",
120 errorQuda(
"Input %d and output %d spinor strides don't match in dslash_quda",
125 errorQuda(
"ColorSpinorFields are not single parity: in = %d, out = %d",
129 if (!static_cast<const cudaColorSpinorField&>(in).isNative())
errorQuda(
"Input field is not in native order");
130 if (!static_cast<const cudaColorSpinorField&>(out).isNative())
errorQuda(
"Output field is not in native order");
132 if (out.
Ndim() != 5) {
149 errorQuda(
"ColorSpinorFields are not full fields: in = %d, out = %d",
155 if (a.
V() == b.
V())
errorQuda(
"Aliasing pointers");
208 errorQuda(
"Cannot create DiracTwistedClover operator for %d flavors\n", param.
Ls);
215 errorQuda(
"Cannot create DiracTwistedCloverPC operator for %d flavors\n", param.
Ls);
223 printfQuda(
"Creating a DiracTwistedMassPC operator (%d flavor(s))\n", param.
Ls);
cudaColorSpinorField * tmp2
Dirac(const DiracParam ¶m)
Even-odd preconditioned Gauge Laplace operator.
cudaColorSpinorField * tmp1
QudaVerbosity getVerbosity()
virtual void checkFullSpinor(const ColorSpinorField &, const ColorSpinorField &) const
cudaColorSpinorField * tmp
void deleteTmp(ColorSpinorField **, const bool &reset) const
QudaGammaBasis GammaBasis() const
int getStencilSteps() const
virtual void MdagM(ColorSpinorField &out, const ColorSpinorField &in) const =0
bool newTmp(ColorSpinorField **, const ColorSpinorField &) const
int commDim[QUDA_MAX_DIM]
void MMdag(ColorSpinorField &out, const ColorSpinorField &in) const
void checkSpinorAlias(const ColorSpinorField &, const ColorSpinorField &) const
int commDim[QUDA_MAX_DIM]
QudaSiteSubset SiteSubset() const
void Mdag(ColorSpinorField &out, const ColorSpinorField &in) const
virtual void M(ColorSpinorField &out, const ColorSpinorField &in) const =0
Dirac & operator=(const Dirac &dirac)
cpuColorSpinorField * out
Full Gauge Laplace operator. Although not a Dirac operator per se, it's a linear operator so it's con...
static Dirac * create(const DiracParam ¶m)
virtual void checkParitySpinor(const ColorSpinorField &, const ColorSpinorField &) const
QudaPrecision Precision() const
Full Covariant Derivative operator. Although not a Dirac operator per se, it's a linear operator so i...