ILOGB(3)

NOM
ilogb, ilogbf, ilogbl - Obtenir l'exposant entier d'un nombre en virgule flottante

SYNOPSIS
#include <math.h>

int ilogb(double x);
int ilogbf(float x);
int ilogbl(long double x);

Effectuez l'édition des liens avec l'option -lm.

Exigences de macros de test de fonctionnalités pour la glibc (consultez feature_test_macros(7)) :

ilogb() :
    _BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE >= 500 || _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED || _ISOC99_SOURCE || _POSIX_C_SOURCE >= 200112L
    ou cc -std=c99
ilogbf(), ilogbl() :
    _BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE >= 600 || _ISOC99_SOURCE || _POSIX_C_SOURCE >= 200112L
    ou cc -std=c99

DESCRIPTION
Ces fonctions renvoient l'exposant de leur argument sous forme d'entier signé. Si aucune erreur ne se produit, ces fonctions sont équivalentes aux fonctions logb(3) avec un transtypage vers le type int.

VALEUR RENVOYÉE
En cas de succès, ces fonctions renvoient l'exposant de x sous forme d'entier signé. Si x est nul, cela cause une erreur d'intervalle et les fonctions renvoient FP_ILOGB0. Si x n'est pas un nombre (NaN), cela cause une erreur d'intervalle et les fonctions renvoient FP_ILOGBNAN. Si x est l'infini négatif ou positif, cela cause une erreur d'intervalle et les fonctions renvoient INT_MAX.

ERREURS
Consultez math_error(7) pour savoir comment déterminer qu'une erreur est survenue lors de l'appel de ces fonctions.

Les erreurs suivantes peuvent se produire :

Erreur d'intervalle : x est nul ou n'est pas un nombre (NaN)
    Une exception indiquant une virgule flottante incorrecte (FE_INVALID) est levée.

    Ces fonctions ne positionnent pas errno dans ce cas.

Erreur de domaine : x est une valeur infinie

    Ces fonctions ne positionnent pas errno et ne lèvent pas d'exception dans ce cas.

ATTRIBUTS

  Multithreading (voir pthreads(7))
Les fonctions ilogb(), ilogbf() et ilogbl() sont sûres dans un contexte multithread.

CONFORMITÉ
C99, POSIX.1-2001.

VOIR AUSSI
log(3), logb(3), significand(3)

COLOPHON
Cette page fait partie de la publication 3.70 du projet man-pages Linux. Une description du projet et des instructions pour signaler des anomalies peuvent être trouvées à l'adresse http://www.kernel.org/doc/man-pages/.

TRADUCTION
Depuis 2010, cette traduction est maintenue à l'aide de l'outil po4a <http://po4a.alioth.debian.org/> par l'équipe de traduction francophone au sein du projet perkamon <http://perkamon.alioth.debian.org/>.

Christophe Blaess <http://www.blaess.fr/christophe/> (1996-2003), Alain Portal <http://manpagesfr.free.fr/> (2003-2006). Florentin Duneau et l'équipe francophone de traduction de Debian (2006-2009).

Veuillez signaler toute erreur de traduction en écrivant à <perkamon-fr@traduc.org>.

Vous pouvez toujours avoir accès à la version anglaise de ce document en utilisant la commande « LC_ALL=C man <section> <page_de_man> ».