Skip to content

Commit 4ea4f36

Browse files
committed
Fix RNG for testing LOBPCG
1 parent 36a0276 commit 4ea4f36

File tree

2 files changed

+14
-7
lines changed

2 files changed

+14
-7
lines changed

ndarray-linalg/src/lobpcg/lobpcg.rs

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -460,7 +460,8 @@ mod tests {
460460
/// Test the `sorted_eigen` function
461461
#[test]
462462
fn test_sorted_eigen() {
463-
let matrix: Array2<f64> = generate::random((10, 10)) * 10.0;
463+
let mut rng = rand_pcg::Mcg128Xsl64::new(0xcafef00dd15ea5e5);
464+
let matrix: Array2<f64> = generate::random_using((10, 10), &mut rng) * 10.0;
464465
let matrix = matrix.t().dot(&matrix);
465466

466467
// return all eigenvectors with largest first
@@ -476,7 +477,8 @@ mod tests {
476477
/// Test the masking function
477478
#[test]
478479
fn test_masking() {
479-
let matrix: Array2<f64> = generate::random((10, 5)) * 10.0;
480+
let mut rng = rand_pcg::Mcg128Xsl64::new(0xcafef00dd15ea5e5);
481+
let matrix: Array2<f64> = generate::random_using((10, 5), &mut rng) * 10.0;
480482
let masked_matrix = ndarray_mask(matrix.view(), &[true, true, false, true, false]);
481483
close_l2(
482484
&masked_matrix.slice(s![.., 2]),
@@ -488,7 +490,8 @@ mod tests {
488490
/// Test orthonormalization of a random matrix
489491
#[test]
490492
fn test_orthonormalize() {
491-
let matrix: Array2<f64> = generate::random((10, 10)) * 10.0;
493+
let mut rng = rand_pcg::Mcg128Xsl64::new(0xcafef00dd15ea5e5);
494+
let matrix: Array2<f64> = generate::random_using((10, 10), &mut rng) * 10.0;
492495

493496
let (n, l) = orthonormalize(matrix.clone()).unwrap();
494497

@@ -509,7 +512,8 @@ mod tests {
509512
assert_symmetric(a);
510513

511514
let n = a.len_of(Axis(0));
512-
let x: Array2<f64> = generate::random((n, num));
515+
let mut rng = rand_pcg::Mcg128Xsl64::new(0xcafef00dd15ea5e5);
516+
let x: Array2<f64> = generate::random_using((n, num), &mut rng);
513517

514518
let result = lobpcg(|y| a.dot(&y), x, |_| {}, None, 1e-5, n * 2, order);
515519
match result {
@@ -553,7 +557,8 @@ mod tests {
553557
#[test]
554558
fn test_eigsolver_constructed() {
555559
let n = 50;
556-
let tmp = generate::random((n, n));
560+
let mut rng = rand_pcg::Mcg128Xsl64::new(0xcafef00dd15ea5e5);
561+
let tmp = generate::random_using((n, n), &mut rng);
557562
//let (v, _) = tmp.qr_square().unwrap();
558563
let (v, _) = orthonormalize(tmp).unwrap();
559564

@@ -570,7 +575,8 @@ mod tests {
570575
fn test_eigsolver_constrained() {
571576
let diag = arr1(&[1., 2., 3., 4., 5., 6., 7., 8., 9., 10.]);
572577
let a = Array2::from_diag(&diag);
573-
let x: Array2<f64> = generate::random((10, 1));
578+
let mut rng = rand_pcg::Mcg128Xsl64::new(0xcafef00dd15ea5e5);
579+
let x: Array2<f64> = generate::random_using((10, 1), &mut rng);
574580
let y: Array2<f64> = arr2(&[
575581
[1.0, 0., 0., 0., 0., 0., 0., 0., 0., 0.],
576582
[0., 1.0, 0., 0., 0., 0., 0., 0., 0., 0.],

ndarray-linalg/src/lobpcg/svd.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -214,7 +214,8 @@ mod tests {
214214

215215
#[test]
216216
fn test_truncated_svd_random() {
217-
let a: Array2<f64> = generate::random((50, 10));
217+
let mut rng = rand_pcg::Mcg128Xsl64::new(0xcafef00dd15ea5e5);
218+
let a: Array2<f64> = generate::random_using((50, 10), &mut rng);
218219

219220
let res = TruncatedSvd::new(a.clone(), Order::Largest)
220221
.precision(1e-5)

0 commit comments

Comments
 (0)