libfbm  0.3
Simulation of multi-dimensional stationary Gaussian processes and fractional Brownian motion.
 All Classes Namespaces Functions Variables Friends
Public Member Functions
libfbm::SFMTGaussianGenerator Class Reference

SIMD-oriented Fast Mersenne Twister (SFMT) and Ziggurat sampling based gaussian random generator. More...

#include <libfbm.hpp>

Inheritance diagram for libfbm::SFMTGaussianGenerator:
libfbm::GaussianGenerator

List of all members.

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 ()

Detailed Description

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.


Constructor & Destructor Documentation

libfbm::SFMTGaussianGenerator::SFMTGaussianGenerator ( uint32_t  seed = 0)
libfbm::SFMTGaussianGenerator::SFMTGaussianGenerator ( const unsigned char *  seed_array,
size_t  len 
)
libfbm::SFMTGaussianGenerator::~SFMTGaussianGenerator ( )

Member Function Documentation

double libfbm::SFMTGaussianGenerator::getDouble ( )
virtual
void libfbm::SFMTGaussianGenerator::getDouble ( double *  array,
size_t  len 
)
virtual
void libfbm::SFMTGaussianGenerator::setSeed ( uint32_t  seed)
virtual
void libfbm::SFMTGaussianGenerator::setSeed ( const unsigned char *  seed_array,
size_t  len 
)
virtual

The documentation for this class was generated from the following file: