अंकगणितीय अंतर्प्रवाह

From alpha
Jump to navigation Jump to search

शब्द अर्थमेटिक अंडरफ्लो (फ़्लोटिंग पॉइंट अंडरफ्लो, या केवल फ़्लोटिंग) कंप्यूटर प्रोग्राम में ऐसी स्थिति है जहाँ कैलकुलेशन का रिजल्ट कंप्यूटर की अपेक्षा अधिक राइट अब्सॉल्यूट वैल्यू होती है जो रियल में इसकी सेंट्रल प्रोसेसिंग यूनिट (सीपीयू) पर मेमोरी में रिप्रेजेंट कर सकता है।

अर्थमेटिक अंडरफ्लो तब हो सकता है जब फ़्लोटिंग पॉइंट ऑपरेशन का उचित रिजल्ट डेटा टाइप में नार्मल फ़्लोटिंग पॉइंट संख्या (कंप्यूटिंग) के रूप में प्रस्तुत किए जाने वाले सबसे स्माल वैल्यू की अपेक्षा में मैगनीटूड में स्माल (अर्थात शून्य के समीप) होता है।[1] अंडरफ्लो को फ़्लोटिंग पॉइंट वैल्यू के एक्सपोनेंट के नेगेटिव अर्थमेटिक ओवरफ्लो के रूप में माना जा सकता है। उदाहरण के लिए, यदि एक्सपोनेंट पार्ट 128 से 127 तक के वैल्यू को रिप्रेजेंट कर सकता है, तो 128 से कम वैल्यू वाले रिजल्ट के कारण अंडरफ्लो हो सकता है।

इन्टिजर (कंप्यूटर विज्ञान) वेरिएबल में अधिक कम वैल्यू को स्टोर करने, (उदाहरण के लिए, अनसाइंड इन्टिजर -1 को स्टोर करने का प्रयास करने) को उचित रूप से इन्टिजर ओवरफ्लो या इन्टिजर रैपराउंड के रूप में रेफेर किया जाता है। अंडरफ्लो शब्द नार्मल रूप से फ्लोटिंग पॉइंट नंबरों को रेफेर करता है, जो भिन्न विषय है। अधिकांश फ़्लोटिंग-पॉइंट डिजाईन में अधिक कम वैल्यू स्टोर करना संभव नहीं है, क्योंकि सामान्यतः वे सिंगड होते हैं और उनकी नेगेटिव इनफाइनाइट वैल्यू होती है।

अंडरफ्लो गैप

-fminN और fminN के मध्य के इंटरवल को अंडरफ्लो गैप कहा जाता है, जहां fminN सबसे स्माल पोसिटिव नार्मल फ़्लोटिंग पॉइंट वैल्यू होता है। ऐसा इसलिए है क्योंकि इस इंटरवल का आकार इंटरवल के बाहर आसन्न नार्मल फ़्लोटिंग पॉइंट वैल्यू के मध्य की दूरी से अधिक बड़ा है। उदाहरण के लिए, यदि फ़्लोटिंग पॉइंट डेटाटाइप 20 बिट्स का प्रतिनिधित्व कर सकता है, तो अंडरफ्लो गैप, गैप के ठीक बाहर आसन्न फ़्लोटिंग पॉइंट वैल्यू के मध्य की पूर्ण दूरी से 221 गुना बड़ा है।[2]

प्राचीन डिजाइनों में, अंडरफ्लो गैप का प्रयोग करने योग्य मान शून्य था। जब अंडरफ्लो हुआ, तो सही रिजल्ट को (या तो सीधे हार्डवेयर द्वारा, या प्रणाली सॉफ़्टवेयर द्वारा प्राथमिक अंडरफ्लो स्थिति को संभालने के द्वारा) शून्य से परिवर्तित कर दिया गया। इस प्रतिस्थापन को "फ्लश टू जीरो" कहा जाता है।

आईईई 754 के 1984 के संस्करण में असामान्य संख्याएं प्रस्तुत की गईं। सबनॉर्मल नंबर (शून्य सहित) अंडरफ्लो गैप को उन वैल्यू से भरते हैं जहाँ आसन्न वैल्यू के मध्य की पूर्ण दूरी अंडरफ्लो गैप के ठीक बाहर आसन्न वैल्यू के समान होती है। यह धीरे-धीरे अंडरफ्लो को सक्षम करता है, जहां निकटतम असामान्य वैल्यू का उपयोग किया जाता है। क्रमिक अंडरफ्लो का उपयोग करते समय भी, निकटतम वैल्यू शून्य हो सकता है।[3]

गैप के बाहर आसन्न फ़्लोटिंग पॉइंट वैल्यू के मध्य की पूर्ण दूरी को मशीन एप्सिलॉन कहा जाता है, सामान्यतः सबसे बड़े मान की विशेषता होती है जिसका वैल्यू 1 के साथ उस फ़्लोटिंग पॉइंट योजना में वैल्यू 1 के साथ उत्तर में होगा।[4] इसे इस प्रकार लिखा जा सकता है , कहाँ ऐसा फलन है जो वास्तविक वैल्यू को फ़्लोटिंग पॉइंट प्रतिनिधित्व में परिवर्तित करता है। जबकि मशीन एप्सिलॉन को अंडरफ्लो लेवल (असामान्य संख्याओं को मानते हुए) के साथ भ्रमित नहीं किया जाना चाहिए, यह निकटता से संबंधित है। मशीन एप्सिलॉन बिट्स की संख्या पर निर्भर करता है जो महत्व बनाते हैं, जबकि अंडरफ्लो लेवल उन अंकों की संख्या पर निर्भर करता है जो एक्सपोनेंट फ़ील्ड बनाते हैं। अधिकांश फ़्लोटिंग पॉइंट प्रणाली में, अंडरफ्लो लेवल मशीन एप्सिलॉन से स्माल होता है।

अंडरफ्लो का मैनेजमेंट

अंडरफ्लो प्रोसेस (चिपचिपा) स्टेटस बिट सेट कर सकती है, एक्सेप्शन बढ़ा सकती है, हार्डवेयर लेवल पर इंटरप्ट उत्पन्न कर सकती है, या इन इफ़ेक्ट के कुछ कॉम्बिनेशन का कारण बन सकती है।

जैसा कि आईईई 754 में स्पेसिफाई किया गया है, अंडरफ्लो कंडीशन केवल तभी सीग्नलेड होती है जब इनएक्सएक्ट की हानि भी होती है। सामान्यतः यह अंतिम रिजल्ट के इनएक्साक्ट होने के रूप में निर्धारित किया जाता है। चूँकि, यदि यूजर अंडरफ्लो पर ट्रैप (कम्प्यूटिंग) कर रहा है, तो यह डिफ़ॉल्ट की हानि के लिए विचार किए बिना ऐसा हो सकता है। अंडरफ्लो (साथ ही अन्य एक्सेप्शन) के लिए आईईई 754 में डिफ़ॉल्ट हैंडलिंग फ़्लोटिंग पॉइंट स्थिति के रूप में रिकॉर्ड करना है जो अंडरफ्लो हुआ है। यह एप्लिकेशन-प्रोग्रामिंग लेवल के लिए स्पेसिफाई है, परन्तु प्रायः यह भी व्याख्या की जाती है कि इसे हार्डवेयर लेवल पर कैसे मैनेज करना है।

यह भी देखें

संदर्भ

  1. Coonen, Jerome T (1980). "फ़्लोटिंग-पॉइंट अंकगणित के लिए प्रस्तावित मानक के लिए एक कार्यान्वयन मार्गदर्शिका". Computer. 13 (1): 68–79. doi:10.1109/mc.1980.1653344. S2CID 206445847.
  2. Sun Microsystems (2005). संख्यात्मक संगणना गाइड. Oracle. Retrieved 21 April 2018.
  3. Demmel, James (1984). "अंडरफ्लो और न्यूमेरिकल सॉफ्टवेयर की विश्वसनीयता". SIAM Journal on Scientific and Statistical Computing. 5 (4): 887–919. doi:10.1137/0905062.
  4. Heath, Michael T. (2002). वैज्ञानिक कंप्यूटिंग (Second ed.). New York: McGraw-Hill. p. 20. ISBN 0-07-239910-4.