QUDA  1.0.0
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
enum_quda_fortran.h
Go to the documentation of this file.
1 #/*
2 # enum_quda_fortran.h
3 #
4 # This is Fortran version of enum_quda.h. This is currently
5 # generated by hand, and so must be matched against an appropriate
6 # version of QUDA. It would be nice to auto-generate this from
7 # enum_quda.h and this should probably use Fortran enumerate types
8 # instead (this requires Fortran 2003, but this is covered by
9 # gfortran).
10 #*/
11 
12 #ifndef _ENUM_FORTRAN_QUDA_H
13 #define _ENUM_FORTRAN_QUDA_H
14 
15 #/* can't include limits.h in a Fortran program */
16 #define QUDA_INVALID_ENUM (-2147483647 - 1)
17 
18 #define QudaLinkType integer(4)
19 
20 #define QUDA_MEMORY_DEVICE 0
21 #define QUDA_MEMORY_PINNED 1
22 #define QUDA_MEMORY_MAPPED 2
23 #define QUDA_MEMORY_INVALID QUDA_INVALID_ENUM
24 
25 #define QUDA_CUSOLVE_EXTLIB 0
26 #define QUDA_EIGEN_EXTLIB 1
27 #define QUDA_MAGMA_EXTLIB 2
28 #define QUDA_EXTLIB_INVALID QUDA_INVALID_ENUM
29 
30 #define QUDA_SU3_LINKS 0
31 #define QUDA_GENERAL_LINKS 1
32 #define QUDA_THREE_LINKS 2
33 #define QUDA_MOMENTUM_LINKS 3
34 #define QUDA_COARSE_LINKS 4
35 #define QUDA_SMEARED_LINKS 5
36 
37 #define QUDA_WILSON_LINKS QUDA_SU3_LINKS
38 #define QUDA_ASQTAD_FAT_LINKS QUDA_GENERAL_LINKS
39 #define QUDA_ASQTAD_LONG_LINKS QUDA_THREE_LINKS
40 #define QUDA_ASQTAD_MOM_LINKS QUDA_MOMENTUM_LINKS
41 #define QUDA_ASQTAD_GENERAL_LINKS QUDA_GENERAL_LINKS
42 #define QUDA_INVALID_LINKS QUDA_INVALID_ENUM
43 
44 #define QudaGaugeFieldOrder integer(4)
45 #define QUDA_FLOAT_GAUGE_ORDER 1
46 #define QUDA_FLOAT2_GAUGE_ORDER 2 //no reconstruct and double precision
47 #define QUDA_FLOAT4_GAUGE_ORDER 4 //8 and 12 reconstruct half and single
48 #define QUDA_QDP_GAUGE_ORDER 5 //expect *gauge[4] even-odd spacetime row-column color
49 #define QUDA_QDPJIT_GAUGE_ORDER 6 //expect *gauge[4] even-odd spacetime row-column color
50 #define QUDA_CPS_WILSON_GAUGE_ORDER 7 //expect *gauge even-odd spacetime column-row color
51 #define QUDA_MILC_GAUGE_ORDER 8 //expect *gauge even-odd mu spacetime row-column order
52 #define QUDA_MILC_SITE_GAUGE_ORDER 9 // packed into MILC site AoS [even-odd][spacetime] array, and [dir][row][col] inside
53 #define QUDA_BQCD_GAUGE_ORDER 10 //expect *gauge mu even-odd spacetime+halos row-column order
54 #define QUDA_TIFR_GAUGE_ORDER 11
55 #define QUDA_TIFR_PADDED_GAUGE_ORDER 12
56 #define QUDA_INVALID_GAUGE_ORDER QUDA_INVALID_ENUM
57 
58 #define QudaTboundary integer(4)
59 #define QUDA_ANTI_PERIODIC_T -1
60 #define QUDA_PERIODIC_T 1
61 #define QUDA_INVALID_T_BOUNDARY QUDA_INVALID_ENUM
62 
63 #define QudaPrecision integer(4)
64 #define QUDA_QUARTER_PRECISION 1
65 #define QUDA_HALF_PRECISION 2
66 #define QUDA_SINGLE_PRECISION 4
67 #define QUDA_DOUBLE_PRECISION 8
68 #define QUDA_INVALID_PRECISION QUDA_INVALID_ENUM
69 
70 #define QudaReconstructType integer(4)
71 #define QUDA_RECONSTRUCT_NO 18
72 #define QUDA_RECONSTRUCT_12 12
73 #define QUDA_RECONSTRUCT_8 8
74 #define QUDA_RECONSTRUCT_9 9
75 #define QUDA_RECONSTRUCT_13 13
76 #define QUDA_RECONSTRUCT_10 10
77 #define QUDA_RECONSTRUCT_INVALID QUDA_INVALID_ENUM
78 
79 #define QudaGaugeFixed integer(4)
80 #define QUDA_GAUGE_FIXED_NO 0
81 #define QUDA_GAUGE_FIXED_YES 1 // gauge field stored in temporal gauge
82 #define QUDA_GAUGE_FIXED_INVALID QUDA_INVALID_ENUM
83 
84 ! Types used in QudaInvertParam
85 
86 #define QudaDslashType integer(4)
87 #define QUDA_WILSON_DSLASH 0
88 #define QUDA_CLOVER_WILSON_DSLASH 1
89 #define QUDA_DOMAIN_WALL_DSLASH 2
90 #define QUDA_DOMAIN_WALL_4D_DSLASH 3
91 #define QUDA_MOBIUS_DWF_DSLASH 4
92 #define QUDA_STAGGERED_DSLASH 5
93 #define QUDA_ASQTAD_DSLASH 7
94 #define QUDA_TWISTED_MASS_DSLASH 7
95 #define QUDA_TWISTED_CLOVER_DSLASH 8
96 #define QUDA_LAPLACE_DSLASH 9
97 #define QUDA_INVALID_DSLASH QUDA_INVALID_ENUM
98 
99 #define QudaInverterType integer(4)
100 #define QUDA_CG_INVERTER 0
101 #define QUDA_BICGSTAB_INVERTER 1
102 #define QUDA_GCR_INVERTER 2
103 #define QUDA_MR_INVERTER 3
104 #define QUDA_MPBICGSTAB_INVERTER 4
105 #define QUDA_SD_INVERTER 5
106 #define QUDA_XSD_INVERTER 6
107 #define QUDA_PCG_INVERTER 7
108 #define QUDA_MPCG_INVERTER 8
109 #define QUDA_EIGCG_INVERTER 9
110 #define QUDA_INC_EIGCG_INVERTER 10
111 #define QUDA_GMRESDR_INVERTER 11
112 #define QUDA_GMRESDR_PROJ_INVERTER 12
113 #define QUDA_GMRESDR_SH_INVERTER 13
114 #define QUDA_FGMRESDR_INVERTER 14
115 #define QUDA_MG_INVERTER 15
116 #define QUDA_BICGSTABL_INVERTER 16
117 #define QUDA_CGNE_INVERTER 17
118 #define QUDA_CGNR_INVERTER 18
119 #define QUDA_CG3_INVERTER 19
120 #define QUDA_CG3NE_INVERTER 20
121 #define QUDA_CG3NR_INVERTER 21
122 #define QUDA_CA_CG_INVERTER 22
123 #define QUDA_CA_CGNE_INVERTER 23
124 #define QUDA_CA_CGNR_INVERTER 24
125 #define QUDA_CA_GCR_INVERTER 25
126 #define QUDA_INVALID_INVERTER QUDA_INVALID_ENUM
127 
128 #define QudaEigType integer(4)
129 #define QUDA_EIG_TR_LANCZOS 0 // Thick Restarted Lanczos Solver
130 #define QUDA_EIG_IR_LANCZOS 1 // Implicitly restarted Lanczos solver (not yet implemented)
131 #define QUDA_EIG_IR_ARNOLDI 2 // Implicitly restarted Arnoldi solver (not yet implemented)
132 #define QUDA_EIG_INVALID QUDA_INVALID_ENUM
133 
134 #define QudaEigSpectrumType integer(4)
135 #define QUDA_SPECTRUM_SR_EIG 0
136 #define QUDA_SPECTRUM_LR_EIG 1
137 #define QUDA_SPECTRUM_SM_EIG 2
138 #define QUDA_SPECTRUM_LM_EIG 3
139 #define QUDA_SPECTRUM_SI_EIG 4
140 #define QUDA_SPECTRUM_LI_EIG 5
141 #define QUDA_SPECTRUM_INVALID QUDA_INVALID_ENUM
142 
143 #define QudaSolutionType integer(4)
144 #define QUDA_MAT_SOLUTION 0
145 #define QUDA_MATDAG_MAT_SOLUTION 1
146 #define QUDA_MATPC_SOLUTION 2
147 #define QUDA_MATPC_DAG_SOLUTION 3
148 #define QUDA_MATPCDAG_MATPC_SOLUTION 4
149 #define QUDA_MATPCDAG_MATPC_SHIFT_SOLUTION 5
150 #define QUDA_INVALID_SOLUTION QUDA_INVALID_ENUM
151 
152 #define QudaSolveType integer(4)
153 #define QUDA_DIRECT_SOLVE 0
154 #define QUDA_NORMOP_SOLVE 1
155 #define QUDA_DIRECT_PC_SOLVE 2
156 #define QUDA_NORMOP_PC_SOLVE 3
157 #define QUDA_NORMERR_SOLVE 4
158 #define QUDA_NORMERR_PC_SOLVE 5
159 #define QUDA_NORMEQ_SOLVE QUDA_NORMOP_SOLVE // deprecated
160 #define QUDA_NORMEQ_PC_SOLVE QUDA_NORMOP_PC_SOLVE // deprecated
161 #define QUDA_INVALID_SOLVE QUDA_INVALID_ENUM
162 
163 #define QudaMultigridCycleType integer(4)
164 #define QUDA_MG_CYCLE_VCYCLE 0
165 #define QUDA_MG_CYCLE_FCYCLE 1
166 #define QUDA_MG_CYCLE_WCYCLE 2
167 #define QUDA_MG_CYCLE_RECURSIVE 3
168 #define QUDA_MG_CYCLE_INVALID QUDA_INVALID_ENUM
169 
170 #define QudaSchwarzType integer(4)
171 #define QUDA_ADDITIVE_SCHWARZ 0
172 #define QUDA_MULTIPLICATIVE_SCHWARZ 1
173 #define QUDA_INVALID_SCHWARZ QUDA_INVALID_ENUM
174 
175 #define QudaResidualType integer(4)
176 #define QUDA_L2_RELATIVE_RESIDUAL 1
177 #define QUDA_L2_ABSOLUTE_RESIDUAL 2
178 #define QUDA_HEAVY_QUARK_RESIDUAL 4
179 #define QUDA_INVALID_RESIDUAL QUDA_INVALID_ENUM
180 
181 #define QudaCABasis integer(4)
182 #define QUDA_POWER_BASIS 0
183 #define QUDA_CHEBYSHEV_BASIS 1
184 #define QUDA_INVALID_BASIS QUDA_INVALID_ENUM
185 
186 #/*
187  # Whether the preconditioned matrix is (1-k^2 Deo Doe) or (1-k^2 Doe Deo)
188  #
189  # For the clover-improved Wilson Dirac operator QUDA_MATPC_EVEN_EVEN
190  # defaults to the "symmetric" form (1 - k^2 A_ee^-1 D_eo A_oo^-1 D_oe)
191  # and likewise for QUDA_MATPC_ODD_ODD.
192  #
193  # For the "asymmetric" form (A_ee - k^2 D_eo A_oo^-1 D_oe) select
194  # QUDA_MATPC_EVEN_EVEN_ASYMMETRIC.
195  # */
196 
197 #define QudaMatPCType integer(4)
198 #define QUDA_MATPC_EVEN_EVEN 0
199 #define QUDA_MATPC_ODD_ODD 1
200 #define QUDA_MATPC_EVEN_EVEN_ASYMMETRIC 2
201 #define QUDA_MATPC_ODD_ODD_ASYMMETRIC 3
202 #define QUDA_MATPC_INVALID QUDA_INVALID_ENUM
203 
204 #define QudaDagType integer(4)
205 #define QUDA_DAG_NO 0
206 #define QUDA_DAG_YES 1
207 #define QUDA_DAG_INVALID QUDA_INVALID_ENUM
208 
209 #define QudaMassNormalization integer(4)
210 #define QUDA_KAPPA_NORMALIZATION 0
211 #define QUDA_MASS_NORMALIZATION 1
212 #define QUDA_ASYMMETRIC_MASS_NORMALIZATION 2
213 #define QUDA_INVALID_NORMALIZATION QUDA_INVALID_ENUM
214 
215 #define QudaSolverNormalization integer(4)
216 #define QUDA_DEFAULT_NORMALIZATION 0 // leave source and solution untouched
217 #define QUDA_SOURCE_NORMALIZATION 1 // normalize such that || src || = 1
218 
219 #define QudaPreserveSource integer(4)
220 #define QUDA_PRESERVE_SOURCE_NO 0 // use the source for the residual
221 #define QUDA_PRESERVE_SOURCE_YES 1
222 #define QUDA_PRESERVE_SOURCE_INVALID QUDA_INVALID_ENUM
223 
224 #define QudaDiracFieldOrder integer(4)
225 #define QUDA_INTERNAL_DIRAC_ORDER 0 // internal dirac order used by QUDA varies depending on precision and dslash type
226 #define QUDA_DIRAC_ORDER 1
227 #define QUDA_QDP_DIRAC_ORDER 2 // even-odd spin inside color
228 #define QUDA_QDPJIT_DIRAC_ORDER 3 // even-odd, complex-color-spin-spacetime
229 #define QUDA_CPS_WILSON_DIRAC_ORDER 4 // odd-even color inside spin
230 #define QUDA_LEX_DIRAC_ORDER 5 // lexicographical order color inside spin
231 #define QUDA_TIFR_PADDED_DIRAC_ORDER 6
232 #define QUDA_INVALID_DIRAC_ORDER QUDA_INVALID_ENUM
233 
234 #define QudaCloverFieldOrder integer(4)
235 #define QUDA_FLOAT_CLOVER_ORDER 1 // even-odd float ordering
236 #define QUDA_FLOAT2_CLOVER_ORDER 2 // even-odd float2 ordering
237 #define QUDA_FLOAT4_CLOVER_ORDER 4 // even-odd float4 ordering
238 #define QUDA_PACKED_CLOVER_ORDER 5 // even-odd packed
239 #define QUDA_QDPJIT_CLOVER_ORDER 6 // lexicographical order packed
240 #define QUDA_BQCD_CLOVER_ORDER 7 // BQCD order which is a packed super-diagonal form
241 #define QUDA_INVALID_CLOVER_ORDER QUDA_INVALID_ENUM
242 
243 #define QudaVerbosity integer(4)
244 #define QUDA_SILENT 0
245 #define QUDA_SUMMARIZE 1
246 #define QUDA_VERBOSE 2
247 #define QUDA_DEBUG_VERBOSE 3
248 #define QUDA_INVALID_VERBOSITY QUDA_INVALID_ENUM
249 
250 #define QudaTune integer(4)
251 #define QUDA_TUNE_NO 0
252 #define QUDA_TUNE_YES 1
253 #define QUDA_TUNE_INVALID QUDA_INVALID_ENUM
254 
255 #define QudaPreserveDirac integer(4)
256 #define QUDA_PRESERVE_DIRAC_NO 0
257 #define QUDA_PRESERVE_DIRAC_YES 1
258 #define QUDA_PRESERVE_DIRAC_INVALID QUDA_INVALID_ENUM
259 
260 ! Type used for "parity" argument to dslashQuda()
261 
262 #define QudaParity integer(4)
263 #define QUDA_EVEN_PARITY 0
264 #define QUDA_ODD_PARITY 1
265 #define QUDA_INVALID_PARITY QUDA_INVALID_ENUM
266 
267 ! Types used only internally
268 
269 #define QudaDiracType integer(4)
270 #define QUDA_WILSON_DIRAC 0
271 #define QUDA_WILSONPC_DIRAC 1
272 #define QUDA_CLOVER_DIRAC 2
273 #define QUDA_CLOVERPC_DIRAC 3
274 #define QUDA_DOMAIN_WALL_DIRAC 4
275 #define QUDA_DOMAIN_WALLPC_DIRAC 5
276 #define QUDA_DOMAIN_WALL_4D_DIRAC 6
277 #define QUDA_DOMAIN_WALL_4DPC_DIRAC 7
278 #define QUDA_MOBIUS_DOMAIN_WALL_DIRAC 8
279 #define QUDA_MOBIUS_DOMAIN_WALLPC_DIRAC 9
280 #define QUDA_STAGGERED_DIRAC 10
281 #define QUDA_STAGGEREDPC_DIRAC 11
282 #define QUDA_ASQTAD_DIRAC 12
283 #define QUDA_ASQTADPC_DIRAC 13
284 #define QUDA_TWISTED_MASS_DIRAC 14
285 #define QUDA_TWISTED_MASSPC_DIRAC 15
286 #define QUDA_TWISTED_CLOVER_DIRAC 16
287 #define QUDA_TWISTED_CLOVERPC_DIRAC 17
288 #define QUDA_COARSE_DIRAC 18
289 #define QUDA_COARSEPC_DIRAC 19
290 #define QUDA_GAUGE_LAPLACE_DIRAC 20
291 #define QUDA_GAUGE_LAPLACEPC_DIRAC 21
292 #define QUDA_GAUGE_COVDEV_DIRAC 22
293 #define QUDA_INVALID_DIRAC QUDA_INVALID_ENUM
294 
295 ! Where the field is stored
296 #define QudaFieldLocation integer(4)
297 #define QUDA_CPU_FIELD_LOCATION 1
298 #define QUDA_CUDA_FIELD_LOCATION 2
299 #define QUDA_INVALID_FIELD_LOCATION QUDA_INVALID_ENUM
300 
301 ! Which sites are included
302 #define QudaSiteSubset integer(4)
303 #define QUDA_PARITY_SITE_SUBSET 1
304 #define QUDA_FULL_SITE_SUBSET 2
305 #define QUDA_INVALID_SITE_SUBSET QUDA_INVALID_ENUM
306 
307 ! Site ordering (always t-z-y-x with rightmost varying fastest)
308 #define QudaSiteOrder integer(4)
309 #define QUDA_LEXICOGRAPHIC_SITE_ORDER 0 // lexicographic ordering
310 #define QUDA_EVEN_ODD_SITE_ORDER 1 // QUDA and QDP use this
311 #define QUDA_ODD_EVEN_SITE_ORDER 2 // CPS uses this
312 #define QUDA_INVALID_SITE_ORDER QUDA_INVALID_ENUM
313 
314 ! Degree of freedom ordering
315 #define QudaFieldOrder integer(4)
316 #define QUDA_FLOAT_FIELD_ORDER 1 // spin-color-complex-space
317 #define QUDA_FLOAT2_FIELD_ORDER 2 // (spin-color-complex)/2-space-(spin-color-complex)%2
318 #define QUDA_FLOAT4_FIELD_ORDER 4 // (spin-color-complex)/4-space-(spin-color-complex)%4
319 #define QUDA_SPACE_SPIN_COLOR_FIELD_ORDER 5 // CPS/QDP++ ordering
320 #define QUDA_SPACE_COLOR_SPIN_FIELD_ORDER 6 // QLA ordering (spin inside color)
321 #define QUDA_QDPJIT_FIELD_ORDER 7 // QDP field ordering (complex-color-spin-spacetime)
322 #define QUDA_QOP_DOMAIN_WALL_FIELD_ORDER 8 // QOP domain-wall ordering
323 #define QUDA_PADDED_SPACE_SPIN_COLOR_FIELD_ORDER 9 // TIFR RHMC ordering
324 #define QUDA_INVALID_FIELD_ORDER QUDA_INVALID_ENUM
325 
326 #define QudaFieldCreate integer(4)
327 #define QUDA_NULL_FIELD_CREATE 0 // create new field
328 #define QUDA_ZERO_FIELD_CREATE 1 // create new field and zero it
329 #define QUDA_COPY_FIELD_CREATE 2 // create copy to field
330 #define QUDA_REFERENCE_FIELD_CREATE 3 // create reference to field
331 #define QUDA_INVALID_FIELD_CREATE QUDA_INVALID_ENUM
332 
333 #define QudaGammaBasis integer(4)
334 #define QUDA_DEGRAND_ROSSI_GAMMA_BASIS 0
335 #define QUDA_UKQCD_GAMMA_BASIS 1
336 #define QUDA_CHIRAL_GAMMA_BASIS 2
337 #define QUDA_INVALID_GAMMA_BASIS QUDA_INVALID_ENUM
338 
339 #define QudaSourceType integer(4)
340 #define QUDA_POINT_SOURCE 0
341 #define QUDA_RANDOM_SOURCE 1
342 #define QUDA_CONSTANT_SOURCE 2
343 #define QUDA_SINUSOIDAL_SOURCE 3
344 #define QUDA_CORNER_SOURCE 4
345 #define QUDA_INVALID_SOURCE QUDA_INVALID_ENUM
346 
347 #define QudaNoiseType integer(4)
348 #define QUDA_NOISE_GAUSS 0
349 #define QUDA_NOISE_UNIFORM 1
350 #define QUDA_NOISE_INVALID QUDA_INVALID_ENUM
351 
352 #define QudaProjectionType integer(4)
353 #define QUDA_MINRES_PROJECTION 0
354 #define QUDA_GALERKIN_PROJECTION 1
355 #define QUDA_INVALID_PROJECTION QUDA_INVALID_ENUM
356 
357 #define QudaPCType integer(4)
358 #define QUDA_4D_PC 4
359 #define QUDA_5D_PC 5
360 #define QUDA_PC_INVALID QUDA_INVALID_ENUM
361 
362 #define QudaTwistFlavorType integer(4)
363 #define QUDA_TWIST_SINGLET 1
364 #define QUDA_TWIST_NONDEG_DOUBLET +2
365 #define QUDA_TWIST_DEG_DOUBLET -2
366 #define QUDA_TWIST_NO 0
367 #define QUDA_TWIST_INVALID QUDA_INVALID_ENUM
368 
369 #define QudaTwistDslashType integer(4)
370 #define QUDA_DEG_TWIST_INV_DSLASH 0
371 #define QUDA_DEG_DSLASH_TWIST_INV 1
372 #define QUDA_DEG_DSLASH_TWIST_XPAY 2
373 #define QUDA_NONDEG_DSLASH 3
374 #define QUDA_DSLASH_INVALID QUDA_INVALID_ENUM
375 
376 #define QudaTwistCloverDslashType integer(4)
377 #define QUDA_DEG_CLOVER_TWIST_INV_DSLASH 0
378 #define QUDA_DEG_DSLASH_CLOVER_TWIST_INV 1
379 #define QUDA_DEG_DSLASH_CLOVER_TWIST_XPAY 2
380 #define QUDA_TC_DSLASH_INVALID QUDA_INVALID_ENUM
381 
382 #define QudaTwistGamma5Type integer(4)
383 #define QUDA_TWIST_GAMMA5_DIRECT 0
384 #define QUDA_TWIST_GAMMA5_INVERSE 1
385 #define QUDA_TWIST_GAMMA5_INVALID QUDA_INVALID_ENUM
386 
387 #define QudaUseInitGuess integer(4)
388 #define QUDA_USE_INIT_GUESS_NO 0
389 #define QUDA_USE_INIT_GUESS_YES 1
390 #define QUDA_USE_INIT_GUESS_INVALID QUDA_INVALID_ENUM
391 
392 #define QudaComputeNullVector integer(4)
393 #define QUDA_COMPUTE_NULL_VECTOR_NO 0
394 #define QUDA_COMPUTE_NULL_VECTOR_YES 1
395 #define QUDA_COMPUTE_NULL_VECTOR_INVALID QUDA_INVALID_ENUM
396 
397 #define QudaSetupType integer(4)
398 #define QUDA_NULL_VECTOR_SETUP 0
399 #define QUDA_TEST_VECTOR_SETUP 1
400 #define QUDA_INVALID_SETUP_TYPE QUDA_INVALID_ENUM
401 
402 #define QudaBoolean integer(4)
403 #define QUDA_BOOLEAN_FALSE 0
404 #define QUDA_BOOLEAN_TRUE 1
405 #define QUDA_BOOLEAN_INVALID QUDA_INVALID_ENUM
406 #define QUDA_BOOLEAN_NO QUDA_BOOLEAN_FALSE // backwards compatibility
407 #define QUDA_BOOLEAN_YES QUDA_BOOLEAN_TRUE // backwards compatibility
408 
409 #define QudaDirection integer(4)
410 #define QUDA_BACKWARDS -1
411 #define QUDA_FORWARDS +1
412 #define QUDA_BOTH_DIRS 2
413 
414 #define QudaLinkDirection integer(4)
415 #define QUDA_LINK_BACKWARDS 0
416 #define QUDA_LINK_FORWARDS 1
417 #define QUDA_LINK_BIDIRECTIONAL 2
418 
419 #define QudaFieldGeometry integer(4)
420 #define QUDA_SCALAR_GEOMETRY 1
421 #define QUDA_VECTOR_GEOMETRY 4
422 #define QUDA_TENSOR_GEOMETRY 6
423 #define QUDA_COARSE_GEOMETRY 8
424 #define QUDA_INVALID_GEOMETRY QUDA_INVALID_ENUM
425 
426 #define QudaGhostExchange integer(4)
427 #define QUDA_GHOST_EXCHANGE_NO 0
428 #define QUDA_GHOST_EXCHANGE_PAD 1
429 #define QUDA_GHOST_EXCHANGE_EXTENDED 2
430 #define QUDA_GHOST_EXCHANGE_INVALID QUDA_INVALID_ENUM
431 
432 #define QudaStaggeredPhase integer(4)
433 #define QUDA_STAGGERED_PHASE_NO 0
434 #define QUDA_STAGGERED_PHASE_MILC 1
435 #define QUDA_STAGGERED_PHASE_CPS 2
436 #define QUDA_STAGGERED_PHASE_TIFR 3
437 #define QUDA_STAGGERED_PHASE_INVALID QUDA_INVALID_ENUM
438 
439 #define QudaContractType integer(4)
440 #define QUDA_CONTRACT_TYPE_OPEN ,
441 #define QUDA_CONTRACT_TYPE_DR ,
442 #define QUDA_CONTRACT_TYPE_DP ,
443 #define QUDA_CONTRACT_TYPE_INVALID = QUDA_INVALID_ENUM
444 
445 #define QudaContractGamma integer(4)
446 #define QUDA_CONTRACT_GAMMA_I 0
447 #define QUDA_CONTRACT_GAMMA_G1 1
448 #define QUDA_CONTRACT_GAMMA_G2 2
449 #define QUDA_CONTRACT_GAMMA_G3 3
450 #define QUDA_CONTRACT_GAMMA_G4 4
451 #define QUDA_CONTRACT_GAMMA_G5 5
452 #define QUDA_CONTRACT_GAMMA_G1G5 6
453 #define QUDA_CONTRACT_GAMMA_G2G5 7
454 #define QUDA_CONTRACT_GAMMA_G3G5 8
455 #define QUDA_CONTRACT_GAMMA_G4G5 9
456 #define QUDA_CONTRACT_GAMMA_S12 10
457 #define QUDA_CONTRACT_GAMMA_S13 11
458 #define QUDA_CONTRACT_GAMMA_S14 12
459 #define QUDA_CONTRACT_GAMMA_S21 13
460 #define QUDA_CONTRACT_GAMMA_S23 14
461 #define QUDA_CONTRACT_GAMMA_S34 15
462 #define QUDA_CONTRACT_GAMMA_INVALID QUDA_INVALID_ENUM
463 
464 #define QudaExtLibType integer(4)
465 #define QUDA_CUSOLVE_EXTLIB 0
466 #define QUDA_EIGEN_EXTLIB 1
467 #define QUDA_MAGMA_EXTLIB 2
468 #define QUDA_EXTLIB_INVALID QUDA_INVALID_ENUM
469 
470 #endif
void dslashQuda(void *h_out, void *h_in, QudaInvertParam *inv_param, QudaParity parity)
cpuColorSpinorField * in