# hypersphere

hypersphere, an Octave code which carries out various operations for an M-dimensional hypersphere, including converting between Cartesian and spherical coordinates, stereographic projection, sampling the surface of the sphere, and computing the surface area and volume.

### Languages:

hypersphere is available in a C version and a C++ version and a Fortran90 version and a MATLAB version and an Octave version and a Python version.

### Related Data and Programs:

geometry, an Octave code which performs geometric calculations in 2, 3 and M dimensional space.

hypersphere_angle, an Octave code which considers the problem of describing the typical value of the angle between a pair of points randomly selected on the unit hypersphere in M dimensions. Since by symmetry, this will be zero, we instead look at the average of the absolute value of the dot product, and the corresponding angle. This starts out at 1 for dimension 1, and rapidly decreases as the spatial dimension increases.

hypersphere_distance, an Octave code which computes the expected value of the distance between a pair of points randomly selected on the unit hypersphere in M dimensions.

hypersphere_integrals, an Octave code which returns the exact value of the integral of any monomial over the surface of the unit hypersphere in M dimensions.

hypersphere_monte_carlo, an Octave code which applies a Monte Carlo method to estimate the integral of a function on the surface of the unit sphere in M dimensions;

hypersphere_surface, an Octave code which illustrates a procedure for estimating the location of a hypersurface defined by a characteristic function or a signed function.

quadrilateral, an Octave code which carries out geometric calculations on quadrilaterals, including angles, area, distances, nearest point, point containment, perimeter, and random generation.

random_data, an Octave code which generates sample points for various probability distributions, spatial dimensions, and geometries, including the M-dimensional cube, ellipsoid, simplex and sphere.

sphere_stereograph, an Octave code which computes the stereographic mapping between points on the unit sphere and points on the plane Z = 1; a generalized mapping is also available

sphere_stereograph_display, an Octave code which computes and displays the results of several stereographic projections between a sphere and a plane.

### Reference:

George Marsaglia,
Choosing a point from the surface of a sphere,
Annals of Mathematical Statistics,
Volume 43, Number 2, April 1972, pages 645-646.

### Source Code:

Last revised on 01 February 2019.