log1p, log1pf, log1pl

计算 1 加上指定值的自然对数。

语法

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

参数

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++ 支持重载,您可以调用采用并返回 log1pfloat 类型的 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>

有关兼容性的详细信息,请参阅 兼容性

另请参阅

按字母顺序显示的函数参考
log2log2flog2l
loglogflog10log10f