日本語 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.2-RELEASE-K, 8.0-RELEASE-K は、プライベート版 (小金丸が編集してまとめたもの) ですが、 より多くの翻訳したファイルが含まれています。 (5.4-RELEASE-K から 6.4-RELEASE-K, 7.0-RELEASE-K から 7.2-RELEASE-K, 8.0-RELEASE-K は、全翻訳済み)
6.4-STABLE-K, 7.2-STABLE-K, 8.0-STABLE-K は現在、 作成中で日々更新されています。 最新の snapshots を元に作成しています。
FPGETROUND(3) FreeBSD Library Functions Manual FPGETROUND(3)
名称
fpgetround, fpsetround, fpsetprec, fpgetprec, fpgetmask, fpsetmask,
fpgetsticky, fpresetsticky - IEEE 浮動小数インタフェース
書式
#include <floatingpoint.h>
typedef enum {
FP_RN, /* round to nearest */
FP_RM, /* round to minus infinity */
FP_RP, /* round to plus infinity */
FP_RZ, /* truncate */
} fp_rnd_t;
fp_rnd_t
fpgetround(void)
fp_rnd_t
fpsetround(fp_rnd_t direction)
typedef enum {
FP_PS, /* 24 bit (single-precision) */
FP_PRS, /* reserved */
FP_PD, /* 53 bit (double-precision) */
FP_PE, /* 64 bit (extended-precision) */
} 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 /* invalid */
#define FP_X_OFL 0x08 /* overflow */
#define FP_X_UFL 0x10 /* underflow */
#define FP_X_DZ 0x04 /* divide-by-zero */
#define FP_X_IMP 0x20 /* loss of precision */
#define FP_X_DNML 0x02 /* denormal */
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)
解説
浮動小数例外が検出されると、例外スティッキフラグが設定され、例外マスクが
検査されます。マスクが設定されている場合はトラップが発生します。このルー
チンでは、浮動小数例外マスクの設定、および例外が発生した後での例外ス
ティッキフラグのリセットができます。浮動小数丸めモードと精度も設定できま
す。
fpgetround() 関数は、現在の浮動小数丸めモードを戻します。
fpsetround() 関数は、浮動小数丸めモードを設定し、前のモードを戻します。
fpgetprec() 関数は、現在の浮動小数精度を戻します。
fpsetprec() 関数は、浮動小数精度を設定し、前の精度を戻します。
fpgetmask() 関数は、現在の浮動小数例外マスクを戻します。
fpsetmask() 関数は、浮動小数例外マスクを設定し、前のマスクを戻します。
fpgetsticky() 関数は、現在の浮動小数スティッキフラグを戻します。
fpresetsticky() 関数は、浮動小数スティッキフラグをクリアし、前のフラグを
戻します。
以下は、ゼロ除算によるトラップを防ぐコード例です。
fpsetmask(~FP_X_DZ);
a = 1.0;
b = 0;
c = a / b;
fpresetsticky(FP_X_DZ);
fpsetmask(FP_X_DZ);
関連項目
isnan(3)
警告
浮動小数例外が発生した後、かつ、マスクを設定する前に、スティッキフラグを
リセットする必要があります。スティッキフラグをリセットする前に別の例外が
発生した場合は、誤った例外タイプが通知されることがあります。
歴史
このルーチンは、同じ名前の SysV/386 ルーチンに基づいています。
BSD August 23, 1993 2