Home > Web Site Updates > AA+ v2.26

AA+ v2.26

March 12, 2021

Just to let everyone know that v2.26 of AA+ has been released. Updates for this version include:

  • Reworked CAADynamicalTime::DeltaT to use std::upper_bound to speed up logic to find correct entry in the g_DeltaTValues lookup table.
  • Reworked CAADynamicalTime::CumulativeLeapSeconds to use std::upper_bound to speed up logic to find correct entry in the g_LeapSecondCoefficients lookup table.
  • Updated the g_DeltaTValues lookup table to use values from the year 1657 to 1972.50 to use data from https://cddis.nasa.gov/archive/products/iers/historic_deltat.data which provides a granularity of 0.5 of a year. Also updated the same array to use values from 2 January 1973 to 19 March 2022 from https://cddis.nasa.gov/archive/products/iers/finals2000A.all which provides a granularity of 1 day. Also updated the same array to use values from the year 2022.25 to 2027.75 from https://cddis.nasa.gov/archive/products/iers/deltat.preds which provides a granularity of 0.25 of a year. All of this was implemented using a program which machine generates the lookup table using custom code. This new lookup table now includes > 18k elements and provides 1 – 1 precision with all the data released by IERS. The machine generated code will also make it easier to update this data as new data is published by IERS going forward. Using this new lookup array we now have a discontinuity of c. 3.7 seconds in January 1657 and a discontinuity of c. 2.5 seconds in October 2027 for the CAADynamicalTime::DeltaT method. With these updates AA+ is now 29.7 Megabytes and 416 thousand lines of C++ source code.
  • Implemented a CAADynamicalTime::SetUserDefinedDeltaT method which allows a user provided DeltaT function to be provided. By default the CAADynamicalTime::DeltaT function uses its own lookup tables and polynomials to calculate DeltaT, but if CAADynamicalTime::SetUserDefinedDeltaT has been called to provide a custom DeltaT function then the callback function provided to this method will be used instead. Setting the parameter to SetUserDefinedDeltaT to a nullptr will restore the default DeltaT method behavior.
  • Changed the behavior of the CAAPlanetaryPhenomena::K method to now return the K value before it is rounded. This new behaviour is now consistent with all the other methods in the AA+ framework which return so called "K" values. This means that client code must round this value to an integer before calling other methods in this class with this K value.
  • Changed the behavior of the CAAPlanetPerihelionAphelion::*K methods to now return the K value before it is rounded. This new behaviour is now consistent with all the other methods in the AA+ framework which return so called "K" values. This means that client code must round this value before calling other methods in this class with this K value.
  • Merged the separate perihelion and aphelion methods for all the planets except Earth in CAAPlanetPerihelionAphelion into one method per planet. This new behaviour is now consistent with all the other methods in the AA+ framework which work with so called "K" values.
  • Fixed a bug in CAAPlanetPerihelionAphelion::EarthAphelion where the kdash and ksquared values were not being calculated correctly.
Categories: Web Site Updates
<span>%d</span> bloggers like this: