![]() |
CoCoA System Computations in Commutative Algebra |
| Home Page | CoCoA Release Notes
|
== 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. ==
== 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)
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.
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: 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)
======================================================================
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]
-- 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
-- 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
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]
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]
Main new features:
A full description of the architecture of CoCoA 3 is presented in the Capani's Ph.D. Thesis (gzipped postscript format).