**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.

The computer code and data files described and made available on this web page are distributed under the MIT license

**ellipse** 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.

geometry, a C++ code which performs geometric calculations in 2, 3 and M dimensional space, including the computation of angles, areas, containment, distances, intersections, lengths, and volumes.

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 uses a random number generator (RNG) to sample points corresponding to various probability density functions (PDF), spatial dimensions, and geometries, including the annulus, circle, ellipse, ellipsoid, hypercube, hypersphere, simplex, tetrahedron and triangle.

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

triangle, a C++ code which computes properties, including angles, area, centroid, circumcircle, edge lengths, incircle, orientation, orthocenter, and quality, of a triangle in 2D.

- ellipse.cpp, the source code.
- ellipse.sh, compiles the source code.
- ellipse.hpp, the include file.