SimulationCraft
SimulationCraft is a tool to explore combat mechanics in the popular MMO RPG World of Warcraft (tm).
|
Random number generator wrapper around an rng engine. More...
#include <rng.hpp>
Public Member Functions | |
basic_rng_t (const basic_rng_t &)=delete | |
basic_rng_t & | operator= (const basic_rng_t &)=delete |
const char * | name () const |
Return engine name. | |
void | seed (uint64_t s) |
Seed rng engine. | |
uint64_t | reseed () |
Reseed using current state. | |
void | reset () |
Reset any state. More... | |
double | real () |
Uniform distribution in range [0..1) More... | |
bool | roll (double chance) |
Bernoulli Distribution. | |
double | range (double min, double max) |
Uniform distribution in the range [min..max) | |
template<typename T , typename = std::enable_if_t<std::is_integral<T>::value>> | |
T | range (T min, T max) |
Uniform distribution in the range [min..max) | |
template<typename T , typename = std::enable_if_t<std::is_integral<T>::value>> | |
T | range (T max) |
Uniform distribution in the range [0..max) | |
double | gauss (double mean, double stddev, bool truncate_low_end=false) |
Gaussian Distribution. More... | |
double | exponential (double nu) |
Exponential Distribution. | |
double | exgauss (double gauss_mean, double gauss_stddev, double exp_nu) |
Exponentially Modified Gaussian Distribution. | |
timespan_t | range (timespan_t min, timespan_t max) |
Timespan uniform distribution in the range [min..max) | |
timespan_t | gauss (timespan_t mean, timespan_t stddev) |
Timespan Gaussian Distribution. | |
timespan_t | exgauss (timespan_t mean, timespan_t stddev, timespan_t nu) |
Timespan exponentially Modified Gaussian Distribution. | |
Random number generator wrapper around an rng engine.
Implements different distribution outputs ( uniform, gauss, etc. )
double rng::basic_rng_t< Engine >::gauss | ( | double | mean, |
double | stddev, | ||
bool | truncate_low_end = false |
||
) |
Gaussian Distribution.
This code adapted from ftp://ftp.taygeta.com/pub/c/boxmuller.c Implements the Polar form of the Box-Muller Transformation
(c) Copyright 1994, Everett F. Carter Jr. Permission is granted by the author to use this software for any application provided this copyright notice is preserved.
|
inline |
Uniform distribution in range [0..1)
MAGIC! http://en.wikipedia.org/wiki/Double-precision_floating-point_format
void rng::basic_rng_t< Engine >::reset | ( | ) |
Reset any state.
Reset state.