Changes the reference point for tangent space representations on a Riemannian manifold.
relocate(old_ref, new_ref, images, met)
A reference point on the manifold to be replaced. Must be an object of class dppMatrix
from the Matrix package.
The new reference point on the manifold. Must be an object of class dppMatrix
from the Matrix package.
A list of tangent representations relative to the old reference point. Each element in the list must be an object of class dspMatrix
.
A metric object of class rmetric
, containing functions for Riemannian operations (logarithmic map, exponential map, vectorization, and inverse vectorization).
A list of tangent representations relative to the new reference point. Each element in the returned list will be an object of class dspMatrix
.
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
#>