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.

belongs_algebra(x)[source]
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.

get_algebra()[source]

Returns the interface to the corresponding Lie algebra.

group_from_algebra(a)[source]

Converts an element of the algebra to the group.

Uses generic matrix exponential.

inverse(g)[source]

Implements the group inversion.

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.

multiply(g, h)[source]

Implements the group operation.

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.

tangent_bundle()[source]

Returns the manifold corresponding to the tangent bundle. The default gives a generic implementation. MatrixLieGroup have a different one.

unity()[source]

Returns the group unity.

velocity_from_points(a, b, delta=1)[source]

Find the velocity in local frame to go from a to b in delta time.