QUDA  v0.5.0
A library for QCD on GPUs
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
hisq_force_quda.h
Go to the documentation of this file.
1 #ifndef _HISQ_FORCE_QUDA_H
2 #define _HISQ_FORCE_QUDA_H
3 
4 #include <quda_internal.h>
5 #include <quda.h>
6 #include <gauge_field.h>
7 
8 namespace quda {
9  namespace fermion_force {
10 
12 
13  void hisqStaplesForceCuda(const double path_coeff[6],
14  const QudaGaugeParam& param,
15  const cudaGaugeField& oprod,
16  const cudaGaugeField& link,
17  cudaGaugeField *newOprod);
18 
19 
20  void hisqLongLinkForceCuda(double coeff,
21  const QudaGaugeParam& param,
22  const cudaGaugeField &oprod,
23  const cudaGaugeField &link,
24  cudaGaugeField *newOprod);
25 
26 
27  void hisqCompleteForceCuda(const QudaGaugeParam &param,
28  const cudaGaugeField &oprod,
29  const cudaGaugeField &link,
30  cudaGaugeField *force);
31 
32 
33 
34  void setUnitarizeForceConstants(double unitarize_eps, double hisq_force_filter, double max_det_error,
35  bool allow_svd, bool svd_only,
36  double svd_rel_error,
37  double svd_abs_error);
38 
39  void unitarizeForceCuda(const QudaGaugeParam &param,
40  cudaGaugeField &cudaOldForce,
42  cudaGaugeField *cudaNewForce,
43  int* unitarization_failed);
44 
45  void unitarizeForceCPU( const QudaGaugeParam &param,
46  cpuGaugeField &cpuOldForce,
48  cpuGaugeField *cpuNewForce);
49 
50 
51  } // namespace fermion_force
52 } // namespace quda
53 
54 #endif // _HISQ_FORCE_QUDA_H