Struct ndarray_rand::rand_distr::Normal [−][src]
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]
F: Float,
StandardNormal: Distribution<F>,
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]
F: Clone + Float,
StandardNormal: Distribution<F>,
impl<F> Copy for Normal<F> where
F: Copy + Float,
StandardNormal: Distribution<F>,
[src]
F: Copy + Float,
StandardNormal: Distribution<F>,
impl<F> Debug for Normal<F> where
F: Debug + Float,
StandardNormal: Distribution<F>,
[src]
F: Debug + Float,
StandardNormal: Distribution<F>,
impl<F> Distribution<F> for Normal<F> where
F: Float,
StandardNormal: Distribution<F>,
[src]
F: Float,
StandardNormal: Distribution<F>,
Auto Trait Implementations
impl<F> RefUnwindSafe for Normal<F> where
F: RefUnwindSafe,
F: RefUnwindSafe,
impl<F> Send for Normal<F> where
F: Send,
F: Send,
impl<F> Sync for Normal<F> where
F: Sync,
F: Sync,
impl<F> Unpin for Normal<F> where
F: Unpin,
F: Unpin,
impl<F> UnwindSafe for Normal<F> where
F: UnwindSafe,
F: UnwindSafe,
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
pub fn to_owned(&self) -> T
[src]
pub fn clone_into(&self, target: &mut T)
[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
pub fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
V: MultiLane<T>,