Skip to content

Commit e9d7451

Browse files
committed
Use into_result
1 parent 06d6f76 commit e9d7451

File tree

2 files changed

+11
-19
lines changed

2 files changed

+11
-19
lines changed

src/impl2/qr.rs

Lines changed: 4 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@ use types::*;
88
use error::*;
99
use layout::Layout;
1010

11+
use super::into_result;
12+
1113
pub trait QR_: Sized {
1214
fn householder(Layout, a: &mut [Self]) -> Result<Vec<Self>>;
1315
fn q(Layout, a: &mut [Self], tau: &[Self]) -> Result<()>;
@@ -22,22 +24,14 @@ impl QR_ for $scalar {
2224
let k = min(row, col);
2325
let mut tau = vec![Self::zero(); k as usize];
2426
let info = $qrf(l.lapacke_layout(), row, col, &mut a, l.lda(), &mut tau);
25-
if info == 0 {
26-
Ok(tau)
27-
} else {
28-
Err(LapackError::new(info).into())
29-
}
27+
into_result(info, tau)
3028
}
3129

3230
fn q(l: Layout, mut a: &mut [Self], tau: &[Self]) -> Result<()> {
3331
let (row, col) = l.size();
3432
let k = min(row, col);
3533
let info = $gqr(l.lapacke_layout(), row, k, k, &mut a, l.lda(), &tau);
36-
if info == 0 {
37-
Ok(())
38-
} else {
39-
Err(LapackError::new(info).into())
40-
}
34+
into_result(info, ())
4135
}
4236

4337
fn qr(l: Layout, mut a: &mut [Self]) -> Result<Vec<Self>> {

src/impl2/svd.rs

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@ use types::*;
77
use error::*;
88
use layout::Layout;
99

10+
use super::into_result;
11+
1012
#[repr(u8)]
1113
enum FlagSVD {
1214
All = b'A',
@@ -46,15 +48,11 @@ impl SVD_ for $scalar {
4648
let mut s = vec![Self::Real::zero(); k as usize];
4749
let mut superb = vec![Self::Real::zero(); (k-2) as usize];
4850
let info = $gesvd(l.lapacke_layout(), ju as u8, jvt as u8, m, n, &mut a, lda, &mut s, &mut u, ldu, &mut vt, ldvt, &mut superb);
49-
if info == 0 {
50-
Ok(SVDOutput {
51-
s: s,
52-
u: if ldu > 0 { Some(u) } else { None },
53-
vt: if ldvt > 0 { Some(vt) } else { None },
54-
})
55-
} else {
56-
Err(LapackError::new(info).into())
57-
}
51+
into_result(info, SVDOutput {
52+
s: s,
53+
u: if ldu > 0 { Some(u) } else { None },
54+
vt: if ldvt > 0 { Some(vt) } else { None },
55+
})
5856
}
5957
}
6058

0 commit comments

Comments
 (0)