Articulo de referencia

Desbordamiento aritmético

El término subdesbordamiento aritmético (también subdesbordamiento de punto flotante o simplemente subdesbordamiento ) es una condición en un programa informático donde el resul...

El término subdesbordamiento aritmético (también subdesbordamiento de punto flotante o simplemente subdesbordamiento ) es una condición en un programa informático donde el resultado de un cálculo es un número con un valor absoluto más preciso del que la computadora puede representar realmente en la memoria de su unidad central de procesamiento (CPU).

El desbordamiento negativo aritmético puede ocurrir cuando el resultado real de una operación de punto flotante es menor en magnitud (es decir, más cercano a cero) que el valor más pequeño que se puede representar como un número de punto flotante normal en el tipo de datos de destino . [ 1 ] El desbordamiento negativo puede considerarse, en parte, como un desbordamiento negativo del exponente del valor de punto flotante. Por ejemplo, si la parte del exponente puede representar valores de −128 a 127, entonces un resultado con un valor menor que −128 puede causar desbordamiento negativo.

espacio de flujo inferior

El intervalo entre − fminN y fminN , donde fminN es el valor de punto flotante normal positivo más pequeño, se denomina brecha de subdesbordamiento. Esto se debe a que el tamaño de este intervalo es varios órdenes de magnitud mayor que la distancia entre valores de punto flotante normales adyacentes justo fuera de la brecha. Por ejemplo, si el tipo de dato de punto flotante puede representar 20 bits , la brecha de subdesbordamiento es 2²¹ veces mayor que la distancia absoluta entre valores de punto flotante adyacentes justo fuera de la brecha. [ 2 ] 

En los diseños antiguos, el margen de subdesbordamiento solo tenía un valor utilizable: cero. Cuando se producía un subdesbordamiento, el resultado real se sustituía por cero (ya fuera directamente por el hardware o por el software del sistema que gestionaba la condición de subdesbordamiento principal). Esta sustitución se denomina "relleno a cero".

La edición de 1984 de IEEE 754 introdujo los números subnormales . Los números subnormales (incluido el cero) rellenan el hueco de subdesbordamiento con valores donde la distancia absoluta entre valores adyacentes es la misma que para valores adyacentes justo fuera del hueco de subdesbordamiento. Esto permite el "subdesbordamiento gradual", donde se utiliza el valor subnormal más cercano, al igual que se utiliza el valor normal más cercano cuando es posible. Incluso al utilizar el subdesbordamiento gradual, el valor más cercano puede ser cero. [ 3 ]

La distancia absoluta entre valores de punto flotante adyacentes justo fuera del espacio se llama épsilon de máquina , definido como la diferencia entre 1 y el siguiente número de punto flotante mayor. [ 4 ] Este es el valor mínimo deϵ{\displaystyle \epsilon }que satisfaceFlorida(1+ϵ)>Florida(1){\displaystyle \operatorname {fl} (1+\epsilon )>\operatorname {fl} (1)}, dóndeFlorida{\displaystyle \operatorname {fl} }Es una función que convierte el valor real en su representación de punto flotante. Si bien el épsilon de máquina no debe confundirse con el nivel de subdesbordamiento (suponiendo números subnormales), están estrechamente relacionados. El épsilon de máquina depende del número de bits que componen la mantisa , mientras que el nivel de subdesbordamiento depende del número de dígitos que componen el campo del exponente. En la mayoría de los sistemas de punto flotante, el nivel de subdesbordamiento es menor que el épsilon de máquina.

Manejo del flujo inferior

La ocurrencia de un desbordamiento negativo puede establecer un bit de estado ("pegajoso"), generar una excepción, a nivel de hardware generar una interrupción o puede causar alguna combinación de estos efectos.

Como se especifica en la norma IEEE 754 , la condición de subdesbordamiento solo se señala si también hay una pérdida de precisión. Normalmente, esto se determina cuando el resultado final es inexacto. Sin embargo, si el usuario gestiona el subdesbordamiento, este puede ocurrir independientemente de la pérdida de precisión. El manejo predeterminado en la norma IEEE 754 para el subdesbordamiento (así como para otras excepciones) consiste en registrar como un estado de punto flotante que se ha producido un subdesbordamiento. Esto se especifica a nivel de programación de la aplicación, pero a menudo también se interpreta como la forma de manejarlo a nivel de hardware.

Véase también

Referencias

  1. Coonen, Jerome T. (1980). "Una guía de implementación para un estándar propuesto para la aritmética de punto flotante". Computer . 13 (1): 68– 79. doi : 10.1109/mc.1980.1653344 . S2CID 206445847 . 
  2. Sun Microsystems (2005). Guía de computación numérica . Oracle . Consultado el 21 de abril de 2018 .
  3. Demmel, James (1984). "Underflow and the Reliability of Numerical Software". SIAM Journal on Scientific and Statistical Computing . 5 (4): 887– 919. doi : 10.1137/0905062 .
  4. Heath, Michael T. (2002). Computación científica (2.ª ed.). Nueva York: McGraw-Hill. pág. 20. ISBN   0-07-239910-4.
Obtenido de " https://en.wikipedia.org/w/index.php?title=Arithmetic_underflow&oldid=1330812372 "