Closed artivis closed 3 months ago
@joansola Your opinion about the api and more importantly about the fact that it is in vector form? Calling it 'bracket' isn't too much of a stretch since it is actually 'bracket^vee'?
Doing so has the advantage that it doesn't requires the vee
operator (which will come in a subsequent pr).
This is great, looking forward to seeing this merged. One question and one comment from my side:
struct BracketEvaluatorImpl
in this PR already? Or is this planned future work?[V, W] == V.coeffs().cross(W.coeffs())
, for Rn and SO2: [V, W] == 0
, and perhaps more.@joansola Your opinion about the api and more importantly about the fact that it is in vector form? Calling it 'bracket' isn't too much of a stretch since it is actually 'bracket^vee'?
Doing so has the advantage that it doesn't requires the
vee
operator (which will come in a subsequent pr).
From a mathematical standpoint, yes, our vector representation of the Lie algebra is indeed a Lie algebra, and it has a bracket operator, which is this one, and they are both equivalent, because both spaces are isomorphic.
From a code standpoint. What´s the best way to document this so that a foreign can FIND this documentation trivially? Like, you are on vscode and you hover your mouse over. Then the doc appears and you can read this note just there. Because this is the only point of concern, it does not require a serious documentation, just a note. But this note needs to be findable very easily.
I´d say normally document it in the .h file as any other doxygen documentation. At least this. But being all templated, would the IDEs, by hovering over the function calls, display such doc? I dont know.
@joansola Regarding documentation, hopefully the doxygen+api is clear enough and should do the job.
L366 * @return @return LieAlg The Lie bracket [a,b] in vector form.
OK sounds good but here you have two @return statements and say that the return type is LieAlg :-D
@joansola Fixed the doc.
@nielsvd Thanks for the feedback. I've implemented the specialisation for Rn :+1: . However I'll leave the group specific tests as futur work ;)
Add the Lie bracket in vector form (
[x,y]^v = adj(x) . y
).It is implemented as both :
x.bracket(y)
Tangent::Bracket(x, y)
with the later being a personal favorite in terms of notation.
The actual bracket in the Lie algebra can then be computed as
Tangent::Bracket(x, y).hat()
.Note: the
vee
operator will be implemented in a subsequent pr.Closes #267 .