1 #ifndef BLOBS_MATH_DISTRIBUTION_HPP_
2 #define BLOBS_MATH_DISTRIBUTION_HPP_
13 Distribution(double mean = 0.0, double stddev = 1.0) noexcept
19 void Mean(double m) noexcept { mean = m; }
20 double Mean() const noexcept { return mean; }
21 void StandardDeviation(double d) noexcept { stddev = d; }
22 double StandardDeviation() const noexcept { return stddev; }
23 double Variance() const noexcept { return stddev * stddev; }
25 /// convert uniform random value in [-1,1] to fake normal distribution
26 /// in [mean - 2 stdddev,mean + 2 stddev]
27 double FakeNormal(double uniform) const noexcept {
28 return mean + (uniform * uniform * stddev) + std::abs(uniform * uniform * uniform) * stddev;