angles_to_sphere: Conversion between angular and Cartesian coordinates of the...

View source: R/harmonics.R

angles_to_sphereR Documentation

Conversion between angular and Cartesian coordinates of the (hyper)sphere

Description

Transforms the angles (\theta_1,\ldots,\theta_{p-1})' in [0,\pi)^{p-2}\times[-\pi,\pi) into the Cartesian coordinates

(\cos(x_1),\sin(x_1)\cos(x_2),\ldots, \sin(x_1)\cdots\sin(x_{p-2})\cos(x_{p-1}), \sin(x_1)\cdots\sin(x_{p-2})\sin(x_{p-1}))'

of S^{p-1}, and vice versa.

Usage

angles_to_sphere(theta)

sphere_to_angles(x)

Arguments

theta

matrix of size c(n, p - 1) with the angles.

x

matrix of size c(n, p) with the Cartesian coordinates. Assumed to be of unit norm by rows.

Value

For angles_to_sphere, the matrix x. For sphere_to_angles, the matrix theta.

Examples

# Check changes of coordinates
sphere_to_angles(angles_to_sphere(c(pi / 2, 0, pi)))
sphere_to_angles(angles_to_sphere(rbind(c(pi / 2, 0, pi), c(pi, pi / 2, 0))))
angles_to_sphere(sphere_to_angles(c(0, sqrt(0.5), sqrt(0.1), sqrt(0.4))))
angles_to_sphere(sphere_to_angles(
  rbind(c(0, sqrt(0.5), sqrt(0.1), sqrt(0.4)),
        c(0, sqrt(0.5), sqrt(0.5), 0),
        c(0, 1, 0, 0),
        c(0, 0, 0, -1),
        c(0, 0, 1, 0))))

# Circle
sphere_to_angles(angles_to_sphere(0))
sphere_to_angles(angles_to_sphere(cbind(0:3)))
angles_to_sphere(cbind(sphere_to_angles(rbind(c(0, 1), c(1, 0)))))
angles_to_sphere(cbind(sphere_to_angles(rbind(c(0, 1)))))

sphunif documentation built on Aug. 21, 2023, 9:11 a.m.