浮動小数点環境 (Floating-Point Environment)
ヘッダ ファイル |
fenv.h |
---|---|
規格 | C99 |
概要 | 浮動小数点環境(floating-point environment)へのアクセス手段を提供するための 2 つの型、幾つかのマクロ及び幾つかの関数を宣言する。 |
プラグマ
名前 | 機能 | デフォルト |
---|---|---|
FENV_ACCESS | 浮動小数点環境にアクセスするか? または 規定以外の浮動小数点制御モードで実行されるか? |
処理系定義 |
#pragma STDC FENV_ACCESS ON
は浮動小数点モードを変更する可能性がある事を処理系に伝えます。これにより、浮動小数点演算に関する最適化を可能にします。FP_CONTRACT プラグマに影響するかもしれません。
型
名前 | 機能 |
---|---|
fenv_t | 浮動小数点環境全体 |
fexcept_t | 浮動小数点状態フラグの集合 |
マクロ
例外
名前 | 機能 |
---|---|
FE_DIVBYZERO | 0 除算例外 |
FE_INEXACT | 不正確例外 |
FE_INVALID | 無効例外 |
FE_OVERFLOW | オーバーフロー例外 |
FE_UNDERFLOW | アンダーフロー例外 |
FE_ALL_EXCEPT | すべての例外 (全体集合) |
丸め
名前 | 機能 |
---|---|
FE_DOWNWARD | 下方向への丸め |
FE_TONEAREST | 近いものへの丸め |
FE_TOWARDZERO | 0 方向への丸め |
FE_UPWARD | 上方向への丸め |
環境
名前 | 機能 |
---|---|
FE_DFL_ENV | デフォルトの浮動小数点環境 |
引数付きマクロ
関数
名前 | 機能 |
---|---|
feclearexcept() | 引数 excepts で指定した浮動小数点例外をクリアします |
fegetexceptflag() | 引数 excepts で指定したステータスフラグを引数 flagp で指定したオブジェクトに格納します |
feraiseexcept() | 引数 excepts で指定した浮動小数点例外を発生させます |
fesetexceptflag() | 引数 flagp で指定したオブジェクトに格納されている状態を引数 excepts で指定したステータスフラグに設定します |
fetestexcept() | 引数 excepts で指定した浮動小数点例外フラグのサブセットのうち、どれが現在設定されているかを判定します |
fegetround() | 現在の丸め方向を取得します |
fesetround() | 引数 round で表される丸め方向に設定します |
fegetenv() | 現在の浮動小数点環境を envp が指すオブジェクトに格納します |
feholdexcept() | 引数 envp が指すオブジェクトに現在の浮動小数点環境を保存し、ステータスフラグをクリアした後、ノンストップモード (浮動小数点例外時に続行) に移行します |
fesetenv() | envp が指すオブジェクトが表す浮動小数点環境の設定を試みます |
feupdateenv() | 現在発生している浮動小数点例外を自動変数に保存し、envp が指すオブジェクトが表す浮動小数点環境を設定してから、保存した浮動小数点例外の発生を試みます |
資料
- C 言語 / 標準ライブラリ / fenv.h (Wikibooks)
- z/OS C/C++ ランタイム・ライブラリー・リファレンス fenv.h — 浮動小数点環境 (IBM)
- C 言語の標準ヘッダ一覧 fenv.h (C 言語)