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.