powf, powl, pow, powd32, powd64et powd128 Sous-routines
Objectif
Calcule la puissance.
Syntaxe
Descriptif
Les sous-routines powf, powl, pow, powd32, powd64et powd128 calculent la valeur de x élevée à la puissance y, x y. Si x est négatif, l'application s'assure que y est une valeur entière.
Une application qui souhaite rechercher des situations d'erreur doit définir errno sur zéro et appeler feclearexcept(FE_ALL_EXCEPT) avant d'appeler ces sous-routines. En retour, si errno est différent de zéro ou si fetestexcept(FE_INVALID | FE_DIVBYZERO | FE_OVERFLOW | FE_UNDERFLOW) est différent de zéro, une erreur s'est produite.
Paramètres
| Article | Descriptif |
|---|---|
| x | Indique la valeur de la base. |
| y | Indique la valeur de l'exposant. |
Valeurs renvoyées
Une fois l'opération terminée, les sous-routines pow, powf, powl, powd32, powd64et powd128 renvoient la valeur de x élevée à la puissance y.
Pour les valeurs finies de x < 0 et les valeurs non entières finies de y, une erreur de domaine se produit et un NaN est renvoyé.
Si la valeur correcte provoque un dépassement, une erreur de plage se produit et les sous-routines pow, powf, powl, powd32, powd64et powd128 renvoient HUGE_VAL, HUGE_VALF, HUGE_VALL, HUGE_VAL_D32, HUGE_VAL_D64, et HUGE_VAL_D128 respectivement.
Si la valeur correcte provoque un sous-flux et n'est pas représentable, une erreur de plage peut se produire et 0.0 est renvoyé.
Si x ou y est un NaN,, un NaN est renvoyé (sauf indication contraire dans la présente description).
Pour toute valeur de y (y compris NaN), si x est +1, 1.0 est renvoyé.
Pour toute valeur de x (y compris NaN), si y est ± 0, 1.0 est renvoyé.
Pour toute valeur entière impaire de y> 0, si x est ± 0, ± 0 est renvoyé.
Pour y > 0 et non un entier impair, si x est ± 0, + 0 est renvoyé.
Si x est -1, et y est ±Inf, 1.0 est renvoyé.
Pour |x< 1, si y est -Inf, + Inf est renvoyé.
Pour |x> 1, si y est -Inf, + 0 est renvoyé.
Pour |x< 1, si y est + Inf, + 0 est renvoyé.
Pour |x> 1, si y est + Inf, + Inf est renvoyé.
Pour y un entier impair < 0, si x est -Inf, -0 est renvoyé.
Pour y < 0 et non un entier impair, si x est -Inf, + 0 est renvoyé.
Pour y un entier impair > 0, si x est -Inf, -Inf est renvoyé.
Pour y > 0 et non un entier impair, si x est -Inf, + Inf est renvoyé.
Pour y < 0, si x est + Inf, + 0 est renvoyé.
Pour y > 0, si x est + Inf, + Inf est renvoyé.
Pour y , un entier impair < 0, si x est ± 0, une erreur de pôle se produit et ±HUGE_VAL, ±HUGE_VALF, ±HUGE_VALL, ±HUGE_VAL_D32, ±HUGE_VAL_D64et ±HUGE_VAL_D128 est renvoyé pour pow, powf, powl, powd32, powd64et powd128 respectivement.
Pour y < 0 et non un entier impair, si x est ± 0, une erreur de pôle se produit et HUGE_VAL, HUGE_VALF, HUGE_VALL, HUGE_VAL_D32, HUGE_VAL_D64et HUGE_VAL_D128 est renvoyé pour pow, powf, powl, powd32, powd64, et powd128 respectivement.
Si la valeur correcte entraîne un flux insuffisant et qu'elle est représentable, une erreur de plage peut se produire et la valeur correcte est renvoyée.
Codes d'erreur
Lorsque vous utilisez la bibliothèque libm.a :
| Article | Descriptif |
|---|---|
| poudrer | Si la valeur correcte est dépassée, la sous-routine powrenvoie une valeur HUGE_VAL et définit errno sur ERANGE. Si le paramètre x est négatif et que le paramètre y n'est pas un entier, la sous-routine pow renvoie une valeur NaNQ et définit errno sur EDOM. Plusx=0et que le paramètre y est négatif, la sous-routine pow renvoie une valeur HUGE_VAL mais ne modifie pas errno. |
| poul | Si la valeur correcte est dépassée, la sous-routine powlrenvoie une valeur HUGE_VAL et définit errno sur ERANGE. Si le paramètre x est négatif et que le paramètre y n'est pas un entier, la sous-routine powl renvoie une valeur NaNQ et définit errno sur EDOM. Plusx=0et que le paramètre y est négatif, la sous-routine powl renvoie une valeur HUGE_VAL mais ne modifie pas errno. |
Lorsque vous utilisez libmsaa.a(-lmsaa):
| Article | Descriptif |
|---|---|
| poudrer | Plusx=0et le paramètre y n'est pas positif, ou si le paramètre x est négatif et que le paramètre y n'est pas un entier, la sous-routine pow renvoie 0 et définit errno sur EDOM. Dans ces cas, un message indiquant une erreur DOMAIN est généré en erreur standard. Lorsque la valeur correcte de la sous-routine pow est dépassée ou sous-jacente, la sous-routine pow renvoie:Lorsque vous utilisez la bibliothèque libm.a ou la bibliothèque libsaa.a : |
| poul | Si la valeur correcte est dépassée, powl renvoie HUGE_VAL et errno à ERANGE. Si x est négatif et y n'est pas un entier, powl renvoie NaNQ et définit errno sur EDOM. Si x = zéro et y est négatif, powl renvoie une valeur HUGE_VAL mais ne modifie pas errno. |