Macaulay2 is a
free computer algebra system
A computer algebra system (CAS) or symbolic algebra system (SAS) is any mathematical software with the ability to manipulate mathematical expressions in a way similar to the traditional manual computations of mathematicians and scientists. The ...
created by Daniel Grayson (from the
University of Illinois at Urbana–Champaign
The University of Illinois Urbana-Champaign (U of I, Illinois, University of Illinois, or UIUC) is a public land-grant research university in Illinois in the twin cities of Champaign and Urbana. It is the flagship institution of the Unive ...
) and
Michael Stillman
Michael Eugene Stillman (born March 24, 1957) is an American mathematician working in computational algebraic geometry and commutative algebra. He is a Professor of Mathematics at Cornell University. He is known for being one of the creators ( ...
(from
Cornell University
Cornell University is a private statutory land-grant research university based in Ithaca, New York. It is a member of the Ivy League. Founded in 1865 by Ezra Cornell and Andrew Dickson White, Cornell was founded with the intention to ...
) for computation in
commutative algebra
Commutative algebra, first known as ideal theory, is the branch of algebra that studies commutative rings, their ideals, and modules over such rings. Both algebraic geometry and algebraic number theory build on commutative algebra. Promi ...
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
In commutative algebra, the Hilbert function, the Hilbert polynomial, and the Hilbert series of a graded commutative algebra finitely generated over a field are three strongly related notions which measure the growth of the dimension of the homog ...
,
determinants
In mathematics, the determinant is a scalar value that is a function of the entries of a square matrix. It characterizes some properties of the matrix and the linear map represented by the matrix. In particular, the determinant is nonzero if an ...
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
Craig Lee Huneke (born August 27, 1951) is an American mathematician specializing in commutative algebra. He is a professor at the University of Virginia.
Huneke graduated from Oberlin College with a bachelor's degree in 1973 and in 1978 earned ...
and
Frank-Olaf Schreyer
Frank-Olaf Schreyer is a German mathematician, specializing in algebraic geometry and algorithmic algebraic geometry.
Schreyer received in 1983 his PhD from Brandeis University with thesis ''Syzgies of Curves with Special Pencils'' under the super ...
. The
Journal of Software for Algebra and Geometry has published numerous packages and programs for Macaulay2.
Macaulay2 has an interactive
command-line interface used from the terminal (see ). It can also use
emacs
Emacs , originally named EMACS (an acronym for "Editor MACroS"), is a family of text editors that are characterized by their extensibility. The manual for the most widely used variant, GNU Emacs, describes it as "the extensible, customizable, ...
or
GNU TeXmacs
GNU TeXmacs is a scientific word processor and typesetting component of the GNU Project. It originated as GNU Emacs with TeX functionalities, though it shares no code with those programs, while using TeX fonts. It is written and maintained by ...
as a user interface.
Macaulay2 uses its own
interpreted high-level programming language
In computer science, a high-level programming language is a programming language with strong abstraction from the details of the computer. In contrast to low-level programming languages, it may use natural language ''elements'', be easier to ...
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.
Both the system and the programming language are published under the
GNU General Public License
The GNU General Public License (GNU GPL or simply GPL) is a series of widely used free software licenses that guarantee end user
In product development, an end user (sometimes end-user) is a person who ultimately uses or is intended to ulti ...
version 2 or 3.
History
Stillman, along with
Dave Bayer
David Allen Bayer (born November 29, 1955) is an American mathematician known for his contributions in algebra and symbolic computation and for his consulting work in the movie industry. He is a professor of mathematics at Barnard College, Colum ...
had authored the predecessor system, Macaulay, beginning in 1983. They named Macaulay after
Francis Sowerby Macaulay
Francis Sowerby Macaulay FRS (11 February 1862, Witney – 9 February 1937, Cambridge) was an English mathematician who made significant contributions to algebraic geometry. He is known for his 1916 book ''The Algebraic Theory of Modular Syste ...
, 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.
Macaulay2 has been updated regularly since its introduction.
David Eisenbud
David Eisenbud (born 8 April 1947 in New York City) is an American mathematician. He is a professor of mathematics at the University of California, Berkeley and Director of the Mathematical Sciences Research Institute (MSRI); he previously se ...
has been listed as a collaborator on the project since 2007.
Sample session
The following session defines a polynomial ring , an ideal inside , and the quotient ring
. The text
i1 :
is the 1st input prompt in a session, while
o1
is the corresponding output.
i1 : S=QQ ,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
Andrei Yuryevich Okounkov (russian: Андре́й Ю́рьевич Окунько́в, ''Andrej Okun'kov'') (born July 26, 1969) is a Russian mathematician who works on representation theory and its applications to algebraic geometry, mathemati ...
cited Macaulay2 along with
TeX
Tex may refer to:
People and fictional characters
* Tex (nickname), a list of people and fictional characters with the nickname
* Joe Tex (1933–1982), stage name of American soul singer Joseph Arrington Jr.
Entertainment
* ''Tex'', the Italian ...
as a successful
open-source
Open source is source code that is made freely available for possible modification and redistribution. Products include permission to use the source code, design documents, or content of the product. The open-source model is a decentralized sof ...
project used in
mathematics and suggested that funding agencies look into and learn from these examples. Macaulay2 has been cited in over 2,600 scholarly publications.
See also
*
Singular
Singular may refer to:
* Singular, the grammatical number that denotes a unit quantity, as opposed to the plural and other forms
* Singular homology
* SINGULAR, an open source Computer Algebra System (CAS)
* Singular or sounder, a group of boar ...
and
CoCoA
Cocoa may refer to:
Chocolate
* Chocolate
* ''Theobroma cacao'', the cocoa tree
* Cocoa bean, seed of ''Theobroma cacao''
* Chocolate liquor, or cocoa liquor, pure, liquid chocolate extracted from the cocoa bean, including both cocoa butter and ...
, two other computer algebra systems that are specialized for computation in commutative algebra
*
Comparison of computer algebra systems
The following tables provide a comparison of computer algebra systems (CAS). A CAS is a package comprising a set of algorithms for performing symbolic manipulations on algebraic objects, a language to implement them, and an environment in which to ...
References
Further reading
* (Full text available online.)
*
External links
* for Macaulay2
{{Computer algebra systems
Computer algebra system software for Linux
Domain-specific programming languages
Free computer algebra systems