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

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

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

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


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

11 जून 2008 को, इसे आईईईई संशोधन समिति (रेवकॉम) द्वारा सर्वसम्मति से अनुमोदित किया गया था और इसे औपचारिक रूप से 12 जून 2008 को आईईईई -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% अप्रूवल प्राप्त हुआ था और इस प्रकार  एक तीसरा ड्राफ्ट दूसरे 15-दिवसीय,   रीसर्कुलेशन  बैलट के लिए तैयार किया गया था, जो अप्रैल 2007 के मध्य में शुरू हुआ था। एक प्रोद्योगिकीय कारण से अक्टूबर में चौथे बैलट के साथ बैलट प्रक्रिया फिर से शुरू की गई थी 2007 में 650 मतदाताओं की टिप्पणियों और प्रायोजक (आईईईई एमएससी) के अनुरोधों के परिणामस्वरूप ड्राफ्ट में पर्याप्त बदलाव हुए है; यह बैलट आवश्यक 75% अप्रूवल तक पहुंचने में विफल रहा था और इस प्रकार 5वें बैलट में 91.0% अप्रूवल के साथ 98.0% प्रतिक्रिया दर आवश्यक थी और इस प्रकार टिप्पणियों के कारण अपेक्षाकृत छोटे परिवर्तन किये गए थे। इस प्रकार 6वें, 7वें और 8वें मतपत्रों की अप्रूवल रेटिंग 90% से अधिक बनी रही और प्रत्येक ड्राफ्ट पर उत्तरोत्तर कम टिप्पणियाँ हुईं थी; इस प्रकार 8वीं मतपत्र में कोई इन-स्कोप टिप्पणियाँ नहीं थीं और 9 पिछली टिप्पणियों की पुनरावृत्ति हुई थीं और एक ड्राफ्ट में उपस्थित सामग्री से संबंधित नहीं थी और इस प्रकार आईईईई मानक के रूप में अप्रूवल के लिए आईईईई मानक संशोधन समिति ('रेवकॉम') को प्रस्तुत किया गया था।

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

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

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

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

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

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

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

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


 * 1) सैद्धांतिक वास्तविक संख्याएँ एक विस्तारित संख्या रेखा हैं
 * 2) इकाइयाँ जिन्हें 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 वापस आ जाता है। मानक के प्रकाशन के बाद, यह देखा गया कि ये नियम इन कार्यों को गैर-सहयोगी बनाते हैं; इस कारण से, उन्हें आईईईई 754-2019 में नवीन ऑपरेशन द्वारा प्रतिस्थापित कर दिया गया है।

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

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

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

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

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

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

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

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

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

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

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

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


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


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


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


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


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


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

बाहरी संबंध

 * Committee working page: आईईईई 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