| RiemannianMetric | R Documentation |
An R6::R6Class object implementing the base
RiemannianMetric class. This is an abstract class for Riemannian and
pseudo-Riemannian metrics which are the associated Levi-Civita connection
on the tangent bundle.
rgeomstats::PythonClass -> rgeomstats::Connection -> RiemannianMetric
signatureAn integer vector specifying the signature of the 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()new()The RiemannianMetric class constructor.
RiemannianMetric$new( dim, shape = NULL, signature = NULL, default_coords_type = "intrinsic", py_cls = NULL )
dimAn integer value specifying the dimension of the manifold.
shapeAn integer vector specifying the shape of one element of the
manifold. Defaults to NULL.
signatureAn integer vector specifying the signature of the
metric. Defaults to c(dim, 0L).
default_coords_typeA string specifying the coordinate type.
Choices are extrensic or intrinsic. Defaults to intrinsic.
py_clsA Python object of class RiemannianMetric. Defaults to
NULL in which case it is instantiated on the fly using the other
input arguments.
An object of class RiemannianMetric.
metric_matrix()Metric matrix at the tangent space at a base point.
RiemannianMetric$metric_matrix(base_point = NULL)
base_pointA numeric array of shape dim specifying a point on
the manifold. Defaults to NULL.
A numeric array of shape dim x dim storing the inner-product
matrix.
if (reticulate::py_module_available("geomstats")) {
# mt <- SPDMetricLogEuclidean$new(n = 3)
# mt$metric_matrix()
}
cometric_matrix()Inner co-product matrix at the cotangent space at a base point. This represents the cometric matrix, i.e. the inverse of the metric matrix.
RiemannianMetric$cometric_matrix(base_point = NULL)
base_pointA numeric array of shape dim specifying a point on
the manifold. Defaults to NULL.
A numeric array of shape dim x dim storing the inverse of the
inner-product matrix.
if (reticulate::py_module_available("geomstats")) {
# mt <- SPDMetricLogEuclidean$new(n = 3)
# mt$cometric_matrix()
}
inner_product_derivative_matrix()Compute derivative of the inner prod matrix at base point.
RiemannianMetric$inner_product_derivative_matrix(base_point)
base_pointA numeric array of shape dim specifying a point on
the manifold. Defaults to NULL.
A numeric array of shape dim x dim storing the derivative of
the inverse of the inner-product matrix.
if (reticulate::py_module_available("geomstats")) {
# mt <- SPDMetricLogEuclidean$new(n = 3)
# mt$inner_product_derivative_matrix()
}
inner_product()Inner product between two tangent vectors at a base point.
RiemannianMetric$inner_product(tangent_vec_a, tangent_vec_b, base_point)
tangent_vec_aA numeric array of shape dim specifying a tangent
vector at base point.
tangent_vec_bA numeric array of shape dim specifying a tangent
vector at base point.
base_pointA numeric array of shape dim specifying a point on
the manifold. Defaults to NULL.
A scalar value representing the inner product between the two input tangent vectors at the input base point.
if (reticulate::py_module_available("geomstats")) {
mt <- SPDMetricLogEuclidean$new(n = 3)
mt$inner_product(diag(0, 3), diag(1, 3), base_point = diag(1, 3))
}
inner_coproduct()Computes inner coproduct between two cotangent vectors at base point. This is the inner product associated to the cometric matrix.
RiemannianMetric$inner_coproduct( cotangent_vec_a, cotangent_vec_b, base_point = NULL )
cotangent_vec_aA numeric array of shape dim specifying a
cotangent vector at base point.
cotangent_vec_bA numeric array of shape dim specifying a
cotangent vector at base point.
base_pointA numeric array of shape dim specifying a point on
the manifold. Defaults to NULL.
A scalar value representing the inner coproduct between the two input cotangent vectors at the input base point.
if (reticulate::py_module_available("geomstats")) {
# mt <- SPDMetricLogEuclidean$new(n = 3)
# mt$inner_coproduct(diag(0, 3), diag(1, 3), base_point = diag(1, 3))
}
hamiltonian()Computes the Hamiltonian energy associated to the cometric. The Hamiltonian at state (q, p) is defined by
H(q, p) = \frac{1}{2} \langle p, p \rangle_q,
where \langle \cdot, \cdot \rangle_q is the cometric at q.
RiemannianMetric$hamiltonian(state)
stateA list with two components: (i) a numeric array of shape
dim specifying the position which is a point on the manifold and
(ii) a numeric array of shape dim specifying the momentum which is
a cotangent vector.
A numeric value representing the Hamiltonian energy at state.
if (reticulate::py_module_available("geomstats")) {
# mt <- SPDMetricLogEuclidean$new(n = 3)
# mt$hamiltonian()
}
squared_norm()Computes the square of the norm of a vector. Squared norm of a vector associated to the inner product at the tangent space at a base point.
RiemannianMetric$squared_norm(vector, base_point = NULL)
vectorA numeric array of shape dim specifying a vector.
base_pointA numeric array of shape dim specifying a point on
the manifold. Defaults to NULL.
A numeric value representing the squared norm of the input vector.
if (reticulate::py_module_available("geomstats")) mt <- SPDMetricLogEuclidean$new(n = 3) mt$squared_norm(diag(0, 3), diag(1, 3))
norm()Computes the norm of a vector associated to the inner product at the tangent space at a base point.
RiemannianMetric$norm(vector, base_point = NULL)
vectorA numeric array of shape dim specifying a vector.
base_pointA numeric array of shape dim specifying a point on
the manifold. Defaults to NULL.
This only works for positive-definite Riemannian metrics and inner products.
A numeric value representing the norm of the input vector.
if (reticulate::py_module_available("geomstats")) mt <- SPDMetricLogEuclidean$new(n = 3) mt$norm(diag(0, 3), diag(1, 3))
normalize()Normalizes a tangent vector at a given point.
RiemannianMetric$normalize(vector, base_point = NULL)
vectorA numeric array of shape dim specifying a vector.
base_pointA numeric array of shape dim specifying a point on
the manifold. Defaults to NULL.
A numeric array of shape dim storing the normalized version of
the input tangent vector.
if (reticulate::py_module_available("geomstats")) {
# mt <- SPDMetricLogEuclidean$new(n = 3)
# mt$normalize(diag(2, 3), diag(1, 3))
}
random_unit_tangent_vec()Generates a random unit tangent vector at a given point.
RiemannianMetric$random_unit_tangent_vec(base_point = NULL, n_vectors = 1)
base_pointA numeric array of shape dim specifying a point on
the manifold. Defaults to NULL.
n_vectorsAn integer value specifying the number of vectors to be
generated at base_point. For vectorization purposes, n_vectors can
be greater than 1 iff base_point corresponds to a single point.
Defaults to 1L.
A numeric array of shape c(n_vectors, dim) storing random unit
tangent vectors at base_point.
if (reticulate::py_module_available("geomstats")) {
# mt <- SPDMetricLogEuclidean$new(n = 3)
# mt$random_unit_tangent_vec(diag(1, 3))
}
squared_dist()Squared geodesic distance between two points.
RiemannianMetric$squared_dist(point_a, point_b, ...)
point_aA numeric array of shape dim on the manifold.
point_bA numeric array of shape dim on the manifold.
...Extra parameters to be passed to the $log() method of the
parent Connection class.
A numeric value storing the squared geodesic distance between the two input points.
if (reticulate::py_module_available("geomstats")) mt <- SPDMetricLogEuclidean$new(n = 3) mt$squared_dist(diag(1, 3), diag(1, 3))
dist()Geodesic distance between two points.
RiemannianMetric$dist(point_a, point_b, ...)
point_aA numeric array of shape dim on the manifold.
point_bA numeric array of shape dim on the manifold.
...Extra parameters to be passed to the $log() method of the
parent Connection class.
It only works for positive definite Riemannian metrics.
A numeric value storing the geodesic distance between the two input points.
if (reticulate::py_module_available("geomstats")) {
mt <- SPDMetricLogEuclidean$new(n = 3)
mt$dist(diag(1, 3), diag(1, 3))
}
dist_broadcast()Computes the geodesic distance between points.
RiemannianMetric$dist_broadcast(points_a, points_b)
points_aA numeric array of shape c(n_samples_a, dim) specifying
a set of points on the manifold.
points_bA numeric array of shape c(n_samples_b, dim) specifying
a set of points on the manifold.
If n_samples_a == n_samples_b then dist is the element-wise
distance result of a point in points_a with the point from points_b
of the same index. If n_samples_a != n_samples_b then dist is the
result of applying geodesic distance for each point from points_a to
all points from points_b.
A numeric array of shape c(n_samples_a, dim) if n_samples_a == n_samples_b or of shape c(n_samples_a, n_samples_b, dim) if
n_samples_a != n_samples_b storing the geodesic distance between
points in set A and points in set B.
if (reticulate::py_module_available("geomstats")) {
mt <- SPDMetricLogEuclidean$new(n = 3)
mt$dist(diag(1, 3), diag(1, 3))
}
dist_pairwise()Computes the pairwise distance between points.
RiemannianMetric$dist_pairwise(points, n_jobs = 1, ...)
pointsA numeric array of shape c(n_samples, dim) specifying a
set of points on the manifold.
n_jobsAn integer value specifying the number of cores for
parallel computation. Defaults to 1L.
...Extra parameters to be passed tothe joblib.Parallel Python
class. See joblib documentation for details.
A numeric matrix of shape c(n_samples, n_samples) storing the
pairwise geodesic distances between all the points.
diameter()Computes the diameter of set of points on a manifold.
RiemannianMetric$diameter(points)
pointsA numeric array of shape c(n_samples, dim) specifying a
set of points on the manifold.
The diameter is the maximum over all pairwise distances.
A numeric value representing the largest distance between any two points in the input set.
closest_neighbor_index()Finds the closest neighbor to a point among a set of neighbors.
RiemannianMetric$closest_neighbor_index(point, neighbors)
pointA numeric array of shape dim specifying a point on the
manifold.
neighborsA numeric array of shape c(n_neighbors, dim)
specifying a set of neighboring points for the input point.
An integer value representing the index of the neighbor in
neighbors that is closest to point.
normal_basis()Normalizes the basis with respect to the metric. This corresponds to a renormalization of each basis vector.
RiemannianMetric$normal_basis(basis, base_point = NULL)
basisA numeric array of shape c(dim, dim) specifying a basis.
base_pointA numeric array of shape dim specifying a point on
the manifold. Defaults to NULL.
A numeric array of shape c(dim, n, n) storing the normal basis.
sectional_curvature()Computes the sectional curvature.
RiemannianMetric$sectional_curvature( tangent_vec_a, tangent_vec_b, base_point = NULL )
tangent_vec_aA numeric array of shape c(n, n) specifying a
tangent vector at base_point.
tangent_vec_bA numeric array of shape c(n, n) specifying a
tangent vector at base_point.
base_pointA numeric array of shape dim specifying a point on
the manifold. Defaults to NULL.
For two orthonormal tangent vectors x and y at a base point, the sectional curvature is defined by
\langle R(x, y)x, y \rangle = \langle R_x(y), y \rangle.
For non-orthonormal vectors, it is
\langle R(x, y)x, y \rangle / \\|x \wedge y\\|^2.
See also https://en.wikipedia.org/wiki/Sectional_curvature.
A numeric value representing the sectional curvature at
base_point.
clone()The objects of this class are cloneable with this method.
RiemannianMetric$clone(deep = FALSE)
deepWhether to make a deep clone.
Nina Miolane
## ------------------------------------------------
## Method `RiemannianMetric$metric_matrix`
## ------------------------------------------------
if (reticulate::py_module_available("geomstats")) {
# mt <- SPDMetricLogEuclidean$new(n = 3)
# mt$metric_matrix()
}
## ------------------------------------------------
## Method `RiemannianMetric$cometric_matrix`
## ------------------------------------------------
if (reticulate::py_module_available("geomstats")) {
# mt <- SPDMetricLogEuclidean$new(n = 3)
# mt$cometric_matrix()
}
## ------------------------------------------------
## Method `RiemannianMetric$inner_product_derivative_matrix`
## ------------------------------------------------
if (reticulate::py_module_available("geomstats")) {
# mt <- SPDMetricLogEuclidean$new(n = 3)
# mt$inner_product_derivative_matrix()
}
## ------------------------------------------------
## Method `RiemannianMetric$inner_product`
## ------------------------------------------------
if (reticulate::py_module_available("geomstats")) {
mt <- SPDMetricLogEuclidean$new(n = 3)
mt$inner_product(diag(0, 3), diag(1, 3), base_point = diag(1, 3))
}
## ------------------------------------------------
## Method `RiemannianMetric$inner_coproduct`
## ------------------------------------------------
if (reticulate::py_module_available("geomstats")) {
# mt <- SPDMetricLogEuclidean$new(n = 3)
# mt$inner_coproduct(diag(0, 3), diag(1, 3), base_point = diag(1, 3))
}
## ------------------------------------------------
## Method `RiemannianMetric$hamiltonian`
## ------------------------------------------------
if (reticulate::py_module_available("geomstats")) {
# mt <- SPDMetricLogEuclidean$new(n = 3)
# mt$hamiltonian()
}
## ------------------------------------------------
## Method `RiemannianMetric$normalize`
## ------------------------------------------------
if (reticulate::py_module_available("geomstats")) {
# mt <- SPDMetricLogEuclidean$new(n = 3)
# mt$normalize(diag(2, 3), diag(1, 3))
}
## ------------------------------------------------
## Method `RiemannianMetric$random_unit_tangent_vec`
## ------------------------------------------------
if (reticulate::py_module_available("geomstats")) {
# mt <- SPDMetricLogEuclidean$new(n = 3)
# mt$random_unit_tangent_vec(diag(1, 3))
}
## ------------------------------------------------
## Method `RiemannianMetric$dist`
## ------------------------------------------------
if (reticulate::py_module_available("geomstats")) {
mt <- SPDMetricLogEuclidean$new(n = 3)
mt$dist(diag(1, 3), diag(1, 3))
}
## ------------------------------------------------
## Method `RiemannianMetric$dist_broadcast`
## ------------------------------------------------
if (reticulate::py_module_available("geomstats")) {
mt <- SPDMetricLogEuclidean$new(n = 3)
mt$dist(diag(1, 3), diag(1, 3))
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.