Subrutinas hipot, hypotf, hypotl, hypotd32, hypotd64y hypotd128

Finalidad

Calcula la función de distancia euclidiana y el valor absoluto complejo.

Bibliotecas

Biblioteca matemática IEEE (libm.a) Biblioteca de vía de acceso del sistema V (libmsaa.a)

Sintaxis

#include <math.h>
double hypot ( x,  y)
double x, y;
float hypotf (x, y)
float x;
float y;

long double hypotl (x, y)
long double x;
long double y;
_Decimal32 hypotd32 (x, y)
_Decimal32 x, y;

_Decimal64 hypotd64 (x, y)
_Decimal64 x, y;

_Decimal128 hypotd128 (x, y)
_Decimal128 x, y;

Descripción

Las subrutinas hipot, hypotf, hypotl, hypotd32, hypotd64y hypotd128 calculan el valor de la raíz cuadrada de x2 + y2 sin desbordamiento ni subdesbordamiento indebidos.

Una aplicación que desee comprobar si hay situaciones de error debe establecer la variable global errno en cero y llamar a feclearxcept(FE_ALL_EXCEPT) antes de llamar a estas subrutinas. Al volver, si errno es distinto de cero o fetestexcept(FE_INVÁLIDO | FE_DIVBYZERO | FE_OVERFLOW | FE_UNDERFLOW) es distinto de cero, se ha producido un error.

Parámetros

Elemento Descripción
X Especifica un valor de coma flotante de precisión doble.
y Especifica un valor de coma flotante de precisión doble.

Valores de retorno

Tras la finalización satisfactoria, las subrutinas hipot, ipotasa, ipotl, hypotd32, hypotd64y hypotd128 devuelven la longitud de la hipotenusa de un triángulo rectángulo con lados de longitud x y y.

Si el valor correcto causaría desbordamiento, se produce un error de rango y las subrutinas ipotasa, ipotl, hypotd32, hypotd64y hypotd128 devuelven el valor de la macro HUGE_VALF, HUGE_VALL, HUGE_VAL_D32, HUGE_VAL_D64y HUGE_VAL_D128 respectivamente.

Si x o y es ± Inf, se devuelve + Inf (aunque uno de x o y sea NaN).

Si x o y es NaN,, y el otro no es ±Inf, se devuelve un NaN.

Si ambos argumentos son subnormales y el resultado correcto es subnormal, se puede producir un error de rango y se devuelve el resultado correcto.

Códigos de error

Cuando se utiliza la biblioteca libm.a (-lm), si el valor correcto se desborda, la subrutina hipot devuelve un valor HUGE_VAL .

Nota: (hipot (INF, valor) y hipot (valor, INF) son ambos iguales a + INF para todos los valores, incluso si valor = NaN.

Cuando se utiliza libmsaa.a (-lmsaa), si el valor correcto se desborda, la subrutina hipot devuelve HUGE_VAL y establece la variable global errno en ERANGE.

Estos procedimientos de manejo de errores se pueden cambiar con la subrutina matherr cuando se utiliza la biblioteca libmsaa.a (-lmsaa).