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] , Nicolas Guigui [ctb] (Author of the Geomstats Python package, <https://orcid.org/0000-0002-7901-0732>), Alice Le Brigant [ctb] (Author of the Geomstats Python package, <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, <https://orcid.org/0000-0002-1200-9024>), Xavier Pennec [ctb] (Author of the Geomstats Python package, <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, <https://orcid.org/0000-0002-9351-6318>) |
Maintainer: | Aymeric Stamm <[email protected]> |
License: | MIT + file LICENSE |
Version: | 0.0.1.9000 |
Built: | 2024-10-26 03:40:03 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_manifold
An R6::R6Class specifying the base manifold to copy.
n_copies
An integer value specifying the number of replication of the base manifold.
metric
An R6::R6Class specifying the base metric to use.
Defaults to NULL
which uses the Riemannian metric.
default_coords_type
A string specifying the coordinate type.
Choices are "intrinsic"
or "extrinsic"
. Defaults to "intrinsic"
.
py_cls
A 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)
deep
Whether 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
n
An integer value specifying the shape of the matrices: .
power_affine
An 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)
n
An integer value specifying the shape of the matrices: .
power_affine
An integer value specifying the power transformation
of the classical SPD metric. Defaults to 1L
.
py_cls
A 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)
deep
Whether 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
n
An 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)
n
An integer value specifying the shape of the matrices: .
py_cls
A 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)
deep
Whether 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
n
An integer value specifying the shape of the matrices: .
power_euclidean
An 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)
n
An integer value specifying the shape of the matrices: .
power_euclidean
An integer value specifying the power
transformation of the classical SPD metric. Defaults to 1L
.
py_cls
A 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)
deep
Whether 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
n
An 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)
n
An integer value specifying the shape of the matrices: .
py_cls
A 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)
deep
Whether 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 }