You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This file tracks functions present in libnova that are not yet
implemented in libuniverse. Grouped by module. Items are ordered roughly by
implementation priority (foundational algorithms first).
Legend
= not started
[~] = partially implemented (notes inline)
= done
Calendar / Date Utilities
Status
libnova function
Description
[~]
ln_get_julian_day
Implemented as get_julian_day() / Date::to_julian_day()
[~]
ln_get_date
Implemented as JulianDay::to_calendar_date()
[~]
ln_get_day_of_week
Implemented as Date::week_day() (1=Mon … 7=Sun vs libnova's 0=Sun)
[ ]
ln_get_julian_from_sys
Get Julian Day from the local system clock
[ ]
ln_get_date_from_sys
Get calendar date from the local system clock
[ ]
ln_get_julian_from_timet
Convert a Unix time_t value to Julian Day
[ ]
ln_get_timet_from_julian
Convert a Julian Day to Unix time_t
[ ]
ln_get_julian_local_date
Julian Day from a timezone-aware local date
[ ]
ln_get_date_from_mpc
Parse an MPC packed date string into a calendar date
[ ]
ln_get_julian_from_mpc
Parse an MPC packed date string directly to Julian Day
Dynamical Time
Status
libnova function
Description
[~]
ln_get_dynamical_time_diff
Implemented as delta_t()
[ ]
ln_get_jde
Compute Julian Ephemeris Day (JDE = JD + ΔT/86400)
Sidereal Time
Status
libnova function
Description
[~]
ln_get_mean_sidereal_time
Implemented as get_mean_sidereal_time_from_date()
[x]
ln_get_apparent_sidereal_time
Implemented as get_apparent_sidereal_time_from_date() — uses Δψ and true obliquity from nutation
Nutation
Status
libnova function
Description
[x]
ln_get_nutation
Nutation in longitude (Δψ) and obliquity (Δε) from JDE — Meeus ch. 22
Aberration
Status
libnova function
Description
[x]
ln_get_equ_aber
Implemented as annual_aberration() in aberration.rs — returns (Δα, Δδ) in arcseconds — Meeus ch. 23
[ ]
ln_get_ecl_aber
Ecliptical coordinates corrected for annual aberration
Precession
Status
libnova function
Description
[ ]
ln_get_equ_prec
Precess equatorial coordinates from a given epoch to J2000 — Meeus ch. 21
[ ]
ln_get_equ_prec2
Precess equatorial coordinates between two arbitrary epochs
Generic rise/set/transit for any celestial object — Meeus ch. 15
[ ]
ln_get_object_next_rst
Next rise/set/transit after a given JD
[ ]
ln_get_object_rst_horizon
Rise/set over a custom horizon elevation
Orbital Mechanics
Status
libnova module
Description
[ ]
Elliptic motion
Position/velocity on an elliptic orbit — Meeus ch. 30
[ ]
Parabolic motion
Position on a parabolic (cometary) orbit — Meeus ch. 34
[ ]
Hyperbolic motion
Position on a hyperbolic orbit — Meeus ch. 35
Asteroids & Comets
Status
libnova module
Description
[ ]
Asteroids
Heliocentric coords, magnitude, phase, RST for minor planets
[ ]
Comets
Heliocentric coords, RST, perihelion calculations
Miscellaneous Utilities
Status
libnova function
Description
[~]
ln_get_dec_location
Partially covered by HoursMinSec::from_string / DegMinSec::from_string
[~]
ln_get_humanr_location
Partially covered by Display impls for HoursMinSec / DegMinSec
[ ]
ln_interpolate3
3-point interpolation — Meeus ch. 3
[ ]
ln_interpolate5
5-point interpolation — Meeus ch. 3
Implementation Notes
Start with foundations — Nutation (delta_psi, delta_eps) is a dependency of
apparent sidereal time, aberration, and apparent stellar positions. Implement it first.
Coordinate transforms — hrz_from_equ and equ_from_ecl are broadly needed;
implement these before planet modules.
Solar position is required by most planet magnitude/phase calculations.
VSOP87 — Planet heliocentric coordinates require the VSOP87 series. Consider
a separate module or feature flag for the large coefficient tables.
Rise/Set/Transit — Generic implementation in src/rise_set.rs can be reused by
Sun, Moon, and all planets.
All new functions must cite the relevant Meeus chapter/equation in doc comments and
include unit tests with values from Meeus' worked examples.