Introduce ZeroVector - #280
Conversation
|
Documentation is also still missing, though there it is maybe enough to add the docs of the type to the vector space page. |
|
That is what I feared. A “straight-forward” plain approach introduces 200+ ambiguities. So we probably need something more clever than this PR. |
|
I fear properly adding it everywhere would require a very careful and time-consuming ambiguity hunting. I personally think |
|
That is why I stopped at that point yesterday. I am not sure which narrow utility you have in mind. Could you then continue here and minimise it again? |
|
So far there is exactly one example of actual utility, in Manopt.jl 😄 . To me it's more about "let's not make a separate |
|
That is very narrow 😄 But then lets document that carefully that it is clear that the zero vector does not (necessarily, automatically) work in “any tangent vector position”. |
…ause ambiguities. Document this carefully.
|
I now added a careful technical note, that the type has to be considered on every manifold separately since it has to be implemented on layer 3, and kept those functions that do not cause ambiguities ( |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #280 +/- ##
=========================================
Coverage 100.00% 100.00%
=========================================
Files 34 34
Lines 3802 3813 +11
=========================================
+ Hits 3802 3813 +11 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
Co-authored-by: Mateusz Baran <mateuszbaran89@gmail.com>
|
OK, everything else looks fine. |
|
Should this also be a new version? |
mateuszbaran
left a comment
There was a problem hiding this comment.
I think we can tag a new release after merging this.
Co-authored-by: Mateusz Baran <mateuszbaran89@gmail.com>
|
Great. I set the date in the news and will merge when the tests pass – and register after merge. |
Here is a first draft to close #279 .
There are still quite a few
TODOs in thezero_vector.jlfile – mainly which functions to implement and which not.For me
Riemann_tensor,sectional_curvatureandangledo not make much sense, but maybe one could “error more gracefully” there still.The general modelling here is to do all these on “level 1” of our design scheme – for a few cases one could check whether level 2 makes more sense. A main challenge is probably to avoid ambiguities.
I also refactored the code a bit in places where all variables would fit on one line – since Runic allows for that while JuliaFormatter did not and put every variable on its own line.
Lets discuss also whether further methods are missing – and check whether it breaks something in Manifolds.jl or Manopt.jl.