.PP
数学関数で発生するエラー条件については以下で説明する。
.SS "領域エラー (domain error)"
-\fI領域エラー\fP が発生するのは、数学関数に渡された引き数の値がその関数が定義されている 領域に入っていない場合である (例えば \fBlog\fP(3)
-に負の引き数を渡した場合)。 領域エラーが発生すると、 数学関数は普通は NaN を返し (同じ状況で違う値を返す関数もある)、 \fIerrno\fP に
+\fI領域エラー\fP が発生するのは、数学関数に渡された引数の値がその関数が定義されている 領域に入っていない場合である (例えば \fBlog\fP(3)
+に負の引数を渡した場合)。 領域エラーが発生すると、 数学関数は普通は NaN を返し (同じ状況で違う値を返す関数もある)、 \fIerrno\fP に
\fBEDOM\fP を設定し、「無効 (invalid)」 浮動小数点例外 (\fBFE_INVALID\fP) を上げる。
.SS "極エラー (pole error)"
\fI極エラー\fP が発生するのは、関数の数学的な結果が無限大そのものとなる場合である (例えば 0 の対数は負の無限大である)。
の値を返す、となっている)。 \fIerrno\fP は \fBERANGE\fP に設定され、「アンダーフロー」浮動小数点例外 (\fBFE_UNDERFLOW\fP)
が上がる。
.PP
-いくつかの関数では、渡された引き数の値や、正しい関数の結果が \fIsubnormal (非正規化数)\fP になる場合に範囲エラーを上げる。
+いくつかの関数では、渡された引数の値や、正しい関数の結果が \fIsubnormal (非正規化数)\fP になる場合に範囲エラーを上げる。
subnormal な値とは、0 ではないが、その値が小さすぎて (仮数部の最上位ビットが 1 となる) 標準形では表現できないような値である。
subnormal な値の表現では、仮数部の上位側のビットに 1 個以上の 0 が 含まれることになる。
.SH 注意
.PP
.\" http://www.securecoding.cert.org/confluence/display/seccode/FLP32-C.+Prevent+or+detect+domain+and+range+errors+in+math+functions
\fIerrno\fP と \fBfetestexcept\fP(3) の両方を使ってエラーチェックを行うことで複雑になるのを避けるため、
-多くの場合、関数呼び出しを行う前に不正な引き数かのチェックを行う 方法が推奨されている。 例えば、以下のコードは、 \fBlog\fP(3) の引き数が
-NaN でも (極エラーとなる) 0 でも (領域エラーとなる) 0 未満 でもないことを保証するものである。
+多くの場合、関数呼び出しを行う前に不正な引数かのチェックを行う 方法が推奨されている。 例えば、以下のコードは、 \fBlog\fP(3) の引数が NaN
+でも (極エラーとなる) 0 でも (領域エラーとなる) 0 未満 でもないことを保証するものである。
.PP
.in +4n
.EX