.\" Updated 2008-09-16, Akihiro MOTOKI <amotoki@dd.iij4u.or.jp>
.\"
.TH REMAINDER 3 2010-09-20 "" "Linux Programmer's Manual"
-.SH ̾Á°
-drem, dremf, dreml, remainder, remainderf, remainderl \- ÉâÆ°¾®¿ôÅÀ¾ê;´Ø¿ô
-.SH ½ñ¼°
+.SH 名前
+drem, dremf, dreml, remainder, remainderf, remainderl \- 浮動小数点剰余関数
+.SH 書式
.nf
.B #include <math.h>
.sp
-/* C99 ÈÇ */
+/* C99 版 */
.BI "double remainder(double " x ", double " y );
.BI "float remainderf(float " x ", float " y );
.BI "long double remainderl(long double " x ", long double " y );
.sp
-/* Çѻߤµ¤ì¤¿ÊÌ̾ */
+/* 廃止された別名 */
.BI "double drem(double " x ", double " y );
.BI "float dremf(float " x ", float " y );
.BI "long double dreml(long double " x ", long double " y );
.sp
.fi
-\fI\-lm\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£
+\fI\-lm\fP でリンクする。
.sp
.in -4n
-glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï
+glibc 向けの機能検査マクロの要件
.RB ( feature_test_macros (7)
-»²¾È):
+参照):
.in
.sp
.ad l
_SVID_SOURCE || _BSD_SOURCE
.RE
.ad b
-.SH ÀâÌÀ
+.SH 説明
.BR remainder ()
-´Ø¿ô¤Ï
+関数は
.I x
-¤ò
+を
.I y
-¤Ç³ä¤Ã¤¿Í¾¤ê¤ò·×»»¤¹¤ë¡£
-ÊÖ¤êÃͤÏ
+で割った余りを計算する。
+返り値は
\fIx\fP\-\fIn\fP*\fIy\fP
-¤Ç¤¢¤ë¡£
-¤³¤³¤Ç
+である。
+ここで
.I n
-¤Ï
+は
.I "x\ /\ y"
-¤ÎÃͤòºÇ¤â¶á¤¤À°¿ô¤Ë´Ý¤á¤¿¤â¤Î¤Ç¤¢¤ë¡£
+の値を最も近い整数に丸めたものである。
\fIx\fP\-\fIn\fP*\fIy\fP
-¤ÎÀäÂÐÃͤ¬ 0.5 ¤Î¾ì¹ç¡¢¶ö¿ô¤Ë¤Ê¤ë¤è¤¦¤Ë
+の絶対値が 0.5 の場合、偶数になるように
.I n
-¤¬Áª¤Ð¤ì¤ë¡£
+が選ばれる。
-¤³¤ì¤é¤Î´Ø¿ô¤Ï¡¢¸½ºß¤Î´Ý¤á¥â¡¼¥É¤Î±Æ¶Á¤ò¼õ¤±¤Ê¤¤ (´Ý¤á¥â¡¼¥É¤Ë¤Ä¤¤¤Æ¤Ï
+これらの関数は、現在の丸めモードの影響を受けない (丸めモードについては
.BR fenv (3)
-¤ò»²¾È)¡£
+を参照)。
.LP
.BR drem ()
-´Ø¿ô¤Ï¤³¤ì¤ÈÁ´¤¯Æ±¤¸Æ°ºî¤ò¤¹¤ë¡£
-.SH ÊÖ¤êÃÍ
-À®¸ù¤¹¤ë¤È¡¢¤³¤ì¤é¤Î´Ø¿ô¤ÏÉâÆ°¾®¿ôÅÀ¤Î¾ê; \fIx\fP\-\fIn\fP*\fIy\fP ¤òÊÖ¤¹¡£
-ÊÖ¤êÃͤ¬ 0 ¤Î¾ì¹ç¡¢¤½¤ÎÉä¹æ¤Ï
+関数はこれと全く同じ動作をする。
+.SH 返り値
+成功すると、これらの関数は浮動小数点の剰余 \fIx\fP\-\fIn\fP*\fIy\fP を返す。
+返り値が 0 の場合、その符号は
.I x
-¤ÈƱ¤¸¤Ë¤Ê¤ë¡£
+と同じになる。
.I x
-¤«
+か
.I y
-¤¬ NaN ¤Î¾ì¹ç¡¢NaN ¤¬ÊÖ¤µ¤ì¤ë¡£
+が NaN の場合、NaN が返される。
.I x
-¤¬Ìµ¸ÂÂç¤Ç
+が無限大で
.I y
-¤¬ NaN ¤Ç¤Ê¤¤¾ì¹ç¡¢
-Îΰ襨¥é¡¼ (domain error) ¤¬È¯À¸¤·¡¢NaN ¤¬ÊÖ¤µ¤ì¤ë¡£
+が NaN でない場合、
+領域エラー (domain error) が発生し、NaN が返される。
.\" FIXME . Instead, glibc gives a domain error even if x is a NaN
.\" Interestingly, remquo(3) does not have the same problem.
.I y
-¤¬¥¼¥í¤Ç
+がゼロで
.I x
-¤¬ NaN ¤Ç¤Ê¤¤¾ì¹ç¡¢
-Îΰ襨¥é¡¼¤¬È¯À¸¤·¡¢NaN ¤¬ÊÖ¤µ¤ì¤ë¡£
-.SH ¥¨¥é¡¼
-¤³¤ì¤é¤Î´Ø¿ô¤ò¸Æ¤Ó½Ð¤·¤¿ºÝ¤Ë¥¨¥é¡¼¤¬È¯À¸¤·¤¿¤«¤ÎȽÄêÊýË¡¤Ë¤Ä¤¤¤Æ¤Î¾ðÊó¤Ï
+が NaN でない場合、
+領域エラーが発生し、NaN が返される。
+.SH ã\82¨ã\83©ã\83¼
+これらの関数を呼び出した際にエラーが発生したかの判定方法についての情報は
.BR math_error (7)
-¤ò»²¾È¤Î¤³¤È¡£
+を参照のこと。
.PP
-°Ê²¼¤Î¥¨¥é¡¼¤¬È¯À¸¤¹¤ë²ÄǽÀ¤¬¤¢¤ë¡£
+以下のエラーが発生する可能性がある。
.TP
-Îΰ襨¥é¡¼ (domain error): \fIx\fP ¤¬Ìµ¸ÂÂç¤Ç \fIy\fP ¤¬ NaN ¤Ç¤Ï¤Ê¤¤
+領域エラー (domain error): \fIx\fP が無限大で \fIy\fP が NaN ではない
.\" .I errno
.\" is set to
.\" .BR EDOM .
-ÉÔÀµ (invalid) ÉâÆ°¾®¿ôÅÀÎã³°
+不正 (invalid) 浮動小数点例外
.RB ( FE_INVALID )
-¤¬¾å¤¬¤ë¡£
+が上がる。
.IP
-¤³¤ì¤é¤Î´Ø¿ô¤Ï¡¢¤³¤Î¾ì¹ç¤Ë
+これらの関数は、この場合に
.I errno
-¤òÀßÄꤷ¤Ê¤¤¡£
+を設定しない。
.\" FIXME . Is it intentional that these functions do not set errno?
.\" They do set errno for the y == 0 case, below.
.\" Bug raised: http://sources.redhat.com/bugzilla/show_bug.cgi?id=6783
.TP
-Îΰ襨¥é¡¼: \fIy\fP ¤¬¥¼¥í¤Ç \fIx\fP ¤¬ NaN ¤Ç¤Ï¤Ê¤¤ (²¼µ¤Î¡Ö¥Ð¥°¡×»²¾È)
+領域エラー: \fIy\fP がゼロで \fIx\fP が NaN ではない (下記の「バグ」参照)
.I errno
-¤Ë
+に
.B EDOM
-¤¬ÀßÄꤵ¤ì¤ë¡£
-ÉÔÀµ (invalid) ÉâÆ°¾®¿ôÅÀÎã³°
+が設定される。
+不正 (invalid) 浮動小数点例外
.RB ( FE_INVALID )
-¤¬¾å¤¬¤ë¡£
-.SH ½àµò
+が上がる。
+.SH 準拠
.\" IEC 60559.
-´Ø¿ô
+関数
.BR remainder (),
.BR remainderf (),
.BR remainderl ()
-¤Ï C99 ¤È POSIX.1-2001 ¤Çµ¬Äꤵ¤ì¤Æ¤¤¤ë¡£
+は C99 と POSIX.1-2001 で規定されている。
-´Ø¿ô
+関数
.BR drem ()
-¤Ï 4.3BSD ¤ËͳÍ褹¤ë¡£
+は 4.3BSD に由来する。
.I float
-¤È
+と
.I "long double"
-ÈǤÎ
+版の
.BR dremf ()
-¤È
+と
.BR dreml ()
-¤Ï¡¢Tru64 ¤ä glibc2 ¤Î¤è¤¦¤Ê¤¤¤¯¤Ä¤«¤Î¥·¥¹¥Æ¥à¤Ë¸ºß¤¹¤ë¡£
-¤³¤ì¤é¤Î´Ø¿ô¤Î»ÈÍѤÏÈò¤±¤Æ¡¢
+は、Tru64 や glibc2 のようないくつかのシステムに存在する。
+これらの関数の使用は避けて、
.BR remainder ()
-¤Ê¤É¤ò»ÈÍѤ¹¤ë¤³¤È¡£
-.SH ¥Ð¥°
+などを使用すること。
+.SH ã\83\90ã\82°
remainder(nan(""), 0);
-¤Î¸Æ¤Ó½Ð¤·¤ò¹Ô¤¦¤È¡¢´üÂÔÄ̤ê Nan ¤¬Ê֤뤬¡¢¸í¤Ã¤ÆÎΰ襨¥é¡¼¤¬È¯À¸¤¹¤ë¡£
-Àµ¤·¤¯¤Ï¥¨¥é¡¼¤Ê¤·¤Î Nan ¤È¤Ê¤ë¤Ù¤¤Ç¤¢¤ë¡£
+の呼び出しを行うと、期待通り Nan が返るが、誤って領域エラーが発生する。
+正しくはエラーなしの Nan となるべきである。
.\" FIXME . this bug occurs as at glibc 2.8.
.\" Bug raised: http://sources.redhat.com/bugzilla/show_bug.cgi?id=6779
-.SH Îã
-"remainder(29.0, 3.0)" ¤ò¸Æ¤Ó½Ð¤¹¤È \-1 ¤òÊÖ¤¹¡£
-.SH ´ØÏ¢¹àÌÜ
+.SH 例
+"remainder(29.0, 3.0)" を呼び出すと \-1 を返す。
+.SH 関連項目
.BR div (3),
.BR fmod (3),
.BR remquo (3)