This library contains a frequently used subset of the standard mathematical functions. More...
Modules | |
| Manipulations of IEEE-754 format numbers | |
IEEE-754 format aware functions. | |
| Elementary functions | |
This is a library of the most frequently used transcendental functions. | |
This library contains a frequently used subset of the standard mathematical functions.
It is a rule of thumb in embedded system circles that you have to avoid using float point arithmetics because it is very slow. Well, it is indeed slower than integer or fixpoint arithmetics, but on the ARM it's not that bad. The basic float point arithmetics functions that come with gcc are pretty fast. For many processors they are generated using generic C functions and thus are indeed slow. For the ARM, however, gcc builds those functions from handcrafted assembly source, which was written with speed in mind. Since the transcendental functions spend most of their time in those low level arithmetic functions (evaluating approximation polynoms), the efficient low-level arithmetics directly turns into reasonably fast math functions.
While you probably do not want to do real-time audio processing using the float point functions, if you need to calculate only a few thousand sines or exponentials in every second, you can easily do that even in double precision with only a modest CPU utilisation.
Apart from the transcendental functions, the basic manipulations of float-point numbers, such as rounding, classification and the like are also part of the library.
Finally, if speed is a serious concern but you need more than integer arithmetics, you may want to to take a look at the Fixpoint functions.
1.6.3