Skip to main content

Module random

Module random 

Source
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

§🎯 Workflow-Based Modules

  • prelude - Most commonly used items (Rust idiom)
  • quick - Rapid prototyping with minimal setup
  • scientific - Research and scientific computing workflows
  • ml - Machine learning specific utilities

§Core Implementation Modules

  • core - Core Random struct and fundamental operations
  • distributions - Advanced statistical distributions
  • arrays - Optimized bulk array generation
  • slice_ops - Enhanced slice operations and sampling

§🔬 Specialized Modules

  • qmc - Quasi-Monte Carlo sequences (Sobol, Halton, LHS)
  • variance_reduction - Monte Carlo variance reduction techniques
  • secure - Cryptographically secure random generation
  • parallel - 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₀, γ).
ChaCha8Rng
A cryptographically secure random number generator that uses the ChaCha algorithm.
ChaCha12Rng
A cryptographically secure random number generator that uses the ChaCha algorithm.
ChaCha20Rng
A cryptographically secure random number generator that uses the ChaCha algorithm.
ChiSquared
The chi-squared distribution χ²(k).
DeterministicSequence
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).
InverseGaussian
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.
OpenClosed01
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(λ).
RandBernoulli
The Bernoulli distribution Bernoulli(p).
RandBeta
The Beta distribution Beta(α, β).
RandDirichlet
The Dirichlet distribution Dirichlet(α₁, α₂, ..., αₖ).
RandGamma
The Gamma distribution Gamma(k, θ).
RandNormal
The Normal distribution N(μ, σ²).
RandUniform
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
StandardNormal
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.
UnitBall
Samples uniformly from the volume of the unit ball in three dimensions.
UnitCircle
Samples uniformly from the circumference of the unit circle in two dimensions.
UnitDisc
Samples uniformly from the unit disc in two dimensions.
UnitSphere
Samples uniformly from the surface of the unit sphere in three dimensions.
Weibull
The Weibull distribution Weibull(λ, k).
WeightedIndex
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.
RandomExt
Extension trait for constructing n-dimensional arrays with random elements.
Rng
User-level interface for RNGs
RngCore
Implementation-level interface for RNGs
SeedableRng
A random number generator that can be explicitly seeded.
SliceRandom
Extension trait on slices, providing shuffling methods.
SliceRandomExt
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
ExponentialDist
NormalDist
StdRng
ThreadRng
Convenient type aliases for common RNG types
UniformDist
Common distribution type aliases