Man page - dremf(3)

Packages contains this manual

Available languages:

en fr pl cs ja ro

Manual

REMAINDER

名 前
書 式
説 明
返 り 値
エ ラ ー
属 性
準 拠
バ グ

関 連 項 目
こ の 文 書 に つ い て

名 前

drem, dremf, dreml, remainder, remainderf, remainderl - 浮 動 小 数 点 剰 余 関 数

書 式

#include <math.h>

/* C99 版 */
double remainder(double
x , double y );
float remainderf(float
x , float y );
long double remainderl(long double
x , long double y );

/* 廃 止 さ れ た 別 名 */
double drem(double
x , double y );
float dremf(float
x , float y );
long double dreml(long double
x , long double y );

-lm で リ ン ク す る 。

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

remainder ():

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

remainderf (), remainderl ():

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

drem (), dremf (), dreml ():

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

説 明

こ れ ら の 関 数 は x y で 割 っ た 余 り を 計 算 す る 。 返 り 値 は x - n * y で あ る 。 こ こ で n x / y の 値 を 最 も 近 い 整 数 に 丸 め た も の で あ る 。 x - n * y の 絶 対 値 が 0.5 の 場 合 、 偶 数 に な る よ う に n が 選 ば れ る 。

こ れ ら の 関 数 は 、 現 在 の 丸 め モ ー ド の 影 響 を 受 け な い (丸 め モ ー ド に つ い て は fenv (3) を 参 照 )。

drem () 関 数 は こ れ と 全 く 同 じ 動 作 を す る 。

返 り 値

成 功 す る と 、 こ れ ら の 関 数 は 浮 動 小 数 点 の 剰 余 x - n * y を 返 す 。 返 り 値 が 0 の 場 合 、 そ の 符 号 は x と 同 じ に な る 。

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

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

y が ゼ ロ で x が NaN で な い 場 合 、 領 域 エ ラ ー (domain error) が 発 生 し 、 NaN が 返 さ れ る 。

エ ラ ー

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

以 下 の エ ラ ー が 発 生 す る 可 能 性 が あ る 。
領 域 エ ラ ー (domain error): x が 無 限 大 で y が NaN で は な い

errno EDOM が 設 定 さ れ る (「 バ グ 」 の 節 も 参 照 )。 不 正 (invalid) 浮 動 小 数 点 例 外 ( FE_INVALID ) が 上 が る 。

こ れ ら の 関 数 は 、 こ の 場 合 に errno を 設 定 し な い 。

領 域 エ ラ ー : y が ゼ ロ

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

属 性

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

Image grohtml-25916-1.png

準 拠

関 数 remainder (), remainderf (), remainderl () は C99, POSIX.1-2001, POSIX.1-2008 で 規 定 さ れ て い る 。

関 数 drem () は 4.3BSD に 由 来 す る 。 float long double 版 の dremf () と dreml () は 、 Tru64 や glibc2 の よ う な い く つ か の シ ス テ ム に 存 在 す る 。 こ れ ら の 関 数 の 使 用 は 避 け て 、 remainder () な ど を 使 用 す る こ と 。

バ グ

glibc 2.15 よ り 前 で は 、

remainder(nan(""), 0);

を 行 う と 、 期 待 通 り Nan が 返 る が 、 誤 っ て 領 域 エ ラ ー が 発 生 し た 。 glibc 2.15 以 降 で は 、 エ ラ ー な し の Nan (す な わ ち 、 領 域 エ ラ ー な し ) が 返 さ れ る 。

Before glibc 2.15, errno was not set to EDOM for the domain error that occurs when x is an infinity and y is not a NaN.

"remainder(29.0, 3.0)" を 呼 び 出 す と -1 を 返 す 。

関 連 項 目

div (3), fmod (3), remquo (3)

こ の 文 書 に つ い て

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