Skip to content

Conversation

jaemolihm
Copy link
Contributor

See #1313

A brief summary: RobustRepresentations (LAPACK.syevr!) was the only algorithm implemented until Julia v1.11. Then, JuliaLang/julia#49355 implemented interface to other algorithms, and changed the default to DivideAndConquer (LAPACK.syevd!) based on its better numerical accuracy and performance. But, it turned out that in some LAPACK implementation, the DivideAndConquer fails more frequently than RobustRepresentations (#1313). Based on the discussion in #1313 , this PR reverts the default algorithm to RobustRepresentations.

Once the problem with the RobustRepresentations in the problematic LAPACK implementation has been sorted out, the default could be changed to DivideAndConquer.

Copy link

codecov bot commented May 28, 2025

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 93.74%. Comparing base (5ffd833) to head (871bf32).
Report is 3 commits behind head on master.

Additional details and impacted files
@@            Coverage Diff             @@
##           master    #1363      +/-   ##
==========================================
- Coverage   93.76%   93.74%   -0.02%     
==========================================
  Files          34       34              
  Lines       15724    15724              
==========================================
- Hits        14743    14741       -2     
- Misses        981      983       +2     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@ViralBShah ViralBShah added the backport 1.12 Change should be backported to release-1.12 label May 28, 2025
@jishnub jishnub merged commit b6ad8f9 into JuliaLang:master Jun 1, 2025
3 of 4 checks passed
@jaemolihm jaemolihm deleted the symeigen branch June 1, 2025 15:56
jishnub pushed a commit that referenced this pull request Jun 5, 2025
…#1363)

See #1313

A brief summary: RobustRepresentations (`LAPACK.syevr!`) was the only
algorithm implemented until Julia v1.11. Then,
JuliaLang/julia#49355 implemented interface to
other algorithms, and changed the default to DivideAndConquer
(`LAPACK.syevd!`) based on its better numerical accuracy and
performance. But, it turned out that in some LAPACK implementation, the
DivideAndConquer fails more frequently than RobustRepresentations
(#1313). Based on the discussion in #1313 , this PR reverts the default
algorithm to RobustRepresentations.

Once the problem with the RobustRepresentations in the problematic
LAPACK implementation has been sorted out, the default could be changed
to DivideAndConquer.

(cherry picked from commit b6ad8f9)
@jishnub jishnub mentioned this pull request Jun 5, 2025
4 tasks
jishnub added a commit that referenced this pull request Jun 13, 2025
Backported PRs:
- [x] #1364 <!-- clarify eigen docstring -->
- [x] #1363 <!-- Change default symmetriceigen algorithm back to
RobustRepresentations -->

Non-merged PRs with backport label:
- [ ] #1365 <!-- Add docstring to the `rank(::QRPivoted)` method -->
- [ ] #1305 <!-- Bounds-checking in triangular indexing branches -->
@dkarrasch dkarrasch removed the backport 1.12 Change should be backported to release-1.12 label Aug 10, 2025
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 this pull request may close these issues.

4 participants