1 .\" Copyright 2002 Walter Harms (walter.harms@informatik.uni-oldenburg.de)
3 .\" %%%LICENSE_START(GPL_NOVERSION_ONELINE)
4 .\" Distributed under GPL
7 .\" This was done with the help of the glibc manual.
9 .\" 2004-10-31, aeb, corrected
10 .\"*******************************************************************
12 .\" This file was generated with po4a. Translate the source file.
14 .\"*******************************************************************
16 .\" Japanese Version Copyright (c) 2004-2005 Yuichi SATO
17 .\" all rights reserved.
18 .\" Translated 2004-07-27, Yuichi SATO <ysato444@yahoo.co.jp>
19 .\" Updated & Modified 2005-01-10, Yuichi SATO
20 .\" Updated & Modified 2005-09-04, Akihiro MOTOKI <amotoki@dd.iij4u.or.jp>
21 .\" Updated 2008-09-16, Akihiro MOTOKI <amotoki@dd.iij4u.or.jp>
23 .TH FPCLASSIFY 3 2013\-08\-06 "" "Linux Programmer's Manual"
25 fpclassify, isfinite, isnormal, isnan, isinf \- 浮動小数点数の分類マクロ
28 \fB#include <math.h>\fP
30 \fBint fpclassify(\fP\fIx\fP\fB);\fP
32 \fBint isfinite(\fP\fIx\fP\fB);\fP
34 \fBint isnormal(\fP\fIx\fP\fB);\fP
36 \fBint isnan(\fP\fIx\fP\fB);\fP
38 \fBint isinf(\fP\fIx\fP\fB);\fP
44 glibc 向けの機能検査マクロの要件 (\fBfeature_test_macros\fP(7) 参照):
47 .\" I haven't fully grokked the source to determine the FTM requirements;
48 .\" in part, the following has been tested by experiment.
50 \fBfpclassify\fP(), \fBisfinite\fP(), \fBisnormal\fP():
52 _XOPEN_SOURCE\ >=\ 600 || _ISOC99_SOURCE || _POSIX_C_SOURCE\ >=\ 200112L;
54 or \fIcc\ \-std=c99\fP
58 _BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE || _ISOC99_SOURCE ||
59 _POSIX_C_SOURCE\ >=\ 200112L;
61 or \fIcc\ \-std=c99\fP
65 _BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE\ >=\ 600 || _ISOC99_SOURCE
66 || _POSIX_C_SOURCE\ >=\ 200112L;
68 or \fIcc\ \-std=c99\fP
72 浮動小数点数は無限大や NaN のような特別な値を持つことができる。 マクロ \fBfpclassify(\fP\fIx\fP\fB)\fP で \fIx\fP
73 がどのような種別かを知ることができる。 マクロは任意の浮動小数点数表現を引き数としてとることができる。 結果は以下の値のいずれか一つである:
76 \fIx\fP が "Not a Number" である (数値ではない)。
79 \fIx\fP が正の無限大または負の無限大である。
85 \fIx\fP を正規化形式で表現するには小さすぎる。
88 上記のどれにも当てはまらない場合であり、 値は通常の浮動小数点数であるはずだ。
90 他のマクロは、いくつかの標準的な問いに対して、簡単な答えを提供する。
92 \fBisfinite(\fP\fIx\fP\fB)\fP
95 (fpclassify(x) != FP_NAN && fpclassify(x) != FP_INFINITE)
97 \fBisnormal(\fP\fIx\fP\fB)\fP
98 (fpclassify(x) == FP_NORMAL) の場合に 0 以外の値を返す。
100 \fBisnan(\fP\fIx\fP\fB)\fP
101 (fpclassify(x) == FP_NAN) の場合に 0 以外の値を返す。
103 \fBisinf(\fP\fIx\fP\fB)\fP
104 \fIx\fP が正の無限大の場合は 1 を、 負の無限大の場合は \-1 を返す。
106 .SS "マルチスレッディング (pthreads(7) 参照)"
107 マクロ \fBfpclassify\fP(), \fBisfinite\fP(), \fBisnormal\fP(), \fBisnan\fP(), \fBisinf\fP()
112 \fBisinf\fP() に関して、標準規格で定められているのは、 返り値が 0 以外になるのは引き数が無限大の場合だけということだけである。
114 glibc 2.01 以前では、 \fBisinf\fP() は \fIx\fP が正の無限大か負の無限大の場合、 0 以外の値 (実際には 1) を返す
115 (C99 の要求仕様で決まっているのは 0 以外の値を返すということだけである)。
117 \fBfinite\fP(3), \fBINFINITY\fP(3), \fBisgreater\fP(3), \fBsignbit\fP(3)
119 この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.77 の一部
120 である。プロジェクトの説明とバグ報告に関する情報は
121 http://www.kernel.org/doc/man\-pages/ に書かれている。