Common mathematical functions - cppreference.com (original) (raw)

Common mathematical functions

Contents

[edit] Functions

Defined in header
abs(int)labsllabs(C++11) computes absolute value of an integral value (\(\small{|x
div(int)ldivlldiv(C++11) computes quotient and remainder of integer division (function) [edit]
Defined in header
abs(std::intmax_t)imaxabs(C++11)(C++11) computes absolute value of an integral value (\(\small{|x
div(std::intmax_t)imaxdiv(C++11)(C++11) computes quotient and remainder of integer division (function) [edit]
Defined in header
Basic operations
abs(float)fabsfabsffabsl(C++11)(C++11) absolute value of a floating point value (\(\small{|x
fmodfmodffmodl(C++11)(C++11) remainder of the floating point division operation (function) [edit]
remainderremainderfremainderl(C++11)(C++11)(C++11) signed remainder of the division operation (function) [edit]
remquoremquofremquol(C++11)(C++11)(C++11) signed remainder as well as the three last bits of the division operation (function) [edit]
fmafmaffmal(C++11)(C++11)(C++11) fused multiply-add operation (function) [edit]
fmaxfmaxffmaxl(C++11)(C++11)(C++11) larger of two floating-point values (function) [edit]
fminfminffminl(C++11)(C++11)(C++11) smaller of two floating point values (function) [edit]
fdimfdimffdiml(C++11)(C++11)(C++11) positive difference of two floating point values (\({\small\max{(0, x-y)}}\)max(0, x-y)) (function) [edit]
nannanfnanl(C++11)(C++11)(C++11) not-a-number (NaN) (function) [edit]
Exponential functions
expexpfexpl(C++11)(C++11) returns e raised to the given power (\({\small e^x}\)ex) (function) [edit]
exp2exp2fexp2l(C++11)(C++11)(C++11) returns 2 raised to the given power (\({\small 2^x}\)2x) (function) [edit]
expm1expm1fexpm1l(C++11)(C++11)(C++11) returns e raised to the given power, minus 1 (\({\small e^x-1}\)ex-1) (function) [edit]
loglogflogl(C++11)(C++11) computes natural (base e) logarithm (\({\small\ln{x}}\)ln(x)) (function) [edit]
log10log10flog10l(C++11)(C++11) computes common (base 10) logarithm (\({\small\log_{10}{x}}\)log10(x)) (function) [edit]
log2log2flog2l(C++11)(C++11)(C++11) base 2 logarithm of the given number (\({\small\log_{2}{x}}\)log2(x)) (function) [edit]
log1plog1pflog1pl(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) [edit]
Power functions
powpowfpowl(C++11)(C++11) raises a number to the given power (\(\small{x^y}\)xy) (function) [edit]
sqrtsqrtfsqrtl(C++11)(C++11) computes square root (\(\small{\sqrt{x}}\)√x) (function) [edit]
cbrtcbrtfcbrtl(C++11)(C++11)(C++11) computes cube root (\(\small{\sqrt[3]{x}}\)3√x) (function) [edit]
hypothypotfhypotl(C++11)(C++11)(C++11) computes hypotenuse \(\scriptsize{\sqrt{x^2+y^2}}\)√x2+y2 and \(\scriptsize{\sqrt{x^2+y^2+z^2}}\)√x2+y2+z2(since C++17) (function) [edit]
Trigonometric functions
sinsinfsinl(C++11)(C++11) computes sine (\({\small\sin{x}}\)sin(x)) (function) [edit]
coscosfcosl(C++11)(C++11) computes cosine (\({\small\cos{x}}\)cos(x)) (function) [edit]
tantanftanl(C++11)(C++11) computes tangent (\({\small\tan{x}}\)tan(x)) (function) [edit]
asinasinfasinl(C++11)(C++11) computes arc sine (\({\small\arcsin{x}}\)arcsin(x)) (function) [edit]
acosacosfacosl(C++11)(C++11) computes arc cosine (\({\small\arccos{x}}\)arccos(x)) (function) [edit]
atanatanfatanl(C++11)(C++11) computes arc tangent (\({\small\arctan{x}}\)arctan(x)) (function) [edit]
atan2atan2fatan2l(C++11)(C++11) arc tangent, using signs to determine quadrants (function) [edit]
Hyperbolic functions
sinhsinhfsinhl(C++11)(C++11) computes hyperbolic sine (\({\small\sinh{x}}\)sinh(x)) (function) [edit]
coshcoshfcoshl(C++11)(C++11) computes hyperbolic cosine (\({\small\cosh{x}}\)cosh(x)) (function) [edit]
tanhtanhftanhl(C++11)(C++11) computes hyperbolic tangent (\({\small\tanh{x}}\)tanh(x)) (function) [edit]
asinhasinhfasinhl(C++11)(C++11)(C++11) computes the inverse hyperbolic sine (\({\small\operatorname{arsinh}{x}}\)arsinh(x)) (function) [edit]
acoshacoshfacoshl(C++11)(C++11)(C++11) computes the inverse hyperbolic cosine (\({\small\operatorname{arcosh}{x}}\)arcosh(x)) (function) [edit]
atanhatanhfatanhl(C++11)(C++11)(C++11) computes the inverse hyperbolic tangent (\({\small\operatorname{artanh}{x}}\)artanh(x)) (function) [edit]
Error and gamma functions
erferfferfl(C++11)(C++11)(C++11) error function (function) [edit]
erfcerfcferfcl(C++11)(C++11)(C++11) complementary error function (function) [edit]
tgammatgammaftgammal(C++11)(C++11)(C++11) gamma function (function) [edit]
lgammalgammaflgammal(C++11)(C++11)(C++11) natural logarithm of the gamma function (function) [edit]
Nearest integer floating point operations
ceilceilfceill(C++11)(C++11) nearest integer not less than the given value (function) [edit]
floorfloorffloorl(C++11)(C++11) nearest integer not greater than the given value (function) [edit]
trunctruncftruncl(C++11)(C++11)(C++11) nearest integer not greater in magnitude than the given value (function) [edit]
roundroundfroundllroundlroundflroundlllroundllroundfllroundl(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) [edit]
nearbyintnearbyintfnearbyintl(C++11)(C++11)(C++11) nearest integer using current rounding mode (function) [edit]
rintrintfrintllrintlrintflrintlllrintllrintfllrintl(C++11)(C++11)(C++11)(C++11)(C++11)(C++11)(C++11)(C++11)(C++11) nearest integer using current rounding mode withexception if the result differs (function) [edit]
Floating point manipulation functions
frexpfrexpffrexpl(C++11)(C++11) decomposes a number into significand and base-2 exponent (function) [edit]
ldexpldexpfldexpl(C++11)(C++11) multiplies a number by 2 raised to an integral power (function) [edit]
modfmodffmodfl(C++11)(C++11) decomposes a number into integer and fractional parts (function) [edit]
scalbnscalbnfscalbnlscalblnscalblnfscalblnl(C++11)(C++11)(C++11)(C++11)(C++11)(C++11) multiplies a number by FLT_RADIX raised to a power (function) [edit]
ilogbilogbfilogbl(C++11)(C++11)(C++11) extracts exponent of the number (function) [edit]
logblogbflogbl(C++11)(C++11)(C++11) extracts exponent of the number (function) [edit]
nextafternextafterfnextafterlnexttowardnexttowardfnexttowardl(C++11)(C++11)(C++11)(C++11)(C++11)(C++11) next representable floating-point value towards the given value (function) [edit]
copysigncopysignfcopysignl(C++11)(C++11)(C++11) copies the sign of a floating point value (function) [edit]
Classification and comparison
fpclassify(C++11) categorizes the given floating-point value (function) [edit]
isfinite(C++11) checks if the given number has finite value (function) [edit]
isinf(C++11) checks if the given number is infinite (function) [edit]
isnan(C++11) checks if the given number is NaN (function) [edit]
isnormal(C++11) checks if the given number is normal (function) [edit]
signbit(C++11) checks if the given number is negative (function) [edit]
isgreater(C++11) checks if the first floating-point argument is greater than the second (function) [edit]
isgreaterequal(C++11) checks if the first floating-point argument is greater or equal than the second (function) [edit]
isless(C++11) checks if the first floating-point argument is less than the second (function) [edit]
islessequal(C++11) checks if the first floating-point argument is less or equal than the second (function) [edit]
islessgreater(C++11) checks if the first floating-point argument is less or greater than the second (function) [edit]
isunordered(C++11) checks if two floating-point values are unordered (function) [edit]

[edit] Types

Defined in header
div_t structure type, returned by std::div (typedef) [edit]
ldiv_t structure type, returned by std::ldiv (typedef) [edit]
lldiv_t(C++11) structure type, returned by std::lldiv (typedef) [edit]
Defined in header
imaxdiv_t(C++11) structure type, returned by std::imaxdiv (typedef) [edit]
Defined in header
float_t(C++11) most efficient floating-point type at least as wide as float (typedef) [edit]
double_t(C++11) most efficient floating-point type at least as wide as double (typedef) [edit]

[edit] Macro constants

Defined in header
HUGE_VALFHUGE_VALHUGE_VALL(C++11)(C++11) indicates the overflow value for float, double and long double respectively (macro constant) [edit]
INFINITY(C++11) evaluates to positive infinity or the value guaranteed to overflow a float (macro constant) [edit]
NAN(C++11) evaluates to a quiet NaN of type float (macro constant) [edit]
math_errhandlingMATH_ERRNOMATH_ERREXCEPT(C++11)(C++11)(C++11) defines the error handling mechanism used by the common mathematical functions (macro constant) [edit]
Classification
FP_NORMALFP_SUBNORMALFP_ZEROFP_INFINITEFP_NAN(C++11)(C++11)(C++11)(C++11)(C++11) indicates a floating-point category (macro constant) [edit]

[edit] Notes

Feature-test macro Value Std Feature
__cpp_lib_constexpr_cmath 202202L (C++23) Constexpr for FP environment agnostic mathematical functions in and
202306L (C++26) Constexpr for most mathematical functions in

[edit] See also