Lista över aritmetisk programvara med godtycklig precision

Den här artikeln listar bibliotek, applikationer och annan programvara som möjliggör eller stöder aritmetik med godtycklig precision .

Bibliotek

Paket-bibliotekets namn Nummertyp Språk Licens
Boost Multiprecision Library Heltal , rational , flytande och komplexa C++ och backends med GMP/MPFR Lyft
TTMath Heltal , flyter C++ BSD
LibBF Heltal , flyter C MIT
BeeNum Heltal , rational C++ MIT
längre-int Heltal C GPL
GNU Multi-Precision Library (och MPFR ) Heltal , rational och flytningar C och C++ med bindningar LGPL
CLN Heltal , rational , flytande och komplexa C++ GPL
ARPREC Heltal , flytande och komplexa C++ BSD-typ
MAPM , MAPM Heltal , decimaltal och komplexa flytningar C (bindningar för C++ ) Gratisprogram
MPIR (matematikmjukvara) Heltal , rational och flytningar C och C++ med bindningar LGPL
KÄRNA Heltal , rational och flytningar C++ Gratisprogram
LEDA Heltal , rational och flytningar C++ Gratisprogram
CGAL Heltal , rational och flytningar C++ LGPL
Geometriska verktyg Heltal och rational C++ Lyft
LibTomMath Heltal C Public Domain eller WTFPL ( dubbellicensierad )
libgcrypt Heltal C LGPL
OpenSSL Heltal C Apache-licens v2
Arbitraire Flyter C MIT-licens
mbed TLS Heltal C Apache-licens v2 och GPL
JScience Heltal , rational och flytningar Java BSD-typ
JAS Heltal , rationaler och komplexa tal Java LGPL
JLinAlg Decimaler , rationaler och komplexa tal Java LGPL
Apfloat Heltal , rationaler , flytande tal och komplexa tal Java, C++ LGPL
MPArith Heltal , rationaler , flytande tal och komplexa tal Pascal, Delphi Zlib
InfInt Heltal C++ MPL
bigz Heltal , rational C (bindningar för C++ ) BSD-typ
C++ BigInt-klass Heltal C++ GPL
ramp Heltal Rost Apache-licens v2
flyta Flyter Rost Apache-licens v2
fgmp Heltal C Allmängods
imath Heltal , rational ANSI C MIT
hebimath Heltal , rational , naturliga, flyter C ( C99 ) MIT
bsdnt Heltal , naturliga C BSD (2-klausul)
heltalsenkel Heltal Haskell BSD (3-klausul)
bigints Heltal Nim MIT
libzahl (WIP) Heltal C ISC
decimal Decimaler BSD (3-klausul)
mpmath Flytande och komplex Pytonorm BSD
Beräknarbara Reals Beräknarbara Reals Vanlig Lisp BSD (3-klausul)
libmpdec och libmpdec++ Decimal flyter C och C++ BSD (2-klausul)
GEM bibliotek Flytande och komplexa tal MATLAB och GNU Octave MPL

Fristående applikationsprogramvara

Programvara som stöder godtyckliga precisionsberäkningar:

  • bc POSIX aritmetiska språk med godtycklig precision som är standard på de flesta Unix - liknande system.
    • dc : "Desktop Calculator" RPN-kalkylator med godtycklig precision som är standard på de flesta Unix-liknande system.
  • KCalc , Linux-baserad vetenskaplig kalkylator
  • Maxima : ett datoralgebrasystem som ärvs direkt från dess implementeringsspråk Common Lisp . Dessutom stöder den flytande kommatal med godtycklig precision, bigfloats .
  • Maple , Mathematica och flera andra datoralgebraprogram inkluderar aritmetik med godtycklig precision. Mathematica använder GMP för ungefärlig talberäkning.
  • PARI/GP , ett datoralgebrasystem med öppen källkod som stöder godtycklig precision.
  • Kalkylera! , en fri programvara med öppen källkod, godtycklig precisionskalkylator med autokomplettering.
  • SageMath , ett datoralgebrasystem med öppen källkod
  • SymPy , ett CAS
  • Symbolisk matematik verktygslåda ( MATLAB )
  • Windows Calculator , sedan Windows 98, använder godtycklig precision för grundläggande operationer (addition, subtraktion, multiplikation, division) och 32 siffror med precision för avancerade operationer (kvadratrot, transcendentala funktioner).
  • SmartXML , ett gratis programmeringsspråk med integrerad utvecklingsmiljö (IDE) för matematiska beräkningar. Variabler av typen BigNumber kan användas, eller vanliga tal kan konverteras till stora tal med hjälp av konverteringsoperatorn # (t.ex. #2.3^2000.1). SmartXML stora tal kan ha upp till 100 000 000 decimalsiffror och upp till 100 000 000 helsiffror.

språk

Programmeringsspråk som stöder godtyckliga precisionsberäkningar, antingen inbyggda eller i språkets standardbibliotek:

  • Ada : den kommande Ada 202x-revisionen lägger till paketen Ada.Numerics.Big_Numbers.Big_Integers och Ada.Numerics.Big_Numbers.Big_Reals till standardbiblioteket, vilket ger godtyckliga precisionsheltal och reella tal.
  • Agda : BigInt -datatypen på Epic backend implementerar aritmetik med godtycklig precision.
  • Common Lisp : ANSI Common Lisp-standarden stöder godtyckliga precisionsheltal, kvoter och komplexa tal.
  • C# : System.Numerics.BigInteger , från .NET 5
  • ColdFusion : den inbyggda PrecisionEvaluate() -funktionen utvärderar ett eller flera stränguttryck, dynamiskt, från vänster till höger, med hjälp av BigDecimal precisionsaritmetik för att beräkna värdena för godtyckliga aritmetiska precisionsuttryck.
  • D : standardbiblioteksmodul std.bigint
  • Dart : den inbyggda int - datatypen implementerar aritmetik med godtycklig precision.
  • Emacs Lisp : stöder heltal av godtycklig storlek, från och med Emacs 27.1.
  • Erlang : den inbyggda heltalsdatatypen implementerar aritmetik med godtycklig precision.
  • : standardbibliotekspaketet math/big implementerar heltal med godtycklig precision ( Int -typ), rationella tal ( Rått- typ) och flyttal ( flyt - typ)
  • Guile : de inbyggda exakta siffrorna är av godtycklig precision. Exempel: (expt 10 100) ger det förväntade (stora) resultatet. Exakta tal inkluderar även rationaler, så (/ 3 4) ger 3/4 . Ett av språken som implementeras i Guile är Scheme .
  • Haskell : den inbyggda Integer- datatypen implementerar aritmetik med godtycklig precision och standardmodulen Data.Ratio implementerar rationella tal.
  • Idris : den inbyggda heltalsdatatypen implementerar aritmetik med godtycklig precision.
  • ISLISP : ISO/IEC 13816:1997(E) ISLISP- standarden stöder godtyckliga precisionsheltal.
  • J : inbyggd utökad precision
  • Java : Klass java.math.BigInteger (heltal), java.math.BigDecimal Class (decimal)
  • JavaScript : från och med ES2020 stöds BigInt i de flesta webbläsare; biblioteket gwt -math tillhandahåller ett gränssnitt till java.math.BigDecimal , och bibliotek som DecimalJS , BigInt och Crunch stöder heltal med godtycklig precision.
  • Julia : de inbyggda BigFloat- och BigInt -typerna ger flyttals- och heltalsaritmetik med godtycklig precision.
  • newRPL : heltal och flytande tal kan vara av godtycklig precision (upp till minst 2000 siffror); maximalt antal siffror kan konfigureras (standard 32 siffror)
  • Nim : bigints och flera GMP-bindningar .
  • OKaml : Num- biblioteket stöder heltal och rational med godtycklig precision.
  • OpenLisp : stöder godtyckliga precisionsheltal.
  • Perl : Bignum- och bigrat -pragman ger BigNum och BigRational-stöd för Perl.
  • PHP : BC Math -modulen tillhandahåller godtycklig precisionsmatematik.
  • PicoLisp : stöder godtyckliga precisionsheltal.
  • Pike : den inbyggda int -typen kommer tyst att ändras från maskininbyggt heltal till godtycklig precision så snart värdet överstiger den förra kapaciteten.
  • Prolog : ISO-standardkompatibla Prolog-system kan kontrollera Prolog-flaggan "begränsad". De flesta av de stora Prolog-systemen stöder godtyckliga precisionsheltal.
  • Python : den inbyggda int (3.x) / långa (2.x) heltalstypen är av godtycklig precision. Klassen Decimal i standardbiblioteksmodulens decimal har användardefinierbar precision och begränsade matematiska operationer (exponentiering, kvadratrot, etc. men inga trigonometriska funktioner). Bråkklassen i modulbråken implementerar rationella tal . Mer omfattande godtycklig precisionsflyttalsarithmetik är tillgänglig med tredjepartspaketen "mpmath" och "bigfloat".
  • Racket : de inbyggda exakta siffrorna är av godtycklig precision. Exempel: (expt 10 100) ger det förväntade (stora) resultatet. Exakta tal inkluderar även rationaler, så (/ 3 4) ger 3/4 . Godtyckliga precisionsflyttal är inkluderade i standardbibliotekets matematiska/bigfloat- modul.
  • Raku : Rakudo stöder Int- och FatRat -datatyper som främjar heltal och rational med godtycklig precision.
  • Rexx : varianter inklusive Open Object Rexx och NetRexx
  • RPL (endast på HP 49/50-serien i exakt läge ): räknaren behandlar tal som anges utan decimalkomma som heltal snarare än flytande; heltal är av godtycklig precision endast begränsade av det tillgängliga minnet.
  • Ruby : den inbyggda Bignum heltalstypen är av godtycklig precision. Klassen BigDecimal i standardbiblioteksmodulen bigdecimal har användardefinierbar precision .
  • Schema : R 5 RS uppmuntrar, och R 6 RS kräver, att exakta heltal och exakta rational är av godtycklig precision.
  • Scala : Klass BigInt och Class BigDecimal .
  • Seed7 : bigInteger och bigRational .
  • Själv : godtyckliga precisionsheltal stöds av den inbyggda bigInt -typen.
  • Smalltalk : varianter inklusive Squeak , Smalltalk/X, GNU Smalltalk , Dolphin Smalltalk , etc.
  • SmartXML , ett gratis programmeringsspråk med integrerad utvecklingsmiljö (IDE) för matematiska beräkningar. Variabler av BigNumber kan användas, eller vanliga tal kan konverteras till stora tal med hjälp av konverteringsoperatorn # (t.ex. #2.3^2000.1 ). SmartXML stora siffror kan ha upp till 100 000 000 decimalsiffror och upp till 100 000 000 helsiffror.
  • Standard ML : Den valfria inbyggda IntInf- strukturen implementerar INTEGER -signaturen och stöder heltal med godtycklig precision.
  • Tcl : Från och med version 8.5 (2007) är heltal godtyckliga precision som standard. (Bakom kulisserna växlar språket till att använda en intern representation med godtycklig precision för heltal som är för stora för att passa i ett maskinord. Bindningar från C bör använda biblioteksfunktioner som Tcl_GetLongFromObj för att få värden som C-native datatyper från Tcl-heltal. )
  • Wolfram Language , liksom Mathematica , använder GMP för ungefärlig talberäkning.

Miniräknare online

För engångsberäkningar. Körs på server eller i webbläsare. Ingen installation eller kompilering krävs.

  • 1. https://www.mathsisfun.com/calculator-precision.html 200 platser
  • 2. http://birrell.org/andrew/ratcalc/ godtycklig; välj rationell eller fast punkt och antal platser
  • 3. PARI/GP online-kalkylator - https://pari.math.u-bordeaux.fr/gp.html (PARI/GP är ett allmänt använt datoralgebrasystem designat för snabba beräkningar inom talteori (faktoriseringar, algebraisk talteori, elliptiska kurvor, modulära former, L-funktioner...), men innehåller också ett stort antal andra användbara funktioner för att beräkna med matematiska entiteter såsom matriser, polynom, potensserier, algebraiska tal etc., och en massa transcendentala funktioner. PARI är också tillgängligt som ett C-bibliotek för att möjliggöra snabbare beräkningar.)
  • 4.1. AutoCalcs - tillåter användare att söka, skapa, lagra och dela flerstegsberäkningar med explicita uttryck med automatiserad enhetskonvertering. Det är en plattform som tillåter användare att gå längre än enhetskonvertering, vilket i sin tur ger en avsevärt förbättrad effektivitet. Många exempelberäkningar finns på AutoCalcs Docs-webbplats. Beräkningar skapade med AutoCalcs kan bäddas in på tredje parts webbplatser.
  • 4.2. AutoCalcs Docs - med tanke på ovan nämnda AutoCalcs som beräkningsmotor, är denna Docs-webbplats ett bibliotek med en mängd beräkningar, där varje beräkning i huvudsak är en webbapp som kan köras online, anpassas ytterligare och mycket mer. Avbildande läser en bok med mycket beräkningar, då är detta boken/manualen med alla beräkningar som kan användas i farten. Det är värt att nämna - när enheter är inblandade i beräkningarna kan enhetsomvandlingen automatiseras.