dimforge / dimforge/nalgebra

Wrong eigenvector sorting in nalgebra::SymmetricEigen, while correct in nalgebra_lapack::SymmetricEigen

Open
#1,344 1 comment 1 reaction 0 assignees View on GitHub
Dominant language
Rust
Stars
4.8k
Forks
565
PR merge metrics
No merged PRs in 30d

Description

It seems that `nalgebra::SymmetricEigen` doesn't sort eigenvectors properly in the ascending order of eigenvalues, while `nalgebra_lapack::SymmetricEigen` does this correctly.

This [example code](https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&gist=2ed753eb7f74c683df6bf89d5f415e69) produces different order of eigenvalues in `nalgebra` and `nalgebra_lapack`:

nalgebra: two first values are _not_ in correct ascending order!
```
val =

┌ ┐
│ -39261.336 │
│ -58575.883 │
│ -17988.87 │
│ 17988.875 │
│ 39261.33 │
│ 58575.883 │
└ ┘
```

nalgebra_lapack: correct sorting
```
val =

┌ ┐
│ -58575.8 │
│ -39261.313 │
│ -17988.877 │
│ 17988.863 │
│ 39261.305 │
│ 58575.83 │
└ ┘
```

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.