OSDN Git Service

Convert release and draft pages to UTF-8.
[linuxjm/jm.git] / manual / LDP_man-pages / release / man7 / math_error.7
index 13f57b7..b10de94 100644 (file)
 .\"         all rights reserved.
 .\" Translated 2008-08-17, Akihiro MOTOKI <amotoki@dd.iij4u.or.jp>, LDP v3.07
 .\" 
-.\"WORD:       significand     ²¾¿ôÉô
-.\"WORD:       domain error    Îΰ襨¥é¡¼
-.\"WORD:       pole error      ¶Ë¥¨¥é¡¼
-.\"WORD:       range error     ÈÏ°Ï¥¨¥é¡¼
+.\"WORD:       significand     仮数部
+.\"WORD:       domain error    é \98å\9f\9fã\82¨ã\83©ã\83¼
+.\"WORD:       pole error      æ¥µã\82¨ã\83©ã\83¼
+.\"WORD:       range error     ç¯\84å\9b²ã\82¨ã\83©ã\83¼
 .\" 
 .TH MATH_ERROR 7 2008-08-11 "Linux" "Linux Programmer's Manual"
-.SH Ì¾Á°
-math_error \- ¿ô³Ø´Ø¿ô¤«¤é¤Î¥¨¥é¡¼¤Î¸¡½Ð
-.SH ½ñ¼°
+.SH 名前
+math_error \- 数学関数からのエラーの検出
+.SH 書式
 .nf
 .B #include <math.h>
 .B #include <errno.h>
 .B #include <fenv.h>
 .fi
-.SH ÀâÌÀ
-¥¨¥é¡¼¤¬È¯À¸¤¹¤ë¤È¡¢¤Û¤È¤ó¤É¤Î¥é¥¤¥Ö¥é¥ê´Ø¿ô¤Ï (\-1 ¤ä NULL ¤Ê¤É¤Î)
-ÆÃÊ̤ÊÃͤòÊÖ¤¹¤³¤È¤Ç¥¨¥é¡¼¤òÄÌÃΤ¹¤ë¡£
+.SH 説明
+エラーが発生すると、ほとんどのライブラリ関数は (\-1 や NULL などの)
+特別な値を返すことでエラーを通知する。
 .I <math.h>
-¤ÇÀë¸À¤µ¤ì¤Æ¤¤¤ë¿ô³Ø´Ø¿ô¤Ï¡¢Ä̾ï¤ÏÉâÆ°¾®¿ôÅÀÃͤòÊÖ¤¹¤Î¤Ç¡¢
-¾¤Îµ¡¹½¤ò»È¤Ã¤Æ¥¨¥é¡¼¤òÄÌÃΤ¹¤ë¡£
-¥¨¥é¡¼ÄÌÃε¡¹½¤Ï 2 ¼ïÎढ¤ê¡¢
-¸Å¤¤¤â¤Î¤¬
+で宣言されている数学関数は、通常は浮動小数点値を返すので、
+他の機構を使ってエラーを通知する。
+エラー通知機構は 2 種類あり、
+古いものが
 .I errno
-¤òÀßÄꤹ¤ë¤ä¤êÊý¤Ç¤¢¤ê¡¢¿·¤·¤¤¤â¤Î¤¬
+を設定するやり方であり、新しいものが
 .BR fenv (3)
-¤ÇÀâÌÀ¤µ¤ì¤Æ¤¤¤ëÉâÆ°¾®¿ôÅÀÎã³°µ¡¹½¤Ç¤¢¤ë¡£
+で説明されている浮動小数点例外機構である。
 .RB ( feclearexcept (3)
-¤È
+と
 .BR fetestexcept (3)
-¤ò»ÈÍѤ¹¤ë¡£¤³¤ì¤é¤Ë¤Ä¤¤¤Æ¤Ï°Ê²¼¤Ç³µÍפòÀâÌÀ¤·¤Æ¤¤¤ë¡£)
+を使用する。これらについては以下で概要を説明している。)
 
-°Ü¿¢À­¤¬É¬Í×¤Ê¥×¥í¥°¥é¥à¤Ç¡¢¿ô³Ø´Ø¿ô¤«¤é¤Î¥¨¥é¡¼¤ò³Îǧ¤¹¤ëɬÍפ¬¤¢¤ë¾ì¹ç¤Ë¤Ï¡¢
-¿ô³Ø´Ø¿ô¤ò¸Æ¤Ó½Ð¤¹Á°¤Ë
+移植性が必要なプログラムで、数学関数からのエラーを確認する必要がある場合には、
+数学関数を呼び出す前に
 .I errno
-¤ò 0 ¤ËÀßÄꤷ¡¢°Ê²¼¤ò¸Æ¤Ó½Ð¤¹¤Ù¤­¤Ç¤¢¤ë¡£
+を 0 に設定し、以下を呼び出すべきである。
 .in +4n
 .nf
 
@@ -67,11 +67,11 @@ feclearexcept(FE_ALL_EXCEPT);
 .fi
 .in
 
-¿ô³Ø´Ø¿ô¤«¤éÊ֤äƤ­¤¿ºÝ¤Ë¡¢
+数学関数から返ってきた際に、
 .I errno
-¤¬ 0 °Ê³°¤«¡¢°Ê²¼¤Î¸Æ¤Ó½Ð¤·¤¬ 0 °Ê³°¤òÊÖ¤·¤¿¾ì¹ç
+が 0 以外か、以下の呼び出しが 0 以外を返した場合
 .RB ( fenv (3)
-»²¾È)¡¢¿ô³Ø´Ø¿ô¤Ç¥¨¥é¡¼¤¬È¯À¸¤·¤Æ¤¤¤ë¡£
+参照)、数学関数でエラーが発生している。
 .in +4n
 .nf
 
@@ -89,126 +89,126 @@ fetestexcept(FE_INVALID | FE_DIVBYZERO | FE_OVERFLOW |
 .\" FE_INEXACT = 0x20
 .\" };
 
-¿ô³Ø´Ø¿ô¤ÇȯÀ¸¤¹¤ë¥¨¥é¡¼¾ò·ï¤Ë¤Ä¤¤¤Æ¤Ï°Ê²¼¤ÇÀâÌÀ¤¹¤ë¡£
-.SS Îΰ襨¥é¡¼ (domain error)
-.I Îΰ襨¥é¡¼
-¤¬È¯À¸¤¹¤ë¤Î¤Ï¡¢¿ô³Ø´Ø¿ô¤ËÅϤµ¤ì¤¿°ú¤­¿ô¤ÎÃͤ¬¤½¤Î´Ø¿ô¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤ë
-Îΰè¤ËÆþ¤Ã¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ç¤¢¤ë (Î㤨¤Ð
+数学関数で発生するエラー条件については以下で説明する。
+.SS é \98å\9f\9fã\82¨ã\83©ã\83¼ (domain error)
+.I é \98å\9f\9fã\82¨ã\83©ã\83¼
+が発生するのは、数学関数に渡された引き数の値がその関数が定義されている
+領域に入っていない場合である (例えば
 .BR log (3)
-¤ËÉé¤Î°ú¤­¿ô¤òÅϤ·¤¿¾ì¹ç)¡£
-Îΰ襨¥é¡¼¤¬È¯À¸¤¹¤ë¤È¡¢
-¿ô³Ø´Ø¿ô¤ÏÉáÄ̤ϠNaN ¤òÊÖ¤·
-(Ʊ¤¸¾õ¶·¤Ç°ã¤¦ÃͤòÊÖ¤¹´Ø¿ô¤â¤¢¤ë)¡¢
+に負の引き数を渡した場合)。
+領域エラーが発生すると、
+数学関数は普通は NaN を返し
+(同じ状況で違う値を返す関数もある)、
 .I errno
-¤Ë
+に
 .B EDOM
-¤òÀßÄꤷ¡¢¡Ö̵¸ú (invalid)¡×
-ÉâÆ°¾®¿ôÅÀÎã³°
+を設定し、「無効 (invalid)」
+浮動小数点例外
 .RB ( FE_INVALID )
-¤ò¾å¤²¤ë¡£
-.SS ¶Ë¥¨¥é¡¼ (pole error)
-.I ¶Ë¥¨¥é¡¼
-¤¬È¯À¸¤¹¤ë¤Î¤Ï¡¢´Ø¿ô¤Î¿ô³ØŪ¤Ê·ë²Ì¤¬Ìµ¸ÂÂ礽¤Î¤â¤Î¤È¤Ê¤ë¾ì¹ç¤Ç¤¢¤ë
-(Î㤨¤Ð
-0 ¤ÎÂпô¤ÏÉé¤Î̵¸ÂÂç¤Ç¤¢¤ë)¡£
-¶Ë¥¨¥é¡¼¤¬È¯À¸¤¹¤ë¤È¡¢¤½¤Î´Ø¿ô¤ÎÊÖ¤êÃͤϠ(Éä¹æÉÕ¤­¤Î)
+を上げる。
+.SS æ¥µã\82¨ã\83©ã\83¼ (pole error)
+.I æ¥µã\82¨ã\83©ã\83¼
+が発生するのは、関数の数学的な結果が無限大そのものとなる場合である
+(例えば
+0 の対数は負の無限大である)。
+極エラーが発生すると、その関数の返り値は (符号付きの)
 .BR HUGE_VAL ,
 .BR HUGE_VALF ,
 .B HUGE_VALL
-¤Î¤¤¤º¤ì¤«¤È¤Ê¤ë (Á°µ­¤ÎÃͤΤ¦¤Á¤É¤ì¤¬Ê֤뤫¤Ï´Ø¿ô¤ÎÊÖ¤êÃͤη¿¤Ë¤è¤ê·è¤Þ¤ê¡¢
-¤½¤ì¤¾¤ì
+のいずれかとなる (前記の値のうちどれが返るかは関数の返り値の型により決まり、
+それぞれ
 .IR double ,
 .IR float ,
 .I "long double"
-¤ËÂбþ¤¹¤ë)¡£
-·ë²Ì¤ÎÉä¹æ¤Ï¡¢¤½¤Î´Ø¿ô¤Î¿ô³ØŪ¤ÊÄêµÁ¤«¤é·èÄꤵ¤ì¤ë¡£
+に対応する)。
+結果の符号は、その関数の数学的な定義から決定される。
 .I errno
-¤Ï
+は
 .B ERANGE
-¤ËÀßÄꤵ¤ì¡¢¡Ö0 ¤Ë¤è¤ë½ü»» (divide-by-zero)¡×
-ÉâÆ°¾®¿ôÅÀÎã³°
+に設定され、「0 による除算 (divide-by-zero)」
+浮動小数点例外
 .RB ( FE_DIVBYZERO )
-¤¬¾å¤¬¤ë¡£
-.SS ÈÏ°Ï¥¨¥é¡¼ (range ¥¨¥é¡¼)
-.I ÈÏ°Ï¥¨¥é¡¼
-¤¬È¯À¸¤¹¤ë¤Î¤Ï¡¢´Ø¿ô¤Î·ë²Ì¤ÎÃͤ¬¤½¤Î´Ø¿ô¤ÎÊÖ¤êÃͤη¿¤Ç¤Ïɽ¸½¤Ç¤­¤Ê¤¤¾ì¹ç
-¤Ç¤¢¤ë¡£´Ø¿ô¤ÎÊÖ¤êÃͤϡ¢ÈÏ°Ï¥¨¥é¡¼¤¬¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤Ç¤¢¤Ã¤¿¤«¥¢¥ó¥À¡¼¥Õ¥í¡¼
-¤Ç¤¢¤Ã¤¿¤«¤Ë¤è¤Ã¤Æ°Û¤Ê¤ë¡£
+が上がる。
+.SS ç¯\84å\9b²ã\82¨ã\83©ã\83¼ (range ã\82¨ã\83©ã\83¼)
+.I ç¯\84å\9b²ã\82¨ã\83©ã\83¼
+が発生するのは、関数の結果の値がその関数の返り値の型では表現できない場合
+ã\81§ã\81\82ã\82\8bã\80\82é\96¢æ\95°ã\81®è¿\94ã\82\8aå\80¤ã\81¯ã\80\81ç¯\84å\9b²ã\82¨ã\83©ã\83¼ã\81\8cã\82ªã\83¼ã\83\90ã\83¼ã\83\95ã\83­ã\83¼ã\81§ã\81\82ã\81£ã\81\9fã\81\8bã\82¢ã\83³ã\83\80ã\83¼ã\83\95ã\83­ã\83¼
+であったかによって異なる。
 
-ÉâÆ°¾®¿ôÅÀ¤Î¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤Ï¡¢·ë²Ì¤¬Í­¸Â¤À¤¬¡¢Â礭²á¤®¤Æ
-·ë²Ì¤òÊÖ¤¹·¿¤Ç¤Ïɽ¸½¤Ç¤­¤Ê¤¤¾ì¹ç¤ËȯÀ¸¤¹¤ë¡£
-¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤¬È¯À¸¤¹¤ë¤È¡¢
-¤½¤Î´Ø¿ô¤Ï
+浮動小数点のオーバーフローは、結果が有限だが、大き過ぎて
+結果を返す型では表現できない場合に発生する。
+オーバーフローが発生すると、
+その関数は
 .BR HUGE_VAL ,
 .BR HUGE_VALF ,
 .B HUGE_VALL
-¤Î¤¤¤º¤ì¤«¤òÊÖ¤¹ (Á°µ­¤ÎÃͤΤ¦¤Á¤É¤ì¤¬Ê֤뤫¤Ï´Ø¿ô¤ÎÊÖ¤êÃͤη¿¤Ë¤è¤ê·è¤Þ¤ê¡¢
-¤½¤ì¤¾¤ì
+のいずれかを返す (前記の値のうちどれが返るかは関数の返り値の型により決まり、
+それぞれ
 .IR double ,
 .IR float ,
 .I "long double"
-¤ËÂбþ¤¹¤ë)¡£
+に対応する)。
 .I errno
-¤Ï
+は
 .B ERANGE
-¤ËÀßÄꤵ¤ì¡¢¡Ö¥ª¡¼¥Ð¡¼¥Õ¥í¡¼ (overflow)¡×
-ÉâÆ°¾®¿ôÅÀÎã³°
+に設定され、「オーバーフロー (overflow)」
+浮動小数点例外
 .RB ( FE_OVERFLOW )
-¤¬¾å¤¬¤ë¡£
+が上がる。
 
-ÉâÆ°¾®¿ôÅÀ¤Î¥¢¥ó¥À¡¼¥Õ¥í¡¼¤Ï¡¢
-·ë²Ì¤¬¾®¤µ²á¤®¤Æ¡¢·ë²Ì¤òÊÖ¤¹·¿¤Ç¤Ïɽ¸½¤Ç¤­¤Ê¤¤¾ì¹ç¤ËȯÀ¸¤¹¤ë¡£
-¥¢¥ó¥À¡¼¥Õ¥í¡¼¤¬È¯À¸¤¹¤ë¤È¡¢¿ô³Ø´Ø¿ô¤ÏÄ̾ï¤Ï 0.0 ¤òÊÖ¤¹
-(C99 ¤Ç¤Ï¡¢»ØÄꤵ¤ì¤¿·¿¤Ë¤ª¤¤¤ÆºÇ¾®¤ÎÀµµ¬²½¤µ¤ì¤¿Àµ¤ÎÃͤè¤êÂ礭¤¯¤Ê¤¤
-Ãͤò»ý¤Ä¼ÂÁõÄêµÁ (implementation-defined) ¤ÎÃͤòÊÖ¤¹¡¢¤È¤Ê¤Ã¤Æ¤¤¤ë)¡£
+浮動小数点のアンダーフローは、
+結果が小さ過ぎて、結果を返す型では表現できない場合に発生する。
+アンダーフローが発生すると、数学関数は通常は 0.0 を返す
+(C99 では、指定された型において最小の正規化された正の値より大きくない
+値を持つ実装定義 (implementation-defined) の値を返す、となっている)。
 .I errno
-¤Ï
+は
 .B ERANGE
-¤ËÀßÄꤵ¤ì¡¢¡Ö¥¢¥ó¥À¡¼¥Õ¥í¡¼¡×ÉâÆ°¾®¿ôÅÀÎã³°
+に設定され、「アンダーフロー」浮動小数点例外
 .RB ( FE_UNDERFLOW )
-¤¬¾å¤¬¤ë¡£
+が上がる。
 
-¤¤¤¯¤Ä¤«¤Î´Ø¿ô¤Ç¤Ï¡¢ÅϤµ¤ì¤¿°ú¤­¿ô¤ÎÃͤ䡢Àµ¤·¤¤´Ø¿ô¤Î·ë²Ì¤¬
-.I subnormal (ÈóÀµµ¬²½¿ô)
-¤Ë¤Ê¤ë¾ì¹ç¤ËÈÏ°Ï¥¨¥é¡¼¤ò¾å¤²¤ë¡£
-subnormal ¤ÊÃͤȤϡ¢0 ¤Ç¤Ï¤Ê¤¤¤¬¡¢¤½¤ÎÃͤ¬¾®¤µ¤¹¤®¤Æ
-(²¾¿ôÉô¤ÎºÇ¾å°Ì¥Ó¥Ã¥È¤¬ 1 ¤È¤Ê¤ë) É¸½à·Á¤Ç¤Ïɽ¸½¤Ç¤­¤Ê¤¤¤è¤¦¤ÊÃͤǤ¢¤ë¡£
-subnormal ¤ÊÃͤÎɽ¸½¤Ç¤Ï¡¢²¾¿ôÉô¤Î¾å°Ì¦¤Î¥Ó¥Ã¥È¤Ë 1 ¸Ä°Ê¾å¤Î 0 ¤¬
-´Þ¤Þ¤ì¤ë¤³¤È¤Ë¤Ê¤ë¡£
-.SH Ãí°Õ
-C99 ¤È POSIX.1-2001 ¤Çµ¬Äꤵ¤ì¤Æ¤¤¤ë
+いくつかの関数では、渡された引き数の値や、正しい関数の結果が
+.I subnormal (非正規化数)
+になる場合に範囲エラーを上げる。
+subnormal な値とは、0 ではないが、その値が小さすぎて
+(仮数部の最上位ビットが 1 となる) 標準形では表現できないような値である。
+subnormal な値の表現では、仮数部の上位側のビットに 1 個以上の 0 が
+含まれることになる。
+.SH 注意
+C99 と POSIX.1-2001 で規定されている
 .I math_errhandling
-¼±Ê̻ҤϠglibc ¤Ç¤Ï¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¡£
+識別子は glibc ではサポートされていない。
 .\" See CONFORMANCE in the glibc 2.8 (and earlier) source.
-¤³¤Î¼±Ê̻Ҥϡ¢2 ¤Ä¤Î¥¨¥é¡¼ÄÌÃε¡¹½
+この識別子は、2 つのエラー通知機構
 .RI ( errno
-¤È
+と
 .BR fetestexcept (3)
-·Ðͳ¤Ç¼èÆÀ¤Ç¤­¤ëÎã³°) ¤Î¤¦¤Á¤É¤Á¤é¤¬»ÈÍѤµ¤ì¤Æ¤¤¤ë¤«¤òÄÌÃÎ
-¤¹¤ë¤³¤È¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£
-ɸ½à¤Ç¤Ï¡¢¾¯¤Ê¤¯¤È¤â°ì¤Ä¤Ï»ÈÍѤµ¤ì¤ë¤³¤È¤¬Í׵ᤵ¤ì¤Æ¤¤¤ë¤¬¡¢
-ξÊý¤È¤âÍøÍѲÄǽ¤Ç¤¢¤Ã¤Æ¤â¤è¤¤¤È¤µ¤ì¤Æ¤¤¤ë¡£
-glibc ¤Ç¤Î¸½ºß¤Î (¥Ð¡¼¥¸¥ç¥ó 2.8 ¤Ç¤Î) ¾õ¶·¤Ï¤«¤Ê¤êº®Í𤷤Ƥ¤¤ë¡£
-¤Û¤È¤ó¤É¤Î´Ø¿ô (¤¿¤À¤·Á´Éô¤Ç¤Ï¤Ê¤¤) ¤Ï¥¨¥é¡¼»þ¤ËÎã³°¤ò¾å¤²¤ë¡£
-¤¤¤¯¤Ä¤«¤Î´Ø¿ô¤Ï
+経由で取得できる例外) のうちどちらが使用されているかを通知
+することになっている。
+標準では、少なくとも一つは使用されることが要求されているが、
+両方とも利用可能であってもよいとされている。
+glibc での現在の (バージョン 2.8 での) 状況はかなり混乱している。
+ほとんどの関数 (ただし全部ではない) はエラー時に例外を上げる。
+いくつかの関数は
 .I errno
-¤âÀßÄꤹ¤ë¡£
+も設定する。
 .I errno
-¤òÀßÄꤹ¤ë¤¬¡¢Îã³°¤ò¾å¤²¤Ê¤¤´Ø¿ô¤â¾¯¤·¤À¤±Â¸ºß¤¹¤ë¡£
-¤É¤Á¤é¤â¹Ô¤ï¤Ê¤¤´Ø¿ô¤â¤´¤¯¾¯¿ô¤À¤¬Â¸ºß¤¹¤ë¡£
-¾ÜºÙ¤Ë¤Ä¤¤¤Æ¤Ï¸Ä¡¹¤Î¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤ò»²¾È¤Î¤³¤È¡£
+を設定するが、例外を上げない関数も少しだけ存在する。
+どちらも行わない関数もごく少数だが存在する。
+詳細については個々のマニュアルページを参照のこと。
 
 .I errno
-¤È
+と
 .BR fetestexcept (3)
-¤ÎξÊý¤ò»È¤Ã¤Æ¥¨¥é¡¼¥Á¥§¥Ã¥¯¤ò¹Ô¤¦¤³¤È¤ÇÊ£»¨¤Ë¤Ê¤ë¤Î¤òÈò¤±¤ë¤¿¤á¡¢
-¿¤¯¤Î¾ì¹ç¡¢´Ø¿ô¸Æ¤Ó½Ð¤·¤ò¹Ô¤¦Á°¤ËÉÔÀµ¤Ê°ú¤­¿ô¤«¤Î¥Á¥§¥Ã¥¯¤ò¹Ô¤¦
-ÊýË¡¤¬¿ä¾©¤µ¤ì¤Æ¤¤¤ë¡£
+の両方を使ってエラーチェックを行うことで複雑になるのを避けるため、
+多くの場合、関数呼び出しを行う前に不正な引き数かのチェックを行う
+方法が推奨されている。
 .\" http://www.securecoding.cert.org/confluence/display/seccode/FLP32-C.+Prevent+or+detect+domain+and+range+errors+in+math+functions
-Î㤨¤Ð¡¢°Ê²¼¤Î¥³¡¼¥É¤Ï¡¢
+例えば、以下のコードは、
 .BR log (3)
-¤Î°ú¤­¿ô¤¬ NaN ¤Ç¤â (¶Ë¥¨¥é¡¼¤È¤Ê¤ë) 0 ¤Ç¤â (Îΰ襨¥é¡¼¤È¤Ê¤ë) 0 Ì¤Ëþ
-¤Ç¤â¤Ê¤¤¤³¤È¤òÊݾڤ¹¤ë¤â¤Î¤Ç¤¢¤ë¡£
+の引き数が NaN でも (極エラーとなる) 0 でも (領域エラーとなる) 0 未満
+でもないことを保証するものである。
 .in +4n
 .nf
 
@@ -222,30 +222,30 @@ r = log(x);
 
 .fi
 .in
-¤³¤Î¥Ú¡¼¥¸¤Ë½ñ¤«¤ì¤Æ¤¤¤ë¤³¤È¤Ï¡¢
+このページに書かれていることは、
 .RI ( <complex.h>
-¤ÇÀë¸À¤µ¤ì¤Æ¤¤¤ë) Ê£ÁÇ¿ô´Ø¿ô¤Ë¤Ï¤¢¤Æ¤Ï¤Þ¤é¤Ê¤¤¡£
-°ìÈ̤ˡ¢C99 ¤ä POSIX.1-2001 ¤Ç¤Ï¤³¤ì¤é¤Î´Ø¿ô¤¬¥¨¥é¡¼¤òÊÖ¤¹¤³¤È¤ò
-Í׵ᤷ¤Æ¤Ê¤¤¡£
+で宣言されている) 複素数関数にはあてはまらない。
+一般に、C99 や POSIX.1-2001 ではこれらの関数がエラーを返すことを
+要求してない。
 
 .BR gcc (1)
-¤Î
+の
 .I "-fno-math-errno"
-¥ª¥×¥·¥ç¥ó¤ò»È¤¦¤È¡¢¼Â¹Ô¥Õ¥¡¥¤¥ë¤Ç¡¢É¸½à¤Î¼ÂÁõ¤è¤ê¤â¹â®¤Ê¿ô³Ø´Ø¿ô¤Î
-¼ÂÁõ¤¬»ÈÍѤµ¤ì¤ë¤è¤¦¤Ë¤Ê¤ë¤¬¡¢
-¥¨¥é¡¼»þ¤Ë
+オプションを使うと、実行ファイルで、標準の実装よりも高速な数学関数の
+実装が使用されるようになるが、
+エラー時に
 .I errno
-¤¬ÀßÄꤵ¤ì¤Ê¤¤
+が設定されない
 .RB ( gcc (1)
-¤Î
+の
 .I "-ffast-math"
-¥ª¥×¥·¥ç¥ó¤ò»ØÄꤷ¤¿¾ì¹ç¤Ë¤â
+オプションを指定した場合にも
 .I "-fno-math-errno"
-¤ÏÍ­¸ú¤Ë¤Ê¤ë)¡£
-¤³¤Î¥ª¥×¥·¥ç¥ó¤ò»ØÄꤷ¤¿¾ì¹ç¤Ç¤â¡¢
+は有効になる)。
+このオプションを指定した場合でも、
 .BR fetestexcept (3)
-¤ò»È¤Ã¤¿¥¨¥é¡¼¤Î¸¡ºº¤Ï²Äǽ¤Ç¤¢¤ë¡£
-.SH ´ØÏ¢¹àÌÜ
+を使ったエラーの検査は可能である。
+.SH 関連項目
 .BR gcc (1),
 .BR errno (3),
 .BR fenv (3),