Struct ndarray_rand::rand_distr::Normal[][src]

pub struct Normal<F> where
    F: Float,
    StandardNormal: Distribution<F>, 
{ /* fields omitted */ }

The normal distribution N(mean, std_dev**2).

This uses the ZIGNOR variant of the Ziggurat method, see StandardNormal for more details.

Note that StandardNormal is an optimised implementation for mean 0, and standard deviation 1.

Example

use rand_distr::{Normal, Distribution};

// mean 2, standard deviation 3
let normal = Normal::new(2.0, 3.0).unwrap();
let v = normal.sample(&mut rand::thread_rng());
println!("{} is from a N(2, 9) distribution", v)

Implementations

impl<F> Normal<F> where
    F: Float,
    StandardNormal: Distribution<F>, 
[src]

pub fn new(mean: F, std_dev: F) -> Result<Normal<F>, Error>[src]

Construct, from mean and standard deviation

Parameters:

  • mean (μ, unrestricted)
  • standard deviation (σ, must be finite)

pub fn from_mean_cv(mean: F, cv: F) -> Result<Normal<F>, Error>[src]

Construct, from mean and coefficient of variation

Parameters:

  • mean (μ, unrestricted)
  • coefficient of variation (cv = abs(σ / μ))

pub fn from_zscore(&self, zscore: F) -> F[src]

Sample from a z-score

This may be useful for generating correlated samples x1 and x2 from two different distributions, as follows.

let mut rng = thread_rng();
let z = StandardNormal.sample(&mut rng);
let x1 = Normal::new(0.0, 1.0).unwrap().from_zscore(z);
let x2 = Normal::new(2.0, -3.0).unwrap().from_zscore(z);

Trait Implementations

impl<F> Clone for Normal<F> where
    F: Clone + Float,
    StandardNormal: Distribution<F>, 
[src]

impl<F> Copy for Normal<F> where
    F: Copy + Float,
    StandardNormal: Distribution<F>, 
[src]

impl<F> Debug for Normal<F> where
    F: Debug + Float,
    StandardNormal: Distribution<F>, 
[src]

impl<F> Distribution<F> for Normal<F> where
    F: Float,
    StandardNormal: Distribution<F>, 
[src]

Auto Trait Implementations

impl<F> RefUnwindSafe for Normal<F> where
    F: RefUnwindSafe

impl<F> Send for Normal<F> where
    F: Send

impl<F> Sync for Normal<F> where
    F: Sync

impl<F> Unpin for Normal<F> where
    F: Unpin

impl<F> UnwindSafe for Normal<F> where
    F: UnwindSafe

Blanket Implementations

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

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

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

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

impl<T, U> Into<U> for T where
    U: From<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<V, T> VZip<V> for T where
    V: MultiLane<T>,