diff --git a/src/Lie_algebra/Lie_algebra_interface.jl b/src/Lie_algebra/Lie_algebra_interface.jl index 25a9748..1cf67bb 100644 --- a/src/Lie_algebra/Lie_algebra_interface.jl +++ b/src/Lie_algebra/Lie_algebra_interface.jl @@ -18,14 +18,12 @@ this is internally just a `const` of the corresponding $(_link(:TangentSpace)). Return the Lie Algebra belonging to the [`LieGroup`](@ref) `G`. """ -const LieAlgebra{𝔽,G,I} = ManifoldsBase.Fiber{ - 𝔽,ManifoldsBase.TangentSpaceType,G,I -} where {𝔽,G<:LieGroup{𝔽},I<:Identity} - -function LieAlgebra(G::LieGroup{𝔽}) where {𝔽} - return LieAlgebra{𝔽,typeof(G),typeof(Identity(G))}( - G, Identity(G), ManifoldsBase.TangentSpaceType() - ) +const LieAlgebra{𝔽,O<:AbstractGroupOperation,G<:LieGroup{𝔽,O}} = ManifoldsBase.Fiber{ + 𝔽,ManifoldsBase.TangentSpaceType,G,Identity{O} +} + +function LieAlgebra(G::LieGroup{𝔽,O}) where {𝔽,O<:AbstractGroupOperation} + return LieAlgebra{𝔽,O,typeof(G)}(G, Identity(G), ManifoldsBase.TangentSpaceType()) end _doc_lie_bracket = """ diff --git a/src/group_operations/addition.jl b/src/group_operations/addition.jl index 049ca1c..a725801 100644 --- a/src/group_operations/addition.jl +++ b/src/group_operations/addition.jl @@ -166,8 +166,8 @@ function inv!(G::LieGroup{𝔽,AdditionGroupOperation}, h, g) where {𝔽} end _doc_lie_bracket_add = """ - lie_bracket!(𝔤::LieAlgebra{𝔽,<:LieGroup{𝔽,AdditionGroupOperation}}, X, Y) - lie_bracket!(𝔤::LieAlgebra{𝔽,<:LieGroup{𝔽,AdditionGroupOperation}}, Z, X, Y) + lie_bracket!(𝔤::LieAlgebra{𝔽,AdditionGroupOperation}, X, Y) + lie_bracket!(𝔤::LieAlgebra{𝔽,AdditionGroupOperation}, Z, X, Y) Compute the Lie bracket ``[⋅,⋅]: $(_math(:𝔤))×$(_math(:𝔤)) → $(_math(:𝔤))``, which for the for the [`AdditionGroupOperation`](@ref) simplifies to the @@ -176,12 +176,10 @@ The computation can be done in-place of `Z`. """ @doc "$(_doc_lie_bracket_add)" -lie_bracket(𝔤::LieAlgebra{𝔽,<:LieGroup{𝔽,AdditionGroupOperation}}, X, Y) where {𝔽} +lie_bracket(𝔤::LieAlgebra{𝔽,AdditionGroupOperation}, X, Y) where {𝔽} @doc "$(_doc_lie_bracket_add)" -function lie_bracket!( - 𝔤::LieAlgebra{𝔽,<:LieGroup{𝔽,AdditionGroupOperation}}, Z, X, Y -) where {𝔽} +function lie_bracket!(𝔤::LieAlgebra{𝔽,AdditionGroupOperation}, Z, X, Y) where {𝔽} return zero_vector!(𝔤, Z) end