Difference between revisions of "History"

From ApCoCoAWiki
 
(21 intermediate revisions by 5 users not shown)
Line 2: Line 2:
  
 
==The beginning (1987)==
 
==The beginning (1987)==
Start of two small projects due to A. Giovini and G. Niesi.  
+
Start of two small projects due to A. Giovini and G. Niesi ([https://cocoa.dima.unige.it/cocoa/system/history.html]). In late 1987, the prototype of a small system capable of handling multivarite polynomial rings was developed for Macintosh environments ([https://doi.org/10.1007/3-540-52531-9_120]).
  
==CoCoA II (1988-1993)==
+
==CoCoA (1988-1992)==
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  
+
L. Robbiano coordinates the integration of the two projects into a single project: CoCoA. The first release of CoCoA was developed by A. Giovini and G. Niesi, and was written in Pascal language. The system in its first distributed version (0.99) was presented at the COCOA II Meeting (Genova, May 29-June 3, 1989) and at the Computers & Mathematics 1989 conference (MIT, Cambridge, Massachusetts, June 13-17, 1989) within the tutorial minicourse 'Gröbner bases: A Foundation for Commutative Algebra' given by L. Robbiano. The original plan was not to turn CoCoA into a "software product" ([https://doi.org/10.1007/3-540-52531-9_120]). Apparently, this plan changed over time... Initially the system was running only on Macintosh. Then it was ported to PCs by E. Armando who did some work on a second release of the system ([https://cocoa.dima.unige.it/cocoa/system/history.html]). The second version (1.0) and the third version (1.5) were published in 1990 and 1991, respectively ([http://web.archive.org/web/19980109185008/http://cocoa.dima.unige.it:80/system/history.html]). In 1990, about 150 copies of CoCoA were distributed ([https://doi.org/10.1007/3-540-52531-9_120]). First publications using CoCoA were published around 1992 ([https://cocoa.dima.unige.it/cocoa/research/publications.html]), some even using experimental versions of CoCoA, such as CoCoA 1.5.3 ([https://doi.org/10.1007/978-3-642-77586-4_5]).
to PC's by E. Armando who did some work on a second release of the system.
 
  
==[[CoCoA 3]] (1993)==
+
==[[CoCoA:CoCoA 3|CoCoA 3]] (1993-1995)==
Antonio Capani joins Gianfranco Niesi in the design and the implementation of a new project: CoCoA 3.
+
After the premature death of Giovini in January 1993 a new project was started in February 1993 ([http://web.archive.org/web/19980109185008/http://cocoa.dima.unige.it:80/system/history.html]). L. Robbiano continues to act as the project manager, A. Capani joins G. Niesi as authors and in the design and implementation of a new project written in C: CoCoA 3. Many other researchers like J. Abbott, A. Bigatti, M. Caboara, and G. De Dominics contribute with pieces of code ([http://web.archive.org/web/20041217123405/http://www.disi.unige.it/dottorato/THESES/2000-02-CapaniA]).
CoCoA 3 is written in C language and is designed to offer:
 
  
* portability (90% of the system is independent of the platform)
+
==COCOA IV (June 1995)==
* programmability (CoCoAL language)
+
And again, another COCOA-conference, this time [http://cocoa.dima.unige.it/cocoa/conference/cocoaiv/cocoaiv.html COCOA IV]
* arbitrary precision for integer and rational numbers
+
(May 29-June 2, 1995), this time at [http://dima.unige.it Dipartimento di Matematica], Universita' di Genova, Genova, Italy.
  
A full description of the architecture of CoCoA 3 is presented in the Capani's Ph.D. Thesis (gzipped postscript format).
+
The first beta of [[CoCoA:CoCoA 3|CoCoA 3]], CoCoA 3.0b, was published there, too ([https://cocoa.dima.unige.it/cocoa/system/history.html]).
  
==COCOA IV Meeting (May 1999)==
+
[ToDo: any nice little story about the conference?]
From May 31st to June 5th the fourth [http://cocoa.dima.unige.it/conference/cocoavi/ fourth COCOA meeting]
 
was situaded at Villa Gualino, Torino, Italy.
 
 
 
There was the first release of [[CoCoA 3]] published.
 
  
[ToDo: anything else to add here?]
+
===CoCoA 3.02b (1996)===
 +
With CoCoA 3.02b, the second  beta version of [[CoCoA:CoCoA 3|CoCoA 3]] was published on [http://web.archive.org/web/19960510145115/http://lancelot.dima.unige.it:80/cocoa.html Lancelot].
  
==CoCoA 3.02b (1996)==
+
==COCOA V (June 1997)==
CoCoA 3.02b
+
The fifth COCOA-Conference [http://cocoa.dima.unige.it/cocoa/conference/cocoav/ COCOA V] was located at
 +
[http://cocoa.dima.unige.it/cocoa/conference/cocoav/castle.html Herstmonceux Castle] at June 3-6, 1997.
  
 +
===CoCoA 3.3 (1997)===
 +
CoCoA 3.3 was published
  
==CoCoA 3.3 (1997)==
+
===CoCoA 3.4 (March 1998)===
CoCoA 3.3
+
CoCoA 3.4 was pubished and:
Main new features:
 
  
* interactive Gröbner framework;
+
Started mirroring of CoCoA at Reed College, Portland, Oregon (US).
* new algorithms for minimal free resolutions;
 
* packages;
 
* new I/O management (devices).
 
 
 
Started mirroring of CoCoA at Regensburg (Germany).
 
 
 
==CoCoA 3.4 (March 1998)==
 
CoCoA 3.4
 
Main new features:
 
  
* ring maps;
+
It was (PROBABLY!) also around this time that [http://web.archive.org/web/20011027153627/http://cocoa.dima.unige.it/gif/cocoa.jpg this photo] with [http://web.archive.org/web/20000411012631/http://cocoa.dima.unige.it:80/team.html these people], in the order listed there, on it was taken.
* improvement of CoCoAL language;
 
* univariate factorization over Z;
 
* computation of toric ideals;
 
* online help.  
 
  
Started mirroring of CoCoA at Reed College, Portland, Oregon (US).
 
  
==CoCoA 3.5 (July 1998)==
+
===CoCoA 3.5 (July 1998)===
 
CoCoA 3.5
 
CoCoA 3.5
Main new features:
 
  
* improvement of CoCoAL language;
+
===CoCoA 3.6 (December 1998)===
* new memory management (simpler way to access variables of different rings);
 
* autoloading and autoinitializing of packages;
 
* univariate factorization over Z, Q, and Z/pZ for p prime;
 
* an updated online help system and an html manual;
 
* new packages from contributors (integer programming, special varieties, radical).
 
 
 
 
 
==CoCoA 3.6 (December 1998)==
 
 
CoCoA 3.6
 
CoCoA 3.6
Main new features:
 
  
* a new package for computations with ideals of points;
+
==COCOA VI Meeting (May 1999)==
* faster computation of Hilbert functions and Poincare series (the POINCARE panel is now unnecessary and so has been disabled);
+
From May 31st to June 5th the sixth [http://cocoa.dima.unige.it/cocoa/conference/cocoavi/ COCOA meeting]
* a new version of the package for computing radicals of ideals (which now works in greater generality);
+
was situaded at Villa Gualino, Torino, Italy.
* the possibility to have a system-wide Unix/Linux installation.  
 
  
 +
[ToDo: anything else to add here?]
  
 
+
===CoCoA 3.7 (June 1999)===
==CoCoA 3.7 (June 1999)==
 
 
CoCoA 3.7
 
CoCoA 3.7
Main new features:
 
  
* Multivariate factorization over the integers;
+
==[[CoCoA:CoCoA 4|CoCoA 4]] (July 2000)==
* utility functions for modules/vectors (IsTerm, LM, LPP, LPos, Monomials/IsToPos..);
 
* faster computation of operations on ideals (intersections, saturations,...);
 
* faster computation of the determinant of matrices with integer entries
 
* new packages from contributors (algmorph, galois).
 
 
 
==CoCoA 4 (July 2000)==
 
 
CoCoA 3
 
CoCoA 3
 
settles down and becomes
 
settles down and becomes
 
CoCoA 4
 
CoCoA 4
(July 2000)
 
Main new features:
 
  
* Unified graphical interface for Windows and Linux (hopefully soon for Macintosh too);
+
===CoCoA 4.1 (May 2001)===
* Ideals of multiple points;
 
* Improved Emacs interface.
 
  
==CoCoA 4.1 (May 2001)==
+
===CoCoA 4.2 (August 2002)===
Main new features:
 
  
* Approximations (FloatStr, MantissaAndExponent, Isqrt);
+
==COCOA VIII (June 2003)==
* flexible/extended ring change (BringIn, QZP, ZPQ);
+
[http://cocoa.dima.unige.it/cocoa/conference/cocoaviii/ COmputational COmmutative Algebra and International School on Computer Algebra]
* QuotientBasis; Discriminant; GetErrMesg;
+
was held at  Universidad de Cádiz  in Spain on 2-7 June, 2003.
* new packages from contributors (thmproving, typevectors).  
 
  
# Improved ideals of multiple points;
+
The CoCoA VIII was organized by [http://thales.cica.es/usr/castro/ Francisco Castro], [http://www.mast.queensu.ca/~tony/ Tony Geramita], [http://matsun1.matesco.unican.es/~recio/ Tomas Recio] and [http://www.dima.unige.it/~robbiano/ Lorenzo Robbiano].
# improved graphical interface;
 
# improved Emacs interface.
 
  
 +
 +
Tutorials during the school were given by [http://www-m11.ma.tum.de/~kemper/ Gregor Kemper] and [http://www.uni-regensburg.de/Fakultaeten/nat_Fak_I/Kreuzer/ Martin Kreuzer]. The minicourse was given by Jose María Ucha.
  
 
==CoCoALib 0.0 (June 2003)==
 
==CoCoALib 0.0 (June 2003)==
 
C++ library open to alpha testers
 
C++ library open to alpha testers
  
==CoCoA 4.2 (August 2002)==
 
Main new features:
 
  
# NEW/UPDATED PACKAGES:
+
===CoCoa 4.3 (December 2003)===
 
 
* $contrib/ext computes Ext, presentations, and depth
 
* $contrib/invariants computes homogeneous generators for an algebra of invariants, tests invariance of a polynomial
 
* All contributed packages have been moved: the package name no longer includes the name(s) of the author(s).
 
* The contributed packages thmproving and typevectors have been properly incorporated into CoCoA.
 
 
 
# NEW FUNCTIONS: (for details, see the corresponding entry in online help)
 
 
 
* ?keyword and ??keyword new shorthand for accessing the CoCoA on-line manual
 
* MapDown(F) convert a polynomial to a coefficient, or give an error if the polynomial is not constant.
 
* Mod2Rat(R, M, Q) convert a modular number to a rational using the algorithm of Wang, Guy and Davenport.
 
 
 
==CoCoa 4.3 (December 2003)==
 
 
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.
 
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:
+
==CoCoA Discussion Board (September 2004)==
 
+
The CoCoA Discussion Board was set up at the [http://www.tu-dortmund.de University of Dortmund]. It started at the 29th September, based on an idea, created during a visit of the Italian developer team in Dortmund in September 2004.
# The names and location of all CoCoA packages have been systematically changed:
 
 
 
* CoCoA packages now have names ending in .cpkg (this to avoid some difficulties on MacOS X);
 
* the directories containing the packages are now packages/cocoa and packages/contrib.
 
 
 
# Predefined aliases for all packages (type Aliases(); in CoCoA).
 
# NEW/UPDATED PACKAGES:
 
 
 
* $cocoa/RealRoots for computing isolating intervals of real roots.
 
* $cocoa/approx for finding simple approximations to rationals.
 
* $cocoa/combinatoria a few assorted "combinatorial" functions.
 
* $contrib/conductor for computing the conductor sequence of points.
 
* $contrib/matrixnormafform for computing Smith normal form.
 
 
 
# NEW FUNCTIONS: (for details, see the corresponding entry in online help)
 
 
 
* StarPrintFold like StarPrint but with a specified line length limit
 
* Iroot compute integer approximations to square roots, cube roots, etc.
 
* ILogBase compute integer approximation to a logarithm
 
* RealRoots, RealRootRefine, RootBound determine isolating intervals for the real roots of a polynomial, refine such an interval, bound the magnitudes of the roots.
 
* FloatApprox, CFApprox, CFApproximants, ContFrac functions for finding "simple" rational numbers which approximate a given number
 
* DecimalStr print a fraction as a decimal (without exponent notation)
 
* PoincareShifts compute Hilbert-Poincare series for a module with shifts
 
* HilbertBasis computes a Hilbert basis for a submonoid of N^k
 
* LinKerModP computes the kernel of a matrix assuming its entries are coefficients modulo the current characteristic
 
* Subsets produce a list of all subsets, or just those of given cardinality
 
* Partitions list all integer partitions
 
* Gin compute the generic initial ideal of an ideal (probabilistic)
 
* IsStable, IsStronglyStable, IsLexSegment check whether a monomial ideal is stable/stronglystable/lexsegment
 
* PrimaryDecomposition compute the primary decomposition ONLY for squarefree monomial ideals
 
 
 
# Some existing functions have been usefully extended or improved:
 
  
* Toric for input with negative entries
+
===CoCoA 4.4 Pre-release 1 (January 2005)===
* EvalHilbertFn for non-standard gradings over Z
+
The first pre-release of CoCoA was published.  
* Sum a new version, usually faster than the old version.  
 
  
==CoCoA 4.4 Pre-release 1 (January 2005)==
+
===CoCoA 4.4 (May 2005)===
  
* GBasis5, ReducedGBasis5, LT5, ... -- calls to the CoCoA5Server
+
The first game was implemented in CoCoA: Cant Stop
* IsPPrime    --
+
The rules can be found at [http://www.boardgamegeek.com/viewitem.php3?gameid=41 www.boardgamegeek.com]
* NextPPrime  -- these were added to allow an RSA demo, might be useful anyway.
+
(of course some other new features are present, too)...
* 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:
+
==CoCoA Summer School (May 2005)==
 +
The fourth [http://cocoa.dima.unige.it/cocoa/conference/schooliv/ CoCoA Summer School] was held this year in
 +
Porto Conte, Italy.
  
* $combinatoria -- new function Permutations(L)
+
The tutorials were given by [http://www.nd.edu/~jmiglior/  Juan Migliore] and [http://fener.sfsu.edu/~serkan/ Serkan Hosten].
* $cocoa5 -- calls to the CoCoA-5 C++ library
+
The minicourse was given by [http://www.dima.unige.it/~abbott/ John Abbott].
* $contrib/CantStop -- the first game in CoCoA ;-) [http://www.boardgamegeek.com/viewitem.php3?gameid=41 www.boardgamegeek.com]
 
  
==CoCoA 4.4 (May 2005)==
+
This time, the school was not linked to a CoCoA Conference, because the [http://mega.dm.unipi.it/ MEGA05] was in this year, too.
 +
So the school was linked to this conference instead.
  
* All $cocoa/* packages have been renamed to remove ""cocoa/"".
+
==CoCoa Wiki (June 2005)==
* GBasis5, ReducedGBasis5, LT5, ...  -- calls to the CoCoALib server
+
In June 2005 this wiki was set up in Dortmund. Let us hope, that it works out...
* 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
 
* 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 www.boardgamegeek.com]
 
 
 
== CoCoA Summer School 2005==
 
[http://cocoa.dima.unige.it/conference/schooliv/ http://cocoa.dima.unige.it/conference/schooliv/]
 
  
 
==ToDo==
 
==ToDo==
Line 233: Line 106:
 
* add links
 
* add links
 
* write complete text
 
* write complete text
 +
 +
[[Category:History]]

Latest revision as of 09:21, 11 June 2024

This article is stub. more information should be added shortly.

The beginning (1987)

Start of two small projects due to A. Giovini and G. Niesi ([1]). In late 1987, the prototype of a small system capable of handling multivarite polynomial rings was developed for Macintosh environments ([2]).

CoCoA (1988-1992)

L. Robbiano coordinates the integration of the two projects into a single project: CoCoA. The first release of CoCoA was developed by A. Giovini and G. Niesi, and was written in Pascal language. The system in its first distributed version (0.99) was presented at the COCOA II Meeting (Genova, May 29-June 3, 1989) and at the Computers & Mathematics 1989 conference (MIT, Cambridge, Massachusetts, June 13-17, 1989) within the tutorial minicourse 'Gröbner bases: A Foundation for Commutative Algebra' given by L. Robbiano. The original plan was not to turn CoCoA into a "software product" ([3]). Apparently, this plan changed over time... Initially the system was running only on Macintosh. Then it was ported to PCs by E. Armando who did some work on a second release of the system ([4]). The second version (1.0) and the third version (1.5) were published in 1990 and 1991, respectively ([5]). In 1990, about 150 copies of CoCoA were distributed ([6]). First publications using CoCoA were published around 1992 ([7]), some even using experimental versions of CoCoA, such as CoCoA 1.5.3 ([8]).

CoCoA 3 (1993-1995)

After the premature death of Giovini in January 1993 a new project was started in February 1993 ([9]). L. Robbiano continues to act as the project manager, A. Capani joins G. Niesi as authors and in the design and implementation of a new project written in C: CoCoA 3. Many other researchers like J. Abbott, A. Bigatti, M. Caboara, and G. De Dominics contribute with pieces of code ([10]).

COCOA IV (June 1995)

And again, another COCOA-conference, this time COCOA IV (May 29-June 2, 1995), this time at Dipartimento di Matematica, Universita' di Genova, Genova, Italy.

The first beta of CoCoA 3, CoCoA 3.0b, was published there, too ([11]).

[ToDo: any nice little story about the conference?]

CoCoA 3.02b (1996)

With CoCoA 3.02b, the second beta version of CoCoA 3 was published on Lancelot.

COCOA V (June 1997)

The fifth COCOA-Conference COCOA V was located at Herstmonceux Castle at June 3-6, 1997.

CoCoA 3.3 (1997)

CoCoA 3.3 was published

CoCoA 3.4 (March 1998)

CoCoA 3.4 was pubished and:

Started mirroring of CoCoA at Reed College, Portland, Oregon (US).

It was (PROBABLY!) also around this time that this photo with these people, in the order listed there, on it was taken.


CoCoA 3.5 (July 1998)

CoCoA 3.5

CoCoA 3.6 (December 1998)

CoCoA 3.6

COCOA VI Meeting (May 1999)

From May 31st to June 5th the sixth COCOA meeting was situaded at Villa Gualino, Torino, Italy.

[ToDo: anything else to add here?]

CoCoA 3.7 (June 1999)

CoCoA 3.7

CoCoA 4 (July 2000)

CoCoA 3 settles down and becomes CoCoA 4

CoCoA 4.1 (May 2001)

CoCoA 4.2 (August 2002)

COCOA VIII (June 2003)

COmputational COmmutative Algebra and International School on Computer Algebra was held at Universidad de Cádiz in Spain on 2-7 June, 2003.

The CoCoA VIII was organized by Francisco Castro, Tony Geramita, Tomas Recio and Lorenzo Robbiano.


Tutorials during the school were given by Gregor Kemper and Martin Kreuzer. The minicourse was given by Jose María Ucha.

CoCoALib 0.0 (June 2003)

C++ library open to alpha testers


CoCoa 4.3 (December 2003)

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.

CoCoA Discussion Board (September 2004)

The CoCoA Discussion Board was set up at the University of Dortmund. It started at the 29th September, based on an idea, created during a visit of the Italian developer team in Dortmund in September 2004.

CoCoA 4.4 Pre-release 1 (January 2005)

The first pre-release of CoCoA was published.

CoCoA 4.4 (May 2005)

The first game was implemented in CoCoA: Cant Stop The rules can be found at www.boardgamegeek.com (of course some other new features are present, too)...

CoCoA Summer School (May 2005)

The fourth CoCoA Summer School was held this year in Porto Conte, Italy.

The tutorials were given by Juan Migliore and Serkan Hosten. The minicourse was given by John Abbott.

This time, the school was not linked to a CoCoA Conference, because the MEGA05 was in this year, too. So the school was linked to this conference instead.

CoCoa Wiki (June 2005)

In June 2005 this wiki was set up in Dortmund. Let us hope, that it works out...

ToDo

  • add information about cocoa conferences and schools
  • add information about developers of single versions
  • add links
  • write complete text