Skip to content

Commit e5ea6e2

Browse files
committed
Drop old opnorm
1 parent c0b58ed commit e5ea6e2

File tree

5 files changed

+6
-74
lines changed

5 files changed

+6
-74
lines changed

src/impls/mod.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,5 @@ pub mod outer;
33
pub mod qr;
44
pub mod svd;
55
pub mod eigh;
6-
pub mod opnorm;
76
pub mod solve;
87
pub mod cholesky;

src/impls/opnorm.rs

Lines changed: 0 additions & 27 deletions
This file was deleted.

src/matrix.rs

Lines changed: 2 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,10 @@ use lapack::c::Layout;
88
use super::error::{LinalgError, StrideError};
99
use super::impls::qr::ImplQR;
1010
use super::impls::svd::ImplSVD;
11-
use super::impls::opnorm::ImplOpNorm;
1211
use super::impls::solve::ImplSolve;
1312

14-
pub trait MFloat: ImplQR + ImplSVD + ImplOpNorm + ImplSolve + NdFloat {}
15-
impl<A: ImplQR + ImplSVD + ImplOpNorm + ImplSolve + NdFloat> MFloat for A {}
13+
pub trait MFloat: ImplQR + ImplSVD + ImplSolve + NdFloat {}
14+
impl<A: ImplQR + ImplSVD + ImplSolve + NdFloat> MFloat for A {}
1615

1716
/// Methods for general matrices
1817
pub trait Matrix: Sized {
@@ -23,12 +22,6 @@ pub trait Matrix: Sized {
2322
fn size(&self) -> (usize, usize);
2423
/// Layout (C/Fortran) of matrix
2524
fn layout(&self) -> Result<Layout, StrideError>;
26-
/// Operator norm for L-1 norm
27-
fn opnorm_1(&self) -> Self::Scalar;
28-
/// Operator norm for L-inf norm
29-
fn opnorm_i(&self) -> Self::Scalar;
30-
/// Frobenius norm
31-
fn opnorm_f(&self) -> Self::Scalar;
3225
/// singular-value decomposition (SVD)
3326
fn svd(self) -> Result<(Self, Self::Vector, Self), LinalgError>;
3427
/// QR decomposition
@@ -84,28 +77,6 @@ impl<A: MFloat> Matrix for Array<A, Ix2> {
8477
fn layout(&self) -> Result<Layout, StrideError> {
8578
check_layout(self.strides())
8679
}
87-
fn opnorm_1(&self) -> Self::Scalar {
88-
let (m, n) = self.size();
89-
let strides = self.strides();
90-
if strides[0] > strides[1] {
91-
ImplOpNorm::opnorm_i(n, m, self.clone().into_raw_vec())
92-
} else {
93-
ImplOpNorm::opnorm_1(m, n, self.clone().into_raw_vec())
94-
}
95-
}
96-
fn opnorm_i(&self) -> Self::Scalar {
97-
let (m, n) = self.size();
98-
let strides = self.strides();
99-
if strides[0] > strides[1] {
100-
ImplOpNorm::opnorm_1(n, m, self.clone().into_raw_vec())
101-
} else {
102-
ImplOpNorm::opnorm_i(m, n, self.clone().into_raw_vec())
103-
}
104-
}
105-
fn opnorm_f(&self) -> Self::Scalar {
106-
let (m, n) = self.size();
107-
ImplOpNorm::opnorm_f(m, n, self.clone().into_raw_vec())
108-
}
10980
fn svd(self) -> Result<(Self, Self::Vector, Self), LinalgError> {
11081
let (n, m) = self.size();
11182
let layout = self.layout()?;
@@ -192,18 +163,6 @@ impl<A: MFloat> Matrix for RcArray<A, Ix2> {
192163
fn layout(&self) -> Result<Layout, StrideError> {
193164
check_layout(self.strides())
194165
}
195-
fn opnorm_1(&self) -> Self::Scalar {
196-
// XXX unnecessary clone
197-
self.to_owned().opnorm_1()
198-
}
199-
fn opnorm_i(&self) -> Self::Scalar {
200-
// XXX unnecessary clone
201-
self.to_owned().opnorm_i()
202-
}
203-
fn opnorm_f(&self) -> Self::Scalar {
204-
// XXX unnecessary clone
205-
self.to_owned().opnorm_f()
206-
}
207166
fn svd(self) -> Result<(Self, Self::Vector, Self), LinalgError> {
208167
let (u, s, v) = self.into_owned().svd()?;
209168
Ok((u.into_shared(), s.into_shared(), v.into_shared()))

src/prelude.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,3 +5,4 @@ pub use hermite::HermiteMatrix;
55
pub use triangular::*;
66
pub use util::*;
77
pub use assert::*;
8+
pub use traits::*;

tests/opnorm.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,9 @@ macro_rules! impl_test {
55
#[test]
66
fn $funcname() {
77
let a = $a;
8-
assert_rclose!(a.opnorm_1(), $op1, 1e-7);
9-
assert_rclose!(a.opnorm_i(), $opi, 1e-7);
10-
assert_rclose!(a.opnorm_f(), $opf, 1e-7);
8+
assert_rclose!(a.opnorm_one().unwrap(), $op1, 1e-7);
9+
assert_rclose!(a.opnorm_inf().unwrap(), $opi, 1e-7);
10+
assert_rclose!(a.opnorm_fro().unwrap(), $opf, 1e-7);
1111
}
1212
}} // impl_test
1313

0 commit comments

Comments
 (0)