Extension:BCmath
BCmath Utgivelsesstatus: eksperimentell |
|
---|---|
Implementasjon | API |
Beskrivelse | Tilbyr aritmetikk med vilkårlig presisjon for Scribunto. |
Forfatter(e) | |
Siste versjon | 0.1.0 |
Kompatibilitetsregler | Master maintains backward compatibility. |
MediaWiki | >= 1.33 |
Databaseendringer | Nei |
Lisens | GNU General Public License 2.0 eller senere |
Last ned | GitHub: Note: README, LDoc |
|
|
Translate the BCmath extension | |
BCmath tilbyr aritmetikk med vilkårlig presisjon for Lua moduler. Med biblioteket fra denne utvidelsen så er det fullstendig gyldig å gjøre beregninger med 𝜋 <! - matematisk kursiv liten pi -> på 125 tegn, 𝜋 ≅ 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… (Egentlig er den virkelige 𝜋 uendelig mye lengre!)
Denne utvidelsen bruker PHP BCMath Arbitrary Precision Mathematics APIet ved å bruke phpseclib/bcmath_compat for for å få tilgang til bc-programmeringsspråket.
Installering
Expect er avhengig av moduler fra Scribunto -utvidelsen.
- Nedlasting and place the file(s) in a directory called
BCmath
in yourextensions/
folder. - Add the following code at the bottom of your LocalSettings.php file:
wfLoadExtension( 'BCmath' );
- Done – Navigate to Special:Version on your wiki to verify that the extension is successfully installed.
Bruk
Arbeidsflyten er først å definere en BCmath-instans, og deretter bruke den i vanlige ligninger, i lenkede operasjoner, eller som en del av funksjonskall. Eksistens av en instans i støttede operasjoner vil utløse bruk av de spesielle funksjonene og metodene.
-- 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
For mer hjelp, se den genererte LDoc dokumentasjonen.
Utvikling
For å gjenskape det Vagrant-baserte utviklingsmiljøet, se BCmath: Manual/Vagrant.
Alternativer
Det beste og kanskje eneste virkelige alternativet er C-biblioteket decNumber som implementerer IEEE 754r og Lua-biblioteket ldecNumber for innpakning. Disse to må brukes sammen.
- decNumber (C-library)
- ldecNumber (Lua-library)
Biblioteket decNumber bør gjennomgå en sikkerhetsrevisjon før det brukes, men det er sannsynligvis trygt. Lua-biblioteket er arkivert, og er håpløst umoderne med siste versjon (ldecNumber-21) fra august 2007. Det er ingen kjent Mediawiki-integrasjon for decNumber/ldecNumber.