OSDN Git Service

(split) LDP: Update draft pages (with po4a --force)
[linuxjm/LDP_man-pages.git] / draft / man7 / math_error.7
diff --git a/draft/man7/math_error.7 b/draft/man7/math_error.7
deleted file mode 100644 (file)
index 18b460c..0000000
+++ /dev/null
@@ -1,144 +0,0 @@
-.\" Copyright (c) 2008, Linux Foundation, written by Michael Kerrisk
-.\"     <mtk.manpages@gmail.com>
-.\"
-.\" Permission is granted to make and distribute verbatim copies of this
-.\" manual provided the copyright notice and this permission notice are
-.\" preserved on all copies.
-.\"
-.\" Permission is granted to copy and distribute modified versions of this
-.\" manual under the conditions for verbatim copying, provided that the
-.\" entire resulting derived work is distributed under the terms of a
-.\" permission notice identical to this one.
-.\"
-.\" Since the Linux kernel and libraries are constantly changing, this
-.\" manual page may be incorrect or out-of-date.  The author(s) assume no
-.\" responsibility for errors or omissions, or for damages resulting from
-.\" the use of the information contained herein.  The author(s) may not
-.\" have taken the same level of care in the production of this manual,
-.\" which is licensed free of charge, as they might when working
-.\" professionally.
-.\"
-.\" Formatted or processed versions of this manual, if unaccompanied by
-.\" the source, must acknowledge the copyright and authors of this work.
-.\"
-.\"*******************************************************************
-.\"
-.\" This file was generated with po4a. Translate the source file.
-.\"
-.\"*******************************************************************
-.TH MATH_ERROR 7 2008\-08\-11 Linux "Linux Programmer's Manual"
-.SH 名前
-math_error \- 数学関数からのエラーの検出
-.SH 書式
-.nf
-\fB#include <math.h>\fP
-\fB#include <errno.h>\fP
-\fB#include <fenv.h>\fP
-.fi
-.SH 説明
-エラーが発生すると、ほとんどのライブラリ関数は (\-1 や NULL などの)  特別な値を返すことでエラーを通知する。
-\fI<math.h>\fP で宣言されている数学関数は、通常は浮動小数点値を返すので、 他の機構を使ってエラーを通知する。 エラー通知機構は
-2 種類あり、 古いものが \fIerrno\fP を設定するやり方であり、新しいものが \fBfenv\fP(3)  で説明されている浮動小数点例外機構である。
-(\fBfeclearexcept\fP(3)  と \fBfetestexcept\fP(3)  を使用する。これらについては以下で概要を説明している。)
-
-移植性が必要なプログラムで、数学関数からのエラーを確認する必要がある場合には、 数学関数を呼び出す前に \fIerrno\fP を 0 に設定し、
-.in +4n
-.nf
-
-feclearexcept(FE_ALL_EXCEPT);
-
-.fi
-.in
-を呼び出すべきである。
-
-数学関数から返ってきた際に、 \fIerrno\fP が 0 以外か、
-.in +4n
-.nf
-
-fetestexcept(FE_INVALID | FE_DIVBYZERO | FE_OVERFLOW |
-             FE_UNDERFLOW);
-
-.fi
-.in
-.\" enum
-.\" {
-.\" FE_INVALID = 0x01,
-.\" __FE_DENORM = 0x02,
-.\" FE_DIVBYZERO = 0x04,
-.\" FE_OVERFLOW = 0x08,
-.\" FE_UNDERFLOW = 0x10,
-.\" FE_INEXACT = 0x20
-.\" };
-の呼び出しが 0 以外を返した場合 (\fBfenv\fP(3)  参照)、数学関数でエラーが発生している。
-
-数学関数で発生するエラー条件については以下で説明する。
-.SS "領域エラー (domain error)"
-\fI領域エラー\fP が発生するのは、数学関数に渡された引き数の値がその関数が定義されている 領域に入っていない場合である (例えば \fBlog\fP(3)
-に負の引き数を渡した場合)。 領域エラーが発生すると、 数学関数は普通は NaN を返し (同じ状況で違う値を返す関数もある)、 \fIerrno\fP に
-\fBEDOM\fP を設定し、「無効 (invalid)」 浮動小数点例外 (\fBFE_INVALID\fP)  を上げる。
-.SS "極エラー (pole error)"
-\fI極エラー\fP が発生するのは、関数の数学的な結果が無限大そのものとなる場合である (例えば 0 の対数は負の無限大である)。
-極エラーが発生すると、その関数の返り値は (符号付きの)  \fBHUGE_VAL\fP, \fBHUGE_VALF\fP, \fBHUGE_VALL\fP
-のいずれかとなる (前記の値のうちどれが返るかは関数の返り値の型により決まり、 それぞれ \fIdouble\fP, \fIfloat\fP, \fIlong
-double\fP に対応する)。 結果の符号は、その関数の数学的な定義から決定される。 \fIerrno\fP は \fBERANGE\fP に設定され、「0
-による除算 (divide\-by\-zero)」 浮動小数点例外 (\fBFE_DIVBYZERO\fP)  が上がる。
-.SS "範囲エラー (range エラー)"
-\fI範囲エラー\fP が発生するのは、関数の結果の値がその関数の返り値の型では表現できない場合
-である。関数の返り値は、範囲エラーがオーバーフローであったかアンダーフロー であったかによって異なる。
-
-浮動小数点のオーバーフローは、結果が有限だが、大き過ぎて 結果を返す型では表現できない場合に発生する。 オーバーフローが発生すると、 その関数は
-\fBHUGE_VAL\fP, \fBHUGE_VALF\fP, \fBHUGE_VALL\fP のいずれかを返す
-(前記の値のうちどれが返るかは関数の返り値の型により決まり、 それぞれ \fIdouble\fP, \fIfloat\fP, \fIlong double\fP
-に対応する)。 \fIerrno\fP は \fBERANGE\fP に設定され、「オーバーフロー (overflow)」 浮動小数点例外
-(\fBFE_OVERFLOW\fP)  が上がる。
-
-浮動小数点のアンダーフローは、 結果が小さ過ぎて、結果を返す型では表現できない場合に発生する。 アンダーフローが発生すると、数学関数は通常は 0.0
-を返す (C99 では、指定された型において最小の正規化された正の値より大きくない 値を持つ実装定義 (implementation\-defined)
-の値を返す、となっている)。 \fIerrno\fP は \fBERANGE\fP に設定され、「アンダーフロー」浮動小数点例外 (\fBFE_UNDERFLOW\fP)
-が上がる。
-
-いくつかの関数では、渡された引き数の値や、正しい関数の結果が \fIsubnormal (非正規化数)\fP になる場合に範囲エラーを上げる。
-subnormal な値とは、0 ではないが、その値が小さすぎて (仮数部の最上位ビットが 1 となる) 標準形では表現できないような値である。
-subnormal な値の表現では、仮数部の上位側のビットに 1 個以上の 0 が 含まれることになる。
-.SH 注意
-.\" See CONFORMANCE in the glibc 2.8 (and earlier) source.
-C99 と POSIX.1\-2001 で規定されている \fImath_errhandling\fP 識別子は glibc ではサポートされていない。
-この識別子は、2 つのエラー通知機構 (\fIerrno\fP と \fBfetestexcept\fP(3)  経由で取得できる例外)
-のうちどちらが使用されているかを通知 することになっている。 標準では、少なくとも一つは使用されることが要求されているが、
-両方とも利用可能であってもよいとされている。 glibc での現在の (バージョン 2.8 での) 状況はかなり混乱している。 ほとんどの関数
-(ただし全部ではない) はエラー時に例外を上げる。 いくつかの関数は \fIerrno\fP も設定する。 \fIerrno\fP
-を設定するが、例外を上げない関数も少しだけ存在する。 どちらも行わない関数もごく少数だが存在する。 詳細については個々のマニュアルページを参照のこと。
-
-.\" 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 未満 でもないことを保証するものである。
-.in +4n
-.nf
-
-double x, r;
-
-if (isnan(x) || islessequal(x, 0)) {
-    /* Deal with NaN / pole error / domain error */
-}
-
-r = log(x);
-
-.fi
-.in
-このページに書かれていることは、 (\fI<complex.h>\fP で宣言されている) 複素数関数にはあてはまらない。 一般に、C99 や
-POSIX.1\-2001 ではこれらの関数がエラーを返すことを 要求してない。
-
-\fBgcc\fP(1)  の \fI\-fno\-math\-errno\fP オプションを使うと、実行ファイルで、標準の実装よりも高速な数学関数の
-実装が使用されるようになるが、 エラー時に \fIerrno\fP が設定されない (\fBgcc\fP(1)  の \fI\-ffast\-math\fP
-オプションを指定した場合にも \fI\-fno\-math\-errno\fP は有効になる)。 このオプションを指定した場合でも、
-\fBfetestexcept\fP(3)  を使ったエラーの検査は可能である。
-.SH 関連項目
-\fBgcc\fP(1), \fBerrno\fP(3), \fBfenv\fP(3), \fBfpclassify\fP(3), \fBINFINITY\fP(3),
-\fBisgreater\fP(3), \fBmatherr\fP(3), \fBnan\fP(3)
-.br
-\fIinfo libc\fP
-.SH この文書について
-この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.41 の一部
-である。プロジェクトの説明とバグ報告に関する情報は
-http://www.kernel.org/doc/man\-pages/ に書かれている。