hypersphere

hypersphere, a C 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 a Python version.

Related Data and Programs:

ellipse, a C code which carries out geometric calculations for ellipses and ellipsoids, including area, distance to a point, eccentricity, perimeter, points along the perimeter, random sampling, conversion between standard and quadratic forms.

geometry, a C code which performs geometric calculations in 2, 3 and M dimensional space.

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

polygon, a C code which computes properties of an arbitrary polygon in the plane, defined by a sequence of vertices, including interior angles, area, centroid, containment of a point, convexity, diameter, distance to a point, inradius, lattice area, nearest point in set, outradius, uniform sampling.

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

sphere_stereograph, a C 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

tetrahedron, a C code which computes properties of a tetrahedron in 3D, including the centroid, circumsphere, dihedral angles, edge lengths, face angles, face areas, insphere, quality, solid angles, and volume.

triangle, a C code which computes properties of a triangle whose vertex coordinates are read from a file.

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 May 2022.