Most of the mathematical functions, which use
floating-point numbers, are defined in ( header in C++). The functions that operate on
integers, such as abs, labs, div, and ldiv, are instead defined in the header ( header in C++). Any functions that operate on angles use
radians as the unit of angle.
Floating-point environment C99 adds several functions and types for fine-grained control of floating-point environment. Implementations are provided by open-source projects that are not part of the standard library.
Type-generic functions The header defines a type-generic macro for each mathematical function defined in and . This adds a limited support for
function overloading of the mathematical functions: the same function name can be used with different types of parameters; the actual function will be selected at compile time according to the types of the parameters. Each type-generic macro that corresponds to a function that is defined for both real and complex numbers encapsulates a total of 6 different functions: float, double and long double, and their complex variants. The type-generic macros that correspond to a function that is defined for only real numbers encapsulates a total of 3 different functions: float, double and long double variants of the function. The C++ language includes native support for function overloading and thus does not provide the header even as a compatibility feature.
Random-number generation The header ( in C++) defines several functions that can be used for statistically random number generation. The arc4random family of random number functions are not defined in POSIX standard, but is found in some common libc implementations. It used to refer to the keystream generator of a leaked version of
RC4 cipher (hence "
alleged
RC4"), but different algorithms, usually from other ciphers like
ChaCha20, have been implemented since using the same name. The quality of randomness from rand are usually too weak to be even considered statistically random, and it requires explicit seeding. It is usually advised to use arc4random instead of rand when possible. Some C libraries implement rand using arc4random_uniform internally.
Special functions Beginning in
C++17, C++ introduces
special functions into the header. == Implementations ==