1 .\" Copyright 2002 Walter Harms (walter.harms@informatik.uni-oldenburg.de)
2 .\" Distributed under GPL, 2002-07-27 Walter Harms
3 .\" This was done with the help of the glibc manual.
5 .\" 2004-10-31, aeb, corrected
6 .\"*******************************************************************
8 .\" This file was generated with po4a. Translate the source file.
10 .\"*******************************************************************
11 .TH FPCLASSIFY 3 2010\-09\-20 "" "Linux Programmer's Manual"
13 fpclassify, isfinite, isnormal, isnan, isinf \- 浮動小数点数の分類マクロ
16 \fB#include <math.h>\fP
18 \fBint fpclassify(\fP\fIx\fP\fB);\fP
20 \fBint isfinite(\fP\fIx\fP\fB);\fP
22 \fBint isnormal(\fP\fIx\fP\fB);\fP
24 \fBint isnan(\fP\fIx\fP\fB);\fP
26 \fBint isinf(\fP\fIx\fP\fB);\fP
32 glibc 向けの機能検査マクロの要件 (\fBfeature_test_macros\fP(7) 参照):
35 .\" I haven't fully grokked the source to determine the FTM requirements;
36 .\" in part, the following has been tested by experiment.
38 \fBfpclassify\fP(), \fBisfinite\fP(), \fBisnormal\fP():
40 _XOPEN_SOURCE\ >=\ 600 || _ISOC99_SOURCE || _POSIX_C_SOURCE\ >=\ 200112L;
42 or \fIcc\ \-std=c99\fP
46 _BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE || _ISOC99_SOURCE ||
47 _POSIX_C_SOURCE\ >=\ 200112L;
49 or \fIcc\ \-std=c99\fP
53 _BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE\ >=\ 600 || _ISOC99_SOURCE
54 || _POSIX_C_SOURCE\ >=\ 200112L;
56 or \fIcc\ \-std=c99\fP
60 浮動小数点数は無限大や NaN のような特別な値を持つことができる。 マクロ \fBfpclassify(\fP\fIx\fP\fB)\fP で \fIx\fP
61 がどのような種別かを知ることができる。 マクロは任意の浮動小数点数表現を引き数としてとることができる。 結果は以下の値のいずれか一つである:
64 \fIx\fP が "Not a Number" である (数値ではない)。
67 \fIx\fP が正の無限大または負の無限大である。
73 \fIx\fP を正規化形式で表現するには小さすぎる。
76 上記のどれにも当てはまらない場合であり、 値は通常の浮動小数点数であるはずだ。
78 他のマクロは、いくつかの標準的な問いに対して、簡単な答えを提供する。
80 \fBisfinite(\fP\fIx\fP\fB)\fP
83 (fpclassify(x) != FP_NAN && fpclassify(x) != FP_INFINITE)
85 \fBisnormal(\fP\fIx\fP\fB)\fP
86 (fpclassify(x) == FP_NORMAL) の場合に 0 以外の値を返す。
88 \fBisnan(\fP\fIx\fP\fB)\fP
89 (fpclassify(x) == FP_NAN) の場合に 0 以外の値を返す。
91 \fBisinf(\fP\fIx\fP\fB)\fP
92 \fIx\fP が正の無限大の場合は 1 を、 負の無限大の場合は \-1 を返す。
96 \fBisinf\fP() に関して、標準規格で定められているのは、 返り値が 0 以外になるのは引き数が無限大の場合だけということだけである。
98 glibc 2.01 以前では、 \fBisinf\fP() は \fIx\fP が正の無限大か負の無限大の場合、 0 以外の値 (実際には 1) を返す
99 (C99 の要求仕様で決まっているのは 0 以外の値を返すということだけである)。
101 \fBfinite\fP(3), \fBINFINITY\fP(3), \fBisgreater\fP(3), \fBsignbit\fP(3)