浮動小数点環境へアクセスします。
以下は、すべて処理系定義です。
|
|
|
型
(マクロ)
|
fenv_t
|
浮動小数点環境全体の型です。
|
fexcept_t
|
浮動小数点状態フラグの型です。
|
定数
(マクロ)
|
FE_DIVBYZERO
FE_INEXACT
FE_INVALID
FE_OVERFLOW
FE_UNDERFLOW
FE_ALL_EXCEPT
|
浮動小数点例外をサポートするときに定義されるマクロです。
|
定数
(マクロ)
|
FE_DOWNWARD
FE_TONEAREST
FE_TOWARDZERO
FE_UPWARD
|
浮動小数点数の丸め方向のマクロです。
|
定数
(マクロ)
|
FE_DFL_ENV
|
プログラム既定の浮動小数点環境です。
|
関数
|
feclearexcept
|
浮動小数点例外のクリアを試みます。
|
fegetexceptflag
|
浮動小数点フラグの状態のオブジェクトへの格納を試みます。
|
feraiseexcept
|
浮動小数点例外の生成を試みます。
|
fesetexceptflag
|
浮動小数点フラグのセットを試みます。
|
fetestexcept
|
浮動小数点フラグがセットされているか確認します。
|
fegetround
|
丸め方向を取得します。
|
fesetround
|
丸め方向を設定します。
|
fegetenv
|
浮動小数点環境の取得を試みます。
|
feholdexcept
|
浮動小数点環境を保存し、浮動小数点状態フラグをクリアし、浮動小数点例外について無停止モードに設定します。
|
fesetenv
|
浮動小数点環境の設定を試みます。
|
feupdateenv
|
浮動小数点例外の自動記憶域への保存、浮動小数点環境の設定、保存していた浮動小数点例外の生成を試みます。
|
浮動小数点例外のクリアを試みます。
[指定形式]
#include <fenv.h>
long feclearexcept(long e);
[引数]
e 浮動小数点例外
[戻り値]
正常: 0
異常: 0以外
[備考]
本関数は、コンパイルオプションnofpuが選択されている場合は使用しないでください。
使用してもリターン値として異常を表す0以外を返します。
例外フラグの状態を取得します。
[指定形式]
#include <fenv.h>
long fegetexceptflag(fexcept_t *f, long e);
[引数]
f 例外フラグ状態の格納先を指すポインタ
e 状態を取得する例外フラグを表す値
[戻り値]
正常: 0
異常: 0以外
[備考]
本関数は、コンパイルオプションnofpuが選択されている場合は使用しないでください。
使用してもリターン値として異常を表す0以外を返します。
浮動小数点例外の生成を試みます。
[指定形式]
#include <fenv.h>
long feraiseexcept(long e);
[引数]
e 生成を試みる例外を指す値
[戻り値]
正常: 0
異常: 0以外
[備考]
feraiseexcept関数が、“オーバフロー”浮動小数点例外又は“アンダフロー”浮動小数点例外を生成する際に“不正確結果”浮動小数点例外を生成するかどうかは、処理系定義とします。
本関数は、コンパイルオプションnofpuが選択されている場合は使用しないでください。
使用してもリターン値として異常を表す0以外を返します。
例外フラグの状態を設定します。
[指定形式]
#include <fenv.h>
long fesetexceptflag(const fexcept_t *f, long e);
[引数]
f 例外フラグ状態の取得元を指すポインタ
e 状態を設定する例外フラグを表す値
[戻り値]
正常: 0
異常: 0以外
[備考]
fesetexceptflag関数を呼ぶ前にフラグ状態の取得元をfegetexceptflag関数にて設定してください。
fesetexceptflag関数は浮動小数点例外を生成せず、フラグの状態だけを設定します。
本関数は、コンパイルオプションnofpuが選択されている場合は使用しないでください。
使用してもリターン値として異常を表す0以外を返します。
例外フラグの状態を判定します。
[指定形式]
#include <fenv.h>
long fetestexcept(long e);
[引数]
e 状態を判定するフラグ(複数可)を表す値
[戻り値]
eと浮動小数点例外マクロのビット単位の論理和
[備考]
fetestexcept関数は1回の呼び出しで複数個の浮動小数点例外を判定することができます。
本関数は、コンパイルオプションnofpuが選択されている場合は使用しないでください。
使用してもリターン値として異常を表す0以外を返します。
その時点の丸め方向を取得します。
[指定形式]
#include <fenv.h>
long fegetround(void);
[戻り値]
正常: 0
異常: 丸め方向マクロ値が存在しない
又は丸め方向を決めることができない場合は負の値
[備考]
本関数は、コンパイルオプションnofpuが選択されている場合は使用しないでください。
使用してもリターン値として異常を表す0以外を返します。
その時点の丸め方向を設定します。
[指定形式]
#include <fenv.h>
#include <assert.h>
long fesetround(long rnd);
[戻り値]
成功した場合のみに0
[備考]
fesetround関数に丸め方向マクロの値と等しくない変更を要求した場合
丸め方向を変更しません。
本関数は、コンパイルオプションnofpuが選択されている場合は使用しないでください。
使用してもリターン値として異常を表す0以外を返します。
浮動小数点環境を取得します。
[指定形式]
#include <fenv.h>
long fegetenv( fenv_t *f);
[引数]
f 浮動小数点環境格納先を指すポインタ
[戻り値]
正常: 0
異常: 0以外
[備考]
本関数は、コンパイルオプションnofpuが選択されている場合は使用しないでください。
使用してもリターン値として異常を表す0以外を返します。
浮動小数点環境を保存します。
[指定形式]
#include <fenv.h>
long feholdexcept(fenv_t *f);
[引数]
f 浮動小数点環境を指すポインタ
[戻り値]
成功した場合のみに0
[備考]
feholdexcept関数は浮動小数点関数環境保存時に浮動小数点状態フラグをクリアし、すべての浮動小数点例外について、無停止(non-stop)モードを設定します。無停止モード設定時は浮動小数点例外発生時も実行を継続します。
本関数は、コンパイルオプションnofpuが選択されている場合は使用しないでください。
使用してもリターン値として異常を表す0以外を返します。
浮動小数点環境を設定します。
[指定形式]
#include <fenv.h>
long fesetenv(const fenv_t *f);
[引数]
f 浮動小数点環境を指すポインタ
[戻り値]
正常: 0
異常: 0以外
[備考]
設定する環境はfegetenv関数またはfeholdexcept関数にて設定した環境か、浮動小数点環境マクロと等しい環境を指定していください。
本関数は、コンパイルオプションnofpuが選択されている場合は使用しないでください。
使用してもリターン値として異常を表す0以外を返します。
既出の例外を残したまま浮動小数点環境を設定します。
[指定形式]
#include <fenv.h>
long feupdateenv(const fenv_t *f);
[引数]
f 設定する浮動小数点環境を指すポインタ
[戻り値]
正常: 0
異常: 0以外
[備考]
設定する浮動小数点環境は、fegetenv関数またはfeholdexcept関数の呼出しによって設定されたオブジェクトを指すか、又は浮動小数点環境マクロに等しいものにしてください。
本関数は、コンパイルオプションnofpuが選択されている場合は使用しないでください。
使用してもリターン値として異常を表す0以外を返します。