ESyS-Particle  2.3.4
Rng.h
Go to the documentation of this file.
1 // //
3 // Copyright (c) 2003-2017 by The University of Queensland //
4 // Centre for Geoscience Computing //
5 // http://earth.uq.edu.au/centre-geoscience-computing //
6 // //
7 // Primary Business: Brisbane, Queensland, Australia //
8 // Licensed under the Open Software License version 3.0 //
9 // http://www.apache.org/licenses/LICENSE-2.0 //
10 // //
12 
13 
14 #ifndef ESYS_LSMRNG_H
15 #define ESYS_LSMRNG_H
16 
17 #include <boost/random.hpp>
18 
19 namespace esys
20 {
21  namespace lsm
22  {
26  template <typename TmplRng=boost::mt19937>
27  class UniformRng
28  {
29  public:
30  typedef TmplRng Rng;
31  typedef boost::uniform_real<> UniformReal;
32  typedef boost::variate_generator<Rng &, UniformReal> Generator;
33 
39  UniformRng(double minRn, double maxRn);
40 
45  double operator()();
46 
50  void seed();
51 
56  template <typename Tmpl>
57  void seed(Tmpl &s);
58 
64  template <typename TmplIt>
65  void seed(TmplIt begin, TmplIt end);
66 
67  private:
71  };
72 
74 
75  namespace rng
76  {
78  }
79  }
80 }
81 
82 #include "Foundation/Rng.hpp"
83 
84 #endif
esys::lsm::rng::s_zeroOneUniform
DefaultUniformRng s_zeroOneUniform(0.0, 1.0)
Definition: Rng.h:77
esys::lsm::UniformRng::Generator
boost::variate_generator< Rng &, UniformReal > Generator
Definition: Rng.h:32
Rng.hpp
esys::lsm::UniformRng::Rng
TmplRng Rng
Definition: Rng.h:30
Rng.h
esys
Definition: CheckPointable.cpp:17
esys::lsm::UniformRng::UniformReal
boost::uniform_real UniformReal
Definition: Rng.h:31
esys::lsm::UniformRng::UniformRng
UniformRng(double minRn, double maxRn)
Definition: Rng.hpp:19
esys::lsm::UniformRng::m_uniform
UniformReal m_uniform
Definition: Rng.h:69
esys::lsm::UniformRng::m_rng
Rng m_rng
Definition: Rng.h:68
esys::lsm::UniformRng
Definition: Rng.h:28
esys::lsm::UniformRng::seed
void seed()
Definition: Rng.hpp:33
esys::lsm::UniformRng::m_generator
Generator m_generator
Definition: Rng.h:70
esys::lsm::UniformRng::operator()
double operator()()
Definition: Rng.hpp:27
esys::lsm::DefaultUniformRng
UniformRng DefaultUniformRng
Definition: Rng.h:73