4#include <janus/janus.hpp>
35template <
typename Scalar>
36[[nodiscard]]
constexpr Scalar
tai_to_tt(
const Scalar &tai_jd) {
44template <
typename Scalar>
45[[nodiscard]]
constexpr Scalar
tt_to_tai(
const Scalar &tt_jd) {
59template <
typename Scalar>
60[[nodiscard]]
constexpr Scalar
tai_to_gps(
const Scalar &tai_jd) {
68template <
typename Scalar>
69[[nodiscard]]
constexpr Scalar
gps_to_tai(
const Scalar &gps_jd) {
88template <
typename Scalar>
89[[nodiscard]]
constexpr Scalar
utc_to_tai(
const Scalar &utc_jd,
int delta_at) {
102template <
typename Scalar>
103[[nodiscard]]
constexpr Scalar
tai_to_utc(
const Scalar &tai_jd,
int delta_at) {
139template <
typename Scalar>
140[[nodiscard]]
constexpr Scalar
utc_to_gps(
const Scalar &utc_jd,
int delta_at) {
148template <
typename Scalar>
149[[nodiscard]]
constexpr Scalar
gps_to_utc(
const Scalar &gps_jd,
int delta_at) {
188template <
typename Scalar> [[nodiscard]] Scalar
tt_to_tdb(
const Scalar &tt_jd) {
194 Scalar g = (357.5277233 + 35999.05034 * T) * M_PI / 180.0;
197 Scalar dt = 0.001657 * janus::sin(g);
208template <
typename Scalar>
214 Scalar g = (357.5277233 + 35999.05034 * T) * M_PI / 180.0;
217 Scalar dt = 0.001657 * janus::sin(g);
236template <
typename Scalar>
249template <
typename Scalar>
constexpr double SECONDS_PER_DAY
Seconds per day.
Definition TimeConstants.hpp:45
constexpr double TT_TAI_OFFSET
TT - TAI offset [s] (exact, by definition).
Definition TimeConstants.hpp:32
constexpr double GPS_TAI_OFFSET
GPS - TAI offset [s] (exact: GPS = TAI - 19s at GPS epoch).
Definition TimeConstants.hpp:35
constexpr double TAI_GPS_OFFSET
TAI - GPS offset [s].
Definition TimeConstants.hpp:38
constexpr Scalar gps_to_tai(const Scalar &gps_jd)
Convert GPS Julian Date to TAI Julian Date.
Definition TimeScales.hpp:69
constexpr Scalar utc_to_gps(const Scalar &utc_jd, int delta_at)
Convert UTC Julian Date to GPS Julian Date (templated).
Definition TimeScales.hpp:140
int leap_seconds_at_utc(double utc_jd)
Get TAI - UTC offset for a given UTC Julian Date.
Definition LeapSeconds.hpp:93
constexpr Scalar utc_to_tai(const Scalar &utc_jd, int delta_at)
Convert UTC Julian Date to TAI Julian Date (templated).
Definition TimeScales.hpp:89
constexpr Scalar tt_to_tai(const Scalar &tt_jd)
Convert TT Julian Date to TAI Julian Date.
Definition TimeScales.hpp:45
Scalar tdb_to_tt(const Scalar &tdb_jd)
Convert TDB Julian Date to TT Julian Date.
Definition TimeScales.hpp:209
constexpr Scalar tai_to_utc(const Scalar &tai_jd, int delta_at)
Convert TAI Julian Date to UTC Julian Date (templated).
Definition TimeScales.hpp:103
Scalar tt_to_tdb(const Scalar &tt_jd)
Convert TT Julian Date to TDB Julian Date.
Definition TimeScales.hpp:188
TimeScale
Definition TimeScales.hpp:15
@ UT1
Universal Time 1 (Earth rotation, requires IERS data).
Definition TimeScales.hpp:21
@ GPS
GPS Time (GPS = TAI - 19s, continuous since 1980).
Definition TimeScales.hpp:20
@ UTC
Coordinated Universal Time (civil time, has leap seconds).
Definition TimeScales.hpp:16
@ TAI
International Atomic Time (continuous SI seconds).
Definition TimeScales.hpp:17
@ TDB
Barycentric Dynamical Time (for solar system dynamics).
Definition TimeScales.hpp:19
@ TT
Terrestrial Time (TT = TAI + 32.184s).
Definition TimeScales.hpp:18
int leap_seconds_at_tai(double tai_jd)
Get TAI - UTC offset (leap seconds) for a given TAI Julian Date.
Definition LeapSeconds.hpp:58
Scalar leap_seconds_symbolic(const Scalar &utc_jd)
Symbolic leap second lookup (smooth approximation).
Definition LeapSeconds.hpp:213
constexpr Scalar jd_to_j2000_centuries(const Scalar &jd)
Convert Julian Date to Julian centuries since J2000.0.
Definition JulianDate.hpp:140
Scalar tai_to_utc_symbolic(const Scalar &tai_jd)
Convert TAI Julian Date to UTC Julian Date (fully symbolic).
Definition TimeScales.hpp:250
constexpr Scalar gps_to_utc(const Scalar &gps_jd, int delta_at)
Convert GPS Julian Date to UTC Julian Date (templated).
Definition TimeScales.hpp:149
Scalar utc_to_tai_symbolic(const Scalar &utc_jd)
Convert UTC Julian Date to TAI Julian Date (fully symbolic).
Definition TimeScales.hpp:237
constexpr Scalar tai_to_tt(const Scalar &tai_jd)
Convert TAI Julian Date to TT Julian Date.
Definition TimeScales.hpp:36
constexpr Scalar tai_to_gps(const Scalar &tai_jd)
Convert TAI Julian Date to GPS Julian Date.
Definition TimeScales.hpp:60