名 前
logb, logbf, logbl − 浮 動 小 数 点 数 の 指 数 を 取 得 す る
書 式
#include <math.h>
double
logb(double x);
float logbf(float x);
long double logbl(long double x);
−lm で リ ン ク す る 。
glibc 向 け の 機 能 検 査 マ ク ロ の 要 件 (feature_test_macros(7) 参 照 ):
logb():
_BSD_SOURCE || _SVID_SOURCE ||
_XOPEN_SOURCE >= 500 ||
_XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED ||
_ISOC99_SOURCE || _POSIX_C_SOURCE >= 200112L;
or cc −std=c99
logbf(), logbl():
_BSD_SOURCE || _SVID_SOURCE ||
_XOPEN_SOURCE >= 600 || _ISOC99_SOURCE ||
_POSIX_C_SOURCE >= 200112L;
or cc −std=c99
説 明
こ れ ら の 関 数 は 、 x の 浮 動 小 数 点 の 内 部 表 現 か ら 指 数 部 を 抽 出 し 、 浮 動 小 数 点 数 値 と し て 返 す 。 <float.h> で 定 義 さ れ て い る 整 数 定 数 FLT_RADIX は 、 シ ス テ ム の 浮 動 小 数 点 表 現 で 使 用 さ れ て い る 基 数 を 表 す 。 FLT_RADIX が 2 の 場 合 、 logb(x) は floor(log2(x)) と 等 し い が 、 後 者 の 方 が た ぶ ん 高 速 で あ る 。
x が 非 正 規 化 数 の 場 合 、 logb() は x が 正 規 化 さ れ た 場 合 の 指 数 を 返 す 。
返 り 値
成 功 す る と 、 こ れ ら の 関 数 は x の 指 数 部 を 返 す 。
x が NaN の 場 合 、 NaN が 返 さ れ る 。
x が 0 の 場 合 、 極 エ ラ ー (pole error) が 発 生 し 、 各 関 数 は そ れ ぞ れ −HUGE_VAL, −HUGE_VALF, −HUGE_VALL を 返 す 。
x が 負 の 無 限 大 か 正 の 無 限 大 の 場 合 、 正 の 無 限 大 が 返 さ れ る 。
エ ラ ー
こ れ ら の 関 数 を 呼 び 出 し た 際 に エ ラ ー が 発 生 し た か の 判 定 方 法 に つ い て の 情 報 は math_error(7) を 参 照 の こ と 。 以 下 の エ ラ ー が 発 生 す る 可 能 性 が あ る 。 極 エ ラ ー
(pole error): x が 0 で あ る
0 に よ る 除 算 (divide−by−zero) 浮 動 小 数 点 例 外 (FE_DIVBYZERO) が 上 が る 。 こ れ ら の 関 数 は errno を 設 定 し な い 。
属 性
マ ル チ ス レ ッ デ ィ ン グ (pthreads(7) 参 照 ) 関 数 logb(), logbf(), logbl() は ス レ ッ ド セ ー フ で あ る 。
準 拠
C99, POSIX.1−2001.
関 連 項 目
こ の 文 書 に つ い て
こ の man ペ ー ジ は Linux man−pages プ ロ ジ ェ ク ト の リ リ ー ス 3.79 の 一 部 で あ る 。 プ ロ ジ ェ ク ト の 説 明 と バ グ 報 告 に 関 す る 情 報 は http://www.kernel.org/doc/man−pages/ に 書 か れ て い る 。