अंकगणितीय अंतर्प्रवाह
शब्द अंकगणितीय अंडरफ्लो (फ़्लोटिंग पॉइंट अंडरफ्लो, या केवल फ़्लोटिंग) कंप्यूटर प्रोग्राम में ऐसी स्थिति है जहाँ गणना का परिणाम कंप्यूटर की अपेक्षा में अधिक सटीक निरपेक्ष मान होता है जो वास्तव में इसकी केंद्रीय प्रसंस्करण इकाई (सीपीयू) पर मेमोरी में प्रतिनिधित्व कर सकता है।
अंकगणित अंडरफ्लो तब हो सकता है जब फ़्लोटिंग-पॉइंट अंकगणित का उचित परिणाम लक्ष्य डेटा प्रकार में सामान्य फ़्लोटिंग पॉइंट संख्या (कंप्यूटिंग) के रूप में प्रस्तुत किए जाने वाले सबसे छोटे मान की अपेक्षा में परिमाण में छोटा (अर्थात शून्य के समीप) होता है।[1] अंडरफ्लो को फ़्लोटिंग पॉइंट वैल्यू के एक्सपोनेंट के नकारात्मक अंकगणितीय अतिप्रवाह के रूप में माना जा सकता है। उदाहरण के लिए, यदि प्रतिपादक भाग 128 से 127 तक के मानों का प्रतिनिधित्व कर सकता है, तो 128 से कम मान वाले परिणाम के कारण अंडरफ्लो हो सकता है।
पूर्णांक (कंप्यूटर विज्ञान) चर में बहुत कम मानों को संग्रहीत करने, (उदाहरण के लिए, अहस्ताक्षरित पूर्णांक -1 को संग्रहीत करने का प्रयास करने) को उचित रूप से पूर्णांक अतिप्रवाह या पूर्णांक रैपराउंड के रूप में संदर्भित किया जाता है। अंडरफ्लो शब्द सामान्य रूप से फ्लोटिंग पॉइंट नंबरों को संदर्भित करता है, जो भिन्न विषय है। अधिकांश फ़्लोटिंग-पॉइंट अभिकल्पनों में बहुत कम मान संग्रहीत करना संभव नहीं है, क्योंकि सामान्यतः वे हस्ताक्षरित होते हैं और उनका नकारात्मक अनंत मान होता है।
अंडरफ्लो गैप
-fminN और fminN के मध्य के अंतराल को अंडरफ्लो गैप कहा जाता है, जहां fminN सबसे छोटा सकारात्मक सामान्य फ़्लोटिंग पॉइंट मान होता है। ऐसा इसलिए है क्योंकि इस अंतराल का आकार अंतराल के बाहर आसन्न सामान्य फ़्लोटिंग पॉइंट मानों के मध्य की दूरी से अधिक बड़ा है। उदाहरण के लिए, यदि फ़्लोटिंग पॉइंट डेटाटाइप 20 बिट्स का प्रतिनिधित्व कर सकता है, तो अंडरफ्लो गैप, गैप के ठीक बाहर आसन्न फ़्लोटिंग पॉइंट मानों के मध्य की पूर्ण दूरी से 221 गुना बड़ा है।[2]पुराने डिजाइनों में, अंडरफ्लो गैप का प्रयोग करने योग्य मूल्य शून्य था। जब अंडरफ्लो हुआ, तो सही परिणाम को (या तो सीधे हार्डवेयर द्वारा, या प्रणाली सॉफ़्टवेयर द्वारा प्राथमिक अंडरफ्लो स्थिति को संभालने के द्वारा) शून्य से परिवर्तित कर दिया गया। इस प्रतिस्थापन को "फ्लश टू जीरो" कहा जाता है।
आईईई 754 के 1984 के संस्करण में असामान्य संख्याएं प्रस्तुत की गईं। सबनॉर्मल नंबर (शून्य सहित) अंडरफ्लो गैप को उन मानों से भरते हैं जहाँ आसन्न मानों के मध्य की पूर्ण दूरी अंडरफ्लो गैप के ठीक बाहर आसन्न मानों के समान होती है। यह धीरे-धीरे अंडरफ्लो को सक्षम करता है, जहां निकटतम असामान्य मान का उपयोग किया जाता है। क्रमिक अंडरफ्लो का उपयोग करते समय भी, निकटतम मान शून्य हो सकता है।[3]गैप के बाहर आसन्न फ़्लोटिंग पॉइंट मानों के मध्य की पूर्ण दूरी को मशीन एप्सिलॉन कहा जाता है, सामान्यतः सबसे बड़े मूल्य की विशेषता होती है जिसका मान 1 के साथ उस फ़्लोटिंग पॉइंट योजना में मान 1 के साथ उत्तर में होगा।[4] इसे इस प्रकार लिखा जा सकता है , कहाँ ऐसा फलन है जो वास्तविक मान को फ़्लोटिंग पॉइंट प्रतिनिधित्व में परिवर्तित करता है। जबकि मशीन एप्सिलॉन को अंडरफ्लो स्तर (असामान्य संख्याओं को मानते हुए) के साथ भ्रमित नहीं किया जाना चाहिए, यह निकटता से संबंधित है। मशीन एप्सिलॉन बिट्स की संख्या पर निर्भर करता है जो महत्व बनाते हैं, जबकि अंडरफ्लो स्तर उन अंकों की संख्या पर निर्भर करता है जो एक्सपोनेंट फ़ील्ड बनाते हैं। अधिकांश फ़्लोटिंग पॉइंट प्रणाली में, अंडरफ्लो स्तर मशीन एप्सिलॉन से छोटा होता है।
अंडरफ्लो का प्रबंधन
अंडरफ्लो की क्रिया (चिपचिपा) स्थिति बिट सेट कर सकती है, अपवाद बढ़ा सकती है, हार्डवेयर स्तर पर व्यवधान उत्पन्न कर सकती है, या इन प्रभावों के कुछ संयोजन का कारण बन सकती है।
जैसा कि आईईई 754 में निर्दिष्ट किया गया है, अंडरफ्लो स्थिति केवल तभी संकेतित होती है जब परिशुद्धता की हानि भी होती है। सामान्यतः यह अंतिम परिणाम के अचूक होने के रूप में निर्धारित किया जाता है। चूँकि, यदि उपयोगकर्ता अंडरफ्लो पर ट्रैप (कम्प्यूटिंग) कर रहा है, तो यह सटीकता की हानि के लिए विचार किए बिना ऐसा हो सकता है। अंडरफ्लो (साथ ही अन्य अपवादों) के लिए आईईई 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.