Macaulay2

{{Short description|Computer algebra system}}

{{Infobox software

| name = Macaulay2

| title = Macaulay2

| logo = Macaulay2 9planets logo.jpg

| logo caption =

| logo_size =

| logo_alt =

| screenshot =

| caption =

| screenshot_size =

| screenshot_alt =

| collapsible =

| author = Daniel Grayson, Michael Stillman

| developer = Daniel Grayson, Michael Stillman, David Eisenbud

| released = 1993

| discontinued =

| latest release version = 1.24.11

| latest release date = {{Start date and age|2024|11}}

| latest preview version =

| latest preview date =

| programming language = C++ and C

| operating system =

| platform =

| size =

| language =

| language count =

| language footnote =

| genre = Computer algebra system

| license = GNU General Public License, version 2 or 3

| website = {{URL|https://macaulay2.com/}}

}}

Macaulay2 is a free computer algebra system created by Daniel Grayson (from the University of Illinois at Urbana–Champaign) and Michael Stillman (from Cornell University) for computation in commutative algebra and algebraic geometry.

Overview

Macaulay2 is built around fast implementations of algorithms useful for computation in commutative algebra and algebraic geometry. This core functionality includes arithmetic on rings, modules, and matrices, as well as algorithms for Gröbner bases, free resolutions, Hilbert series, determinants and Pfaffians, factoring, and similar. In addition, the system has been extended by a large number of packages. Nearly 200 packages are included in the distribution of Macaulay2 as of 2019, and notable package authors include Craig Huneke and Frank-Olaf Schreyer.{{cite web|url=https://faculty.math.illinois.edu/Macaulay2/Packages/|title=Packages|website=Macaulay2|access-date=October 13, 2019}} The Journal of Software for Algebra and Geometry has published numerous packages and programs for Macaulay2.{{cite web|url=https://msp.org/jsag/|title=Journal of Software for Algebra and Geometry|publisher=Mathematical Science Publishers|access-date=October 5, 2019}}

Macaulay2 has an interactive command-line interface used from the terminal (see {{Section link||Sample session}}). It can also use emacs or GNU TeXmacs as a user interface.{{cite web|url=https://faculty.math.illinois.edu/Macaulay2/Screenshots/|title=Screenshots|website=Official Macaulay2 website|access-date=October 4, 2019}}

Macaulay2 uses its own interpreted high-level programming language both from the command line and in saved programs. This language is intended to be easy to use for mathematicians, and many parts of the system are indeed written in the Macaulay2 language. The algebraic algorithms that form the core functionality are written in C++ for speed. The interpreter itself is written in a custom type safety layer over C.{{cite book | last1 = Eisenbud | first1 = David | author1-link=David Eisenbud|last2 = Grayson | first2 = Daniel | last3 = Stillman | first3 = Michael | author3-link=Michael Stillman| last4 = Sturmfels | first4 = Bernd | author4-link=Bernd Sturmfels| title = Computations in algebraic geometry with Macaulay 2 | series= Algorithms and Computation in Mathematics|volume= 8|publisher = Springer-Verlag | location = Berlin| year = 2002 | isbn = 3-540-42230-7 | url = https://faculty.math.illinois.edu/Macaulay2/Book/ |mr=1949544|doi=10.1007/978-3-662-04851-1}} Both the system and the programming language are published under the GNU General Public License version 2 or 3.{{cite web|url=https://github.com/Macaulay2/M2/blob/master/M2/Macaulay2/COPYING-GPL-2|title=Macaulay2 COPYING-GPL-2 license|website=Macaulay2 github site}}

History

Stillman, along with Dave Bayer had authored the predecessor system, Macaulay, beginning in 1983. They named Macaulay after Francis Sowerby Macaulay, an English mathematician who made significant contributions to algebraic geometry. The Macaulay system showed that it was possible to solve actual problems in algebraic geometry using Gröbner basis techniques, but by the early 1990s, limitations in its architecture were becoming an obstruction. Using the experience with Macaulay, Grayson and Stillman began work on Macaulay2 in 1993. The Macaulay2 language and design has a number of improvements over that of Macaulay, allowing for infinite coefficient rings, new data types, and other useful features.

Macaulay continued to be updated and used for some time after the 1993 introduction of Macaulay2. The last released version was 3.1, from August 2000. The Macaulay webpage currently recommends switching to Macaulay2.{{cite web|url=http://www.math.columbia.edu/~bayer/Macaulay/|title=Official Macaulay website|access-date=October 4, 2019}}

Macaulay2 has been updated regularly since its introduction.{{cite web|url=https://faculty.math.illinois.edu/Macaulay2/doc/Macaulay2-1.21/share/doc/Macaulay2/Macaulay2Doc/html/_changes_spto_sp__Macaulay2_cm_spby_spversion.html|title=Changes by Version|website=Macaulay2 Documentation|access-date=July 7, 2023}} David Eisenbud has been listed as a collaborator on the project since 2007.{{cite web|url=https://faculty.math.illinois.edu/Macaulay2/doc/Macaulay2/share/doc/Macaulay2/Macaulay2Doc/html/___The_spauthors.html|title=The Authors|website=Macaulay2 Documentation|access-date=October 5, 2019}}

Sample session

The following session defines a polynomial ring {{mvar|S}}, an ideal {{mvar|I}} inside {{mvar|S}}, and the quotient ring R = S/I. The text i1 : is the 1st input prompt in a session, while o1 is the corresponding output.

i1 : S=QQ[a,b,c,d,e]

o1 = S

o1 : PolynomialRing

i2 : I=ideal(a^3-b^3, a+b+c+d+e)

3 3

o2 = ideal (a - b , a + b + c + d + e)

o2 : Ideal of S

i3 : R = S/I

o3 = R

o3 : QuotientRing

Reception

In a 2006 interview, Andrei Okounkov cited Macaulay2 along with TeX as a successful open-source project used in mathematics and suggested that funding agencies look into and learn from these examples.Muñoz, Vicente; Persson, Ulf (2006), [http://www.ems-ph.org/journals/newsletter/pdf/2006-12-62.pdf "Interviews with three Fields medallists"], European Mathematical Society Newsletter (62):32-36 Macaulay2 has been cited in over 2,600 scholarly publications.{{cite web|url=https://faculty.math.illinois.edu/Macaulay2/Publications/#papers|title=Some papers that refer to Macaulay2|website=Macaulay2 Documentation|access-date=February 11, 2022}}{{cite web|url=https://scholar.google.com/scholar?cluster=5544339878767751576|title=Macaulay2 citations|website=Google Scholar|access-date=February 11, 2022}}

See also

{{Portal|Free and open-source software}}

References

{{Reflist}}

Further reading

  • {{cite book | last1 = Eisenbud | first1 = David | author1-link=David Eisenbud|last2 = Grayson | first2 = Daniel | last3 = Stillman | first3 = Michael | author3-link=Michael Stillman| last4 = Sturmfels | first4 = Bernd | author4-link=Bernd Sturmfels| title = Computations in algebraic geometry with Macaulay 2 | series= Algorithms and Computation in Mathematics|volume= 8|publisher = Springer-Verlag | location = Berlin| year = 2002 | isbn = 3-540-42230-7 | url = https://faculty.math.illinois.edu/Macaulay2/Book/ |mr=1949544|doi=10.1007/978-3-662-04851-1}} (Full text available online.)
  • {{cite book | last=Schenck | first=Hal |author-link=Hal Schenck | title=Computational Algebraic Geometry | publisher=Cambridge University Press | location=Cambridge, UK | year=2003 | isbn=978-0-511-75632-0 | series=London Mathematical Society Student Texts | volume=58 | doi=10.1017/cbo9780511756320 |mr=2011360}}