2727//! * `sample_with_rng`: Extract samples with specific rng
2828//! * `pdf` : Calculate pdf value at specific point
2929//! ```no_run
30- //! use rand::{Rng, distributions::uniform::SampleUniform};
30+ //! use rand::Rng;
31+ //! use rand_distr::uniform::SampleUniform;
3132//! pub trait RNG {
3233//! /// Extract samples of distributions
3334//! fn sample(&self, n: usize) -> Vec<f64>;
228229
229230extern crate rand;
230231extern crate rand_distr;
231- use rand_distr:: WeightedAliasIndex ;
232+ use rand_distr:: weighted :: WeightedAliasIndex ;
232233
233- use self :: rand :: distributions :: uniform:: SampleUniform ;
234+ use self :: rand_distr :: uniform:: SampleUniform ;
234235use self :: rand:: prelude:: * ;
235236pub use self :: OPDist :: * ;
236237pub use self :: TPDist :: * ;
@@ -521,7 +522,7 @@ impl<T: PartialOrd + SampleUniform + Copy + Into<f64>> ParametricDist for Weight
521522pub trait RNG {
522523 /// Extract samples of distributions
523524 fn sample ( & self , n : usize ) -> Vec < f64 > {
524- let mut rng = thread_rng ( ) ;
525+ let mut rng = rand :: rng ( ) ;
525526 self . sample_with_rng ( & mut rng, n)
526527 }
527528
@@ -554,7 +555,7 @@ impl<T: PartialOrd + SampleUniform + Copy + Into<f64>> RNG for OPDist<T> {
554555 let mut v = vec ! [ 0f64 ; n] ;
555556
556557 for i in 0 ..n {
557- let uniform = rng. gen_range ( 0f64 ..=1f64 ) ;
558+ let uniform = rng. random_range ( 0f64 ..=1f64 ) ;
558559 if uniform <= ( * prob) . into ( ) {
559560 v[ i] = 1f64 ;
560561 } else {
@@ -628,7 +629,7 @@ impl<T: PartialOrd + SampleUniform + Copy + Into<f64>> RNG for TPDist<T> {
628629 let mut v = vec ! [ 0f64 ; n] ;
629630
630631 for i in 0 ..n {
631- v[ i] = rng. gen_range ( * start..=* end) . into ( ) ;
632+ v[ i] = rng. random_range ( * start..=* end) . into ( ) ;
632633 }
633634 v
634635 }
@@ -643,7 +644,7 @@ impl<T: PartialOrd + SampleUniform + Copy + Into<f64>> RNG for TPDist<T> {
643644 normal. sample_iter ( rng) . take ( n) . collect ( )
644645 }
645646 // Normal(m, s) => {
646- // let mut rng = thread_rng ();
647+ // let mut rng = rand::rng ();
647648 // let mut v = vec![0f64; n];
648649 //
649650 // for i in 0..n {
@@ -656,8 +657,8 @@ impl<T: PartialOrd + SampleUniform + Copy + Into<f64>> RNG for TPDist<T> {
656657 beta. sample_iter ( rng) . take ( n) . collect ( )
657658 }
658659 // Beta(a, b) => {
659- // let mut rng1 = thread_rng ();
660- // let mut rng2 = thread_rng ();
660+ // let mut rng1 = rand::rng ();
661+ // let mut rng2 = rand::rng ();
661662 // let mut v = vec![0f64; n];
662663 //
663664 // let a_f64 = (*a).into();
@@ -670,8 +671,8 @@ impl<T: PartialOrd + SampleUniform + Copy + Into<f64>> RNG for TPDist<T> {
670671 // let mut iter_num = 0usize;
671672 //
672673 // while iter_num < n {
673- // let u1 = rng1.gen_range (0f64, 1f64);
674- // let u2 = rng2.gen_range (0f64, 1f64);
674+ // let u1 = rng1.random_range (0f64, 1f64);
675+ // let u2 = rng2.random_range (0f64, 1f64);
675676 //
676677 // if u2 <= 1f64 / c * self.pdf(u1) {
677678 // v[iter_num] = u1;
@@ -692,14 +693,14 @@ impl<T: PartialOrd + SampleUniform + Copy + Into<f64>> RNG for TPDist<T> {
692693 // let d = a_f64 - 1f64 / 3f64;
693694 // let c = 1f64 / (9f64 * d).sqrt();
694695 //
695- // let mut rng1 = thread_rng ();
696- // let mut rng2 = thread_rng ();
696+ // let mut rng1 = rand::rng ();
697+ // let mut rng2 = rand::rng ();
697698 //
698699 // let mut v = vec![0f64; n];
699700 // let mut iter_num = 0usize;
700701 //
701702 // while iter_num < n {
702- // let u = rng1.gen_range (0f64, 1f64);
703+ // let u = rng1.random_range (0f64, 1f64);
703704 // let z = ziggurat(&mut rng2, 1f64);
704705 // let w = (1f64 + c * z).powi(3);
705706 //
@@ -804,7 +805,7 @@ impl RNG for WeightedUniform<f64> {
804805 ics. into_iter ( )
805806 . map ( |idx| {
806807 let ( l, r) = self . intervals [ idx] ;
807- rng. gen_range ( l..=r)
808+ rng. random_range ( l..=r)
808809 } )
809810 . collect :: < Vec < f64 > > ( )
810811 }
0 commit comments