.\" 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 .\" Updated & Modified 2005-01-10, Yuichi SATO .\" Updated & Modified 2005-09-04, Akihiro MOTOKI .\" Updated 2008-09-16, Akihiro MOTOKI .\" .TH FPCLASSIFY 3 2017\-09\-15 "" "Linux Programmer's Manual" .SH 名前 fpclassify, isfinite, isnormal, isnan, isinf \- 浮動小数点数の分類マクロ .SH 書式 .nf \fB#include \fP .PP \fBint fpclassify(\fP\fIx\fP\fB);\fP .PP \fBint isfinite(\fP\fIx\fP\fB);\fP .PP \fBint isnormal(\fP\fIx\fP\fB);\fP .PP \fBint isnan(\fP\fIx\fP\fB);\fP .PP \fBint isinf(\fP\fIx\fP\fB);\fP .fi .PP \fI\-lm\fP でリンクする。 .PP .RS -4 glibc 向けの機能検査マクロの要件 (\fBfeature_test_macros\fP(7) 参照): .RE .PP .\" 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 _ISOC99_SOURCE || _POSIX_C_SOURCE\ >=\ 200112L .RE \fBisnan\fP(): .RS 4 _ISOC99_SOURCE || _POSIX_C_SOURCE\ >=\ 200112L || _XOPEN_SOURCE || /* Since glibc 2.19: */ _DEFAULT_SOURCE || /* Glibc versions <= 2.19: */ _BSD_SOURCE || _SVID_SOURCE .RE \fBisinf\fP(): .RS 4 _ISOC99_SOURCE || _POSIX_C_SOURCE\ >=\ 200112L || /* Since glibc 2.19: */ _DEFAULT_SOURCE || /* Glibc versions <= 2.19: */ _BSD_SOURCE || _SVID_SOURCE .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 上記のどれにも当てはまらない場合であり、 値は通常の浮動小数点数であるはずだ。 .PP 他のマクロは、いくつかの標準的な問いに対して、簡単な答えを提供する。 .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 属性 この節で使用されている用語の説明については、 \fBattributes\fP(7) を参照。 .ad l .TS allbox; lbw28 lb lb l l l. インターフェース 属性 値 T{ \fBfpclassify\fP(), \fBisfinite\fP(), \fBisnormal\fP(), \fBisnan\fP(), \fBisinf\fP() T} Thread safety MT\-Safe .TE .ad .SH 準拠 POSIX.1\-2001, POSIX.1\-2008, C99. .PP \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 プロジェクトのリリース 5.10 の一部である。プロジェクトの説明とバグ報告に関する情報は \%https://www.kernel.org/doc/man\-pages/ に書かれている。