
Map hyperbolic data to the tangent space at a base point.
Source:R/manifold-hyperbolic.R
log_map_hyperbolic.RdApplies the logarithmic map of \(H^d\) at base point p. At
\(p = (1, 0, \ldots, 0)\) it is
\(\log_p(x) = \mathrm{arcsinh}(\|x'\|)\, x' / \|x'\|\) with
\(x' = (x_1, \ldots, x_d)\), which equals the
\(\mathrm{arccosh}(x_0)\, x'/\|x'\|\) of the hyperboloid model but is
numerically accurate close to p. For a general p, the data
are first moved by the Lorentz boost sending p to
\((1, 0, \ldots, 0)\), which identifies the tangent space at p
with \(R^d\). The map is a global diffeomorphism (\(H^d\) has no cut
locus).
Value
A numeric matrix with nrow(X) rows and d columns:
the tangent-space coordinates of each row of X, whose norms are
the geodesic distances to p.
Examples
X <- exp_map_hyperbolic(matrix(rnorm(20), nrow = 10, ncol = 2))
log_map_hyperbolic(X, p = c(1, 0, 0))
#> [,1] [,2]
#> [1,] 1.12792660 -0.6954311
#> [2,] 1.81345434 -0.7836391
#> [3,] -0.08382568 -0.9531239
#> [4,] 1.36770667 1.7927561
#> [5,] -0.62743462 0.3489767
#> [6,] -0.21662915 0.2591038
#> [7,] -0.68371382 -0.8059519
#> [8,] -0.44470273 0.1056647
#> [9,] 0.60648981 -0.3335997
#> [10,] 0.62418307 1.6418480