Changes the reference point for tangent space representations on a Riemannian manifold.
Arguments
- old_ref
A reference point on the manifold to be replaced. Must be an object of class
dppMatrix
from the Matrix package.- new_ref
The new reference point on the manifold. Must be an object of class
dppMatrix
from the Matrix package.- images
A list of tangent representations relative to the old reference point. Each element in the list must be an object of class
dspMatrix
.- met
A metric object of class
rmetric
, containing functions for Riemannian operations (logarithmic map, exponential map, vectorization, and inverse vectorization).
Value
A list of tangent representations relative to the new reference point. Each element in the returned list will be an object of class dspMatrix
.
Examples
if (requireNamespace("Matrix", quietly = TRUE)) {
library(Matrix)
data(airm)
old_ref <- diag(2) |>
Matrix::nearPD() |>
_$mat |>
Matrix::pack()
new_ref <- diag(c(2, 3)) |>
Matrix::nearPD() |>
_$mat |>
Matrix::pack()
images <- list(
diag(2) |> Matrix::symmpart() |> Matrix::pack(),
diag(c(1, 0.5)) |> Matrix::symmpart() |> Matrix::pack()
)
relocate(old_ref, new_ref, images, airm)
}
#> [[1]]
#> 2 x 2 Matrix of class "dspMatrix"
#> [,1] [,2]
#> [1,] 0.6137056 0.0000000
#> [2,] 0.0000000 -0.2958369
#>
#> [[2]]
#> 2 x 2 Matrix of class "dspMatrix"
#> [,1] [,2]
#> [1,] 0.6137056 0.000000
#> [2,] 0.0000000 -1.795837
#>