Skip to content

Commit 31a3f72

Browse files
committed
Drop random_{vector,matrix,square}
1 parent 91266e4 commit 31a3f72

File tree

3 files changed

+37
-63
lines changed

3 files changed

+37
-63
lines changed

src/generate.rs

Lines changed: 7 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -29,40 +29,16 @@ pub fn random<A, S, Sh, D>(sh: Sh) -> ArrayBase<S, D>
2929
ArrayBase::from_shape_fn(sh, |_| A::randn(&mut rng))
3030
}
3131

32-
/// Random vector
33-
pub fn random_vector<A, S>(n: usize) -> ArrayBase<S, Ix1>
34-
where A: RandNormal,
35-
S: DataOwned<Elem = A>
36-
{
37-
let mut rng = thread_rng();
38-
let v: Vec<A> = (0..n).map(|_| A::randn(&mut rng)).collect();
39-
ArrayBase::from_vec(v)
40-
}
41-
42-
/// Random matrix
43-
pub fn random_matrix<A, S>(n: usize, m: usize) -> ArrayBase<S, Ix2>
44-
where A: RandNormal,
45-
S: DataOwned<Elem = A>
46-
{
47-
let mut rng = thread_rng();
48-
let v: Vec<A> = (0..n * m).map(|_| A::randn(&mut rng)).collect();
49-
ArrayBase::from_shape_vec((n, m), v).unwrap()
50-
}
51-
52-
/// Random square matrix
53-
pub fn random_square<A, S>(n: usize) -> ArrayBase<S, Ix2>
54-
where A: RandNormal,
55-
S: DataOwned<Elem = A>
56-
{
57-
random_matrix(n, n)
58-
}
59-
6032
/// Random Hermite matrix
61-
pub fn random_hermite<A, S>(n: usize) -> ArrayBase<S, Ix2>
33+
pub fn random_hermite<A, S>(n: usize, c_order: bool) -> ArrayBase<S, Ix2>
6234
where A: RandNormal + Conjugate + Add<Output = A>,
6335
S: DataOwned<Elem = A> + DataMut
6436
{
65-
let mut a = random_square(n);
37+
let mut a = if c_order {
38+
random((n, n))
39+
} else {
40+
random((n, n).f())
41+
};
6642
for i in 0..n {
6743
a[(i, i)] = a[(i, i)] + Conjugate::conj(a[(i, i)]);
6844
for j in (i + 1)..n {
@@ -77,7 +53,7 @@ pub fn random_hpd<A, S>(n: usize) -> ArrayBase<S, Ix2>
7753
where A: RandNormal + Conjugate + LinalgScalar,
7854
S: DataOwned<Elem = A> + DataMut
7955
{
80-
let a: Array2<A> = random_square(n);
56+
let a: Array2<A> = random((n, n));
8157
let ah: Array2<A> = conjugate(&a);
8258
replicate(&ah.dot(&a))
8359
}

tests/qr.rs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,10 @@
22
extern crate ndarray;
33
#[macro_use]
44
extern crate ndarray_linalg;
5-
extern crate num_traits;
65

76
use std::cmp::min;
87
use ndarray::*;
98
use ndarray_linalg::*;
10-
use num_traits::Float;
119

1210
fn test(a: Array2<f64>, n: usize, m: usize) {
1311
let ans = a.clone();

tests/triangular.rs

Lines changed: 30 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -40,87 +40,87 @@ fn test2d<A, Sa, Sb, Tol>(uplo: UPLO, a: ArrayBase<Sa, Ix2>, b: ArrayBase<Sb, Ix
4040
#[test]
4141
fn triangular_1d_upper() {
4242
let n = 3;
43-
let b: Array1<f64> = random_vector(n);
44-
let a: Array2<f64> = random_square(n).into_triangular(UPLO::Upper);
43+
let b: Array1<f64> = random(n);
44+
let a: Array2<f64> = random((n, n)).into_triangular(UPLO::Upper);
4545
test1d(UPLO::Upper, a, b, 1e-7);
4646
}
4747

4848
#[test]
4949
fn triangular_1d_lower() {
5050
let n = 3;
51-
let b: Array1<f64> = random_vector(n);
52-
let a: Array2<f64> = random_square(n).into_triangular(UPLO::Lower);
51+
let b: Array1<f64> = random(n);
52+
let a: Array2<f64> = random((n, n)).into_triangular(UPLO::Lower);
5353
test1d(UPLO::Lower, a, b, 1e-7);
5454
}
5555

5656
#[test]
57-
fn triangular_1d_lower_t() {
57+
fn triangular_1d_upper_t() {
5858
let n = 3;
59-
let b: Array1<f64> = random_vector(n);
60-
let a: Array2<f64> = random_square(n).into_triangular(UPLO::Lower).reversed_axes();
59+
let b: Array1<f64> = random(n);
60+
let a: Array2<f64> = random((n, n).f()).into_triangular(UPLO::Upper);
6161
test1d(UPLO::Upper, a, b, 1e-7);
6262
}
6363

6464
#[test]
65-
fn triangular_1d_upper_t() {
65+
fn triangular_1d_lower_t() {
6666
let n = 3;
67-
let b: Array1<f64> = random_vector(n);
68-
let a: Array2<f64> = random_square(n).into_triangular(UPLO::Upper).reversed_axes();
67+
let b: Array1<f64> = random(n);
68+
let a: Array2<f64> = random((n, n).f()).into_triangular(UPLO::Lower);
6969
test1d(UPLO::Lower, a, b, 1e-7);
7070
}
7171

7272
#[test]
7373
fn triangular_2d_upper() {
74-
let b: Array2<f64> = random_matrix(3, 4);
75-
let a: Array2<f64> = random_square(3).into_triangular(UPLO::Upper);
74+
let b: Array2<f64> = random((3, 4));
75+
let a: Array2<f64> = random((3, 3)).into_triangular(UPLO::Upper);
7676
test2d(UPLO::Upper, a, b, 1e-7);
7777
}
7878

7979
#[test]
8080
fn triangular_2d_lower() {
81-
let b: Array2<f64> = random_matrix(3, 4);
82-
let a: Array2<f64> = random_square(3).into_triangular(UPLO::Lower);
81+
let b: Array2<f64> = random((3, 4));
82+
let a: Array2<f64> = random((3, 3)).into_triangular(UPLO::Lower);
8383
test2d(UPLO::Lower, a, b, 1e-7);
8484
}
8585

8686
#[test]
8787
fn triangular_2d_lower_t() {
88-
let b: Array2<f64> = random_matrix(3, 4);
89-
let a: Array2<f64> = random_square(3).into_triangular(UPLO::Lower).reversed_axes();
90-
test2d(UPLO::Upper, a, b, 1e-7);
88+
let b: Array2<f64> = random((3, 4));
89+
let a: Array2<f64> = random((3, 3).f()).into_triangular(UPLO::Lower);
90+
test2d(UPLO::Lower, a, b, 1e-7);
9191
}
9292

9393
#[test]
9494
fn triangular_2d_upper_t() {
95-
let b: Array2<f64> = random_matrix(3, 4);
96-
let a: Array2<f64> = random_square(3).into_triangular(UPLO::Upper).reversed_axes();
97-
test2d(UPLO::Lower, a, b, 1e-7);
95+
let b: Array2<f64> = random((3, 4));
96+
let a: Array2<f64> = random((3, 3).f()).into_triangular(UPLO::Upper);
97+
test2d(UPLO::Upper, a, b, 1e-7);
9898
}
9999

100100
#[test]
101101
fn triangular_2d_upper_bt() {
102-
let b: Array2<f64> = random_matrix(4, 3).reversed_axes();
103-
let a: Array2<f64> = random_square(3).into_triangular(UPLO::Upper);
102+
let b: Array2<f64> = random((3, 4).f());
103+
let a: Array2<f64> = random((3, 3)).into_triangular(UPLO::Upper);
104104
test2d(UPLO::Upper, a, b, 1e-7);
105105
}
106106

107107
#[test]
108108
fn triangular_2d_lower_bt() {
109-
let b: Array2<f64> = random_matrix(4, 3).reversed_axes();
110-
let a: Array2<f64> = random_square(3).into_triangular(UPLO::Lower);
109+
let b: Array2<f64> = random((3, 4).f());
110+
let a: Array2<f64> = random((3, 3)).into_triangular(UPLO::Lower);
111111
test2d(UPLO::Lower, a, b, 1e-7);
112112
}
113113

114114
#[test]
115115
fn triangular_2d_lower_t_bt() {
116-
let b: Array2<f64> = random_matrix(4, 3).reversed_axes();
117-
let a: Array2<f64> = random_square(3).into_triangular(UPLO::Lower).reversed_axes();
118-
test2d(UPLO::Upper, a, b, 1e-7);
116+
let b: Array2<f64> = random((3, 4).f());
117+
let a: Array2<f64> = random((3, 3).f()).into_triangular(UPLO::Lower);
118+
test2d(UPLO::Lower, a, b, 1e-7);
119119
}
120120

121121
#[test]
122122
fn triangular_2d_upper_t_bt() {
123-
let b: Array2<f64> = random_matrix(4, 3).reversed_axes();
124-
let a: Array2<f64> = random_square(3).into_triangular(UPLO::Upper).reversed_axes();
125-
test2d(UPLO::Lower, a, b, 1e-7);
123+
let b: Array2<f64> = random((3, 4).f());
124+
let a: Array2<f64> = random((3, 3).f()).into_triangular(UPLO::Upper);
125+
test2d(UPLO::Upper, a, b, 1e-7);
126126
}

0 commit comments

Comments
 (0)