GiNaC написана на ISO-C++ и распространяется под лицензией GNU GPLv3.
Среди основных возможностей GiNaC следующее:
- Быстрые манипуляции с большими целыми числами и рациональными дробями благодаря использованию библиотеки CLN, в основе работы которой лежит метод умножения Карацубы (Karatsuba) и метод умножения Шёнхаге-Штрассена (Schönhage-Strassen) для больших целых чисел
- Эффективная обработка полиномов от нескольких переменных и рациональных функций
- Поддержка линейной алгебры включает символьные матрицы, векторы и решение уравнений
- Очень быстрое эвристическое вычисление наибольшего общего делителя (НОД) для полиномов
- Большое количество встроенных функций (sin, cos, atan, sinh, factorial, итд)
- Символьное дифференцирование и разложение в ряды для всех встроенных функций
- Различные формы возвращаемого результат (в том числе для последующей численной подстановки)
- Эффективное и безопасное использование памяти благодаря внутреннему подсчёту ссылок (reference counting) на все выражения
Связанный проект PyGiNaC - интерфейс к библиотеке GiNaC на Python, заброшен с версии GiNaC 1.3.2, тем не менее исходный код всё ещё доступен в CVS репозитории.
Со списком изменений можно ознакомиться в архиве с исходными кодами и на странице проекта.
По сравнению с версией 1.5.8 в новом выпуске содержится ряд исправлений, удаление зависимостей от autogen, а также улучшение алгоритма упрощения и добавление метода сопряжений для гиперболических косинуса, синуса и тангенса.
>>> Загрузить исходный код
>>> Страница проекта
оригинал на linux.org.ru