A Chebyshev polynomial representation (CPR) has the advantage that the position and velocity for any date within the valid time period of the ephemeris can be interpolated easily. The disadvantage is that the values produced by the CPR is not exactly the same as that of a tabulated ephemeris. The difference, however, can be made arbitrarily small. The CPR coefficients are calculated using an algorithm similar to the one detailed in Newhall (1989). The Newhall algorithm is used for distribution of the JPL DE planetary ephemerides and the INPOP planetary ephemerides developed by the IMCCE (INPOP 2006). Two changes have been made to make the ephemerides more compact.
This CPR is principally intended for use with bodies with more eccentric orbits or ephemerides with larger uncertainties than those of the planets, such as asteroids, satellites, and comets. The accuracy to which a CPR segment can fit an orbital segment is a function of the maximum degree Chebyshev polynomial used and the rate of change of the orbital path from a straight line. Numerical experiments show that, for a fixed level of accuracy, a CPR is more sensitive to the time interval than the maximum degree Chebyshev polynomial. If a constant time interval is used, then the length of that interval, for a fixed level of accuracy, is governed by the place in the orbit where the rate of change is fastest. The ratio of rate of motion at periapse to the rate at apoapse is proportional to (1 + e) / (1 − e), where e is the eccentricity. For the planets this ratio is no larger than 1.5, so the lost compactness arising from using a constant CPR time interval and maximum polynomial order is minimal. For main belt asteroids the ratio may be as large as 3, for the satellite Neptune II (Nereid) the ratio is 7, and for comet 1P Halley the ratio is approximately 58. Thus, a variable time interval CPR can provide significant savings in space. Numerical experiments show that the increase in evaluation time from additional bookkeeping required for this change is minimal.
The C language code was originally written in 1998 to support the U.S. Naval Observatory's USNO/AE98 ephemerides of twelve large main belt asteroids. No major changes have been made to the code. It has proven robust enough that although improvements might be made they would not have any significant impact on its function or speed of evaluation. The only changes that have been made were those necessary to fix a few minor bugs in the original code and to provide a much more extensive set of comments to allow others easier insight into how the code works.
Newhall, X X 1989, 'Numerical Representation of Planetary Ephemerides,' Celest. Mech., 45, 305-310