The 8087 family of numeric coprocessor chips supports the 80-bit precision floating-point data type. Beginning with Microsoft C version 6.0, the long double functions, whose names end with l, map the C long double type into this 80-bit, 10-byte form. Unlike the regular floating-point functions (such as acos), which return values of type double, these long double functions (such as _acosl) return values of type long double. The long double functions also return their values on the coprocessor stack for all calling conventions.
The long double type is also supported by the addition of the “L” prefix for a floating-point format specification in the printf and scanf family of functions.
The long double versions are described on the reference pages for their regular counterparts. These are the regular run-time math functions with corresponding long double equivalents:
Function | Long Double Form | Function | Long Double Form |
acos | _acosl | frexp | _frexpl |
asin | _asinl | _hypot | _hypotl |
atan | _atanl | ldexp | _ldexpl |
atan2 | _atan2l | log | _logl |
atof | _atold | log10 | _log10l |
_cabs | _cabsl | _matherr | _matherrl |
ceil | _ceill | modf | _modfl |
cos | _cosl | pow | _powl |
cosh | _coshl | sin | _sinl |
exp | _expl | sinh | _sinhl |
fabs | _fabsl | sqrt | _sqrtl |
floor | _floorl | tan | _tanl |
fmod | _fmodl | tanh | _tanhl |