diff --git a/Cargo.toml b/Cargo.toml index 8ea42a8..6dab233 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -16,7 +16,7 @@ categories = ["algorithm", "science", "data-structures"] readme = "README.md" [dependencies] -rand = "0.9" +rand = "0.10" thiserror = "2" parking_lot = "0.12" tokio = { version = "1", features = ["sync", "rt-multi-thread"], optional = true } diff --git a/src/kde/multivariate.rs b/src/kde/multivariate.rs index 49a5b05..9a80509 100644 --- a/src/kde/multivariate.rs +++ b/src/kde/multivariate.rs @@ -5,7 +5,7 @@ //! parameter independently, the multivariate KDE models the joint distribution //! to better capture correlations between parameters. -use rand::Rng; +use rand::{Rng, RngExt}; use crate::error::{Error, Result}; diff --git a/src/kde/univariate.rs b/src/kde/univariate.rs index 0235955..2c3ea78 100644 --- a/src/kde/univariate.rs +++ b/src/kde/univariate.rs @@ -3,7 +3,7 @@ //! This module provides a Gaussian kernel density estimator used by the TPE //! sampler to model probability distributions over good and bad trial regions. -use rand::Rng; +use rand::{Rng, RngExt}; use crate::error::{Error, Result}; diff --git a/src/sampler/random.rs b/src/sampler/random.rs index a59aba7..429a426 100644 --- a/src/sampler/random.rs +++ b/src/sampler/random.rs @@ -2,7 +2,7 @@ use parking_lot::Mutex; use rand::rngs::StdRng; -use rand::{Rng, SeedableRng}; +use rand::{RngExt, SeedableRng}; use crate::distribution::Distribution; use crate::param::ParamValue; @@ -34,7 +34,7 @@ impl RandomSampler { #[must_use] pub fn new() -> Self { Self { - rng: Mutex::new(StdRng::from_os_rng()), + rng: Mutex::new(rand::make_rng()), } } diff --git a/src/sampler/tpe/multivariate.rs b/src/sampler/tpe/multivariate.rs index 93dcdf9..a3d86ad 100644 --- a/src/sampler/tpe/multivariate.rs +++ b/src/sampler/tpe/multivariate.rs @@ -116,8 +116,8 @@ use std::collections::HashMap; use std::sync::Arc; use parking_lot::Mutex; -use rand::SeedableRng; use rand::rngs::StdRng; +use rand::{RngExt, SeedableRng}; use super::{FixedGamma, GammaStrategy}; use crate::distribution::Distribution; @@ -219,7 +219,7 @@ impl MultivariateTpeSampler { n_ei_candidates: 24, group: false, constant_liar: ConstantLiarStrategy::None, - rng: Mutex::new(StdRng::from_os_rng()), + rng: Mutex::new(rand::make_rng()), joint_sample_cache: Mutex::new(None), } } @@ -782,8 +782,6 @@ impl MultivariateTpeSampler { distribution: &Distribution, rng: &mut rand::rngs::StdRng, ) -> ParamValue { - use rand::Rng; - match distribution { Distribution::Float(d) => { let value = if d.log_scale { @@ -1374,8 +1372,6 @@ impl MultivariateTpeSampler { bad_values: Vec, rng: &mut StdRng, ) -> f64 { - use rand::Rng; - use crate::kde::KernelDensityEstimator; // Transform to internal space (log space if needed) @@ -1568,8 +1564,6 @@ impl MultivariateTpeSampler { bad_indices: &[usize], rng: &mut rand::rngs::StdRng, ) -> usize { - use rand::Rng; - // Count occurrences in good and bad groups let mut good_counts = vec![0usize; n_choices]; let mut bad_counts = vec![0usize; n_choices]; @@ -2076,7 +2070,7 @@ impl MultivariateTpeSamplerBuilder { let rng = match self.seed { Some(s) => StdRng::seed_from_u64(s), - None => StdRng::from_os_rng(), + None => rand::make_rng(), }; Ok(MultivariateTpeSampler { diff --git a/src/sampler/tpe/sampler.rs b/src/sampler/tpe/sampler.rs index 7ead399..ad19d72 100644 --- a/src/sampler/tpe/sampler.rs +++ b/src/sampler/tpe/sampler.rs @@ -60,7 +60,7 @@ use std::sync::Arc; use parking_lot::Mutex; use rand::rngs::StdRng; -use rand::{Rng, SeedableRng}; +use rand::{RngExt, SeedableRng}; use crate::distribution::Distribution; use crate::error::{Error, Result}; @@ -149,7 +149,7 @@ impl TpeSampler { n_startup_trials: 10, n_ei_candidates: 24, kde_bandwidth: None, - rng: Mutex::new(StdRng::from_os_rng()), + rng: Mutex::new(rand::make_rng()), } } @@ -251,7 +251,7 @@ impl TpeSampler { let rng = match seed { Some(s) => StdRng::seed_from_u64(s), - None => StdRng::from_os_rng(), + None => rand::make_rng(), }; Ok(Self { @@ -857,7 +857,7 @@ impl TpeSamplerBuilder { let rng = match self.seed { Some(s) => StdRng::seed_from_u64(s), - None => StdRng::from_os_rng(), + None => rand::make_rng(), }; Ok(TpeSampler {