计算 1 加上指定值的自然对数。
语法
double log1p(double x);
float log1pf(float x);
long double log1pl(long double x);
#define log1p(X) // Requires C11 or later
float log1p(float x); //C++ only
long double log1p(long double x); //C++ only
参数
x
浮点型参数。
返回值
如果成功,则返回 (x + 1) 的自然(以 e 为底)对数。
否则,可能返回以下值之一:
| 输入 | 结果 | SEH 异常 | errno |
|---|---|---|---|
| +INF | +INF | ||
| 非规格化数 | 与输入相同 | UNDERFLOW |
|
| ±0 | 与输入相同 | ||
| -1 | -INF | DIVBYZERO |
ERANGE |
| < -1 | NaN | INVALID |
EDOM |
| -INF | NaN | INVALID |
EDOM |
| ±SNaN | 与输入相同 | INVALID |
|
| ±QNaN,不定 | 与输入相同 |
如果 x = -1,则将 errno 值设置为 ERANGE。 如果为 x< -1,则 errno 值设置为 EDOM。
备注
当 x 接近 0 时,log1p 函数比使用 log(x + 1) 更准确。
由于 C++ 支持重载,您可以调用采用并返回 log1p 和 float 类型的 long double 的重载。 在 C 程序中,除非使用 <tgmath.h> 宏调用此函数,否则 log1p 始终采用并返回 double。
如果使用<tgmath.h>log1p()宏,参数的类型将确定选择哪个版本的函数。 有关详细信息,请参阅泛型类型数学。
如果 x 是自然数,则此函数返回 x + 1 的以 e 为底的对数。
默认情况下,此函数的全局状态范围限定为应用程序。 若要更改此行为,请参阅 CRT 中的全局状态。
要求
| 函数 | C 标头 | C++ 标头 |
|---|---|---|
log1p、 log1pf、、 log1pl |
<math.h> |
<cmath> |
log1p 宏 |
<tgmath.h> |
有关兼容性的详细信息,请参阅 兼容性。