OSDN Git Service

Retire LDP man-pages repository
[linuxjm/LDP_man-pages.git] / draft / man3 / fenv.3
diff --git a/draft/man3/fenv.3 b/draft/man3/fenv.3
deleted file mode 100644 (file)
index d01e0ec..0000000
+++ /dev/null
@@ -1,212 +0,0 @@
-.\" Copyright (c) 2000 Andries Brouwer (aeb@cwi.nl)
-.\"
-.\" %%%LICENSE_START(GPLv2+_DOC_FULL)
-.\" This is free documentation; you can redistribute it and/or
-.\" modify it under the terms of the GNU General Public License as
-.\" published by the Free Software Foundation; either version 2 of
-.\" the License, or (at your option) any later version.
-.\"
-.\" The GNU General Public License's references to "object code"
-.\" and "executables" are to be interpreted as the output of any
-.\" document formatting or typesetting system, including
-.\" intermediate and printed output.
-.\"
-.\" This manual is distributed in the hope that it will be useful,
-.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
-.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-.\" GNU General Public License for more details.
-.\"
-.\" You should have received a copy of the GNU General Public
-.\" License along with this manual; if not, see
-.\" <http://www.gnu.org/licenses/>.
-.\" %%%LICENSE_END
-.\"
-.\" 2000-08-14 added GNU additions from Andreas Jaeger
-.\" 2000-12-05 some changes inspired by acahalan's remarks
-.\"
-.\"*******************************************************************
-.\"
-.\" This file was generated with po4a. Translate the source file.
-.\"
-.\"*******************************************************************
-.\"
-.\" Japanese Version Copyright (c) 2000-2001 NAKANO Takeo
-.\" and Copyright (c) 2008 Akihiro MOTOKI.
-.\" Translated 2001-02-08, NAKANO Takeo <nakano@apm.seikei.ac.jp>
-.\" Updated 2003-10-15, Kentaro Shirakata <argrath@ub32.org>
-.\" Updated 2005-02-26, Akihiro MOTOKI <amotoki@dd.iij4u.or.jp>
-.\" Updated 2008-09-16, Akihiro MOTOKI <amotoki@dd.iij4u.or.jp>
-.\"
-.TH FENV 3 2014\-04\-01 Linux "Linux Programmer's Manual"
-.SH 名前
-feclearexcept, fegetexceptflag, feraiseexcept, fesetexceptflag,
-fetestexcept, fegetenv, fegetround, feholdexcept, fesetround, fesetenv,
-feupdateenv, feenableexcept, fedisableexcept, fegetexcept \- 浮動小数点の丸めと例外の取り扱い
-.SH 書式
-.nf
-\fB#include <fenv.h>\fP
-.sp
-\fBint feclearexcept(int \fP\fIexcepts\fP\fB);\fP
-.br
-\fBint fegetexceptflag(fexcept_t *\fP\fIflagp\fP\fB, int \fP\fIexcepts\fP\fB);\fP
-.br
-\fBint feraiseexcept(int \fP\fIexcepts\fP\fB);\fP
-.br
-\fBint fesetexceptflag(const fexcept_t *\fP\fIflagp\fP\fB, int \fP\fIexcepts\fP\fB);\fP
-.br
-\fBint fetestexcept(int \fP\fIexcepts\fP\fB);\fP
-.sp
-\fBint fegetround(void);\fP
-.br
-\fBint fesetround(int \fP\fIrounding_mode\fP\fB);\fP
-.sp
-\fBint fegetenv(fenv_t *\fP\fIenvp\fP\fB);\fP
-.br
-\fBint feholdexcept(fenv_t *\fP\fIenvp\fP\fB);\fP
-.br
-\fBint fesetenv(const fenv_t *\fP\fIenvp\fP\fB);\fP
-.br
-\fBint feupdateenv(const fenv_t *\fP\fIenvp\fP\fB);\fP
-.fi
-.sp
-\fI\-lm\fP でリンクする。
-.SH 説明
-これらの 11 個の関数は C99 で定義されており、 浮動小数点の丸めと例外 (オーバーフロー、ゼロによる除算など)  の取り扱いを規定する。
-.SS 例外
-\fIdivide\-by\-zero\fP 例外は、有限の数値に対する演算が、 無限大の答えを生成するような場合に起こる。
-.LP
-\fIoverflow\fP 例外は、結果が浮動小数点数値で表記されなければならないのに、 その絶対値が表現可能な浮動小数点数の (有限の) 最大値よりも
-(ずっと) 大きくなってしまうような場合に起こる。
-.LP
-\fIunderflow\fP 例外は、結果が浮動小数点数値で表記されなければならないのに、 その絶対値が正の正規化浮動小数点数の最小値よりも
-小さくなってしまう (そして 非正規化数で表現した場合に非常に精度を失ってしまう)  ような場合に起こる。
-.LP
-\fIinexact\fP 例外は、丸め後の演算結果が、 無限精度の結果と異なるような場合に起こる。 \fIoverflow\fP 例外か \fIunderflow\fP
-例外が起きたときには、常にこの例外も起こる。
-.LP
-\fIinvalid\fP 例外は、演算結果がうまく定義できない結果を生じるような場合に起こる。 例えば 0/0、無限大 \- 無限大、sqrt(\-1) など。
-.SS 例外処理
-例外の表し方には 2 つの方法がある。 ひとつは、単一のビットで (例外があったかなかったかを) 表す方法で、
-これらのビットは整数のあるビット位置に対応し、ビットの対応付けは 実装依存である。もう一つは、内部構造体を使って表す方法で、
-この方法の方が例外に関するより多くの情報 (例えば例外が起こったコードのアドレスなど) が含まれる。
-.LP
-\fBFE_DIVBYZERO\fP, \fBFE_INEXACT\fP, \fBFE_INVALID\fP, \fBFE_OVERFLOW\fP,
-\fBFE_UNDERFLOW\fP の各マクロは、それぞれ対応する例外の処理を 実装がサポートしている場合に定義される。
-このとき対応するビットをそれぞれ定義することになるので、 例外処理関数の呼び出しを、例えば \fBFE_OVERFLOW\fP|\fBFE_UNDERFLOW\fP
-という整数の引き数を用いて行うことができる。 他の例外もサポートされているかもしれない。 \fBFE_ALL_EXCEPT\fP
-マクロは、サポートされている例外に対応するビットが全てセットされている (サポートされている例外全ての論理和である)。
-.PP
-\fBfeclearexcept\fP()  関数は、引き数 \fIexcepts\fP のビット列で指定された例外をクリアする
-(処理は実装でサポートされている例外についてのみ行われる)。
-.LP
-\fBfegetexceptflag\fP()  関数は、引き数 \fIexcepts\fP で指定された例外フラグの状態を \fI*flagp\fP
-が指す内部オブジェクトに保存する。
-.LP
-\fBferaiseexcept\fP()  関数は、 \fIexcepts\fP のビット列で指定された例外のうち、 実装がサポートしているものを発生させる。
-.LP
-\fBfesetexceptflag\fP()  関数は、 \fIexcepts\fP で指定された例外に対応するフラグの状態を \fI*flagp\fP
-の値に設定する。 \fI*flagp\fP の値は、この関数を呼ぶ前に \fBfegetexceptflag\fP()
-関数を呼び出して取得しておかなければならない (このとき、 \fBfegetexceptflag\fP()  の最後の引き数には、
-\fBfesetexceptflag\fP()  に渡す \fIexcepts\fP のすべてのビットを含む値を指定すること)。
-.LP
-\fBfetestexcept\fP()  関数は、 \fIexcepts\fP 引き数でセットされているビットのうち、 現在設定されている例外に対応するビットが
-1 になったワードを返す。
-.SS 丸めモード
-丸めモードは、結果が仮数部だけで正確に表現できない際に、 浮動小数点操作の結果をどのように扱うかを決めるものである。
-さまざまな丸めモードを提供することができる: 最も近い値に丸める (デフォルト)、 (正の無限大に向かって) 大きくなる方向に丸める、
-(負の無限大に向かって) 小さくなる方向に丸める、 0 に向けて丸める、である。
-
-\fBFE_TONEAREST\fP, \fBFE_UPWARD\fP, \fBFE_DOWNWARD\fP, \fBFE_TOWARDZERO\fP
-の各マクロは、それぞれ対応する丸めの方向を 実装がサポートしている場合に定義される。
-.LP
-\fBfegetround\fP()  関数は現在の丸めモードに対応するマクロを返す。
-.LP
-\fBfesetround\fP()  関数は丸めモードを引き数に与えられた値にし、 成功したらゼロを返す。
-
-C99 と POSIX.1\-2008 では \fBFLT_ROUNDS\fP という識別子が規定されており、 \fI<float.h>\fP
-で定義されている。この識別子は 浮動小数点数の加算についての実装定義された丸め動作を表し、 以下のいずれかの値を持つ。
-.IP \-1
-丸めモードは決められていない。
-.IP 0
-0 に向けて丸める。
-.IP 1
-最も近い数に丸める。
-.IP 2
-正の無限大に向けて丸める。
-.IP 3
-負の無限大に向けて丸める。
-.PP
-他の値はマシン依存であり、標準的ではない丸めモードである。
-.PP
-\fBFLT_ROUNDS\fP の値には、 \fBfesetround\fP()  で設定された現在の丸めモードが反映されるべきである
-(但し、「バグ」の節を参照)。
-.SS 浮動小数点関連の環境
-浮動小数点関連の環境の全体は、 制御モードや状態フラグも含め、 \fIfenv_t\fP 型の内部オブジェクト一つで取り扱うことができる。
-デフォルトの環境は、 (\fIconst fenv_t\ *\fP 型の)  \fBFE_DFL_ENV\fP で示されるものである。
-これはプログラムの開始時に構築される環境であり、 ISO C では、丸めモードを最も近い値への丸め (\fBFE_TONEAREST\fP)
-に設定し、すべての例外をクリアし、不停止 (nonstop)  (例外が起きても継続する) モードとするように規定されている。
-.LP
-\fBfegetenv\fP()  関数は、現在の浮動小数点環境を、オブジェクト \fI*envp\fP に保存する。
-.LP
-\fBfeholdexcept\fP()  関数も同じ動作を行い、 さらに可能であれば、全ての例外フラグをクリアし、 nonstop (例外時にも実行を継続)
-モードに設定する。
-.LP
-\fBfesetenv\fP()  関数は、浮動小数点環境を、オブジェクト \fI*envp\fP から取り出した値に戻す。
-このオブジェクトは、有効であることが事前に分かっていなければならない。 例えば、 \fBfegetenv\fP()  や \fBfeholdexcept\fP()
-を呼び出した結果であるとか、 \fBFE_DFL_ENV\fP に等しいとかでなければならない。 この関数の呼び出しは例外を発生しない。
-.LP
-\fBfeupdateenv\fP()  関数は、オブジェクト \fI*envp\fP が表現する浮動小数点環境をインストールする。
-ただし、現在発生している例外はクリアされない。 この関数を呼んだ後に立っている例外は、 関数を呼ぶ前の値と \fI*envp\fP の値とのビットごとの OR
-を取ったものになる。 上記と同様に、オブジェクト \fI*envp\fP は、事前に有効であることが分かっていなければならない。
-.SH 返り値
-.\" Earlier seven of these functions were listed as returning void.
-.\" This was corrected in Corrigendum 1 (ISO/IEC 9899:1999/Cor.1:2001(E))
-.\" of the C99 Standard.
-これらの関数は、成功の場合 0 を返し、エラーが発生すると 0 以外を返す。
-.SH バージョン
-これらの関数は glibc バージョン 2.1 で初めて登場した。
-.SH 属性
-.SS "マルチスレッディング (pthreads(7) 参照)"
-関数 \fBfeclearexcept\fP(), \fBfegetexceptflag\fP(), \fBfegetexceptflag\fP(),
-\fBfesetexceptflag\fP(), \fBfetestexcept\fP(), \fBfegetround\fP(), \fBfesetround\fP(),
-\fBfegetenv\fP(), \fBfeholdexcept\fP(), \fBfesetenv\fP(), \fBfeupdateenv\fP(),
-\fBfeenableexcept\fP(), \fBfedisableexcept\fP(), and \fBfegetexcept\fP() はスレッドセーフである。
-.SH 準拠
-IEC 60559 (IEC 559:1989), ANSI/IEEE 854, C99, POSIX.1\-2001.
-.SH 注意
-.SS "glibc での注意"
-可能な場合には、GNU C Library はマクロ \fBFE_NOMASK_ENV\fP
-を定義する。このマクロはすべての例外でトラップが生じるような環境を表す。 \fB#ifdef\fP を使ってこのマクロをテストできる。これは
-\fB_GNU_SOURCE\fP が定義されている場合に限って定義される。 C99 標準は浮動小数点マスク (例えば特定のフラグでのトラップなど)
-の各ビットの設定方法については定義していない。 バージョン 2.2 以降の glibc は、 \fBfeenableexcept\fP()  関数と
-\fBfedisableexcept\fP()  関数をサポートしており、 各々の浮動小数点トラップを設定できるようになっている。 また
-\fBfegetexcept\fP()  によって状態の問い合わせもできるようになっている。
-.sp
-.nf
-\fB#define _GNU_SOURCE\fP         /* feature_test_macros(7) 参照 */
-.br
-\fB#include <fenv.h>\fP
-.sp
-\fBint feenableexcept(int \fP\fIexcepts\fP\fB);\fP
-.br
-\fBint fedisableexcept(int \fP\fIexcepts\fP\fB);\fP
-.br
-\fBint fegetexcept(void);\fP
-.br
-.fi
-.LP
-\fBfeenableexcept\fP()  関数と \fBfedisableexcept\fP()  関数は \fIexcepts\fP
-によって表現される各例外のトラップを有効 (無効) にする。 成功した場合は直前に有効になっていた例外のセットを返す。 失敗した場合は \-1 を返す。
-\fBfegetexcept\fP()  関数は現在有効になっている例外全てからなるセットを返す。
-.SH バグ
-.\" Aug 08, glibc 2.8
-.\" See http://gcc.gnu.org/ml/gcc/2002-02/msg01535.html
-C99 の規定では、 \fBFLT_ROUNDS\fP の値には \fBfesetround\fP()
-で設定された現在の丸めモードが反映されるべきであるとされている。 現在のところ、 このようになっておらず、 \fBFLT_ROUNDS\fP は常に値 1
-となる。
-.SH 関連項目
-\fBmath_error\fP(7)
-.SH この文書について
-この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.79 の一部
-である。プロジェクトの説明とバグ報告に関する情報は
-http://www.kernel.org/doc/man\-pages/ に書かれている。