Module geodesy.geodesic

Robust direct and inverse ellipsoidal geodesics on a prepared ellipsoid.

The module solves the classical surface-geodesic problems with a Karney-family auxiliary-sphere/series implementation rather than Vincenty-style inverse iteration. The design explicitly covers difficult configurations such as nearly antipodal points, poles, coincident points, very short paths, and longitude discontinuities within its documented ellipsoid domain.

Domain

Prepared solvers support a > 0 and 0 <= f <= 0.01, including spheres. Positions are surface GeographicCoordinate values; no datum or CRS identity is embedded.

Units

Returned distances use the same linear unit as the ellipsoid semi-major axis. Azimuths use strong Angle values.

Numerics

The implementation follows Karney's geodesic formulation with scalar-dependent working precision and series order. Public float calculations use promoted double working precision.

Performance

Geodesic prepares reusable ellipsoid-dependent coefficients once for repeated direct and inverse operations. Checked numerical operations are allocation-free.

Validation

Accepted through analytical/special-case tests, deterministic corpora, published/high-precision reference data, and differential comparison with GeographicLib geodesic implementations and PROJ as appropriate.

See Also

Geodesic, GeodesicDirectResult, GeodesicInverseResult, GeographicCoordinate

Date

September 26, 2026

Structs

NameDescription
Geodesic Prepared direct/inverse geodesic solver for one reference ellipsoid.
GeodesicDirectResult Result of a direct geodesic operation.
GeodesicInverseResult Result of an inverse geodesic operation.