geometry.manifolds.matrix_lie_group.MatrixLieGroup¶
-
class
geometry.manifolds.matrix_lie_group.
MatrixLieGroup
(n, dimension, algebra)[source]¶ This is the base class for matrix Lie groups.
Subclasses should provide a MatrixLieAlgebra object. Given the Lie algebra, we can compute everything. However, subclasses can choose to overload some functions if they know a more numerically stable implementation.
Methods
algebra_from_group
(g)Converts an element of the group to the algebra. assert_close
(a, b[, atol, msg])Asserts that two points on the manifold are close to the given tolerance. belongs
(x)Raises an Exception if the point does not belong to this manifold. belongs_ts
(bv)Checks that a vector vx belongs to the tangent space at the given point base. distance
(a, b)Computes the distance between two points. embed_in
(M, my_point)Embeds a point on this manifold to the target manifold M. expmap
(bv)This is the inverse of logmap_()
.friendly
(a)Returns a friendly description string for a point on the manifold. from_yaml
(yaml_structure)Recovers a value from a Yaml structure. geodesic
(a, b, t)Returns the point interpolated along the geodesic. get_algebra
()Returns the interface to the corresponding Lie algebra. get_dimension
()Returns the intrinsic dimension of this manifold. group_from_algebra
(a)Converts an element of the algebra to the group. interesting_points
()Returns a list of “interesting points” on this manifold that should be used for testing various properties. logmap
(base, p)Returns the direction from base to target. normalize
(a)Normalizes the coordinates to the canonical representation for this manifold. project_from
(M, his_point)Projects a point on a bigger manifold to this manifold. project_ts
(bv)Projects the vector x to the tangent space at point base. riemannian_mean
(points)TODO: work out exceptions velocity_from_points
(a, b[, delta])Find the velocity in local frame to go from a to b in delta time. belongs_algebra can_convert_to can_represent convert_to embeddable_in embedding identity inverse isomorphism multiply project_to relations_descriptions tangent_bundle to_yaml unity -
algebra_from_group
(g)[source]¶ Converts an element of the group to the algebra. Uses generic matrix logarithm plus projection.
-
distance
(a, b)[source]¶ Computes the distance between two points.
In the case of Lie groups, this is done by translating everything to the origin, computing the logmap, and using the norm defined in the Lie Algebra object.
-
expmap
(bv)[source]¶ This is the inverse of
logmap_()
.In the case of Lie groups, this is implemented using the usual matrix exponential.
Here the
MatrixLieAlgebra.project()
function is used to mitigate numerical errors.
-
group_from_algebra
(a)[source]¶ Converts an element of the algebra to the group.
Uses generic matrix exponential.
-
logmap
(base, p)[source]¶ Returns the direction from base to target.
In the case of Lie groups, this is implemented by using the usual matrix logarithm at the origin.
Here the
MatrixLieAlgebra.project()
function is used to mitigate numerical errors.
-
project_ts
(bv)[source]¶ Projects the vector x to the tangent space at point base.
In the case of Lie Groups, we do this by translating the vector to the origin, projecting it to the Lie Algebra, and then translating it back.
-