-
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
🎆 Prepare for ManifoldsBase.jl 1.0 #221
base: master
Are you sure you want to change the base?
Conversation
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## master #221 +/- ##
==========================================
- Coverage 99.97% 99.40% -0.58%
==========================================
Files 31 31
Lines 3539 3507 -32
==========================================
- Hits 3538 3486 -52
- Misses 1 21 +20 ☔ View full report in Codecov by Sentry. |
fix Documenter CI to run on Julia 1.11
I just noticed both an advantage of this PR and an argument against the keyword I propose: With the previous positional |
Yes!! I suggested that once and it was dissed, but that is an obvious change to me. Way more robust. Go! 😀 |
You were not dissed; the problem is that this is a huge change so it took some discussions. For example adapting Manifolds.jl took me most of today (still locally here). So someone has to do all that work then. That is why one should only do this after careful considerations. |
Though about Q1 with retract – I think there the positional parameters especially with the method in the end will avoid the problems we had with exp. So that should be fine. |
Yes; for consistency I'd suggest doing the same thing with
I'd prefer to not have the
Yes, I'd remove I'd also like to have #189 resolved for 0.16.
How would |
By the way, we could probably go 1.0 in this breaking release? The interface seems stable enough to me. |
Hm, then And reworking exp took me 6 hours, retract is much much much more revolved, so time wise, this would also be a huge effort and (besides consistency) I do not see a good reason why. Ambiguities should not be a problem for retract.
Sure, not problem.
If you could work on that, that would be great.
I do not see it appearing on Lie groups for example
Sure we could do that, if we even do infectivity radius we have solved all we have in mind. Sounds nice to move the interface to 1.0, sure. |
Co-authored-by: Mateusz Baran <[email protected]>
While I personally would prefer having metric and connection here before 1.0, I do see the advantage and think it is nice to go to 1.0 with this, when we actually resolve all points from the release plan. And metric and connection could be part of a 1.1 – and then maybe later be used to make LieGroups more precise in its metrics/connections. |
Yes, metric and connection is quite a bit of work still and putting them here is not a breaking change. I'm working on this PR right now as we discussed (retract thing). |
…ertuer/move-exp-t
…ifoldsBase.jl into kellertuer/move-exp-t
When exporting them now, which name do we use? ' both are a bit clumsy, but I have no better idea; I think I personally prefer |
I think I prefer |
My motivation for the But I also think this is a function that “belongs” to you to some extend, you introduced that idea and realised it – I still don‘t fully see how much better it is to use it – so I leave the final naming to you. |
I just removed all I was shortly thinking about a “How to get started”, but felt, this is maybe a bit complicated, since we already have the tutorial how to implement a manifold in the API. |
OK, then I'll rename it to For injectivity radius I'd suggest changing it so that:
|
Thanks for your understanding. I can check that the docs mention both the math part and the advantages in allocations. The plan for the infectivity radius sounds good, the convenience one would have a keyword argument? Should that default to |
I'm not sure, I thought about leaving it positional like it is right now. The default should probably be |
Positional is fine with me as well. That also sounds reasonable, I was a bit thinking of exp since that is the mathematical one, but sure, consistency is more important in our API, so lets go for the default method. |
I updated the initial post to reflect the missing things here. Let me know if I can help somewhere. We should maybe use this nice step to either start a ManifoldsBase Thread on Discourse (I would prefer that) or a general JuliaManifolds announcement thread? |
I will try to finish my changes here during the weekend. I'm also contemplating other minor change. I think we can have a new ManifoldsBase thread on discourse, sure. |
Sure that change sounds reasonable to me. Feel free to work on that as well. For the thread – I will draft an announcement then on the weekend. |
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.
Here is three small things I noticed. For retract, I would prefer adapting that to exp, since there the “ease of use” allows to first just implement exp(M, p, X)
and only get into the detail later if necessary; retract is now the other way around, one always has to first learn about _fused
, and both are now inconsistent.
…ain for retract (not only fused), A main thing that was missing is all the default fallbacks for typed points.
… that heavily confuses GroupManifolds hat.
…nts are not exported.
This is a breaking PR preparing for a nicer function naming in
LieGroups.jl
❓
exp
is now calledexpt
. Should we do the same withretract
?It does however not suffer from the same ambiguities, since we also have the method there as a mandatory element I think.
vector_transport_along
cf 1.0 release planning #211? Done.for me a keywordNo.exp(M, p, X; t=...)
would be fine, but not necessary. Thoughts on this why this might be a bad idea to have?📋
exp(M, p, X, t)
toexpt(M; p, X, t)
exp!(M, q, p, X, t)
toexpt!(M, q, p, X, t)
TVector
toAbstractTangentVector
and similarly forValidation|Default|NonTVector
CoTVector
toAbstractCotangentVector
and similarly forValidation|Default|NonTVector
expt
toexp_fused
andretract_t
toretract_fused
injectivity_radius
less prone to ambiguities #189 oninjectivity_radius