Bridge++  Ver. 1.3.x
randomNumbers.h
Go to the documentation of this file.
1 
15 #ifndef RANDOMNUMBERS_INCLUDED
16 #define RANDOMNUMBERS_INCLUDED
17 
18 #include <cmath>
19 #include <string>
20 
21 #include "field.h"
22 
23 #include "bridgeIO.h"
24 
26 
40 {
41  public:
42  static const std::string class_name;
43 
44  protected:
46 
47  public:
48 
50  : m_vl(CommonParameters::Vlevel()) {}
51 
52  virtual ~RandomNumbers() {}
53 
54  private:
55  // non-copyable
58 
59  public:
60 
62 
63  virtual double get() = 0;
64 
65  void gauss(double& rand1, double& rand2);
66 
67 
69  virtual void gauss_lex_global(Field&);
70 
72  virtual void gauss_eo_global(Field&);
73 
75  virtual void uniform_lex_global(Field&);
76 
77  protected:
78 
80  {
81  public:
83  : m_rng(rng), m_ptr(f.ptr(0)), m_block(f.nin()) {}
84  void operator()(const bool do_fill);
85  size_t block_size() const;
86 
87  private:
89  double *m_ptr;
90  size_t m_block;
91  };
92 
94  {
95  public:
97  : m_rng(rng), m_ptr(f.ptr(0)), m_block(f.nin()) {}
98  void operator()(const bool do_fill);
99  size_t block_size() const;
100 
101  private:
103  double *m_ptr;
104  size_t m_block;
105  };
106 
108  {
109  public:
111  : m_rng(rng), m_ptr(f.ptr(0)), m_block(f.nin()) {}
112  void operator()(const bool do_fill);
113  size_t block_size() const;
114 
115  private:
117  double *m_ptr;
118  size_t m_block;
119  };
120 
121  private:
122  template<typename InnerGenerator>
123  void generate_global(Field& f);
124 };
125 #endif
void set_parameter_verboselevel(const Bridge::VerboseLevel vl)
Definition: randomNumbers.h:61
virtual void uniform_lex_global(Field &)
uniform random number defined on global lattice.
Container of Field-type object.
Definition: field.h:39
rand_gauss_odd(Field &f, RandomNumbers *rng)
Definition: randomNumbers.h:96
RandomNumbers & operator=(const RandomNumbers &)
static const std::string class_name
Definition: randomNumbers.h:42
virtual ~RandomNumbers()
Definition: randomNumbers.h:52
virtual void gauss_lex_global(Field &)
gaussian random number defined on global lattice.
Bridge::VerboseLevel m_vl
Definition: randomNumbers.h:45
rand_uniform(Field &f, RandomNumbers *rng)
void operator()(const bool do_fill)
virtual void gauss_eo_global(Field &)
gaussian noise for even-odd perconditioned field (S.UEDA)
Common parameter class: provides parameters as singleton.
void operator()(const bool do_fill)
void operator()(const bool do_fill)
Base class of random number generators.
Definition: randomNumbers.h:39
Bridge::VerboseLevel vl
Definition: checker.cpp:18
VerboseLevel
Definition: bridgeIO.h:39
void generate_global(Field &f)
void gauss(double &rand1, double &rand2)
rand_gauss_even(Field &f, RandomNumbers *rng)
Definition: randomNumbers.h:82