Manpages

名 前

scalbn, scalbnf, scalbnl, scalbln, scalblnf, scalblnl − 浮 動 小 数 点 数 に 基 数 の 整 数 乗 を 掛 け る

書 式

#include <math.h>

double scalbln(double x, long int exp);
float scalblnf(float
x, long int exp);
long double scalblnl(long double
x, long int exp);

double scalbn(double x, int exp);
float scalbnf(float
x, int exp);
long double scalbnl(long double
x, int exp);

−lm で リ ン ク す る 。

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

scalbln(), scalblnf(), scalblnl():

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

scalbn(), scalbnf(), scalbnl():

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

説 明

こ れ ら の 関 数 は 最 初 の 引 き 数 xFLT_RADIXexp 乗 を 掛 け る (FLT_RADIX は お そ ら く 2 で あ る )。 つ ま り 、 以 下 の 式 の 値 を 返 す 。

x * FLT_RADIX ** exp

FLT_RADIX の 定 義 は <float.h> を イ ン ク ル ー ド す る こ と で 得 ら れ る 。

返 り 値

成 功 す る と 、 こ れ ら の 関 数 は x * FLT_RADIX ** exp を 返 す 。

x が NaN の 場 合 、 NaN が 返 さ れ る 。

x が 正 の 無 限 大 (負 の 無 限 大 ) の 場 合 、 正 の 無 限 大 (負 の 無 限 大 ) が 返 さ れ る 。

x が +0 (−0) の 場 合 、 +0 (−0) が 返 さ れ る 。 結 果 が オ ー バ ー フ ロ ー す る 場 合 、 範 囲 エ ラ ー (range error) が 発 生 し 、 各 関 数 は そ れ ぞ れ HUGE_VAL, HUGE_VALF, HUGE_VALL を 返 す 。 符 号 は x と 同 じ に な る 。 結 果 が ア ン ダ ー フ ロ ー す る 場 合 、 範 囲 エ ラ ー が 発 生 し 、 各 関 数 は 0 を 返 す 。 符 号 は x と 同 じ に な る 。

エ ラ ー

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

(range error)、 オ ー バ ー フ ロ ー の 場 合 オ ー バ ー フ ロ ー 浮 動 小 数 点 例 外 (FE_OVERFLOW) が 上 が る 。 範 囲 エ ラ ー
(range error)、 ア ン ダ ー フ ロ ー の 場 合 ア ン ダ ー フ ロ ー 浮 動 小 数 点 例 外 (FE_UNDERFLOW) が 上 が る 。 こ れ ら の 関 数 は errno を 設 定 し な い 。

バ ー ジ ョ ン

こ れ ら の 関 数 は glibc バ ー ジ ョ ン 2.1 で 初 め て 登 場 し た 。

属 性

マ ル チ ス レ ッ デ ィ ン グ (pthreads(7) 参 照 ) 関 数 scalbn(), scalbnf(), scalbnl(), scalbln(), scalblnf(), scalblnl() は ス レ ッ ド セ ー フ で あ る 。

準 拠

C99, POSIX.1−2001.

注 意

こ れ ら の 関 数 は 、 scalb(3) に 説 明 が あ る 廃 止 予 定 の 関 数 群 と は 二 番 目 の 引 き 数 の 型 が 異 な る 。 こ の ペ ー ジ で 説 明 す る 関 数 群 は 、 二 番 目 の 引 き 数 の 型 が 整 数 で あ る 。 こ れ に 対 し て scalb(3) に 説 明 が あ る 関 数 群 は 、 二 番 目 の 引 き 数 の 型 が double で あ る 。

FLT_RADIX が 2 の 場 合 (こ れ が 普 通 だ が )、 そ の 場 合 は scalbn() は ldexp(3) と 等 価 で あ る 。

関 連 項 目

ldexp(3), scalb(3)

こ の 文 書 に つ い て

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