LOGB(3)

NOM
logb, logbf, logbl - Récupérer l'exposant d'une valeur en virgule flottante

SYNOPSIS
#include <math.h>

double logb(double x);
float logbf(float x);
long double logbl(long double x);

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

logb(), logbf(), logbl() : _BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE >= 500 || _ISOC99_SOURCE ; ou cc -std=c99

DESCRIPTION
Ces fonctions extraient l'exposant de x et le renvoie comme une valeur en virgule flottante. Si FLT_RADIX vaut deux, logb(x) est égal à floor(log2(x)), excepté que c'est probablement plus rapide.

Si x est dénormalisé, logb() renvoie l'exposant x que l'on aurait s'il était nomalisé.

Si x vaut zéro, -HUGE_VAL (resp. -HUGE_VALF, -HUGE_VALL) est renvoyé et une erreur de pôle survient. Si x est infini, plus l'infini est renvoyé. Si x est NaN, NaN est renvoyé.

ERREURS
Afin de vérifier si des erreurs surviennent, mettez zéro dans errno et appelez feclearexcept(FE_ALL_EXCEPT) avant d'appeler ces fonctions. Au retour, si errno n'est pas nul ou si fetestexcept(FE_INVALID | FE_DIVBYZERO | FE_OVERFLOW | FE_UNDERFLOW) n'est pas nul, c'est qu'une erreur est apparue.

Si une erreur survient et si (math_errhandling & MATH_ERRNO) n'est pas nul, alors errno est remplie avec ERANGE. Si une erreur survient et si (math_errhandling & MATH_ERREXCEPT) n'est pas nul, c'est que l'exception division-par-zéro en virgule flottante est apparue.

Une erreur de pôle survient lorsque x vaut zéro.

CONFORMITÉ
C99.

NOTES
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.

VOIR AUSSI
log(3), ilogb(3)

TRADUCTION

Ce document est une traduction réalisée par Alain Portal <aportal AT univ-montp2 DOT fr> le 12 mai 2006 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 logb ». N'hésitez pas à signaler à l'auteur ou au traducteur, selon le cas, toute erreur dans cette page de manuel.