Module random

Module random 

Source
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§

StandardNormal
Standard normal distribution for convenience
StandardUniform
Standard uniform distribution [0, 1) for convenience

Traits§

RandomExt
Extended random array generation trait for ndarray integration
ScientificRandomExt
Scientific computing specific random array extensions