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`

.