आईईईई 754-2008 संशोधन

IEEE 754-2008 (जिसे पहले IEEE 754r के नाम से जाना जाता था) अगस्त 2008 में प्रकाशित हुआ था और यह IEEE 754-1985 फ़्लोटिंग-पॉइंट अंकगणित|फ़्लोटिंग-पॉइंट मानक का एक महत्वपूर्ण संशोधन और प्रतिस्थापित करता है, जबकि 2019 में यह था एक मामूली संशोधन IEEE 754-2019 के साथ अद्यतन किया गया। 2008 के संशोधन ने पिछले मानक को बढ़ाया जहां यह आवश्यक था, दशमलव अंकगणित और प्रारूप जोड़े, मूल मानक के कुछ क्षेत्रों को कड़ा कर दिया जो अपरिभाषित रह गए थे, और आईईईई 854 (रेडिक्स-स्वतंत्र फ़्लोटिंग-पॉइंट मानक) में विलय कर दिया गया।

कुछ मामलों में, जहां बाइनरी फ़्लोटिंग-पॉइंट अंकगणित की कठोर परिभाषाएँ कुछ मौजूदा कार्यान्वयन के साथ प्रदर्शन-असंगत हो सकती हैं, उन्हें वैकल्पिक बना दिया गया था।

पुनरीक्षण प्रक्रिया
दिसंबर 2006 की लक्ष्य पूर्णता तिथि के साथ, मानक 2000 से संशोधन के अधीन था। आईईईई मानक का संशोधन मोटे तौर पर तीन चरणों का पालन करता है:


 * 1) कार्य समूह - एक समिति जो एक मसौदा मानक बनाती है
 * 2) मतपत्र - इच्छुक पार्टियाँ मतपत्र समूह की सदस्यता लेती हैं और मसौदे पर मतदान करती हैं (समूह के 75% को भाग लेना होगा, और मसौदे को आगे बढ़ाने के लिए 75% को अनुमोदन करना होगा); वोटों की टिप्पणियों का समाधान मतपत्र समाधान समिति (बीआरसी) द्वारा किया जाता है और यदि वे ठोस हैं तो किए गए परिवर्तनों को नए मतपत्र के साथ दोबारा प्रसारित करना पड़ता है।
 * 3) जब सभी टिप्पणियाँ हल हो जाती हैं और कोई और बदलाव नहीं होता है, तो मसौदा समीक्षा, अनुमोदन और प्रकाशन के लिए आईईईई को प्रस्तुत किया जाता है (इसके परिणामस्वरूप परिवर्तन और मतपत्र भी हो सकते हैं, हालांकि यह दुर्लभ है)।

11 जून 2008 को, इसे IEEE संशोधन समिति (RevCom) द्वारा सर्वसम्मति से अनुमोदित किया गया था, और इसे औपचारिक रूप से 12 जून 2008 को IEEE-SA मानक बोर्ड द्वारा अनुमोदित किया गया था। इसे 29 अगस्त 2008 को प्रकाशित किया गया था।

754r कार्य समूह चरण
फ्लोटिंग-पॉइंट अंकगणित का ठोस ज्ञान रखने वाले लोगों के लिए मानक का मसौदा तैयार करने में भागीदारी खुली थी। सिलिकॉन वैली में आयोजित मासिक बैठकों में से कम से कम एक में 90 से अधिक लोगों ने भाग लिया, और कई लोगों ने मेलिंग सूची के माध्यम से भाग लिया।

कई बार प्रगति धीमी रही, जिसके कारण अध्यक्ष को 15 सितंबर 2005 की बैठक में घोषणा करनी पड़ी चूँकि कोई प्रगति नहीं हो रही है, मैं इन आधारों पर अगली सूचना तक इन बैठकों को निलंबित कर रहा हूँ। दिसंबर 2005 में, समिति को दिसंबर 2006 की लक्ष्य पूर्णता तिथि के साथ नए नियमों के तहत पुनर्गठित किया गया।

फरवरी 2006 में नई नीतियों और प्रक्रियाओं को अपनाया गया। सितंबर 2006 में, एक कामकाजी मसौदे को संपादन के लिए मूल प्रायोजक समिति (आईईईई माइक्रोप्रोसेसर मानक समिति, या एमएससी) को भेजने और प्रायोजक मतपत्र को भेजने के लिए मंजूरी दे दी गई थी।

754r मतपत्र चरण
ड्राफ्ट का अंतिम संस्करण, संस्करण 1.2.5, 4 अक्टूबर 2006 को एमएससी को प्रस्तुत किया गया था। एमएससी ने 9 अक्टूबर 2006 को मसौदे को स्वीकार कर लिया। मतदान प्रक्रिया के दौरान मसौदे को विस्तार से महत्वपूर्ण रूप से बदल दिया गया है।

पहला प्रायोजक मतदान 29 नवंबर 2006 से 28 दिसंबर 2006 तक हुआ। मतदान निकाय के 84 सदस्यों में से 85.7% ने प्रतिक्रिया दी - 78.6% ने अनुमोदन के लिए मतदान किया। नकारात्मक वोट थे (और 400 से अधिक टिप्पणियाँ) इसलिए मार्च 2007 में पुनःपरिसंचरण मतपत्र हुआ; इसे 84% अनुमोदन प्राप्त हुआ। उस मतपत्र से पर्याप्त टिप्पणियाँ (130 से अधिक) थीं कि एक तीसरा मसौदा दूसरे, 15-दिवसीय, पुनःपरिसंचरण मतपत्र के लिए तैयार किया गया था जो अप्रैल 2007 के मध्य में शुरू हुआ था। एक तकनीकी कारण से, अक्टूबर में चौथे मतपत्र के साथ मतपत्र प्रक्रिया फिर से शुरू की गई थी 2007; 650 मतदाताओं की टिप्पणियों और प्रायोजक (आईईईई एमएससी) के अनुरोधों के परिणामस्वरूप मसौदे में भी पर्याप्त बदलाव हुए; यह मतपत्र आवश्यक 75% अनुमोदन तक पहुंचने में विफल रहा। 5वें मतपत्र में 91.0% अनुमोदन के साथ 98.0% प्रतिक्रिया दर थी, टिप्पणियों के कारण अपेक्षाकृत छोटे परिवर्तन हुए। 6वें, 7वें और 8वें मतपत्रों की अनुमोदन रेटिंग 90% से अधिक बनी रही और प्रत्येक मसौदे पर उत्तरोत्तर कम टिप्पणियाँ हुईं; 8वीं (जिसमें कोई इन-स्कोप टिप्पणियाँ नहीं थीं: 9 पिछली टिप्पणियों की पुनरावृत्ति थीं और एक मसौदे में मौजूद सामग्री से संबंधित नहीं थी) को आईईईई मानक के रूप में अनुमोदन के लिए आईईईई मानक संशोधन समिति ('रेवकॉम') को प्रस्तुत किया गया था।

754r समीक्षा और अनुमोदन चरण
IEEE मानक संशोधन समिति (RevCom) ने अपनी जून 2008 की बैठक में IEEE 754r ड्राफ्ट पर विचार किया और सर्वसम्मति से मंजूरी दे दी, और इसे 12 जून 2008 को IEEE-SA मानक बोर्ड द्वारा अनुमोदित किया गया। अंतिम संपादन पूरा हो गया है और दस्तावेज़ को अब भेज दिया गया है प्रकाशन हेतु आईईईई मानक प्रकाशन विभाग।

आईईईई कक्षा 754-2008 प्रकाशन
नया आईईईई 754 (औपचारिक रूप से आईईईई कक्षा 754-2008, फ्लोटिंग-पॉइंट अंकगणित के लिए आईईईई मानक) आईईईई कंप्यूटर सोसायटी द्वारा 29 अगस्त 2008 को प्रकाशित किया गया था, और आईईईई एक्सप्लोर वेबसाइट पर उपलब्ध है।

यह मानक IEEE 754-1985 का स्थान लेता है। आईईईई 854, रेडिक्स-इंडिपेंडेंट फ़्लोटिंग-पॉइंट मानक दिसंबर 2008 में वापस ले लिया गया था।

संशोधनों का सारांश
मानक में सबसे स्पष्ट संवर्द्धन 16-बिट और 128-बिट बाइनरी प्रकार और तीन दशमलव प्रकार, कुछ नए संचालन और कई अनुशंसित कार्यों को जोड़ना है। हालाँकि, शब्दावली में महत्वपूर्ण स्पष्टीकरण हुए हैं। यह सारांश मानक के प्रत्येक प्रमुख खंड में मुख्य अंतर पर प्रकाश डालता है।

खंड 1: अवलोकन
दशमलव प्रारूप और अंकगणित को शामिल करने के लिए दायरा (मानक के प्रायोजक द्वारा निर्धारित) को विस्तृत किया गया है, और विस्तार योग्य प्रारूप जोड़े गए हैं।

खंड 2: परिभाषाएँ
स्पष्टीकरण और निरंतरता के लिए कई परिभाषाएँ फिर से लिखी गई हैं। स्पष्टता के लिए कुछ शब्दों का नाम बदल दिया गया है (उदाहरण के लिए, असामान्य संख्या का नाम बदलकर उपसामान्य कर दिया गया है)।

खंड 3: प्रारूप
अंकगणितीय प्रारूप (जिसमें अंकगणित किया जा सकता है) और इंटरचेंज प्रारूप (जिसमें एक मानक एन्कोडिंग है) के बीच अंतर के साथ, प्रारूपों का विवरण अधिक नियमित बना दिया गया है। मानक के अनुरूपता को अब इन शर्तों में परिभाषित किया गया है।

इनके बीच के अंतर को स्पष्ट करने के लिए फ़्लोटिंग-पॉइंट प्रारूप के विनिर्देश स्तरों की गणना की गई है:


 * 1) सैद्धांतिक वास्तविक संख्याएँ (एक विस्तारित संख्या रेखा)
 * 2) इकाइयां जिन्हें प्रारूप में दर्शाया जा सकता है (संख्याओं का एक सीमित सेट, −0 (संख्या)|−0, अनंत और NaN के साथ)
 * 3) संस्थाओं का विशेष प्रतिनिधित्व: संकेत-प्रतिपादक-महत्व, आदि।
 * 4) उपयोग किया गया बिट-पैटर्न (एन्कोडिंग)।

फिर प्रतिनिधित्व योग्य संस्थाओं के सेट को विस्तार से समझाया गया है, यह दिखाते हुए कि उन्हें महत्व के साथ माना जा सकता है और उन्हें अंश या पूर्णांक के रूप में माना जा सकता है। बुनियादी प्रारूपों के रूप में जाने जाने वाले विशेष सेटों को परिभाषित किया गया है, और बाइनरी और दशमलव प्रारूपों के आदान-प्रदान के लिए उपयोग किए जाने वाले एन्कोडिंग को समझाया गया है।

बाइनरी इंटरचेंज प्रारूपों में कुछ व्यापक प्रारूपों के लिए सामान्यीकृत सूत्रों के साथ, आधा परिशुद्धता (16-बिट भंडारण प्रारूप) और क्वाड परिशुद्धता (128-बिट प्रारूप) जोड़ा गया है; मूल स्वरूपों में 32-बिट, 64-बिट और 128-बिट एन्कोडिंग हैं।

32-128-बिट बाइनरी प्रारूपों की लंबाई से मेल खाते हुए तीन नए दशमलव प्रारूपों का वर्णन किया गया है। ये 7, 16 और 34 अंकों के महत्व के साथ दशमलव इंटरचेंज प्रारूप देते हैं, जो सामान्यीकृत या असामान्यीकृत हो सकते हैं। अधिकतम सीमा और परिशुद्धता के लिए, प्रारूप घातांक और महत्व के हिस्से को एक संयोजन क्षेत्र में विलय कर देते हैं, और महत्व के शेष भाग को या तो दशमलव पूर्णांक एन्कोडिंग (जो सघन रूप से पैक दशमलव या डीपीडी का उपयोग करता है, बाइनरी-कोडित दशमलव एक संपीड़ित रूप) का उपयोग करके संपीड़ित करता है। दशमलव) एन्कोडिंग या पारंपरिक बाइनरी अंक प्रणाली पूर्णांक एन्कोडिंग। मूल प्रारूप दो बड़े आकार हैं, जिनमें 64-बिट और 128-बिट एन्कोडिंग हैं। कुछ अन्य इंटरचेंज प्रारूपों के लिए सामान्यीकृत सूत्र भी निर्दिष्ट हैं।

विस्तारित और विस्तार योग्य प्रारूप अन्य सटीकता और सीमाओं पर अंकगणित की अनुमति देते हैं।

खंड 4: गुण और पूर्णांक
फ़्लोटिंग-पॉइंट ऑपरेशंस को नियंत्रित करने के लिए स्थैतिक विशेषताओं के उपयोग को प्रोत्साहित करने के लिए इस खंड को बदल दिया गया है, और (आवश्यक राउंडिंग विशेषताओं के अतिरिक्त) वैकल्पिक अपवाद हैंडलिंग, मध्यवर्ती परिणामों का विस्तार, मूल्य-परिवर्तन अनुकूलन और प्रतिलिपि प्रस्तुत करने योग्यता की अनुमति देता है।

राउंड-टू-नियरेस्ट, शून्य राउंडिंग विशेषता से दूर संबंध जोड़ा गया है (केवल दशमलव संचालन के लिए आवश्यक)।

खंड 5: संचालन
इस अनुभाग में कई स्पष्टीकरण हैं (विशेष रूप से तुलना के क्षेत्र में), और पहले से अनुशंसित कई संचालन (जैसे कॉपी, नेगेट, एब्स और क्लास) की अब आवश्यकता है।

नए परिचालनों में फ़्यूज्ड मल्टीप्ली-ऐड (एफएमए), स्पष्ट रूपांतरण, वर्गीकरण विधेय (isNan(x), आदि), विभिन्न न्यूनतम और अधिकतम फ़ंक्शन, कुल ऑर्डरिंग विधेय, और दो दशमलव-विशिष्ट संचालन (समानक्वांटम और क्वांटाइज़) शामिल हैं।

न्यूनतम और अधिकतम
न्यूनतम और अधिकतम संचालन को परिभाषित किया गया है लेकिन उस मामले के लिए कुछ छूट छोड़ दी गई है जहां इनपुट मूल्य में बराबर हैं लेकिन प्रतिनिधित्व में भिन्न हैं। विशेष रूप से:


 * या  शून्य के मान के साथ कुछ उत्पन्न करना चाहिए लेकिन हमेशा पहला तर्क लौटा सकता है।

विंडोिंग जैसे संचालन का समर्थन करने के लिए जिसमें एक NaN इनपुट को अंतिम बिंदुओं में से एक के साथ चुपचाप प्रतिस्थापित किया जाना चाहिए, एक शांत NaN की प्राथमिकता में एक संख्या, x का चयन करने के लिए न्यूनतम और अधिकतम को परिभाषित किया गया है:

शांत NaN पर किसी संख्या के लिए उनकी प्राथमिकता को इंगित करने के लिए इन कार्यों को minNum और maxNum कहा जाता है। हालाँकि, सिग्नलिंग NaN इनपुट की उपस्थिति में, सामान्य ऑपरेशन की तरह एक शांत NaN वापस आ जाता है। मानक के प्रकाशन के बाद, यह देखा गया कि ये नियम इन कार्यों को गैर-सहयोगी बनाते हैं; इस कारण से, उन्हें IEEE 754-2019 में नए ऑपरेशन द्वारा प्रतिस्थापित कर दिया गया है।

दशमलव अंकगणित
दशमलव अंकगणित, जो जावा (प्रोग्रामिंग भाषा), सी शार्प (प्रोग्रामिंग भाषा)|सी#, पीएल/आई, कोबोल, पायथन (प्रोग्रामिंग भाषा), आरईएक्सएक्स इत्यादि में उपयोग किए जाने वाले संगत है, को भी इस खंड में परिभाषित किया गया है। सामान्य तौर पर, दशमलव अंकगणित बाइनरी अंकगणित के समान नियमों का पालन करता है (परिणाम सही ढंग से गोल होते हैं, और इसी तरह), अतिरिक्त नियमों के साथ जो परिणाम के घातांक को परिभाषित करते हैं (कई मामलों में एक से अधिक संभव है)।

सही ढंग से पूर्णांकित आधार रूपांतरण
854 के विपरीत, 754-2008 को एक सीमा के भीतर दशमलव और बाइनरी फ्लोटिंग पॉइंट के बीच सही ढंग से गोल आधार रूपांतरण की आवश्यकता होती है जो प्रारूप पर निर्भर करता है।

खंड 6: अनंत, NaNs, और साइन बिट
इस खंड को संशोधित और स्पष्ट किया गया है, लेकिन कोई बड़ा परिवर्धन नहीं किया गया है। विशेष रूप से, यह सिग्नलिंग/शांत NaN स्थिति की एन्कोडिंग के लिए औपचारिक सिफारिशें करता है।

खंड 7: डिफ़ॉल्ट अपवाद प्रबंधन
इस खंड को संशोधित और काफी हद तक स्पष्ट किया गया है, लेकिन कोई बड़ा परिवर्धन नहीं किया गया है।

खंड 8: वैकल्पिक अपवाद प्रबंधन
ट्रैप्स और ट्राई/कैच जैसे अन्य मॉडलों सहित विभिन्न रूपों में वैकल्पिक अपवाद प्रबंधन की अनुमति देने के लिए इस क्लॉज को पिछले क्लॉज 8 ('ट्रैप्स') से बढ़ा दिया गया है। ट्रैप और अन्य अपवाद तंत्र वैकल्पिक बने हुए हैं, जैसे वे IEEE 754-1985 में थे।

खंड 9: अनुशंसित संचालन
यह खंड नया है; यह लॉग, पावर और त्रिकोणमितीय कार्यों सहित पचास संचालन की सिफारिश करता है, जिन्हें भाषा मानकों को परिभाषित करना चाहिए। ये सभी वैकल्पिक हैं (मानक के अनुरूप होने के लिए किसी की भी आवश्यकता नहीं है)। संचालन में विशेषताओं के लिए कुछ गतिशील मोड और कटौती संचालन (योग, स्केल किए गए उत्पाद, आदि) का एक सेट भी शामिल है।

खंड 10: अभिव्यक्ति मूल्यांकन
यह खंड नया है; यह अनुशंसा करता है कि भाषा मानकों को संचालन के अनुक्रमों के शब्दार्थ को कैसे निर्दिष्ट करना चाहिए, और शाब्दिक अर्थों और अनुकूलन की सूक्ष्मताओं को इंगित करता है जो परिणाम के मूल्य को बदलते हैं।

खंड 11: प्रतिलिपि प्रस्तुत करने योग्यता
यह खंड नया है; यह अनुशंसा करता है कि भाषा मानकों को प्रतिलिपि प्रस्तुत करने योग्य प्रोग्राम लिखने का साधन प्रदान करना चाहिए (यानी, प्रोग्राम जो किसी भाषा के सभी कार्यान्वयन में समान परिणाम देंगे), और वर्णन करता है कि प्रतिलिपि प्रस्तुत करने योग्य परिणाम प्राप्त करने के लिए क्या करने की आवश्यकता है।

अनुबंध ए: ग्रंथ सूची
यह अनुबंध नया है; इसमें कुछ उपयोगी सन्दर्भ सूचीबद्ध हैं।

अनुबंध बी: प्रोग्राम डिबगिंग समर्थन
यह अनुबंध नया है; यह डिबगर डेवलपर्स को उन सुविधाओं के लिए मार्गदर्शन प्रदान करता है जो फ़्लोटिंग-पॉइंट कोड की डिबगिंग का समर्थन करने के लिए वांछित हैं।

संचालन का सूचकांक
यह एक नया सूचकांक है, जो मानक (आवश्यक या वैकल्पिक) में वर्णित सभी कार्यों को सूचीबद्ध करता है।

चर्चा हुई लेकिन शामिल नहीं
सीपीयू डिजाइन और विकास में बदलाव के कारण, 2008 आईईईई फ्लोटिंग-पॉइंट मानक को 1985 के मानक के रूप में ऐतिहासिक या पुराना माना जा सकता है, जिसे इसके द्वारा प्रतिस्थापित किया गया था। मानकीकरण प्रक्रिया में कई बाहरी चर्चाएँ और आइटम शामिल नहीं थे, नीचे दिए गए आइटम वे हैं जो सार्वजनिक ज्ञान बन गए:


 * अनुलग्नक एल ने भाषा डेवलपर्स को सिफारिश की है कि किसी भाषा में मानक में मौजूद वस्तुओं को सुविधाओं से कैसे जोड़ा जाए।
 * अनुबंध यू ने संख्यात्मक अंडरफ्लो परिभाषाओं के चयन पर मार्गदर्शन प्रदान किया।


 * 754 में अंडरफ़्लो की परिभाषा यह थी कि परिणाम छोटा है और सटीकता की हानि का सामना करता है।


 * 'छोटी' स्थिति के निर्धारण के लिए दो परिभाषाओं की अनुमति दी गई थी: असीमित घातांक के साथ, कार्य परिशुद्धता के लिए असीम रूप से सटीक परिणाम को पूर्ण करने से पहले या बाद में।


 * सटीकता की हानि की दो परिभाषाओं की अनुमति दी गई: सटीक परिणाम या केवल अपसामान्यीकरण के कारण हानि। किसी भी ज्ञात हार्डवेयर सिस्टम ने बाद वाले को लागू नहीं किया और इसे एक विकल्प के रूप में संशोधित मानक से हटा दिया गया है।


 * 754आर के अनुलग्नक यू ने सिफारिश की कि गोलाई के बाद केवल छोटापन और सटीकता की हानि ही अंडरफ्लो सिग्नल का कारण हो सकती है।


 * अनुबंध Z ने अन्य निश्चित-चौड़ाई वाले फ़्लोटिंग-पॉइंट प्रारूपों के साथ-साथ मनमाने ढंग से-सटीक प्रारूपों (यानी, जहां प्रतिनिधित्व और गोलाई की सटीकता निष्पादन समय पर निर्धारित की जाती है) का समर्थन करने के लिए वैकल्पिक डेटा प्रकार पेश किए - इस सामग्री में से कुछ को इसमें स्थानांतरित कर दिया गया था धारा 5 को सामान्यीकृत करके मसौदे का मुख्य भाग। मनमानी परिशुद्धता को हटा दिया गया।
 * मोड्स का वंशानुक्रम और प्रसार (अपवाद हैंडलिंग, प्रीसब्स्टीट्यूशन, राउंडिंग) और झंडे (असटीक, अंडरफ्लो, ओवरफ्लो, शून्य से विभाजित, अमान्य)। इच्छा यह है कि झंडे को कॉल करने वाले तक पहुंचाया जाए; और मोड परिवर्तन कॉल प्राप्तकर्ता को विरासत में मिल सकते हैं, लेकिन कॉल करने वाले को प्रभावित नहीं करते हैं।
 * अंतराल और अन्य अंकगणित पर चर्चा की गई लेकिन इसे दायरे से बाहर (और अपने आप में एक बड़ा काम) के रूप में शामिल नहीं किया गया। अंतराल अंकगणित के लिए प्रस्तावित IEEE मानक पर 2008 में काम शुरू हो रहा है।

बाहरी संबंध

 * Committee working page: IEEE 754: Standard for Binary Floating-Point Arithmetic
 * Densely Packed Decimal
 * William Kahan's paper on How Futile are Mindless Assessments of Roundoff in Floating-Point Computation
 * ISO Language Independent Arithmetic Standard
 * - XDR: External Data Representation RFC