Uh oh!
There was an error while loading. Please reload this page.
Conversation
Uh oh!
There was an error while loading. Please reload this page.
Codecov Report✅ All modified and coverable lines are covered by tests.
... and 1 file with indirect coverage changes 🚀 New features to boost your workflow:
|
Guard `C .+= ΔP` with `!iszerotangent(ΔP)` in both `left_polar_pullback!` and `right_polar_pullback!` to handle the case where ΔP is `nothing`. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Replace LAPACK trsyl!-based solver with a direct eigendecomposition approach when both arguments are the same Hermitian matrix (as in polar pullbacks). This avoids LAPACKException(1) for close eigenvalues. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add rrules/pullbacks for `project_hermitian!`, `project_antihermitian!`, and `project_isometric!` directly in each AD backend extension (ChainRulesCore, Enzyme, Mooncake). The hermitian/antihermitian pullbacks are self-adjoint, while the isometric pullback delegates to `left_polar_pullback!` with zero ΔP. Includes test utilities and tests for all three backends. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Uh oh!
There was an error while loading. Please reload this page.
kshyatt
commented
Feb 26, 2026
AD rules yet no Enzyme 🥺 ? Or would you like me to add those? |
lkdvos
commented
Feb 26, 2026
See comment in the PR body about Enzyme 😉 |
kshyatt
commented
Feb 26, 2026
OK well, I can certainly add them if you like, but if we don't need them yet, can of course happen later |
lkdvos
commented
Feb 26, 2026
The thing is that for Enzyme I would actually be quite interested to see if they can generate better rules than we can manually write, since this is somewhat of the promise of that system (maybe?), and also I really just was to lazy to actually go and investigate, since I basically mostly needed the chainrules ones since that simply errors without. |
Uh oh!
There was an error while loading. Please reload this page.
kshyatt
commented
Feb 27, 2026
Looks good to me, feel free to just say "no" to my comment |
Uh oh!
There was an error while loading. Please reload this page.
….4, (keep existing compat) (#201) * CompatHelper: bump compat for GenericLinearAlgebra in [weakdeps] to 0.4, (keep existing compat) * Remove JET dependency Removed JET dependency from Project.toml * Remove JET from test targets Removed JET from the test targets in Project.toml. --------- Co-authored-by: CompatHelper Julia <compathelper_noreply@julialang.org> Co-authored-by: Lukas Devos <ldevos98@gmail.com>
Fixes#99.
Requires #175.
I played around a bit with also implementing the
project_isometric, but since that was taking more significant changes (possibly writing an actualsylvesterequation solver), I will leave that for a follow-up.Also, I'm not actually smart enough for Enzyme rules, so will also ignore that for now. (Additionally I'm not sure we need them in that case, so don't want to pollute this PR)