powf, powl, pow, powd32, powd64y powd128 Subrutinas

Finalidad

Calcula la potencia.

Sintaxis

#include <math.h>

float powf (x, y)
float x; 
float y;

long double powl (x, y)
long double x, y;

double pow (x, y)
double x, y;
_Decimal32 powd32 (x, y)
_Decimal32 x, y;

_Decimal64 powd64 (x, y)
_Decimal64 x, y;

_Decimal128 powd128 (x, y)
_Decimal128 x, y;

Descripción

Las subrutinas powf, powl, pow, powd32, powd64y powd128 calculan el valor de x elevado a la potencia y, x y. Si x es negativo, la aplicación garantiza que y es un valor entero.

Una aplicación que desee comprobar si hay situaciones de error debe establecer errno en cero y llamar a feclearexcept(FE_ALL_EXCEPT) antes de llamar a estas subrutinas. Cuando se devuelve, si errno es distinto de cero o fetestexcept(FE_INVALID | FE_DIVBYZERO | FE_OVERFLOW | FE_UNDERFLOW) es distinto de cero, se ha producido un error.

Parámetros

Elemento Descripción
X Especifica el valor de la base.
y Especifica el valor del exponente.

Valores de retorno

Al finalizar correctamente, las subrutinas pow, powf, powl, powd32, powd64y powd128 devuelven el valor de x elevado a la potencia y.

Para valores finitos de x < 0 y valores finitos no enteros de y, se produce un error de dominio y se devuelve un NaN .

Si el valor correcto provoca un desbordamiento, se produce un error de rango y las subrutinas pow, powf, powl, powd32, powd64y powd128 devuelven HUGE_VAL, HUGE_VALF, HUGE_VALL, HUGE_VAL_D32, HUGE_VAL_D64, y HUGE_VAL_D128 respectivamente.

Si el valor correcto provocaría un subdesbordamiento, y no es representable, se puede producir un error de rango y se devuelve 0.0 .

Si x o y es un NaN, se devuelve un NaN (a menos que se especifique en otra parte de esta descripción).

Para cualquier valor de y (incluido NaN), si x es +1, se devuelve 1.0 .

Para cualquier valor de x (incluido NaN), si y es ±0, se devuelve 1.0 .

Para cualquier valor entero impar de y> 0, si x es ±0, se devuelve ± 0.

Para y > 0 y no un entero impar, si x es ±0, se devuelve + 0.

Si x es -1, e y es ±Inf, se devuelve 1.0.

Para |x< 1, si y es -Inf, se devuelve + Inf.

Para |x> 1, si y es -Inf, se devuelve + 0.

Para |x< 1, si y es + Inf, se devuelve + 0.

Para |x> 1, si y es + Inf, se devuelve + Inf.

Para y un entero impar < 0, si x es -Inf, se devuelve -0.

Para y < 0 y no un entero impar, si x es -Inf, se devuelve + 0.

Para y un entero impar > 0, si x es -Inf, se devuelve -Inf.

Para y > 0 y no es un entero impar, si x es -Inf, se devuelve + Inf.

Para y < 0, si x es + Inf, se devuelve + 0.

Para y > 0, si x es + Inf, se devuelve + Inf.

Para y un entero impar < 0, si x es ±0, se produce un error de polo y se devuelve ±HUGE_VAL, ±HUGE_VALF, ±HUGE_VALL, ±HUGE_VAL_D32, ±HUGE_VAL_D64y ±HUGE_VAL_D128 para pow, powf, powl, powd32, powd64y powd128 respectivamente.

Para y < 0 y no un entero impar, si x es ±0, se produce un error de polo y se devuelve HUGE_VAL, HUGE_VALF, HUGE_VALL, HUGE_VAL_D32, HUGE_VAL_D64y HUGE_VAL_D128 para pow, powf, powl, powd32, powd64, y powd128 respectivamente.

Si el valor correcto provoca un subdesbordamiento y es representable, puede producirse un error de rango y se devuelve el valor correcto.

Códigos de error

Cuando se utiliza la biblioteca libm.a :

Elemento Descripción
pow Si el valor correcto se desborda, la subrutina powdevuelve un valor HUGE_VAL y establece errno en ERANGE. Si el parámetro x es negativo y el parámetro y no es un entero, la subrutina pow devuelve un valor NaNQ y establece errno en EDOM. Six=0y el parámetro y es negativo, la subrutina pow devuelve un valor HUGE_VAL pero no modifica errno.
polvo Si el valor correcto se desborda, la subrutina powldevuelve un valor HUGE_VAL y establece errno en ERANGE. Si el parámetro x es negativo y el parámetro y no es un entero, la subrutina powl devuelve un valor NaNQ y establece errno en EDOM. Six=0y el parámetro y es negativo, la subrutina powl devuelve un valor HUGE_VAL pero no modifica errno.

Cuando se utiliza libmsaa.a(-lmsaa):

Elemento Descripción
pow Six=0y el parámetro y no es positivo, o si el parámetro x es negativo y el parámetro y no es un entero, la subrutina pow devuelve 0 y establece errno en EDOM. En estos casos, se genera un mensaje que indica que el error DOMAIN se debe a un error estándar. Cuando el valor correcto para la subrutina pow se desbordaría o subdesbordaría, la subrutina pow devuelve:
+HUGE_VAL
 
 OR
 
 -HUGE_VAL
 
 OR
 
 0

Cuando se utiliza la biblioteca libm.a o la biblioteca libsaa.a :

polvo Si el valor correcto se desborda, powl devuelve HUGE_VAL y errno a ERANGE. Si x es negativo y y no es un entero, powl devuelve NaNQ y establece errno en EDOM. Si x = cero y y es negativo, powl devuelve un valor HUGE_VAL pero no modifica errno.