8 template <
typename Float,
int nColor, QudaReconstructType reconstruct_>
17 WilsonArg<Float,
nColor, reconstruct_>(out, in, U, a, x, parity, dagger, comm_override),
30 template <
typename Float,
int nDim,
int nColor,
int nParity,
bool dagger, KernelType kernel_type,
typename Arg>
41 int x_cb = getCoords<nDim, QUDA_4D_PC, kernel_type>(coord,
arg, idx,
parity, thread_dim);
47 applyWilson<Float, nDim, nColor, nParity, dagger, kernel_type>(
48 out,
arg, coord, x_cb, flavor,
parity, idx, thread_dim, active);
50 int my_flavor_idx = x_cb + flavor * arg.dc.volume_4d_cb;
55 Vector x0 = arg.x(x_cb + 0 * arg.dc.volume_4d_cb, my_spinor_parity);
56 Vector x1 = arg.x(x_cb + 1 * arg.dc.volume_4d_cb, my_spinor_parity);
59 out = x0 + arg.a *
out;
60 out += arg.b * x0.igamma(4);
63 out = x1 + arg.a *
out;
64 out += -arg.b * x1.igamma(4);
69 Vector
x = arg.out(my_flavor_idx, my_spinor_parity);
70 out = x + arg.a *
out;
77 template <
typename Float,
int nDim,
int nColor,
int nParity,
bool dagger, KernelType kernel_type,
typename Arg>
84 for (
int x_cb = 0; x_cb < arg.threads; x_cb++) {
85 for (
int flavor = 0; flavor < 2; flavor++) {
86 ndegTwistedMass<Float, nDim, nColor, nParity, dagger, kernel_type>(
arg, x_cb, flavor,
parity);
93 template <
typename Float,
int nDim,
int nColor,
int nParity,
bool dagger,
bool xpay, KernelType kernel_type,
typename Arg>
96 int x_cb = blockIdx.x * blockDim.x + threadIdx.x;
97 if (x_cb >= arg.threads)
return;
100 int flavor = blockIdx.y * blockDim.y + threadIdx.y;
103 int parity =
nParity == 2 ? blockDim.z * blockIdx.z + threadIdx.z : arg.parity;
106 case 0: ndegTwistedMass<Float, nDim, nColor, nParity, dagger, kernel_type>(
arg, x_cb, flavor, 0);
break;
107 case 1: ndegTwistedMass<Float, nDim, nColor, nParity, dagger, kernel_type>(
arg, x_cb, flavor, 1);
break;
__global__ void ndegTwistedMassGPU(Arg arg)
void ndegTwistedMassCPU(Arg arg)
NdegTwistedMassArg(ColorSpinorField &out, const ColorSpinorField &in, const GaugeField &U, double a, double b, double c, const ColorSpinorField &x, int parity, bool dagger, const int *comm_override)
__device__ __host__ void ndegTwistedMass(Arg &arg, int idx, int flavor, int parity)
Apply the twisted-mass dslash out(x) = M*in = a * D * in + (1 + i*b*gamma_5*tau_3 + c*tau_1)*x Note t...
Parameter structure for driving the Wilson operator.
__host__ __device__ ValueType arg(const complex< ValueType > &z)
Returns the phase angle of z.
mapper< Float >::type real