22 if (
in.Ndim() != 5 ||
out.Ndim() != 5) {
23 errorQuda(
"Staggered dslash requires 5-d fermion fields");
26 if (
in.Precision() !=
out.Precision()) {
27 errorQuda(
"Input and output spinor precisions don't match in dslash_quda");
30 if (
in.Stride() !=
out.Stride()) {
31 errorQuda(
"Input %d and output %d spinor strides don't match in dslash_quda",
in.Stride(),
out.Stride());
35 errorQuda(
"ColorSpinorFields are not single parity, in = %d, out = %d",
36 in.SiteSubset(),
out.SiteSubset());
53 *
gauge, &static_cast<const cudaColorSpinorField&>(
in),
parity,
64 const double &k)
const 106 errorQuda(
"Preconditioned solution requires a preconditioned solve_type");
139 if (&
dirac !=
this) {
148 errorQuda(
"DiracStaggeredPC::M() is not implemented\n");
virtual void prepare(ColorSpinorField *&src, ColorSpinorField *&sol, ColorSpinorField &x, ColorSpinorField &b, const QudaSolutionType) const
DiracStaggeredPC(const DiracParam ¶m)
virtual ~DiracStaggered()
const ColorSpinorField & Even() const
void deleteTmp(ColorSpinorField **, const bool &reset) const
virtual void MdagM(ColorSpinorField &out, const ColorSpinorField &in) const
virtual void reconstruct(ColorSpinorField &x, const ColorSpinorField &b, const QudaSolutionType) const
bool newTmp(ColorSpinorField **, const ColorSpinorField &) const
DiracStaggered & operator=(const DiracStaggered &dirac)
int commDim[QUDA_MAX_DIM]
DiracStaggeredPC & operator=(const DiracStaggeredPC &dirac)
void staggeredDslashCuda(cudaColorSpinorField *out, const cudaGaugeField &gauge, const cudaColorSpinorField *in, const int parity, const int dagger, const cudaColorSpinorField *x, const double &k, const int *commDim, TimeProfile &profile)
virtual void prepare(ColorSpinorField *&src, ColorSpinorField *&sol, ColorSpinorField &x, ColorSpinorField &b, const QudaSolutionType) const
virtual void reconstruct(ColorSpinorField &x, const ColorSpinorField &b, const QudaSolutionType) const
#define checkLocation(...)
enum QudaSolutionType_s QudaSolutionType
virtual void checkParitySpinor(const ColorSpinorField &, const ColorSpinorField &) const
enum QudaParity_s QudaParity
virtual void M(ColorSpinorField &out, const ColorSpinorField &in) const
Dirac & operator=(const Dirac &dirac)
cpuColorSpinorField * out
virtual void Dslash(ColorSpinorField &out, const ColorSpinorField &in, const QudaParity parity) const
virtual void MdagM(ColorSpinorField &out, const ColorSpinorField &in) const
DiracStaggered(const DiracParam ¶m)
virtual ~DiracStaggeredPC()
virtual void DslashXpay(ColorSpinorField &out, const ColorSpinorField &in, const QudaParity parity, const ColorSpinorField &x, const double &k) const
virtual void M(ColorSpinorField &out, const ColorSpinorField &in) const