Man page - powl(3)

Packages contains this manual

Available languages:

en fr pl ja ru de

Manual

POW

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

名 前

pow, powf, powl - 累 乗 関 数

書 式

#include <math.h>

double pow(double x , double y );
float powf(float
x , float y );
long double powl(long double
x , long double y );

-lm で リ ン ク す る 。

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

powf (), powl ():

_ISOC99_SOURCE || _POSIX_C_SOURCE >= 200112L
|| /* Since glibc 2.19: */ _DEFAULT_SOURCE
|| /* Glibc versions <= 2.19: */ _BSD_SOURCE || _SVID_SOURCE

説 明

こ れ ら の 関 数 は x y 乗 の 値 を 返 す 。

返 り 値

成 功 す る と 、 こ れ ら の 関 数 は x y 乗 の 値 を 返 す 。

x が 0 未 満 の 有 限 値 で y が 整 数 で な い 有 限 値 の 場 合 、 領 域 エ ラ ー (domain error) が 発 生 し 、 NaN が 返 さ れ る 。

結 果 が オ ー バ ー フ ロ ー す る 場 合 、 範 囲 エ ラ ー (range error) が 発 生 し 、 各 関 数 は そ れ ぞ れ HUGE_VAL , HUGE_VALF , HUGE_VALL を 返 す 。 返 り 値 に は 数 学 的 に 正 し い 符 号 が 付 与 さ れ る 。

結 果 が ア ン ダ ー フ ロ ー し 、 そ の 値 が 表 現 可 能 で な い 場 合 、 範 囲 エ ラ ー が 発 生 し 、 0.0 が 返 さ れ る 。

以 下 で 規 定 さ れ て い な い 場 合 で 、 x y が NaN の 場 合 、 返 り 値 は NaN と な る 。

x が +1 の 場 合 、 ( y が NaN で あ っ た と し て も ) 返 り 値 は 1.0 と な る 。

y が 0 の 場 合 、 ( x が NaN で あ っ た と し て も ) 返 り 値 は 1.0 と な る 。

x が +0 (-0) で y が 0 よ り 大 き な 奇 数 の 場 合 、 返 り 値 は +0 (-0) と な る 。

x が 0 で 、 y が 0 よ り 大 き く 奇 数 で な い 場 合 、 返 り 値 は +0 と な る 。

x が -1 で 、 y が 正 の 無 限 大 か 負 の 無 限 大 の 場 合 、 返 り 値 は 1.0 と な る 。

x の 絶 対 値 が 1 未 満 で 、 y が 負 の 無 限 大 の 場 合 、 返 り 値 は 正 の 無 限 大 と な る 。

x 絶 対 値 が 1 よ り 大 き く 、 y が 負 の 無 限 大 の 場 合 、 返 り 値 は +0 と な る 。

x の 絶 対 値 が 1 未 満 で 、 y が 正 の 無 限 大 の 場 合 、 返 り 値 は +0 と な る 。

x の 絶 対 値 が 1 よ り 大 き く 、 y が 正 の 無 限 大 の 場 合 、 返 り 値 は 正 の 無 限 大 と な る 。

x が 負 の 無 限 大 で 、 y が 0 よ り 小 さ い 奇 数 の 場 合 、 返 り 値 は -0 と な る 。

x が 負 の 無 限 大 で 、 y が 0 よ り 小 さ く 奇 数 で な い 場 合 、 返 り 値 は +0 と な る 。

x が 負 の 無 限 大 で 、 y が 0 よ り 大 き い 奇 数 の 場 合 、 返 り 値 は 負 の 無 限 大 と な る 。

x が 負 の 無 限 大 で 、 y が 0 よ り 大 き く 奇 数 で な い 場 合 、 返 り 値 は 正 の 無 限 大 と な る 。

x が 正 の 無 限 大 で 、 y が 0 未 満 の 場 合 、 返 り 値 は +0 と な る 。

x が 正 の 無 限 大 で 、 y が 0 よ り 大 き い 場 合 、 返 り 値 は 正 の 無 限 大 と な る 。

x が +0 か -0 で 、 y が 0 よ り 小 さ い 奇 数 の 場 合 、 極 エ ラ ー (pole error) が 発 生 し 、 返 り 値 は HUGE_VAL , HUGE_VALF , HUGE_VALL と な る 。 x と 同 じ 符 号 が 付 与 さ れ る 。

x が +0 か -0 で 、 y が 0 よ り 小 さ く 奇 数 で な い 場 合 、 極 エ ラ ー が 発 生 し 、 返 り 値 は + HUGE_VAL , + HUGE_VALF , + HUGE_VALL と な る 。

エ ラ ー

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

以 下 の エ ラ ー が 発 生 す る 可 能 性 が あ る 。
領 域 エ ラ ー : x が 負 で 、 y が 整 数 で な い 有 限 値

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

極 エ ラ ー : x が ゼ ロ で 、 y が 負

errno ERANGE が 設 定 さ れ る (「 バ グ 」 の 節 も 参 照 )。 0 に よ る 除 算 (divide-by-zero) 浮 動 小 数 点 例 外 ( FE_DIVBYZERO ) が 上 が る 。

範 囲 エ ラ ー : 結 果 が オ ー バ ー フ ロ ー

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

範 囲 エ ラ ー : 結 果 が ア ン ダ ー フ ロ ー

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

属 性

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

Image grohtml-14296-1.png

準 拠

C99, POSIX.1-2001, POSIX.1-2008.

double 版 の 関 数 は SVr4, 4.3BSD, C89 に も 準 拠 し て い る 。

バ グ

Historical bugs (now fixed)

バ ー ジ ョ ン 2.28 よ り 前 の glibc で は 、 (x86-64 な ど の ) い く つ か の ア ー キ テ ク チ ャ ー で は 、 pow は 、 特 定 の (ご く 稀 な ) 入 力 に 対 し て 、 そ の 直 近 の 似 た よ う な 数 字 の 場 合 と 比 べ て 10000 倍 以 上 遅 く な る こ と が あ る 。 こ れ は pow () で の み 起 こ る こ と で あ り 、 powf () や powl () で は 起 こ ら な い 。 こ の 問 題 は glibc 2.28 で 修 正 さ れ た 。

A number of bugs in the glibc implementation of pow () were fixed in glibc version 2.16.

glibc 2.9 と そ れ 以 前 の バ ー ジ ョ ン で は 、 極 エ ラ ー が 発 生 し た 場 合 、 POSIX で 要 求 さ れ て い る ERANGE で は な く EDOM errno に 設 定 さ れ る 。 バ ー ジ ョ ン 2.10 以 降 の glibc で は 、 正 し い 動 作 を す る 。

glibc バ ー ジ ョ ン 2.3.2 以 前 で は 、 ア ン ダ ー フ ロ ー や ア ン ダ ー フ ロ ー の エ ラ ー が 発 生 す る 場 合 、 glibc の pow () は 、 オ ー バ ー フ ロ ー 例 外 や ア ン ダ ー フ ロ ー 例 外 を 上 げ る だ け で な く 、 不 正 浮 動 小 数 点 例 外 ( FE_INVALID ) を 間 違 っ て 発 生 す る 。

関 連 項 目

cbrt (3), cpow (3), sqrt (3)

こ の 文 書 に つ い て

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