Làm thế nào unums có thể mô phỏng số 0 âm của IEEE?


9

Tôi hiện đang đọc "Sự kết thúc của lỗi - Máy tính Unum" của John Gustafson ( Youtube ). Điều tôi vẫn chưa chắc chắn là làm thế nào các trường hợp được xử lý trong IEEE bằng chữ ký số 0 được xử lý bằng unums.

Vì vậy, trước hết, unums cho phép biểu diễn các giá trị chính xác nhất định (tương tự như các dấu phẩy động) và thêm vào đó cho phép biểu diễn các khoảng mở nằm giữa các giá trị chính xác (bao gồm chính xác -∞ và). Vì vậy, dòng số thực hoàn chỉnh được thể hiện bằng cách xen kẽ các giá trị chính xác và các khoảng mở:

-∞, (-∞, -maxreal), -maxreal, ... -smallsubn normal, (-smallsubn normal, 0),

0,

(0, smallsubn normal), smallsubn normal, ... maxreal, (maxreal, ∞),

Theo cách này, các giá trị đặc biệt (theo truyền thống của IEEE) như tràn và tràn chỉ là một số khoảng mở. Nói cách khác: những điều kiện trước đây đặc biệt bây giờ biến thành trường hợp thông thường.

IEEE -∞ tương ứng với sự kết hợp của {-∞} và (-∞, -maxreal).

Và ký số 0 bây giờ có thể là các khoảng (-smallsubn normal, 0) và (0, smallsubn normal).

Tuy nhiên, 1 / (- smallsubn normal, 0) bây giờ (-∞, -maxreal) và không-một mình. Trong đó 1/0 là ∞.

Điều tôi vẫn còn do dự về điều này là trong so sánh IEEE -0 và +0 bằng nhau. Nhưng họ không ở trong unums. Có vẻ như ánh xạ không phải là 100%. Vì vậy, tôi tự hỏi nếu có cornercase nơi sự khác biệt có thể hiển thị ((và nếu những trường hợp đó thực sự có liên quan)).

(Tôi biết Tại sao là tiêu cực không quan trọng? , Sử dụng cho phủ định giá trị dấu chấm động )


1
Tại sao bạn nghĩ rằng ánh xạ cần phải là 1 trên 1? Những lý do được nêu trong các câu hỏi mà bạn liên kết là không có vấn đề với unums, vậy tại sao lại tạo số 0 âm?
Ngày

@Ordous: Bởi vì (Rev8.1, tr.257) "Unums là một superset của float. mà tất cả (bao gồm guess) gợi ý rằng người ta có thể ít nhiều (và như một sự khởi đầu) dịch mọi thứ theo nghĩa đen. Tôi hoàn toàn nhận thức được rằng một bản dịch theo nghĩa đen không tận dụng hết lợi thế của unums.
sai

5
Thật khó để tranh luận về một trích dẫn mà không có cuốn sách trong tay. Tuy nhiên, các slide của anh ấy trong bài thuyết trình của IEEE đã nêu lên như một lợi thế của điện toán unum: "Không cần tràn vào". Do đó: không cần số 0 âm, vì nó chính xác là dòng chảy. Có lẽ bạn có thể mở rộng hệ thống này để bao gồm số 0 âm, nhưng không có lý do gì để làm như vậy. Thành thật âm 0 trong IEEE không phù hợp với toán học .
Ngày

@Ordous: Dòng chảy được xử lý bởi khoảng thời gian mở (-smallsubn normal, 0) và đối tác tích cực của nó. Vì vậy, đây là những thứ gần nhất với -0 và +0. Nhưng khoảng thời gian này thực sự có thể hành động như thể?
sai

8
Underflow không được "xử lý" ở đây, nó chỉ không tồn tại . Tiêu cực 0 là một vấn đề trong IEEE và tiêu chuẩn này đang cố gắng khắc phục nó cùng với những thứ khác. Bạn không thể và không nên đánh đồng -0 và +0, nhưng vì trong IEEE, chênh lệch của chúng là 0, chúng phải bằng nhau. Nghịch lý này không có giải pháp tốt. Trong unums họ làm có một sự khác biệt, vì thế họ không thể bằng nhau. Toàn bộ quan điểm của hệ thống là khắc phục các sự cố trong IEEE, nhưng điều đó có nghĩa là nó nhất thiết không phù hợp với nó. Đây là một trong những mâu thuẫn nói trên. Và lý do có một hệ thống tích hợp được đề xuất để sử dụng các tiêu chuẩn cũ trong cuốn sách của ông.
Thông thường

Câu trả lời:


3

Quá dài cho một nhận xét, vì vậy viết bài này như một câu trả lời ...

Vấn đề với IEEE là chúng tôi có ba trường hợp để phân biệt, nhưng chỉ có hai cách trình bày:

  • giá trị âm, giá trị tuyệt đối quá nhỏ để thể hiện - điều này được biểu thị bằng IEEE -0.0 và có thể dễ dàng ánh xạ tới (-smallsubnormal,0)
  • giá trị chính xác là null, được biểu thị bởi IEEE 0.0, được ánh xạ tới 0
  • giá trị dương quá nhỏ để đại diện; cái này cũng có đại diện của IEEE 0,0 nhưng nên được ánh xạ tới (0, +smallsubnormal).

Vấn đề bây giờ không phải là số 0 âm, mà là chúng ta không thể phân biệt được nếu một IEEE 0,0 là trường hợp thứ hai hoặc thứ ba! Nói cách khác: Hàm ánh xạ từ UNUM đến IEEE không phải là tính từ - và sẽ không bao giờ, như đối với bất kỳ giá trị nào khác của IEEE, chúng tôi không bao giờ biết đó là chính xác hay là khoảng thời gian!

Vì vậy, tôi nghĩ việc lập bản đồ -0.0 là hoàn toàn tốt (-smallsubnormal,0), và chúng ta cần quyết định xem liệu IEEE 0.0 có được ánh xạ tới 0hoặc có thể tốt hơn không (0, +smallsubnormal). Cá nhân tôi có xu hướng đầu tiên, nhưng điều đó không có thẩm quyền ...

Khi so sánh với IEEE (-0.0 bằng 0,0): Dù sao đi nữa, người ta cũng không bao giờ nên so sánh về sự bình đẳng chính xác (toán tử C hoặc C ++: ==), nhưng chỉ với giá trị tuyệt đối của chênh lệch nhỏ hơn một số ngưỡng thích hợp. Vấn đề này chỉ được loại bỏ một phần ngay cả với UNUMS, vì bây giờ chúng ta có thể so sánh về sự bình đẳng chính xác, nếu u-bit không được đặt, nhưng với nó được đặt, chúng ta vẫn không thực sự biết ...

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.