Common mathematical functions - cppreference.com

Types

Defined in header <stdlib.h>

structure type, return of the div function
(typedef) [edit]
structure type, return of the ldiv function
(typedef) [edit]
structure type, return of the lldiv function
(typedef) [edit]

Defined in header <inttypes.h>

structure type, return of the imaxdiv function
(typedef) [edit]

Defined in header <math.h>

most efficient floating-point type at least as wide as float
(typedef) [edit]
most efficient floating-point type at least as wide as double
(typedef) [edit]

Constants

Defined in header <math.h>

indicates value too big to be representable (infinity) by float, double and long double respectively
(macro constant) [edit]
evaluates to positive infinity or the value guaranteed to overflow a float
(macro constant) [edit]

(C99)

evaluates to a quiet NaN of type float
(macro constant) [edit]
indicates that the fma function generally executes about as fast as, or faster than, a multiply and an add of double operands
(macro constant) [edit]
evaluates to ilogb(x) if x is zero or NaN, respectively
(macro constant) [edit]
defines the error handling mechanism used by the common mathematical functions
(macro constant) [edit]
Classification
indicates a floating-point category
(macro constant) [edit]

Functions

Defined in header <stdlib.h>

computes absolute value of an integral value (|x|)
(function) [edit]
computes quotient and remainder of integer division
(function) [edit]

Defined in header <inttypes.h>

computes absolute value of an integral value (|x|)
(function) [edit]
computes quotient and remainder of integer division
(function) [edit]

Defined in header <math.h>

Basic operations

(C99)(C99)

computes absolute value of a floating-point value (|x|)
(function) [edit]

(C99)(C99)

computes remainder of the floating-point division operation
(function) [edit]
computes signed remainder of the floating-point division operation
(function) [edit]

(C99)(C99)(C99)

computes signed remainder as well as the three last bits of the division operation
(function) [edit]

(C99)(C99)(C99)

computes fused multiply-add operation
(function) [edit]

(C99)(C99)(C99)

determines larger of two floating-point values
(function) [edit]

(C99)(C99)(C99)

determines smaller of two floating-point values
(function) [edit]

(C99)(C99)(C99)

determines positive difference of two floating-point values (max(0, x-y))
(function) [edit]

(C99)(C99)(C99)

returns a NaN (not-a-number)
(function) [edit]
Exponential functions

(C99)(C99)

computes e raised to the given power (ex)
(function) [edit]

(C99)(C99)(C99)

computes 2 raised to the given power (2x)
(function) [edit]

(C99)(C99)(C99)

computes e raised to the given power, minus one (ex-1)
(function) [edit]

(C99)(C99)

computes natural (base-e) logarithm (ln(x))
(function) [edit]
computes common (base-10) logarithm (log10(x))
(function) [edit]

(C99)(C99)(C99)

computes base-2 logarithm (log2(x))
(function) [edit]

(C99)(C99)(C99)

computes natural (base-e) logarithm of 1 plus the given number (ln(1+x))
(function) [edit]
Power functions

(C99)(C99)

computes a number raised to the given power (xy)
(function) [edit]

(C99)(C99)

computes square root (x)
(function) [edit]

(C99)(C99)(C99)

computes cube root (3x)
(function) [edit]

(C99)(C99)(C99)

computes square root of the sum of the squares of two given numbers (x2
+y2
)
(function) [edit]
Trigonometric functions

(C99)(C99)

computes sine (sin(x))
(function) [edit]

(C99)(C99)

computes cosine (cos(x))
(function) [edit]

(C99)(C99)

computes tangent (tan(x))
(function) [edit]

(C99)(C99)

computes arc sine (arcsin(x))
(function) [edit]

(C99)(C99)

computes arc cosine (arccos(x))
(function) [edit]

(C99)(C99)

computes arc tangent (arctan(x))
(function) [edit]
computes arc tangent, using signs to determine quadrants
(function) [edit]
Hyperbolic functions

(C99)(C99)

computes hyperbolic sine (sinh(x))
(function) [edit]

(C99)(C99)

computes hyperbolic cosine (cosh(x))
(function) [edit]

(C99)(C99)

computes hyperbolic tangent (tanh(x))
(function) [edit]

(C99)(C99)(C99)

computes inverse hyperbolic sine (arsinh(x))
(function) [edit]

(C99)(C99)(C99)

computes inverse hyperbolic cosine (arcosh(x))
(function) [edit]

(C99)(C99)(C99)

computes inverse hyperbolic tangent (artanh(x))
(function) [edit]
Error and gamma functions

(C99)(C99)(C99)

computes error function
(function) [edit]

(C99)(C99)(C99)

computes complementary error function
(function) [edit]

(C99)(C99)(C99)

computes gamma function
(function) [edit]

(C99)(C99)(C99)

computes natural (base-e) logarithm of the gamma function
(function) [edit]
Nearest integer floating-point operations

(C99)(C99)

computes smallest integer not less than the given value
(function) [edit]
computes largest integer not greater than the given value
(function) [edit]

(C99)(C99)(C99)

rounds to nearest integer not greater in magnitude than the given value
(function) [edit]

(C99)(C99)(C99)(C99)(C99)(C99)(C99)(C99)(C99)

rounds to nearest integer, rounding away from zero in halfway cases
(function) [edit]
rounds to an integer using current rounding mode
(function) [edit]

(C99)(C99)(C99)(C99)(C99)(C99)(C99)(C99)(C99)

rounds to an integer using current rounding mode with
exception if the result differs
(function) [edit]
Floating-point manipulation functions
breaks a number into significand and a power of 2
(function) [edit]
multiplies a number by 2 raised to a power
(function) [edit]

(C99)(C99)

breaks a number into integer and fractional parts
(function) [edit]

(C99)(C99)(C99)(C99)(C99)(C99)

computes efficiently a number times FLT_RADIX raised to a power
(function) [edit]

(C99)(C99)(C99)

extracts exponent of the given number
(function) [edit]

(C99)(C99)(C99)

extracts exponent of the given number
(function) [edit]
determines next representable floating-point value towards the given value
(function) [edit]
produces a value with the magnitude of a given value and the sign of another given value
(function) [edit]
Classification and comparison
classifies the given floating-point value
(function macro) [edit]
checks if the given number has finite value
(function macro) [edit]

(C99)

checks if the given number is infinite
(function macro) [edit]

(C99)

checks if the given number is NaN
(function macro) [edit]
checks if the given number is normal
(function macro) [edit]
checks if the given number is negative
(function macro) [edit]
checks if the first floating-point argument is greater than the second
(function macro) [edit]
checks if the first floating-point argument is greater or equal than the second
(function macro) [edit]

(C99)

checks if the first floating-point argument is less than the second
(function macro) [edit]
checks if the first floating-point argument is less or equal than the second
(function macro) [edit]
checks if the first floating-point argument is less or greater than the second
(function macro) [edit]
checks if two floating-point values are unordered
(function macro) [edit]

References

  • C23 standard (ISO/IEC 9899:2024):
  • 7.8 Format conversion of integer types <inttypes.h> (p: TBD)
  • 7.12 Mathematics <math.h> (p: TBD)
  • 7.22 General utilities <stdlib.h> (p: TBD)
  • 7.31.5 Format conversion of integer types <inttypes.h> (p: TBD)
  • 7.31.12 General utilities <stdlib.h> (p: TBD)
  • 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>

See also