pg_orrery/src/libration.h
Ryan Malloy 4d64b78fb8 Add v0.19.0: sun almanac, conjunction detection, penumbral fraction, physical libration
Four new functions (184 → 188 SQL objects):
- sun_almanac_events(): merged rise/set + twilight SRF (4 threshold scans)
- planet_conjunctions(): angular separation minima via daily scan + ternary search
- satellite_penumbral_fraction(): continuous 0.0-1.0 shadow depth
- moon_physical_libration(): Meeus p. 373 Fourier corrections (tau, rho)

30 regression test suites, all passing.
2026-02-28 13:51:35 -07:00

25 lines
825 B
C

/*
* libration.h -- Lunar optical libration (Meeus Ch. 53)
*
* Three components of the Moon's apparent wobble:
* l -- optical libration in longitude (degrees, [-8, +8])
* b -- optical libration in latitude (degrees, [-7, +7])
* p -- position angle of the Moon's axis (degrees)
*/
#ifndef PG_ORRERY_LIBRATION_H
#define PG_ORRERY_LIBRATION_H
typedef struct
{
double l; /* libration in longitude, degrees (optical + physical) */
double b; /* libration in latitude, degrees (optical + physical) */
double p; /* position angle of axis, degrees */
double _tau; /* physical libration correction in longitude, degrees */
double _rho; /* physical libration correction in latitude, degrees */
} lunar_libration;
void compute_lunar_libration(double jd, lunar_libration *lib);
#endif /* PG_ORRERY_LIBRATION_H */