Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

CLN - это бесплатная библиотека для арифметики произвольной точности . Он работает с целыми числами со знаком , рациональными числами , числами с плавающей запятой , комплексными числами , модульными числами и одномерными многочленами . Его язык программирования реализации - C ++ .

CLN использует объектно-ориентированные методы и перегрузку операторов для достижения естественного алгебраического синтаксиса: сумма x двух переменных a и b записывается как x  =  a  +  b , в отличие от функции sum (& xab ).

CLN использует наследование классов для моделирования естественных подмножеств доступных числовых типов: например, целочисленный класс является подтипом рационального класса, так же как целые числа являются подмножеством рациональных чисел. Комплексные числа и все их подтипы ведут себя точно так же, как типы чисел, известные в языке Common Lisp , что придает CLN другое значение: оно становится сокращением от Common Lisp Numbers . Благодаря этому CLN может использоваться и используется для реализации Common Lisp, других интерпретируемых языков или систем компьютерной алгебры .

Реализация эффективна. Его можно настроить для использования библиотеки GNU Multi-Precision в качестве ядра для внутренних циклов, критичных к скорости, и реализовать расширенные алгоритмы, такие как умножение Шёнхаге – Штрассена , двоичное разбиение и другие. Все объекты CLN либо мгновенно, либо подсчитываются по ссылкам , что обеспечивает непрерывную сборку мусора без нагрузки на основное приложение.

Внешние ссылки [ править ]