Changes in geographiclib-octave

Version 2.5 (released 2025-11-07)
  * Fix bug in triaxial/distance when both endpoints are on the major
    principal ellipe for ellipsoids with a > 2 c.
  * Fix bug in triaxial/carttocart2 for a point in the interior of the
    ellipsoid and Z = 0.
  * Documentation fixes (standardize on uppercase R and V for geocentric
    coordinates).

Version 2.4 (released 2025-08-21)
  * Fix bug in geoddistance for very prolate ellipsoids.
  * Fix bug in triaxial.elliptocart2 for biaxial poles.
  * Minor documentation fixes.

Version 2.3.3 (released 2025-02-17)
  * Allow triaxial ellipsoid to be specified by [b, e2, k2, kp2] in
    addition to [a, b, c].
  * Fix triaxial to deal with prolate, oblate, and spherical cases.

Version 2.3.2 (released 2024-10-05)
  * Fix bug (reported by @xpyctjr) in geodreckon.  The indexing was
    buggy when S12 is requested and azi1 and s12 have different
    shapes.
  * Fix various breakages in triaxial.demo caused by recent changes in
    triaxial.reckon.

Version 2.3.1 (released 2024-08-27)
  * Bug fix: replace signbit by signbitx in geocent_inv and
    cassini_fwd.
  * Minor fix to @triaxial/accel.

Version 2.3 (released 2024-07-09)
  * Fix serious BUG in triaxial.distance where incorrect results were
    sometimes returned when bet1 and bet2 had opposite signs and were
    both close to +/-90deg.
  * Fix bug in the vectorization of triaxial.reckon when m12, M12, and
    M21 are requested.
  * Fix vectorization bugs for triaxial.elliptocart2 and
    triaxial.cart2toellip; these arose if the position was a single
    umbilical point, and several directions were specified.
  * Fix bug in triaxial.cart2toellip for the computation of azimuth
    for umbilical points.
  * Fix bug in handling default arguments for triaxial.ellipnorm.
  * Fix triaxial.distance with ellipsoidal coodinates so that the
    azimuths returned are consistent with the sheets of the endpoints.
  * triaxial.cart2toellip has a new signature to allow directions to
    be converted to azimuths consistent with a particular choice of
    elliptic coordinates.
  * Allow s12 to be a n x m array in triaxial.reckon.
  * Add triaxial.ellipflip.
  * Default ellipsoid parameters (for the Earth) are rounded to the
    nearest meter.

Version 2.2 (released 2024-04-09)
  * Add a class, triaxial, to solve problems on a triaxial ellipsoid.
    This involves a lot of new code so...  Expect there to be errors
    in the documentation (please report).  Also be prepared for the
    interface to change.  The class includes
    - the solution of the direct and inverse geodesic problems,
    - conversions between various coordinate systems,
    - random sampling on the ellipsoid,
    - functions to aid plotting curves on the ellipsoid.

Version 2.1 (released 2024-04-06)
  * The ellipsoid returned by defaultellipsoid can now be set.
  * Relax overly strict convergence test in geoddistance.

Version 2.0 (released 2022-04-21)
  * Reorganized code base; there's now a stand-alone git repository at
    https://github.com/geographiclib/geographiclib-octave
  * Created an Octave package.
  * Fix bug where a geodesic with lat1 = 0 and lat2 = nan was treated
    as equatorial.
  * Upgrade the vectorization in geodreckon so that it handles
    computations in which lat1, lon1, azi1 are column vectors and s12
    is a row vector efficiently.
  * More careful treatment of angles +/-0 and +/-180.
    - These behave consistently with taking the limits
        +/-0 means +/-eps as eps -> 0+
        +/-180 means +/-(180 - eps) as eps -> 0+
    - As a consequence, azimuths of +0 and +180 are reckoned to be
      east-going, as far as tracking the longitude with long_unroll
      and the area goes, while azimuths -0 and -180 are reckoned to be
      west-going.
    - When computing longitude differences, if lon2 - lon1 = +/-180
      (mod 360), then the sign is picked depending on the sign of the
      difference.
    - A separate test suite geographiclib_signtest has been added to
      check this treatment.

Version 1.52 (released 2021-06-22)
  * Be more aggressive in preventing negative s12 and m12 for short
    lines (all languages).

Version 1.50 (released 2019-09-24)
  * BUG fixes:
    - fix bug in mgrs_inv which resulted in incorrect results for UPS
      zones with prec = -1;
    - in geodreckon and geoddistance, suppress (innocuous) "warning:
      division by zero" messages from Octave.
  * geodarea can now handle arbitrarily complex polygons.  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.
  * private/cbrtx now preserves the sign of -0.
  * Improve code coverage in the tests.

Version 1.48 (released 2017-04-09)
  * The default range for longitude and azimuth is now (-180 deg, 180
    deg], instead of [-180 deg, 180 deg).
  * Fix BUG in geodreckon with mixed scalar and array arguments.

Version 1.47 (released 2017-02-15)
  * Improve accuracy of area calculation (fixing a flaw introduced in
    version 1.46).

Version 1.46 (released 2016-02-15)
  * More accurate solution of the inverse problem when longitude
    difference is close to 180 deg.

Version 1.45 (released 2015-09-30)
  * Fix array size mismatch in geoddistance by avoiding calls to
    subfunctions with zero-length arrays.
  * Fix tranmerc_{fwd,inv} so that they work with arrays and mixed
    array/scalar arguments.
  * Work around Octave problem which causes mgrs_fwd to return garbage
    with prec = 10 or 11.
  * Add geographiclib_test.m to run a test suite.

Version 1.44 (released 2015-08-14)
  * Various changes to improve accuracy, e.g., by minimizing round-off
    errors:
    - add sincosdx which take its arguments in degrees.  This does
      exact range reduction and thus they obey exactly the elementary
      properties of the trigonometric functions, e.g., sin 9 deg = cos
      81 deg = - sin 123456789 deg;
    - AngNormalize now works for any angles, instead of angles in
      the range [-540 deg, 540 deg);
    - this means that there is now no restriction on longitudes and
      azimuths; any values can be used;
    - improve the accuracy of atan2dx.
  * mgrs_fwd now treats treats prec &gt; 11 as prec = 11.
  * Illegal letter combinations are now correctly detected by mgrs_inv.
  * Fixed bug where mgrs_inv returned the wrong results for prec = 0
    strings and center = 0.
  * mgrs_inv now decodes prec = 11 strings properly.
  * Routines now return array results with the right shape.
  * Routines now properly handle mixed scalar and array arguments.

Version 1.43 (released 2015-05-23)
  * LONG_NOWRAP is now called LONG_UNROLL (a less negative sounding
    term).
  * Fixed a bad BUG in the implementation of this capability: it gave
    incorrect results for west-going geodesics.
  * mgrs_inv now takes an optional center argument and strips white
    space from both beginning and end of the string.

Version 1.42 (released 2015-04-28)
  * Reorganize directories, so that
    - matlab/geographiclib contains the native matlab code;
    - matlab/geographiclib-legacy contains wrapper functions to mimic
      the previous compiled functionality.
  * matlab/geographiclib is now packaged and distributed as MATLAB File
    Exchange package
     https://www.mathworks.com/matlabcentral/fileexchange/50605
  * Point fix for geodarea.m to correct bug in area of polygons which
     encircle a pole multiple times.

Version 1.39 (released 2014-11-11)
  * Fix BLUNDER in area calculation in MATLAB routine geodreckon;
  * Add area calculation to routines for great ellipses.

Version 1.38 (released 2014-10-02)
  * MATLAB/Octave routines for great ellipses added.

Version 1.32 (released 2013-07-12)
  * Accumulate the perimeter and area of polygons via a double-wide
    accumulator.

Version 1.28 (released 2012-12-11)
  * add MATLAB implementations of the geodesic projections

Version 1.27 (released 2012-11-29)
  * add native MATLAB implementations: geoddistance.m, geodreckon.m,
    geodarea.m.
