Skip to content

Commit 76e757e

Browse files
committed
QR, solveh
1 parent 17b3cd1 commit 76e757e

File tree

4 files changed

+86
-6
lines changed

4 files changed

+86
-6
lines changed

ndarray-linalg/Cargo.toml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,10 @@ harness = false
6262
name = "eigh"
6363
harness = false
6464

65+
[[bench]]
66+
name = "qr"
67+
harness = false
68+
6569
[[bench]]
6670
name = "svd"
6771
harness = false
@@ -70,5 +74,9 @@ harness = false
7074
name = "solve"
7175
harness = false
7276

77+
[[bench]]
78+
name = "solveh"
79+
harness = false
80+
7381
[package.metadata.docs.rs]
7482
rustdoc-args = ["--html-in-header", "katex-header.html"]

ndarray-linalg/benches/qr.rs

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
use criterion::*;
2+
use ndarray::*;
3+
use ndarray_linalg::*;
4+
5+
fn qr_small(c: &mut Criterion) {
6+
let mut group = c.benchmark_group("qr");
7+
for &n in &[4, 8, 16, 32, 64, 128] {
8+
group.bench_with_input(BenchmarkId::new("C", n), &n, |b, n| {
9+
let a: Array2<f64> = random((*n, *n));
10+
b.iter(|| {
11+
let _result = a.qr().unwrap();
12+
})
13+
});
14+
group.bench_with_input(BenchmarkId::new("F", n), &n, |b, n| {
15+
let a: Array2<f64> = random((*n, *n).f());
16+
b.iter(|| {
17+
let _result = a.qr().unwrap();
18+
})
19+
});
20+
}
21+
}
22+
23+
criterion_group!(qr, qr_small);
24+
criterion_main!(qr);

ndarray-linalg/benches/solve.rs

Lines changed: 18 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,23 +2,35 @@ use criterion::*;
22
use ndarray::*;
33
use ndarray_linalg::*;
44

5-
fn factorize_small(c: &mut Criterion) {
6-
let mut group = c.benchmark_group("factorize");
5+
fn solve_small(c: &mut Criterion) {
6+
let mut group = c.benchmark_group("solve");
77
for &n in &[4, 8, 16, 32, 64, 128] {
8-
group.bench_with_input(BenchmarkId::new("C", n), &n, |b, n| {
8+
group.bench_with_input(BenchmarkId::new("factorize/C", n), &n, |b, n| {
99
let a: Array2<f64> = random((*n, *n));
1010
b.iter(|| {
1111
let _lu = a.factorize().unwrap();
1212
})
1313
});
14-
group.bench_with_input(BenchmarkId::new("F", n), &n, |b, n| {
14+
group.bench_with_input(BenchmarkId::new("factorize/F", n), &n, |b, n| {
1515
let a: Array2<f64> = random((*n, *n).f());
1616
b.iter(|| {
1717
let _lu = a.factorize().unwrap();
1818
})
1919
});
20+
group.bench_with_input(BenchmarkId::new("inv/C", n), &n, |b, n| {
21+
let a: Array2<f64> = random((*n, *n));
22+
b.iter(|| {
23+
let _inv = a.inv().unwrap();
24+
})
25+
});
26+
group.bench_with_input(BenchmarkId::new("inv/F", n), &n, |b, n| {
27+
let a: Array2<f64> = random((*n, *n).f());
28+
b.iter(|| {
29+
let _inv = a.inv().unwrap();
30+
})
31+
});
2032
}
2133
}
2234

23-
criterion_group!(factorize, factorize_small);
24-
criterion_main!(factorize);
35+
criterion_group!(solve, solve_small);
36+
criterion_main!(solve);

ndarray-linalg/benches/solveh.rs

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
use criterion::*;
2+
use ndarray::*;
3+
use ndarray_linalg::*;
4+
5+
fn solveh_small(c: &mut Criterion) {
6+
let mut group = c.benchmark_group("solveh");
7+
for &n in &[4, 8, 16, 32, 64, 128] {
8+
group.bench_with_input(BenchmarkId::new("factorizeh/C", n), &n, |b, n| {
9+
let a: Array2<f64> = random((*n, *n));
10+
b.iter(|| {
11+
let _lu = a.factorizeh().unwrap();
12+
})
13+
});
14+
group.bench_with_input(BenchmarkId::new("factorizeh/F", n), &n, |b, n| {
15+
let a: Array2<f64> = random((*n, *n).f());
16+
b.iter(|| {
17+
let _lu = a.factorizeh().unwrap();
18+
})
19+
});
20+
group.bench_with_input(BenchmarkId::new("invh/C", n), &n, |b, n| {
21+
let a: Array2<f64> = random((*n, *n));
22+
b.iter(|| {
23+
let _inv = a.invh().unwrap();
24+
})
25+
});
26+
group.bench_with_input(BenchmarkId::new("invh/F", n), &n, |b, n| {
27+
let a: Array2<f64> = random((*n, *n).f());
28+
b.iter(|| {
29+
let _inv = a.invh().unwrap();
30+
})
31+
});
32+
}
33+
}
34+
35+
criterion_group!(solveh, solveh_small);
36+
criterion_main!(solveh);

0 commit comments

Comments
 (0)