Obecnie czytam „Koniec błędu - Unum Computing” Johna Gustafsona ( Youtube ). Nadal nie jestem pewien, w jaki sposób sprawy obsługiwane w IEEE przez ujemnie podpisane zero są obsługiwane przez unumy.
Po pierwsze, unum pozwala na reprezentowanie pewnych dokładnych wartości (podobnie jak zmiennoprzecinkowe) i dodatkowo pozwala na reprezentowanie otwartych przedziałów, które leżą między dokładnymi wartościami (w tym dokładnymi -∞ i ∞). Tak więc cała rzeczywista linia liczb jest reprezentowana przez naprzemienne precyzyjne wartości i otwarte interwały:
-∞, (-∞, -maxreal), -maxreal, ... -smallsubnormal, (-smallsubnormal, 0),
0,
(0, smallsubnormal), smallsubnormal, ... maxreal, (maxreal, ∞), ∞
W ten sposób wyjątkowe wartości (w tradycji IEEE), takie jak niedopełnienie i przepełnienie, to tylko niektóre otwarte przedziały. Innymi słowy: te wcześniej specjalne warunki zmieniają się teraz w zwykłe przypadki.
IEEE -∞ odpowiada unii {-∞} i (-∞, -maxreal).
A teraz zero może oznaczać przedziały (-smallsubnormal, 0) i (0, smallsubnormal).
Jednak 1 / (- smallsubnormal, 0) jest teraz (-∞, -maxreal), a nie -∞ sam. Podczas gdy 1/0 to ∞.
Nadal waham się w tym, że w IEEE -0 i +0 porównania są równe. Ale nie łączą się. Wygląda na to, że mapowanie nie jest w 100%. Zastanawiam się więc, czy istnieją przypadki narożników, w których różnica może się pokazywać ((i czy te przypadki są naprawdę istotne)).
(Jestem świadomy dlaczego negatywny zerowy ważny? , Zastosowania do ujemnej wartości zmiennoprzecinkowej )
guess
) sugeruje, że można mniej więcej (i na początek) przetłumaczyć rzeczy dosłownie. Jestem w pełni świadomy, że dosłowne tłumaczenie nie w pełni wykorzystuje unum.