SVD panics instead of returning a Result
- Dominant language
- Rust
- Stars
- 4.8k
- Forks
- 565
- PR merge metrics
- No merged PRs in 30d
Description
After issue #358, SVD was improved so that it does no longer panic but instead returns a `Result`. However, since then the public function `sort_by_singular_values()` was added to `svd.rs` which still panics when the singular values are NaN: `expect("Singular value was NaN")`. This function is used twice in `svd.rs`: by `new()` and `try_new()`, and once in `tests/linalg/svd.rs`.
This panic is making it more difficult to use nalgebra SVD in "production" code.
I can think of two possible solutions:
1. Let `sort_by_singular_values()` return a boolean whether the sorting was successful or not, so that the callers of this function can return a `Result` if needed . However, since this function is public, this would imply a breaking change.
2. In `try_new_unordered()`, right after the SVD decomposition, explicitly verify that none of singular values are NaN so that the sorting never leads to a panic.
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.