Macaulay2 — бесплатная система компьютерной алгебры , созданная Дэниелом Грейсоном (из Университета Иллинойса в Урбане-Шампейне ) и Майклом Стиллманом (из Корнельского университета ) для вычислений в области коммутативной алгебры и алгебраической геометрии .
Macaulay2 построен на основе быстрых реализаций алгоритмов, полезных для вычислений в коммутативной алгебре и алгебраической геометрии. Эта основная функциональность включает в себя арифметику с кольцами, модулями и матрицами, а также алгоритмы для базисов Грёбнера , свободных резолюций , рядов Гильберта , определителей и пфаффианов , факторизации и тому подобного. Кроме того, система расширена большим количеством пакетов. По состоянию на 2019 год в дистрибутив Macaulay2 включено около 200 пакетов, среди известных авторов пакетов — Крейг Хунеке и Франк-Олаф Шрайер . [1] Журнал программного обеспечения для алгебры и геометрии опубликовал множество пакетов и программ для Macaulay2. [2]
Macaulay2 имеет интерактивный интерфейс командной строки, используемый с терминала (см. § Пример сеанса). В качестве пользовательского интерфейса он также может использовать emacs или GNU TeXmacs . [3]
Macaulay2 использует собственный интерпретируемый язык программирования высокого уровня как из командной строки, так и в сохраненных программах. Этот язык предназначен для простоты использования математиками, и многие части системы действительно написаны на языке Macaulay2. Алгебраические алгоритмы, составляющие основную функциональность, для повышения скорости написаны на C++ . Сам интерпретатор написан на специальном уровне безопасности типов поверх C. [4] И система, и язык программирования публикуются под лицензией GNU General Public License версии 2 или 3. [5]
Стиллман вместе с Дэйвом Байером создали предшественницу системы Маколея , начиная с 1983 года. Они назвали Маколей в честь Фрэнсиса Сауэрби Маколея , английского математика, внесшего значительный вклад в алгебраическую геометрию . Система Маколея показала, что можно решать реальные проблемы алгебраической геометрии, используя базисные методы Грёбнера, но к началу 1990-х годов ограничения в ее архитектуре стали препятствием. Используя опыт работы с Маколеем, Грейсон и Стиллман начали работу над Macaulay2 в 1993 году. Язык и конструкция Macaulay2 имеют ряд улучшений по сравнению с языком Macaulay, что позволяет использовать бесконечные кольца коэффициентов, новые типы данных и другие полезные функции. [4]
Macaulay продолжал обновляться и использоваться в течение некоторого времени после появления Macaulay2 в 1993 году. Последней выпущенной версией была версия 3.1, выпущенная в августе 2000 года. На веб-странице Macaulay в настоящее время рекомендуется перейти на Macaulay2. [6]
Macaulay2 регулярно обновляется с момента его появления. [7] Дэвид Эйзенбуд числится соавтором проекта с 2007 года. [8]
Следующий сеанс определяет кольцо многочленов S , идеал I внутри S и факторкольцо . Текст — это первое приглашение для ввода в сеансе, а также соответствующий вывод.i1 :
o1
i1 : S= QQ [a,b,c,d,e]о1 = Сo1 : Полиномиальное кольцо i2 : I= идеал (a^3-b^3, a+b+c+d+e) 3 3o2 = идеал (a - b , a + b + c + d + e) o2 : Идеал S i3 : R = S/Iо3 = Рo3 : Коэффициентное кольцо
В интервью 2006 года Андрей Окуньков назвал Macaulay2 вместе с TeX успешным проектом с открытым исходным кодом, используемым в математике , и предложил финансирующим агентствам изучить и извлечь уроки из этих примеров. [9] Маколей2 цитировался в более чем 2600 научных публикациях. [10] [11]