Namespaces
Variants

pow, powf, powl

From cppreference.net
< c ‎ | numeric ‎ | math
Common mathematical functions
Functions
Basic operations
(C99)
(C99)
(C99)
(C99) (C99) (C99) (C23)
Maximum/minimum operations
Exponential functions
Power functions
(C99)
pow
(C23)
(C23)
Trigonometric and hyperbolic functions
Nearest integer floating-point
(C99) (C99) (C99)
(C23) (C23) (C23) (C23)
Floating-point manipulation
Narrowing operations
(C23)
(C23)
(C23)
(C23)
(C23)
(C23)
Quantum and quantum exponent
Decimal re-encoding functions
Total order and payload functions
Classification
Error and gamma functions
(C99)
(C99)
(C99)
(C99)
Types
Macro constants
Special floating-point values
Arguments and return values
Error handling
Fast operation indicators
Défini dans l'en-tête <math.h>
float powf ( float base, float exponent ) ;
(1) (depuis C99)
double pow ( double base, double exponent ) ;
(2)
long double powl ( long double base, long double exponent ) ;
(3) (depuis C99)
Défini dans l'en-tête <tgmath.h>
#define pow( base, exponent )
(4) (depuis C99)
1-3) Calcule la valeur de base élevée à la puissance exponent .
4) Macro générique de type : Si un argument a le type long double , powl est appelé. Sinon, si un argument a un type entier ou le type double , pow est appelé. Sinon, powf est appelé. Si au moins un argument est complexe ou imaginaire, alors la macro appelle la fonction complexe correspondante ( cpowf , cpow , cpowl ).

Table des matières

Paramètres

base - base comme valeur flottante
exponent - exposant comme valeur flottante

Valeur de retour

Si aucune erreur ne se produit, base élevé à la puissance de exponent ( base exponent
) est renvoyé.

Si une erreur de domaine se produit, une valeur définie par l'implémentation est retournée (NaN là où supporté).

Si une erreur de pôle ou une erreur de plage due à un dépassement de capacité se produit, ± HUGE_VAL , ±HUGE_VALF , ou ±HUGE_VALL est renvoyé.

Si une erreur de plage se produit en raison d'un dépassement inférieur, le résultat correct (après arrondi) est retourné.

Gestion des erreurs

Les erreurs sont signalées comme spécifié dans math_errhandling .

Si base est fini et négatif et exponent est fini et non entier, une erreur de domaine se produit et une erreur de plage peut survenir.

Si base est zéro et exponent est zéro, une erreur de domaine peut survenir.

Si base est zéro et exponent est négatif, une erreur de domaine ou une erreur de pôle peut survenir.

Si l'implémentation prend en charge l'arithmétique à virgule flottante IEEE (IEC 60559),

  • pow ( + 0 , exponent ) , où exponent est un entier impair négatif, retourne +∞ et lève FE_DIVBYZERO
  • pow ( - 0 , exponent ) , où exponent est un entier impair négatif, retourne -∞ et déclenche FE_DIVBYZERO
  • pow ( ± 0 , exponent ) , où exponent est négatif, fini, et est un entier pair ou un non-entier, retourne +∞ et déclenche FE_DIVBYZERO
  • pow ( ± 0 , - ) retourne +∞ et peut lever FE_DIVBYZERO (jusqu'à C23)
  • pow ( + 0 , exponent ) , où exponent est un entier positif impair, renvoie +0
  • pow ( - 0 , exponent ) , où exponent est un entier positif impair, retourne -0
  • pow ( ± 0 , exponent ) , où exponent est un non-entier positif ou un entier pair positif, retourne +0
  • pow ( - 1 , ±∞ ) renvoie 1
  • pow ( + 1 , exponent ) renvoie 1 pour tout exponent , même lorsque exponent est NaN
  • pow ( base, ± 0 ) renvoie 1 pour toute base , même lorsque base est NaN
  • pow ( base, exponent ) retourne NaN et lève FE_INVALID si base est finie et négative et exponent est fini et non entier.
  • pow ( base, - ) retourne +∞ pour tout |base|<1
  • pow ( base, - ) retourne +0 pour tout |base|>1
  • pow ( base, + ) retourne +0 pour tout |base|<1
  • pow ( base, + ) retourne +∞ pour tout |base|>1
  • pow ( - ∞, exposant ) retourne -0 si exposant est un entier impair négatif
  • pow ( - ∞, exposant ) renvoie +0 si exposant est un non-entier négatif ou un entier pair négatif
  • pow ( - ∞, exponent ) retourne -∞ si exponent est un entier positif impair
  • pow ( - ∞, exponent ) renvoie +∞ si exponent est un non-entier positif ou un entier pair positif
  • pow ( + ∞, exponent ) renvoie +0 pour tout exponent négatif
  • pow ( + ∞, exponent ) renvoie +∞ pour tout exponent positif
  • sauf indication contraire ci-dessus, si un argument est NaN, NaN est retourné.

Notes

Bien que pow ne puisse pas être utilisé pour obtenir une racine d'un nombre négatif, cbrt est fourni pour le cas courant où exponent est 1 / 3 .

Exemple

#include <errno.h>
#include <fenv.h>
#include <math.h>
#include <stdio.h>
// #pragma STDC FENV_ACCESS ON
int main(void)
{
    // utilisation typique
    printf("pow(2, 10) = %f\n", pow(2, 10));
    printf("pow(2, 0.5) = %f\n", pow(2, 0.5));
    printf("pow(-2, -3) = %f\n", pow(-2, -3));
    // valeurs spéciales
    printf("pow(-1, NAN) = %f\n", pow(-1, NAN));
    printf("pow(+1, NAN) = %f\n", pow(+1, NAN));
    printf("pow(INFINITY, 2) = %f\n", pow(INFINITY, 2));
    printf("pow(INFINITY, -1) = %f\n", pow(INFINITY, -1));
    // gestion des erreurs
    errno = 0; feclearexcept(FE_ALL_EXCEPT);
    printf("pow(-1, 1/3) = %f\n", pow(-1, 1.0 / 3));
    if (errno == EDOM)
        perror("    errno == EDOM");
    if (fetestexcept(FE_INVALID))
        puts("    FE_INVALID raised");
    feclearexcept(FE_ALL_EXCEPT);
    printf("pow(-0, -3) = %f\n", pow(-0.0, -3));
    if (fetestexcept(FE_DIVBYZERO))
        puts("    FE_DIVBYZERO raised");
}

Sortie possible :

pow(2, 10) = 1024.000000
pow(2, 0.5) = 1.414214
pow(-2, -3) = -0.125000
pow(-1, NAN) = nan
pow(+1, NAN) = 1.000000
pow(INFINITY, 2) = inf
pow(INFINITY, -1) = 0.000000
pow(-1, 1/3) = -nan
    errno == EDOM: Numerical argument out of domain
    FE_INVALID raised
pow(-0, -3) = -inf
    FE_DIVBYZERO raised

Références

  • Norme C23 (ISO/CEI 9899:2024) :
  • 7.12.7.5 Les fonctions pow
  • 7.27 Mathématiques génériques de type <tgmath.h>
  • F.10.4.5 Les fonctions pow (p: 524-525)
  • Norme C17 (ISO/CEI 9899:2018) :
  • 7.12.7.4 Les fonctions pow (p : 248-249)
  • 7.25 Mathématiques génériques de type <tgmath.h> (p : 373-375)
  • F.10.4.4 Les fonctions pow (p : 524-525)
  • Norme C11 (ISO/CEI 9899:2011) :
  • 7.12.7.4 Les fonctions pow (p: 248-249)
  • 7.25 Mathématiques génériques de type <tgmath.h> (p: 373-375)
  • F.10.4.4 Les fonctions pow (p: 524-525)
  • Norme C99 (ISO/CEI 9899:1999) :
  • 7.12.7.4 Les fonctions pow (p : 229)
  • 7.22 Mathématiques génériques de type <tgmath.h> (p : 335-337)
  • F.9.4.4 Les fonctions pow (p : 461)
  • Norme C89/C90 (ISO/IEC 9899:1990) :
  • 4.5.5.1 La fonction pow

Voir aussi

(C99) (C99)
calcule la racine carrée ( x )
(fonction)
(C99) (C99) (C99)
calcule la racine cubique ( 3 x )
(fonction)
(C99) (C99) (C99)
calcule la racine carrée de la somme des carrés de deux nombres donnés ( x 2
+y 2
)
(fonction)
(C99) (C99) (C99)
calcule la fonction puissance complexe
(fonction)