6 gsl_rng_set(eng_.get(), seed);
10 std::vector<double> z(n);
11 for (std::size_t i = 0; i < n; ++i)
12 z[i] = mu + gsl_ran_gaussian(eng_.get(), sigma);
17 return -0.5 * (std::log(2 *
PI * sigma * sigma) + std::pow((x - mu) / sigma, 2));
30 const double s2 = sigma * sigma;
31 const double z = (x - mu) / sigma;
34 std::exp(-0.5 * z * z) / (std::sqrt(2.0 *
PI) * sigma);
40 (z * z - 1.0) / s2 *
f;
46 return gsl_cdf_gaussian_P(x - mu, sigma);
50 return mu + gsl_cdf_gaussian_Pinv(p, sigma);
PDFDiff f_df_ddf(double x) override
double std() override
Returns the mean of the distribution.
double cdf(double x) override
Evaluates the cumulative distribution function at x.
double ppf(double p) override
Evaluates the quantile function (inverse CDF).
GaussianMarginal(unsigned int seed=std::random_device{}())
std::vector< double > rvs(std::size_t n) override
Draws random samples from the marginal distribution.
double logpdf(double x) override
Evaluates the logarithm of the probability density at x.
double mean() override
Returns the mean of the distribution.
double f(double x)
Wilson special function f depending on x.