Trait special::Gamma[][src]

pub trait Gamma where
    Self: Sized
{ fn digamma(self) -> Self;
fn gamma(self) -> Self;
fn inc_gamma(self, p: Self) -> Self;
fn ln_gamma(self) -> (Self, i32); }

Gamma functions.

Required Methods

Compute the real-valued digamma function.

The formula is as follows:

       d ln(Γ(p))
ψ(p) = ----------
           dp

where Γ is the gamma function. The computation is based on an approximation as described in the reference below.

Examples

use special::Gamma;

const EULER_MASCHERONI: f64 = 0.57721566490153286060651209008240243104215933593992;
assert!((1.0.digamma() + EULER_MASCHERONI).abs() < 1e-15);

References

  1. M. J. Beal, Variational algorithms for approximate Bayesian inference. University of London, 2003, pp. 265–266.

Compute the gamma function.

Compute the regularized lower incomplete gamma function.

The formula is as follows:

          γ(x, p)    1   x
P(x, p) = ------- = ---- ∫ t^(p - 1) e^(-t) dt
           Γ(p)     Γ(p) 0

where γ is the incomplete lower gamma function, and Γ is the complete gamma function.

The code is based on a C implementation by John Burkardt. The original algorithm was published in Applied Statistics and is known as Algorithm AS 239.

Compute the natural logarithm of the gamma function.

Implementations on Foreign Types

impl Gamma for f32
[src]

impl Gamma for f64
[src]

Implementors