Finish libtellurian_vincenty_inverse__ Document the details of NaN returns in libtellurian_distance.3 Document what happens to the azimuths when the starting point is a pole. libtellurian_coarse_distance can be simplified to (d/2R)² which would be an good alternative for simply sorting distances, and it would still be easy to afterwards convert the values for a selection of them into approximate distances. Add inverse function of libtellurian_effective_gravity_radians Add inverse function of libtellurian_elevated_gravity_radians And functions for converting between coordinate systems Geodetic (h, φ, λ) : Angle between normal and equatorial plane Inverse of Cartesian (see Cartesian for definition of N) Iteration is required unless φ or h is known λ = atan2(Y, X) h = p / cos φ - N φ = tan⁻¹(Zp⁻¹/(1 - e²N/(N + h))) where p = √(X² + Y²) https://en.wikipedia.org/wiki/Geographic_coordinate_conversion#From_ECEF_to_geodetic_coordinates When h=0 λ = atan2(Y, X) φ = tan⁻¹(Zp⁻¹/(1 - e²)) where p = √(X² + Y²) wouldn't it easier to convert to geocentric intermittently Geocentric ϕ : Angle from centre of earth ϕ = tan⁻¹((1 - e²) tan φ) Geometric : Arc length = geodetic Parametric/reduced β : spherical angle resulting in same distance from polar axis as β = tan⁻¹((1 - f) tan φ) Ellipsoidal-harmonic TODO Rectifying μ μ = πm(φ) / 2m(½π), where m(u) = a(1 - e²) ∫{0→u} √(1 - e² sin² v)⁻³ dv Authalic ξ ξ = sin⁻¹(q(φ) / q(½π)), where q(u) = ((1 - e²) sin u)/(1 - e² sin u) + (1 - e²) e⁻¹ tanh⁻¹ (e sin u) q(½π) = 1 + (1 - e²) e⁻¹ tanh⁻¹ e Conformal χ χ = tan⁻¹ (sinh [sinh⁻¹ tan φ - e tanh⁻¹ (e sin φ)]) Isometric ψ ψ = sinh⁻¹ tan φ - e than⁻¹ (e sin φ) Astronomical Φ : angle between equatorial plane and the true vertical direction the true vertical direction, is the direction of gravity which is affect byu the centrifugal acceleration in addition to the gravitational acceleration. Cartesian (geocentric Cartesian) X = (N + h) cos φ cos λ Y = (N + h) cos φ sin λ Z = (Nb²/a² + h) sin φ where N = a²/√(a² cos² φ + b² sin² φ)