C library for Geodesics  2.1
Change log
  • Version 2.1 (released 2023-01-04)
    • Minor improvement in the logic for the geodesic inverse problem.
    • Relax overly strict convergence test for inverse problem.
    • Allow for buggy remquo in geodsigntest.c.
  • Version 2.0 (released 2022-04-21)
    • This is a major reorganization with the C library put into its own git repository, https://github.com/geographiclib/geographiclib-c. Despite this, there are only reasonably minor changes to the library itself.
    • Fix bug where the solution of the inverse geodesic problem with φ1 = 0 and φ2 = nan was treated as equatorial.
    • Updated Library documentation to provide a better guide to the use of this library.
    • Add documentation and an example of using solving geodesic problems with PROJ.
    • More careful treatment of ±0° and ±180°.
      • These behave consistently with taking the limits
        • ±0 means ±ε as ε → 0+
        • ±180 means ±(180 − ε) as ε → 0+
      • As a consequence, azimuths of +0° and +180° are reckoned to be east-going, as far as tracking the longitude with GEOD_LONG_UNROLL and the area goes, while azimuths −0° and −180° are reckoned to be west-going.
      • When computing longitude differences, if λ2 − λ1 = ±180° (mod 360°), then the sign is picked depending on the sign of the difference.
      • The normal range for returned longitudes and azimuths is [−180°, 180°].
      • A separate test suite geodsigntest has been added to check this treatment.
  • Version 1.52 (released 2021-03-13)
    • Be more aggressive in preventing negative s12 and m12 for short lines.
    • Initialize reference argument to remquo.
    • Work around inaccurate implementation of hypot with Visual Studio (win32).
  • Version 1.51 (released 2020-11-22)
    • C99 is now required, so there's no need for private implementations of various routines now defined in math.h.
  • Version 1.50 (released 2019-09-22)
    • Allow arbitrarily complex polygons in geod_polygon_*. In the case of self-intersecting polygons the area is accumulated "algebraically", e.g., the areas of the 2 loops in a figure-8 polygon will partially cancel.
    • Workaround bugs in fmod and sin in Visual Studio 10, 11, and 12 and relax delta for GeodSolve59 in geodtest (tagged v1.49.1-c).
    • Fix bug in geod_polygon_addedge which caused the count of pole encirclings to be wrong, sometimes resulting in an incorrect area if a polygon vertex had longitude = 0 (tagged v1.49.2-c).
  • Version 1.49 (released 2017-10-05)
    • Fix more warning messages from some compilers; add tests.
  • Version 1.48 (released 2017-04-09)
    • This is the version slated for the version of proj.4 after 4.9.4 (tagged v1.48.1-c).
    • Fix warnings messages from some compilers.
    • Change default range for longitude and azimuth to (−180°, 180°] (instead of [−180°, 180°)).
  • Version 1.47 (released 2017-02-15)
    • This is the version incorporated into proj.4 version 4.9.3 (tagged v1.46.1-c).
    • Fix the order of declarations, incorporating the patches in version 1.46.1.
    • Improve accuracy of area calculation (fixing a flaw introduced in version 1.46).
  • Version 1.46 (released 2016-02-15)
    • Add s13 and a13 to the geod_geodesicline struct.
    • Add geod_directline, geod_gendirectline, and geod_inverseline.
    • More accurate inverse solution when longitude difference is close to 180°.
  • Version 1.45 (released 2015-09-30)
    • The solution of the inverse problem now correctly returns NaNs if one of the latitudes is a NaN.
    • Include a test suite that can be run with "make test" after configuring with cmake.
    • Add geod_polygon_clear().
  • Version 1.44 (released 2015-08-14)
    • This is the version incorporated into proj.4 version 4.9.2.
    • Improve accuracy of calculations by evaluating trigonometric functions more carefully and replacing the series for the reduced length with one with a smaller truncation error.
    • The allowed ranges for longitudes and azimuths is now unlimited; it used to be [−540°, 540°).
    • Enforce the restriction of latitude to [−90°, 90°] by returning NaNs if the latitude is outside this range.
    • The inverse calculation sets s12 to zero for coincident points at pole (instead of returning a tiny quantity).
  • Version 1.40 (released 2014-12-18)
    • This is the version incorporated into proj.4 version 4.9.1.
  • Version 1.32 (released 2013-07-12)
    • This is the version incorporated into proj.4 version 4.9.0.