[][src]Struct statrs::distribution::Bernoulli

pub struct Bernoulli { /* fields omitted */ }

Implements the Bernoulli distribution which is a special case of the Binomial distribution where n = 1 (referenced Here)

Examples

use statrs::distribution::{Bernoulli, Discrete};
use statrs::statistics::Mean;

let n = Bernoulli::new(0.5).unwrap();
assert_eq!(n.mean(), 0.5);
assert_eq!(n.pmf(0), 0.5);
assert_eq!(n.pmf(1), 0.5);

Methods

impl Bernoulli[src]

pub fn new(p: f64) -> Result<Bernoulli>[src]

Constructs a new bernoulli distribution with the given p probability of success.

Errors

Returns an error if p is NaN, less than 0.0 or greater than 1.0

Examples

use statrs::distribution::Bernoulli;

let mut result = Bernoulli::new(0.5);
assert!(result.is_ok());

result = Bernoulli::new(-0.5);
assert!(result.is_err());

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

Returns the probability of success p of the bernoulli distribution.

Examples

use statrs::distribution::Bernoulli;

let n = Bernoulli::new(0.5).unwrap();
assert_eq!(n.p(), 0.5);

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

Returns the number of trials n of the bernoulli distribution. Will always be 1.0.

Examples

use statrs::distribution::Bernoulli;

let n = Bernoulli::new(0.5).unwrap();
assert_eq!(n.n(), 1);

Trait Implementations

impl Distribution<f64> for Bernoulli[src]

fn sample<R: Rng>(&self, r: &mut R) -> f64[src]

Generate a random sample from the bernoulli distribution using r as the source of randomness where the generated values are 1 with probability p and 0 with probability 1-p.

Examples

use rand::StdRng;
use statrs::distribution::{Bernoulli, Distribution};

let mut r = rand::StdRng::new().unwrap();
let n = Bernoulli::new(0.5).unwrap();
print!("{}", n.sample::<StdRng>(&mut r));

impl Univariate<u64, f64> for Bernoulli[src]

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

Calculates the cumulative distribution function for the bernoulli distribution at x.

Formula

This example is not tested
if x < 0 { 0 }
else if x >= 1 { 1 }
else { 1 - p }

impl Discrete<u64, f64> for Bernoulli[src]

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

Calculates the probability mass function for the bernoulli distribution at x.

Formula

This example is not tested
if x == 0 { 1 - p }
else { p }

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

Calculates the log probability mass function for the bernoulli distribution at x.

Formula

This example is not tested
else if x == 0 { ln(1 - p) }
else { ln(p) }

impl Min<u64> for Bernoulli[src]

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

Returns the minimum value in the domain of the bernoulli distribution representable by a 64- bit integer

Formula

This example is not tested
0

impl Max<u64> for Bernoulli[src]

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

Returns the maximum value in the domain of the bernoulli distribution representable by a 64- bit integer

Formula

This example is not tested
1

impl Mean<f64> for Bernoulli[src]

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

Returns the mean of the bernoulli distribution

Formula

This example is not tested
p

impl Variance<f64> for Bernoulli[src]

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

Returns the variance of the bernoulli distribution

Formula

This example is not tested
p * (1 - p)

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

Returns the standard deviation of the bernoulli distribution

Formula

This example is not tested
sqrt(p * (1 - p))

impl Entropy<f64> for Bernoulli[src]

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

Returns the entropy of the bernoulli distribution

Formula

This example is not tested
q = (1 - p)
-q * ln(q) - p * ln(p)

impl Skewness<f64> for Bernoulli[src]

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

Returns the skewness of the bernoulli distribution

Formula

This example is not tested
q = (1 - p)
(1 - 2p) / sqrt(p * q)

impl Median<f64> for Bernoulli[src]

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

Returns the median of the bernoulli distribution

Formula

This example is not tested
if p < 0.5 { 0 }
else if p > 0.5 { 1 }
else { 0.5 }

impl Mode<u64> for Bernoulli[src]

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

Returns the mode of the bernoulli distribution

Formula

This example is not tested
if p < 0.5 { 0 }
else { 1 }

impl Copy for Bernoulli[src]

impl Clone for Bernoulli[src]

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

Performs copy-assignment from source. Read more

impl PartialEq<Bernoulli> for Bernoulli[src]

impl Debug for Bernoulli[src]

impl IndependentSample<f64> for Bernoulli[src]

fn ind_sample<R: Rng>(&self, r: &mut R) -> f64[src]

Generate a random independent sample from a bernoulli distribution using r as the source of randomness. Refer here for implementation details

impl Sample<f64> for Bernoulli[src]

fn sample<R: Rng>(&mut self, r: &mut R) -> f64[src]

Generate a random sample from a bernoulli distribution using r as the source of randomness. Refer here for implementation details

Auto Trait Implementations

impl Send for Bernoulli

impl Unpin for Bernoulli

impl Sync for Bernoulli

impl UnwindSafe for Bernoulli

impl RefUnwindSafe for Bernoulli

Blanket Implementations

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

type Owned = T

The resulting type after obtaining ownership.

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

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

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> BorrowMut<T> for T where
    T: ?Sized
[src]

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

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