libfbm
0.3
Simulation of multi-dimensional stationary Gaussian processes and fractional Brownian motion.
|
SIMD-oriented Fast Mersenne Twister (SFMT) and Ziggurat sampling based gaussian random generator. More...
#include <libfbm.hpp>
Public Member Functions | |
SFMTGaussianGenerator (uint32_t seed=0) | |
SFMTGaussianGenerator (const unsigned char *seed_array, size_t len) | |
~SFMTGaussianGenerator () | |
void | setSeed (uint32_t seed) |
void | setSeed (const unsigned char *seed_array, size_t len) |
double | getDouble () |
void | getDouble (double *array, size_t len) |
Public Member Functions inherited from libfbm::GaussianGenerator | |
virtual | ~GaussianGenerator () |
SIMD-oriented Fast Mersenne Twister (SFMT) and Ziggurat sampling based gaussian random generator.
Very fast. Makes use of the excellent SFMT library by Mutsuo Saito and Makoto Matsumoto, http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/SFMT/, also see [8]. It assumes that the CPU supports SSE2. Gaussian distribution is generated by a variation of the ziggurat algorithm (basically layered rejection sampling). The ziggurat algorithm used is slightly different from the one described by Marsaglia in [7], here we select layers that cover an equal area of the distribution (instead of layers having similar overall area).
Definition at line 354 of file libfbm.hpp.
libfbm::SFMTGaussianGenerator::SFMTGaussianGenerator | ( | uint32_t | seed = 0 | ) |
libfbm::SFMTGaussianGenerator::SFMTGaussianGenerator | ( | const unsigned char * | seed_array, |
size_t | len | ||
) |
libfbm::SFMTGaussianGenerator::~SFMTGaussianGenerator | ( | ) |
|
virtual |
Implements libfbm::GaussianGenerator.
|
virtual |
Implements libfbm::GaussianGenerator.
|
virtual |
Implements libfbm::GaussianGenerator.
|
virtual |
Implements libfbm::GaussianGenerator.