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
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 .
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).