![]() | |
Original author(s) | Daniel Grayson,Michael Stillman |
---|---|
Developer(s) | Daniel Grayson,Michael Stillman,David Eisenbud |
Initial release | 1993 |
Stable release | 1.24.11 / November 2024; 4 months ago (2024-11) |
Repository | |
Written in | C++ andC |
Type | Computer algebra system |
License | GNU General Public License, version 2 or 3 |
Website | macaulay2 |
Macaulay2 is afreecomputer algebra system created by Daniel Grayson (from theUniversity of Illinois at Urbana–Champaign) andMichael Stillman (fromCornell University) for computation incommutative algebra andalgebraic geometry.
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 forGröbner bases,free resolutions,Hilbert series,determinants andPfaffians,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 includeCraig Huneke andFrank-Olaf Schreyer.[1] TheJournal of Software for Algebra and Geometry has published numerous packages and programs for Macaulay2.[2]
Macaulay2 has an interactivecommand-line interface used from the terminal (see§ Sample session). It can also useemacs orGNU TeXmacs as a user interface.[3]
Macaulay2 uses its owninterpretedhigh-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 inC++ for speed. The interpreter itself is written in a custom type safety layer overC.[4] Both the system and the programming language are published under theGNU General Public License version 2 or 3.[5]
Stillman, along withDave Bayer had authored the predecessor system,Macaulay, beginning in 1983. They named Macaulay afterFrancis Sowerby Macaulay, an English mathematician who made significant contributions toalgebraic 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.[4]
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.[6]
Macaulay2 has been updated regularly since its introduction.[7]David Eisenbud has been listed as a collaborator on the project since 2007.[8]
The following session defines apolynomial ringS, an idealI insideS, and thequotient ring. The texti1 :
is the 1st input prompt in a session, whileo1
is the corresponding output.
i1:S=QQ[a,b,c,d,e]o1=So1:PolynomialRingi2:I=ideal(a^3-b^3,a+b+c+d+e)33o2=ideal(a-b,a+b+c+d+e)o2:IdealofSi3:R=S/Io3=Ro3:QuotientRing
In a 2006 interview,Andrei Okounkov cited Macaulay2 along withTeX as a successfulopen-source project used inmathematics and suggested that funding agencies look into and learn from these examples.[9] Macaulay2 has been cited in over 2,600 scholarly publications.[10][11]