Rate This Document
Findability
Accuracy
Completeness
Readability

expm1

Compute the value of e raised to the power of x and subtract 1 from the result.

Interface Definition

C interface:

float expm1f(float x);

double expm1(double x);

long double expm1l(long double x);

Parameters

Parameter

Type

Description

Input/Output

x

  • For expm1f, x is of single-precision floating-point type.
  • For expm1, x is of double-precision floating-point type.
  • For expm1l, x is of long double-precision floating-point type.

Floating-point value of the input data.

Input

Return Value

  • The difference of e raised to the power of x and 1 is returned. y ∈ (-1, +INF)
  • If the input is +0, the return value is +0.
  • If the input is -0, the return value is +0.
  • If the input of expm1f is greater than 0x1.62e42ep6 (about 88.72), the return value is +∞. If the input of expm1 is greater than 0x1.8p9 (768), the return value is +∞.
  • If the input of expm1f is less than 0x1.9fe368p6 (about -103.97), the return value is -1.0. If the input of expm1 is less than -0x1.4cb5fp5 (about -41.58), the return value is -1.0.
  • If the input is +∞, the return value is +∞.
  • If the input is -∞, the return value is -1.0.
  • If the input is NaN, the return value is NaN.

Dependency

C: "km.h"

Example

C interface:

    // typical usage
    double x1 = 0.0, x2 = -0.0;
    double a = 1.0, b = INFINITY, c = -INFINITY, d = NAN, e = 1024.0;
    // print result
    printf("expm1(0.0) = %.15f\n", expm1(x1));
    printf("expm1(-0.0) = %.15f\n", expm1(x2));
    printf("expm1(1024.0) = %.15f\n", expm1(e));
    printf("expm1(1.0) = %.15f\n", expm1(a));
    printf("expm1(INFINITY) = %.15f\n", expm1(b));
    printf("expm1(-INFINITY) = %.15f\n", expm1(c));
    printf("expm1(NAN) = %.15f\n", expm1(d));
    /* 
     * expm1(0.0) = 0.000000000000000
     * expm1(-0.0) = -0.000000000000000
     * expm1(1024.0) = inf
     * expm1(1.0) = 1.718281828459045
     * expm1(INFINITY) = inf
     * expm1(-INFINITY) = -1.000000000000000
     * expm1(NAN) = nan
     * 
     * */