void DiracStaggered::Dslash(cudaColorSpinorField &out, const cudaColorSpinorField &in, const QudaParity parity) const { checkParitySpinor(in, out); staggered::setFace(face1, face2); // FIXME: temporary hack maintain C linkage for dslashCuda staggeredDslashCuda(&out, gauge, &in, parity, dagger, 0, 0, commDim, profile); flops += 570ll*in.Volume(); }
void DiracStaggered::DslashXpay(cudaColorSpinorField &out, const cudaColorSpinorField &in, const QudaParity parity, const cudaColorSpinorField &x, const double &k) const { checkParitySpinor(in, out); initSpinorConstants(in, profile); setFace(face); // FIXME: temporary hack maintain C linkage for dslashCuda staggeredDslashCuda(&out, fatGauge, longGauge, &in, parity, dagger, &x, k, commDim, profile); flops += 1158ll*in.Volume(); }
void DiracStaggered::Dslash(cudaColorSpinorField &out, const cudaColorSpinorField &in, const QudaParity parity) const { if (!initDslash) { initDslashConstants(*fatGauge, in.Stride()); initStaggeredConstants(*fatGauge, *longGauge); } checkParitySpinor(in, out); setFace(face); // FIXME: temporary hack maintain C linkage for dslashCuda staggeredDslashCuda(&out, *fatGauge, *longGauge, &in, parity, dagger, 0, 0, commDim); flops += 1146*in.Volume(); }
void DiracStaggered::Dslash(ColorSpinorField &out, const ColorSpinorField &in, const QudaParity parity) const { checkParitySpinor(in, out); if (checkLocation(out, in) == QUDA_CUDA_FIELD_LOCATION) { staggeredDslashCuda(&static_cast<cudaColorSpinorField&>(out), *gauge, &static_cast<const cudaColorSpinorField&>(in), parity, dagger, 0, 0, commDim, profile); } else { errorQuda("Not supported"); } flops += 570ll*in.Volume(); }