Первоначальный выпуск | 24 февраля 2005 г. ( 2005-02-24 ) |
---|---|
Стабильный релиз | 10.4 [1] (20 июля 2024 г. (20 July 2024) ) |
Предварительный релиз | 10.3.rc2 / 4 марта 2024 г. (2024-03-04) |
Репозиторий |
|
Написано в | Питон , Cython |
Операционная система | Linux , macOS , Microsoft Windows , Solaris , Android , iOS |
Платформа | |
Размер | Приблизительно 112–3319 МБ |
Тип | Система компьютерной алгебры |
Лицензия | GPLv3 [2] |
Веб-сайт | www.sagemath.org |
SageMath (ранее Sage или SAGE , «Система для экспериментов с алгеброй и геометрией» [3] ) — это система компьютерной алгебры (CAS), функции которой охватывают многие аспекты математики , включая алгебру , комбинаторику , теорию графов , теорию групп , дифференцируемые многообразия , численный анализ , теорию чисел , исчисление и статистику .
Первая версия SageMath была выпущена 24 февраля 2005 года как бесплатное программное обеспечение с открытым исходным кодом на условиях GNU General Public License версии 2 с первоначальными целями создания «альтернативы Magma , Maple , Mathematica и MATLAB с открытым исходным кодом ». [4] Создатель и руководитель проекта SageMath Уильям Стайн был математиком из Вашингтонского университета .
SageMath использует синтаксис, напоминающий синтаксис Python [ 5], поддерживающий процедурные , функциональные и объектно-ориентированные конструкции.
При разработке Sage Стайн осознавал, что существует множество пакетов программного обеспечения для математики с открытым исходным кодом, уже написанных на разных языках , а именно: C , C++ , Common Lisp , Fortran и Python .
Вместо того, чтобы изобретать велосипед , Sage (который написан в основном на Python и Cython ) объединяет множество специализированных пакетов программного обеспечения CAS в общий интерфейс, для которого пользователю нужно знать только Python. Однако Sage содержит сотни тысяч уникальных строк кода, добавляющих новые функции и создающих интерфейсы между его компонентами. [6]
SageMath использует как студентов, так и профессионалов для разработки. Разработка SageMath поддерживается как волонтерской работой, так и грантами . [7] Однако только в 2016 году был нанят первый штатный разработчик Sage (финансируемый грантом ЕС ). [8] В том же году Стайн описал свое разочарование в связи с отсутствием академического финансирования и полномочий для разработки программного обеспечения, назвав это причиной своего решения оставить свою постоянную академическую должность, чтобы работать полный рабочий день над проектом в недавно созданной компании SageMath, Inc. [8]
И двоичные файлы , и исходный код доступны для SageMath на странице загрузки. Если SageMath собран из исходного кода, многие из включенных библиотек, таких как OpenBLAS , FLINT , GAP (система компьютерной алгебры) и NTL , будут настроены и оптимизированы для этого компьютера с учетом количества процессоров , размера их кэшей , наличия аппаратной поддержки инструкций SSE и т. д.
Cython может увеличить скорость программ SageMath, поскольку код Python преобразуется в C. [ 12]
SageMath — это свободное программное обеспечение , распространяемое на условиях GNU General Public License версии 3. [2]
SageMath 10.0 (май 2023 г.) требует наличия подсистемы Windows для Linux версии 2, [13] которая, в свою очередь, требует, чтобы Windows работала как клиент Hyper-V . SageMath 8.0 (июль 2017 г.), разработка которого финансируется проектом OpenDreamKit, [8] успешно собрана на Cygwin , и был доступен двоичный установщик для 64-разрядных версий Windows. [14] Хотя Microsoft спонсировала версию SageMath для Windows, до 2016 года пользователям Windows приходилось использовать технологию виртуализации , такую как VirtualBox, для запуска SageMath. [15]
Дистрибутивы Linux , в которых SageMath доступен как пакет, это Fedora , Arch Linux , Debian , Ubuntu и NixOS . В Gentoo он доступен через layman в оверлее "sage-on-gentoo" [16] . Пакет, используемый NixOS, доступен для использования в других дистрибутивах из-за независящей от дистрибутивов природы его менеджера пакетов Nix .
Префикс Gentoo также предоставляет Sage для других операционных систем.
Философия SageMath заключается в использовании существующих библиотек с открытым исходным кодом везде, где они есть. Поэтому он использует множество библиотек из других проектов.
Математические пакеты, содержащиеся в SageMath [17] | Алгебра | GAP , Единственное число , FLINT |
---|---|---|
Алгебраическая геометрия | Единственное число | |
Арифметика произвольной точности | GMP , MPFR , MPFI , NTL , mpmath, Arb | |
Арифметическая геометрия | PARI/GP , NTL , mwrank , ECM | |
Исчисление | Максима , SymPy , GiNaC , Giac , FriCAS | |
Комбинаторика | Симметрика, Шалфей-Комбинат | |
Линейная алгебра | ATLAS , BLAS , LAPACK , NumPy , LinBox, IML, GSL | |
Теория графов | СетьX | |
Теория групп | ЗАЗОР | |
Численные вычисления | GSL, SciPy , NumPy , ATLAS | |
Теория чисел | PARI/GP , FLINT , NTL | |
Статистические вычисления | R , SciPy | |
Другие пакеты, содержащиеся в SageMath | Оболочка командной строки | IPython |
База данных | ZODB , SQLite | |
Графический интерфейс | Блокнот SageMath, MathJax [18] (ранее jsMath ) | |
Графика | matplotlib , Тахион , GD , Jmol | |
Интерактивный язык программирования | Питон | |
Нетворкинг | Скрученный | |
Другие математические пакеты, доступные для SageMath | Дифференциальная геометрия и тензорное исчисление | Коллекторы Sage |