7 :
Dirac(param), fatGauge(*(param.fatGauge)), longGauge(*(param.longGauge)) { }
26 if (in.
Ndim() != 5 || out.
Ndim() != 5) {
27 errorQuda(
"Staggered dslash requires 5-d fermion fields");
31 errorQuda(
"Input and output spinor precisions don't match in dslash_quda");
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",
116 errorQuda(
"Preconditioned solution requires a preconditioned solve_type");
149 if (&dirac !=
this) {
189 errorQuda(
"MdagM is no longer defined for DiracImprovedStaggeredPC. Use M instead.\n");
DiracImprovedStaggeredPC & operator=(const DiracImprovedStaggeredPC &dirac)
void ax(double a, ColorSpinorField &x)
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
virtual void checkFullSpinor(const ColorSpinorField &, const ColorSpinorField &) const
const ColorSpinorField & Even() const
void deleteTmp(ColorSpinorField **, const bool &reset) const
const ColorSpinorField & Odd() 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
QudaSiteSubset SiteSubset() const
virtual void MdagM(ColorSpinorField &out, const ColorSpinorField &in) const
enum QudaSolutionType_s QudaSolutionType
enum QudaParity_s QudaParity
virtual void MdagM(ColorSpinorField &out, const ColorSpinorField &in) const
Dirac & operator=(const Dirac &dirac)
cpuColorSpinorField * out
virtual void prepare(ColorSpinorField *&src, ColorSpinorField *&sol, ColorSpinorField &x, ColorSpinorField &b, const QudaSolutionType) const
cudaGaugeField & longGauge
void ApplyImprovedStaggered(ColorSpinorField &out, const ColorSpinorField &in, const GaugeField &U, const GaugeField &L, double a, const ColorSpinorField &x, int parity, bool dagger, const int *comm_override, TimeProfile &profile)
Apply the improved staggered dslash operator to a color-spinor field.
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
QudaPrecision Precision() const
DiracImprovedStaggered(const DiracParam ¶m)
virtual void M(ColorSpinorField &out, const ColorSpinorField &in) const
DiracImprovedStaggered & operator=(const DiracImprovedStaggered &dirac)