-
Notifications
You must be signed in to change notification settings - Fork 441
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
xORBDB6/xUNBDB6: fix a constant #928
xORBDB6/xUNBDB6: fix a constant #928
Conversation
The commits listed below updated xORBDB6/xUNBDB6 with the aim of improving numerical stability by avoiding the use of squared values. With the exception of SORBDB6 these commits did not properly up a magic constant called `ALPHA` in the code. SORBDB6 was initially updated correctly before commit a015b21 inserted an incorrect value again. The incorrect magic constant may lead to early returns with only partially orthogonalized output vectors. Relevant commits: * 54b3964 * 6479e0f * 94419e8
Input triggering the bug fixed in this PR can be found in the linked post: #917 (comment). |
Thanks @christoph-conrads. ALPHA = 1 / 100 is certainly safer than ALPHA = 1/10. |
Moreover the value was not really changed. In the past it was used in comparisons involving squares of norms (e.g., as in |
Lines 255 to 263 in 8ecaaf9
Thanks for correcting me. ALPHA = 1/100 leads to a loss of accuracy of about 100x. ALPHA = 1/10 is better. Sure. Good. We can continue stir ALPHA up. A standard value, in the Gram-Schmidt context, is ALPHA = 1/sqrt(2). (But we are not in the Gram-Schmidt context.) Since, this projection (maybe with reorthogonalization) is Taking an ALPHA All in all though, I am not against setting ALPHA to ONE so as to force reorthogonalization in all cases. |
The problem was fixed in pull request Reference-LAPACK#928.
The problem was fixed in pull request Reference-LAPACK#928.
The problem was fixed in pull request Reference-LAPACK#928.
The problem was fixed in pull request Reference-LAPACK#928.
The problem was fixed in pull request Reference-LAPACK#928.
The problem was fixed in pull request Reference-LAPACK#928.
Description
The commits listed below updated xORBDB6/xUNBDB6 with the aim of improving numerical stability by avoiding the use of squared values. With the exception of SORBDB6 these commits did not properly up a magic constant called
ALPHA
in the code. SORBDB6 was initially updated correctly before commit a015b21 inserted an incorrect value again.The incorrect magic constant may lead to early returns with only partially orthogonalized output vectors.
Relevant commits:
Checklist