Extension:BCmath
![]() प्रकाशन की स्थिति: प्रयोगात्मक |
|
---|---|
![]() |
|
कार्यान्वयन | API |
विवरण | Scribunto के लिए विवेकाधीन-परिशुद्धता अंकगणित प्रदान करता है। |
लेखक | |
नवीनतम संस्करण | 0.1.0 |
संगतता नीति | Master में पीछे की तरफ से संगतता है। |
MediaWiki | >= 1.33 |
डेटाबेस बदलता है | नहीं |
लाइसेंस | GNU साधारण सार्वजनिक लाइसेंस 2.0 या उसके बाद |
डाउनलोड करें | GitHub: टिप्पणियाँ: README, LDoc |
|
|
BCmath एक्सटेंशन को अनुवादित करें | |
BCmath लुआ मॉड्यूल्स को विवेकाधीन-परिशुद्धता अंकगणित प्रदान करता है। इस एक्सटेंशन के lib से 125 अंकों वाले 𝜋 के हिसाब भी समर्थित होंगे, 𝜋 ≅ 3,141 592 653 589 793 238 462 643 383 279 502 884 197 169 399 375 105 820 974 944 592 307 816 406 286 208 998 628 034 825 342 117 067 982 148 086 513 282 306 647 093 8… (असल में तो 𝜋 का वैल्यू अनंत है!)।
यह एक्सटेंशन bc प्रोग्रामिंग भाषा का इस्तेमाल करने के लिए phpseclib/bcmath_compat के ज़रिए PHP BCMath Arbitrary Precision Mathematics API का इस्तेमाल करता है।
स्थापना
Expect Scribunto एक्सटेंशन के मॉड्यूल्स पर निर्भर है।
- फ़ाइलों को डाउनलोड करें और अपने
extensions/
फ़ोल्डर केBCmath
नामक डिरेक्ट्री में डालें। - अपने LocalSettings.php फ़ाइल के अंत में निम्न कोड जोड़ें:
wfLoadExtension( 'BCmath' );
- पूर्ण – अपने विकि पर Special:Version पर जाकर देखें कि एक्सटेंशन को सफलतापूर्वक स्थापित किया गया है कि नहीं।
उपयोग
कार्यप्रवाह है पहले एक BCMath उदाहरण परिभाषित करना, और फिर मामूली सूत्रों में, जंजीर संचालनों में, या फ़ंक्शन कॉल्स पर उसका इस्तेमाल करना। समर्थित संचालनों में किसी उदाहरण के मौजूद होने पर विशेष फ़ंक्शन्स और साधनों का इस्तेमाल किया जाएगा।
-- Used for chained operations
local sum1 = mw.bcmath.new( 0.0 ):add( 42.0 ) -- 42.000000000000000
local sum2 = mw.bcmath.new( '0' ):add( '42' ) -- 42
-- Used in an equation
local sum3 = sum1 * sum2 + 3.14 -- 1767.140000000000000
-- Used in function calls
local sum4 = mw.bcmath.add( mw.bcmath.mul( sum1, sum2 ), 3.14 ) -- 1767.140000000000000
local str1 = sum4 'sci' -- 1.767140000000000000e3
local str2 = sum4( 'sci', 4 ) -- 1.767e3
अधिक सहायता के लिए निर्मित LDoc प्रलेख देखें।
विकास
Vagrant-आधारित विकास पर्यावरण को पुनः निर्मित करने के लिए BCmath: Manual/Vagrant देखें।
विकल्प
सबसे अच्छा और शायद एकमात्र विकल्प है C-लाइब्रेरी 'decNumber', जो decNumber के साथ इंटरफ़ेस करने के लिए IEEE 754r और लुआ रैपर 'ldecNumber' को लागू करता है। इन दोनों का इस्तेमाल साथ में किया जाना चाहिए।
- decNumber (C-library)
- ldecNumber (Lua-library)
'decNumber' के इस्तेमाल से पहले इसपर एक सुरक्षा ऑडिट मौजूद होना चाहिए, मगर यह सुरक्षित ही होगा। लुआ लाइब्रेरी कालग्रस्त है, और बदकिस्मती से इसका आखिरी संस्करण (ldecNumber-21) अगस्त 2007 से है। decNumber/ldecNumber के लिए कोई ज्ञात मीडियाविकि-एकीकरण नहीं है।