# bucky.util.distributions¶

Provide probability distributions used by the model that aren’t in numpy/cupy.

## Module Contents¶

### Functions¶

 approx_betaincinv(alp1, alp2, u) Approximate betaincinv using Kumaraswamy after converting the params s.t. means and modes are equal. approx_mPERT(mu, a=0.0, b=1.0, gamma=4.0) Approximate sample from an mPERT distribution that uses a Kumaraswamy distrib in place of the incbeta. generic_distribution(base_func, params: dict, interp: partial, clip: partial) Return value sampled from basic distribution, with additional interpolation and clipping. kumaraswamy_invcdf(a, b, u) Inverse CDF of the Kumaraswamy distribution. mPERT(mu, a=0.0, b=1.0, gamma=4.0, var=None) Provide a vectorized Modified PERT distribution. truncnorm(loc=0.0, scale=1.0, size=None, a_min=None, a_max=None) Provide a vectorized truncnorm implementation that is compatible with cupy. truncnorm_from_CI(CI, size=1, a_min=None, a_max=None) Truncnorm implementation that first derives mean and standard deviation from a 95% confidence interval.
bucky.util.distributions.approx_betaincinv(alp1, alp2, u)[source]

Approximate betaincinv using Kumaraswamy after converting the params s.t. means and modes are equal.

bucky.util.distributions.approx_mPERT(mu, a=0.0, b=1.0, gamma=4.0)[source]

Approximate sample from an mPERT distribution that uses a Kumaraswamy distrib in place of the incbeta.

Supports Cupy.

bucky.util.distributions.generic_distribution(base_func, params: dict, interp: partial, clip: partial)[source]

Return value sampled from basic distribution, with additional interpolation and clipping.

bucky.util.distributions.kumaraswamy_invcdf(a, b, u)[source]

Inverse CDF of the Kumaraswamy distribution.

bucky.util.distributions.mPERT(mu, a=0.0, b=1.0, gamma=4.0, var=None)[source]

Provide a vectorized Modified PERT distribution.

Parameters
Returns

out – Samples drawn from the specified mPERT distribution. Shape is the broadcasted shape of the the input parameters.

Return type

float or numpy.ndarray or cupy.ndarray if using CuPy

bucky.util.distributions.truncnorm(loc=0.0, scale=1.0, size=None, a_min=None, a_max=None)[source]

Provide a vectorized truncnorm implementation that is compatible with cupy.

The output is calculated by using the numpy/cupy random.normal() and truncted via rejection sampling. The interface is intended to mirror the scipy implementation of truncnorm.

bucky.util.distributions.truncnorm_from_CI(CI, size=1, a_min=None, a_max=None)[source]

Truncnorm implementation that first derives mean and standard deviation from a 95% confidence interval.