Home

CORDIC

CORDIC, short for COordinate Rotation DIgital Computer, is an iterative algorithm for computing trigonometric, hyperbolic, exponential, and logarithmic functions using only additions, subtractions, and bit shifts. It was developed to enable efficient hardware implementations without multipliers, and became widely used in calculators, digital signal processors, and embedded systems.

The method exploits a sequence of small rotations. In rotation mode, starting from a vector (x0, y0)

CORDIC also has hyperbolic variants that compute hyperbolic functions, exponential, and logarithms by using hyperbolic rotations

Implementation aspects include fixed-point arithmetic, a precomputed table of arctan(2^-i), and a fixed number of iterations

Applications span scientific calculators, image processing, communication systems, and FPGA/ASIC implementations that require efficient, deterministic trigonometric

and
a
target
angle
z,
the
algorithm
performs
a
series
of
micro-rotations
by
angles
arctan(2^-i).
Each
step
uses
only
shifts
and
adds
to
update
the
coordinates,
guided
by
the
sign
of
the
residual
angle.
After
n
iterations
the
result
is
approximately
(K_n
cos
z,
K_n
sin
z),
where
K_n
is
a
known
scaling
factor
equal
to
the
product
of
1/sqrt(1+2^-2i).
A
final
scaling
correction
using
K_n
yields
the
true
cosine
and
sine
values.
In
vectoring
mode,
the
process
is
reversed
to
compute
the
magnitude
r
=
sqrt(x^2
+
y^2)
and
the
angle
arctan(y/x)
from
a
given
vector.
and
a
modified
sequence
of
steps.
These
variants
can
require
extra
iterations
or
repeated
indices
to
maintain
convergence,
but
they
retain
the
shift-add
simplicity.
to
achieve
desired
precision.
Its
main
advantages
are
low
hardware
complexity
and
reliability,
while
the
need
to
compensate
the
scale
factor
and
manage
angular
ranges
can
be
drawbacks.
and
related
function
calculations.