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