29 if (
in.Ndim() != 5 ||
out.Ndim() != 5)
errorQuda(
"Wrong number of dimensions\n");
34 &static_cast<const cudaColorSpinorField&>(
in),
37 flops += 1320LL*(
long long)
in.Volume();
43 if (
in.Ndim() != 5 ||
out.Ndim() != 5)
errorQuda(
"Wrong number of dimensions\n");
48 &static_cast<const cudaColorSpinorField&>(
in),
51 long long Ls =
in.X(4);
52 long long bulk = (
Ls-2)*(
in.Volume()/
Ls);
53 long long wall = 2*
in.Volume()/
Ls;
54 flops += 96LL*bulk + 120LL*wall;
61 if (
in.Ndim() != 5 ||
out.Ndim() != 5)
errorQuda(
"Wrong number of dimensions\n");
67 &static_cast<const cudaColorSpinorField&>(
in),
71 long long Ls =
in.X(4);
78 const double &k)
const 80 if (
in.Ndim() != 5 ||
out.Ndim() != 5)
errorQuda(
"Wrong number of dimensions\n");
86 &static_cast<const cudaColorSpinorField&>(
in),
90 flops += (1320LL+48LL)*(
long long)
in.Volume();
95 const double &k)
const 97 if (
in.Ndim() != 5 ||
out.Ndim() != 5)
errorQuda(
"Wrong number of dimensions\n");
102 &static_cast<const cudaColorSpinorField&>(
in),
103 parity,
dagger, &static_cast<const cudaColorSpinorField&>(
x),
106 long long Ls =
in.X(4);
107 long long bulk = (
Ls-2)*(
in.Volume()/
Ls);
108 long long wall = 2*
in.Volume()/
Ls;
109 flops += (48LL)*(
long long)
in.Volume() + 96LL*bulk + 120LL*wall;
116 if (
in.Ndim() != 5 ||
out.Ndim() != 5)
errorQuda(
"Wrong number of dimensions\n");
122 &static_cast<const cudaColorSpinorField&>(
in),
123 parity,
dagger, &static_cast<const cudaColorSpinorField&>(
x),
126 long long Ls =
in.X(4);
127 flops += (144LL*
Ls + 48LL)*(
long long)
in.Volume() + 3LL*
Ls*(
Ls-1LL);
133 if (
in.Ndim() != 5 ||
out.Ndim() != 5)
errorQuda(
"Wrong number of dimensions\n");
142 if (symmetric && !
dagger) {
148 }
else if (symmetric &&
dagger) {
void Dslash5(ColorSpinorField &out, const ColorSpinorField &in, const QudaParity parity) const
DiracDomainWall4DPC & operator=(const DiracDomainWall4DPC &dirac)
virtual void checkFullSpinor(const ColorSpinorField &, const ColorSpinorField &) const
void prepare(ColorSpinorField *&src, ColorSpinorField *&sol, ColorSpinorField &x, ColorSpinorField &b, const QudaSolutionType) const
void deleteTmp(ColorSpinorField **, const bool &reset) const
virtual ~DiracDomainWall4DPC()
void reconstruct(ColorSpinorField &x, const ColorSpinorField &b, const QudaSolutionType) const
bool newTmp(ColorSpinorField **, const ColorSpinorField &) const
int commDim[QUDA_MAX_DIM]
void Dslash5inv(ColorSpinorField &out, const ColorSpinorField &in, const QudaParity parity, const double &kappa5) const
void Dslash5invXpay(ColorSpinorField &out, const ColorSpinorField &in, const QudaParity parity, const double &kappa5, const ColorSpinorField &x, const double &k) const
void checkSpinorAlias(const ColorSpinorField &, const ColorSpinorField &) const
DiracDomainWall4DPC(const DiracParam ¶m)
enum QudaSolutionType_s QudaSolutionType
void Dslash4Xpay(ColorSpinorField &out, const ColorSpinorField &in, const QudaParity parity, const ColorSpinorField &x, const double &k) const
enum QudaParity_s QudaParity
DiracDomainWallPC & operator=(const DiracDomainWallPC &dirac)
void Dslash4(ColorSpinorField &out, const ColorSpinorField &in, const QudaParity parity) const
void Mdag(ColorSpinorField &out, const ColorSpinorField &in) const
void Dslash5Xpay(ColorSpinorField &out, const ColorSpinorField &in, const QudaParity parity, const ColorSpinorField &x, const double &k) const
cpuColorSpinorField * out
void domainWallDslashCuda(cudaColorSpinorField *out, const cudaGaugeField &gauge, const cudaColorSpinorField *in, const int parity, const int dagger, const cudaColorSpinorField *x, const double &m_f, const double &k, const int *commDim, TimeProfile &profile)
void MdagM(ColorSpinorField &out, const ColorSpinorField &in) const
virtual void checkParitySpinor(const ColorSpinorField &, const ColorSpinorField &) const
void M(ColorSpinorField &out, const ColorSpinorField &in) const