[][src]Trait rv::traits::Rv

pub trait Rv<X> {
    fn ln_f(&self, x: &X) -> f64;
fn draw<R: Rng>(&self, rng: &mut R) -> X; fn f(&self, x: &X) -> f64 { ... }
fn sample<R: Rng>(&self, n: usize, rng: &mut R) -> Vec<X> { ... } }

Random variable

Contains the minimal functionality that a random object must have to be useful: a function defining the un-normalized density/mass at a point, and functions to draw samples from the distribution.

Required methods

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

Probability function

Example

use rv::dist::Gaussian;
use rv::traits::Rv;

let g = Gaussian::standard();
assert!(g.ln_f(&0.0_f64) > g.ln_f(&0.1_f64));
assert!(g.ln_f(&0.0_f64) > g.ln_f(&-0.1_f64));

fn draw<R: Rng>(&self, rng: &mut R) -> X

Single draw from the Rv

Example

Flip a coin

extern crate rand;

use rv::dist::Bernoulli;
use rv::traits::Rv;

let b = Bernoulli::uniform();
let mut rng = rand::thread_rng();
let x: bool = b.draw(&mut rng); // could be true, could be false.
Loading content...

Provided methods

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

Probability function

Example

use rv::dist::Gaussian;
use rv::traits::Rv;

let g = Gaussian::standard();
assert!(g.f(&0.0_f64) > g.f(&0.1_f64));
assert!(g.f(&0.0_f64) > g.f(&-0.1_f64));

fn sample<R: Rng>(&self, n: usize, rng: &mut R) -> Vec<X>

Multiple draws of the Rv

Example

Flip a lot of coins

extern crate rand;

use rv::dist::Bernoulli;
use rv::traits::Rv;

let b = Bernoulli::uniform();
let mut rng = rand::thread_rng();
let xs: Vec<bool> = b.sample(22, &mut rng);

assert_eq!(xs.len(), 22);
Loading content...

Implementors

impl Rv<bool> for Bernoulli[src]

impl Rv<f32> for Beta[src]

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

impl Rv<f32> for Cauchy[src]

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

impl Rv<f32> for ChiSquared[src]

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

impl Rv<f32> for Exponential[src]

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

impl Rv<f32> for Gamma[src]

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

impl Rv<f32> for Gaussian[src]

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

impl Rv<f32> for Gev[src]

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

fn sample<R: Rng>(&self, n: usize, rng: &mut R) -> Vec<X>[src]

impl Rv<f32> for InvGamma[src]

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

impl Rv<f32> for Laplace[src]

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

fn sample<R: Rng>(&self, n: usize, rng: &mut R) -> Vec<X>[src]

impl Rv<f32> for LogNormal[src]

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

impl Rv<f32> for Pareto[src]

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

fn sample<R: Rng>(&self, n: usize, rng: &mut R) -> Vec<X>[src]

impl Rv<f32> for StudentsT[src]

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

impl Rv<f32> for Uniform[src]

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

impl Rv<f32> for VonMises[src]

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

fn sample<R: Rng>(&self, n: usize, rng: &mut R) -> Vec<X>[src]

impl Rv<f64> for Beta[src]

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

impl Rv<f64> for Cauchy[src]

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

impl Rv<f64> for ChiSquared[src]

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

impl Rv<f64> for Exponential[src]

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

impl Rv<f64> for Gamma[src]

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

impl Rv<f64> for Gaussian[src]

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

impl Rv<f64> for Gev[src]

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

fn sample<R: Rng>(&self, n: usize, rng: &mut R) -> Vec<X>[src]

impl Rv<f64> for InvGamma[src]

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

impl Rv<f64> for Laplace[src]

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

fn sample<R: Rng>(&self, n: usize, rng: &mut R) -> Vec<X>[src]

impl Rv<f64> for LogNormal[src]

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

impl Rv<f64> for Pareto[src]

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

fn sample<R: Rng>(&self, n: usize, rng: &mut R) -> Vec<X>[src]

impl Rv<f64> for StudentsT[src]

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

impl Rv<f64> for Uniform[src]

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

impl Rv<f64> for VonMises[src]

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

fn sample<R: Rng>(&self, n: usize, rng: &mut R) -> Vec<X>[src]

impl Rv<i16> for Bernoulli[src]

impl Rv<i16> for BetaBinomial[src]

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

impl Rv<i16> for Binomial[src]

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

fn sample<R: Rng>(&self, n: usize, rng: &mut R) -> Vec<X>[src]

impl Rv<i32> for Bernoulli[src]

impl Rv<i32> for BetaBinomial[src]

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

impl Rv<i32> for Binomial[src]

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

fn sample<R: Rng>(&self, n: usize, rng: &mut R) -> Vec<X>[src]

impl Rv<i64> for Bernoulli[src]

impl Rv<i64> for BetaBinomial[src]

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

impl Rv<i64> for Binomial[src]

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

fn sample<R: Rng>(&self, n: usize, rng: &mut R) -> Vec<X>[src]

impl Rv<i8> for Bernoulli[src]

impl Rv<i8> for BetaBinomial[src]

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

impl Rv<i8> for Binomial[src]

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

fn sample<R: Rng>(&self, n: usize, rng: &mut R) -> Vec<X>[src]

impl Rv<isize> for Bernoulli[src]

impl Rv<u16> for Bernoulli[src]

impl Rv<u16> for BetaBinomial[src]

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

impl Rv<u16> for Binomial[src]

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

fn sample<R: Rng>(&self, n: usize, rng: &mut R) -> Vec<X>[src]

impl Rv<u16> for Poisson[src]

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

impl Rv<u32> for Bernoulli[src]

impl Rv<u32> for BetaBinomial[src]

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

impl Rv<u32> for Binomial[src]

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

fn sample<R: Rng>(&self, n: usize, rng: &mut R) -> Vec<X>[src]

impl Rv<u32> for Poisson[src]

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

impl Rv<u64> for Bernoulli[src]

impl Rv<u64> for BetaBinomial[src]

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

impl Rv<u64> for Binomial[src]

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

fn sample<R: Rng>(&self, n: usize, rng: &mut R) -> Vec<X>[src]

impl Rv<u8> for Bernoulli[src]

impl Rv<u8> for BetaBinomial[src]

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

impl Rv<u8> for Binomial[src]

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

fn sample<R: Rng>(&self, n: usize, rng: &mut R) -> Vec<X>[src]

impl Rv<u8> for Poisson[src]

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

impl Rv<usize> for Bernoulli[src]

impl Rv<usize> for BetaBinomial[src]

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

impl Rv<usize> for Binomial[src]

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

fn sample<R: Rng>(&self, n: usize, rng: &mut R) -> Vec<X>[src]

impl Rv<Partition> for Crp[src]

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

fn sample<R: Rng>(&self, n: usize, rng: &mut R) -> Vec<X>[src]

impl Rv<Bernoulli> for Beta[src]

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

fn sample<R: Rng>(&self, n: usize, rng: &mut R) -> Vec<X>[src]

impl Rv<Categorical> for Dirichlet[src]

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

fn sample<R: Rng>(&self, n: usize, rng: &mut R) -> Vec<X>[src]

impl Rv<Categorical> for SymmetricDirichlet[src]

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

fn sample<R: Rng>(&self, n: usize, rng: &mut R) -> Vec<X>[src]

impl Rv<Gaussian> for NormalGamma[src]

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

fn sample<R: Rng>(&self, n: usize, rng: &mut R) -> Vec<X>[src]

impl Rv<MvGaussian> for NormalInvWishart[src]

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

fn sample<R: Rng>(&self, n: usize, rng: &mut R) -> Vec<X>[src]

impl Rv<Vec<f64>> for SymmetricDirichlet[src]

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

fn sample<R: Rng>(&self, n: usize, rng: &mut R) -> Vec<X>[src]

impl Rv<Vec<f64>> for Dirichlet[src]

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

fn sample<R: Rng>(&self, n: usize, rng: &mut R) -> Vec<X>[src]

impl Rv<Matrix<f64, Dynamic, Dynamic, <DefaultAllocator as Allocator<f64, Dynamic, Dynamic>>::Buffer>> for InvWishart[src]

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

impl Rv<Matrix<f64, Dynamic, U1, VecStorage<f64, Dynamic, U1>>> for MvGaussian[src]

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

fn sample<R: Rng>(&self, n: usize, rng: &mut R) -> Vec<X>[src]

impl<X> Rv<X> for Geometric where
    X: Unsigned + Integer + FromPrimitive + ToPrimitive + Saturating + Bounded
[src]

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

fn sample<R: Rng>(&self, n: usize, rng: &mut R) -> Vec<X>[src]

impl<X, Fx> Rv<X> for Mixture<Fx> where
    Fx: Rv<X> + ApiReady
[src]

impl<X, Fx, Pr> Rv<X> for ConjugateModel<X, Fx, Pr> where
    X: ApiReady,
    Fx: Rv<X> + HasSuffStat<X> + ApiReady,
    Pr: ConjugatePrior<X, Fx> + ApiReady,
    Fx::Stat: ApiReady
[src]

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

impl<X, T> Rv<X> for DiscreteUniform<T> where
    T: Integer + SampleUniform + Copy,
    X: Integer + From<T>, 
[src]

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

impl<X: CategoricalDatum> Rv<X> for Categorical[src]

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

Loading content...