stringtranslate.com

SageMath

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 заключается в использовании существующих библиотек с открытым исходным кодом везде, где они есть. Поэтому он использует множество библиотек из других проектов.

Смотрите также

Ссылки

  1. ^ "Выпуск 10.4". 20 июля 2024 г. Получено 27 июля 2024 г.
  2. ^ ab "COPYING.txt – sage.git". Репозиторий Sage. Архивировано из оригинала 14 марта 2017 г. Получено 4 апреля 2017 г.
  3. ^ Стайн, Уильям. "SAGE: Компьютерная система для экспериментов по алгебре и геометрии" . Получено 30 марта 2012 г.
  4. ^ Stein, William (12 июня 2007 г.). "Sage Days 4" (PDF) . Архивировано из оригинала (PDF) 27 июня 2007 г. . Получено 2 августа 2007 г. .
  5. ^ Анастасиу, Джордж А.; Мезей, Разван А. (2015). Численный анализ с использованием Sage. Нью-Йорк: Springer. стр. x1 и 1. ISBN 9783319167381.
  6. ^ "Sage Days 7: Combinatorics". SageWiki . 14 ноября 2008 . Получено 9 декабря 2013 .
  7. ^ "Sage – Благодарность сторонникам" . Получено 6 января 2017 г.
  8. ^ abc Уильям Стайн: Истоки SageMath – создание жизнеспособной альтернативы Magma, Maple, Mathematica и Matlab с открытым исходным кодом (презентация, 11 июня 2016 г.)
  9. ^ «Свободное программное обеспечение обеспечивает доступность и прозрачность математики». Science Daily. 7 декабря 2007 г. Получено 6 января 2017 г.
  10. ^ "Sage Mathematical Software System". Google Summer of Code / Архив Code-in . Получено 6 января 2017 г.
  11. ^ "Премия памяти Ричарда Димика Дженкса 2013 года". Ассоциация вычислительной техники – SIGSAM . Получено 6 января 2017 г.
  12. Stein, William (3 ноября 2010 г.). «Cython, Sage и Need for Speed» . Получено 6 января 2017 г.
  13. ^ «Добро пожаловать в руководство по установке Sage». 1 мая 2023 г. Получено 28 июля 2023 г.
  14. ^ Лелиевр, Сэмюэл (18 августа 2017 г.). "Установщик SageMath 8.0 для Windows" . Получено 28 августа 2017 г.
  15. ^ Stein, William (16 марта 2012 г.). "Re: Вопрос о Sage" . Получено 6 января 2017 г.
  16. ^ "sage-on-gentoo Wiki". GitHub . Получено 6 января 2017 г.
  17. ^ "Стандартные пакеты". doc.sagemath.org . Получено 6 января 2017 г. .
  18. ^ «Внешние пакеты — Внешние пакеты».

Внешние ссылки