Trait rv::traits::ContinuousDistr

source ·
pub trait ContinuousDistr<X>: HasDensity<X> + Support<X> {
    // Provided methods
    fn pdf(&self, x: &X) -> f64 { ... }
    fn ln_pdf(&self, x: &X) -> f64 { ... }
}
Expand description

Is a continuous probability distributions

This trait uses the Rv<X> and Support<X> implementations to implement itself.

Provided Methods§

source

fn pdf(&self, x: &X) -> f64

The value of the Probability Density Function (PDF) at x

§Example

Compute the Gaussian PDF, f(x)

use rv::dist::Gaussian;
use rv::traits::ContinuousDistr;

let g = Gaussian::standard();

let f_mean = g.pdf(&0.0_f64);
let f_low = g.pdf(&-1.0_f64);
let f_high = g.pdf(&1.0_f64);

assert!(f_mean > f_low);
assert!(f_mean > f_high);
assert!((f_low - f_high).abs() < 1E-12);

Returns 0 if x is not in support

use rv::dist::Exponential;

let expon = Exponential::new(1.0).unwrap();
let f = expon.pdf(&-1.0_f64);
assert_eq!(f, 0.0);
source

fn ln_pdf(&self, x: &X) -> f64

The value of the log Probability Density Function (PDF) at x

§Example

Compute the natural logarithm of the Gaussian PDF, ln(f(x))

use rv::dist::Gaussian;
use rv::traits::ContinuousDistr;

let g = Gaussian::standard();

let lnf_mean = g.ln_pdf(&0.0_f64);
let lnf_low = g.ln_pdf(&-1.0_f64);
let lnf_high = g.ln_pdf(&1.0_f64);

assert!(lnf_mean > lnf_low);
assert!(lnf_mean > lnf_high);
assert!((lnf_low - lnf_high).abs() < 1E-12);

Returns -inf if x is not in support

use rv::dist::Exponential;

let expon = Exponential::new(1.0).unwrap();
let f = expon.ln_pdf(&-1.0_f64);
assert_eq!(f, f64::NEG_INFINITY);

Implementors§

source§

impl ContinuousDistr<f32> for Beta

source§

impl ContinuousDistr<f32> for Cauchy

source§

impl ContinuousDistr<f32> for ChiSquared

source§

impl ContinuousDistr<f32> for Exponential

source§

impl ContinuousDistr<f32> for Gamma

source§

impl ContinuousDistr<f32> for Gaussian

source§

impl ContinuousDistr<f32> for Gev

source§

impl ContinuousDistr<f32> for InvChiSquared

source§

impl ContinuousDistr<f32> for InvGamma

source§

impl ContinuousDistr<f32> for InvGaussian

source§

impl ContinuousDistr<f32> for KsTwoAsymptotic

source§

impl ContinuousDistr<f32> for Kumaraswamy

source§

impl ContinuousDistr<f32> for Laplace

source§

impl ContinuousDistr<f32> for LogNormal

source§

impl ContinuousDistr<f32> for Pareto

source§

impl ContinuousDistr<f32> for ScaledInvChiSquared

source§

impl ContinuousDistr<f32> for StudentsT

source§

impl ContinuousDistr<f32> for Uniform

source§

impl ContinuousDistr<f32> for UnitPowerLaw

source§

impl ContinuousDistr<f32> for VonMises

source§

impl ContinuousDistr<f64> for Beta

source§

impl ContinuousDistr<f64> for Cauchy

source§

impl ContinuousDistr<f64> for ChiSquared

source§

impl ContinuousDistr<f64> for Exponential

source§

impl ContinuousDistr<f64> for Gamma

source§

impl ContinuousDistr<f64> for Gaussian

source§

impl ContinuousDistr<f64> for Gev

source§

impl ContinuousDistr<f64> for InvChiSquared

source§

impl ContinuousDistr<f64> for InvGamma

source§

impl ContinuousDistr<f64> for InvGaussian

source§

impl ContinuousDistr<f64> for KsTwoAsymptotic

source§

impl ContinuousDistr<f64> for Kumaraswamy

source§

impl ContinuousDistr<f64> for Laplace

source§

impl ContinuousDistr<f64> for LogNormal

source§

impl ContinuousDistr<f64> for Pareto

source§

impl ContinuousDistr<f64> for ScaledInvChiSquared

source§

impl ContinuousDistr<f64> for StudentsT

source§

impl ContinuousDistr<f64> for Uniform

source§

impl ContinuousDistr<f64> for UnitPowerLaw

source§

impl ContinuousDistr<f64> for VonMises

source§

impl ContinuousDistr<Bernoulli> for Beta

source§

impl ContinuousDistr<Bernoulli> for UnitPowerLaw

source§

impl ContinuousDistr<Gaussian> for NormalGamma

source§

impl ContinuousDistr<MvGaussian> for NormalInvWishart

source§

impl ContinuousDistr<Poisson> for Gamma

source§

impl ContinuousDistr<Vec<f64>> for Dirichlet

source§

impl ContinuousDistr<Vec<f64>> for SymmetricDirichlet

source§

impl ContinuousDistr<Matrix<f64, Dyn, Const<1>, VecStorage<f64, Dyn, Const<1>>>> for MvGaussian

source§

impl ContinuousDistr<Matrix<f64, Dyn, Dyn, VecStorage<f64, Dyn, Dyn>>> for InvWishart

source§

impl<X, Fx> ContinuousDistr<X> for Mixture<Fx>
where Fx: Rv<X> + ContinuousDistr<X>,