### <math.h>

The <math.h> include file declares all the floating-point math functions:

acos | cos | floor | log | sqrt
asin | cosh | fmod | log10 | tan
atan | erf | frexp | modf | tanh
atan2 | erfc | gamma | pow |
Bessel | exp | hypot | sin |
ceil | fabs | ldexp | sinh |

The Bessel functions are a group of functions named _j0, _j1, _jn, _y0, _y1, and _yn.

<math.h>, for OS/2 and Windows, also includes definitions for the following IBM C and C++ Compilers extensions:

- _atold
- _cabs
- _matherr

For OS/2 and Windows, the _atold function is also defined in <stdlib.h> .

<math.h> defines the macros HUGE, _LHUGE, HUGE_VAL, and _LHUGE_VAL, which expand to a positive double expression or to infinity.

You can define a macro _FP_INLINE, on OS/2 and Windows, to inline the functions sin, cos, tan, atan, acos, asin and sqrt. If you use _FP_INLINE to inline the functions, you cannot use the functions defined in <complex.h>, or an error message is generated.

Note: You cannot take advantage of error handling when _FP_INLINE is defined.

For all mathematical functions, a domain error occurs when an input argument is outside the range of values allowed for that function. In the event of a domain error, errno is set to the value of EDOM.

A range error occurs if the result of the function cannot be represented in a double value. If the magnitude of the result is too large (overflow), the function returns the positive or negative value of the macro HUGE_VAL, and sets errno to ERANGE. If the result is too small (underflow), the function returns zero.

<stdlib.h>
#include