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
Definido en el encabezado <math.h>
float powf ( float base, float exponent ) ;
(1) (desde C99)
double pow ( double base, double exponent ) ;
(2)
long double powl ( long double base, long double exponent ) ;
(3) (desde C99)
Definido en el encabezado <tgmath.h>
#define pow( base, exponent )
(4) (desde C99)
1-3) Calcula el valor de base elevado a la potencia exponent .
4) Macro genérico de tipos: Si algún argumento tiene tipo long double , powl es llamado. De lo contrario, si algún argumento tiene tipo entero o tiene tipo double , pow es llamado. De lo contrario, powf es llamado. Si al menos un argumento es complejo o imaginario, entonces el macro invoca la función compleja correspondiente ( cpowf , cpow , cpowl ).

Contenidos

Parámetros

base - base como valor de punto flotante
exponent - exponente como valor de punto flotante

Valor de retorno

Si no ocurren errores, base elevado a la potencia de exponent ( base exponent
) es devuelto.

Si ocurre un error de dominio, se devuelve un valor definido por la implementación (NaN donde esté soportado).

Si ocurre un error de polo o un error de rango debido a desbordamiento, ± HUGE_VAL , ±HUGE_VALF , o ±HUGE_VALL es devuelto.

Si ocurre un error de rango debido a desbordamiento inferior, se devuelve el resultado correcto (después del redondeo).

Manejo de errores

Los errores se reportan como se especifica en math_errhandling .

Si base es finito y negativo y exponent es finito y no entero, ocurre un error de dominio y puede ocurrir un error de rango.

Si base es cero y exponent es cero, puede ocurrir un error de dominio.

Si base es cero y exponent es negativo, puede ocurrir un error de dominio o un error de polo.

Si la implementación soporta aritmética de punto flotante IEEE (IEC 60559),

  • pow ( + 0 , exponent ) , donde exponent es un entero impar negativo, retorna +∞ y genera FE_DIVBYZERO
  • pow ( - 0 , exponent ) , donde exponent es un entero impar negativo, retorna -∞ y genera FE_DIVBYZERO
  • pow ( ± 0 , exponent ) , donde exponent es negativo, finito, y es un entero par o un no entero, retorna +∞ y genera FE_DIVBYZERO
  • pow ( ± 0 , - ) devuelve +∞ y puede generar FE_DIVBYZERO (hasta C23)
  • pow ( + 0 , exponent ) , donde exponent es un entero impar positivo, retorna +0
  • pow ( - 0 , exponent ) , donde exponent es un entero positivo impar, retorna -0
  • pow ( ± 0 , exponent ) , donde exponent es un número positivo no entero o un entero par positivo, retorna +0
  • pow ( - 1 , ±∞ ) devuelve 1
  • pow ( + 1 , exponent ) devuelve 1 para cualquier exponent , incluso cuando exponent es NaN
  • pow ( base, ± 0 ) devuelve 1 para cualquier base , incluso cuando base es NaN
  • pow ( base, exponent ) devuelve NaN y genera FE_INVALID si base es finita y negativa y exponent es finito y no entero.
  • pow ( base, - ) devuelve +∞ para cualquier |base|<1
  • pow ( base, - ) devuelve +0 para cualquier |base|>1
  • pow ( base, + ) devuelve +0 para cualquier |base|<1
  • pow ( base, + ) devuelve +∞ para cualquier |base|>1
  • pow ( - ∞, exponent ) devuelve -0 si exponent es un entero impar negativo
  • pow ( - ∞, exponente ) retorna +0 si exponente es un no entero negativo o un entero par negativo
  • pow ( - ∞, exponent ) devuelve -∞ si exponent es un entero impar positivo
  • pow ( - ∞, exponent ) devuelve +∞ si exponent es un número positivo no entero o un entero par positivo
  • pow ( + ∞, exponent ) devuelve +0 para cualquier exponent negativo
  • pow ( + ∞, exponent ) devuelve +∞ para cualquier exponent positivo
  • excepto donde se especifique anteriormente, si cualquier argumento es NaN, se devuelve NaN.

Notas

Aunque pow no puede utilizarse para obtener una raíz de un número negativo, cbrt se proporciona para el caso común donde exponent es 1 / 3 .

Ejemplo

#include <errno.h>
#include <fenv.h>
#include <math.h>
#include <stdio.h>
// #pragma STDC FENV_ACCESS ON
int main(void)
{
    // uso típico
    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));
    // valores especiales
    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));
    // manejo de errores
    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");
}

Salida posible:

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

Referencias

  • Estándar C23 (ISO/IEC 9899:2024):
  • 7.12.7.5 Las funciones pow
  • 7.27 Matemáticas genéricas de tipo <tgmath.h>
  • F.10.4.5 Las funciones pow (p: 524-525)
  • Estándar C17 (ISO/IEC 9899:2018):
  • 7.12.7.4 Las funciones pow (p: 248-249)
  • 7.25 Matemáticas genéricas de tipos <tgmath.h> (p: 373-375)
  • F.10.4.4 Las funciones pow (p: 524-525)
  • Estándar C11 (ISO/IEC 9899:2011):
  • 7.12.7.4 Las funciones pow (p: 248-249)
  • 7.25 Matemáticas genéricas de tipos <tgmath.h> (p: 373-375)
  • F.10.4.4 Las funciones pow (p: 524-525)
  • Estándar C99 (ISO/IEC 9899:1999):
  • 7.12.7.4 Las funciones pow (p: 229)
  • 7.22 Matemáticas genéricas de tipo <tgmath.h> (p: 335-337)
  • F.9.4.4 Las funciones pow (p: 461)
  • Estándar C89/C90 (ISO/IEC 9899:1990):
  • 4.5.5.1 La función pow

Véase también

(C99) (C99)
calcula la raíz cuadrada ( x )
(función)
(C99) (C99) (C99)
calcula la raíz cúbica ( 3 x )
(función)
(C99) (C99) (C99)
calcula la raíz cuadrada de la suma de los cuadrados de dos números dados ( x 2
+y 2
)
(función)
(C99) (C99) (C99)
calcula la función de potencia compleja
(función)