use crate::types::Real;
pub mod boxmullergaussianrng;
pub mod inversecumulativersg;
pub mod knuthuniformrng;
pub mod lattice;
mod lattice_tables;
pub mod mt19937uniformrng;
pub mod randomsequencegenerator;
pub mod ranluxuniformrng;
pub mod rngtraits;
pub mod seedgenerator;
pub mod sobol;
pub mod xoshiro256starstaruniformrng;
pub mod zigguratgaussianrng;
pub use boxmullergaussianrng::BoxMullerGaussianRng;
pub use inversecumulativersg::InverseCumulativeRsg;
pub use knuthuniformrng::KnuthUniformRng;
pub use mt19937uniformrng::MersenneTwisterUniformRng;
pub use randomsequencegenerator::RandomSequenceGenerator;
pub use ranluxuniformrng::{Ranlux3UniformRng, Ranlux4UniformRng, Ranlux64UniformRng};
pub use rngtraits::{InverseCumulative, McRngTraits, PseudoRandom, SequenceGenerator};
pub use xoshiro256starstaruniformrng::Xoshiro256StarStarUniformRng;
pub use zigguratgaussianrng::ZigguratGaussianRng;
pub trait UniformRng {
fn next_real(&mut self) -> Real;
}
pub trait Uint64Rng: UniformRng {
fn next_u64(&mut self) -> u64;
}
pub trait GaussianRng {
fn next_gaussian(&mut self) -> Real;
}