7
9
10 // need a better solution here but as long as they gauge field live in interface probably ok
14
16 {
18
22
25
28
31
36 }
37
40
44 } else {
46 }
48 }
49 bool pc = true;
50
53
60 default:
errorQuda(
"Unsupported dslash_test_type in dslashQuda_4dpc.");
61 }
62
66 *out_h = out;
67
72 }
73
74 delete out_h;
75 delete in_h;
76
78 }
79
81 {
83
87
90
93
96
101 }
102
105
109 } else {
111 }
113 }
114 bool pc = true;
115
118
125 default:
errorQuda(
"Unsupported dslash_test_type in dslashQuda_mdwf.");
126 }
127
131 *out_h = out;
132
137 }
138
139 delete out_h;
140 delete in_h;
141
143 }
144
147 {
150 } else {
151 errorQuda(
"This type of dslashQuda operator is defined for QUDA_MOBIUS_DWF_EOFA_DSLASH ONLY");
152 }
153
155
158
160
163
166
170 printfQuda(
"In CPU: %16.12e CUDA: %16.12e\n", cpu, gpu);
171 }
172
175
179 } else {
181 }
183 }
184 constexpr bool pc = true;
185
188
194 default:
errorQuda(
"test_type(=%d) NOT defined for M\"obius EOFA! :( \n",
static_cast<int>(
test_type));
195 }
196 }
static ColorSpinorField * Create(const ColorSpinorParam ¶m)
QudaFieldLocation location
virtual void Dslash4(ColorSpinorField &out, const ColorSpinorField &in, const QudaParity parity) const
Apply the local MdagM operator: equivalent to applying zero Dirichlet boundary condition to MdagM on ...
virtual void M(ColorSpinorField &out, const ColorSpinorField &in) const
Apply M for the dirac op. E.g. the Schur Complement operator.
double Anisotropy() const
QudaInvertParam inv_param
cudaGaugeField * gaugeFatPrecise
cudaGaugeField * gaugeLongPrecise
void dslashQuda_mdwf(void *h_out, void *h_in, QudaInvertParam *inv_param, QudaParity parity, dslash_test_type test_type)
void dslashQuda_mobius_eofa(void *h_out, void *h_in, QudaInvertParam *inv_param, QudaParity parity, dslash_test_type test_type)
void dslashQuda_4dpc(void *h_out, void *h_in, QudaInvertParam *inv_param, QudaParity parity, dslash_test_type test_type)
cudaGaugeField * gaugePrecise
@ QUDA_MOBIUS_DWF_EOFA_DSLASH
@ QUDA_CPS_WILSON_DIRAC_ORDER
enum QudaParity_s QudaParity
void ax(double a, ColorSpinorField &x)
double norm2(const ColorSpinorField &a)
void setKernelPackT(bool pack)
void setDiracParam(DiracParam &diracParam, QudaInvertParam *inv_param, bool pc)
Main header file for the QUDA library.
void printQudaInvertParam(QudaInvertParam *param)
QudaDslashType dslash_type
QudaFieldLocation input_location
QudaFieldLocation output_location
QudaDiracFieldOrder dirac_order
void pushVerbosity(QudaVerbosity verbosity)
Push a new verbosity onto the stack.
void popVerbosity()
Pop the verbosity restoring the prior one on the stack.
QudaVerbosity getVerbosity()