日本語 man コマンド類 (ja-man-1.1j_5) と日本語 man ドキュメント (ja-man-doc-5.4 (5.4-RELEASE 用) など) をインストールすると、以下のような man コマンド閲覧、キーワード検索が コンソールからできるようになります。
4.11-RELEASE-K, 5.4-RELEASE-K, 5.5-RELEASE-K, 6.0-RELEASE-K から 6.4-RELEASE-K, 7.0-RELEASE-K から 7.4-RELEASE-K, 8.0-RELEASE-K から 8.4-RELEASE-K, 9.0-RELEASE-K から 9.3-RELEASE-K, 10.0-RELEASE-K から 10.3-RELEASE-K, 11.0-RELEASE-K から 11.4-RELEASE-K, 12.0-RELEASE-K, 12.1-RELEASE-K は、 プライベート版 (小金丸が編集してまとめたもの) ですが、 より多くの翻訳したファイルが含まれています。 (5.4-RELEASE-K から 6.4-RELEASE-K, 7.0-RELEASE-K から 7.4-RELEASE-K, 8.0-RELEASE-K から 8.4-RELEASE-K, 9.0-RELEASE-K から 9.3-RELEASE-K, 10.0-RELEASE-K から 10.3-RELEASE-K, 11.0-RELEASE-K から 11.4-RELEASE-K, 12.0-RELEASE-K から 12.4-RELEASE-K, 13.0-RELEASE-K から 13.3-RELEASE-K, 14.0-RELEASE-K から 14.1-RELEASE-K は、全翻訳済み)
13.3-STABLE-K, 15.0-CURRENT-K は現在、作成中で日々更新されています。
Table of Contents
FPGETROUND(3) FreeBSD ライブラリ関数マニュアル FPGETROUND(3)
名称
fpgetround, fpsetround, fpsetprec, fpgetprec, fpgetmask, fpsetmask,
fpgetsticky, fpresetsticky -- IEEE 浮動小数点インタフェース
書式
#include <ieeefp.h>
typedef enum {
FP_RN, /* 最も近い値に丸める */
FP_RM, /* マイナスの無限まで端数を切り捨てる */
FP_RP, /* プラスの無限まで端数を切り上げる */
FP_RZ /* 切り捨て */
} fp_rnd_t;
fp_rnd_t
fpgetround(void);
fp_rnd_t
fpsetround(fp_rnd_t direction);
typedef enum {
FP_PS, /* 24 ビット (単精度) */
FP_PRS, /* リザーブ */
FP_PD, /* 53 ビット (倍精度) */
FP_PE /* 64 ビット (拡張精度) */
} fp_prec_t;
fp_prec_t
fpgetprec(void);
fp_prec_t
fpsetprec(fp_prec_t precision);
#define fp_except_t int
#define FP_X_INV 0x01 /* 不正操作 */
#define FP_X_DNML 0x02 /* 非正規 */
#define FP_X_DZ 0x04 /* 0 除算 */
#define FP_X_OFL 0x08 /* オーバフロー */
#define FP_X_UFL 0x10 /* アンダフロー */
#define FP_X_IMP 0x20 /* (不)正確 */
#define FP_X_STK 0x40 /* スタックフォルト */
fp_except_t
fpgetmask(void);
fp_except_t
fpsetmask(fp_except_t mask);
fp_except_t
fpgetsticky(void);
fp_except_t
fpresetsticky(fp_except_t sticky);
解説
ここに説明されたルーチンは、推奨されません。新しいコードは、fenv(3) に
よって提供された機能を使用するべきです。
浮動小数点例外が検出されるとき、例外スティッキ (sticky) フラグが、設定さ
れ、例外マスクが、テストされます。マスクが設定されるなら、トラップが発生
します。これらのルーチンによって、浮動小数点例外マスクを設定し、例外が検
出された後に例外スティッキフラグをリセットできます。さらに、それらは、浮
動小数点の丸めモードと精度を設定できます。
fpgetround() 関数は、現在の浮動小数点の丸めモードを返します。
fpsetround() 関数は、浮動小数点の丸めモードを設定し、前のモードを返しま
す。
fpgetprec() 関数は、現在の浮動小数点の精度を返します。
fpsetprec() 関数は、浮動小数点の精度を設定し、前の精度を返します。
fpgetmask() 関数は、現在の浮動小数点の例外マスクを返します。
fpsetmask() 関数は、浮動小数点の例外マスクを設定し、前のマスクを返しま
す。
fpgetsticky() 関数は、現在の浮動小数点のスティッキフラグを返します。
fpresetsticky() 関数は、浮動小数点のスティッキフラグをクリアし、前のフラ
グを返します。
0 除算でトラップを防ぐサンプルコードは、次の通りです:
fpsetmask(~FP_X_DZ);
a = 1.0;
b = 0;
c = a / b;
fpresetsticky(FP_X_DZ);
fpsetmask(FP_X_DZ);
実装に関する注
fpgetprec() と fpsetprec() 関数は、多くのプラットフォームで利用不可能な機
能を提供します。現在のところ、それらは、i386 と amd64 プラットフォームだ
けで実装されています。精度を変更することは、サポートしている機能ではあり
ません: コードが SSE を利用するようにコンパイルされるとき、無効であるかも
しれません、そして、多くのライブラリ関数とコンパイラの最適化は、正しい振
る舞いのためのデフォルトの精度に依存します。
関連項目
fenv(3), isnan(3)
歴史
このルーチンは、同じ名前の SysV/386 ルーチンに基づいています。
警告
浮動小数点例外の後で、マスクが設定される前に、スティッキフラグは、リセッ
トされなければなりません。スティッキフラグがリセットされる前に、別の例外
が発生したなら、間違った例外タイプのシグナルが送られるかもしれません。
FreeBSD 13.2 December 3, 2010 FreeBSD 13.2