Attualmente sto leggendo "La fine dell'errore - Unum Computing" di John Gustafson ( Youtube ). Quello di cui non sono ancora sicuro è come i casi gestiti in IEEE da zero firmati negativamente vengano gestiti con gli unum.
Quindi, prima di tutto, gli unum permettono di rappresentare certi valori esatti (analogamente ai punti fluttuanti) e inoltre permettono di rappresentare gli intervalli aperti che si trovano tra i valori esatti (compresi i valori esatti -∞ e ∞). Quindi il completo la vera linea numerica è rappresentata dall'alternanza di valori precisi e intervalli aperti:
-∞, (-∞,-maxreal), -maxreal, ... -smallsubnormal, (-smallsubnormal,0),
0,
(0,smallsubnormal), smallsubnormal, ... maxreal, (maxreal,∞), ∞
In questo modo la (nella tradizione IEEE) valori eccezionali come underflow e overflow sono solo alcuni intervalli aperti. In altre parole: queste condizioni precedentemente speciali si trasformano in casi normali.
IEEE -∞ corrisponde all'unione di {-∞} e (-∞, -maxreal).
E lo zero firmato ora potrebbe essere gli intervalli (-smallsubnormal, 0) e (0, smallsubnormal).
Tuttavia, 1 / (- smallsubnormal, 0) è ora (-∞, -maxreal) e non -∞ da solo. Mentre 1/0 è ∞.
Quello che sto ancora esitando su questo è che in IEEE -0 e +0 sono uguali. Ma non lo fanno negli unum. Sembra che la mappatura non sia al 100%. Quindi mi chiedo se ci sono delle cornerstute in cui la differenza può mostrare ((e se questi casi sono davvero rilevanti)).
(Sono a conoscenza di Perché lo zero negativo è importante? , Utilizza per il valore in virgola mobile negativo )