Extension:BCmath
BCmath Release status: experimental |
|
---|---|
Implementation | API |
Description | Tilbyr aritmetikk med vilkårleg presisjon for Scribunto. |
Author(s) | |
Latest version | 0.1.0 |
Compatibility policy | Master maintains backward compatibility. |
MediaWiki | >= 1.33 |
Database changes | No |
License | GNU General Public License 2.0 or later |
Download | GitHub: Note: README, LDoc |
|
|
Translate the BCmath extension | |
BCmath tilbyr aritmetikk med vilkårleg presisjon for Lua modular. Med biblioteket frå denne utvidinga så er det fullstendig gyldig å gjera berekningar med 𝜋 <! - matematisk kursiv liten pi -> på 125 teikn, 𝜋 ≅ 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… (Eigenleg er den verkelege 𝜋 uendeleg mykje lengre!)
Denne utvidinga brukar PHP BCMath Arbitrary Precision Mathematics APIet ved å bruka phpseclib/bcmath_compat for å få tilgang til bc-programmeringsspråket.
Installering
Expect er avhengig av modular frå Scribunto -utvidinga.
- 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
Arbeidsflyt er først å definera ein BCmath-instans, og deretter bruka den i vanlege likningar, i lenkja operasjonar, eller som ein del av funksjonskall. Eksistens av ein instans i støtta operasjonar vil utløysa bruk av dei spesielle funksjonane og metodane.
-- 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 meir hjelp, sjå den genererte LDoc dokumentasjonen.
Utvikling
For å attskapa det Vagrant-baserte utviklingsmiljøet, sjå BCmath: Manual/Vagrant.
Alternativ
Det beste og kanskje einaste verkelege alternativ er C-biblioteket decNumber som implementerer IEEE 754r og Lua-biblioteket ldecNumber for innpakning. Desse to må verta brukt saman.
- decNumber (C-library)
- ldecNumber (Lua-library)
Biblioteket decNumber bør gjennomgå ein tryggleiksrevisjon før det brukast, men det er sannsynlegvis trygt. Lua-biblioteket er arkivert, og er håplaust umoderne med siste versjon (ldecNumber-21) frå august 2007. Det er ingen kjend Mediawiki-integrasjon for decNumber/ldecNumber.