![]() | This article's use of external links may not follow Wikipedia's policies or guidelines.(September 2022) |
This article lists libraries, applications, and other software which enable or support arbitrary-precision arithmetic.
Software that supports arbitrary precision computations:
Programming languages that support arbitrary precision computations, either built-in, or in the standard library of the language:
Ada.Numerics.Big_Numbers.Big_Integers
and Ada.Numerics.Big_Numbers.Big_Reals
packages to the standard library, providing arbitrary precision integers and real numbers.BigInt
datatype on Epic backend implements arbitrary-precision arithmetic.System.Numerics.BigInteger
, from .NET 5PrecisionEvaluate()
function evaluates one or more string expressions, dynamically, from left to right, using BigDecimal precision arithmetic to calculate the values of arbitrary precision arithmetic expressions.std.bigint
int
datatype implements arbitrary-precision arithmetic.Integer
datatype implements arbitrary-precision arithmetic.math/big
implements arbitrary-precision integers (Int
type), rational numbers (Rat
type), and floating-point numbers (Float
type)exact
numbers are of arbitrary precision. Example: (expt 10 100)
produces the expected (large) result. Exact numbers also include rationals, so (/ 3 4)
produces 3/4
. One of the languages implemented in Guile is Scheme.Integer
datatype implements arbitrary-precision arithmetic and the standard Data.Ratio
module implements rational numbers.Integer
datatype implements arbitrary-precision arithmetic. java.math.BigInteger
(integer), java.math.BigDecimal
Class (decimal)java.math.BigDecimal
, and libraries such as DecimalJS, BigInt and Crunch support arbitrary-precision integers.BigFloat
and BigInt
types provide arbitrary-precision floating point and integer arithmetic respectively.bignum
and bigrat
pragmas provide BigNum and BigRational support for Perl.int
type will silently change from machine-native integer to arbitrary precision as soon as the value exceeds the former's capacity.int
(3.x) / long
(2.x) integer type is of arbitrary precision. The Decimal
class in the standard library module decimal has user definable precision and limited mathematical operations (exponentiation, square root, etc. but no trigonometric functions). The Fraction
class in the module fractions implements rational numbers. More extensive arbitrary precision floating point arithmetic is available with the third-party "mpmath" and "bigfloat" packages.exact
numbers are of arbitrary precision. Example: (expt 10 100)
produces the expected (large) result. Exact numbers also include rationals, so (/ 3 4)
produces 3/4
. Arbitrary precision floating point numbers are included in the standard library math/bigfloat module.Int
and FatRat
data types that promote to arbitrary-precision integers and rationals.Bignum
integer type is of arbitrary precision. The BigDecimal
class in the standard library module bigdecimal has user definable precision.Class BigInt
and Class BigDecimal
.bigInteger
and bigRational
.bigInt
type.BigNumber
type can be used, or regular numbers can be converted to big numbers using conversion operator #
(e.g., #2.3^2000.1
). SmartXML big numbers can have up to 100,000,000 decimal digits and up to 100,000,000 whole digits.IntInf
structure implements the INTEGER signature and supports arbitrary-precision integers.Tcl_GetLongFromObj
to get values as C-native data types from Tcl integers.)For one-off calculations. Runs on server or in browser. No installation or compilation required.