Numerical Analysis of Atan2() for Embedded Systems

Jacobo Sandoval-Gutierrez, Juan Carlos Herrera-Lozada, Gerardo Abel Laguna-Sánchez, Jesús Antonio Álvarez-Cedillo


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.


atan2(), ARM, embedded systems

Full Text: PDF (Spanish)