fesetround(3M)

名前
fesetround, fegetround - 浮動小数点丸め方向モードの制御

形式

cc [ flag ... ] file ... -R/opt/SUNWspro/lib -L/opt/SUNWspro/lib -lm9x [ library ... ]

#include <fenv.h>

int fesetround(int round);

int fegetround(void);

#include <fenv96.h>

int fesetround96(int round);

機能説明

fesetround(round) は、現在の丸め方向を round で指定した方向に 設定します。round で指定する方向は、次の値 (<fenv.h> に定義されている) の
 1 つでなければなりません。

    FE_TONEAREST
        最近似値に丸める
    FE_UPWARD
        正の無限量に向かって丸める
    FE_DOWNWARD
        負の無限量に向かって丸める
    FE_TOWARDZERO
        ゼロに向かって丸める

デフォルトの方向は FE_TONEAREST です (-fround コンパイラフラグで変 更していない限り)。

fegetround() は、現在の丸め方向を戻します。

戻り値
fesetround は、要求した丸めモードが確立された場合にはゼロを返し、 そうでない場合はゼロ以外の値を返します。

属性
次の属性については、 attributes(5) を参照してください。

属性タイプ | 属性値
使用条件 | SPROm9xs
インタフェース安定性 | 標準、廃止 (次を参照)
MT レベル | MT-安全

fesetround 及び fegetround 関数は C99 規格で定義されています。 この関数のインタフェース安定性は「標準」です。

これらの関数がはじめて実装された 1996 年の C99 規格の草案では、 fesetround は、要求した丸めモードが確立されている場合には ゼロ以外の値を返し、それ以外はゼロを返すと規定されていました。 つまり、最終的な定義とは逆の内容が規格に盛り込まれた わけです。規格草案の変更に対応できるように、当時の libm9x には、 C99 規格草案に準拠した関数 fesetround96 が用意されていました。 "96" が接尾辞のこの関数は、<fenv96.h>ファイルで宣言されました。 現在では C99 は完成し、これらの接尾辞付き関数および <fenv96.h> ヘッダーファイルは必要なくなりました。 この関数のインタフェース安定性は「廃止」です。

<fenv96.h> ヘッダーファイルは今後のリリースでは削除されます。 アプリケーションは標準関数と <fenv.h> ヘッダーファイルを 代わりに使用します。

関連項目
fegetenv(3M), fesetprec(3M), attributes(5)

『 数値計算ガイド 』

注意事項
「形式」で示しているように、cc で libm9x とリンクするためには、コマンド行 で次のように指定することを推奨します。

    -Rinstall-path/lib -Linstall-path/lib -lm9x

install-path には、コンパイラがインストールされている場所を指定します (デフォルトでは、/opt/SUNWspro)。libm9x とリンクする方法についての詳細は、 『数値計算ガイド』を参照してください。