pub struct StandardNormal(pub f64);
impl Rand for StandardNormal {
- fn rand<R:Rng>(rng: &mut R) -> StandardNormal {
+ fn rand<R: Rng>(rng: &mut R) -> StandardNormal {
#[inline]
fn pdf(x: f64) -> f64 {
- (-x*x/2.0).exp()
+ (-x * x / 2.0).exp()
}
#[inline]
- fn zero_case<R:Rng>(rng: &mut R, u: f64) -> f64 {
+ fn zero_case<R: Rng>(rng: &mut R, u: f64) -> f64 {
// compute a random number in the tail by hand
// strange initial conditions, because the loop is not
y = y_.ln();
}
- if u < 0.0 { x - ziggurat_tables::ZIG_NORM_R } else { ziggurat_tables::ZIG_NORM_R - x }
+ if u < 0.0 {
+ x - ziggurat_tables::ZIG_NORM_R
+ } else {
+ ziggurat_tables::ZIG_NORM_R - x
+ }
}
- StandardNormal(ziggurat(
- rng,
- true, // this is symmetric
- &ziggurat_tables::ZIG_NORM_X,
- &ziggurat_tables::ZIG_NORM_F,
- pdf, zero_case))
+ StandardNormal(ziggurat(rng,
+ true, // this is symmetric
+ &ziggurat_tables::ZIG_NORM_X,
+ &ziggurat_tables::ZIG_NORM_F,
+ pdf,
+ zero_case))
}
}
assert!(std_dev >= 0.0, "Normal::new called with `std_dev` < 0");
Normal {
mean: mean,
- std_dev: std_dev
+ std_dev: std_dev,
}
}
}
impl Sample<f64> for Normal {
- fn sample<R: Rng>(&mut self, rng: &mut R) -> f64 { self.ind_sample(rng) }
+ fn sample<R: Rng>(&mut self, rng: &mut R) -> f64 {
+ self.ind_sample(rng)
+ }
}
impl IndependentSample<f64> for Normal {
fn ind_sample<R: Rng>(&self, rng: &mut R) -> f64 {
/// std_dev**2)` distributed.
#[derive(Copy, Clone)]
pub struct LogNormal {
- norm: Normal
+ norm: Normal,
}
impl LogNormal {
}
}
impl Sample<f64> for LogNormal {
- fn sample<R: Rng>(&mut self, rng: &mut R) -> f64 { self.ind_sample(rng) }
+ fn sample<R: Rng>(&mut self, rng: &mut R) -> f64 {
+ self.ind_sample(rng)
+ }
}
impl IndependentSample<f64> for LogNormal {
fn ind_sample<R: Rng>(&self, rng: &mut R) -> f64 {
use std::prelude::v1::*;
use self::test::Bencher;
use std::mem::size_of;
- use distributions::{Sample};
+ use distributions::Sample;
use super::Normal;
#[bench]