| Title: | Interface to 'Geomstats' |
|---|---|
| Description: | Provides an interface to the Python package 'Geomstats' authored by Miolane et al. (2020) <arXiv:2004.04667>. |
| Authors: | Aymeric Stamm [aut, cre] (ORCID: <https://orcid.org/0000-0002-8725-3654>), Nicolas Guigui [ctb] (Author of the Geomstats Python package, ORCID: <https://orcid.org/0000-0002-7901-0732>), Alice Le Brigant [ctb] (Author of the Geomstats Python package, ORCID: <https://orcid.org/0000-0002-8055-4753>), Johan Mathe [ctb] (Author of the Geomstats Python package), Nina Miolane [ctb] (Author of the Geomstats Python package, ORCID: <https://orcid.org/0000-0002-1200-9024>), Xavier Pennec [ctb] (Author of the Geomstats Python package, ORCID: <https://orcid.org/0000-0002-6617-7664>), Luis Pereira [ctb] (Author of the Geomstats Python package), Yann Thanwerdas [ctb] (Author of the Geomstats Python package, ORCID: <https://orcid.org/0000-0002-9351-6318>) |
| Maintainer: | Aymeric Stamm <[email protected]> |
| License: | MIT + file LICENSE |
| Version: | 0.0.1.9000 |
| Built: | 2026-05-23 06:16:37 UTC |
| Source: | https://github.com/lmjl-alea/rgeomstats |
Class for an -fold product manifold . It defines
a manifold as the product manifold of copies of a given base
manifold .
rgeomstats::PythonClass -> rgeomstats::Manifold -> NFoldManifold
rgeomstats::PythonClass$get_python_class()rgeomstats::PythonClass$set_python_class()rgeomstats::Manifold$belongs()rgeomstats::Manifold$is_tangent()rgeomstats::Manifold$random_point()rgeomstats::Manifold$random_tangent_vec()rgeomstats::Manifold$regularize()rgeomstats::Manifold$set_metric()rgeomstats::Manifold$to_tangent()new()
The NFoldManifold class constructor.
NFoldManifold$new( base_manifold, n_copies, metric = NULL, default_coords_type = "intrinsic", py_cls = NULL )
base_manifoldAn R6::R6Class specifying the base manifold to copy.
n_copiesAn integer value specifying the number of replication of the base manifold.
metricAn R6::R6Class specifying the base metric to use.
Defaults to NULL which uses the Riemannian metric.
default_coords_typeA string specifying the coordinate type.
Choices are "intrinsic" or "extrinsic". Defaults to "intrinsic".
py_clsA Python object of class NFoldManifold. Defaults to
NULL in which case it is instantiated on the fly using the other
input arguments.
A NFoldManifold R6::R6Class object.
if (reticulate::py_module_available("geomstats")) {
nfm <- NFoldManifold$new(
base_manifold = SPDMatrix(n = 3),
n_copies = 3
)
nfm
}
clone()
The objects of this class are cloneable with this method.
NFoldManifold$clone(deep = FALSE)
deepWhether to make a deep clone.
Nicolas Guigui
## ------------------------------------------------ ## Method `NFoldManifold$new` ## ------------------------------------------------ if (reticulate::py_module_available("geomstats")) { nfm <- NFoldManifold$new( base_manifold = SPDMatrix(n = 3), n_copies = 3 ) nfm }## ------------------------------------------------ ## Method `NFoldManifold$new` ## ------------------------------------------------ if (reticulate::py_module_available("geomstats")) { nfm <- NFoldManifold$new( base_manifold = SPDMatrix(n = 3), n_copies = 3 ) nfm }
This function generates an instance of the class for the manifold of
symmetric positive definite matrices .
SPDMatrix(n, ...)SPDMatrix(n, ...)
n |
An integer value specifying the number of rows and columns of the matrices. |
... |
Extra arguments to be passed to parent class constructors. See
|
An object of class SPDMatrices.
Yann Thanwerdas
Other symmetric positive definite matrix classes:
SPDMatrices
if (reticulate::py_module_available("geomstats")) { spd3 <- SPDMatrix(n = 3) spd3 }if (reticulate::py_module_available("geomstats")) { spd3 <- SPDMatrix(n = 3) spd3 }
An R6::R6Class object implementing the SPDMetricAffine
class. This is the class for the affine-invariant metric on the SPD
manifold (Thanwerdas and Pennec 2019).
rgeomstats::PythonClass -> rgeomstats::Connection -> rgeomstats::RiemannianMetric -> SPDMetricAffine
nAn integer value specifying the shape of the matrices: .
power_affineAn integer value specifying the power transformation of the classical SPD metric.
rgeomstats::PythonClass$get_python_class()rgeomstats::PythonClass$set_python_class()rgeomstats::Connection$christoffels()rgeomstats::Connection$curvature()rgeomstats::Connection$curvature_derivative()rgeomstats::Connection$directional_curvature()rgeomstats::Connection$directional_curvature_derivative()rgeomstats::Connection$exp()rgeomstats::Connection$geodesic()rgeomstats::Connection$geodesic_equation()rgeomstats::Connection$injectivity_radius()rgeomstats::Connection$ladder_parallel_transport()rgeomstats::Connection$log()rgeomstats::Connection$parallel_transport()rgeomstats::RiemannianMetric$closest_neighbor_index()rgeomstats::RiemannianMetric$cometric_matrix()rgeomstats::RiemannianMetric$diameter()rgeomstats::RiemannianMetric$dist()rgeomstats::RiemannianMetric$dist_broadcast()rgeomstats::RiemannianMetric$dist_pairwise()rgeomstats::RiemannianMetric$hamiltonian()rgeomstats::RiemannianMetric$inner_coproduct()rgeomstats::RiemannianMetric$inner_product()rgeomstats::RiemannianMetric$inner_product_derivative_matrix()rgeomstats::RiemannianMetric$metric_matrix()rgeomstats::RiemannianMetric$norm()rgeomstats::RiemannianMetric$normal_basis()rgeomstats::RiemannianMetric$normalize()rgeomstats::RiemannianMetric$random_unit_tangent_vec()rgeomstats::RiemannianMetric$sectional_curvature()rgeomstats::RiemannianMetric$squared_dist()rgeomstats::RiemannianMetric$squared_norm()new()
The SPDMetricAffine class constructor.
SPDMetricAffine$new(n, power_affine = 1, py_cls = NULL)
nAn integer value specifying the shape of the matrices: .
power_affineAn integer value specifying the power transformation
of the classical SPD metric. Defaults to 1L.
py_clsA Python object of class SPDMetricAffine. Defaults to
NULL in which case it is instantiated on the fly using the other
input arguments.
An object of class SPDMetricAffine.
clone()
The objects of this class are cloneable with this method.
SPDMetricAffine$clone(deep = FALSE)
deepWhether to make a deep clone.
Yann Thanwerdas
Thanwerdas Y, Pennec X (2019). “Is affine-invariance well defined on SPD matrices? A principled continuum of metrics.” In International Conference on Geometric Science of Information, 502–510. Springer.
An R6::R6Class object implementing the
SPDMetricBuresWasserstein class. This is the class for the
Bures-Wasserstein metric on the SPD manifold
(Bhatia et al. 2019; Malagò et al. 2018).
rgeomstats::PythonClass -> rgeomstats::Connection -> rgeomstats::RiemannianMetric -> SPDMetricBuresWasserstein
nAn integer value specifying the shape of the matrices: .
rgeomstats::PythonClass$get_python_class()rgeomstats::PythonClass$set_python_class()rgeomstats::Connection$christoffels()rgeomstats::Connection$curvature()rgeomstats::Connection$curvature_derivative()rgeomstats::Connection$directional_curvature()rgeomstats::Connection$directional_curvature_derivative()rgeomstats::Connection$exp()rgeomstats::Connection$geodesic()rgeomstats::Connection$geodesic_equation()rgeomstats::Connection$injectivity_radius()rgeomstats::Connection$ladder_parallel_transport()rgeomstats::Connection$log()rgeomstats::Connection$parallel_transport()rgeomstats::RiemannianMetric$closest_neighbor_index()rgeomstats::RiemannianMetric$cometric_matrix()rgeomstats::RiemannianMetric$diameter()rgeomstats::RiemannianMetric$dist()rgeomstats::RiemannianMetric$dist_broadcast()rgeomstats::RiemannianMetric$dist_pairwise()rgeomstats::RiemannianMetric$hamiltonian()rgeomstats::RiemannianMetric$inner_coproduct()rgeomstats::RiemannianMetric$inner_product()rgeomstats::RiemannianMetric$inner_product_derivative_matrix()rgeomstats::RiemannianMetric$metric_matrix()rgeomstats::RiemannianMetric$norm()rgeomstats::RiemannianMetric$normal_basis()rgeomstats::RiemannianMetric$normalize()rgeomstats::RiemannianMetric$random_unit_tangent_vec()rgeomstats::RiemannianMetric$sectional_curvature()rgeomstats::RiemannianMetric$squared_dist()rgeomstats::RiemannianMetric$squared_norm()new()
The SPDMetricBuresWasserstein class constructor.
SPDMetricBuresWasserstein$new(n, py_cls = NULL)
nAn integer value specifying the shape of the matrices: .
py_clsA Python object of class SPDMetricBuresWasserstein.
Defaults to NULL in which case it is instantiated on the fly using
the other input arguments.
An object of class SPDMetricBuresWasserstein.
clone()
The objects of this class are cloneable with this method.
SPDMetricBuresWasserstein$clone(deep = FALSE)
deepWhether to make a deep clone.
Yann Thanwerdas
Bhatia R, Jain T, Lim Y (2019).
“On the Bures–Wasserstein distance between positive definite matrices.”
Expositiones Mathematicae, 37(2), 165–191.
Malagò L, Montrucchio L, Pistone G (2018).
“Wasserstein Riemannian geometry of Gaussian densities.”
Information Geometry, 1(2), 137–179.
An R6::R6Class object implementing the SPDMetricEuclidean
class. This is the class for the Euclidean metric on the SPD manifold.
rgeomstats::PythonClass -> rgeomstats::Connection -> rgeomstats::RiemannianMetric -> SPDMetricEuclidean
nAn integer value specifying the shape of the matrices: .
power_euclideanAn integer value specifying the power transformation of the classical SPD metric.
rgeomstats::PythonClass$get_python_class()rgeomstats::PythonClass$set_python_class()rgeomstats::Connection$christoffels()rgeomstats::Connection$curvature()rgeomstats::Connection$curvature_derivative()rgeomstats::Connection$directional_curvature()rgeomstats::Connection$directional_curvature_derivative()rgeomstats::Connection$exp()rgeomstats::Connection$geodesic()rgeomstats::Connection$geodesic_equation()rgeomstats::Connection$injectivity_radius()rgeomstats::Connection$ladder_parallel_transport()rgeomstats::Connection$log()rgeomstats::Connection$parallel_transport()rgeomstats::RiemannianMetric$closest_neighbor_index()rgeomstats::RiemannianMetric$cometric_matrix()rgeomstats::RiemannianMetric$diameter()rgeomstats::RiemannianMetric$dist()rgeomstats::RiemannianMetric$dist_broadcast()rgeomstats::RiemannianMetric$dist_pairwise()rgeomstats::RiemannianMetric$hamiltonian()rgeomstats::RiemannianMetric$inner_coproduct()rgeomstats::RiemannianMetric$inner_product()rgeomstats::RiemannianMetric$inner_product_derivative_matrix()rgeomstats::RiemannianMetric$metric_matrix()rgeomstats::RiemannianMetric$norm()rgeomstats::RiemannianMetric$normal_basis()rgeomstats::RiemannianMetric$normalize()rgeomstats::RiemannianMetric$random_unit_tangent_vec()rgeomstats::RiemannianMetric$sectional_curvature()rgeomstats::RiemannianMetric$squared_dist()rgeomstats::RiemannianMetric$squared_norm()new()
The SPDMetricEuclidean class constructor.
SPDMetricEuclidean$new(n, power_euclidean = 1, py_cls = NULL)
nAn integer value specifying the shape of the matrices: .
power_euclideanAn integer value specifying the power
transformation of the classical SPD metric. Defaults to 1L.
py_clsA Python object of class SPDMetricEuclidean. Defaults to
NULL in which case it is instantiated on the fly using the other
input arguments.
An object of class SPDMetricEuclidean.
clone()
The objects of this class are cloneable with this method.
SPDMetricEuclidean$clone(deep = FALSE)
deepWhether to make a deep clone.
Yann Thanwerdas
An R6::R6Class object implementing the
SPDMetricLogEuclidean class. This is the class for the
log-Euclidean metric on the SPD manifold.
rgeomstats::PythonClass -> rgeomstats::Connection -> rgeomstats::RiemannianMetric -> SPDMetricLogEuclidean
nAn integer value specifying the shape of the matrices: .
rgeomstats::PythonClass$get_python_class()rgeomstats::PythonClass$set_python_class()rgeomstats::Connection$christoffels()rgeomstats::Connection$curvature()rgeomstats::Connection$curvature_derivative()rgeomstats::Connection$directional_curvature()rgeomstats::Connection$directional_curvature_derivative()rgeomstats::Connection$exp()rgeomstats::Connection$geodesic()rgeomstats::Connection$geodesic_equation()rgeomstats::Connection$injectivity_radius()rgeomstats::Connection$ladder_parallel_transport()rgeomstats::Connection$log()rgeomstats::Connection$parallel_transport()rgeomstats::RiemannianMetric$closest_neighbor_index()rgeomstats::RiemannianMetric$cometric_matrix()rgeomstats::RiemannianMetric$diameter()rgeomstats::RiemannianMetric$dist()rgeomstats::RiemannianMetric$dist_broadcast()rgeomstats::RiemannianMetric$dist_pairwise()rgeomstats::RiemannianMetric$hamiltonian()rgeomstats::RiemannianMetric$inner_coproduct()rgeomstats::RiemannianMetric$inner_product()rgeomstats::RiemannianMetric$inner_product_derivative_matrix()rgeomstats::RiemannianMetric$metric_matrix()rgeomstats::RiemannianMetric$norm()rgeomstats::RiemannianMetric$normal_basis()rgeomstats::RiemannianMetric$normalize()rgeomstats::RiemannianMetric$random_unit_tangent_vec()rgeomstats::RiemannianMetric$sectional_curvature()rgeomstats::RiemannianMetric$squared_dist()rgeomstats::RiemannianMetric$squared_norm()new()
The SPDMetricLogEuclidean class constructor.
SPDMetricLogEuclidean$new(n, py_cls = NULL)
nAn integer value specifying the shape of the matrices: .
py_clsA Python object of class SPDMetricLogEuclidean. Defaults
to NULL in which case it is instantiated on the fly using the other
input arguments.
An object of class SPDMetricLogEuclidean.
if (reticulate::py_module_available("geomstats")) {
mt <- SPDMetricLogEuclidean$new(n = 3)
mt
}
clone()
The objects of this class are cloneable with this method.
SPDMetricLogEuclidean$clone(deep = FALSE)
deepWhether to make a deep clone.
Yann Thanwerdas
## ------------------------------------------------ ## Method `SPDMetricLogEuclidean$new` ## ------------------------------------------------ if (reticulate::py_module_available("geomstats")) { mt <- SPDMetricLogEuclidean$new(n = 3) mt }## ------------------------------------------------ ## Method `SPDMetricLogEuclidean$new` ## ------------------------------------------------ if (reticulate::py_module_available("geomstats")) { mt <- SPDMetricLogEuclidean$new(n = 3) mt }
This function generates an instance of the class for the special orthogonal
group .
SpecialOrthogonal(n, point_type = "matrix", epsilon = 0, ..., py_cls = NULL)SpecialOrthogonal(n, point_type = "matrix", epsilon = 0, ..., py_cls = NULL)
n |
An integer value representing the shape of the |
point_type |
A character string specifying how elements of the group
should be represented. Choices are either |
epsilon |
A numeric value specifying the precision to use for
calculations involving potential division by 0 in rotations. Defaults to
|
... |
Extra arguments to be passed to parent class constructors. See
|
py_cls |
A Python object of class |
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.
Nicolas Guigui and Nina Miolane
Other special orthogonal classes:
SpecialOrthogonal2Vectors,
SpecialOrthogonal3Vectors,
SpecialOrthogonalMatrices
if (reticulate::py_module_available("geomstats")) { so3 <- SpecialOrthogonal(n = 3) so3 }if (reticulate::py_module_available("geomstats")) { so3 <- SpecialOrthogonal(n = 3) so3 }