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++ 支持重载,您可以调用采用并返回 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> |
有关兼容性的详细信息,请参阅 兼容性。