Still need to implement moon calculations and associated code.
Reworked AstroVector as a struct instead of a class, to reduce
memory allocation overhead.
In C code, replaced HTML italics with Markdown emphasis markers.
Added warnings for Python symbols with missing documentation.
Documented Python class Apsis.
Changed visibility from a string 'morning'/'evening' to enum type.
Was not testing visibility was correct; now test.py does that.
Corrected a couple of minor things in C documentation.
Just like I did in the Python version, avoid repeated calculations
of the Earth's tilt angles for a given time. Do this by caching
the angles in the astro_time_t structure. This requires passing in
the time values by address instead of by value. I may go back and
change all the time parameters to pointers for consistency.
I already did this in the Python code to significantly reduce the number
of calls to e_tilt(). Did the same thing here: call sidereal_time() once,
then use the value 3 times.
Also made minor optimizations to spin() function in both JS and C.
Fixed a mistake in JS and C that does not appear to have any
algorithmic consequences, but it was definitely confusing once I saw it.
This example demonstrates how to calculate equatorial coordinates
and horizontal coordinates of solar system bodies.
Added explanatory comments to moonphase.c.
Added #defines for MIN_YEAR, MAX_YEAR in astronomy.h.
Removed unnecessary code from positions.html; no longer need
to calculate geocentric vector before calculating equatorial coordinates.
Resolved FIXFIXFIX comments regarding whether or not to
correct for aberration. In all cases, the observations are
made from the Earth, in which case it makes the most sense
to correct for aberration.
I was using "relative longitude" to mean two different things.
Resolved the ambiguity by using relative longitude only for
differences in eclitpic longitude as seen from the Sun.
Use "ecliptic separation" for differences in ecliptic longitude
as measured from the Earth.
Fixed completely wrong documentation in the JavaScript code;
it had the meanings backwards inside the ElongationEvent class.
I'm not sure exactly whether it is Windows versus Linux,
or just different versions of doxygen, but on my Windows laptop
I was getting messed up doxygen output. It turns out that everything
is back on track once I cleaned up all the trailing whitespace in
template/astronomy.c. I will need to automate this in the future.