# Floating-point Intrinsics

The following table lists and describes floating point intrinsics that you can use across all Intel® and compatible architectures. Floating-point intrinsic functions may invoke library functions that are more highly optimized for Intel® microprocessors than for non-Intel microprocessors.

Intrinsic | Description
--- | ---
`double fabs(double)` | Returns the absolute value of a floating-point value.
`double log(double)` | Returns the natural logarithm ln(x), x>0, with double precision.
`float logf(float)` | Returns the natural logarithm ln(x), x>0, with single precision.
`double log10(double)` | Returns the base 10 logarithm log10(x), x>0, with double precision.
`float log10f(float)` | Returns the base 10 logarithm log10(x), x>0, with single precision.
`double exp(double)` | Returns the exponential function with double precision.
`float expf(float)` | Returns the exponential function with single precision.
`double pow(double, double)` | Returns the value of x to the power y with double precision.
`float powf(float, float)` | Returns the value of x to the power y with single precision.
`double sin(double)` | Returns the sine of x with double precision.
`float sinf(float)` | Returns the sine of x with single precision.
`double cos(double)` | Returns the cosine of x with double precision.
`float cosf(float)` | Returns the cosine of x with single precision.
`double tan(double)` | Returns the tangent of x with double precision.
`float tanf(float)` | Returns the tangent of x with single precision.
`double acos(double)` | Returns the inverse cosine of x with double precision.
`float acosf(float)` | Returns the inverse cosine of x with single precision.
`double acosh(double)` | Compute the inverse hyperbolic cosine of the argument with double precision.
`float acoshf(float)` | Compute the inverse hyperbolic cosine of the argument with single precision.
`double asin(double)` | Compute inverse sine of the argument with double precision.
`float asinf(float)` | Compute inverse sine of the argument with single precision.
`double asinh(double)` | Compute inverse hyperbolic sine of the argument with double precision.
`float asinhf(float)` | Compute inverse hyperbolic sine of the argument with single precision.
`double atan(double)` | Compute inverse tangent of the argument with double precision.
`float atanf(float)` | Compute inverse tangent of the argument with single precision.
`double atanh(double)` | Compute inverse hyperbolic tangent of the argument with double precision.
`float atanhf(float)` | Compute inverse hyperbolic tangent of the argument with single precision.
`double cabs(double complex z)` | Computes absolute value of complex number. The intrinsic argument is a complex number made up of two double precision elements, one real and one imaginary. The input parameter z is made up of two values of double type passed together as a single argument.
`float cabsf(float complex z)` | Computes absolute value of complex number. The intrinsic argument is a complex number made up of two single precision elements, one real and one imaginary. The input parameter z is made up of two values of float type passed together as a single argument.
`double ceil(double)` | Computes smallest integral value of double precision argument not less than the argument.
`float ceilf(float)` | Computes smallest integral value of single precision argument not less than the argument.
`double cosh(double)` | Computes the hyperbolic cosine of double precision argument.
`float coshf(float)` | Computes the hyperbolic cosine of single precision argument.
`float fabsf(float)` | Computes absolute value of single precision argument.
`double floor(double)` | Computes the largest integral value of the double precision argument not greater than the argument.
`float floorf(float)` | Computes the largest integral value of the single precision argument not greater than the argument.
`double fmod(double)` | Computes the floating-point remainder of the division of the first argument by the second argument with double precision.
`float fmodf(float)` | Computes the floating-point remainder of the division of the first argument by the second argument with single precision.
`double hypot(double, double)` | Computes the length of the hypotenuse of a right angled triangle with double precision.
`float hypotf(float, float)` | Computes the length of the hypotenuse of a right angled triangle with single precision.
`double rint(double)` | Computes the integral value represented as double using the IEEE rounding mode.
`float rintf(float)` | Computes the integral value represented with single precision using the IEEE rounding mode.
`double sinh(double)` | Computes the hyperbolic sine of the double precision argument.
`float sinhf(float)` | Computes the hyperbolic sine of the single precision argument.
`float sqrtf(float)` | Computes the square root of the single precision argument.
`double tanh(double)` | Computes the hyperbolic tangent of the double precision argument.
`float tanhf(float)` | Computes the hyperbolic tangent of the single precision argument.

Parent topic: Intrinsics for All Intel® Architectures