CORDIC

CORDIC (coordinate rotation digital computer), Volder's algorithm, Digit-by-digit method, Circular CORDIC (Jack E. Volder),[1][2] Linear CORDIC, Hyperbolic CORDIC (John Stephen Walther),[3][4] and Generalized Hyperbolic CORDIC (GH CORDIC) (Yuanyong Luo et al.),[5][6] is a simple and efficient algorithm to calculate trigonometric functions, hyperbolic functions, square roots, multiplications, divisions, and exponentials and logarithms with arbitrary base, typically converging with one digit (or bit) per iteration. CORDIC is therefore also an example of digit-by-digit algorithms. CORDIC and closely related methods known as pseudo-multiplication and pseudo-division or factor combining are commonly used when no hardware multiplier is available (e.g. in simple microcontrollers and field-programmable gate arrays or FPGAs), as the only operations they require are additions, subtractions, bitshift and lookup tables. As such, they all belong to the class of shift-and-add algorithms. In computer science, CORDIC is often used to implement floating-point arithmetic when the target platform lacks hardware multiply for cost or space reasons.

  1. ^ Cite error: The named reference Volder_1959_1 was invoked but never defined (see the help page).
  2. ^ Cite error: The named reference Volder_1959_2 was invoked but never defined (see the help page).
  3. ^ Cite error: The named reference Walther_1971 was invoked but never defined (see the help page).
  4. ^ Cite error: The named reference Walther_2000 was invoked but never defined (see the help page).
  5. ^ Cite error: The named reference Luo_2019_TVLSI was invoked but never defined (see the help page).
  6. ^ Cite error: The named reference Luo_2019_TVLSI_c was invoked but never defined (see the help page).