Integre Technical Publishing Co., Inc. College Mathematics Journal 40:2 December 17, 2008 12:49 p.m. sultan.tex page 87 CORDIC: How Hand Calculators Calculate Alan Sultan Alan Sultan is a professor of mathematics at Queens College of the City University of New York. He is the author of two books and several research articles, and is currently heavily involved in the math education of prospective high school math teachers. He enjoys singing bass in the Oratorio Society of Queens, and loves to see how the math we teach can be applied. Almost every calculus teacher I ask answers the question, “How do calculators com- pute sines and cosines?” with the words, “Taylor Polynomials.” It comes as quite a surprise to most that, though it is reasonable to use Taylor polynomials, it is really a method known as CORDIC that is used to compute these and other special func- tions. CORDIC was discovered by Jack Volder in 1959 while working for the Convair corporation and was developed to replace the analog resolver in the B-58 bomber’s navigation computer. What was needed was a program that could compute trigono- metric functions in real time without the use of much hardware. CORDIC, an acronym for COordinate Rotation DIgital Computer, was the solution. CORDIC is fast; much faster than Taylor series for the low level hardware used on a calculator, though when you first see it, it is hard to believe. What is nice about CORDIC is that it connects mathematics usually learned in high school with computer hardware, making it especially interesting to students who wonder where the math they learn might be used. The method can be adapted to com- pute inverse trigonometric functions, hyperbolic functions, logarithms, exponentials, and can even be modified to do multiplication and division! (See [2] or [3] for more on this.) This amazing method is a genuinely key part of calculator technology and knowledge of it can benefit both teacher and student. We present CORDIC in its original binary form even though now it uses binary- coded decimal (BCD). What we present is the heart of the algorithm, focusing on a special case—the computation of sines and cosines. (For the history of computing transcendental functions see [4]. For its actual implementation in hardware, see [1].) The basics What makes CORDIC fast are two facts: (1) When we take a binary number and mul- tiply it by 2 n , we shift the binary point n places to the right and when we divide by 2 n we shift the binary point n places to the left. (2) The operations on a computer that are cheapest and fastest to perform are (A) addition and subtraction, (B) comparing numbers to see which is larger or smaller, (C) storing and retrieving numbers from memory, and (D) shifting the binary point. Addition and subtraction are very fast, but not multiplication or division. The ma- chine does compute multiplications and divisions by powers of 2 very quickly how- ever, by just shifting the binary point. CORDIC exploits this, and thus uses only operations (A)–(D) to evaluate sines and cosines. The heart of the algorithm is a series of cleverly performed rotations. VOL. 40, NO. 2, MARCH 2009 THE COLLEGE MATHEMATICS JOURNAL 87