fpclassify, isfinite, isnormal, isnan, isinf - makra klasyfikacji liczb
zmiennoprzecinkowych
Math library (
libm,
-lm)
#include <math.h>
int fpclassify(x);
int isfinite(x);
int isnormal(x);
int isnan(x);
int isinf(x);
fpclassify(),
isfinite(),
isnormal():
_ISOC99_SOURCE || _POSIX_C_SOURCE >= 200112L
isnan():
_ISOC99_SOURCE || _POSIX_C_SOURCE >= 200112L
|| _XOPEN_SOURCE
|| /* Since glibc 2.19: */ _DEFAULT_SOURCE
|| /* glibc <= 2.19: */ _BSD_SOURCE || _SVID_SOURCE
isinf():
_ISOC99_SOURCE || _POSIX_C_SOURCE >= 200112L
|| /* Od glibc 2.19: */ _DEFAULT_SOURCE
|| /* glibc w wersji <= 2.19: */ _BSD_SOURCE || _SVID_SOURCE
Liczby zmiennoprzecinkowe mają specjalne wartości takie jak
nieskończoność lub NaN ("nie jest
liczbą"). Makro
fpclassify(x) pozwala
określić typ parametru
x, który może
być dowolnym wyrażeniem zmiennoprzecinkowym. Wynikiem makra jest
jedna z następujących wartości:
- FP_NAN
-
x ma wartość "nie jest
liczbą" ("Not a Number").
- FP_INFINITE
-
x jest albo dodatnią
nieskończonością, albo ujemną
nieskończonością
- FP_ZERO
-
x jest zerem.
- FP_SUBNORMAL
-
x jest zbyt małe, by być
reprezentowane w postaci znormalizowanej.
- FP_NORMAL
- jeśli żadne z powyższych nie jest
właściwe, to x musi to być
zwykłą liczbą zmiennoprzecinkową.
Inne makra dostarczają prostych odpowiedzi na kilka standardowych
pytań.
-
isfinite(x)
- zwraca wartość niezerową, gdy
(fpclassify(x) != FP_NAN && fpclassify(x) != FP_INFINITE)
-
isnormal(x)
- zwraca wartość niezerową, gdy
(fpclassify(x) == FP_NORMAL)
-
isnan(x)
- zwraca wartość niezerową, gdy
(fpclassify(x) == FP_NAN)
-
isinf(x)
- zwraca 1, gdy x jest dodatnią
nieskończonością, lub -1, gdy x jest
ujemną nieskończonością.
Informacje o pojęciach używanych w tym rozdziale można
znaleźć w podręczniku
attributes(7).
Interfejs |
Atrybut |
Wartość |
fpclassify(), isfinite(), isnormal(),
isnan(), isinf() |
Bezpieczeństwo wątkowe |
MT-Safe |
POSIX.1-2001, POSIX.1-2008, C99.
W wypadku
isinf() standardy jedynie stwierdzają, że
wartość zwracana jest niezerowa wtedy i tylko wtedy, gdy
parametr funkcji ma wartość nieskończoną.
W wersji 2.01 i wcześniejszych biblioteki glibc
isinf() zwraca
wartość niezerową (dokładnie: 1), jeżeli
x jest dodatnią lub ujemną
nieskończonością. (To jest wszystko, czego wymaga
standard C99).
finite(3),
INFINITY(3),
isgreater(3),
signbit(3)
Autorami polskiego tłumaczenia niniejszej strony podręcznika
są: Andrzej Krzysztofowicz <
[email protected]>, Robert
Luberda <
[email protected]> i Michał Kułach
<
[email protected]>
Niniejsze tłumaczenie jest wolną dokumentacją.
Bliższe informacje o warunkach licencji można uzyskać
zapoznając się z
GNU
General Public License w wersji 3 lub nowszej. Nie przyjmuje się
ŻADNEJ ODPOWIEDZIALNOŚCI.
Błędy w tłumaczeniu strony podręcznika prosimy
zgłaszać na adres listy dyskusyjnej
[email protected]