Skip to contents

There are two main forms of representation for elements of a matrix Lie algebra implemented here. The first one is as a matrix, as elements of \(R^{n \times n}\). The second is by choosing a basis and remembering the coefficients of an element in that basis. This basis will be provided in child classes (e.g. SkewSymmetricMatrices).

Author

Stefan Heyder

Super classes

rgeomstats::PythonClass -> rgeomstats::Manifold -> rgeomstats::VectorSpace -> MatrixLieAlgebra

Public fields

n

An integer value representing the number of rows and columns in the matrix representation of the Lie algebra.

Methods

Inherited methods


Method new()

The MatrixLieAlgebra class constructor.

Usage

MatrixLieAlgebra$new(dim, n, ..., py_cls = NULL)

Arguments

dim

An integer value specifying the dimension of the Lie algebra as a real vector space.

n

An integer value representing the number of rows and columns in the matrix representation of the Lie algebra.

...

Extra arguments to be passed to parent class constructors. See VectorSpace and Manifold classes.

py_cls

A Python object of class MatrixLieAlgebra. Defaults to NULL in which case it is instantiated on the fly using the other input arguments.

Returns

An object of class MatrixLieAlgebra.


Method baker_campbell_hausdorff()

Calculates the Baker-Campbell-Hausdorff approximation of given order.

Usage

MatrixLieAlgebra$baker_campbell_hausdorff(matrix_a, matrix_b, order = 2)

Arguments

matrix_a

A numeric array of shape \(... \times n \times n\) specifying a matrix or a sample of matrices.

matrix_b

A numeric array of shape \(... \times n \times n\) specifying a matrix or a sample of matrices.

order

An integer value specifying the order to which the approximation is calculated. Note that this is NOT the same as using only \(e_i\) with \(i < \mathrm{order}\). Defaults to 2L.

Details

The implementation is based on Casas and Murua (2009) with the pre-computed constants taken from () . Our coefficients are truncated to enable us to calculate BCH up to order \(15\). This represents $$Z = \log \left( \exp(X) \exp(Y) \right)$$ as an infinite linear combination of the form $$Z = \sum_i z_i e_i$$ where \(z_i\) are rational numbers and \(e_i\) are iterated Lie brackets starting with \(e_1 = X\), \(e_2 = Y\), each \(e_i\) is given by some \((i^\prime,i^{\prime\prime})\) such that \(e_i = [e_i^\prime, e_i^{\prime\prime}]\).

Returns

A numeric array of shape \(... \times n \times n\) storing a matrix or a sample of matrices corresponding to the BCH approximation(s) between input matrices.


Method basis_representation()

Computes the coefficients of matrices in the given basis.

Usage

MatrixLieAlgebra$basis_representation(matrix_representation)

Arguments

matrix_representation

A numeric array of shape \(... \times n \times n\) specifying a matrix or a sample of matrices in its matrix representation.

Returns

A numeric array of shape \(... \times \mathrm{dim}\) storing a matrix or a sample of matrices in its basis representation.


Method matrix_representation()

Compute the matrix representation for the given basis coefficients.

Usage

MatrixLieAlgebra$matrix_representation(basis_representation)

Arguments

basis_representation

A numeric array of shape \(... \times \mathrm{dim}\) storing a matrix or a sample of matrices in its basis representation.

Details

Sums the basis elements according to the coefficients given in basis representation.

Returns

A numeric array of shape \(... \times n \times n\) specifying a matrix or a sample of matrices in its matrix representation.


Method clone()

The objects of this class are cloneable with this method.

Usage

MatrixLieAlgebra$clone(deep = FALSE)

Arguments

deep

Whether to make a deep clone.