Эта библиотека реализует произвольную арифметику на больших целых числах и на рациональные.
Это устаревшая библиотека. Раньше он был частью основного распределения OCAML (в otherlibs/num
), но теперь распределяется отдельно. Новые приложения, которые требуют арифметики произвольного назначения, должны использовать библиотеку Zarith (https://github.com/ocaml/zarith) вместо библиотеки Num, и более старые приложения, которые уже используют Num, рекомендуются переключаться на Zarith. Зарит обеспечивает гораздо лучшую производительность, чем NUM, и имеет более приятный API.
Чтобы использовать библиотеку Bignum из ваших программ, рекомендуется использовать Ocamlfind:
ocamlfind ocamlc -package num ...
ocamlfind ocamlopt -package num ...
В качестве альтернативы вы можете сделать
ocamlc <options> nums.cma <.cmo and .ml files>
ocamlopt <options> nums.cmxa <.cmx and .ml files>
Для использования Toplevel просто выпустите команды
#use "topfind";;
#package "num";;
или
#load "nums.cma";;
Следующие модули задокументированы в их интерфейсах:
Big_int
: операции на целых числах произвольного назначенияNum
: операции по произвольному назначению (целые числа и рациональные участки)Arith_status
: флаги, которые контролируют рациональную арифметикуБольшая документация по функциям, представленным в этой библиотеке, можно найти в справочном руководстве CAML Numbers Valérie Ménissier-Morain, технический отчет INRIA 141, июль 1992 г., http://hal.inria.fr/docs/00/07/00/ 27/pdf/rt-0141.pdf
Предварительные условия: OCAML версия 4.04 или новее.
make all PROFILE=release
make test
make install
make clean
Эта библиотека получена из реализации Valérie Ménissier-Morain рациональной арифметики для CAML V3.1. Ксавье Лерой сделал порт CAML Light. Виктор Мануэль Гулиас Фернандес сделал первоначальный порт CAML Special Light / Ocaml. Пьер Вейс сделал большую часть технического обслуживания и исправления ошибок.
Первоначально низкоуровневые большие целочисленные операции были предоставлены пакетом Bignum, разработанным Бернардом Серпеттом, Жаном Вуйлимином и Жан-Клодом Херве (Inria и Digital PRL). Проблемы с лицензией заставили нас заменить пакет Bignum. Текущая реализация больших целочисленных операций низкого уровня обусловлена Ксавьером Леруа.