Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

SVD panics instead of returning a Result #1475

Open
JorisDeRidder opened this issue Jan 17, 2025 · 0 comments · May be fixed by #1477
Open

SVD panics instead of returning a Result #1475

JorisDeRidder opened this issue Jan 17, 2025 · 0 comments · May be fixed by #1477

Comments

@JorisDeRidder
Copy link

JorisDeRidder commented Jan 17, 2025

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.
@rbctz rbctz linked a pull request Jan 21, 2025 that will close this issue
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant