pow(3) Library Functions Manual pow(3) NOM pow, powf, powl -- Fonctions puissance BIBLIOTHEQUE Bibliotheque de math (libm, -lm) SYNOPSIS #include double pow(double x, double y); float powf(float x, float y); long double powl(long double x, long double y); Exigences de macros de test de fonctionnalites pour la glibc (consulter feature_test_macros(7)) : powf(), powl() : _ISOC99_SOURCE || _POSIX_C_SOURCE >= 200112L || /* Depuis la glibc 2.19 : */ _DEFAULT_SOURCE || /* glibc <= 2.19 : */ _BSD_SOURCE || _SVID_SOURCE DESCRIPTION Ces fonctions renvoient la valeur de x elevee a la puissance y. VALEUR RENVOYEE En cas de reussite, ces fonctions renvoient la valeur de x elevee a la puissance y. En cas de depassement pour le resultat, une erreur d'intervalle se produit et les fonctions renvoient respectivement HUGE_VAL, HUGE_VALF ou HUGE_VALL, avec le bon signe mathematique. En cas de soupassement (<< underflow >>) pour le resultat, et qu'il ne peut pas etre represente, une erreur d'intervalle se produit et 0.0 est renvoye avec le signe approprie. Si x vaut +0 ou -0 et y est un nombre entier impair negatif, une erreur de pole se produit et HUGE_VAL, HUGE_VALF ou HUGE_VALL est renvoye avec le meme signe que x. Si x vaut +0 ou -0 et y est negatif et pas un nombre impair, une erreur de pole se produit et +HUGE_VAL, +HUGE_VALF ou +HUGE_VALL est renvoye. Si x vaut +0 (resp. -0) et y est un nombre entier impair positif, le resultat est +0 (resp. -0). Si x est nul et y positif et n'est pas un nombre entier impair, le resultat est +0. Si x vaut -1 et y est une valeur infinie positive ou negative, le resultat est 1,0. Si x vaut +1, le resultat est 1,0 (meme si y est un NaN). Si y est nul, le resultat est 1,0 (meme si x est un NaN). Si x est une valeur finie negative et y un nombre fini non entier, une erreur de domaine se produit et un NaN est renvoye. Si la valeur absolue de x est inferieure a 1 et y est une valeur infinie negative, le resultat est l'infini positif. Si la valeur absolue de x est superieure a 1 et y est une valeur infinie negative, le resultat est +0. Si la valeur absolue de x est inferieure a 1 et y est une valeur infinie positive, le resultat est +0. Si la valeur absolue de x est superieure a 1 et y est une valeur infinie positive, le resultat est l'infini positif. Si x est une valeur infinie negative et y est un nombre entier impair negatif, le resultat est -0. Si x est une valeur infinie negative et y est negatif et n'est pas un nombre entier impair, le resultat est +0. Si x est une valeur infinie negative et y est un nombre entier impair positif, le resultat est l'infini negatif. Si x est une valeur infinie negative et y est positif et n'est pas un nombre entier impair, le resultat est l'infini positif. Si x est une valeur infinie positive et y est negatif, le resultat est +0. Si x est une valeur infinie positive et y est positif, le resultat est l'infini positif. Sauf dans les cas specifies ci-dessus, si x ou y est un NaN, le resultat est un NaN. ERREURS Voir math_error(7) pour savoir comment determiner si une erreur s'est produite lors de l'appel d'une de ces fonctions. Les erreurs suivantes peuvent se produire : Erreur de domaine : x est negatif et y est un nombre fini non entier errno prend la valeur EDOM. Une exception de virgule flottante non valable (FE_INVALID) est levee. Erreur de pole : x est nul et y est negatif errno est configure a la valeur ERANGE (mais consultez la section BOGUES). Une exception de virgule flottante divisee par zero (FE_DIVBYZERO) est declenchee. Erreur d'intervalle : depassement pour le resultat errno est configuree a ERANGE. Une exception de depassement par le haut de virgule flottante (FE_OVERFLOW) est levee. Erreur d'intervalle : soupassement (<< underflow >>) du resultat errno prend la valeur ERANGE. Une exception de depassement par le bas de virgule flottante (FE_UNDERFLOW) est levee. ATTRIBUTS Pour une explication des termes utilises dans cette section, consulter attributes(7). +---------------------------------+--------------------------+---------+ |Interface | Attribut | Valeur | +---------------------------------+--------------------------+---------+ |pow(), powf(), powl() | Securite des threads | MT-Safe | +---------------------------------+--------------------------+---------+ STANDARDS C11, POSIX.1-2008. HISTORIQUE C99, POSIX.1-2001. La variante renvoyant double est egalement conforme a SVr4, 4.3BSD et C89. BOGUES Bogues anciens (maintenant corriges) Avant la glibc 2.28, sur certaines architectures (par exemple x86-64), pow() peut etre plus de 10 000 fois plus lent pour certaines entrees (rares) que pour d'autres peu differentes. Cela ne concerne que pow(), mais ni powf(), ni powl(). Ce probleme a ete corrige dans la glibc 2.28. Un certain nombre de bogues dans l'implementation de pow dans la glibc ont ete corriges dans la glibc 2.16. Dans la glibc 2.9 et les versions anterieures, si une erreur de pole survient, errno est positionne a EDOM a la place de la valeur ERANGE specifiee par POSIX. Depuis la glibc 2.10, le comportement de la glibc est corrige. Dans la glibc 2.3.2 et anterieures, quand un depassement ou un soupassement (<< underflow >>) se produit, pow() genere a tort une exception de virgule flottante non valable (FE_INVALID) en plus de l'exception de depassement par le haut ou par le bas. VOIR AUSSI cbrt(3), cpow(3), sqrt(3) TRADUCTION La traduction francaise de cette page de manuel a ete creee par Christophe Blaess , Stephan Rafin , Thierry Vignaud , Francois Micaux, Alain Portal , Jean-Philippe Guerard , Jean-Luc Coulon (f5ibh) , Julien Cristau , Thomas Huriaux , Nicolas Francois , Florentin Duneau , Simon Paillard , Denis Barbier , David Prevot , Cedric Boutillier et Jean-Philippe MENGUAL Cette traduction est une documentation libre ; veuillez vous reporter a la GNU General Public License version 3 concernant les conditions de copie et de distribution. Il n'y a aucune RESPONSABILITE LEGALE. Si vous decouvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message a . Pages du manuel de Linux 6.06 31 octobre 2023 pow(3)