InverseHInto returns incorrect results for row major arrays
还没有人认领这个 Issue。
评估
调研方向
Reproduce the provided Rust example and inspect the invh_into entry point, especially its handling after the LAPACK routine and the triangular portion copied for row-major arrays. Done means the row-major example returns the expected matrix while the reversed-axes case continues to pass.
由索引模型根据 Issue 内容生成。
描述
This example
use approx::assert_abs_diff_eq;
use ndarray::*;
use ndarray_linalg::*;
fn main() {
let arr = array![[1., 3.], [3., 1.]];
assert_abs_diff_eq!(
arr.invh_into().unwrap(),
array![[-0.125, 0.375], [0.375, -0.125]],
epsilon = 1e-9,
);
}
fails with the following message
thread 'main' panicked at 'assert_abs_diff_eq!(arr.invh_into().unwrap(), array![[- 0.125, 0.375], [0.375, - 0.125]], epsilon = 1e-9)
left = [[-0.125, 3.0],
[3.0, -0.125]], shape=[2, 2], strides=[2, 1], layout=Cc (0x5), const ndim=2
right = [[-0.125, 0.375],
[0.375, -0.125]], shape=[2, 2], strides=[2, 1], layout=Cc (0x5), const ndim=2
It seems that invh_into is copying the incorrect triangular portion to overwrite the other triangular portion of the matrix after calling the LAPACK routine. This bug is layout-dependent. Changing arr in the example to array![[1., 3.], [3., 1.]].reversed_axes() causes the assertion to pass.
- 主要语言
- Rust
- 星标
- 452
- 派生
- 95
- PR 合并指标
- 30 天内没有已合并 PR
贡献指南
这个仓库没有索引到贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
rust-ndarray/ndarray-linalg 的其他 Issue
-
Thin SVD 未关闭
难度 5/5 一周以上 新手友好度 38/100
rust-ndarray/ndarray-linalg#414 ·
-
难度 5/5 一周以上 新手友好度 30/100
rust-ndarray/ndarray-linalg#413 · 1 条评论 ·
-
难度 5/5 一周以上 新手友好度 25/100
rust-ndarray/ndarray-linalg#404 ·
-
难度 4/5 3-5 天 新手友好度 35/100
rust-ndarray/ndarray-linalg#402 · 1 条评论 ·
-
难度 4/5 3-5 天 新手友好度 35/100
rust-ndarray/ndarray-linalg#401 · 2 个 reaction ·
查看 rust-ndarray/ndarray-linalg 的全部 Issue
相似的 Issue
-
难度 2/5 1-3 小时 新手友好度 75/100
TheLarkInn/aipm#2413 ·
-
documentation
难度 1/5 1 小时以内 新手友好度 90/100
alexgorbatchev/simple-ptt#15 ·
-
tooling
难度 2/5 1-3 小时 新手友好度 75/100
-
todo:ticket
难度 2/5 1-3 小时 新手友好度 70/100
-
难度 2/5 1-3 小时 新手友好度 75/100
taikoxyz/taiko-mono#22168 · 1 条评论 ·