CORDIC


CORDIC (por CO ordenada R flotación DI gital C omputer), también conocido como el algoritmo de Volder , o: Digit-por dígitos método Circular CORDIC (Jack E. Volder), [1] [2] Linear CORDIC , hiperbólica CORDIC (John Stephen Walther), [3] [4] y CORDIC hiperbólico generalizado ( GH CORDIC ) (Yuanyong Luo et al.), [5] [6] es un algoritmo simple y eficiente para calcular funciones trigonométricas , funciones hiperbólicas, raíces cuadradas , multiplicaciones , divisiones y exponenciales y logaritmos con base arbitraria, que normalmente convergen con un dígito (o bit) por iteración. Por lo tanto, CORDIC también es un ejemplo de algoritmos dígito a dígito . CORDIC y los métodos estrechamente relacionados conocidos como pseudo-multiplicación y pseudo-división o combinación de factores se usan comúnmente cuando no hay un multiplicador de hardware disponible (por ejemplo, en microcontroladores simples y FPGA ), ya que las únicas operaciones que requiere son sumas y restas., tablas de búsqueda y desplazamiento de bits . Como tales, todos pertenecen a la clase de algoritmos de cambio y adición . En ciencias de la computación, CORDIC se usa a menudo para implementar aritmética de punto flotante cuando la plataforma de destino carece de hardware multiplicar por razones de costo o espacio.

Henry Briggs publicó técnicas matemáticas similares ya en 1624 [7] [8] y Robert Flower en 1771, [9] pero CORDIC está mejor optimizado para CPU de estado finito de baja complejidad.

CORDIC fue concebido en 1956 [10] [11] por Jack E. Volder en el departamento de aeroelectrónica de Convair por necesidad de reemplazar el resolver analógico en la computadora de navegación del bombardero B-58 por un dispositivo digital en tiempo real más preciso y rápido. solución. [11] Por lo tanto, a veces se hace referencia a CORDIC como un resolutor digital . [12] [13]

En su investigación, Volder se inspiró en una fórmula de la edición de 1946 del Manual de Química y Física del CRC : [11]

con , .

Su investigación dio lugar a un informe técnico interno que proponía el algoritmo CORDIC para resolver funciones de seno y coseno y un prototipo de computadora implementándolo. [10] [11] El informe también discutió la posibilidad de calcular la rotación de coordenadas hiperbólicas , logaritmos y funciones exponenciales con algoritmos CORDIC modificados. [10] [11] El uso de CORDIC para multiplicar y dividir también fue concebido en este momento. [11] Basado en el principio CORDIC, Dan H. Daggett, un colega de Volder en Convair, desarrolló algoritmos de conversión entre binarios ydecimal codificado en binario (BCD). [11] [14]


Una ilustración del algoritmo CORDIC en curso