BioCMAMC-ST
|
Kokkos compatible method to draw from specific probability distribution. More...
Classes | |
struct | LogNormal |
Represents a LogNormal (Gaussian) probability distribution. More... | |
struct | Normal |
Represents a normal (Gaussian) probability distribution. More... | |
struct | ScaledTruncatedNormal |
Represents a Scaled TruncatedNormal (Gaussian) probability distribution. More... | |
struct | SkewNormal |
Represents a SkewNormal (Gaussian) probability distribution. More... | |
struct | TruncatedNormal |
Represents a TruncatedNormal (Gaussian) probability distribution. More... | |
Concepts | |
concept | ProbabilityLaw |
Concept for probability distribution laws. | |
Functions | |
template<FloatingPointType F> | |
KOKKOS_INLINE_FUNCTION F | erfinv (F x) |
Computes an approximation of the inverse error function. | |
template<FloatingPointType F> | |
KOKKOS_INLINE_FUNCTION F | norminv (F p, F mean, F stddev) |
Computes the inverse CDF (probit function) of a normal distribution. | |
template<FloatingPointType F> | |
KOKKOS_INLINE_FUNCTION F | std_normal_pdf (F x) |
Computes the standard normal probability density function (PDF). | |
template<FloatingPointType F> | |
KOKKOS_INLINE_FUNCTION F | std_normal_cdf (F x) |
Computes the standard normal cumulative distribution function (CDF). | |
Kokkos compatible method to draw from specific probability distribution.
KOKKOS_INLINE_FUNCTION F MC::Distributions::erfinv | ( | F | x | ) |
Computes an approximation of the inverse error function.
This function approximates the inverse error function erfinv(x)
using Winitzki’s method (from A. Soranzo, E. Epure), which provides a simple and computationally efficient formula based on logarithms and square roots.
F | Floating-point type (must satisfy FloatingPointType ). |
x | Input value in the range [-1, 1]. |
erfinv(x)
.`.KOKKOS_INLINE_FUNCTION F MC::Distributions::norminv | ( | F | p, |
F | mean, | ||
F | stddev ) |
Computes the inverse CDF (probit function) of a normal distribution.
This function returns the quantile function of a normal distribution with mean mean
and standard deviation stddev
, given a probability p
.
F | Floating-point type (must satisfy FloatingPointType ). |
p | Probability value in the range (0,1). |
mean | Mean of the normal distribution. |
stddev | Standard deviation of the normal distribution. |
x
such that P(X ≤ x) = p
for X ~ N(mean, stddev).erfinv(x)
for accuracy and efficiency. Extreme values may be clamped for stability.p
must be strictly in (0,1), otherwise the result is undefined. KOKKOS_INLINE_FUNCTION F MC::Distributions::std_normal_cdf | ( | F | x | ) |
Computes the standard normal cumulative distribution function (CDF).
The standard normal CDF is given by:
\[ \Phi(x) = \frac{1}{2} \left( 1 + \operatorname{erf} \left( \frac{x}{\sqrt{2}} \right) \right) \]
F | Floating-point type (must satisfy FloatingPointType ). |
x | Input value. |
x
, which is P(X ≤ x) for X ~ N(0,1). KOKKOS_INLINE_FUNCTION F MC::Distributions::std_normal_pdf | ( | F | x | ) |
Computes the standard normal probability density function (PDF).
The standard normal PDF is given by:
\[ \phi(x) = \frac{1}{\sqrt{2\pi}} e^{-x^2 / 2} \]
F | Floating-point type (must satisfy FloatingPointType ). |
x | Input value. |
x
.