Bridge++  Ver. 2.0.2
fopr_Wilson_impl_SU_N-inc.h
Go to the documentation of this file.
1 
10 #ifndef FOPR_WILSON_IMPL_INC_INCLUDED
11 #define FOPR_WILSON_IMPL_INC_INCLUDED
12 
13 #define NCOL m_Nc
14 #define NVC m_Nvc
15 #define ND m_Nd
16 
17 // the following macro varable us used only in inline functions
18 #define NC Nc
19 
20 #define ID1 (0)
21 #define ID2 (2 * Nc)
22 #define ID3 (4 * Nc)
23 #define ID4 (6 * Nc)
24 
25 
26 namespace {
27  std::string imple_Nc() { return "SU(N)"; }
28 
29  void check_Nc()
30  {
32  " Gauge group implementation: general SU(N).\n");
33  }
34 
35 
36  inline double mult_uv_r(const double *g, const double *w, const int Nc)
37  {
38  double a = 0.0;
39  for (int i = 0; i < Nc; ++i) {
40  a += g[2 * i] * w[2 * i] - g[2 * i + 1] * w[2 * i + 1];
41  }
42  return a;
43  }
44 
45 
46  inline double mult_uv_i(const double *g, const double *w, const int Nc)
47  {
48  double a = 0.0;
49  for (int i = 0; i < Nc; ++i) {
50  a += g[2 * i] * w[2 * i + 1] + g[2 * i + 1] * w[2 * i];
51  }
52  return a;
53  }
54 
55 
56  inline double mult_udagv_r(const double *g, const double *w, const int Nc)
57  {
58  double a = 0.0;
59  for (int i = 0; i < Nc; ++i) {
60  a += g[2 * i * Nc] * w[2 * i] + g[2 * i * Nc + 1] * w[2 * i + 1];
61  }
62  return a;
63  }
64 
65 
66  inline double mult_udagv_i(const double *g, const double *w, const int Nc)
67  {
68  double a = 0.0;
69  for (int i = 0; i < Nc; ++i) {
70  a += g[2 * i * Nc] * w[2 * i + 1] - g[2 * i * Nc + 1] * w[2 * i];
71  }
72  return a;
73  }
74 } // end of nameless namespace
75 
76 #endif
77 //============================================================END=====
CommonParameters::Vlevel
static Bridge::VerboseLevel Vlevel()
Definition: commonParameters.h:122
Bridge::BridgeIO::general
void general(const char *format,...)
Definition: bridgeIO.cpp:200
Bridge::vout
BridgeIO vout
Definition: bridgeIO.cpp:512