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

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

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

पहली GMP रिलीज़ 1991 में की गई थी। इसे लगातार विकसित और रखरखाव किया जाता है। जीएमपी जीएनयू परियोजना का हिस्सा है (हालांकि इसकी वेबसाइट gnu.org से दूर होने से भ्रम हो सकता है), और इसे जीएनयू लेसर जनरल पब्लिक लाइसेंस (एलजीपीएल) के तहत वितरित किया जाता है।

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

जीएनयू कंपाइलर संग्रह (GCC) बनाने के लिए GMP की आवश्यकता होती है।

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

यह कोड 7612058254738945 × 9263591128439081 के मान की गणना करता है।

इस प्रोग्राम को संकलित करने और चलाने से यह परिणाम मिलता है। (  ई> यूनिक्स-प्रकार सिस्टम पर संकलन करते समय ध्वज का उपयोग किया जाता है।)

तुलना के लिए, कोई इसके बजाय निम्नलिखित समकक्ष C++ प्रोग्राम लिख सकता है। (  ई> यूनिक्स-प्रकार सिस्टम पर संकलन करते समय झंडे का उपयोग किया जाता है।)

यह भी देखें

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