probability 0.20.3

The package provides a probability-theory toolbox.
Documentation
use probability::prelude::*;
use test::{black_box, Bencher};

#[bench]
fn distribution(bencher: &mut Bencher) {
    let d = Beta::new(0.5, 1.5, 0.0, 1.0);
    let x = Independent(&d, &mut source::default(42))
        .take(1000)
        .collect::<Vec<_>>();

    bencher.iter(|| black_box(x.iter().map(|&x| d.distribution(x)).collect::<Vec<_>>()));
}

#[bench]
fn inverse(bencher: &mut Bencher) {
    let d = Beta::new(0.5, 1.5, 0.0, 1.0);
    let p = Independent(&Uniform::new(0.0, 1.0), &mut source::default(42))
        .take(1000)
        .collect::<Vec<_>>();

    bencher.iter(|| black_box(p.iter().map(|&p| d.inverse(p)).collect::<Vec<_>>()));
}

#[bench]
fn sample(bencher: &mut Bencher) {
    let mut source = source::default(42);
    let d = Beta::new(0.5, 1.5, 0.0, 1.0);

    bencher.iter(|| black_box(d.sample(&mut source)));
}