logbf , logbl 或 logb 子例程

用途

计算独立于基数的指数。

语法

#include <math.h>

float logbf (x)
float x;

long double logbl (x)
long double x;

double logb(x)
double x;

描述

logbflogbl 子例程计算 x的指数,这是对数r | x | 的整数部分。 作为非零 x的带符号浮点值,其中 r 是机器的浮点算术的基数。 对于AIX®,FLT_RADIXr=2。

如果 x 是次常态,那么会将其视为已规范化; 因此对于有限正数 x:

1 <= x * FLT_RADIX-logb(x) < FLT_RADIX

希望检查错误情况的应用程序应将 errno 设置为零,并在调用这些子例程之前调用 feclearexcept(FE_ALL_EXCEPT)。 返回时,如果 errno 为非零或 fetestexcept(FE_INVALID | FE_DIVBYZERO | FE_OVERFLOW | FE_UNDERFLOW) 为非零,那么发生了错误。

注:x 参数为有限且不为零时, logb (x) 子例程满足以下方程:
1 < = scalb (|x|, -(int) logb (x)) < 2

参数

描述
X 指定要计算的值。

返回值

成功完成后, logbflogbl 子例程将返回 x的指数。

如果 x 为 ± 0 ,那么将发生极错误,并且 logbflogbl 子例程分别返回-HUGE_VALF 和-HUGE_VALL

如果x为NaN,返回NaN。

如果 x 是 ± Inf ,那么将返回 + Inf。

错误代码

当 x 参数设置为值 0 并将 errno 设置为 EDOM时, logb 函数将返回 -HUGE_VAL