名 前
remquo, remquof, remquol − 商 の 一 部 と 剰 余 を 求 め る
書 式
#include <math.h>
double
remquo(double x, double y, int
*quo);
float remquof(float x, float y,
int *quo);
long double remquol(long double x, long
double y, int *quo);
−lm で リ ン ク す る 。
glibc 向 け の 機 能 検 査 マ ク ロ の 要 件 (feature_test_macros(7) 参 照 ):
remquo(), remquof(), remquol():
_XOPEN_SOURCE >= 600
|| _ISOC99_SOURCE ||
_POSIX_C_SOURCE >= 200112L;
or cc −std=c99
説 明
こ れ ら の 関 数 は x を y で 割 っ た と き の 商 の 一 部 と 剰 余 を 計 算 す る 。 商 の い く つ か の ビ ッ ト が quo ポ イ ン タ ー を 使 っ て 格 納 さ れ る 。 剰 余 は 関 数 の 結 果 と し て 返 さ れ る 。 剰 余 の 値 は remainder(3) 関 数 で 計 算 さ れ る も の と 同 じ で あ る 。
quo ポ イ ン タ ー を 使 っ て 格 納 さ れ る 値 に は 、 x / y の 符 号 と 最 低 で も 商 の 下 位 3 ビ ッ ト が 含 ま れ る 。 た と え ば remquo(29.0, 3.0) は −1.0 を 返 し 、 (訳 注 : quo の 指 し て い る も の に は ) 2 が 格 納 さ れ る 。 実 際 の 商 が 整 数 値 に な ら な い 点 に 注 意 す る こ と 。
返 り 値
成 功 す る と 、 こ れ ら の 関 数 は remainder(3) に 書 か れ て い る 同 様 の 関 数 と 同 じ 値 を 返 す 。
x か y が NaN の 場 合 、 NaN が 返 さ れ る 。
x が 無 限 大 で y が NaN で な い 場 合 、 領 域 エ ラ ー (domain error) が 発 生 し 、 NaN が 返 さ れ る 。
y が ゼ ロ で x が NaN で な い 場 合 、 領 域 エ ラ ー (domain error) が 発 生 し 、 NaN が 返 さ れ る 。
エ ラ ー
こ れ ら の 関 数 を 呼 び 出 し た 際 に エ ラ ー が 発 生 し た か の 判 定 方 法 に つ い て の 情 報 は math_error(7) を 参 照 の こ と 。 以 下 の エ ラ ー が 発 生 す る 可 能 性 が あ る 。 領 域 エ ラ ー
(domain error): x が 無 限 大 か y が 0 で 、 他 の 引 き 数 が NaN で な い 不 正 (invalid) 浮 動 小 数 点 例 外 (FE_INVALID) が 上 が る 。 こ れ ら の 関 数 は errno を 設 定 し な い 。
バ ー ジ ョ ン
こ れ ら の 関 数 は glibc バ ー ジ ョ ン 2.1 で 初 め て 登 場 し た 。
属 性
マ ル チ ス レ ッ デ ィ ン グ (pthreads(7) 参 照 ) 関 数 remquo(), remquof(), remquol() は ス レ ッ ド セ ー フ で あ る 。
準 拠
C99, POSIX.1−2001.
関 連 項 目
fmod(3), logb(3), remainder(3)
こ の 文 書 に つ い て
こ の man ペ ー ジ は Linux man−pages プ ロ ジ ェ ク ト の リ リ ー ス 3.79 の 一 部 で あ る 。 プ ロ ジ ェ ク ト の 説 明 と バ グ 報 告 に 関 す る 情 報 は http://www.kernel.org/doc/man−pages/ に 書 か れ て い る 。