Ephemeris trail
Introduction
Generalities
VSOP87
Build VSOP87
Truncating VSOP87
Testing VSOP87
Pluto99
ELP82
Class organization
Reference frames
CoordTransfo
Handling frames
Handling precision
Units
Handling time
Putting all together
Swiss Ephemeris
Swiss Ephemeris
"Swiss Ephemeris" is the name of a commercial astronomical package, sold to developers of astrology software. Their ephemeris computations are based on DE405, or DE406, or Moshier. As it appeared to be a serious work, I found interesting to include it to JEphem, to perform tests and to be able to get correct results even if JEphem is still bugged.

Swiss Ephemeris

I knew the existence of SwissEphemeris before starting the development of JEphem. But as it was commercial, and developed in C, it didn't interest me.
But I recently found out that they put it open source for non-commercial use, and that a java port is available. But their software is not free (in the sense of the General Public Licence), so I'm planning to remove it when JEphem is able to give correct results.
The home page of SwissEphemeris is : http://www.astro.com/swisseph/.
The java port can be retrieved from : http://www.th-mack.de/international/download/.

Incorporation to JEphem

I just modified class AstroContext, and added a temporary class (jephem.astro.solarsystem.SwissEphemeris).
In AstroContext, I added a field, "astroEngine", and constants to designate the possible implementations used (JEphem or Swiss Ephemeris) ; in calcBodyCoords(), if the field astroEngine equals to SWISS_EPHEMERIS, a method from class SwissEphemeris is called. Otherwise, normal code is executed.

A class, TestWithSwiss was developped to compare the values given by JEphem and Swiss Ephemeris - see its javadoc or source code.