Bridge++  Ver. 2.0.2
fprop_alt_Standard_lex.h
Go to the documentation of this file.
1 
10 #ifndef FPROP_ALT_STANDARD_LEX_INCLUDED
11 #define FPROP_ALT_STANDARD_LEX_INCLUDED
12 
14 
15 #include "lib/Tools/timer.h"
16 
17 #include "lib/Fopr/afopr.h"
19 
20 #include "lib_alt/Solver/asolver.h"
21 
23 
29 template<typename AFIELD>
30 class Fprop_alt_Standard_lex : public Fprop_alt<AFIELD>
31 {
32  public:
33  typedef typename AFIELD::real_t real_t;
34  static const std::string class_name;
37 
38  private:
42 
44  double m_flop_count;
46 
48 
49  public:
50  Fprop_alt_Standard_lex(const Parameters& params_fopr,
51  const Parameters& params_solver)
52  : Fprop_alt<AFIELD>()
53  { init(params_fopr, params_solver); }
54 
55  Fprop_alt_Standard_lex(const Parameters& params_fopr,
56  const Parameters& params_solver,
57  Director_Smear *dr_smear)
58  : Fprop_alt<AFIELD>()
59  { init(params_fopr, params_solver, dr_smear); }
60 
62  { tidyup(); }
63 
64  void set_config(Field *);
65 
66  void invert(Field&, const Field&, int&, double&);
67 
68  void invert_D(Field&, const Field&, int&, double&);
69 
70  void invert_DdagD(Field&, const Field&, int&, double&);
71 
72  void invert_D_prec(Field&, const Field&, int&, double&);
73 
74  void invert_DdagD_prec(Field&, const Field&, int&, double&);
75 
76  // inverter with AFIELD
77  void invert(AFIELD&, const AFIELD&, int&, double&);
78 
79  void invert_D(AFIELD&, const AFIELD&, int&, double&);
80 
81  void invert_DdagD(AFIELD&, const AFIELD&, int&, double&);
82 
83  void invert_D_prec(AFIELD&, const AFIELD&, int&, double&);
84 
85  void invert_DdagD_prec(AFIELD&, const AFIELD&, int&, double&);
86 
87 
88  double flop_count();
89 
90  void reset_performance();
91 
92  void get_performance(double& flop_count, double& elapsed_time);
93 
94  void report_performance();
95 
96  void mult_performance(const std::string mode, const int Nrepeat);
97 
98  private:
99  void init(const Parameters& params_fopr,
100  const Parameters& params_solver);
101 
102  void init(const Parameters& params_fopr,
103  const Parameters& params_solver,
104  Director_Smear *dr_smear);
105 
106  void tidyup();
107 };
108 #endif
Fprop_alt_Standard_lex::invert_D
void invert_D(Field &, const Field &, int &, double &)
Definition: fprop_alt_Standard_lex-tmpl.h:121
director_Smear.h
Fprop_alt_Standard_lex::init
void init(const Parameters &params_fopr, const Parameters &params_solver)
Definition: fprop_alt_Standard_lex-tmpl.h:15
AFopr
Definition: afopr.h:48
ASolver
Definition: asolver.h:23
Fprop_alt_Standard_lex::tidyup
void tidyup()
Definition: fprop_alt_Standard_lex-tmpl.h:79
Parameters
Class for parameters.
Definition: parameters.h:46
Fprop_alt_Standard_lex::Fprop_alt_Standard_lex
Fprop_alt_Standard_lex(const Parameters &params_fopr, const Parameters &params_solver, Director_Smear *dr_smear)
Definition: fprop_alt_Standard_lex.h:55
fprop_alt.h
Fprop_alt_Standard_lex::m_kernel
AFopr< AFIELD > * m_kernel
Definition: fprop_alt_Standard_lex.h:39
Fprop_alt_Standard_lex::Fprop_alt_Standard_lex
Fprop_alt_Standard_lex(const Parameters &params_fopr, const Parameters &params_solver)
Definition: fprop_alt_Standard_lex.h:50
Fprop_alt_Standard_lex::mult_performance
void mult_performance(const std::string mode, const int Nrepeat)
Definition: fprop_alt_Standard_lex-tmpl.h:525
Timer
Definition: timer.h:31
Field::real_t
double real_t
Definition: field.h:51
Fprop_alt_Standard_lex::m_fopr
AFopr< AFIELD > * m_fopr
Definition: fprop_alt_Standard_lex.h:40
Fprop_alt_Standard_lex::flop_count
double flop_count()
Definition: fprop_alt_Standard_lex-tmpl.h:483
Fprop_alt_Standard_lex::m_flop_count
double m_flop_count
Definition: fprop_alt_Standard_lex.h:44
Fprop_alt_Standard_lex::m_solver
ASolver< AFIELD > * m_solver
Definition: fprop_alt_Standard_lex.h:41
Fprop_alt_Standard_lex::m_dr_smear
Director_Smear * m_dr_smear
Definition: fprop_alt_Standard_lex.h:47
Fprop_alt
Get quark propagator for Fopr with lexical site index: alternative version.
Definition: fprop_alt.h:29
timer.h
Fprop_alt_Standard_lex
Get quark propagator for Fopr with lexical site index: alternative version.
Definition: fprop_alt_Standard_lex.h:30
Fprop_alt_Standard_lex::invert_DdagD_prec
void invert_DdagD_prec(Field &, const Field &, int &, double &)
Definition: fprop_alt_Standard_lex-tmpl.h:280
Fprop_alt_Standard_lex::m_elapsed_time
double m_elapsed_time
Definition: fprop_alt_Standard_lex.h:45
Fprop_alt_Standard_lex::class_name
static const std::string class_name
Definition: fprop_alt_Standard_lex.h:34
Fprop_alt_Standard_lex::real_t
AFIELD::real_t real_t
Definition: fprop_alt_Standard_lex.h:33
Fprop_alt_Standard_lex::report_performance
void report_performance()
Definition: fprop_alt_Standard_lex-tmpl.h:510
Fprop_alt_Standard_lex::get_performance
void get_performance(double &flop_count, double &elapsed_time)
Definition: fprop_alt_Standard_lex-tmpl.h:500
Director_Smear
Manager of smeared configurations.
Definition: director_Smear.h:39
Fprop_alt_Standard_lex::invert_DdagD
void invert_DdagD(Field &, const Field &, int &, double &)
Definition: fprop_alt_Standard_lex-tmpl.h:178
Fprop_alt_Standard_lex::invert_D_prec
void invert_D_prec(Field &, const Field &, int &, double &)
Definition: fprop_alt_Standard_lex-tmpl.h:229
Fprop_alt_Standard_lex::invert
void invert(Field &, const Field &, int &, double &)
invert accordingly to the mode. [22 Sep 2018 H.Matsufuru]
Definition: fprop_alt_Standard_lex-tmpl.h:97
Fprop_alt_Standard_lex::reset_performance
void reset_performance()
Definition: fprop_alt_Standard_lex-tmpl.h:491
Fprop_alt_Standard_lex::set_config
void set_config(Field *)
Definition: fprop_alt_Standard_lex-tmpl.h:89
Fprop_alt_Standard_lex::~Fprop_alt_Standard_lex
~Fprop_alt_Standard_lex()
Definition: fprop_alt_Standard_lex.h:61
Field
Container of Field-type object.
Definition: field.h:46
afopr.h
Fprop_alt_Standard_lex::m_timer
Timer m_timer
Definition: fprop_alt_Standard_lex.h:43
asolver.h