プログラミング言語 C の新機能 Part LV: fenv.h: 浮動小数点環境: プラグマ/型/マクロ
(2000/03/15 [水])
C99 では新たに fenv.h を提供しています。このヘッダは、今まで各環境で扱いがバラバラであった浮動小数点演算における例外と丸め制御を抽象化し扱うためのものです。そのため新たなプラグマ、型、マクロ、関数が定義されています。
まず fenv.h の include で利用可能になるプラグマとしては以前紹介した
#pragma STDC FENV_ACCESS on-off-switch
があります。
今回は、型とマクロ、そして次回は関数について示します。
まず fenv.h の include で利用可能になるプラグマとしては以前紹介した
#pragma STDC FENV_ACCESS on-off-switch
があります。
今回は、型とマクロ、そして次回は関数について示します。
型名 | 解説 |
---|---|
fenv_t | 浮動小数点環境全体を表す型 |
fexcept_t | 浮動小数点例外フラグ群を表す型。fenv.h で定義される例外フラグの値が入るとは限らない。 |
マクロ名 | 解説 |
---|---|
例外フラグ | |
FE_DEVBYZERO FE_INEXACT FE_INVALID FE_OVERFLOW FE_UNDERFLOW |
fenv.h の中の関数で使用される例外の種類をあらわすマクロ。その例外が実装されているときだけ対応するマクロが定義される。各マクロの値は整数定数(式)に展開される値であり、各値それぞれを bit or できる値。また、FE_UPPERCASESTRING のように、FE_ の後に大文字の文字列が続くマクロは、実装依存の例外をあらわしている。UPPERCASESTRING の部分は、実際は実装依存の例外名に入れ替わる。
|
FE_ALL_EXCEPT |
前記の実装依存の例外フラグを含めた全例外フラグの値をすべて or した値。
|
丸めフラグ | |
FE_UPWARD FE_DOWNWARD FE_TOWARDZERO FE_TONEAREST |
fegetroun/fesetround 関数で使用される値で、それぞれの丸めモードがその環境で実装されているときだけ対応するマクロが定義される。各マクロは正数定数(式)に展開される。FLT_ROUNDS で利用される値と兼用できる。また、FE_UPPERCASESTRING のように、FE_ の後に大文字の文字列が続くマクロは、実装依存の丸めをあらわしている。UPPERCASESTRING の部分は、実際は実装依存の丸め名に入れ替わる。
|
環境 | |
FE_DFL_ENV |
型 const fenv_t * を持つ、デフォルト浮動小数点環境。cont fenv_t * の型を持つ名前 FE_xxxx は実装依存の環境名をあらわす。xxxx は対応する環境をあらわす名前である。
|
by seclan