Bridge++  Ver. 1.1.x
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
projection_Stout_SU3.h
Go to the documentation of this file.
1 
15 #ifndef PROJECTION_STOUT_SU3_INCLUDED
16 #define PROJECTION_STOUT_SU3_INCLUDED
17 
18 #include <cassert>
19 #include <valarray>
20 #include "projection.h"
21 #include "bridge_complex.h"
22 #include "mat_SU_N.h"
23 //#include "libkek.h" //- only for BG/Q
24 
25 #include "bridgeIO.h"
26 using Bridge::vout;
27 
28 // The following implementation only valid for Nc = 3 case.
29 #define NC 3
30 
31 
33 
40 //- parameters class
42 {
43  public:
45 };
46 //-
47 
49 {
50  private:
51  unsigned long int m_flop;
52  double m_time;
53 
54  public:
55 
57  {
58  setup();
59  }
60 
62 
63  void set_parameters(const Parameters& param);
64 
66  void project(Field_G& U,
67  double alpha,
68  const Field_G& C, const Field_G& Uorg);
69 
71  void force_recursive(Field_G& Xi, Field_G& iTheta,
72  double alpha, const Field_G& Sigmap,
73  const Field_G& C, const Field_G& U);
74 
75  void print_stat();
76 
77  private:
78  void exp_iQ(Field_G& e_iQ, const Field_G& iQ);
79  void exp_iQ_bf(Field_G& e_iQ, const Field_G& iQ);
80 
81  void set_uw(double& u, double& w,
82  const Mat_SU_N& iQ1, const Mat_SU_N& iQ2);
83 
84  void set_fj(dcomplex& f0, dcomplex& f1, dcomplex& f2,
85  const double& u, const double& w);
86 
87  double func_xi0(double w);
88  double func_xi1(double w);
89 
90  void setup();
91 };
92 #endif