Este artículo enumera bibliotecas, aplicaciones y otro software que habilitan o admiten aritmética de precisión arbitraria .
Bibliotecas
Software de aplicación independiente
Software que admite cálculos de precisión arbitraria:
- bc es el lenguaje aritmético de precisión arbitraria POSIX que viene estándar en la mayoría de los sistemas tipo Unix .
- dc : "Calculadora de escritorio", calculadora RPN de precisión arbitraria que viene estándar en la mayoría de los sistemas tipo Unix .
- KCalc , calculadora científica basada en Linux
- Maxima : un sistema de álgebra computacional cuyos números enteros bignum se heredan directamente de su lenguaje de implementación Common Lisp . Además, admite números de punto flotante de precisión arbitraria, bigfloats .
- Maple , Mathematica y otros programas de álgebra computacional incluyen aritmética de precisión arbitraria. Mathematica utiliza GMP para el cálculo de números aproximados.
- PARI/GP , un sistema de álgebra computacional de código abierto que admite precisión arbitraria.
- Qalculate!, una calculadora de precisión arbitraria de software libre, de código abierto, con autocompletado.
- SageMath , un sistema de álgebra computacional de código abierto
- SymPy , un CAS
- Caja de herramientas de matemáticas simbólicas ( MATLAB )
- La Calculadora de Windows , desde Windows 98, utiliza precisión arbitraria para operaciones básicas (suma, resta, multiplicación, división) y 32 dígitos de precisión para operaciones avanzadas (raíz cuadrada, funciones trascendentales).
- SmartXML, un lenguaje de programación gratuito con entorno de desarrollo integrado (IDE) para cálculos matemáticos. Se pueden utilizar variables de tipo BigNumber o se pueden convertir números regulares en números grandes utilizando el operador de conversión # (por ejemplo, #2.3^2000.1). Los números grandes de SmartXML pueden tener hasta 100.000.000 de dígitos decimales y hasta 100.000.000 de dígitos enteros.
Idiomas
Lenguajes de programación que admiten cálculos de precisión arbitraria, ya sea integrados o en la biblioteca estándar del lenguaje:
- Ada : la próxima revisión Ada 202x agrega los paquetes Ada.Numerics.Big_Numbers.Big_Integers y Ada.Numerics.Big_Numbers.Big_Reals a la biblioteca estándar, proporcionando números enteros y reales de precisión arbitraria.
- Agda : el
BigInt
tipo de datos en el backend de Epic implementa aritmética de precisión arbitraria. - Common Lisp : el estándar ANSI Common Lisp admite números enteros, de proporción y complejos de precisión arbitraria.
- C# : System.Numerics.BigInteger, de .NET 5
- ColdFusion : la función incorporada
PrecisionEvaluate()
evalúa una o más expresiones de cadena, dinámicamente, de izquierda a derecha, utilizando aritmética de precisión BigDecimal para calcular los valores de expresiones aritméticas de precisión arbitraria. - D : módulo de la biblioteca estándar std.bigint
- Dart : el tipo de datos incorporado
int
implementa aritmética de precisión arbitraria. - Emacs Lisp : admite números enteros de tamaño arbitrario, a partir de Emacs 27.1.
- Erlang : el tipo de datos incorporado
Integer
implementa aritmética de precisión arbitraria. - Go : el paquete de biblioteca estándar math/big implementa números enteros de precisión arbitraria (
Int
tipo), números racionales ( Rat
tipo) y números de punto flotante ( Float
tipo) - Guile : los números incorporados
exact
tienen una precisión arbitraria. Ejemplo: (expt 10 100)
produce el resultado esperado (grande). Los números exactos también incluyen números racionales, por lo que (/ 3 4)
produce 3/4
. Uno de los lenguajes implementados en Guile es Scheme . - Haskell : el tipo de datos incorporado
Integer
implementa aritmética de precisión arbitraria y el Data.Ratio
módulo estándar implementa números racionales. - Idris : el tipo de datos incorporado
Integer
implementa aritmética de precisión arbitraria. - ISLISP : El estándar ISO/IEC 13816:1997(E) ISLISP admite números enteros de precisión arbitraria.
- J : precisión extendida incorporada
- Java : Clase
java.math.BigInteger
(entero), java.math.BigDecimal
Clase (decimal) - JavaScript : a partir de ES2020 , BigInt es compatible con la mayoría de los navegadores; [2] la biblioteca gwt-math proporciona una interfaz para
java.math.BigDecimal
, y bibliotecas como DecimalJS, BigInt y Crunch admiten números enteros de precisión arbitraria. - Julia : los tipos BigFloat y incorporados
BigInt
proporcionan aritmética de números enteros y de punto flotante de precisión arbitraria respectivamente. - newRPL : los números enteros y flotantes pueden tener una precisión arbitraria (hasta al menos 2000 dígitos); número máximo de dígitos configurable (predeterminado: 32 dígitos)
- Nim : bigints y múltiples enlaces GMP.
- OCaml : La biblioteca Num admite números enteros y racionales de precisión arbitraria.
- OpenLisp : admite números enteros de precisión arbitraria.
- Perl : Los pragmas bignum y bigrat proporcionan soporte BigNum y BigRational para Perl.
- PHP : El módulo BC Math proporciona matemáticas de precisión arbitraria.
- PicoLisp : admite números enteros de precisión arbitraria.
- Pike : el tipo incorporado
int
cambiará silenciosamente de un entero nativo de la máquina a una precisión arbitraria tan pronto como el valor exceda la capacidad del primero. - Prolog : los sistemas Prolog compatibles con el estándar ISO pueden marcar la casilla Prolog como "limitada". La mayoría de los principales sistemas Prolog admiten números enteros de precisión arbitraria.
- Python : el tipo entero incorporado
int
(3.x) / (2.x) es de precisión arbitraria. La clase en el módulo de la biblioteca estándar decimal tiene precisión definible por el usuario y operaciones matemáticas limitadas (exponenciación, raíz cuadrada, etc., pero no funciones trigonométricas). La clase en el módulo fracciones implementa números racionales. Hay disponible una aritmética de punto flotante de precisión arbitraria más extensa con los paquetes de terceros "mpmath" y "bigfloat".long
Decimal
Fraction
- Racket : los números integrados
exact
tienen una precisión arbitraria. Ejemplo: (expt 10 100)
produce el resultado esperado (grande). Los números exactos también incluyen números racionales, por lo que (/ 3 4)
produce 3/4
. Los números de punto flotante de precisión arbitraria se incluyen en el módulo math/bigfloat de la biblioteca estándar. - Raku : Rakudo admite tipos de datos Int y FatRat que promueven números enteros y racionales de precisión arbitraria.
- Rexx : variantes que incluyen Open Object Rexx y NetRexx
- RPL (sólo en la serie HP 49/50 en modo exacto ): la calculadora trata los números ingresados sin punto decimal como números enteros en lugar de como números de punto flotante; los números enteros tienen una precisión arbitraria limitada únicamente por la memoria disponible.
- Ruby : el tipo entero incorporado
Bignum
tiene una precisión arbitraria. La BigDecimal
clase del módulo de la biblioteca estándar bigdecimal tiene una precisión que puede definir el usuario. - Esquema : R 5 RS alienta, y R 6 RS requiere, que los números enteros exactos y los racionales exactos sean de precisión arbitraria.
- Scala : Clase BigInt y Clase BigDecimal.
- Semilla7 : bigInteger y bigRational.
- Self : los números enteros de precisión arbitraria son compatibles con el tipo incorporado
bigInt
. - Smalltalk : variantes que incluyen Squeak , Smalltalk/X, GNU Smalltalk , Dolphin Smalltalk , etc.
BigNumber
SmartXML, un lenguaje de programación gratuito con un entorno de desarrollo integrado (IDE) para cálculos matemáticos. Se pueden utilizar variables de tipo o se pueden convertir números regulares en números grandes mediante el operador de conversión #
(por ejemplo, #2.3^2000.1
). Los números grandes de SmartXML pueden tener hasta 100.000.000 de dígitos decimales y hasta 100.000.000 de dígitos enteros.- ML estándar : la estructura IntInf incorporada opcional implementa la firma INTEGER y admite números enteros de precisión arbitraria.
- Tcl : A partir de la versión 8.5 (2007), los números enteros tienen una precisión arbitraria de manera predeterminada. (En segundo plano, el lenguaje cambia y comienza a utilizar una representación interna de precisión arbitraria para números enteros demasiado grandes para caber en una palabra de máquina. Las vinculaciones desde C deberían utilizar funciones de biblioteca como, por ejemplo,
Tcl_GetLongFromObj
para obtener valores como tipos de datos nativos de C a partir de números enteros de Tcl). - Wolfram Language , al igual que Mathematica , emplea GMP para el cálculo de números aproximados.
Calculadoras en línea
Para cálculos puntuales. Se ejecuta en el servidor o en el navegador. No requiere instalación ni compilación.
- 1. https://www.mathsisfun.com/calculator-precision.html 200 lugares
- 2. http://birrell.org/andrew/ratcalc/ arbitrario; seleccione racional o punto fijo y número de lugares
- 3. Calculadora en línea PARI/GP - https://pari.math.u-bordeaux.fr/gp.html (PARI/GP es un sistema de álgebra computacional ampliamente utilizado, diseñado para cálculos rápidos en teoría de números (factorizaciones, teoría de números algebraicos, curvas elípticas, formas modulares, funciones L...), pero también contiene una gran cantidad de otras funciones útiles para calcular con entidades matemáticas como matrices, polinomios, series de potencias, números algebraicos, etc., y muchas funciones trascendentales. PARI también está disponible como una biblioteca C para permitir cálculos más rápidos).
- 4.1. AutoCalcs: permite a los usuarios buscar, crear, almacenar y compartir cálculos de varios pasos mediante expresiones explícitas que incluyen conversión de unidades automática. Es una plataforma que permite a los usuarios ir más allá de la conversión de unidades, lo que a su vez mejora significativamente la eficiencia. Se pueden encontrar muchos cálculos de muestra en el sitio de documentación de AutoCalcs. Los cálculos creados con AutoCalcs se pueden incorporar en sitios web de terceros.
- 4.2. Documentos de AutoCalcs: considerando a AutoCalcs como el motor de cálculo, este sitio de documentos es una biblioteca con una gran cantidad de cálculos, donde cada cálculo es esencialmente una aplicación web que puede ejecutarse en línea, personalizarse y mucho más. Imagínese leyendo un libro con muchos cálculos, este es el libro/manual con todos los cálculos que se pueden usar sobre la marcha. Vale la pena mencionar que, cuando se utilizan unidades en los cálculos, la conversión de unidades se puede automatizar.
Referencias
- ^ "¡Se ha lanzado OpenSSL 3.0!". Blog de OpenSSL . 7 de septiembre de 2021 . Consultado el 11 de octubre de 2024 .
- ^ "BigInt". ¿Puedo usar ? Consultado el 16 de marzo de 2021 .