名前


logb, logbf, logbl - 浮動小数点数の指数を取得する

書式


#include <math.h>

double logb(double x); float logbf(float x); long double logbl(long double x);

-lm でリンクする。

説明


これらの関数は x の指数を抽出し、浮動小数点数として返す。 FLT_RADIX が 2 の場合、 logb(x)floor(log2(x)) と等しいが、後者の方がたぶん高速である。

x が正規化されていない場合、 logb() は x が正規化された場合の指数を返す。

x が 0 の場合、-HUGE_VAL, -HUGE_VALF, -HUGE_VALL がそれぞれ返されて、 極 (pole) によるエラーが起きる。 x が無限大の場合、正の無限大が返される。 x が NaN の場合、NaN が返される。

エラー


エラーをチェックするためには、これらの関数を呼び出す前に errno を 0 に設定し、 feclearexcept(FE_ALL_EXCEPT) を呼び出す。 これらの関数から返った後で、 errno が 0 以外または fetestexcept(FE_INVALID | FE_DIVBYZERO | FE_OVERFLOW | FE_UNDERFLOW) が 0 以外になっている場合は、エラーが起きている。

エラーが起きていて、かつ (math_errhandling & MATH_ERRNO) が 0 以外の場合、 errnoERANGE に設定される。 エラーが起きていて、かつ (math_errhandling & MATH_ERREXCEPT) が 0 以外の場合、0 で割ったことによる浮動小数点数の例外が発生する。

x が 0 の場合、極によるエラーが起きる。

準拠


C99

関連項目


log(3), ilogb(3)

openSUSE Logo

コンテンツ