Expand description
Ultra-advanced random number generation for SCIRS2 ecosystem
This module provides the most comprehensive and cutting-edge random number generation capabilities available, designed specifically for scientific computing, machine learning, and quantum-inspired algorithms with unparalleled features for reproducibility, performance, and specialized ultra-modern distributions.
§Quick Start
// For quick prototyping - use the quick module
use scirs2_core::random::quick::*;
let x = random_f64();
let data = random_vector(100); // Use smaller data for doc tests
// For scientific computing - use the prelude
use scirs2_core::random::prelude::*;
let mut rng = thread_rng();
let sample = rng.sample(Normal::new(0.0, 1.0).expect("Operation failed"));§Module Organization
§🚀 Cutting-Edge Modules
cutting_edge_mcmc- HMC, NUTS, SVGD, and advanced MCMC methodsneural_sampling- Normalizing flows, VAE, diffusion modelsquantum_inspired- Quantum algorithms for classical computationadvanced_numerical- Multi-level Monte Carlo, adaptive samplingecosystem_integration- Seamless SCIRS2 module interoperability
§🎯 Workflow-Based Modules
prelude- Most commonly used items (Rust idiom)quick- Rapid prototyping with minimal setupscientific- Research and scientific computing workflowsml- Machine learning specific utilities
§⚡ Core Implementation Modules
core- Core Random struct and fundamental operationsdistributions- Advanced statistical distributionsarrays- Optimized bulk array generationslice_ops- Enhanced slice operations and sampling
§🔬 Specialized Modules
qmc- Quasi-Monte Carlo sequences (Sobol, Halton, LHS)variance_reduction- Monte Carlo variance reduction techniquessecure- Cryptographically secure random generationparallel- Thread-safe parallel random generation
Re-exports§
pub use core::seeded_rng;pub use core::thread_rng;pub use core::DistributionExt;pub use core::Random as CoreRandom;pub use slice_ops::ScientificSliceRandom;pub use distributions::Beta;pub use distributions::Categorical;pub use distributions::Dirichlet;pub use distributions::GammaDist;pub use distributions::MultivariateNormal;pub use distributions::VonMises;pub use distributions::WeightedChoice;pub use distributions_unified::UnifiedBeta;pub use distributions_unified::UnifiedBinomial;pub use distributions_unified::UnifiedCauchy;pub use distributions_unified::UnifiedChiSquared;pub use distributions_unified::UnifiedDirichlet;pub use distributions_unified::UnifiedDistribution;pub use distributions_unified::UnifiedDistributionError;pub use distributions_unified::UnifiedExp;pub use distributions_unified::UnifiedFisherF;pub use distributions_unified::UnifiedGamma;pub use distributions_unified::UnifiedLogNormal;pub use distributions_unified::UnifiedNormal;pub use distributions_unified::UnifiedPoisson;pub use distributions_unified::UnifiedStudentT;pub use distributions_unified::UnifiedWeibull;pub use arrays::random_exponential_array;pub use arrays::random_gamma_array;pub use arrays::random_he_weights;pub use arrays::random_normal_array;pub use arrays::random_sparse_array;pub use arrays::random_uniform_array;pub use arrays::random_xavier_weights;pub use arrays::OptimizedArrayRandom;pub use variance_reduction::AntitheticSampling;pub use variance_reduction::CommonRatio;pub use variance_reduction::ControlVariate;pub use variance_reduction::ImportanceSplitting;pub use qmc::HaltonGenerator;pub use qmc::LatinHypercubeSampler;pub use qmc::LowDiscrepancySequence;pub use qmc::QmcError;pub use qmc::SobolGenerator;pub use secure::utils as secure_utils;pub use secure::SecureRandom;pub use secure::SecureRngPool;pub use parallel::BatchRng;pub use parallel::DistributedRngPool;pub use parallel::ParallelRng;pub use parallel::ThreadLocalRngPool;pub use advanced_numerical::AdaptiveResult;pub use advanced_numerical::AdaptiveSampler;pub use advanced_numerical::ImportanceResult;pub use advanced_numerical::ImportanceSampler;pub use advanced_numerical::MLMCResult;pub use advanced_numerical::MultiLevelMonteCarlo;pub use advanced_numerical::SequentialMonteCarlo;pub use cutting_edge_mcmc::EllipticalSliceSampler;pub use cutting_edge_mcmc::HamiltonianMonteCarlo;pub use cutting_edge_mcmc::NoUTurnSampler;pub use cutting_edge_mcmc::ParallelTempering;pub use cutting_edge_mcmc::SteinVariationalGradientDescent;pub use neural_sampling::DiffusionConfig;pub use neural_sampling::EnergyBasedModel;pub use neural_sampling::NeuralPosteriorEstimation;pub use neural_sampling::NormalizingFlow;pub use neural_sampling::ScoreBasedDiffusion;pub use quantum_inspired::CoinParameters;pub use quantum_inspired::QuantumAmplitudeAmplification;pub use quantum_inspired::QuantumInspiredAnnealing;pub use quantum_inspired::QuantumInspiredEvolutionary;pub use quantum_inspired::QuantumWalk;pub use ecosystem_integration::AugmentationConfig;pub use ecosystem_integration::ExperimentalDesign;pub use ecosystem_integration::LinalgBridge;pub use ecosystem_integration::NeuralBridge;pub use ecosystem_integration::OptimizationBridge;pub use ecosystem_integration::StatsBridge;pub use ecosystem_integration::SyntheticDataset;pub use quick as rapid;pub use scientific as research;pub use ml as machine_learning;pub use secure as crypto;pub use rand_distr as rand_distributions;
Modules§
- advanced_
numerical - Advanced numerical methods for ultra-high-performance scientific computing
- ai_
sampling - Neural and AI-based sampling methods
- arrays
- Optimized array operations for random generation
- bayesian
- Advanced MCMC and Bayesian inference
- bridges
- Ecosystem integration and bridge utilities
- convenience
- High-level convenience functions for common operations
- core
- Core random number generation functionality for SCIRS2 ecosystem
- cutting_
edge - 🚀 Cutting-edge algorithms
- cutting_
edge_ mcmc - Cutting-edge MCMC algorithms for ultra-high-performance Bayesian inference
- distributions
- Advanced statistical distributions for SCIRS2 ecosystem
- distributions_
unified - Unified distribution interface for the SciRS2 ecosystem
- ecosystem_
integration - Ecosystem integration utilities for seamless SCIRS2 module interoperability
- essentials
- All essential items for most use cases
- gpu
- GPU-accelerated random number generation (when available)
- hpc
- High-performance computing functionality
- importance_
sampling - Importance sampling methods for efficient estimation
- legacy
- Legacy compatibility functions for backward compatibility
- ml
- Machine Learning specific random utilities
- neural_
sampling - Neural-based sampling methods for ultra-modern generative modeling
- numerical_
methods - Advanced numerical methods and optimization
- optimized_
arrays - Legacy module structure for backward compatibility
- parallel
- Thread-local RNG pools for high-performance parallel applications
- prelude
- Prelude module for scirs2-core random functionality
- qmc
- Quasi-Monte Carlo Sequences
- quantum
- Quantum-inspired computational methods
- quantum_
inspired - Quantum-inspired sampling algorithms for ultra-advanced computational methods
- quasi_
monte_ carlo - Legacy module structure for backward compatibility
- quick
- Quick and easy random generation for rapid prototyping
- rand_
prelude - Convenience re-export of common members
- rngs
- Random number generators and adapters
- sampling
- Sampling utilities for common statistical operations
- scientific
- Scientific computing workflows for reproducible research
- secure
- Cryptographically secure random number generation
- seq
- Sequence random operations for SCIRS2 ecosystem
- slice_
ops - Enhanced slice random operations for SCIRS2 ecosystem
- slice_
random - Legacy slice operations
- specialized_
distributions - Legacy module structure for backward compatibility
- statistics
- Advanced statistical functionality
- uniform
- A distribution uniformly sampling numbers within a given range.
- variance_
reduction - Variance reduction techniques for Monte Carlo methods
Structs§
- Alphanumeric
- Sample a
u8, uniformly distributed over ASCII letters and numbers: a-z, A-Z and 0-9. - Bernoulli
- The Bernoulli distribution
Bernoulli(p). - Binomial
- The binomial distribution
Binomial(n, p). - Cauchy
- The Cauchy distribution
Cauchy(x₀, γ). - ChaCha8
Rng - A cryptographically secure random number generator that uses the ChaCha algorithm.
- ChaCha12
Rng - A cryptographically secure random number generator that uses the ChaCha algorithm.
- ChaCha20
Rng - A cryptographically secure random number generator that uses the ChaCha algorithm.
- ChiSquared
- The chi-squared distribution
χ²(k). - Deterministic
Sequence - Deterministic random sequence generator for testing (legacy compatibility)
- Exp
- The exponential distribution
Exp(λ). - Exponential
- The exponential distribution
Exp(λ). - FisherF
- The Fisher F-distribution
F(m, n). - Gamma
- The Gamma distribution
Gamma(k, θ). - Geometric
- The geometric distribution
Geometric(p). - Hypergeometric
- The hypergeometric distribution
Hypergeometric(N, K, n). - Inverse
Gaussian - The inverse Gaussian distribution
IG(μ, λ). - LogNormal
- The log-normal distribution
ln N(μ, σ²). - Normal
- The Normal distribution
N(μ, σ²). - Open01
- A distribution to sample floating point numbers uniformly in the open
interval
(0, 1), i.e. not including either endpoint. - Open
Closed01 - A distribution to sample floating point numbers uniformly in the half-open
interval
(0, 1], i.e. including 1 but not 0. - Pareto
- The Pareto distribution
Pareto(xₘ, α). - Pert
- The PERT distribution
PERT(min, max, mode, shape). - Poisson
- The Poisson distribution
Poisson(λ). - Rand
Bernoulli - The Bernoulli distribution
Bernoulli(p). - Rand
Beta - The Beta distribution
Beta(α, β). - Rand
Dirichlet - The Dirichlet distribution
Dirichlet(α₁, α₂, ..., αₖ). - Rand
Gamma - The Gamma distribution
Gamma(k, θ). - Rand
Normal - The Normal distribution
N(μ, σ²). - Rand
Uniform - Sample values uniformly between two bounds.
- Random
- Legacy Random struct wrapper for backward compatibility This provides the same interface as the original Random struct while delegating to the new modular implementation
- Standard
Normal - The standard Normal distribution
N(0, 1). - StudentT
- The Student t-distribution
t(ν). - Triangular
- The triangular distribution
Triangular(min, max, mode). - Uniform
- Sample values uniformly between two bounds.
- Unit
Ball - Samples uniformly from the volume of the unit ball in three dimensions.
- Unit
Circle - Samples uniformly from the circumference of the unit circle in two dimensions.
- Unit
Disc - Samples uniformly from the unit disc in two dimensions.
- Unit
Sphere - Samples uniformly from the surface of the unit sphere in three dimensions.
- Weibull
- The Weibull distribution
Weibull(λ, k). - Weighted
Index - A distribution using weighted sampling of discrete items.
- Zeta
- The Zeta distribution
Zeta(s). - Zipf
- The Zipf (Zipfian) distribution
Zipf(n, s).
Traits§
- Dimension
- Array shape and index trait.
- Distribution
- Types (distributions) that can be used to create a random instance of
T. - Random
Ext - Extension trait for constructing n-dimensional arrays with random elements.
- Rng
- User-level interface for RNGs
- RngCore
- Implementation-level interface for RNGs
- Seedable
Rng - A random number generator that can be explicitly seeded.
- Slice
Random - Extension trait on slices, providing shuffling methods.
- Slice
Random Ext - Re-export SliceRandom trait from rand for enhanced compatibility Extension trait on slices, providing shuffling methods.
Functions§
- get_rng
- Get a reference to the thread-local random number generator (legacy compatibility)
- random
- Convenience function to generate a random value of the inferred type
- rng
- Convenience function to create a thread-local RNG
Type Aliases§
- Array1D
- Array type aliases for convenience
- Array2D
- Array3D
- Exponential
Dist - Normal
Dist - StdRng
- Thread
Rng - Convenient type aliases for common RNG types
- Uniform
Dist - Common distribution type aliases