CORDIC
Sign in to saveAlso known as Coordinate Rotation Digital Computer, Volder's algorithm
CORDIC, short for coordinate rotation digital computer, is a simple and efficient algorithm to calculate trigonometric functions, hyperbolic functions, square roots, multiplications, divisions, exponentials, and logarithms with arbitrary base, typically converging with one digit (or bit) per iteration. CORDIC is therefore an example of a digit-by-digit algorithm. The original system is sometimes referred to as '''Volder's algorithm'''.
Wikidata facts
Show 2 more facts
- Stack Exchange tag
- stackoverflow.com/tags/cordic
- time of discovery or invention
- 1959-00-00
Sources (3)
via Wikidata · CC0
~22 min read
Article
17 sectionsContents
- {{anchor|Binary CORDIC|Decimal CORDIC|Unified CORDIC}}History
- Applications
- Hardware
- Software
- Modes of operation
- {{anchor|rotation mode}} Rotation mode
- {{anchor|vectoring mode}} Vectoring mode
- Implementation
- Software example (Python)
- Output
- Hardware example
- Double iterations CORDIC
- Related algorithms
- See also
- References
- Further reading
- External links
CORDIC, short for coordinate rotation digital computer, is a simple and efficient algorithm to calculate trigonometric functions, hyperbolic functions, square roots, multiplications, divisions, exponentials, and logarithms with arbitrary base, typically converging with one digit (or bit) per iteration. CORDIC is therefore an example of a digit-by-digit algorithm. The original system is sometimes referred to as '''Volder's algorithm.
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 addition, subtraction, 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. This was the case for most early microcomputers based on processors like the MOS 6502 and Zilog Z80.