/C

# Common mathematical functions

### 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)
(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 (3x)
(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 (sh(x))
(function)
(C99)(C99)
computes hyperbolic cosine (ch(x))
(function)
(C99)(C99)
computes hyperbolic tangent
(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)
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)
(C99)
checks if the given number has finite value
(function)
(C99)
checks if the given number is infinite
(function)
(C99)
checks if the given number is NaN
(function)
(C99)
checks if the given number is normal
(function)
(C99)
checks if the given number is negative
(function)
(C99)
checks if the first floating-point argument is greater than the second
(function)
(C99)
checks if the first floating-point argument is greater or equal than the second
(function)
(C99)
checks if the first floating-point argument is less than the second
(function)
(C99)
checks if the first floating-point argument is less or equal than the second
(function)
(C99)
checks if the first floating-point argument is less or greater than the second
(function)
(C99)
checks if two floating-point values are unordered
(function)

### 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)
most efficient floating-point type at least as wide as `float`
(typedef)
(C99)
most efficient floating-point type at least as wide as `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

• 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>