अंकगणितीय अंतर्प्रवाह: Difference between revisions

From Vigyanwiki
No edit summary
No edit summary
Line 3: Line 3:
शब्द अंकगणितीय अंतर्प्रवाह (फ़्लोटिंग पॉइंट अंतर्प्रवाह, या केवल फ़्लोटिंग)  [[कंप्यूटर प्रोग्राम]] में ऐसी स्थिति है जहाँ गणना का परिणाम कंप्यूटर की अपेक्षा में अधिक सटीक निरपेक्ष मान होता है जो वास्तव में इसकी केंद्रीय प्रसंस्करण इकाई (सीपीयू) पर[[ स्मृति | मेमोरी]] में प्रतिनिधित्व कर सकता है।
शब्द अंकगणितीय अंतर्प्रवाह (फ़्लोटिंग पॉइंट अंतर्प्रवाह, या केवल फ़्लोटिंग)  [[कंप्यूटर प्रोग्राम]] में ऐसी स्थिति है जहाँ गणना का परिणाम कंप्यूटर की अपेक्षा में अधिक सटीक निरपेक्ष मान होता है जो वास्तव में इसकी केंद्रीय प्रसंस्करण इकाई (सीपीयू) पर[[ स्मृति | मेमोरी]] में प्रतिनिधित्व कर सकता है।


अंकगणित अंतर्प्रवाह तब हो सकता है जब [[फ़्लोटिंग-पॉइंट अंकगणित]] का उचित परिणाम लक्ष्य [[डेटा प्रकार]] में [[सामान्य संख्या (कंप्यूटिंग)|सामान्य  फ़्लोटिंग पॉइंट संख्या (कंप्यूटिंग)]] के रूप में प्रस्तुत किए जाने वाले सबसे छोटे मान की अपेक्षा में परिमाण में छोटा (अर्थात शून्य के समीप) होता है।<ref>{{cite journal|last1=Coonen|first1=Jerome T|s2cid=206445847|title=फ़्लोटिंग-पॉइंट अंकगणित के लिए प्रस्तावित मानक के लिए एक कार्यान्वयन मार्गदर्शिका|journal=Computer|date=1980|volume=13|issue=1|pages=68–79|doi=10.1109/mc.1980.1653344}}</ref> अंडरफ्लो को फ़्लोटिंग पॉइंट वैल्यू के एक्सपोनेंट के नकारात्मक अंकगणितीय अतिप्रवाह के रूप में माना जा सकता है। उदाहरण के लिए, यदि [[प्रतिपादक]] भाग 128 से 127 तक के मानों का प्रतिनिधित्व कर सकता है, तो 128 से कम मान वाले परिणाम के कारण अंतर्प्रवाह हो सकता है।
अंकगणित अंतर्प्रवाह तब हो सकता है जब [[फ़्लोटिंग-पॉइंट अंकगणित]] का उचित परिणाम लक्ष्य [[डेटा प्रकार]] में [[सामान्य संख्या (कंप्यूटिंग)|सामान्य  फ़्लोटिंग पॉइंट संख्या (कंप्यूटिंग)]] के रूप में प्रस्तुत किए जाने वाले सबसे छोटे मान की अपेक्षा में परिमाण में छोटा (अर्थात शून्य के समीप) होता है।<ref>{{cite journal|last1=Coonen|first1=Jerome T|s2cid=206445847|title=फ़्लोटिंग-पॉइंट अंकगणित के लिए प्रस्तावित मानक के लिए एक कार्यान्वयन मार्गदर्शिका|journal=Computer|date=1980|volume=13|issue=1|pages=68–79|doi=10.1109/mc.1980.1653344}}</ref> अंतर्प्रवाह को फ़्लोटिंग पॉइंट वैल्यू के एक्सपोनेंट के नकारात्मक अंकगणितीय अतिप्रवाह के रूप में माना जा सकता है। उदाहरण के लिए, यदि [[प्रतिपादक]] भाग 128 से 127 तक के मानों का प्रतिनिधित्व कर सकता है, तो 128 से कम मान वाले परिणाम के कारण अंतर्प्रवाह हो सकता है।


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


== अंडरफ्लो गैप ==
== अंतर्प्रवाह गैप ==
-fminN और fminN के मध्य के अंतराल को अंतर्प्रवाह गैप कहा जाता है, जहां fminN सबसे छोटा सकारात्मक सामान्य फ़्लोटिंग पॉइंट मान होता है। ऐसा इसलिए है क्योंकि इस अंतराल का आकार अंतराल के बाहर आसन्न सामान्य फ़्लोटिंग पॉइंट मानों के मध्य की दूरी से अधिक बड़ा है। उदाहरण के लिए, यदि फ़्लोटिंग पॉइंट डेटाटाइप 20[[ अंश | बिट्स]] का प्रतिनिधित्व कर सकता है, तो अंतर्प्रवाह गैप, गैप के ठीक बाहर आसन्न फ़्लोटिंग पॉइंट मानों के मध्य की पूर्ण दूरी से 221 गुना बड़ा है।<ref>{{cite book|last1=Sun Microsystems|title=संख्यात्मक संगणना गाइड|date=2005|publisher=Oracle|url=https://docs.oracle.com/cd/E19422-01/819-3693/|accessdate=21 April 2018}}</ref>पुराने डिजाइनों में, अंडरफ्लो गैप का प्रयोग करने योग्य मूल्य शून्य था। जब अंतर्प्रवाह हुआ, तो सही परिणाम को (या तो सीधे हार्डवेयर द्वारा, या प्रणाली सॉफ़्टवेयर द्वारा प्राथमिक अंतर्प्रवाह स्थिति को संभालने के द्वारा) शून्य से परिवर्तित कर दिया गया। इस प्रतिस्थापन को "फ्लश टू जीरो" कहा जाता है।
-fminN और fminN के मध्य के अंतराल को अंतर्प्रवाह गैप कहा जाता है, जहां fminN सबसे छोटा सकारात्मक सामान्य फ़्लोटिंग पॉइंट मान होता है। ऐसा इसलिए है क्योंकि इस अंतराल का आकार अंतराल के बाहर आसन्न सामान्य फ़्लोटिंग पॉइंट मानों के मध्य की दूरी से अधिक बड़ा है। उदाहरण के लिए, यदि फ़्लोटिंग पॉइंट डेटाटाइप 20[[ अंश | बिट्स]] का प्रतिनिधित्व कर सकता है, तो अंतर्प्रवाह गैप, गैप के ठीक बाहर आसन्न फ़्लोटिंग पॉइंट मानों के मध्य की पूर्ण दूरी से 221 गुना बड़ा है।<ref>{{cite book|last1=Sun Microsystems|title=संख्यात्मक संगणना गाइड|date=2005|publisher=Oracle|url=https://docs.oracle.com/cd/E19422-01/819-3693/|accessdate=21 April 2018}}</ref>पुराने डिजाइनों में, अंतर्प्रवाह गैप का प्रयोग करने योग्य मूल्य शून्य था। जब अंतर्प्रवाह हुआ, तो सही परिणाम को (या तो सीधे हार्डवेयर द्वारा, या प्रणाली सॉफ़्टवेयर द्वारा प्राथमिक अंतर्प्रवाह स्थिति को संभालने के द्वारा) शून्य से परिवर्तित कर दिया गया। इस प्रतिस्थापन को "फ्लश टू जीरो" कहा जाता है।


[[IEEE 754|आईईई 754]] के 1984 के संस्करण में [[असामान्य संख्या|असामान्य]] [[असामान्य संख्या|संख्याएं]] प्रस्तुत की गईं। सबनॉर्मल नंबर (शून्य सहित) अंतर्प्रवाह गैप को उन मानों से भरते हैं जहाँ आसन्न मानों के मध्य की पूर्ण दूरी अंतर्प्रवाह गैप के ठीक बाहर आसन्न मानों के समान होती है। यह धीरे-धीरे अंतर्प्रवाह को सक्षम करता है, जहां निकटतम असामान्य मान का उपयोग किया जाता है। क्रमिक अंतर्प्रवाह का उपयोग करते समय भी, निकटतम मान शून्य हो सकता है।<ref>{{cite journal|last1=Demmel|first1=James|title=अंडरफ्लो और न्यूमेरिकल सॉफ्टवेयर की विश्वसनीयता|journal=SIAM Journal on Scientific and Statistical Computing|date=1984|volume=5|issue=4|pages=887–919|doi=10.1137/0905062}}</ref>गैप के बाहर आसन्न फ़्लोटिंग पॉइंट मानों के मध्य की पूर्ण दूरी को [[मशीन एप्सिलॉन]] कहा जाता है, सामान्यतः सबसे बड़े मूल्य की विशेषता होती है जिसका मान 1 के साथ उस फ़्लोटिंग पॉइंट योजना में मान 1 के साथ उत्तर में होगा।<ref>{{cite book|last1=Heath|first1=Michael T.|title=वैज्ञानिक कंप्यूटिंग|date=2002|publisher=McGraw-Hill|location=New York|isbn=0-07-239910-4|page=20|edition=Second}}</ref> इसे इस प्रकार लिखा जा सकता है <math>fl(1+\epsilon) = 1</math>, कहाँ <math>fl()</math> ऐसा फलन है जो वास्तविक मान को फ़्लोटिंग पॉइंट प्रतिनिधित्व में परिवर्तित करता है। जबकि मशीन एप्सिलॉन को अंडरफ्लो स्तर (असामान्य संख्याओं को मानते हुए) के साथ भ्रमित नहीं किया जाना चाहिए, यह निकटता से संबंधित है। मशीन एप्सिलॉन बिट्स की संख्या पर निर्भर करता है जो [[महत्व]] बनाते हैं, जबकि अंडरफ्लो स्तर उन अंकों की संख्या पर निर्भर करता है जो एक्सपोनेंट फ़ील्ड बनाते हैं। अधिकांश फ़्लोटिंग पॉइंट प्रणाली में, अंतर्प्रवाह स्तर मशीन एप्सिलॉन से छोटा होता है।
[[IEEE 754|आईईई 754]] के 1984 के संस्करण में [[असामान्य संख्या|असामान्य]] [[असामान्य संख्या|संख्याएं]] प्रस्तुत की गईं। सबनॉर्मल नंबर (शून्य सहित) अंतर्प्रवाह गैप को उन मानों से भरते हैं जहाँ आसन्न मानों के मध्य की पूर्ण दूरी अंतर्प्रवाह गैप के ठीक बाहर आसन्न मानों के समान होती है। यह धीरे-धीरे अंतर्प्रवाह को सक्षम करता है, जहां निकटतम असामान्य मान का उपयोग किया जाता है। क्रमिक अंतर्प्रवाह का उपयोग करते समय भी, निकटतम मान शून्य हो सकता है।<ref>{{cite journal|last1=Demmel|first1=James|title=अंडरफ्लो और न्यूमेरिकल सॉफ्टवेयर की विश्वसनीयता|journal=SIAM Journal on Scientific and Statistical Computing|date=1984|volume=5|issue=4|pages=887–919|doi=10.1137/0905062}}</ref>गैप के बाहर आसन्न फ़्लोटिंग पॉइंट मानों के मध्य की पूर्ण दूरी को [[मशीन एप्सिलॉन]] कहा जाता है, सामान्यतः सबसे बड़े मूल्य की विशेषता होती है जिसका मान 1 के साथ उस फ़्लोटिंग पॉइंट योजना में मान 1 के साथ उत्तर में होगा।<ref>{{cite book|last1=Heath|first1=Michael T.|title=वैज्ञानिक कंप्यूटिंग|date=2002|publisher=McGraw-Hill|location=New York|isbn=0-07-239910-4|page=20|edition=Second}}</ref> इसे इस प्रकार लिखा जा सकता है <math>fl(1+\epsilon) = 1</math>, कहाँ <math>fl()</math> ऐसा फलन है जो वास्तविक मान को फ़्लोटिंग पॉइंट प्रतिनिधित्व में परिवर्तित करता है। जबकि मशीन एप्सिलॉन को अंतर्प्रवाह स्तर (असामान्य संख्याओं को मानते हुए) के साथ भ्रमित नहीं किया जाना चाहिए, यह निकटता से संबंधित है। मशीन एप्सिलॉन बिट्स की संख्या पर निर्भर करता है जो [[महत्व]] बनाते हैं, जबकि अंतर्प्रवाह स्तर उन अंकों की संख्या पर निर्भर करता है जो एक्सपोनेंट फ़ील्ड बनाते हैं। अधिकांश फ़्लोटिंग पॉइंट प्रणाली में, अंतर्प्रवाह स्तर मशीन एप्सिलॉन से छोटा होता है।


== अंडरफ्लो की हैंडलिंग ==
== अंतर्प्रवाह का प्रबंधन ==
अंतर्प्रवाह की क्रिया (चिपचिपा) स्थिति बिट सेट कर सकती है, अपवाद बढ़ा सकती है, हार्डवेयर स्तर पर व्यवधान उत्पन्न कर सकती है, या इन प्रभावों के कुछ संयोजन का कारण बन सकती है।
अंतर्प्रवाह की क्रिया (चिपचिपा) स्थिति बिट सेट कर सकती है, अपवाद बढ़ा सकती है, हार्डवेयर स्तर पर व्यवधान उत्पन्न कर सकती है, या इन प्रभावों के कुछ संयोजन का कारण बन सकती है।


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


== यह भी देखें ==
== यह भी देखें ==

Revision as of 15:34, 26 June 2023

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

अंकगणित अंतर्प्रवाह तब हो सकता है जब फ़्लोटिंग-पॉइंट अंकगणित का उचित परिणाम लक्ष्य डेटा प्रकार में सामान्य फ़्लोटिंग पॉइंट संख्या (कंप्यूटिंग) के रूप में प्रस्तुत किए जाने वाले सबसे छोटे मान की अपेक्षा में परिमाण में छोटा (अर्थात शून्य के समीप) होता है।[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.