1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121
|
.\" Copyright 2002 Walter Harms (walter.harms@informatik.uni-oldenburg.de)
.\"
.\" %%%LICENSE_START(GPL_NOVERSION_ONELINE)
.\" Distributed under GPL
.\" %%%LICENSE_END
.\"
.\" This was done with the help of the glibc manual.
.\"
.\" 2004-10-31, aeb, corrected
.\"*******************************************************************
.\"
.\" This file was generated with po4a. Translate the source file.
.\"
.\"*******************************************************************
.\"
.\" Japanese Version Copyright (c) 2004-2005 Yuichi SATO
.\" all rights reserved.
.\" Translated 2004-07-27, Yuichi SATO <ysato444@yahoo.co.jp>
.\" Updated & Modified 2005-01-10, Yuichi SATO
.\" Updated & Modified 2005-09-04, Akihiro MOTOKI <amotoki@dd.iij4u.or.jp>
.\" Updated 2008-09-16, Akihiro MOTOKI <amotoki@dd.iij4u.or.jp>
.\"
.TH FPCLASSIFY 3 2013\-08\-06 "" "Linux Programmer's Manual"
.SH 名前
fpclassify, isfinite, isnormal, isnan, isinf \- 浮動小数点数の分類マクロ
.SH 書式
.nf
\fB#include <math.h>\fP
.sp
\fBint fpclassify(\fP\fIx\fP\fB);\fP
.sp
\fBint isfinite(\fP\fIx\fP\fB);\fP
.sp
\fBint isnormal(\fP\fIx\fP\fB);\fP
.sp
\fBint isnan(\fP\fIx\fP\fB);\fP
.sp
\fBint isinf(\fP\fIx\fP\fB);\fP
.fi
.sp
\fI\-lm\fP でリンクする。
.sp
.in -4n
glibc 向けの機能検査マクロの要件 (\fBfeature_test_macros\fP(7) 参照):
.in
.sp
.\" I haven't fully grokked the source to determine the FTM requirements;
.\" in part, the following has been tested by experiment.
.ad l
\fBfpclassify\fP(), \fBisfinite\fP(), \fBisnormal\fP():
.RS 4
_XOPEN_SOURCE\ >=\ 600 || _ISOC99_SOURCE || _POSIX_C_SOURCE\ >=\ 200112L;
.br
or \fIcc\ \-std=c99\fP
.RE
\fBisnan\fP():
.RS 4
_BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE || _ISOC99_SOURCE ||
_POSIX_C_SOURCE\ >=\ 200112L;
.br
or \fIcc\ \-std=c99\fP
.RE
\fBisinf\fP():
.RS 4
_BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE\ >=\ 600 || _ISOC99_SOURCE
|| _POSIX_C_SOURCE\ >=\ 200112L;
.br
or \fIcc\ \-std=c99\fP
.RE
.ad
.SH 説明
浮動小数点数は無限大や NaN のような特別な値を持つことができる。 マクロ \fBfpclassify(\fP\fIx\fP\fB)\fP で \fIx\fP
がどのような種別かを知ることができる。 マクロは任意の浮動小数点数表現を引き数としてとることができる。 結果は以下の値のいずれか一つである:
.TP 14
\fBFP_NAN\fP
\fIx\fP が "Not a Number" である (数値ではない)。
.TP
\fBFP_INFINITE\fP
\fIx\fP が正の無限大または負の無限大である。
.TP
\fBFP_ZERO\fP
\fIx\fP が 0 である。
.TP
\fBFP_SUBNORMAL\fP
\fIx\fP を正規化形式で表現するには小さすぎる。
.TP
\fBFP_NORMAL\fP
上記のどれにも当てはまらない場合であり、 値は通常の浮動小数点数であるはずだ。
.LP
他のマクロは、いくつかの標準的な問いに対して、簡単な答えを提供する。
.TP 14
\fBisfinite(\fP\fIx\fP\fB)\fP
以下の場合に 0 以外の値を返す。
.br
(fpclassify(x) != FP_NAN && fpclassify(x) != FP_INFINITE)
.TP
\fBisnormal(\fP\fIx\fP\fB)\fP
(fpclassify(x) == FP_NORMAL) の場合に 0 以外の値を返す。
.TP
\fBisnan(\fP\fIx\fP\fB)\fP
(fpclassify(x) == FP_NAN) の場合に 0 以外の値を返す。
.TP
\fBisinf(\fP\fIx\fP\fB)\fP
\fIx\fP が正の無限大の場合は 1 を、 負の無限大の場合は \-1 を返す。
.SH 属性
.SS "マルチスレッディング (pthreads(7) 参照)"
マクロ \fBfpclassify\fP(), \fBisfinite\fP(), \fBisnormal\fP(), \fBisnan\fP(), \fBisinf\fP()
はスレッドセーフである。
.SH 準拠
C99, POSIX.1.
\fBisinf\fP() に関して、標準規格で定められているのは、 返り値が 0 以外になるのは引き数が無限大の場合だけということだけである。
.SH 注意
glibc 2.01 以前では、 \fBisinf\fP() は \fIx\fP が正の無限大か負の無限大の場合、 0 以外の値 (実際には 1) を返す
(C99 の要求仕様で決まっているのは 0 以外の値を返すということだけである)。
.SH 関連項目
\fBfinite\fP(3), \fBINFINITY\fP(3), \fBisgreater\fP(3), \fBsignbit\fP(3)
.SH この文書について
この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.79 の一部
である。プロジェクトの説明とバグ報告に関する情報は
http://www.kernel.org/doc/man\-pages/ に書かれている。
|