CORDIC
|
CORDIC (for COordinate Rotation DIgital Computer) is a simple and efficient algorithm to calculate hyperbolic and trigonometric functions. It is the algorithm of choice if no hardware multiplier is available, e.g. simple microcontrollers. CORDIC was first described in 1959 by Jack E. Volder.
Originally, CORDIC was implemented in binary. To oversimplify somewhat, one begins by selecting a start angle from a small lookup table. Then one can rotate the vector using half-angle and sum identities. In the 1970s, decimal CORDIC became widely used in pocket calculators, most of which operate not in binary but in binary-coded-decimal (BCD). CORDIC is particularly well-suited for handheld calculators, an application for which cost (and therefore gate count on the chip) is much more important than is speed. Also, for scientific calculators, CORDIC routines for trigonometric functions and hyperbolic functions can share most of their code.
References
- Jack E. Volder, The CORDIC Trigonometric Computing Technique, IRE Transactions on Electronic Computers, September 1959
- M. E. Frerking, Digital Signal Processing in Communication Systems
- Schmid, Hermann, Decimal computation. New York, Wiley, 1974
- Vitit Kantabutra, "On hardware for computing exponential and trigonometric functions," IEEE Trans. Computers 45 (3), 328-339 (1996).