Manpages

NOM

logb, logbf, logbl - Obtenir l’exposant d’un nombre à virgule flottante

SYNOPSIS

#include <math.h>

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

Éditer les liens avec -lm.

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

logb() :

_ISOC99_SOURCE || _POSIX_C_SOURCE >= 200112L
|| _XOPEN_SOURCE >= 500
|| /* Depuis la glibc 2.19 : */ _DEFAULT_SOURCE
|| /* Versions <= 2.19 de la glibc : */ _BSD_SOURCE || _SVID_SOURCE

logbf(), logbl() :

_ISOC99_SOURCE || _POSIX_C_SOURCE >= 200112L
|| /* Depuis la glibc 2.19 : */ _DEFAULT_SOURCE
|| /* Versions <= 2.19 de la glibc : */ _BSD_SOURCE || _SVID_SOURCE

DESCRIPTION

Ces fonctions extraient l’exposant de la représentation interne en virgule flottante de x et le renvoie sous forme de nombre en virgule flottante. La constante entière FLT_RADIX, définie dans <float.h>, indique la base utilisée pour la représentation des nombres en virgule flottante du système. Si FLT_RADIX vaut 2, alors logb(x) est équivalent à floor(log2(x)) et elle est probablement plus rapide.

Si x est dénormalisé, logb() renvoie l’exposant x comme s’il était normalisé.

VALEUR RENVOYÉE

En cas de réussite, ces fonctions renvoient l’exposant de x.

Si x n’est pas un nombre, un NaN est renvoyé.

Si x est nul, une erreur de pôle se produit et les fonctions renvoient -HUGE_VAL, -HUGE_VALF ou -HUGE_VALL, respectivement.

Si x est une valeur infinie positive ou négative, l’infini positif est renvoyé.

ERREURS

Voir math_error(7) pour savoir comment déterminer si une erreur s’est produite lors de l’appel d’une de ces fonctions.

Les erreurs suivantes peuvent se produire :
Erreur de pôle : x est nul

Une exception de virgule flottante de division par zéro (FE_DIVBYZERO) est levée.

Ces fonctions n’affectent pas de valeur à errno.

ATTRIBUTS

Pour une explication des termes utilisés dans cette section, consulter attributes(7).

CONFORMITÉ

C99, POSIX.1-2001, POSIX.1-2008.

VOIR AUSSI

ilogb(3), log(3)

COLOPHON

Cette page fait partie de la publication 5.07 du projet man-pages Linux. Une description du projet et des instructions pour signaler des anomalies et la dernière version de cette page, peuvent être trouvées à l’adresse https://www.kernel.org/doc/man-pages/.

TRADUCTION

La traduction française de cette page de manuel a été créée par Christophe Blaess <https://www.blaess.fr/christophe/>;, Stéphan Rafin <stephan.rafin [AT] laposte.net>, Thierry Vignaud <tvignaud [AT] mandriva.com>, François Micaux, Alain Portal <aportal [AT] univ-montp2.fr>, Jean-Philippe Guérard <fevrier [AT] tigreraye.org>, Jean-Luc Coulon (f5ibh) <jean-luc.coulon [AT] wanadoo.fr>, Julien Cristau <jcristau [AT] debian.org>, Thomas Huriaux <thomas.huriaux [AT] gmail.com>, Nicolas François <nicolas.francois [AT] centraliens.net>, Florentin Duneau <fduneau [AT] gmail.com>, Simon Paillard <simon.paillard [AT] resel.fr>, Denis Barbier <barbier [AT] debian.org>, David Prévot <david [AT] tilapin.org> et Cédric Boutillier <cedric.boutillier [AT] gmail.com>

Cette traduction est une documentation libre ; veuillez vous reporter à la GNU General Public License version 3 concernant les conditions de copie et de distribution. Il n’y a aucune RESPONSABILITÉ LÉGALE.

Si vous découvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message à <debian-l10n-french [AT] lists.org>.