Interface¶
Liknorm machine¶
-
LIKNORM_API void liknorm_integrate(struct LikNormMachine * machine, double * log_zeroth, double * mean, double * variance)
Perform numerical integration.
- Parameters
machine
: Machine to perform integration.log_zeroth
: Zeroth moment.log_mean
: First moment of the normalized distribution.log_variance
: Variance of the normalized distribution.
-
LIKNORM_API void liknorm_destroy_machine(struct LikNormMachine * machine)
Destroy a Machine instance.
- Parameters
machine
: Machine to be destroyed. Always call it before exiting your program, otherwise it will leak memory.
Prior¶
-
LIKNORM_API void liknorm_set_prior(struct LikNormMachine * machine, double tau, double eta)
Set the natural parameters of Normal prior.
- Parameters
machine
: Machine to perform integration.tau
: It equals toσ⁻²
.eta
: It equals toμσ⁻²
.
Bernoulli¶
-
LIKNORM_API void liknorm_set_bernoulli(struct LikNormMachine * machine, double k)
Bernoulli distribution.
It is the discrete probability distribution of a random variable which takes the value
1
with probabilityp
and the value0
with probability1 − p
. (Wikipedia.)- Parameters
machine
: Liknorm handler.k
: Number of successes.
Binomial¶
-
LIKNORM_API void liknorm_set_binomial(struct LikNormMachine * machine, double k, double n)
Binomial distribution.
It is the discrete probability distribution of the number of successes
k
in a sequence ofn
independent experiments. (Wikipedia.) The probability mass function is given by:Binom(k, n) pᵏ (1 - p)ⁿ⁻ᵏ,
for which
Binom(m, n) = n! / (m! (n - m)!)
.- Parameters
machine
: Liknorm handler.k
: Number of successes.n
: Number of trials.
Gamma¶
-
LIKNORM_API void liknorm_set_gamma(struct LikNormMachine * machine, double x, double a)
Gamma distribution.
A gamma distribution is a general type of statistical distribution that is related to the beta distribution and arises naturally in processes for which the waiting times between Poisson distributed events are relevant. (Wolfram.)
- Parameters
machine
: Liknorm handler.x
: Waiting time.a
: Shape parameter α.
Geometric¶
-
LIKNORM_API void liknorm_set_geometric(struct LikNormMachine * machine, double x)
Geometric distribution.
- Parameters
machine
: Liknorm handler.x
: Number of trials to success.
Negative binomial¶
-
LIKNORM_API void liknorm_set_nbinomial(struct LikNormMachine * machine, double k, double r)
Negative binomial distribution.
It is a discrete probability distribution of the number of successes in a sequence of independent and identically distributed Bernoulli trials before a specified (non-random) number of failures (denoted
r
) occurs. (Wikipedia.) Letk
be the number of successes. The probability mass function is given by:Binom(k, k + r - 1) pᵏ (1 - p)ʳ,
for which
Binom(m, n) = n! / (m! (n - m)!)
.- Parameters
machine
: Liknorm handler.k
: Number of successes.r
: Number of failures.
Poisson¶
-
LIKNORM_API void liknorm_set_poisson(struct LikNormMachine * machine, double k)
Poisson distribution.
It is a discrete probability distribution that expresses the probability of a given number of events occurring in a fixed interval of time or space if these events occur with a known constant rate and independently of the time since the last event. (Wikipedia.) The probability mass function is given by:
λᵏe^{-λ} / k!,
for which
λ
is the rate of occurrence andk
the number of occurrences.- Parameters
machine
: Liknorm handler.k
: Number of occurrences.