Unums สามารถเลียนแบบศูนย์ลบของ IEEE ได้อย่างไร


9

ฉันกำลังอ่าน "จุดจบของข้อผิดพลาด - Unum Computing" โดย John Gustafson ( Youtube ) สิ่งที่ฉันยังไม่แน่ใจเกี่ยวกับคือกรณีที่จัดการใน IEEE โดยศูนย์ลบลงนามได้รับการจัดการกับ Unums

ดังนั้นก่อนอื่น unums อนุญาตให้แสดงค่าที่แน่นอนบางอย่าง (คล้ายกับคะแนนลอย) และอนุญาตเพิ่มเติมเพื่อแสดงช่วงเวลาเปิดที่อยู่ระหว่างค่าที่แน่นอน (รวมถึงที่แน่นอน-exact และ∞) ดังนั้นจำนวนจริงทั้งหมดจะถูกแทนด้วยการสลับค่าที่แม่นยำและช่วงเวลาเปิด:

-∞, (-∞, -maxreal), -maxreal, ... -smallsubnormal, (-smallsubnormal, 0),

0,

(0, smallsubnormal), smallsubnormal, ... maxreal, (maxreal, ∞), ∞

ด้วยวิธีนี้ค่าพิเศษ (ตามธรรมเนียม IEEE) เช่นอันเดอร์โฟลว์และโอเวอร์โฟลว์เป็นเพียงช่วงเวลาเปิด ในคำอื่น ๆ : เงื่อนไขพิเศษก่อนหน้านี้ตอนนี้กลายเป็นกรณีปกติ

IEEE's -∞สอดคล้องกับสหภาพของ {-∞} และ (-∞, -maxreal)

และศูนย์ที่เซ็นชื่อตอนนี้อาจเป็นช่วงเวลา (-smallsubnormal, 0) และ (0, smallsubnormal)

อย่างไรก็ตาม 1 / (- smallsubnormal, 0) คือตอนนี้ (-∞, -maxreal) และไม่ใช่-∞เพียงอย่างเดียว โดยที่ 1/0 คือ∞

สิ่งที่ฉันยังคงลังเลเกี่ยวกับเรื่องนี้คือใน IEEE -0 และ +0 เปรียบเทียบเท่ากัน แต่พวกเขาไม่ได้อยู่ใน Unums ดูเหมือนว่าการทำแผนที่ไม่ใช่ 100% ดังนั้นฉันจึงสงสัยว่ามี cornercases ที่อาจแสดงความแตกต่าง ((และถ้ากรณีเหล่านั้นเกี่ยวข้องกันจริงๆ))

(ผมตระหนักถึงทำไมเป็นลบเป็นศูนย์สำคัญหรือไม่ , การใช้ประโยชน์เชิงลบค่าจุดลอย )


1
ทำไมคุณคิดว่าการทำแผนที่ต้องเป็นแบบ 1 ต่อ 1 เหตุผลที่ระบุไว้ในคำถามที่คุณเชื่อมโยงนั้นไม่ใช่ปัญหากับ Unums ดังนั้นทำไมต้องมีค่าเป็นศูนย์
58 สามัญ

@Ordous: เพราะ (Ch.18.1, หน้า 257) "Unums เป็นชุดซูเปอร์เซ็ตของ Floats Floats เป็นเพียง unums ที่ ubit เป็นศูนย์ ฯลฯ ฯลฯ " ซึ่งทั้งหมด (รวมถึงguess) แสดงให้เห็นว่าเราสามารถแปลสิ่งต่าง ๆ ได้อย่างแท้จริง (และเป็นจุดเริ่มต้น) ฉันรู้อย่างเต็มที่ว่าการแปลตามตัวอักษรไม่ได้ใช้ประโยชน์จาก unums อย่างเต็มที่
false

5
มันค่อนข้างยากที่จะโต้แย้งกับคำพูดโดยไม่ต้องมีหนังสือในมือ อย่างไรก็ตามสไลด์ของเขาในงานนำเสนอ IEEE ระบุว่าเป็นข้อได้เปรียบของการคำนวณแบบ Unum: "ไม่จำเป็นต้องมีอันเดอร์โฟลว์" ดังนั้น: ไม่จำเป็นต้องมีค่าศูนย์ลบ บางทีคุณอาจขยายระบบนี้เพื่อรวมศูนย์เชิงลบ แต่ไม่มีเหตุผลที่จะทำเช่นนั้น สุจริตเชิงลบ 0 ใน IEEE ไม่สอดคล้องกับคณิตศาสตร์
สามัญ

@Ordous: Underflow ถูกจัดการโดยช่วงเวลาเปิด (-smallsubnormal, 0) และคู่ที่เป็นบวก นี่คือสิ่งที่ใกล้เคียงกับ -0 และ +0 มากที่สุด แต่ช่วงเวลานี้สามารถทำหน้าที่เหมือนได้จริงหรือ
false

8
underflow ไม่ได้ "จัดการ" ที่นี่มันก็ไม่ได้อยู่ ค่าลบ 0 เป็นปัญหาใน IEEE และมาตรฐานนี้พยายามแก้ไขพร้อมกับสิ่งอื่น ๆ คุณไม่สามารถและไม่ควรเท่ากับ -0 และ +0 แต่เนื่องจากใน IEEE ความแตกต่างคือ 0 พวกเขาจะต้องเท่ากัน บุคคลที่ผิดธรรมดานี้ไม่มีทางออกที่ดี ใน unums พวกเขาทำมีความแตกต่างด้วยเหตุนี้พวกเขาไม่สามารถจะเท่ากับ จุดทั้งหมดของระบบคือการแก้ไขปัญหาใน IEEE แต่นั่นหมายความว่ามันไม่สอดคล้องกับมัน นี่คือหนึ่งในความไม่สอดคล้องกันดังกล่าว และเหตุผลที่มีระบบในตัวที่เสนอให้ใช้มาตรฐานเก่าในหนังสือของเขา
สามัญ

คำตอบ:


3

ยาวเกินไปสำหรับความคิดเห็นดังนั้นโปรดเขียนนี่เป็นคำตอบ ...

ปัญหาของ IEEE คือเรามีสามกรณีที่จะแยกความแตกต่าง แต่มีเพียงสองการรับรองสำหรับสิ่งเหล่านี้:

  • ค่าลบ, ค่าสัมบูรณ์ที่น้อยเกินไปที่จะเป็นตัวแทน - นี่เป็นตัวแทนของ IEEE -0.0 และอาจถูกแมปได้ง่าย (-smallsubnormal,0)
  • ค่า null ทั้งหมดแสดงโดย IEEE 0.0 ที่แมปไว้ 0
  • ค่าบวกน้อยเกินไปที่จะเป็นตัวแทน หนึ่งนี้มีตัวแทน IEEE 0.0 เช่นเดียว(0, +smallsubnormal)แต่ควรจะแมปไป

ปัญหาตอนนี้ไม่ใช่ศูนย์ติดลบ แต่เราไม่สามารถแยกความแตกต่างได้ถ้า IEEE 0.0 เป็นตัวพิมพ์ที่สองหรือสาม! ในคำอื่น ๆ : ฟังก์ชั่นการทำแผนที่จาก Unum มาตรฐาน IEEE คือไม่ bijective - และจะไม่เคยจะเป็นสำหรับใด ๆค่ามาตรฐาน IEEE อื่น ๆ ด้วยเราไม่เคยรู้ว่าเป็นที่แน่นอนหรือช่วงเวลาหนึ่ง!

ดังนั้นผมจึงคิดว่ามันเป็นอย่างดีเพื่อแม -0.0 ไป(-smallsubnormal,0)และเราต้องตัดสินใจว่า IEEE 0.0 ค่อนข้างที่จะแมปไปหรืออาจจะดีกว่าที่จะ0 (0, +smallsubnormal)โดยส่วนตัวแล้วฉันมักจะเป็นคนแรก แต่นั่นไม่ค่อยมีสิทธิ์ ...

สำหรับการเปรียบเทียบกับ IEEE (-0.0 เท่ากับ 0.0): หนึ่งควร (เกือบ) ไม่เคยเปรียบเทียบเพื่อความเท่าเทียมที่แน่นอนอยู่ดี (C หรือ C ++: == โอเปอเรเตอร์) แต่สำหรับค่าสัมบูรณ์ของความแตกต่างนั้นเล็กกว่าเกณฑ์ที่เหมาะสม ปัญหานี้ถูกกำจัดเพียงบางส่วนแม้กับ UNUMS เนื่องจากเราสามารถเปรียบเทียบความเท่าเทียมกันได้แน่นอนหากไม่ได้ตั้งค่าบิตไว้ แต่ด้วยการตั้งค่าเรายังไม่รู้จริงๆ ...

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.