This chapter contains information about functions for performing
mathematical computations, such as trigonometric functions. Most of
these functions have prototypes declared in the header file
math.h. The complex-valued functions are defined in
complex.h.
All mathematical functions which take a floating-point argument
have three variants, one each for double, float, and
long double arguments. The double versions are mostly
defined in ISO C89. The float and long double
versions are from the numeric extensions to C included in ISO C99.

Which of the three versions of a function should be used depends on the
situation. For most calculations, the float functions are the
fastest. On the other hand, the long double functions have the
highest precision. double is somewhere in between. It is
usually wise to pick the narrowest type that can accommodate your data.
Not all machines have a distinct long double type; it may be the
same as double.