Manpages

名 前

ilogb, ilogbf, ilogbl − 浮 動 小 数 点 数 の 指 数 部 を 整 数 と し て 取 得 す る

書 式

#include <math.h>

int ilogb(double x);
int ilogbf(float
x);
int ilogbl(long double
x);

−lm で リ ン ク す る 。

glibc 向 け の 機 能 検 査 マ ク ロ の 要 件 (feature_test_macros(7) 参 照 ):

ilogb():

_BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE >= 500 || _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED || _ISOC99_SOURCE || _POSIX_C_SOURCE >= 200112L;
or cc −std=c99

ilogbf(), ilogbl():

_BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE >= 600 || _ISOC99_SOURCE || _POSIX_C_SOURCE >= 200112L;
or cc −std=c99

説 明

こ れ ら の 関 数 は 引 き 数 の 指 数 部 を 符 号 付 き 整 数 と し て 返 す 。 エ ラ ー が 起 ら な か っ た 場 合 、 こ れ ら の 関 数 は 、 対 応 す る logb(3) 関 数 を int で キ ャ ス ト し た も の と 等 価 で あ る 。

返 り 値

成 功 す る と 、 こ れ ら の 関 数 は x の 指 数 部 を 符 号 付 き 整 数 と し て 返 す 。

x が ゼ ロ の 場 合 、 領 域 エ ラ ー (domain error) が 発 生 し 、 FP_ILOGB0 が 返 さ れ る 。

x が NaN の 場 合 、 領 域 エ ラ ー (domain error) が 発 生 し 、 FP_ILOGBNAN が 返 さ れ る 。

x が 負 の 無 限 大 か 正 の 無 限 大 の 場 合 、 領 域 エ ラ ー (domain error) が 発 生 し 、 INT_MAX が 返 さ れ る 。

エ ラ ー

こ れ ら の 関 数 を 呼 び 出 し た 際 に エ ラ ー が 発 生 し た か の 判 定 方 法 に つ い て の 情 報 は math_error(7) を 参 照 の こ と 。 以 下 の エ ラ ー が 発 生 す る 可 能 性 が あ る 。 領 域 エ ラ ー :

x が 0 か NaN 不 正 (invalid) 浮 動 小 数 点 例 外 (FE_INVALID) が 上 が り 、 errnoEDOM が 設 定 さ れ る (た だ し 、 「 バ グ 」 を 参 照 )。 領 域 エ ラ ー
(domain error): x が 無 限 大 で あ る 不 正 (invalid) 浮 動 小 数 点 例 外 (FE_INVALID) が 上 が り 、 errnoEDOM が 設 定 さ れ る (た だ し 、 「 バ グ 」 を 参 照 )。

属 性

マ ル チ ス レ ッ デ ィ ン グ (pthreads(7) 参 照 ) 関 数 ilogb(), ilogbf(), ilogbl() は ス レ ッ ド セ ー フ で あ る 。

準 拠

C99, POSIX.1−2001.

バ グ

バ ー ジ ョ ン 2.16 よ り 前 で は 、 こ れ ら の 関 数 の glibc 実 装 に は 以 下 の バ グ が 存 在 し た 。

*

x が 0 か NaN の 場 合 の 領 域 エ ラ ー で 、 errno が 設 定 さ れ な か っ た り 、 (ア ー キ テ ク チ ャ ー に よ っ て は ) 浮 動 小 数 点 例 外 が 上 が ら な か っ た 。

*

x が 無 限 大 の 場 合 の 領 域 エ ラ ー で 、 errno が 設 定 さ れ ず 、 浮 動 小 数 点 例 外 が 上 が ら な か っ た 。

関 連 項 目

log(3), logb(3), significand(3)

こ の 文 書 に つ い て

こ の man ペ ー ジ は Linux man−pages プ ロ ジ ェ ク ト の リ リ ー ス 3.79 の 一 部 で あ る 。 プ ロ ジ ェ ク ト の 説 明 と バ グ 報 告 に 関 す る 情 報 は http://www.kernel.org/doc/man−pages/ に 書 か れ て い る 。