Common mathematical functions
From cppreference.com
Functions
Defined in header
<stdlib.h> | |
(C99) |
computes absolute value of an integral value (|x|) (function) |
(C99) |
computes quotient and remainder of integer division (function) |
Defined in header
<inttypes.h> | |
(C99) |
computes absolute value of an integral value (|x|) (function) |
(C99) |
computes quotient and remainder of integer division (function) |
Defined in header
<math.h> | |
Basic operations | |
(C99)(C99) |
computes absolute value of a floating-point value (|x|) (function) |
(C99)(C99) |
computes remainder of the floating-point division operation (function) |
(C99)(C99)(C99) |
computes signed remainder of the floating-point division operation (function) |
(C99)(C99)(C99) |
computes signed remainder as well as the three last bits of the division operation (function) |
(C99)(C99)(C99) |
computes fused multiply-add operation (function) |
(C99)(C99)(C99) |
determines larger of two floating-point values (function) |
(C99)(C99)(C99) |
determines smaller of two floating-point values (function) |
(C99)(C99)(C99) |
determines positive difference of two floating-point values (max(0, x-y)) (function) |
(C99)(C99)(C99) |
returns a NaN (not-a-number) (function) |
Exponential functions | |
(C99)(C99) |
computes e raised to the given power (ex) (function) |
(C99)(C99)(C99) |
computes 2 raised to the given power (2x) (function) |
(C99)(C99)(C99) |
computes e raised to the given power, minus one (ex-1) (function) |
(C99)(C99) |
computes natural (base-e) logarithm (ln(x)) (function) |
(C99)(C99) |
computes common (base-10) logarithm (log10(x)) (function) |
(C99)(C99)(C99) |
computes base-2 logarithm (log2(x)) (function) |
(C99)(C99)(C99) |
computes natural (base-e) logarithm of 1 plus the given number (ln(1+x)) (function) |
Power functions | |
(C99)(C99) |
computes a number raised to the given power (xy) (function) |
(C99)(C99) |
computes square root (√x) (function) |
(C99)(C99)(C99) |
computes cubic root (3√x) (function) |
(C99)(C99)(C99) |
computes square root of the sum of the squares of two given numbers (√x2 +y2 ) (function) |
Trigonometric functions | |
(C99)(C99) |
computes sine (sin(x)) (function) |
(C99)(C99) |
computes cosine (cos(x)) (function) |
(C99)(C99) |
computes tangent (tan(x)) (function) |
(C99)(C99) |
computes arc sine (arcsin(x)) (function) |
(C99)(C99) |
computes arc cosine (arccos(x)) (function) |
(C99)(C99) |
computes arc tangent (arctan(x)) (function) |
(C99)(C99) |
computes arc tangent, using signs to determine quadrants (function) |
Hyperbolic functions | |
(C99)(C99) |
computes hyperbolic sine (sinh(x)) (function) |
(C99)(C99) |
computes hyperbolic cosine (cosh(x)) (function) |
(C99)(C99) |
computes hyperbolic tangent (tanh(x)) (function) |
(C99)(C99)(C99) |
computes inverse hyperbolic sine (arsinh(x)) (function) |
(C99)(C99)(C99) |
computes inverse hyperbolic cosine (arcosh(x)) (function) |
(C99)(C99)(C99) |
computes inverse hyperbolic tangent (artanh(x)) (function) |
Error and gamma functions | |
(C99)(C99)(C99) |
computes error function (function) |
(C99)(C99)(C99) |
computes complementary error function (function) |
(C99)(C99)(C99) |
computes gamma function (function) |
(C99)(C99)(C99) |
computes natural (base-e) logarithm of the gamma function (function) |
Nearest integer floating-point operations | |
(C99)(C99) |
computes smallest integer not less than the given value (function) |
(C99)(C99) |
computes largest integer not greater than the given value (function) |
(C99)(C99)(C99) |
rounds to nearest integer not greater in magnitude than the given value (function) |
(C99)(C99)(C99)(C99)(C99)(C99)(C99)(C99)(C99) |
rounds to nearest integer, rounding away from zero in halfway cases (function) |
(C99)(C99)(C99) |
rounds to an integer using current rounding mode (function) |
(C99)(C99)(C99)(C99)(C99)(C99)(C99)(C99)(C99) |
rounds to an integer using current rounding mode with exception if the result differs (function) |
Floating-point manipulation functions | |
(C99)(C99) |
breaks a number into significand and a power of 2 (function) |
(C99)(C99) |
multiplies a number by 2 raised to a power (function) |
(C99)(C99) |
breaks a number into integer and fractional parts (function) |
(C99)(C99)(C99)(C99)(C99)(C99) |
computes efficiently a number times FLT_RADIX raised to a power (function) |
(C99)(C99)(C99) |
extracts exponent of the given number (function) |
(C99)(C99)(C99) |
extracts exponent of the given number (function) |
(C99)(C99)(C99)(C99)(C99)(C99) |
determines next representable floating-point value towards the given value (function) |
(C99)(C99)(C99) |
produces a value with the magnitude of a given value and the sign of another given value (function) |
Classification and comparison | |
(C99) |
classifies the given floating-point value (function macro) |
(C99) |
checks if the given number has finite value (function macro) |
(C99) |
checks if the given number is infinite (function macro) |
(C99) |
checks if the given number is NaN (function macro) |
(C99) |
checks if the given number is normal (function macro) |
(C99) |
checks if the given number is negative (function macro) |
(C99) |
checks if the first floating-point argument is greater than the second (function macro) |
(C99) |
checks if the first floating-point argument is greater or equal than the second (function macro) |
(C99) |
checks if the first floating-point argument is less than the second (function macro) |
(C99) |
checks if the first floating-point argument is less or equal than the second (function macro) |
(C99) |
checks if the first floating-point argument is less or greater than the second (function macro) |
(C99) |
checks if two floating-point values are unordered (function macro) |
Types
Defined in header
<stdlib.h> | |
structure type, return of the div function (typedef) | |
structure type, return of the ldiv function (typedef) | |
(C99) |
structure type, return of the lldiv function (typedef) |
Defined in header
<inttypes.h> | |
(C99) |
structure type, return of the imaxdiv function (typedef) |
Defined in header
<math.h> | |
(C99)(C99) |
most efficient floating-point type at least as wide as float or double (typedef) |
Macro constants
Defined in header
<math.h> | |
(C99)(C99) |
indicates value too big to be representable (infinity) by float, double and long double respectively (macro constant) |
(C99) |
evaluates to positive infinity or the value guaranteed to overflow a float (macro constant) |
(C99) |
evaluates to a quiet NaN of type float (macro constant) |
(C99)(C99)(C99) |
indicates that the fma function generally executes about as fast as, or faster than, a multiply and an add of double operands (macro constant) |
(C99)(C99) |
evaluates to ilogb(x) if x is zero or NaN, respectively (macro constant) |
(C99)(C99)(C99) |
defines the error handling mechanism used by the common mathematical functions (macro constant) |
Classification | |
(C99)(C99)(C99)(C99)(C99) |
indicates a floating-point category (macro constant) |
References
- C17 standard (ISO/IEC 9899:2018):
- 7.8 Format conversion of integer types <inttypes.h> (p: 158-160)
- 7.12 Mathematics <math.h> (p: 169-190)
- 7.22 General utilities <stdlib.h> (p: 248-262)
- 7.31.5 Format conversion of integer types <inttypes.h> (p: 332)
- 7.31.12 General utilities <stdlib.h> (p: 333)
- C11 standard (ISO/IEC 9899:2011):
- 7.8 Format conversion of integer types <inttypes.h> (p: 217-220)
- 7.12 Mathematics <math.h> (p: 231-261)
- 7.22 General utilities <stdlib.h> (p: 340-360)
- 7.31.5 Format conversion of integer types <inttypes.h> (p: 455)
- 7.31.12 General utilities <stdlib.h> (p: 456)
- C99 standard (ISO/IEC 9899:1999):
- 7.8 Format conversion of integer types <inttypes.h> (p: 198-201)
- 7.12 Mathematics <math.h> (p: 212-242)
- 7.20 General utilities <stdlib.h> (p: 306-324)
- 7.26.4 Format conversion of integer types <inttypes.h> (p: 401)
- 7.26.10 General utilities <stdlib.h> (p: 402)
- C89/C90 standard (ISO/IEC 9899:1990):
- 4.5 MATHEMATICS <math.h>
- 4.10 GENERAL UTILITIES <stdlib.h>
- 4.13.4 Mathematics <math.h>
- 7.13.7 General utilities <stdlib.h>