CoCoA System
Computations in Commutative Algebra
Home Page

CoCoA Release Notes
download page



July 2011

CoCoA 5.0.1

Beta version for teh MonICA School and Conference in Castro Urdiales.
Added AlexanderDual, PrimaryDecomposition, and optimized some functions on monomial ideals.
CoCoA 5 is still missing an updated manual, and modules, resolutions, ideal of points. See CoCoALib-functions.html for the available functions.

June 2011

CoCoA 5.0.0

First Beta version for the CoCoASchool in Passau
CoCoA 5 is still missing an updated manual, and modules, resolutions, ideal of points. See CoCoALib-functions.html for the available functions.

October 2009

CoCoA 4.7.5



==  A few new functions have been added:  ==

--  MayerVietorisTreeN1 for monomial ideals (via CoCoAServer)
From the paper:  Anna M. Bigatti, Eduardo Saenz-de-Cabezon
 *(n-1)-st Koszul homology and the structure of monomial ideals*

--  link to Frobby, a library for computations with monomial ideals
Type
  ? frobby
for more details

--  IsInRadical and MinDegInIdeal: functions for radical membership
--  Reg: the Castelnuovo-Mumford regularity
--  Ker: kernel of an algebra homomorphism
--  InverseSystem: the inverse system of an ideal of derivation


==  Changes to existing functions ==

Latex/LaTeX modified so that it returns a string.  This way the output
    can be printed on a file (see the manual for latex)

The  Source  command now issues an 'obsolescent' warning if used with
a package id; just specify the full path of the package as a string.

The function  $gb.Step(M)  is now obsolescent; replace it by the
equivalent  $gb.Steps(M,1)  to avoid the warning.

Printing of resolutions is now like this (we believe it's more readable)
  0 --> S(-4) --> S(-2) + S(-3)^2 --> S(-1)^2 + S(-2) --> S


==  Changes to the syntax  ==

The construct  Repeat...EndRepeat;  is now obsolescent.
It may easily be replaced by  While True Do ... EndWhile;

The construct  Cond...EndCond;  is now obsolescent.
You should use an  If...Then  construct instead.

The construct  Alias...In...EndAlias;  is now obsolescent.
You should use a global alias instead (or write out the package name
directly).

The trailing If construct is now obsolescent;
just replace it by a proper If...Then construct.

The keyword  ElsIf  is now obsolescent;
just replace it by the keyword  Elif.

The keyword  EoF  is now obsolescent;
just comment out the rest of the file.

The keyword  NewLine  is now obsolescent;
just use several separate PrintLn commands instead or the function NewLine()

The commands  Delete & Clear  are now obsolescent.
You can get a similar effect by assigning zero to the variables to be cleared.

The command  Destroy  is morally obsolescent
as it will not be needed  in CoCoA 5.


==  Several minor bugs have been fixed in the code and in the manual.  ==

December 2008

CoCoA 4.7.4



==  A few new functions have been added:  ==

--  ApproxBBasis5 (Stable Order Ideal) for approximate points (via CoCoAServer)
From the paper:  John Abbott, Claudia Fassino, Maria-Laura Torrente
 *Stable Border Bases for Ideals of Points*

--  NBM5 (Stable Order Ideal) for approximate points (via CoCoAServer)
From the paper:   Claudia Fassino
 *Almost Vanishing Polynomials for Sets of Limited Precision Points*

--  ImplicitPlot/ImplicitPlotOn, PlotPoints/PlotPointsOn
Output to a file the coordinates of the points to plot, so you can
visualize them with gnuplot.

--  LexSegmentIdeal (for an ideal I)
Returns the ideal with the same Hilbert function as I.
If the argument is a list of power-products L it still returns the
smallest Lex-segment Ideal containing L.

--  AllIndetsCalled("x")
This function returns the list of all indeterminates whose name is the
given string.  Up to version 4.7.3 you could achieve this just by evaluating
the name itself: "Use Q[x[0..4]];  x;" (see below)


==  Changes to the syntax:  ==

--  explicit Print/PrintLn now required inside a "Define...EndDefine":
you will get a warning if you use an implicit print inside a function
(i.e. without the explicit print command).  Example: the function
        Define NSquare(N)
          N^2;
        EndDefine;
Now you should be explicit about whether you mean "Print N^2" or "Return N^2".
This helps detect a forgotten "Return" when defining a function.

--  Use Q[x[0..4]];  x;
This shortcut is no longer allowed because it can be confusing:
"x[2];" is different from "L := x;  L[2];"
(see above: AllIndetsCalled)

--  QQ[x,y,z];  ZZ[x[1..4];  ZZ/(3)[a,b];
this is the new way to write the rings of rationals and integers.
Q and Z are still allowed, but are obsolescent


==  Several minor bugs have been fixed in the code and in the manual.  ==

--  multivariate GCD (could disappear into an infinite loop)
--  integer matrix Det (could very rarely give 0 instead of the correct value)

September 2007

CoCoA 4.7.3

The "Numerical" package is no longer distributed as part of CoCoA;
instead it forms part of the extension ApCoCoA downloadable from
        http://www.apcocoa.org/
This reorganization allows independent faster releases of the
cutting-edge code developed by the team in Germany.

A few new functions have been added:
- RealRootsApprox
- CharPoly, Eigenvectors
- AlmostQR, MatConcatAntiDiag, MatConcatDiag, MakeMatByRows, MakeMatByCols
- LexSegmentIdeal, StableIdeal, StronglyStableIdeal
- MinimalPresentation (and consequently updated Ext)

Several minor bugs have been fixed in the code and in the manual.

April 2007

CoCoA 4.7

While we are still working in preparation for CoCoA-5, this release of
CoCoA-4 offers some bug fixes, but the main feature consists in a
further extension of the communication with CoCoALib (the GPL C++ library)
via CoCoAServer, in particular the Numerical functions developed by
the team in Dortmund.

Other new "5" functions are:
---
BBasis5, FGLM5, Gin5, PreprocessPts5
---
When you think CoCoA4 is too slow, try the corresponding "5" function!
=======================================================================
- New: GBasisTimeout
- Changed: Set(L) into MakeSet(L)
- Obsolescent: "one-line" function definitions will print out a
	    warning (see below)
- Warn about use of "End" instead of "EndIf", "EndDefine", ... 

Deprecated Commands

We are getting close to the release of a completely new CoCoA-5 (entirely based on CoCoALib)! This will also cause some (few!) changes in the CoCoALanguage. These changes are devoted to make CoCoA:

Here is a list of obsolescent commands/syntax, start now!

----------------------------------------------------------------------
-deprecated:          F(X) := X + 3;
-suggested:           Define F(X)  Return X + 3;  EndDefine;
-why?
    We have seen this syntax can be dangerous!  Just a silly example:
    You want to know whether Det(M) is 0 and type   Det(M) := 0;
    You see your error and you correctly write      Det(M) = 0;
    .... but now Det(M) is going to return 0 for any argument!
----------------------------------------------------------------------
-- NB this will be disabled starting from next version of CoCoA-4!!!!!
-deprecated:         Q[xyz];
-suggested:         Q[x,y,z];
-why?
    we will allow Q[alpha, beta];
----------------------------------------------------------------------
-deprecated:           A B;  -- with A, B programming variables
-suggested:           A * B;
-why?
    If you mean to write A; B; and forget the ";"  you get a product.
    We will maintain  x^2y^3z^4 (i.e. products of indeterminates)
======================================================================

May 2006

CoCoA 4.6

Communication with CoCoALib via CoCoAServer has been improved:
more reliable and faster.  Available operations:
---
Colon5  Elim5  GBasis5  Homogenized5  Intersection5
LT5     ReducedGBasis5  Saturation5   SyzOfGens5
---
When you think CoCoA4 is too slow, try the "5" function!
======================================================================
- New: IsSymmetric, IsDiagonal, DiagonalMat

- New: IsTree5 (for complexes)

- "Ext" functions more robust (thanks to Alberto Damiano)

- Fixed bug in multivariate factorization (made CoCoA crash)

- Fixed bug in Cartesian product with empty list

- Fixed bug in ring names list

- Fixed bug in too long list constructor ".."

- Fixes and updates to the manual.
======================================================================
DEPRECATED COMMANDS:

We are getting close to the release of a completely new CoCoA-5 (entirely based
on CoCoALib)!  This will also cause some changes in the CoCoALanguage.
This changes are devoted to make CoCoA:

- more flexible (there will be a stronger and more powerful mathematical core)
- more robust   (minimize ambiguity / unexpected behaviour)
- more helpful error messages (what do you think of CoCoA error messages??)
- less error prone (if you forget a ; you get a product instead of an Error msg)
- in 3 words: "nicer to use"!

----------------------------------------------------------------------
Here is a list of obsolescent commands/syntax, start now!
----------------------------------------------------------------------
-- NB this will be disabled starting from next version of CoCoA-4!!!!!
-deprecated:         Q[xyz];
-suggested:         Q[x,y,z];
-why?
    we will allow Q[alpha, beta];
----------------------------------------------------------------------
-deprecated:           A B;  -- with A, B programming variables
-suggested:           A * B;
-why?
    If you mean to write A; B; and forget the ";"  you get a product.
    we will maintain  x^2y^3z^4 (for indeterminates)
======================================================================
NEW/UPDATED PACKAGES:

 * matrixmormalform  -  Smith Normal Form for matrices over PIDs
                        [more robust]

 * control           -  Geometric Control Theory
                        [new]

November 2005

CoCoA 4.5.1

-- added: AffHilbertSeries for non-homogenous input
-- added: warning when HilbertSeries is called on non-homogenous input

-- fixed: buglets in the manual
-- fixed: Radical for non-homogeneous input

-- changed: SmoothFactor now requires second arg to be positive.

-- big big integers: now you can compute  FloatStr(Fact(10^7));
   [GMP compiled with "no-alloca"]


---- User Interfaces: ....----------------------------------------

Updated EmacsUI: 
  - "Open Recent" in "File" menu
  - show-paren-mode: highlight region between parenthesis
 and new default settings for non-expert installation (MacOSX and MSWindows)
  - C-c, C-v, etc bindings 
  - TAB for completion (toggle)


Fixed GUI: now communicates with CoCoAServer

October 2005

CoCoA 4.5

-- Communication with CoCoALib-0.94 via CoCoAServer 

-- Ext, Depth, Presentation have been improved
-- BettiDiagram -- a "Macaulay style" Betti numbers diagram
-- BettiMatrix  -- a "matrix style" Betti numbers diagram

-- a bit more technical: customizable port for socket communications

May 2005

CoCoA 4.4

All $cocoa/* packages have been renamed to remove "cocoa/".

GBasis5, ReducedGBasis5, LT5, ...  -- calls to the CoCoALib server 

The NUL character is silently ignored in string constants.
The character with code 255 is handled correctly in string constants.

ClearDenom  -- clear common denominator of a poly with rational coeffs
NumContent  -- numerical content of a poly with integer coeffs

IsPPrime    --
NextPPrime  -- these were added to allow an RSA demo, might be useful anyway.
PowerMod    --

GCDFreeBasis       -- compute a GCD free basis for integers
RefineGCDFreeBasis -- refine a GCD free basis of integers
FactorMultiplicity -- count how many times a factor divides a given integer

LinearSimplify  -- find a simplifying linear substitution for a univariate polynomial
SmoothFactor    -- find small prime factors of an integer

OpenSocket  -- added to facilitate intercommunication with CoCoALib server

Fixed a bug in the factorizer which could cause a crash in rare cases.

Ext, Depth, Presentation... -- the functions of ext.cpkg are better documented
                      -- and directly accessible (i.e. without "Ext." prefix)

IsTermOrdering, IsPositiveGrading -- tests on matrices

PositiveGrading4, HilbertSeriesMultiDeg -- work around for the limitation
                                        -- on multigradings

RegularityIndex -- regularity index of a Hilbert Function

IsDefined -- the function "Defined" has been renamed with the bool prefix "Is"

PrintBettiDiagram -- a "Macaulay style" Betti numbers diagram

*  the official packages which used to be in packages/cocoa/
    are in packages/ to simplify their use

NEW/UPDATED PACKAGES:

 * $combinatoria -- new function Permutations(L)

 * $cocoa5 -- calls to the CoCoA-5 C++ library

 * $contrib/CantStop -- the first game in CoCoA ;-)
   [rules at http://www.boardgamegeek.com/viewitem.php3?gameid=41]

January 2005

CoCoA 4.4 Pre-release 1

GBasis5, ReducedGBasis5, LT5, ...  -- calls to the CoCoA5Server 

IsPPrime    --
NextPPrime  -- these were added to allow an RSA demo, might be useful anyway.
PowerMod    --

GCDFreeBasis       --
RefineGCDFreeBasis -- these were added to support LinearSimplify
FactorMultiplicity --

LinearSimplify

OpenSocket  -- added to facilitate intercommunication with CoCoALib server

Fixed a bug in the factorizer which could cause a crash in rare cases.


 *  the official packages which used to be in packages/cocoa/
    are in packages/ to simplify their use:
    All $cocoa/* packages have been renamed to remove "cocoa/".

NEW/UPDATED PACKAGES:

 * $combinatoria -- new function Permutations(L)

 * $cocoa5 -- calls to the CoCoA-5 C++ library

 * $contrib/CantStop -- the first game in CoCoA ;-)
   [rules at http://www.boardgamegeek.com/viewitem.php3?gameid=41]

December 2003

CoCoA 4.3

This version of CoCoA is largely a consolidation of version 4.2. A number of bugs and inconsistencies have been corrected, with improvements to efficiency in certain cases. This new release should be more robust, and more helpful when an error occurs.

Main new features:

  • The names and location of all CoCoA packages have been systematically changed:
  • Predefined aliases for all packages (type Aliases(); in CoCoA).
  • NEW/UPDATED PACKAGES:
  • NEW FUNCTIONS: (for details, see the corresponding entry in online help)
  • Some existing functions have been usefully extended or improved:
  • June 2003

    CoCoALib 0.0

    C++ library open to alpha testers

    August 2002

    CoCoA 4.2

    Main new features:

  • NEW/UPDATED PACKAGES:
  • NEW FUNCTIONS: (for details, see the corresponding entry in online help)
  • May 2001

    CoCoA 4.1

    Main new features:
  • Improved ideals of multiple points;
  • improved graphical interface;
  • improved Emacs interface.
  • July 2000

    CoCoA 3

    settles down and becomes

    CoCoA 4

    (July 2000)
    Main new features:

    June 1999

    CoCoA 3.7

    Main new features:

    December 1998

    CoCoA 3.6

    Main new features:

    July 1998

    CoCoA 3.5

    Main new features:

    March 1998

    CoCoA 3.4

    Main new features: Started mirroring of CoCoA at Reed College, Portland, Oregon (US).

    1997

    CoCoA 3.3

    Main new features: Started mirroring of CoCoA at Regensburg (Germany).

    1996

    CoCoA 3.02b

    1995

    CoCoA 3.0b

    First distributed release (at the COCOA IV Meeting, Genova).

    1993

    Antonio Capani joins Gianfranco Niesi in the design and the implementation of a new project: CoCoA 3.
    CoCoA 3 is written in C language and is designed to offer:

    A full description of the architecture of CoCoA 3 is presented in the Capani's Ph.D. Thesis (gzipped postscript format).

    1988-1993

    L. Robbiano coordinates the integration of the two projects into a single project: CoCoA. First release (COCOA II Meeting, Genova) of CoCoA developed by A. Giovini and G. Niesi in Pascal language. Initially the system was running only on Macintosh. Then it was ported to PC's by E. Armando who did some work on a second release of the system.

    1987

    Start of two small projects due to A. Giovini and G. Niesi.