Actualmente estoy leyendo "The End of Error - Unum Computing" de John Gustafson ( Youtube ). De lo que todavía no estoy seguro es de cómo los casos manejados en IEEE por cero con signo negativo se manejan con unums.
Por lo tanto, en primer lugar, los unums permiten representar ciertos valores exactos (de manera similar a los puntos flotantes) y, además, permiten representar los intervalos abiertos que se encuentran entre los valores exactos (incluidos los exactos -∞ y ∞). Por lo tanto, la recta numérica real completa se representa alternando valores precisos e intervalos abiertos:
-∞, (-∞, -maxreal), -maxreal, ... -smallsubnormal, (-smallsubnormal, 0),
0,
(0, smallsubnormal), smallsubnormal, ... maxreal, (maxreal, ∞), ∞
De esta manera, los valores excepcionales (en la tradición IEEE) como subflujo y desbordamiento son solo algunos intervalos abiertos. En otras palabras: estas condiciones anteriormente especiales ahora se convierten en casos regulares.
IEEE -∞ corresponde a la unión de {-∞} y (-∞, -maxreal).
Y el cero con signo ahora podría ser los intervalos (-smallsubnormal, 0) y (0, smallsubnormal).
Sin embargo, 1 / (- smallsubnormal, 0) ahora es (-∞, -maxreal) y no -∞ solo. Mientras que 1/0 es ∞.
Lo que todavía estoy dudando sobre esto es que en IEEE -0 y +0 se comparan igual. Pero no lo hacen en unums. Parece que el mapeo no es 100%. Entonces, me pregunto si hay casos en los que la diferencia puede mostrar ((y si esos casos son realmente relevantes)).
(Estoy al tanto de qué es cero negativo importante? , Usos de valor de punto flotante negativo )
guess
) sugiere que uno puede traducir más o menos (y como comienzo) las cosas literalmente. Soy plenamente consciente de que una traducción literal no aprovecha al máximo los unums.