Solving Kepler's equation with CORDIC double iterations
Abstract
In previous work, we developed the idea to solve Kepler's equation with a CORDIClike algorithm, which does not require any division, but still requires multiplications in each iteration. Here we overcome this major shortcoming and solve Kepler's equation using only bitshifts, additions and one initial multiplication. We prescale the initial vector with the eccentricity and the scale correction factor. The rotation direction is decided without correction for the changing scale. We find that double CORDIC iterations are selfcorrecting and compensate for possible wrong rotations in subsequent iterations. The algorithm needs 75 per cent more iterations and delivers the eccentric anomaly and its sine and cosine terms times the eccentricity. The algorithm can also be adopted for the hyperbolic case. The new shiftandadd algorithm brings Kepler's equation close to hardware and allows it to be solved with cheap and simple hardware components.
 Publication:

Monthly Notices of the Royal Astronomical Society
 Pub Date:
 January 2021
 DOI:
 10.1093/mnras/staa2441
 arXiv:
 arXiv:2008.02894
 Bibcode:
 2021MNRAS.500..109Z
 Keywords:

 methods: numerical;
 celestial mechanics;
 Astrophysics  Instrumentation and Methods for Astrophysics;
 Physics  Computational Physics
 EPrint:
 10 pages, 8 figures. Accepted by MNRAS. Demo python code available at /anc/ke_cordic_dbl.py. Further variants and languages at https://github.com/mzechmeister/ke