जीएनयू मल्टीपल प्रिसिजन अरिथमेटिक लाइब्रेरी

जीएनयू बहु प्रिसिजन गणितीय लाइब्रेरी (जीएमपी) अपेक्षाकृत प्रिसिजन अंकगणित के लिए एक मुक्त सॉफ्टवेयर लाइब्रेरी है, जो हस्ताक्षरित पूर्णांकों, तर्कसंगत संख्याओं और फ़्लोटिंग-पॉइंट संख्याओं पर कार्य करती है। उपलब्ध मेमोरी द्वारा निहित सीमाओं को छोड़कर परिशुद्धता की कोई व्यावहारिक सीमा नहीं है, संचालित 32-बिट उपकरणों पर 232−1 बिट और 64 बिट उपकरणों पर 237 बिट तक हो सकते हैं। जीएमपी में फ़ंक्शंस का एक समृद्ध समूह है और फ़ंक्शंस का एक नियमित इंटरफ़ेस होता है जो मूल इंटरफ़ेस सी प्रोग्रामिंग के लिए है, लेकिन एडीए, सी++, सी, जूलिया (प्रोग्रामिंग भाषा), डॉटनेट, ओकैमल, पर्ल, पीएचपी, पायथन, आर, रूबी और रस्ट सहित अन्य भाषाओं के लिए रैपर सम्मिलित हैं। 2008 से पहले कैफ़े एक जावा वर्चुअल मशीने जावा से निर्मित अपेक्षाकृत प्रिसिजन अंकगणित का समर्थन करने के लिए जीएमपी का उपयोग करती थी। कुछ ही समय बाद जीएमपी समर्थन को जीएनयू क्लास एड्रेस में जोड़ दिया गया था।

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

पहला जीएमपी प्रकाशन 1991 में किया गया था। इसको निरंतर विकसित और अपडेट किया जाता है। जीएमपी जीएनयू परियोजना का भाग है। हालांकि इसकी वेबसाइट 'gnu.org' से दूर होने से भ्रम हो सकता है और इसे जीएनयू लेसर पब्लिक लाइसेंस (एलजीपीएल) के अंतर्गट वितरित किया जाता है। जीएमपी का उपयोग अंकगणितीय जैसे कि कई कंप्यूटर बीजगणितीय प्रणालियों में पूर्णांक अंकगणित और मेपल (सॉफ्टवेयर) के लिए किया जाता है। इसका उपयोग कम्प्यूटेशनल ज्यामिति एल्गोरिदम लाइब्रेरी (सीजीएएल) में भी किया जाता है। जीएनयू कंपाइलर संग्रह (जीसीसी) बनाने के लिए जीएमपी की आवश्यकता होती है।

उदाहरण
यहां सी कोड का एक उदाहरण दिया गया है जो बड़ी संख्याओं को गुणा करने और मुद्रित करने के लिए जीएमपी लाइब्रेरी का उपयोग करता है:

यह कोड 7612058254738945 × 9263591128439081 के मान की गणना करता है और इस प्रोग्राम को संकलित करने और चलाने से यह परिणाम प्राप्त होता है। यूनिक्स-प्रकार के सिस्टम पर संकलन करते समय  का उपयोग किया जाता है।

उपरोक्त की तुलना के लिए कोई भी इसके अतिरिक्त निम्नलिखित सी++ प्रोग्राम लिख सकता है। यूनिक्स प्रकार के सिस्टम पर संकलन करते समय  का उपयोग किया जाता है।

यह भी देखें

 * जीएनयू एमपीएफआर - जीएनयू एमपी के आधार पर परिशुद्धता के साथ अपेक्षाकृत शुद्ध गणना के लिए लाइब्रेरी
 * संख्याओं के लिए क्लास लाइब्रेरी - अपेक्षाकृत परिशुद्धता के लिए क्लास लाइब्रेरी
 * एमपीआईआर (गणित सॉफ्टवेयर) - जीएमपी का फॉर्क, प्रायः अब जिसका संरक्षण नहीं किया जाता है।