CelestialCalendar 1.0.0 · unreleased development @ 67a7c4c79a4a4a6aa7e703c9e6f0039ae34bee82
Loading...
Searching...
No Matches
astro::delta_t::algo5 Namespace Reference

Functions

constexpr auto compute (const double year) noexcept -> double
 Compute ΔT for a decimal Gregorian year using algorithm 5.

Variables

constexpr double LAST_OBSERVATION_YEAR
 The decimal year of the last Bulletin A observation in the training data; also the boundary between the fitted and the extrapolated segments.

Function Documentation

◆ compute()

auto astro::delta_t::algo5::compute ( const double year) ->double
nodiscardconstexprnoexcept

Compute ΔT for a decimal Gregorian year using algorithm 5.

Parameters
yearThe year, of double type.
Returns
ΔT in seconds.
Example
compute(2005.99999999....) returns ΔT for the last moment of year 2005.
Example
compute(1984.0) returns ΔT for the first moment of year 1984.
See also
IERS Bulletin A observations - https://www.iers.org/IERS/EN/Publications/Bulletins/bulletins.html
Morrison et al. 2021 addendum - https://doi.org/10.1098/rspa.2020.0776
Corrected HMNAO combined expression - https://web.archive.org/web/20230103030546id_/https://astro.ukho.gov.uk/nao/lvm/
Generation record - https://github.com/0xf3cd/AstroTime-Analysis/blob/ed1cdc2fd6c5122b391a82289aa2cc060340552d/DeltaT/algo5/record.json
Note
For year < 2005.0, algo2 is used instead (same delegation as algo4).
There is no upper bound: beyond the last observation, the anchored integrated-lod curve extrapolates smoothly for all future years.
noexcept (as is algo2), so a non-finite year propagates to a non-finite ΔT instead of throwing — IEEE propagation, not UB. The C ABI rejects non-finite years before calling; direct C++ callers get NaN back for NaN in (#86).

Variable Documentation

◆ LAST_OBSERVATION_YEAR

double astro::delta_t::algo5::LAST_OBSERVATION_YEAR
inlineconstexpr

The decimal year of the last Bulletin A observation in the training data; also the boundary between the fitted and the extrapolated segments.