Man page - scalb(3)

Packages contains this manual

Available languages:

en fr ja ru ro

Manual

SCALB

名 前
書 式
説 明
返 り 値
エ ラ ー
属 性
準 拠
バ グ
関 連 項 目
こ の 文 書 に つ い て

名 前

scalb, scalbf, scalbl - 浮 動 小 数 点 数 に 整 数 で あ る 基 数 の 累 乗 を 掛 け る (廃 止 予 定 )

書 式

#include <math.h>

double scalb(double x , double exp );
float scalbf(float
x , float exp );
long double scalbl(long double
x , long double exp );

-lm で リ ン ク す る 。

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

scalb ():

_XOPEN_SOURCE >= 500
|| /* Since glibc 2.19: */ _DEFAULT_SOURCE
|| /* Glibc versions <= 2.19: */ _BSD_SOURCE || _SVID_SOURCE

scalbf (), scalbl ():

_XOPEN_SOURCE >= 600
|| /* Since glibc 2.19: */ _DEFAULT_SOURCE
|| /* Glibc versions <= 2.19: */ _BSD_SOURCE || _SVID_SOURCE

説 明

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

x * FLT_RADIX ** exp

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

返 り 値

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

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

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

x が +0 (-0) で exp が 正 の 無 限 大 で な い 場 合 、 +0 (-0) が 返 さ れ る 。

x が ゼ ロ で exp が 正 の 無 限 大 の 場 合 、 領 域 エ ラ ー (domain error) が 発 生 し 、 NaN が 返 さ れ る 。

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

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

結 果 が ア ン ダ ー フ ロ ー す る 場 合 、 範 囲 エ ラ ー が 発 生 し 、 各 関 数 は 0 を 返 す 。 符 号 は x と 同 じ に な る 。

エ ラ ー

こ れ ら の 関 数 を 呼 び 出 し た 際 に エ ラ ー が 発 生 し た か の 判 定 方 法 に つ い て の 情 報 は math_error (7) を 参 照 の こ と 。

以 下 の エ ラ ー が 発 生 す る 可 能 性 が あ る 。
領 域 エ ラ ー (domain error): x が 0 で exp が 正 の 無 限 大 、 ま た は x
が 正 の 無 限 大 で exp が 負 の 無 限 大

errno EDOM が 設 定 さ れ る 。 不 正 (invalid) 浮 動 小 数 点 例 外 ( FE_INVALID ) が 上 が る 。

範 囲 エ ラ ー (range error)、 オ ー バ ー フ ロ ー の 場 合

errno ERANGE が 設 定 さ れ る 。 オ ー バ ー フ ロ ー 浮 動 小 数 点 例 外 ( FE_OVERFLOW ) が 上 が る 。

範 囲 エ ラ ー (range error)、 ア ン ダ ー フ ロ ー の 場 合

errno ERANGE が 設 定 さ れ る 。 ア ン ダ ー フ ロ ー 浮 動 小 数 点 例 外 ( FE_UNDERFLOW ) が 上 が る 。

属 性

こ の 節 で 使 用 さ れ て い る 用 語 の 説 明 に つ い て は 、 attributes (7) を 参 照 。

Image grohtml-27615-1.png

準 拠

scalb () は POSIX.1-2001 で 規 定 さ れ て い る が 、 廃 止 予 定 と さ れ て い る 。 POSIX.1-2008 で は scalb () の 仕 様 は 削 除 さ れ て お り 、 代 わ り に scalbln (3), scalblnf (3), scalblnl (3) の 使 用 が 推 奨 さ れ て い る 。 scalb () 関 数 は 4.3BSD に 由 来 す る 。

scalbf () と scalbl () は 標 準 化 さ れ て い な い 。 そ れ に も 関 わ ら ず 、 scalbf () は い く つ か の 他 の シ ス テ ム に 存 在 す る 。

バ グ

バ ー ジ ョ ン 2.20 よ り 前 の glibc で は 、 こ れ ら の 関 数 は 、 領 域 エ ラ ー や 範 囲 エ ラ ー が 発 生 し た 場 合 に errno を 設 定 し な か っ た 。

関 連 項 目

ldexp (3), scalbln (3)

こ の 文 書 に つ い て

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