#include <random_generator.h>
|
| | RandomGenerator (unsigned long seed) |
| |
| int | Integer () |
| |
| int | IntegerUniform (int max) |
| |
| int | IntegerUniform (int min, int max) |
| |
| void | Integers (size_t count, std::vector< int > *integers) |
| |
| void | IntegersUniform (size_t count, int min, int max, std::vector< int > *integers) |
| |
| double | Double () |
| |
| double | DoubleUniform (double min, double max) |
| |
| double | DoubleGaussian (double mean, double stddev) |
| |
| void | Doubles (size_t count, std::vector< double > *doubles) |
| |
| void | DoublesUniform (size_t count, double min, double max, std::vector< double > *doubles) |
| |
| void | DoublesGaussian (size_t count, double mean, double stddev, std::vector< double > *doubles) |
| |
|
| static unsigned long | Seed () |
| |
Definition at line 52 of file random_generator.h.
| bsfm::math::RandomGenerator::RandomGenerator |
( |
unsigned long |
seed | ) |
|
|
explicit |
| double bsfm::math::RandomGenerator::Double |
( |
| ) |
|
| double bsfm::math::RandomGenerator::DoubleGaussian |
( |
double |
mean, |
|
|
double |
stddev |
|
) |
| |
Definition at line 125 of file random_generator.cpp.
129 double u = 1.0 -
Double();
131 double z = sqrt(-2.0 * log(u)) * cos(2.0 * M_PI * v);
133 return mean + stddev * z;
| void bsfm::math::RandomGenerator::Doubles |
( |
size_t |
count, |
|
|
std::vector< double > * |
doubles |
|
) |
| |
Definition at line 136 of file random_generator.cpp.
137 if (doubles ==
nullptr) {
141 for (
size_t i = 0; i < count; ++i) {
142 doubles->push_back(
Double());
| void bsfm::math::RandomGenerator::DoublesGaussian |
( |
size_t |
count, |
|
|
double |
mean, |
|
|
double |
stddev, |
|
|
std::vector< double > * |
doubles |
|
) |
| |
Definition at line 157 of file random_generator.cpp.
159 if (doubles ==
nullptr) {
163 for (
size_t i = 0; i < count; ++i) {
double DoubleGaussian(double mean, double stddev)
| void bsfm::math::RandomGenerator::DoublesUniform |
( |
size_t |
count, |
|
|
double |
min, |
|
|
double |
max, |
|
|
std::vector< double > * |
doubles |
|
) |
| |
Definition at line 146 of file random_generator.cpp.
148 if (doubles ==
nullptr) {
152 for (
size_t i = 0; i < count; ++i) {
double DoubleUniform(double min, double max)
| double bsfm::math::RandomGenerator::DoubleUniform |
( |
double |
min, |
|
|
double |
max |
|
) |
| |
Definition at line 113 of file random_generator.cpp.
115 LOG(WARNING) <<
"min >= max. Returning min.";
121 double coefficient = (max - min) / static_cast<double>(RAND_MAX);
122 return min +
static_cast<double>(
Integer()) * coefficient;
| int bsfm::math::RandomGenerator::Integer |
( |
| ) |
|
| void bsfm::math::RandomGenerator::Integers |
( |
size_t |
count, |
|
|
std::vector< int > * |
integers |
|
) |
| |
Definition at line 88 of file random_generator.cpp.
89 if (integers ==
nullptr) {
93 for (
size_t i = 0; i < count; ++i) {
| void bsfm::math::RandomGenerator::IntegersUniform |
( |
size_t |
count, |
|
|
int |
min, |
|
|
int |
max, |
|
|
std::vector< int > * |
integers |
|
) |
| |
Definition at line 98 of file random_generator.cpp.
100 if (integers ==
nullptr) {
104 for (
size_t i = 0; i < count; ++i) {
int IntegerUniform(int max)
| int bsfm::math::RandomGenerator::IntegerUniform |
( |
int |
max | ) |
|
Definition at line 66 of file random_generator.cpp.
68 LOG(WARNING) <<
"max <= 0. Returning 0.";
74 return Integer() %
static_cast<int>(max + 1);
| int bsfm::math::RandomGenerator::IntegerUniform |
( |
int |
min, |
|
|
int |
max |
|
) |
| |
Definition at line 77 of file random_generator.cpp.
79 LOG(WARNING) <<
"min >= max. Returning min.";
85 return min + (
Integer() %
static_cast<int>(max - min + 1));
| unsigned long bsfm::math::RandomGenerator::Seed |
( |
| ) |
|
|
static |
Definition at line 47 of file random_generator.cpp.
50 unsigned long a = clock();
51 unsigned long b = time(NULL);
52 unsigned long c = getpid();
53 a-=b; a-=c; a^=(c >> 13); b-=c; b-=a; b^=(a << 8); c-=a; c-=b; c^=(b >> 13);
54 a-=b; a-=c; a^=(c >> 12); b-=c; b-=a; b^=(a << 16); c-=a; c-=b; c^=(b >> 5);
55 a-=b; a-=c; a^=(c >> 3); b-=c; b-=a; b^=(a << 10); c-=a; c-=b; c^=(b >> 15);
The documentation for this class was generated from the following files: