Expand description
Random array generation with full ndarray-rand compatibility and scientific computing extensions Random array generation for ndarray integration
This module provides comprehensive random array generation functionality that integrates seamlessly with the SCIRS2 ecosystem. It replaces external ndarray-rand dependencies with a fully controlled, scientifically-focused implementation.
§Features
- Full ndarray-rand compatibility - Drop-in replacement for ndarray-rand functionality
- Scientific computing focus - Enhanced with features specifically for research
- Integrated with SCIRS2 Random - Uses our Random struct for consistency
- Performance optimized - Bulk operations for large-scale scientific computing
- Reproducible research - Full seeding and deterministic support
§Examples
use scirs2_core::ndarray_ext::random::*;
use scirs2_core::random::seeded_rng;
use rand_distr::Beta as BetaDist;
use ndarray::{Array2, Ix2};
// Generate random arrays using our RandomExt trait
let mut rng = seeded_rng(42);
let matrix: Array2<f64> = Array2::random(Ix2(10, 10), StandardNormal, &mut rng);
// Scientific distributions
let beta_samples = Array2::random(Ix2(100, 5), BetaDist::new(2.0, 5.0).expect("Operation failed"), &mut rng);
// Multivariate normal example
let mean = vec![0.0, 1.0];
let covariance = vec![vec![1.0, 0.5], vec![0.5, 1.0]];
let multivariate: Array2<f64> = Array2::multivariate_normal(mean, covariance, 1000, &mut rng);Modules§
- convenience
- Convenience functions for quick random array generation
- optimized
- Performance optimized random array operations
Structs§
- Standard
Normal - Standard normal distribution for convenience
- Standard
Uniform - Standard uniform distribution [0, 1) for convenience
Traits§
- Random
Ext - Extended random array generation trait for ndarray integration
- Scientific
Random Ext - Scientific computing specific random array extensions