@@ -12,10 +12,6 @@ use num_traits::NumCast;
12
12
use rand:: Rng ;
13
13
use std:: iter:: Sum ;
14
14
15
- #[ cfg( feature = "rand_xoshiro" ) ]
16
- use rand_xoshiro:: { rand_core:: SeedableRng , Xoshiro256Plus } ;
17
- //#[cfg(feature="rand_xoshiro")]
18
-
19
15
#[ derive( Debug , Clone ) ]
20
16
/// Truncated eigenproblem solver
21
17
///
@@ -29,11 +25,13 @@ use rand_xoshiro::{rand_core::SeedableRng, Xoshiro256Plus};
29
25
/// ```rust
30
26
/// use ndarray::{arr1, Array2};
31
27
/// use ndarray_linalg_rs::{Order, lobpcg::TruncatedEig};
28
+ /// use rand::SeedableRng;
29
+ /// use rand_xoshiro::Xoshiro256Plus;
32
30
///
33
31
/// let diag = arr1(&[1., 2., 3., 4., 5.]);
34
32
/// let a = Array2::from_diag(&diag);
35
33
///
36
- /// let mut eig = TruncatedEig::new_from_seed (a, Order::Largest, 42 )
34
+ /// let mut eig = TruncatedEig::new_with_rng (a, Order::Largest, Xoshiro256Plus::seed_from_u64(42) )
37
35
/// .precision(1e-5)
38
36
/// .maxiter(500);
39
37
///
@@ -49,22 +47,6 @@ pub struct TruncatedEig<A: NdFloat, R: Rng> {
49
47
rng : R ,
50
48
}
51
49
52
- #[ cfg( feature = "rand_xoshiro" ) ]
53
- impl < A : NdFloat + Sum > TruncatedEig < A , Xoshiro256Plus > {
54
- /// Create a new truncated eigenproblem solver
55
- ///
56
- /// # Properties
57
- /// * `problem`: problem matrix
58
- /// * `order`: ordering of the eigenvalues with [Order](crate::Order)
59
- pub fn new_from_seed (
60
- problem : Array2 < A > ,
61
- order : Order ,
62
- seed : u64 ,
63
- ) -> TruncatedEig < A , Xoshiro256Plus > {
64
- Self :: new_with_rng ( problem, order, Xoshiro256Plus :: seed_from_u64 ( seed) )
65
- }
66
- }
67
-
68
50
impl < A : NdFloat + Sum , R : Rng > TruncatedEig < A , R > {
69
51
/// Create a new truncated eigenproblem solver
70
52
///
@@ -141,11 +123,13 @@ impl<A: NdFloat + Sum, R: Rng> TruncatedEig<A, R> {
141
123
/// ```rust
142
124
/// use ndarray::{arr1, Array2};
143
125
/// use ndarray_linalg_rs::{Order, lobpcg::TruncatedEig};
126
+ /// use rand::SeedableRng;
127
+ /// use rand_xoshiro::Xoshiro256Plus;
144
128
///
145
129
/// let diag = arr1(&[1., 2., 3., 4., 5.]);
146
130
/// let a = Array2::from_diag(&diag);
147
131
///
148
- /// let mut eig = TruncatedEig::new_from_seed (a, Order::Largest, 42 )
132
+ /// let mut eig = TruncatedEig::new_with_rng (a, Order::Largest, Xoshiro256Plus::seed_from_u64(42) )
149
133
/// .precision(1e-5)
150
134
/// .maxiter(500);
151
135
///
@@ -217,11 +201,13 @@ impl<A: NdFloat + Sum, R: Rng> TruncatedEig<A, R> {
217
201
/// ```rust
218
202
/// use ndarray::{arr1, Array2};
219
203
/// use ndarray_linalg_rs::{Order, lobpcg::TruncatedEig};
204
+ /// use rand::SeedableRng;
205
+ /// use rand_xoshiro::Xoshiro256Plus;
220
206
///
221
207
/// let diag = arr1(&[1., 2., 3., 4., 5.]);
222
208
/// let a = Array2::from_diag(&diag);
223
209
///
224
- /// let teig = TruncatedEig::new_from_seed (a, Order::Largest, 42 )
210
+ /// let teig = TruncatedEig::new_with_rng (a, Order::Largest, Xoshiro256Plus::seed_from_u64(42) )
225
211
/// .precision(1e-5)
226
212
/// .maxiter(500);
227
213
///
@@ -306,11 +292,13 @@ impl<A: NdFloat + Sum, R: Rng> Iterator for TruncatedEigIterator<A, R> {
306
292
}
307
293
}
308
294
309
- #[ cfg( all ( test, feature = "rand_xoshiro" ) ) ]
295
+ #[ cfg( test) ]
310
296
mod tests {
311
297
use super :: Order ;
312
298
use super :: TruncatedEig ;
313
299
use ndarray:: { arr1, Array2 } ;
300
+ use rand:: SeedableRng ;
301
+ use rand_xoshiro:: Xoshiro256Plus ;
314
302
315
303
#[ test]
316
304
fn test_truncated_eig ( ) {
@@ -320,7 +308,7 @@ mod tests {
320
308
] ) ;
321
309
let a = Array2 :: from_diag ( & diag) ;
322
310
323
- let teig = TruncatedEig :: new_from_seed ( a, Order :: Largest , 42 )
311
+ let teig = TruncatedEig :: new_with_rng ( a, Order :: Largest , Xoshiro256Plus :: seed_from_u64 ( 42 ) )
324
312
. precision ( 1e-5 )
325
313
. maxiter ( 500 ) ;
326
314
0 commit comments