FPCLASSIFY(3)

NOM
fpclassify, isfinite, isnormal, isnan, isinf - Macros de classification en virgule flottante

SYNOPSIS
#include <math.h>

int fpclassify(x);

int isfinite(x);

int isnormal(x);

int isnan(x);

int isinf(x);

Exigences de macros de test de fonctionalités pour la glibc (voir feature_test_macros(7)) :

fpclassify(), isfinite(), isnormal() : _XOPEN_SOURCE >= 600 || _ISOC99_SOURCE ; ou cc -std=c99
isnan() : _BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE || _ISOC99_SOURCE ; ou cc -std=c99
isinf() : _BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE >= 600 || _ISOC99_SOURCE ; ou cc -std=c99

DESCRIPTION
Les nombres en virgule flottante ont des valeurs spéciales, tels que les infinis ou NaN. Avec la macro fpclassify(x) vous pouvez connaître le type de x. La macro prend en argument n'importe quel type d'expression en virgule flottante. Le résultat est l'une des valeurs suivantes :

FP_NAN
    x est un « non-nombre ».

FP_INFINITE
    x vaut plus ou moins l'infini.

FP_ZERO
    x est nul.

FP_SUBNORMAL
    x est trop petit pour être représenté en format normalisé.

FP_NORMAL
    si aucun des cas précédents n'est vrai, alors c'est qu'il doit s'agir d'un nombre normal en virgule flottante ;

Les autres macros fournissent une réponse courte à des questions standards.

isfinite(x)
    renvoie une valeur non nulle si
    (fpclassify(x) != FP_NAN && fpclassify(x) != FP_INFINITE)

isnormal(x)
    renvoie une valeur non nulle si
    (fpclassify(x) == FP_NORMAL)

isnan(x)
    renvoie une valeur non nulle si
    (fpclassify(x) == FP_NAN)

isinf(x)
    renvoie 1 si x vaut plus l'infini, et -1 si x vaut moins l'infini.

CONFORMITÉ
C99

NOTES
Dans la glibc 2.01 et précédentes, isinf() renvoie une valeur non nulle (actuellement : 1) si x est un infini (positif ou négatif). (C'est ainsi dans les recommandations de C99).

Pour utiliser les fonctions de la bibliothèque mathématique, il ne faut pas oublier d'ajouter l'argument -lm sur la ligne de commande de cc(1) ou ld(1), lors de l'édition des liens.

Pour cette fonction, vous devez également compiler avec l'option -std=c99.

VOIR AUSSI
finite(3), INFINITY(3), isgreater(3)

TRADUCTION

Ce document est une traduction réalisée par Christophe Blaess <http://www.blaess.fr/christophe/> le 30 juillet 2003 et révisée le 19 décembre 2007.

L'équipe de traduction a fait le maximum pour réaliser une adaptation française de qualité. La version anglaise la plus à jour de ce document est toujours consultable via la commande : « LANG=C man 3 fpclassify ». N'hésitez pas à signaler à l'auteur ou au traducteur, selon le cas, toute erreur dans cette page de manuel.