Список арифметических программ произвольной точности - List of arbitrary-precision arithmetic software

В этой статье перечислены библиотеки, приложения и другое программное обеспечение, которое позволяет или поддерживает арифметику произвольной точности .

Библиотеки

Имя пакета-библиотеки Тип номера Язык Лицензия
Библиотека Boost Multiprecision Целые , рациональные , поплавки , и сложный C ++ и бэкенды с использованием GMP / MPFR Увеличение
TTMath Целые числа , числа с плавающей запятой C ++ BSD
LibBF Целые числа , числа с плавающей запятой C Массачусетский технологический институт
BeeNum Целые числа , рациональные числа C ++ Массачусетский технологический институт
длинный интервал Целые числа C GPL
Библиотека GNU Multi-Precision MPFR ) Целые числа , рациональные числа и числа с плавающей запятой C и C ++ с привязками LGPL
CLN Целые , рациональные , поплавки , и сложный C ++ GPL
ARPREC Целые числа , числа с плавающей запятой и комплексные C ++ BSD-типа
MAPM , MAPM Целые , десятичные и комплексные числа с плавающей запятой C (привязки для C ++ ) Бесплатное ПО
MPIR (математическое программное обеспечение) Целые числа , рациональные числа и числа с плавающей запятой C и C ++ с привязками LGPL
ОСНОВНОЙ Целые числа , рациональные числа и числа с плавающей запятой C ++ Бесплатное ПО
LEDA Целые числа , рациональные числа и числа с плавающей запятой C ++ Бесплатное ПО
CGAL Целые числа , рациональные числа и числа с плавающей запятой C ++ LGPL
GeometricИнструменты Целые числа и рациональные числа C ++ Увеличение
LibTomMath Целые числа C Public Domain или WTFPL двойной лицензией )
libgcrypt Целые числа C LGPL
OpenSSL Целые числа C Лицензия Apache v2
Арбитр Плавает C Лицензия MIT
mbed TLS Целые числа C Лицензия Apache v2 и GPL
JScience Целые числа , рациональные числа и числа с плавающей запятой Ява BSD-типа
JAS Целые , рациональные и комплексные числа Ява LGPL
JLinAlg Десятичные дроби , рациональные числа и комплексные числа Ява LGPL
Apfloat Целые , рациональные , поплавки , и комплексные числа Java, C ++ LGPL
MPArith Целые , рациональные , поплавки , и комплексные числа Паскаль, Дельфи Злиб
InfInt Целые числа C ++ MPL
bigz Целые числа , рациональные числа C (привязки для C ++ ) BSD-типа
Класс C ++ BigInt Целые числа C ++ GPL
пандус Целые числа Ржавчина Лицензия Apache v2
плавать Плавает Ржавчина Лицензия Apache v2
fgmp Целые числа C Всеобщее достояние
имат Целые числа , рациональные числа ANSI C Массачусетский технологический институт
Hebimath Целые числа , рациональные числа , натуральные числа , числа с плавающей запятой С ( C99 ) Массачусетский технологический институт
bsdnt Целые числа , натуральные числа C BSD (2 предложения)
целочисленный простой Целые числа Haskell BSD (3 предложения)
Bigints Целые числа Ним Массачусетский технологический институт
libzahl (WIP) Целые числа C ISC
десятичный Десятичные дроби Идти BSD (3 предложения)
mpmath Поплавки и комплекс Python BSD
NumEval Целые числа , рациональные числа PHP, C # Лицензия MIT
Вычислимые числа Вычислимые числа Common Lisp Бесплатное ПО
libmpdec и libmpdec ++ Десятичные числа с плавающей запятой C и C ++ BSD (2 предложения)

Автономное прикладное программное обеспечение

Программное обеспечение, поддерживающее вычисления произвольной точности:

  • Ьс в POSIX произвольной точности арифметических языке , который поставляется со стандартным на большинстве Unix-подобных систем.
    • dc : "Desktop Calculator" RPN-калькулятор произвольной точности, входящий в стандартную комплектацию большинства Unix-подобных систем.
  • KCalc , научный калькулятор на базе Linux
  • Maxima : система компьютерной алгебры, в которой большие целые числа напрямую унаследованы от языка ее реализации Common Lisp . Кроме того, он поддерживает числа с плавающей запятой произвольной точности, bigfloats .
  • Maple , Mathematica и несколько других программ компьютерной алгебры включают арифметику произвольной точности. Mathematica использует GMP для приблизительного вычисления чисел.
  • PARI / GP , система компьютерной алгебры с открытым исходным кодом , поддерживающая произвольную точность.
  • Qalculate! , бесплатный программный калькулятор произвольной точности с открытым исходным кодом и автозаполнением.
  • SageMath , система компьютерной алгебры с открытым исходным кодом
  • SymPy , CAS
  • Набор инструментов Symbolic Math ( MATLAB )
  • Калькулятор Windows , начиная с Windows 98, использует произвольную точность для основных операций (сложение, вычитание, умножение, деление) и 32 цифры точности для расширенных операций (квадратный корень, трансцендентные функции).
  • SmartXML , бесплатный язык программирования с интегрированной средой разработки (IDE) для математических вычислений. Можно использовать переменные типа BigNumber или преобразовать обычные числа в большие числа с помощью оператора преобразования # (например, # 2.3 ^ 2000.1). Большие числа SmartXML могут иметь до 100000000 десятичных цифр и до 100000000 целых цифр.

Языки

Языки программирования, поддерживающие вычисления произвольной точности, встроенные или в стандартной библиотеке языка:

  • Agda : BigInt тип данных на бэкэнде Epic реализует арифметику произвольной точности.
  • Common Lisp : Стандарт ANSI Common Lisp поддерживает целые числа произвольной точности, отношения и комплексные числа.
  • C # :, System.Numerics.BigInteger из .NET 5
  • ColdFusion : встроенная PrecisionEvaluate() функция вычисляет одно или несколько строковых выражений динамически слева направо, используя арифметику точности BigDecimal для вычисления значений арифметических выражений произвольной точности.
  • D : стандартный библиотечный модуль std.bigint
  • Dart : встроенный int тип данных реализует арифметику произвольной точности.
  • Emacs Lisp : поддерживает целые числа произвольного размера, начиная с Emacs 27.1.
  • Erlang : встроенный Integer тип данных реализует арифметику произвольной точности.
  • Go : стандартный пакет библиотеки math/big реализует целые числа произвольной точности ( Int тип), рациональные числа ( Rat тип) и числа с плавающей запятой ( Float тип)
  • Коварство : встроенные exact числа имеют произвольную точность. Пример: (expt 10 100) дает ожидаемый (большой) результат. Точные числа также включают рациональные числа, поэтому (/ 3 4) производит 3/4 . Одним из языков, реализованных в Guile, является Scheme .
  • Haskell : встроенный Integer тип данных реализует арифметику произвольной точности, а стандартный Data.Ratio модуль реализует рациональные числа.
  • Идрис : встроенный Integer тип данных реализует арифметику произвольной точности.
  • ISLISP : Стандарт ISO / IEC 13816: 1997 (E) ISLISP поддерживает целые числа произвольной точности.
  • J : встроенная функция повышенной точности
  • Java : класс java.math.BigInteger (целое число), java.math.BigDecimal класс (десятичный)
  • JavaScript : начиная с ES2020 , BigInt поддерживается в большинстве браузеров; GWT-математическая библиотека предоставляет интерфейс java.math.BigDecimal , и библиотеки , такие как DecimalJS , BigInt и Crunch поддержки произвольной точности целых чисел.
  • Джулия : встроенная BigFloat и BigInt типы обеспечивают произвольную точность с плавающей точкой и целочисленной арифметикой соответственно.
  • newRPL : целые числа и числа с плавающей запятой могут иметь произвольную точность (не менее 2000 цифр); максимальное количество настраиваемых цифр (по умолчанию 32 цифры)
  • Ним : bigints и множественные привязки GMP .
  • OCaml : библиотека Num поддерживает целые и рациональные числа произвольной точности.
  • OpenLisp : поддерживает целые числа произвольной точности.
  • Perl : bignum и bigrat псевдокомментарии обеспечивают BigNum и BigRational поддержку Perl.
  • PHP : модуль BC Math обеспечивает математику произвольной точности.
  • PicoLisp : поддерживает целые числа произвольной точности.
  • Пайк : встроенный int тип незаметно изменится с машинного целого числа на произвольную точность, как только значение превысит возможности первого.
  • Пролог : совместимые со стандартом ISO системы Пролога могут проверять флаг Пролога как «ограниченный». Большинство основных систем Prolog поддерживают целые числа произвольной точности.
  • Python : встроенный целочисленный тип int (3.x) / long (2.x) имеет произвольную точность. Decimal Класс в стандартной библиотеке модуля десятичного имеет определяемый пользователь точность и ограниченные математические операции (возведение в степень, квадратный корень и т.д. , но не тригонометрические функций). Fraction Класс в модуле фракциях реализует рациональные числа. Более обширная арифметика произвольной точности с плавающей запятой доступна в сторонних пакетах "mpmath" и "bigfloat".
  • Ракетка : встроенные exact числа имеют произвольную точность. Пример: (expt 10 100) дает ожидаемый (большой) результат. Точные числа также включают рациональные числа, поэтому (/ 3 4) производит 3/4 . Числа произвольной точности с плавающей запятой включены в стандартный библиотечный модуль math / bigfloat .
  • Раку : Rakudo поддерживает Int и FatRat типы данных , которые способствуют к произвольной точности целых и рациональных чисел.
  • Rexx : варианты, включая Open Object Rexx и NetRexx
  • RPL (только для серии HP 49/50 в точном режиме ): калькулятор рассматривает числа, введенные без десятичной точки, как целые, а не как числа с плавающей запятой; целые числа имеют произвольную точность, ограниченную только доступной памятью.
  • Ruby : встроенный Bignum целочисленный тип произвольной точности. BigDecimal Класс в стандартной библиотеке модуля BigDecimal имеет определяемых пользователем точность.
  • Схема : R 5 RS поощряет, а R 6 RS требует, чтобы точные целые числа и точные рациональные числа имели произвольную точность.
  • Scala : Class BigInt и Class BigDecimal .
  • Seed7 : bigInteger и bigRational .
  • Self : целые числа произвольной точности поддерживаются встроенным bigInt типом.
  • Smalltalk : варианты, включая Squeak , Smalltalk / X , GNU Smalltalk , Dolphin Smalltalk и т. Д.
  • SmartXML , бесплатный язык программирования с интегрированной средой разработки (IDE) для математических вычислений. BigNumber Могут использоваться переменные типа или обычные числа могут быть преобразованы в большие числа с помощью оператора преобразования # (например, #2.3^2000.1 ). Большие числа SmartXML могут иметь до 100000000 десятичных цифр и до 100000000 целых цифр.
  • Стандартный ML : дополнительная встроенная IntInf структура реализует подпись INTEGER и поддерживает целые числа произвольной точности.
  • Tcl : Начиная с версии 8.5 (2007), по умолчанию целые числа имеют произвольную точность. (За кулисами язык переключается на использование внутреннего представления произвольной точности для целых чисел, слишком больших, чтобы поместиться в машинное слово. Привязки из C должны использовать библиотечные функции, такие как Tcl_GetLongFromObj получение значений в виде собственных типов данных C из целых чисел Tcl.)
  • Wolfram Language , как и Mathematica , использует GMP для приблизительного вычисления чисел.

Онлайн калькуляторы

Для разовых расчетов. Работает на сервере или в браузере. Не требует установки или компиляции.

Рекомендации