[][src]Struct statrs::distribution::Erlang

pub struct Erlang { /* fields omitted */ }

Implements the Erlang distribution which is a special case of the Gamma distribution

Examples

use statrs::distribution::{Erlang, Continuous};
use statrs::statistics::Mean;
use statrs::prec;

let n = Erlang::new(3, 1.0).unwrap();
assert_eq!(n.mean(), 3.0);
assert!(prec::almost_eq(n.pdf(2.0), 0.270670566473225383788, 1e-15));

Methods

impl Erlang[src]

pub fn new(shape: u64, rate: f64) -> Result<Erlang>[src]

Constructs a new erlang distribution with a shape (k) of shape and a rate (λ) of rate

Errors

Returns an error if shape or rate are NaN. Also returns an error if shape == 0 or rate <= 0.0

Examples

use statrs::distribution::Erlang;

let mut result = Erlang::new(3, 1.0);
assert!(result.is_ok());

result = Erlang::new(0, 0.0);
assert!(result.is_err());

pub fn shape(&self) -> u64[src]

Returns the shape (k) of the erlang distribution

Examples

use statrs::distribution::Erlang;

let n = Erlang::new(3, 1.0).unwrap();
assert_eq!(n.shape(), 3);

pub fn rate(&self) -> f64[src]

Returns the rate (λ) of the erlang distribution

Examples

use statrs::distribution::Erlang;

let n = Erlang::new(3, 1.0).unwrap();
assert_eq!(n.rate(), 1.0);

Trait Implementations

impl Univariate<f64, f64> for Erlang[src]

fn cdf(&self, x: f64) -> f64[src]

Calculates the cumulative distribution function for the erlang distribution at x

Formula

This example is not tested
γ(k, λx)  (k - 1)!

where k is the shape, λ is the rate, and γ is the lower incomplete gamma function

impl Continuous<f64, f64> for Erlang[src]

fn pdf(&self, x: f64) -> f64[src]

Calculates the probability density function for the erlang distribution at x

Remarks

Returns NAN if any of shape or rate are INF or if x is INF

Formula

This example is not tested
(λ^k / Γ(k)) * x^(k - 1) * e^(-λ * x)

where k is the shape, λ is the rate, and Γ is the gamma function

fn ln_pdf(&self, x: f64) -> f64[src]

Calculates the log probability density function for the erlang distribution at x

Remarks

Returns NAN if any of shape or rate are INF or if x is INF

Formula

This example is not tested
ln((λ^k / Γ(k)) * x^(k - 1) * e ^(-λ * x))

where k is the shape, λ is the rate, and Γ is the gamma function

impl Min<f64> for Erlang[src]

fn min(&self) -> f64[src]

Returns the minimum value in the domain of the erlang distribution representable by a double precision float

Formula

This example is not tested
0

impl Max<f64> for Erlang[src]

fn max(&self) -> f64[src]

Returns the maximum value in the domain of the erlang distribution representable by a double precision float

Formula

This example is not tested
INF

impl Mean<f64> for Erlang[src]

fn mean(&self) -> f64[src]

Returns the mean of the erlang distribution

Remarks

Returns shape if rate == f64::INFINITY. This behavior is borrowed from the Math.NET implementation

Formula

This example is not tested
k / λ

where k is the shape and λ is the rate

impl Variance<f64> for Erlang[src]

fn variance(&self) -> f64[src]

Returns the variance of the erlang distribution

Formula

This example is not tested
k / λ^2

where α is the shape and λ is the rate

fn std_dev(&self) -> f64[src]

Returns the standard deviation of the erlang distribution

Formula

This example is not tested
sqrt(k) / λ

where k is the shape and λ is the rate

impl Entropy<f64> for Erlang[src]

fn entropy(&self) -> f64[src]

Returns the entropy of the erlang distribution

Formula

This example is not tested
k - ln(λ) + ln(Γ(k)) + (1 - k) * ψ(k)

where k is the shape, λ is the rate, Γ is the gamma function, and ψ is the digamma function

impl Skewness<f64> for Erlang[src]

fn skewness(&self) -> f64[src]

Returns the skewness of the erlang distribution

Formula

This example is not tested
2 / sqrt(k)

where k is the shape

impl Mode<f64> for Erlang[src]

fn mode(&self) -> f64[src]

Returns the mode for the erlang distribution

Remarks

Returns shape if rate ==f64::INFINITY. This behavior is borrowed from the Math.NET implementation

Formula

This example is not tested
(k - 1) / λ

where k is the shape and λ is the rate

impl Copy for Erlang[src]

impl Clone for Erlang[src]

fn clone_from(&mut self, source: &Self)
1.0.0
[src]

Performs copy-assignment from source. Read more

impl PartialEq<Erlang> for Erlang[src]

impl Debug for Erlang[src]

impl Distribution<f64> for Erlang[src]

fn sample_iter<R>(&'a self, rng: &'a mut R) -> DistIter<'a, Self, R, T> where
    R: Rng
[src]

Create an iterator that generates random values of T, using rng as the source of randomness. Read more

Auto Trait Implementations

impl Send for Erlang

impl Sync for Erlang

Blanket Implementations

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> From<T> for T[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> Any for T where
    T: 'static + ?Sized
[src]