अंकगणितीय अंतर्प्रवाह
शब्द अंकगणित अंडरफ़्लो (फ़्लोटिंग पॉइंट अंडरफ़्लो, या केवल अंडरफ़्लो) एक कंप्यूटर प्रोग्राम में एक स्थिति है जहाँ गणना का परिणाम कंप्यूटर की तुलना में अधिक सटीक निरपेक्ष मान है जो कंप्यूटर वास्तव में इसकी केंद्रीय प्रसंस्करण इकाई पर स्मृति में प्रतिनिधित्व कर सकता है ( CPU)।
अंकगणित अंडरफ़्लो तब हो सकता है जब फ़्लोटिंग-पॉइंट अंकगणित का सही परिणाम लक्ष्य डेटा प्रकार में सामान्य संख्या (कंप्यूटिंग) फ़्लोटिंग पॉइंट संख्या के रूप में प्रस्तुत किए जाने वाले सबसे छोटे मान की तुलना में परिमाण में छोटा होता है (अर्थात शून्य के करीब)।[1] अंडरफ्लो को फ़्लोटिंग पॉइंट वैल्यू के एक्सपोनेंट के नकारात्मक अंकगणितीय अतिप्रवाह के रूप में माना जा सकता है। उदाहरण के लिए, यदि प्रतिपादक भाग -128 से 127 तक के मानों का प्रतिनिधित्व कर सकता है, तो -128 से कम मान वाले परिणाम के कारण अंतर्प्रवाह हो सकता है।
एक पूर्णांक (कंप्यूटर विज्ञान) चर में बहुत कम मानों को संग्रहीत करना (उदाहरण के लिए, -1 को एक हस्ताक्षर पूर्णांक में संग्रहीत करने का प्रयास) को ठीक से पूर्णांक अतिप्रवाह के रूप में संदर्भित किया जाता है। पूर्णांक overflow, या अधिक मोटे तौर पर, पूर्णांक रैपराउंड। अंडरफ्लो शब्द सामान्य रूप से फ्लोटिंग पॉइंट नंबरों को संदर्भित करता है, जो एक अलग मुद्दा है। अधिकांश फ़्लोटिंग-पॉइंट डिज़ाइनों में बहुत कम मान संग्रहीत करना संभव नहीं है, क्योंकि आमतौर पर वे हस्ताक्षरित होते हैं और उनका नकारात्मक अनंत मान होता है।
अंडरफ्लो गैप
-fminN और fminN के बीच का अंतराल, जहां fminN सबसे छोटा सकारात्मक सामान्य फ़्लोटिंग पॉइंट मान है, को अंडरफ़्लो गैप कहा जाता है। ऐसा इसलिए है क्योंकि इस अंतराल का आकार अंतराल के ठीक बाहर आसन्न सामान्य फ़्लोटिंग पॉइंट मानों के बीच की दूरी से अधिक परिमाण के कई आदेश हैं। उदाहरण के लिए, यदि फ़्लोटिंग पॉइंट डेटाटाइप 20 अंश ्स का प्रतिनिधित्व कर सकता है, तो अंडरफ़्लो गैप 2 हैगैप के ठीक बाहर सन्निकट फ़्लोटिंग पॉइंट मानों के बीच की निरपेक्ष दूरी से 21 गुना बड़ा।[2] पुराने डिजाइनों में, अंडरफ्लो गैप का केवल एक प्रयोग करने योग्य मूल्य था, शून्य। जब एक अंडरफ़्लो हुआ, तो सही परिणाम को शून्य से बदल दिया गया (या तो सीधे हार्डवेयर द्वारा, या सिस्टम सॉफ़्टवेयर द्वारा प्राथमिक अंडरफ़्लो स्थिति को संभालने के द्वारा)। इस प्रतिस्थापन को फ्लश टू जीरो कहा जाता है।
IEEE 754 के 1984 के संस्करण में असामान्य संख्याएं पेश की गईं। सबनॉर्मल नंबर (शून्य सहित) अंडरफ़्लो गैप को उन मानों से भरते हैं जहाँ आसन्न मानों के बीच की पूर्ण दूरी अंडरफ़्लो गैप के ठीक बाहर आसन्न मानों के समान होती है। यह धीरे-धीरे अंडरफ़्लो को सक्षम करता है, जहां निकटतम असामान्य मान का उपयोग किया जाता है, जैसे संभव होने पर निकटतम सामान्य मान का उपयोग किया जाता है। क्रमिक अंतर्प्रवाह का उपयोग करते समय भी, निकटतम मान शून्य हो सकता है।[3] गैप के ठीक बाहर आसन्न फ़्लोटिंग पॉइंट मानों के बीच की पूर्ण दूरी को मशीन एप्सिलॉन कहा जाता है, आमतौर पर सबसे बड़े मूल्य की विशेषता होती है जिसका मान 1 के साथ उस फ़्लोटिंग पॉइंट योजना में मान 1 के साथ उत्तर में होगा।[4] इसे इस प्रकार लिखा जा सकता है , कहाँ एक ऐसा फ़ंक्शन है जो वास्तविक मान को फ़्लोटिंग पॉइंट प्रस्तुति में परिवर्तित करता है। जबकि मशीन एप्सिलॉन को अंडरफ्लो स्तर (असामान्य संख्याओं को मानते हुए) के साथ भ्रमित नहीं होना है, यह निकटता से संबंधित है। मशीन एप्सिलॉन बिट्स की संख्या पर निर्भर है जो महत्व बनाते हैं, जबकि अंडरफ्लो स्तर उन अंकों की संख्या पर निर्भर करता है जो एक्सपोनेंट फ़ील्ड बनाते हैं। अधिकांश फ़्लोटिंग पॉइंट सिस्टम में, अंडरफ़्लो स्तर मशीन एप्सिलॉन से छोटा होता है।
अंडरफ्लो की हैंडलिंग
अंडरफ़्लो की घटना एक (चिपचिपा) स्थिति बिट सेट कर सकती है, एक अपवाद बढ़ा सकती है, हार्डवेयर स्तर पर एक व्यवधान उत्पन्न कर सकती है, या इन प्रभावों के कुछ संयोजन का कारण बन सकती है।
जैसा कि IEEE 754 में निर्दिष्ट किया गया है, अंडरफ्लो स्थिति केवल तभी संकेतित होती है जब परिशुद्धता का नुकसान भी होता है। आमतौर पर यह अंतिम परिणाम के अचूक होने के रूप में निर्धारित किया जाता है। हालाँकि, यदि उपयोगकर्ता अंडरफ्लो पर ट्रैप (कम्प्यूटिंग) कर रहा है, तो यह सटीकता के नुकसान के लिए विचार किए बिना हो सकता है। अंडरफ़्लो (साथ ही अन्य अपवादों) के लिए IEEE 754 में डिफ़ॉल्ट हैंडलिंग एक फ़्लोटिंग पॉइंट स्थिति के रूप में रिकॉर्ड करना है जो अंडरफ़्लो हुआ है। यह एप्लिकेशन-प्रोग्रामिंग स्तर के लिए निर्दिष्ट है, लेकिन अक्सर यह भी व्याख्या की जाती है कि इसे हार्डवेयर स्तर पर कैसे संभालना है।
यह भी देखें
- असामान्य संख्या
- फ़्लोटिंग-पॉइंट अंकगणित
- आईईईई 754
- पूर्णांक अतिप्रवाह
- लघुगणक संख्या प्रणाली
- मशीन एप्सिलॉन
- सामान्य संख्या (कंप्यूटिंग)
संदर्भ
- ↑ Coonen, Jerome T (1980). "फ़्लोटिंग-पॉइंट अंकगणित के लिए प्रस्तावित मानक के लिए एक कार्यान्वयन मार्गदर्शिका". Computer. 13 (1): 68–79. doi:10.1109/mc.1980.1653344. S2CID 206445847.
- ↑ Sun Microsystems (2005). संख्यात्मक संगणना गाइड. Oracle. Retrieved 21 April 2018.
- ↑ Demmel, James (1984). "अंडरफ्लो और न्यूमेरिकल सॉफ्टवेयर की विश्वसनीयता". SIAM Journal on Scientific and Statistical Computing. 5 (4): 887–919. doi:10.1137/0905062.
- ↑ Heath, Michael T. (2002). वैज्ञानिक कंप्यूटिंग (Second ed.). New York: McGraw-Hill. p. 20. ISBN 0-07-239910-4.