/C++

# Common mathematical functions

### Functions

Defined in header <cstdlib>
(C++11)
computes absolute value of an integral value ($$\small{|x|}$$|x|)
(function)
(C++11)
computes quotient and remainder of integer division
(function)
Defined in header <cinttypes>
(C++11)(C++11)
computes absolute value of an integral value ($$\small{|x|}$$|x|)
(function)
(C++11)(C++11)
computes quotient and remainder of integer division
(function)
Defined in header <cmath>
##### Basic operations
(C++11)(C++11)
absolute value of a floating point value ($$\small{|x|}$$|x|)
(function)
(C++11)(C++11)
remainder of the floating point division operation
(function)
(C++11)(C++11)(C++11)
signed remainder of the division operation
(function)
(C++11)(C++11)(C++11)
signed remainder as well as the three last bits of the division operation
(function)
(C++11)(C++11)(C++11)
(function)
(C++11)(C++11)(C++11)
larger of two floating-point values
(function)
(C++11)(C++11)(C++11)
smaller of two floating point values
(function)
(C++11)(C++11)(C++11)
positive difference of two floating point values ($${\small\max{(0, x-y)} }$$max(0, x-y))
(function)
(C++11)(C++11)(C++11)
not-a-number (NaN)
(function)
##### Exponential functions
(C++11)(C++11)
returns e raised to the given power ($${\small e^x}$$ex)
(function)
(C++11)(C++11)(C++11)
returns 2 raised to the given power ($${\small 2^x}$$2x)
(function)
(C++11)(C++11)(C++11)
returns e raised to the given power, minus one ($${\small e^x-1}$$ex-1)
(function)
(C++11)(C++11)
computes natural (base e) logarithm ($${\small \ln{x} }$$ln(x))
(function)
(C++11)(C++11)
computes common (base 10) logarithm ($${\small \log_{10}{x} }$$log10(x))
(function)
(C++11)(C++11)(C++11)
base 2 logarithm of the given number ($${\small \log_{2}{x} }$$log2(x))
(function)
(C++11)(C++11)(C++11)
natural logarithm (to base e) of 1 plus the given number ($${\small \ln{(1+x)} }$$ln(1+x))
(function)
##### Power functions
(C++11)(C++11)
raises a number to the given power ($$\small{x^y}$$xy)
(function)
(C++11)(C++11)
computes square root ($$\small{\sqrt{x} }$$x)
(function)
(C++11)(C++11)(C++11)
computes cube root ($$\small{\sqrt[3]{x} }$$3x)
(function)
(C++11)(C++11)(C++11)
computes square root of the sum of the squares of two or three (since C++17) given numbers ($$\scriptsize{\sqrt{x^2+y^2} }$$x2
+y2
), ($$\scriptsize{\sqrt{x^2+y^2+z^2} }$$x2
+y2
+z2
)
(since C++17)

(function)
##### Trigonometric functions
(C++11)(C++11)
computes sine ($${\small\sin{x} }$$sin(x))
(function)
(C++11)(C++11)
computes cosine ($${\small\cos{x} }$$cos(x))
(function)
(C++11)(C++11)
computes tangent ($${\small\tan{x} }$$tan(x))
(function)
(C++11)(C++11)
computes arc sine ($${\small\arcsin{x} }$$arcsin(x))
(function)
(C++11)(C++11)
computes arc cosine ($${\small\arccos{x} }$$arccos(x))
(function)
(C++11)(C++11)
computes arc tangent ($${\small\arctan{x} }$$arctan(x))
(function)
(C++11)(C++11)
arc tangent, using signs to determine quadrants
(function)
##### Hyperbolic functions
(C++11)(C++11)
computes hyperbolic sine ($${\small\sinh{x} }$$sinh(x))
(function)
(C++11)(C++11)
computes hyperbolic cosine ($${\small\cosh{x} }$$cosh(x))
(function)
(C++11)(C++11)
computes hyperbolic tangent ($${\small\tanh{x} }$$tanh(x))
(function)
(C++11)(C++11)(C++11)
computes the inverse hyperbolic sine ($${\small\operatorname{arsinh}{x} }$$arsinh(x))
(function)
(C++11)(C++11)(C++11)
computes the inverse hyperbolic cosine ($${\small\operatorname{arcosh}{x} }$$arcosh(x))
(function)
(C++11)(C++11)(C++11)
computes the inverse hyperbolic tangent ($${\small\operatorname{artanh}{x} }$$artanh(x))
(function)
##### Error and gamma functions
(C++11)(C++11)(C++11)
error function
(function)
(C++11)(C++11)(C++11)
complementary error function
(function)
(C++11)(C++11)(C++11)
gamma function
(function)
(C++11)(C++11)(C++11)
natural logarithm of the gamma function
(function)
##### Nearest integer floating point operations
(C++11)(C++11)
nearest integer not less than the given value
(function)
(C++11)(C++11)
nearest integer not greater than the given value
(function)
(C++11)(C++11)(C++11)
nearest integer not greater in magnitude than the given value
(function)
(C++11)(C++11)(C++11)(C++11)(C++11)(C++11)(C++11)(C++11)(C++11)
nearest integer, rounding away from zero in halfway cases
(function)
(C++11)(C++11)(C++11)
nearest integer using current rounding mode
(function)
(C++11)(C++11)(C++11)(C++11)(C++11)(C++11)(C++11)(C++11)(C++11)
nearest integer using current rounding mode with
exception if the result differs
(function)
##### Floating point manipulation functions
(C++11)(C++11)
decomposes a number into significand and a power of 2
(function)
(C++11)(C++11)
multiplies a number by 2 raised to a power
(function)
(C++11)(C++11)
decomposes a number into integer and fractional parts
(function)
(C++11)(C++11)(C++11)(C++11)(C++11)(C++11)
multiplies a number by FLT_RADIX raised to a power
(function)
(C++11)(C++11)(C++11)
extracts exponent of the number
(function)
(C++11)(C++11)(C++11)
extracts exponent of the number
(function)
(C++11)(C++11) (C++11)(C++11)(C++11)(C++11)
next representable floating point value towards the given value
(function)
(C++11)(C++11)(C++11)
copies the sign of a floating point value
(function)
##### Classification and comparison
(C++11)
categorizes the given floating-point value
(function)
(C++11)
checks if the given number has finite value
(function)
(C++11)
checks if the given number is infinite
(function)
(C++11)
checks if the given number is NaN
(function)
(C++11)
checks if the given number is normal
(function)
(C++11)
checks if the given number is negative
(function)
(C++11)
checks if the first floating-point argument is greater than the second
(function)
(C++11)
checks if the first floating-point argument is greater or equal than the second
(function)
(C++11)
checks if the first floating-point argument is less than the second
(function)
(C++11)
checks if the first floating-point argument is less or equal than the second
(function)
(C++11)
checks if the first floating-point argument is less or greater than the second
(function)
(C++11)
checks if two floating-point values are unordered
(function)

### Types

Defined in header <cstdlib>
structure type, returned by std::div
(typedef)
structure type, returned by std::ldiv
(typedef)
(C++11)
structure type, returned by std::lldiv
(typedef)
Defined in header <cinttypes>
(C++11)
structure type, returned by std::imaxdiv
(typedef)
Defined in header <cmath>
float_t
(C++11)
most efficient floating-point type at least as wide as float
(typedef)
double_t
(C++11)
most efficient floating-point type at least as wide as double
(typedef)

### Macro constants

Defined in header <cmath>
(C++11)(C++11)
indicates the overflow value for float, double and long double respectively
(macro constant)
(C++11)
evaluates to positive infinity or the value guaranteed to overflow a float
(macro constant)
(C++11)
evaluates to a quiet NaN of type float
(macro constant)
(C++11)(C++11)(C++11)
defines the error handling mechanism used by the common mathematical functions
(macro constant)
##### Classification
(C++11)(C++11)(C++11)(C++11)(C++11)
indicates a floating-point category
(macro constant)

### Notes

Feature-test macro Value Std Comment
__cpp_lib_constexpr_cmath 202202L (C++23) Constexpr for FP environment agnostic mathematical functions in <cmath> and <cstdlib>