Skip to content

{d/s}laed2/8: Increase deflation tolerance to match {d/s}lasd2/7#1317

Open
jschueller wants to merge 1 commit into
Reference-LAPACK:masterfrom
jschueller:issue255_bis
Open

{d/s}laed2/8: Increase deflation tolerance to match {d/s}lasd2/7#1317
jschueller wants to merge 1 commit into
Reference-LAPACK:masterfrom
jschueller:issue255_bis

Conversation

@jschueller

@jschueller jschueller commented Jun 30, 2026

Copy link
Copy Markdown
Contributor

The eigenvalue divide-and-conquer helper routines DLAED2/SLAED2 and DLAED8/SLAED8 used a deflation tolerance of 8EPS, while the SVD routines DLASD2/SLASD2 and DLASD7/SLASD7 now use 64EPS (since PR #1286). The downstream eigenvector computation in DLAED3 divides by eigenvalue differences (DLAMBDA(I) - DLABMDA(J)), causing the same catastrophic cancellation when close eigenvalues escape deflation with the tighter tolerance.

Raise all four routines to 64EPS (EIGHTEIGHT*EPS), matching the SVD path, so close eigenvalues are deflated and the eigenvector computation remains stable.

Follow-up for #255

/cc @mgates3

The eigenvalue divide-and-conquer helper routines DLAED2/SLAED2 and
DLAED8/SLAED8 used a deflation tolerance of 8*EPS, while the SVD
routines DLASD2/SLASD2 and DLASD7/SLASD7 now use 64*EPS (since
PR Reference-LAPACK#1286). The downstream eigenvector computation in DLAED3 divides
by eigenvalue differences (DLAMBDA(I) - DLABMDA(J)), causing the same
catastrophic cancellation when close eigenvalues escape deflation with
the tighter tolerance.

Raise all four routines to 64*EPS (EIGHT*EIGHT*EPS), matching the SVD
path, so close eigenvalues are deflated and the eigenvector computation
remains stable.

Follow-up for Reference-LAPACK#255
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.

1 participant