Resumen: La función atan2() es utilizada en diferentes áreas del conocimiento, sobre todo mediante el uso de las bibliotecas específicas incluidas con los lenguajes de programación, con las que los usuarios obtienen resultados, más o menos exactos y con cierta precisión, pero sin prestar mayor atención a la cantidad de los recursos computacionales utilizados, a saber, la memoria empleada y la precisión de la unidad lógica-aritmética del procesador. Los usuarios de estas bibliotecas tampoco evalúan otros aspectos relacionados, como lo son el consumo de energía, el espacio utilizado y los costos asociados. Sin embargo, cuando los recursos de cómputo son limitados, como en el caso de los sistemas embebidos, la implementación de toda función matemática requiere de una cierta evaluación de desempeño. En este trabajo se proponen algunas implementaciones para la función atan2(), soportadas por series de Euler y de Maclaurin, realizando la comparacion del desempeño obtenido contra las implemntaciones de referencia, a saber, el empleo de tablas de búsqueda y las implementaciones disponibles en las bibliotecas estándares. En este trabajo se aprovecha la arquitectura de los procesadores ARM, haciendo uso sus interrupciones de tipo hilo y sus operaciones vectorizadas, todo ello con el fin de contar con alternativas de implementación para la función atan2(), a fin de poder aplicarlas en dispositivos portátiles y obtener ventajas significativas al lograr un menor tiempo de arranque, menor espacio ocupado, bajo consumo de energía y bajo costo.
Abstract: The atan2() function is used in different areas of knowledge, mainly through the use of specific libraries included with programming languages, with which users obtain results, more or less accurate and with a certain precision, but without paying much attention to the amount of computational resources used, namely the memory used and the precision of the logical-arithmetic unit of the processor. Users of these libraries also do not evaluate other related aspects, such as power consumption, space used, and associated costs. However, when computational resources are limited, as in the case of embedded systems, implementing of any mathematical function requires some performance evaluation. In this work, we propose some implementations for the atan2() function, supported by the Euler and Maclaurin series, comparing the performance obtained against the reference implementations, namely the use of lookup tables and the implementations available in the standard libraries. Furthermore, this work takes advantage of the architecture of ARM processors, making use of their threaded interrupts and vectorized operations, all this to have implementation alternatives for the atan2() function to apply them in portable devices and obtain significant advantages by achieving a shorter startup time, less space occupied, low power consumption and low cost.