-
-
Notifications
You must be signed in to change notification settings - Fork 5.5k
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
bug fixes in matrix log #32327
bug fixes in matrix log #32327
Conversation
Ugh, it looks like this PR triggers another problem. Will have to look at it more closely. |
As shown in the book excerpt you posted in #32313, these algorithms specifically exclude the case where eigenvalues are on the negative real line (which applies to some of the examples in related issues). Experiments with roundoff-negligible perturbations suggest that your proposed fix sometimes succeeds but is still fragile in that regime. Since eigenvalues are trivially available from the diagonal of the |
@RalphAS, where does the book say that? |
In Algorithm 11.10 (and in various papers on matrix log by Higham and associates) one finds the limitation "no eigenvalues on R-". On looking again I see that this is irrelevant to the issue you're addressing here and to the testing problems; sorry for the noise. |
I think there is a sign error in Eq. (11.27); to compensate for the |
* patches to matrix log Avoid integer overflow if `s > 63`. Correct logic for `s == 0`. Only use fancy divided difference formulae if eigenvalues are close - avoids dangerous roundoff error if they are in opposite sectors. * add tests
Closed by #33245. |
No? That was a PR into this branch, wasn't it? |
All test errors seem unrelated. cc @staticfloat |
* bug fixes in matrix log * patches to matrix log (#33245) * patches to matrix log Avoid integer overflow if `s > 63`. Correct logic for `s == 0`. Only use fancy divided difference formulae if eigenvalues are close - avoids dangerous roundoff error if they are in opposite sectors. * add tests (cherry picked from commit 318affa)
* bug fixes in matrix log * patches to matrix log (#33245) * patches to matrix log Avoid integer overflow if `s > 63`. Correct logic for `s == 0`. Only use fancy divided difference formulae if eigenvalues are close - avoids dangerous roundoff error if they are in opposite sectors. * add tests (cherry picked from commit 318affa)
* bug fixes in matrix log * patches to matrix log (#33245) * patches to matrix log Avoid integer overflow if `s > 63`. Correct logic for `s == 0`. Only use fancy divided difference formulae if eigenvalues are close - avoids dangerous roundoff error if they are in opposite sectors. * add tests (cherry picked from commit 318affa)
* bug fixes in matrix log * patches to matrix log (#33245) * patches to matrix log Avoid integer overflow if `s > 63`. Correct logic for `s == 0`. Only use fancy divided difference formulae if eigenvalues are close - avoids dangerous roundoff error if they are in opposite sectors. * add tests (cherry picked from commit 318affa)
Fixes #32313