Skip to content

Commit 256e5f7

Browse files
committed
Workaround for issue with ndarray_linalg trace()
1 parent 1e4ee3e commit 256e5f7

File tree

1 file changed

+7
-2
lines changed

1 file changed

+7
-2
lines changed

ndarray-linalg/src/trace.rs

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ use ndarray::*;
44
use std::iter::Sum;
55

66
use super::error::*;
7-
use super::layout::*;
87
use super::types::*;
98

109
pub trait Trace {
@@ -20,7 +19,13 @@ where
2019
type Output = A;
2120

2221
fn trace(&self) -> Result<Self::Output> {
23-
let (n, _) = self.square_layout()?.size();
22+
let n = match self.is_square() {
23+
true => Ok(self.nrows()),
24+
false => Err(LinalgError::NotSquare {
25+
rows: self.nrows() as i32,
26+
cols: self.ncols() as i32,
27+
}),
28+
}?;
2429
Ok((0..n as usize).map(|i| self[(i, i)]).sum())
2530
}
2631
}

0 commit comments

Comments
 (0)