Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
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.
Where x
is a natural number, this function returns the base e logarithm of x
+ 1.
By default, this function's global state is scoped to the application. To change this behavior, see Global state in the CRT.
Requirements
Function | C header | C++ header |
---|---|---|
log1p , log1pf , log1pl |
<math.h> |
<cmath> |
log1p macro |
<tgmath.h> |
For more compatibility information, see Compatibility.
See also
Alphabetical function reference
log2
, log2f
, log2l
log
, logf
, log10
, log10f