Skip to content

Commit 4fa1b2b

Browse files
committed
Explicit declaration of Float::exp and Float::abs
1 parent 356e2ab commit 4fa1b2b

File tree

6 files changed

+14
-16
lines changed

6 files changed

+14
-16
lines changed

ndarray-linalg/src/cholesky.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -102,14 +102,14 @@ where
102102
type Output = <A as Scalar>::Real;
103103

104104
fn detc(&self) -> Self::Output {
105-
self.ln_detc().exp()
105+
Float::exp(self.ln_detc())
106106
}
107107

108108
fn ln_detc(&self) -> Self::Output {
109109
self.factor
110110
.diag()
111111
.iter()
112-
.map(|elem| elem.square().ln())
112+
.map(|elem| Float::ln(elem.square()))
113113
.sum::<Self::Output>()
114114
}
115115
}
@@ -443,7 +443,7 @@ where
443443
type Output = Result<<A as Scalar>::Real>;
444444

445445
fn detc(&self) -> Self::Output {
446-
Ok(self.ln_detc()?.exp())
446+
Ok(Float::exp(self.ln_detc()?))
447447
}
448448

449449
fn ln_detc(&self) -> Self::Output {
@@ -459,7 +459,7 @@ where
459459
type Output = Result<<A as Scalar>::Real>;
460460

461461
fn detc_into(self) -> Self::Output {
462-
Ok(self.ln_detc_into()?.exp())
462+
Ok(Float::exp(self.ln_detc_into()?))
463463
}
464464

465465
fn ln_detc_into(self) -> Self::Output {

ndarray-linalg/src/solve.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -362,7 +362,7 @@ pub trait Determinant<A: Scalar> {
362362
/// Computes the determinant of the matrix.
363363
fn det(&self) -> Result<A> {
364364
let (sign, ln_det) = self.sln_det()?;
365-
Ok(sign * A::from_real(ln_det.exp()))
365+
Ok(sign * A::from_real(Float::exp(ln_det)))
366366
}
367367

368368
/// Computes the `(sign, natural_log)` of the determinant of the matrix.
@@ -387,7 +387,7 @@ pub trait DeterminantInto<A: Scalar>: Sized {
387387
/// Computes the determinant of the matrix.
388388
fn det_into(self) -> Result<A> {
389389
let (sign, ln_det) = self.sln_det_into()?;
390-
Ok(sign * A::from_real(ln_det.exp()))
390+
Ok(sign * A::from_real(Float::exp(ln_det)))
391391
}
392392

393393
/// Computes the `(sign, natural_log)` of the determinant of the matrix.
@@ -430,7 +430,7 @@ where
430430
let abs_elem: A::Real = elem.abs();
431431
(
432432
upper_sign * elem / A::from_real(abs_elem),
433-
ln_det + abs_elem.ln(),
433+
ln_det + Float::ln(abs_elem),
434434
)
435435
},
436436
);

ndarray-linalg/src/solveh.rs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -321,7 +321,7 @@ where
321321
let elem = unsafe { a.uget((k, k)) }.re();
322322
debug_assert_eq!(elem.im(), Zero::zero());
323323
sign *= elem.signum();
324-
ln_det += elem.abs().ln();
324+
ln_det += Float::ln(Float::abs(elem));
325325
} else {
326326
// 2x2 block at k..k+2.
327327

@@ -348,7 +348,7 @@ where
348348
// Determinant of 2x2 block.
349349
let block_det = upper_diag * lower_diag - off_diag.square();
350350
sign *= block_det.signum();
351-
ln_det += block_det.abs().ln();
351+
ln_det += Float::ln(Float::abs(block_det));
352352

353353
// Skip the k+1 ipiv value.
354354
ipiv_enum.next();
@@ -366,7 +366,7 @@ where
366366
/// symmetric) matrix.
367367
pub fn deth(&self) -> A::Real {
368368
let (sign, ln_det) = self.sln_deth();
369-
sign * ln_det.exp()
369+
sign * Float::exp(ln_det)
370370
}
371371

372372
/// Computes the `(sign, natural_log)` of the determinant of the factorized
@@ -390,7 +390,7 @@ where
390390
/// symmetric) matrix.
391391
pub fn deth_into(self) -> A::Real {
392392
let (sign, ln_det) = self.sln_deth_into();
393-
sign * ln_det.exp()
393+
sign * Float::exp(ln_det)
394394
}
395395

396396
/// Computes the `(sign, natural_log)` of the determinant of the factorized
@@ -420,7 +420,7 @@ where
420420

421421
fn deth(&self) -> Result<A::Real> {
422422
let (sign, ln_det) = self.sln_deth()?;
423-
Ok(sign * ln_det.exp())
423+
Ok(sign * Float::exp(ln_det))
424424
}
425425

426426
fn sln_deth(&self) -> Result<(A::Real, A::Real)> {
@@ -445,7 +445,7 @@ where
445445

446446
fn deth_into(self) -> Result<A::Real> {
447447
let (sign, ln_det) = self.sln_deth_into()?;
448-
Ok(sign * ln_det.exp())
448+
Ok(sign * Float::exp(ln_det))
449449
}
450450

451451
fn sln_deth_into(self) -> Result<(A::Real, A::Real)> {

ndarray-linalg/tests/det.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,7 @@ fn det() {
110110
{
111111
let det = det_naive(&a);
112112
let sign = det.div_real(det.abs());
113-
let ln_det = det.abs().ln();
113+
let ln_det = Float::ln(det.abs());
114114
assert_rclose!(a.factorize().unwrap().det().unwrap(), det, rtol);
115115
{
116116
let result = a.factorize().unwrap().sln_det().unwrap();

ndarray-linalg/tests/opnorm.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
use ndarray::*;
22
use ndarray_linalg::*;
3-
use num_traits::Float;
43

54
fn test(a: Array2<f64>, one: f64, inf: f64, fro: f64) {
65
println!("ONE = {:?}", a.opnorm_one());

ndarray-linalg/tests/vector.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
use ndarray::*;
22
use ndarray_linalg::*;
3-
use num_traits::Float;
43

54
#[test]
65
fn vector_norm() {

0 commit comments

Comments
 (0)