Distributions Functions

To help with constructing functions computing log-probabilities and gradients thereof, Sam provides a large number of fast Cython functions. For computing gradients, the functions of the form distributionDLD_ return the derivative of the log-probability with respect to the given variable; e.g., normalDLDV gives the derivative of the normal distribution with respect to the variance at the given position.

Uniform Distribution

sam.uniformRand(double lower=0, double upper=1, RandomEngine engine=defaultEngine) → double
sam.uniformPDF(double x, double lower=0, double upper=1) → double
sam.uniformLogPDF(double x, double lower=0, double upper=1) → double
sam.uniformCDF(double x, double lower=0, double upper=1) → double
sam.uniformDLDU(double x, double lower=0, double upper=1) → double
sam.uniformDLDL(double x, double lower=0, double upper=1) → double
sam.uniformMean(double lower=0, double upper=1) → double
sam.uniformVar(double lower=0, double upper=1) → double
sam.uniformStd(double lower=0, double upper=1) → double

Normal Distribution

sam.normalRand(double mean=0, double sigma=1, RandomEngine engine=defaultEngine) → double
sam.normalPDF(double x, double mean=0, double sigma=1) → double
sam.normalLogPDF(double x, double mean=0, double sigma=1) → double
sam.normalCDF(double x, double mean=0, double sigma=1) → double
sam.normalDLDM(double x, double mean=0, double sigma=1) → double
sam.normalDLDX(double x, double mean=0, double sigma=1) → double
sam.normalDLDV(double x, double mean=0, double sigma=1) → double
sam.normalDLDS(double x, double mean=0, double sigma=1) → double
sam.normalMean(double mean=0, double sigma=1) → double
sam.normalVar(double mean=0, double sigma=1) → double
sam.normalStd(double mean=0, double sigma=1) → double
sam.normalMode(double mean=0, double sigma=1) → double

Multivariate Normal Distribution

sam.mvNormalRand(__Pyx_memviewslice mean, __Pyx_memviewslice covariance, __Pyx_memviewslice output=None, bool isChol=False, RandomEngine engine=defaultEngine) → __Pyx_memviewslice
sam.mvNormalPDF(__Pyx_memviewslice x, __Pyx_memviewslice mean, __Pyx_memviewslice covariance, bool isChol=False) → double
sam.mvNormalLogPDF(__Pyx_memviewslice x, __Pyx_memviewslice mean, __Pyx_memviewslice covariance, bool isChol=False) → double

Gamma Distribution

sam.gammaRand(double shape, double rate, RandomEngine engine=defaultEngine) → double
sam.gammaPDF(double x, double shape, double rate) → double
sam.gammaLogPDF(double x, double shape, double rate) → double
sam.gammaCDF(double x, double shape, double rate) → double
sam.gammaDLDA(double x, double shape, double rate) → double
sam.gammaDLDB(double x, double shape, double rate) → double
sam.gammaDLDX(double x, double shape, double rate) → double
sam.gammaMean(double shape, double rate) → double
sam.gammaVar(double shape, double rate) → double
sam.gammaStd(double shape, double rate) → double
sam.gammaMode(double shape, double rate) → double

Inverse Gamma Distribution

sam.invGammaRand(double shape, double rate, RandomEngine engine=defaultEngine) → double
sam.invGammaPDF(double x, double shape, double rate) → double
sam.invGammaLogPDF(double x, double shape, double rate) → double
sam.invGammaCDF(double x, double shape, double rate) → double
sam.invGammaDLDA(double x, double shape, double rate) → double
sam.invGammaDLDB(double x, double shape, double rate) → double
sam.invGammaDLDX(double x, double shape, double rate) → double
sam.invGammaMean(double shape, double rate) → double
sam.invGammaVar(double shape, double rate) → double
sam.invGammaStd(double shape, double rate) → double
sam.invGammaMode(double shape, double rate) → double

Beta Distribution

sam.betaRand(double alpha, double beta, RandomEngine engine=defaultEngine) → double
sam.betaPDF(double x, double alpha, double beta) → double
sam.betaLogPDF(double x, double alpha, double beta) → double
sam.betaCDF(double x, double alpha, double beta) → double
sam.betaDLDA(double x, double alpha, double beta) → double
sam.betaDLDB(double x, double alpha, double beta) → double
sam.betaMean(double alpha, double beta) → double
sam.betaVar(double alpha, double beta) → double
sam.betaStd(double alpha, double beta) → double
sam.betaMode(double alpha, double beta) → double

Poisson Distribution

sam.poissonRand(double lamb, RandomEngine engine=defaultEngine) → double
sam.poissonPDF(int x, double lamb) → double
sam.poissonLogPDF(int x, double lamb) → double
sam.poissonCDF(double x, double lamb) → double
sam.poissonDLDL(int x, double lamb) → double
sam.poissonMean(double lamb) → double
sam.poissonVar(double lamb) → double
sam.poissonStd(double lamb) → double
sam.poissonMode(double lamb) → int

Returns max mode if result is not unique (integer lambda).

Exponential Distribution

sam.exponentialRand(double lamb, RandomEngine engine=defaultEngine) → double
sam.exponentialPDF(double x, double lamb) → double
sam.exponentialLogPDF(double x, double lamb) → double
sam.exponentialCDF(double x, double lamb) → double
sam.exponentialDLDL(double x, double lamb) → double
sam.exponentialMean(double lamb) → double
sam.exponentialVar(double lamb) → double
sam.exponentialStd(double lamb) → double
sam.exponentialMode(double lamb) → double

Binomial Distribution

sam.binomialRand(int n, double probability, RandomEngine engine=defaultEngine) → int
sam.binomialPDF(int x, int n, double probability) → double
sam.binomialLogPDF(int x, int n, double probability) → double
sam.binomialCDF(double x, int n, double probability) → double
sam.binomialDLDP(int x, int n, double probability) → double
sam.binomialMean(int n, double probability) → double
sam.binomialVar(int n, double probability) → double
sam.binomialStd(int n, double probability) → double
sam.binomialMode(int n, double probability) → double