Skip to contents

This function generates an instance of the class for the special orthogonal group \(\mathrm{SO}(n)\).

Usage

SpecialOrthogonal(n, point_type = "matrix", epsilon = 0, ..., py_cls = NULL)

Arguments

n

An integer value representing the shape of the n x n matrices.

point_type

A character string specifying how elements of the group should be represented. Choices are either "vector" or "matrix". Defaults to "matrix".

epsilon

A numeric value specifying the precision to use for calculations involving potential division by 0 in rotations. Defaults to 0.0.

...

Extra arguments to be passed to parent class constructors. See LieGroup, MatrixLieAlgebra, LevelSet and Manifold classes.

py_cls

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

Value

An object of class SpecialOrthogonal which is an instance of one of three different R6::R6Class depending on the values of the input arguments. Specifically:

  • if n == 2 and point_type == "vector", then the user wants to instantiate the space of 2D rotations in vector representations and thus the output is an instance of the SpecialOrthogonal2Vectors class;

  • if n == 3 and point_type == "vector", then the user wants to instantiate the space of 3D rotations in vector representations and thus the output is an instance of the SpecialOrthogonal3Vectors class;

  • in all other cases, either the user is dealing with rotations in matrix representation or with rotations in dimension greater than 3 and thus the output is an instance of the SpecialOrthogonalMatrices class.

Author

Nicolas Guigui and Nina Miolane

Examples

if (reticulate::py_module_available("geomstats")) {
  so3 <- SpecialOrthogonal(n = 3)
  so3
}