OSDN Git Service

(split) LDP: Release pages for LDP v3.39.
[linuxjm/LDP_man-pages.git] / release / man3 / fenv.3
index d640312..2bae46f 100644 (file)
 .\" 2000-08-14 added GNU additions from Andreas Jaeger
 .\" 2000-12-05 some changes inspired by acahalan's remarks
 .\"
-.\" 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>
+.\"*******************************************************************
 .\"
-.\"WORD:       (floating-point) exception      (浮動小数点) 例外
-.\"WORD:       rounding                        丸め
-.\"WORD:       opaque                          内部の
+.\" This file was generated with po4a. Translate the source file.
 .\"
-.TH FENV 3  2010-10-31 "Linux" "Linux Programmer's Manual"
+.\"*******************************************************************
+.TH FENV 3 2010\-10\-31 Linux "Linux Programmer's Manual"
 .SH 名前
 feclearexcept, fegetexceptflag, feraiseexcept, fesetexceptflag,
-fetestexcept, fegetenv, fegetround, feholdexcept, fesetround,
-fesetenv, feupdateenv, feenableexcept, fedisableexcept,
-fegetexcept \- 浮動小数点の丸めと例外の取り扱い
+fetestexcept, fegetenv, fegetround, feholdexcept, fesetround, fesetenv,
+feupdateenv, feenableexcept, fedisableexcept, fegetexcept \- 浮動小数点の丸めと例外の取り扱い
 .SH 書式
 .nf
-.B #include <fenv.h>
+\fB#include <fenv.h>\fP
 .sp
-.BI "int feclearexcept(int " excepts );
+\fBint feclearexcept(int \fP\fIexcepts\fP\fB);\fP
 .br
-.BI "int fegetexceptflag(fexcept_t *" flagp ", int " excepts );
+\fBint fegetexceptflag(fexcept_t *\fP\fIflagp\fP\fB, int \fP\fIexcepts\fP\fB);\fP
 .br
-.BI "int feraiseexcept(int " excepts );
+\fBint feraiseexcept(int \fP\fIexcepts\fP\fB);\fP
 .br
-.BI "int fesetexceptflag(const fexcept_t *" flagp ", int " excepts );
+\fBint fesetexceptflag(const fexcept_t *\fP\fIflagp\fP\fB, int \fP\fIexcepts\fP\fB);\fP
 .br
-.BI "int fetestexcept(int " excepts );
+\fBint fetestexcept(int \fP\fIexcepts\fP\fB);\fP
 .sp
-.B "int fegetround(void);"
+\fBint fegetround(void);\fP
 .br
-.BI "int fesetround(int " rounding_mode );
+\fBint fesetround(int \fP\fIrounding_mode\fP\fB);\fP
 .sp
-.BI "int fegetenv(fenv_t *" envp );
+\fBint fegetenv(fenv_t *\fP\fIenvp\fP\fB);\fP
 .br
-.BI "int feholdexcept(fenv_t *" envp );
+\fBint feholdexcept(fenv_t *\fP\fIenvp\fP\fB);\fP
 .br
-.BI "int fesetenv(const fenv_t *" envp );
+\fBint fesetenv(const fenv_t *\fP\fIenvp\fP\fB);\fP
 .br
-.BI "int feupdateenv(const fenv_t *" envp );
+\fBint feupdateenv(const fenv_t *\fP\fIenvp\fP\fB);\fP
 .fi
 .sp
 \fI\-lm\fP でリンクする。
 .SH 説明
-これらの 11 個の関数は C99 で定義されており、
-浮動小数点の丸めと例外 (オーバーフロー、ゼロによる除算など)
-の取り扱いを規定する。
+これらの 11 個の関数は C99 で定義されており、 浮動小数点の丸めと例外 (オーバーフロー、ゼロによる除算など)  の取り扱いを規定する。
 .SS 例外
-.I divide-by-zero
-例外は、有限の数値に対する演算が、
-無限大の答えを生成するような場合に起こる。
+\fIdivide\-by\-zero\fP 例外は、有限の数値に対する演算が、 無限大の答えを生成するような場合に起こる。
 .LP
-.I overflow
-例外は、結果が浮動小数点数値で表記されなければならないのに、
-その絶対値が表現可能な浮動小数点数の (有限の) 最大値よりも
+\fIoverflow\fP 例外は、結果が浮動小数点数値で表記されなければならないのに、 その絶対値が表現可能な浮動小数点数の (有限の) 最大値よりも
 (ずっと) 大きくなってしまうような場合に起こる。
 .LP
-.I underflow
-例外は、結果が浮動小数点数値で表記されなければならないのに、
-その絶対値が正の正規化浮動小数点数の最小値よりも
-小さくなってしまう
-(そして 非正規化数で表現した場合に非常に精度を失ってしまう)
-ような場合に起こる。
+\fIunderflow\fP 例外は、結果が浮動小数点数値で表記されなければならないのに、 その絶対値が正の正規化浮動小数点数の最小値よりも
+小さくなってしまう (そして 非正規化数で表現した場合に非常に精度を失ってしまう)  ような場合に起こる。
 .LP
-.I inexact
-例外は、丸め後の演算結果が、
-無限精度の結果と異なるような場合に起こる。
-.I overflow
-例外か
-.I underflow
+\fIinexact\fP 例外は、丸め後の演算結果が、 無限精度の結果と異なるような場合に起こる。 \fIoverflow\fP 例外か \fIunderflow\fP
 例外が起きたときには、常にこの例外も起こる。
 .LP
-.I invalid
-例外は、演算結果がうまく定義できない結果を生じるような場合に起こる。
-例えば 0/0、無限大 \- 無限大、sqrt(\-1) など。
+\fIinvalid\fP 例外は、演算結果がうまく定義できない結果を生じるような場合に起こる。 例えば 0/0、無限大 \- 無限大、sqrt(\-1) など。
 .SS 例外処理
-例外の表し方には 2 つの方法がある。
-ひとつは、単一のビットで (例外があったかなかったかを) 表す方法で、
-これらのビットは整数のあるビット位置に対応し、ビットの対応付けは
-実装依存である。もう一つは、内部構造体を使って表す方法で、
-この方法の方が例外に関するより多くの情報
-(例えば例外が起こったコードのアドレスなど) が含まれる。
-.LP
-.BR FE_DIVBYZERO ,
-.BR FE_INEXACT ,
-.BR FE_INVALID ,
-.BR FE_OVERFLOW ,
-.B FE_UNDERFLOW
-の各マクロは、それぞれ対応する例外の処理を
-実装がサポートしている場合に定義される。
-このとき対応するビットをそれぞれ定義することになるので、
-例外処理関数の呼び出しを、例えば
-.BR FE_OVERFLOW | FE_UNDERFLOW
-という整数の引き数を用いて行うことができる。
-他の例外もサポートされているかもしれない。
-.B FE_ALL_EXCEPT
-マクロは、サポートされている例外に対応するビットが全てセットされている
-(サポートされている例外全ての論理和である)。
+例外の表し方には 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
-.BR feclearexcept ()
-関数は、引き数
-.I excepts
-のビット列で指定された例外をクリアする
+\fBfeclearexcept\fP()  関数は、引き数 \fIexcepts\fP のビット列で指定された例外をクリアする
 (処理は実装でサポートされている例外についてのみ行われる)。
 .LP
-.BR fegetexceptflag ()
-関数は、引き数
-.I excepts
-で指定された例外フラグの状態を
-.I *flagp
+\fBfegetexceptflag\fP()  関数は、引き数 \fIexcepts\fP で指定された例外フラグの状態を \fI*flagp\fP
 が指す内部オブジェクトに保存する。
 .LP
-.BR feraiseexcept ()
-関数は、
-.I excepts
-のビット列で指定された例外のうち、
-実装がサポートしているものを発生させる。
+\fBferaiseexcept\fP()  関数は、 \fIexcepts\fP のビット列で指定された例外のうち、 実装がサポートしているものを発生させる。
 .LP
-.BR fesetexceptflag ()
-関数は、
-.I excepts
-で指定された例外に対応するフラグの状態を
-.I *flagp
-の値に設定する。
-.I *flagp
-の値は、この関数を呼ぶ前に
-.BR fegetexceptflag ()
-関数を呼び出して取得しておかなければならない
-(このとき、
-.BR fegetexceptflag ()
-の最後の引き数には、
-.BR fesetexceptflag ()
-に渡す
-.I excepts
-のすべてのビットを含む値を指定すること)。
+\fBfesetexceptflag\fP()  関数は、 \fIexcepts\fP で指定された例外に対応するフラグの状態を \fI*flagp\fP
+の値に設定する。 \fI*flagp\fP の値は、この関数を呼ぶ前に \fBfegetexceptflag\fP()
+関数を呼び出して取得しておかなければならない (このとき、 \fBfegetexceptflag\fP()  の最後の引き数には、
+\fBfesetexceptflag\fP()  に渡す \fIexcepts\fP のすべてのビットを含む値を指定すること)。
 .LP
-.BR fetestexcept ()
-関数は、
-.I excepts
-引き数でセットされているビットのうち、
-現在設定されている例外に対応するビットが 1 になったワードを返す。
+\fBfetestexcept\fP()  関数は、 \fIexcepts\fP 引き数でセットされているビットのうち、 現在設定されている例外に対応するビットが
+1 になったワードを返す。
 .SS 丸めモード
-丸めモードは、結果が仮数部だけで正確に表現できない際に、
-浮動小数点操作の結果をどのように扱うかを決めるものである。
-さまざまな丸めモードを提供することができる:
-最も近い値に丸める (デフォルト)、
-(正の無限大に向かって) 大きくなる方向に丸める、
-(負の無限大に向かって) 小さくなる方向に丸める、
-0 に向けて丸める、である。
+丸めモードは、結果が仮数部だけで正確に表現できない際に、 浮動小数点操作の結果をどのように扱うかを決めるものである。
+さまざまな丸めモードを提供することができる: 最も近い値に丸める (デフォルト)、 (正の無限大に向かって) 大きくなる方向に丸める、
+(負の無限大に向かって) 小さくなる方向に丸める、 0 に向けて丸める、である。
 
-.BR FE_TONEAREST ,
-.BR FE_UPWARD ,
-.BR FE_DOWNWARD ,
-.BR FE_TOWARDZERO
-の各マクロは、それぞれ対応する丸めの方向を
-実装がサポートしている場合に定義される。
+\fBFE_TONEAREST\fP, \fBFE_UPWARD\fP, \fBFE_DOWNWARD\fP, \fBFE_TOWARDZERO\fP
+の各マクロは、それぞれ対応する丸めの方向を 実装がサポートしている場合に定義される。
 .LP
-.BR fegetround ()
-関数は現在の丸めモードに対応するマクロを返す。
+\fBfegetround\fP()  関数は現在の丸めモードに対応するマクロを返す。
 .LP
-.BR fesetround ()
-関数は丸めモードを引き数に与えられた値にし、
-成功したらゼロを返す。
+\fBfesetround\fP()  関数は丸めモードを引き数に与えられた値にし、 成功したらゼロを返す。
 
-C99 と POSIX.1-2008 では
-.B FLT_ROUNDS
-という識別子が規定されており、
-.I <float.h>
-で定義されている。この識別子は
-浮動小数点数の加算についての実装定義された丸め動作を表し、
-以下のいずれかの値を持つ。
+C99 と POSIX.1\-2008 では \fBFLT_ROUNDS\fP という識別子が規定されており、 \fI<float.h>\fP
+で定義されている。この識別子は 浮動小数点数の加算についての実装定義された丸め動作を表し、 以下のいずれかの値を持つ。
 .IP \-1
 丸めモードは決められていない。
 .IP 0
@@ -209,128 +129,65 @@ C99 と POSIX.1-2008 では
 .PP
 他の値はマシン依存であり、標準的ではない丸めモードである。
 .PP
-.BR FLT_ROUNDS
-の値には、
-.BR fesetround ()
-で設定された現在の丸めモードが反映されるべきである
+\fBFLT_ROUNDS\fP の値には、 \fBfesetround\fP()  で設定された現在の丸めモードが反映されるべきである
 (但し、「バグ」の節を参照)。
 .SS 浮動小数点関連の環境
-浮動小数点関連の環境の全体は、
-制御モードや状態フラグも含め、
-.I fenv_t
-型の内部オブジェクト一つで取り扱うことができる。
-デフォルトの環境は、
-.RI ( "const fenv_t *"
-型の)
-.B FE_DFL_ENV
-で示されるものである。
-これはプログラムの開始時に構築される環境であり、
-ISO C では、丸めモードを最も近い値への丸め
-.RB ( FE_TONEAREST )
-に設定し、すべての例外をクリアし、不停止 (nonstop)
-(例外が起きても継続する) モードとするように規定されている。
+浮動小数点関連の環境の全体は、 制御モードや状態フラグも含め、 \fIfenv_t\fP 型の内部オブジェクト一つで取り扱うことができる。
+デフォルトの環境は、 (\fIconst fenv_t *\fP 型の)  \fBFE_DFL_ENV\fP で示されるものである。
+これはプログラムの開始時に構築される環境であり、 ISO C では、丸めモードを最も近い値への丸め (\fBFE_TONEAREST\fP)
+に設定し、すべての例外をクリアし、不停止 (nonstop)  (例外が起きても継続する) モードとするように規定されている。
 .LP
-.BR fegetenv ()
-関数は、現在の浮動小数点環境を、オブジェクト
-.I *envp
-に保存する。
+\fBfegetenv\fP()  関数は、現在の浮動小数点環境を、オブジェクト \fI*envp\fP に保存する。
 .LP
-.BR feholdexcept ()
-関数も同じ動作を行い、
-さらに可能であれば、全ての例外フラグをクリアし、
-nonstop (例外時にも実行を継続) モードに設定する。
+\fBfeholdexcept\fP()  関数も同じ動作を行い、 さらに可能であれば、全ての例外フラグをクリアし、 nonstop (例外時にも実行を継続)
+モードに設定する。
 .LP
-.BR fesetenv ()
-関数は、浮動小数点環境を、オブジェクト
-.I *envp
-から取り出した値に戻す。
-このオブジェクトは、有効であることが事前に分かっていなければならない。
-例えば、
-.BR fegetenv ()
-や
-.BR feholdexcept ()
-を呼び出した結果であるとか、
-.B FE_DFL_ENV
-に等しいとかでなければならない。
-この関数の呼び出しは例外を発生しない。
+\fBfesetenv\fP()  関数は、浮動小数点環境を、オブジェクト \fI*envp\fP から取り出した値に戻す。
+このオブジェクトは、有効であることが事前に分かっていなければならない。 例えば、 \fBfegetenv\fP()  や \fBfeholdexcept\fP()
+を呼び出した結果であるとか、 \fBFE_DFL_ENV\fP に等しいとかでなければならない。 この関数の呼び出しは例外を発生しない。
 .LP
-.BR feupdateenv ()
-関数は、オブジェクト
-.I *envp
-が表現する浮動小数点環境をインストールする。
-ただし、現在発生している例外はクリアされない。
-この関数を呼んだ後に立っている例外は、
-関数を呼ぶ前の値と
-.I *envp
-の値とのビットごとの OR を取ったものになる。
-上記と同様に、オブジェクト
-.I *envp
-は、事前に有効であることが分かっていなければならない。
+\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 以外を返す。
-.\" 以前は、これらの関数のうち 7つは void を返すものと書かれていた。
-.\" これは C99 標準の Corrigendum 1 (ISO/IEC 9899:1999/Cor.1:2001(E))
-.\" で修正された。
 .SH バージョン
 これらの関数は glibc バージョン 2.1 で初めて登場した。
 .SH 準拠
-IEC 60559 (IEC 559:1989), ANSI/IEEE 854, C99, POSIX.1-2001.
+IEC 60559 (IEC 559:1989), ANSI/IEEE 854, C99, POSIX.1\-2001.
 .SH 注意
-.SS glibc での注意
-可能な場合には、GNU C Library はマクロ
-.B FE_NOMASK_ENV
-を定義する。このマクロはすべての例外でトラップが生じるような環境を表す。
-.B #ifdef
-を使ってこのマクロをテストできる。これは
-.B _GNU_SOURCE
-が定義されている場合に限って定義される。
-C99 標準は浮動小数点マスク (例えば特定のフラグでのトラップなど)
-の各ビットの設定方法については定義していない。
-バージョン 2.2 以降の glibc は、
-.BR feenableexcept ()
-関数と
-.BR fedisableexcept ()
-関数をサポートしており、
-各々の浮動小数点トラップを設定できるようになっている。
-また
-.BR fegetexcept ()
-によって状態の問い合わせもできるようになっている。
+.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
-.BR "#define _GNU_SOURCE" "         /* feature_test_macros(7) 参照 */"
-.B "#define _GNU_SOURCE"
+\fB#define _GNU_SOURCE\fP         /* feature_test_macros(7) 参照 */
 .br
-.B "#include <fenv.h>"
+\fB#include <fenv.h>\fP
 .sp
-.BI "int feenableexcept(int " excepts );
+\fBint feenableexcept(int \fP\fIexcepts\fP\fB);\fP
 .br
-.BI "int fedisableexcept(int " excepts );
+\fBint fedisableexcept(int \fP\fIexcepts\fP\fB);\fP
 .br
-.B "int fegetexcept(void);"
+\fBint fegetexcept(void);\fP
 .br
 .fi
 .LP
-.BR feenableexcept ()
-関数と
-.BR fedisableexcept ()
-関数は
-.I excepts
-によって表現される各例外のトラップを有効 (無効) にする。
-成功した場合は直前に有効になっていた例外のセットを返す。
-失敗した場合は \-1 を返す。
-.BR fegetexcept ()
-関数は現在有効になっている例外全てからなるセットを返す。
+\fBfeenableexcept\fP()  関数と \fBfedisableexcept\fP()  関数は \fIexcepts\fP
+によって表現される各例外のトラップを有効 (無効) にする。 成功した場合は直前に有効になっていた例外のセットを返す。 失敗した場合は \-1 を返す。
+\fBfegetexcept\fP()  関数は現在有効になっている例外全てからなるセットを返す。
 .SH バグ
-C99 の規定では、
-.BR FLT_ROUNDS
-の値には
-.BR fesetround ()
-で設定された現在の丸めモードが反映されるべきであるとされている。
-現在のところ、
 .\" Aug 08, glibc 2.8
-このようになっておらず、
-.B FLT_ROUNDS
-は常に値 1 となる。
 .\" See http://gcc.gnu.org/ml/gcc/2002-02/msg01535.html
+C99 の規定では、 \fBFLT_ROUNDS\fP の値には \fBfesetround\fP()
+で設定された現在の丸めモードが反映されるべきであるとされている。 現在のところ、 このようになっておらず、 \fBFLT_ROUNDS\fP は常に値 1
+となる。
 .SH 関連項目
-.BR math_error (7)
+\fBmath_error\fP(7)