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