1.1
Here are the changes new with 1.1 or 1.0:
Versions have been compiled specifically for the following GNU/Linux
systems: generic Linux, Ubuntu (32 bit and 64 bit), Debian (32 bit and 64
bit) both with *.deb files, Fedora 7, Fedora 8, and Red Hat Enterprise 4,
with *.rpm files; for the following Macintosh OS X systems: 10.4 and 10.5
on Intel 32 bit, 10.5 on Intel 64 bit, and 10.4 on the Power PC; and on
Microsoft Windows with the Cygwin compatibility package installed.
Automatic installation from our repositories is possible for Debian,
Ubuntu, and Microsoft Windows. The files for downloading are now divided
into two archives, depending on whether they depend on the architecture.
Packages have been contributed: NoetherNormalization, by Bart Snapp and
Nathaniel Stapleton; GenericInitialIdeal and Regularity, by Alexandra
Seceleanu and Nathaniel Stapleton; InvolutiveBases, by Daniel Robertz;
ChainComplexExtras, by Frank Moore and Greg Smith; HyperplaneArrangements,
by Graham Denham and Gregory G. Smith; LexIdeals, by Chris Francisco;
ReesAlgebra, by David Eisenbud, Amelia Taylor, and Sorin Popescu; and
TangentCone, by Craig Huneke and David Eisenbud.
A good implementation of real and complex numbers to arbitrary precision,
based on the mpfr library from mpfr.org, has been implemented. The
library is remarkable for the care taken to return correctly rounded
results. It is hoped that this will form a good base for experimentation
with algebraic algorithms that mix symbolic and numeric techniques. Basic
transcendental functions are also provided, and pi is now a symbolic
constant usable in numeric expressions of any precision. An interface to
lapack routines for singular value decomposition and eigenvectors is
provided (but they operate only with 53 bits of precision).
An interface with TeXmacs has been provided, so Macaulay 2 can be run with
a good graphical user interface. More work remains to be done, but it is
usable.
Documentation has been improved, with every function documented.
Computation of Groebner bases over local rings has been improved. New
notation QQ{x,y,z} for local rings. More precisely
The default (GRevLex) monomial ordering in polynomial rings whose
variables don't all have degree 1 was fixed to take the degrees into
account. More precisely, the ordering now uses the values obtained by
scalar product of the provided heft vector with the degree vector.
The implementation of the Groebner basis algorithm for polynomial rings
where the multi-degrees of the variables don't all have strictly positive
first component has been fixed by having it use the heft vector provided.
The problem was that bases were not minimalized, and S-pairs were
addressed in a non-optimal order. (The total Ext functor Ext(M,N) used
this facility and was returning wrong answers.)
A bug in division (f//g) resulting in incorrect answers over quotient
rings was fixed.
A bug in "trim" and "mingens" resulting in incorrect answers was fixed.
A bug in computation of the Groebner basis of an exterior algebra over Z
was fixed.
A bug in fraction division was fixed. Fraction field code now checks for
non-units in many more places. For rings that have been declared by the
user to be fields, and yet are not fields, attempting to divide by a
non-unit results in an error, and sets a value so that the function
"getNonUnit" returns that value.
The Groebner basis routine can now handle large monomial ideals without a
stack overflow.
The function monomialIdeal, over polynomial rings over Z, now incorporates
leading monomials with nonzero coefficients. Formerly the coefficients
had to be units.
Codimension (and dimension) computations over polynomial rings over Z work
once again.
The speed of computation of projective resolutions when the first
components of the degrees of the variables are not necesarily positive has
been improved.
The interpreter has been fixed so it more often detects extreme recursion;
one case was omitted that allowed the machine stack to overflow with a
segmenation fault.
The function "betti" now returns a new type of object of class BettiTally,
which can be manipulated with the operations that can manipulate chain
complexes.
Support for utf-8 encoding of unicode characters in strings provided via
"utf8".
A new function "scanLines" can be used for reading a big file one line at
a time.
A new format for multi-line block comments is {* ... *}.
M2 can now be run with script files by using
#! /usr/bin/M2 --script
as the first line of the script file.
Under Microsoft Windows, the links in the html form of the documentation
now work in such a way that browsers can follow them, and viewHelp now
works (if it finds firefox).
Here are the functions added to the Core package since 0.9.95: acosh,
acot, agm, ancestors, asinh, atan2, BesselJ, BesselY, clean, commonest,
commonRing, cot, coth, cpuTime, csc, csch, debugError, default, eint, erf,
erfc, expm1, fillMatrix, Gamma, gbRemove, gbSnapshot, getSymbol,
globalAssign, httpHeaders, installHilbertFunction, instances, isANumber,
isFinite, isInfinite, isReal, lngamma, log1p, LUdecomposition, markedGB,
norm, openOutAppend, parts, powermod, scanLines, sec, sech, seeParsing,
setupEmacs, size2, toCC, toRR, utf8, Wikipedia, zeta.
Compilation of Macaulay 2 from source has been improved. Needed third
party libraries will now be downloaded and compiled automatically if they
are not already provided.
More tests have been added (to verify, after compilation, that M2 is
working as expected).