CORDIC: Elementary Function Computation
Using Recursive Sequences
Neil Eklund
Many of us who teach calculus and mathematical topics that use calculus have
taken for granted that hand-held calculators use Taylor series or a variant to compute
transcendental functions. Thus, it was a surprise to learn that this was not the case. The
CORDIC method (Coordinate Rotation Digital Computer) was developed by Jack Volder
[6] in the late 1950’s. Hewlett-Packard was quick to realize the usefulness of this
method; it required only the most efficient processes to compute values of the standard
transcendental functions.
It should be noted at the outset that, while this presentation presumes base two
arithmetic, calculators use base ten arithmetic with specially designed chips that use
binary coded decimal (BCD) arithmetic. This was done to reduce the need for limited
storage in the early years. While storage is no longer a problem, the algorithms are very
efficient and adequate for calculator use.
Many of the papers on CORDIC that I have located were written for an
engineering audience. These include the original paper by Volder and, subsequently,
papers by Linhardt and Miller [1], Walther [7], and Schmid and Bogacki [4]. Two
sources of information on CORDIC for a mathematics audience are articles by Schelin
[3] and the COMAP article by Pulskamp and Delaney [2].
What is CORDIC?
Define a sequence of triplets { (x
k
,y
k
,z
k
) } recursively for k ≥ 0 by
(1)
−=
+=
−=
+
−
+
−
+
.
,2
,2
1
1
1
kkkk
k
kkkk
k
kkkk
zz
xyy
ymxx
εδ
δ
δ
The ε
k
, the initial point (x
0
,y
0
,z
o
), and m determine the function and the point where that
function is to be computed. The δ
k
( = ± 1 ) are chosen during iteration so that we always
approach the desired value. In particular, m = 0, +1, or -1 with m = 0 to obtain a product
or quotient, m = 1 to obtain sin(θ), cos(θ), or tan
-1
(u), and m = -1 to obtain sinh(u),
cosh(u), e
u
, tanh
-1
(u), √u, and ln(u); I have used u here so as to avoid confusion with the
variables in the recursion process. The specifics are shown in table 1.