ManifoldGroupUtils.jl
A collection of functions to be used with groups in the Manifolds.jl package.
The main function is compose_matrix_op.
ManifoldGroupUtils.algebra — Methodalgebra(G)The tangent space at identity of the group G.
ManifoldGroupUtils.compose_lie_matrix_op — Methodcompose_lie_matrix_op(
G, # group
op, # operator Alg(G) -> Alg(G)
mat, # matrix in the basis
B # basis of Alg(G)
)Compute the matrix in the basis B of the composition of op a linear endomorphism of Alg(G) and a matrix mat, also expressed in the basis B.
ManifoldGroupUtils.compose_matrix_op — Methodcompose_matrix_op(
G, # group
M,p, # Manifold, point
op, # operator Alg(G) -> T_pM
mat, # matrix in basis BG
BG, # basis of Alg(G)
BM, # basis of T_pM
)Compose a matrix mat of a linear endomorphism of Alg(G) in some basis BG with an operator op : $Alg(G) → T_p M$ itself equipped with a basis BM.
ManifoldGroupUtils.get_id_matrix_lie — Methodget_id_matrix_lie(G)The identity matrix on the Lie algebra of the group G.
ManifoldGroupUtils.get_op_matrix — Methodget_op_matrix(G, # group
M, p, # manifold + point
op, # operator from Alg(G) -> T_pM
BG, # Lie algebra basis
BM, # basis at T_pM
)Matrix of an operator op : $Alg(G) → T_p M$ computed in the basis BG and BM.
ManifoldGroupUtils.get_proj_matrix — Methodget_proj_matrix(A::GroupAction, x, BG, BM)From a group action $G ⊂ Diff(M)$, and a point $x ∈ M$, compute the projection matrix in the basis BG of Alg(G) and BM of $T_x M$ of the operator $ξ ↦ ξ ⋅x$, where $⋅$ denotes the infinitesimal group action above.
ManifoldGroupUtils.matrix_from_lin_endomorphism — Methodmatrix_from_lin_endomorphism(
G, # group
op, # Alg(G) -> Alg(G)
B # basis of Alg(G)
)Compute the matrix in the basis B of an operator op on a Lie algebra Alg(G).
ManifoldGroupUtils.rand_lie — Methodrand_lie(rng::AbstractRNG, G)Random element in the Lie algebra of the group G.
ManifoldGroupUtils.translate_from_id — Methodtranslate_from_id(G, χ, ξ, ::GroupActionSide)The left translation $T_L(g,ξ) = gξ$ for the Left side, or right translation $T_R(g,ξ) = ξg$ for the Right side.
ManifoldGroupUtils.translate_to_id — Methodtranslate_to_id(G, χ, v, ::GroupActionSide)Compute $η = v χ⁻¹$, or $χ⁻¹ v$ depending on whether the group action side is Right or Left respectively.