¿Cómo detectar el desbordamiento de precisión de mantisa en GMP, antes o después de que ocurra?
Pregunta
La pregunta que quise hacer se refería a la mantisa, no a la exponent , y tiene mucho que ver con la pregunta que hice a principios de semana con respecto a " missing " dígitos en la suma de dos flotantes negativos.
Dado que la mantisa tiene una precisión variable, ¿cómo se sabe si se ha desbordado la configuración de precisión actual de la mantisa? O, desde el lado proactivo, ¿cómo se puede saber si es probable un desbordamiento de precisión de mantisa?
Saludos cordiales, Bruce.
Solución
Hay algunos métodos numéricos para ver si va a perder precisión, pero la conclusión es que necesita comprender mejor la definición de precisión.
-4939600281397002.2812
y
-4939600281397002.2812000000000000
NO son el mismo número.
Cuando agrega
-2234.6016114467412141
y
-4939600281397002.2812
juntos, la salida correcta solo tendrá 20 dígitos de precisión, porque los 12 dígitos adicionales en el número más pequeño no tienen sentido dado que los 12 dígitos de tamaño similar en el número más grande son desconocidos . Puede implicar que son cero, pero si ese es el caso, debe declararlos explícitamente como tales y utilizar un sistema de numeración que pueda manejarlo: la computadora no es buena para comprender las intenciones implícitas.
En cuanto a detectar cuándo vas a tener este problema, todo lo que tienes que hacer es averiguar si tienen el mismo exponente (suponiendo una mantisa normalizada +/- 1 o un equivalente binario similar). Si no están normalizados, entonces deberá normalizarlos para comparar, o utilizar una comparación un poco más compleja con el exponente.
Precisión y exactitud no son lo mismo ...
-Adam