log1p, log1pf, log1pl

Computes the natural logarithm of 1 plus the specified value.

Syntax

double log1p(
   double x
);
float log1pf(
   float x
);
long double log1pl(
   long double x
);

#define log1p(X) // Requires C11 or higher

float log1p(
   float x
); //C++ only

long double log1p(
   long double x
); //C++ only

Parameters

x
The floating-point argument.

Return Value

If successful, returns the natural (base-e) log of (x + 1).

Otherwise, may return one of the following values:

Input Result SEH exception errno
+inf +inf
Denormals Same as input UNDERFLOW
±0 Same as input
-1 -inf DIVBYZERO ERANGE
< -1 nan INVALID EDOM
-inf nan INVALID EDOM
±SNaN Same as input INVALID
±QNaN, indefinite Same as input

The errno value is set to ERANGE if x = -1. The errno value is set to EDOM if x < -1.

Remarks

The log1p functions may be more accurate than using log(x + 1) when x is near 0.

Because C++ allows overloading, you can call overloads of log1p that take and return float and long double types. In a C program, unless you're using the <tgmath.h> macro to call this function, log1p always takes and returns a double.

If you use the <tgmath.h> log1p() macro, the type of the argument determines which version of the function is selected. See Type-generic math for details.

If x is a natural number, this function returns the logarithm of the factorial of (x - 1).

By default, this function's global state is scoped to the application. To change this, see Global state in the CRT.

Requirements

Function C header C++ header
log1p, log1pf, log1pl <math.h> <cmath>
log1p macro <tgmath.h>

For additional compatibility information, see Compatibility.

See also

Alphabetical Function Reference
log2, log2f, log2l
log, logf, log10, log10f