¿Cómo detectar el desbordamiento de precisión de mantisa en GMP, antes o después de que ocurra?

StackOverflow https://stackoverflow.com/questions/472652

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.

¿Fue útil?

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

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top