RaftLib  0.3a
C++ Stream Processing Template Library
randombase.hpp
1 
20 #ifndef _RANDOMBASE_HPP_
21 #define _RANDOMBASE_HPP_ 1
22 #include <cstdint>
23 #include <gsl/gsl_rng.h>
24 
25 namespace raft{
26 
27 enum rndgenerator : std::int32_t {
28 dummy,
29 borosh13,
30 coveyou,
31 cmrg,
32 fishman18,
33 fishman20,
34 fishman2x,
35 gfsr4,
36 knuthran,
37 knuthran2,
38 knuthran2002,
39 lecuyer21,
40 minstd,
41 mrg,
42 mt19937,
43 mt19937_1999,
44 mt19937_1998,
45 r250,
46 ran0,
47 ran1,
48 ran2,
49 ran3,
50 rand,
51 rand48,
52 random128_bsd,
53 random128_glibc2,
54 random128_libc5,
55 random256_bsd,
56 random256_glibc2,
57 random256_libc5,
58 random32_bsd,
59 random32_glibc2,
60 random32_libc5,
61 random64_bsd,
62 random64_glibc2,
63 random64_libc5,
64 random8_bsd,
65 random8_glibc2,
66 random8_libc5,
67 random_bsd,
68 random_glibc2,
69 random_libc5,
70 randu,
71 ranf,
72 ranlux,
73 ranlux389,
74 ranlxd1,
75 ranlxd2,
76 ranlxs0,
77 ranlxs1,
78 ranlxs2,
79 ranmar,
80 slatec,
81 taus,
82 taus2,
83 taus113,
84 transputer,
85 tt800,
86 uni,
87 uni32,
88 vax,
89 waterman14,
90 zuf };
91 
92 
94 {
95 public:
107  randombase( const raft::rndgenerator gen, const std::uint64_t seed );
116  randombase( const raft::rndgenerator gen );
117 
118 protected:
124  static std::uint64_t sample_system_rng();
125 
127  gsl_rng *rng = nullptr;
128 };
129 
130 }
131 #endif /* END _RANDOMBASE_HPP_ */
Definition: randombase.hpp:93
gsl_rng * rng
Definition: randombase.hpp:127
static std::uint64_t sample_system_rng()
Definition: randombase.cpp:122
Definition: globalmap.cpp:3
randombase(const raft::rndgenerator gen, const std::uint64_t seed)
Definition: randombase.cpp:100