Skip to content

Probability Distributions

ProbabilityDistributions is a collection of static helpers for drawing samples from common continuous distributions: normal (Gaussian), Cauchy, and uniform. It is used most prominently by the Nucleation module when seeding nucleus radii according to the $Distribution_<a>_<b> mode.

Key Classes and Concepts

  • ProbabilityDistributions (static class / namespace under include/Tools/ProbabilityDistributions.h):
    • Normal (Gaussian): N(μ,σ)
    • Cauchy (Lorentzian): Cauchy(μ,γ)
    • Uniform: U[a,b]

Usage

Input

None. The distribution parameters come from the caller — for nucleation, from the $Center_<a>_<b>, $Deviation_<a>_<b>, $HalfWidth_<a>_<b>, $SeedRadiusMIN_<a>_<b>, $SeedRadiusMAX_<a>_<b> keys documented on Nucleation.

Output

None — pure sampling helpers.

Example

cpp
#include "Tools/ProbabilityDistributions.h"

// Sampling a normal distribution:
double r = ProbabilityDistributions::Normal(mu, sigma, rng);

// Uniform:
double u = ProbabilityDistributions::Uniform(rmin, rmax, rng);

(Function signatures follow whatever is declared in the header — the canonical consumer is Nucleation::Nucleate.)

Dependencies

  • Nucleation — primary consumer.
  • Standard C++ <random> machinery is used internally.

Released under the GNU GPLv3 License.