-
Notifications
You must be signed in to change notification settings - Fork 9
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
Unify exp and retract, log and inverse_retract #167
Conversation
Co-authored-by: Mateusz Baran <[email protected]>
…precise necessarily.
Codecov Report
@@ Coverage Diff @@
## master #167 +/- ##
==========================================
- Coverage 99.96% 99.96% -0.01%
==========================================
Files 26 26
Lines 3160 3063 -97
==========================================
- Hits 3159 3062 -97
Misses 1 1
... and 2 files with indirect coverage changes 📣 We’re building smart automated test selection to slash your CI/CD build times. Learn more |
I even found a small bug where some vector fall back of retract accidentally returned X instead of q (though it took me an hour to narrow it down). Good points:
But besides the small break on allocating manifolds, this seems to not only unify code but also simplify our code base! Still ToDo
|
I think this looks quite good. It looks like updating Manifolds.jl later won't be much of a problem 🙂 . |
BTW, if we make a breaking release of ManifoldsBase.jl maybe you could also propose a change to #119 that you wanted? Ref. JuliaManifolds/Manifolds.jl#438 |
Sure, will recheck the test tomorrow and yes, we can surely also introduce an inverse retraction based distance approximation, just that I am missing a neat name for it. |
I thought a bit about the arguments with |
…lds/ManifoldsBase.jl into kellertuer/unify-exp-retract
@mateuszbaran you introduced a specific function definition once for None of the tests ran through that, I even tried to trigger this function in a Julia 1.0 session but could not. I removed it in the last commit. Can you check that this is ok or otherwise write a test to cover that case? |
IIRC it was due to some bug on Julia 1.0. I think that method could be removed and Julia requirement bumped to 1.6 here? |
Since it was a But I am also fine to use this breaking change to remove support for 1.0 – through it is nice to support the interface even on very old versions, none of our other packages supports 1.0 anymore, either. |
ManifoldsBase.jl isn't very useful without other libraries so I think it's fair to remove support for 1.0. After all, old versions that work with 1.0 will still be available. |
Ok, been there, done that. Should we merge this and wait for a few more breaking things before registering 0.15? I could work on the metric manifold next (just have to remember, where I stopped and why). |
I wouldn't merge it until we are closer to releasing Manifolds.jl 0.9. Maybe after I finish and you review the key parts of my PR? We don't really need this merged earlier, and merging it will just make tagging new versions of ManifoldsBase.jl 0.14.x more complicated. |
Ok, sounds fair. I can check your PR soon-ish – but for now it is still a draft, right? |
Yes, my PR is still a draft but some parts are more or less finished. I think you can check the changes related to optional static size and removal of |
Great, will do. Did you see that I added the |
Thanks! I haven't checked those docs yet, but I will 🙂 . |
# Conflicts: # .github/workflows/ci.yml # NEWS.md # Project.toml # docs/Project.toml # src/retractions.jl # test/default_manifold.jl
Co-authored-by: Mateusz Baran <[email protected]>
…the new one. Remove it again.
…lds/ManifoldsBase.jl into kellertuer/unify-exp-retract
This was reasonably easy to merge. Let me know when you have checked this on Manifolds.jl |
Something broke with |
There is a similar issue with |
Ah interesting, that is a case we did not take into account. But then maybe we have to reintroduce |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I've adapted Manifolds.jl PR to this change and tests are passing.
Cool! Then I will merge this now into main – then merge main into the last PR :) |
The unification concerns the “dispatch flow”
Now both
t
andX
“last”This way
t
,X
variant, otherwise the fused version with just X is enough to implementM
andmethod
types, such that there should not be problems with ambiguities.This is till WIP, since I have to check that all tests are fine till and a bit that manifolds.jl also still works fine ;)
This resolves #159.