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:
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.