Published 2014 | Version v1
Publication

What Is New in CoCoA?

Description

CoCoA is a ``well-established'' Computer Algebra System dating back to 1989. It was created as a laboratory for studying Computational Commutative Algebra, and specifically Groebner bases... and still today maintains this tradition. In the last few years CoCoA has undergone a profound change: the code has been totally re-written in C++, and is now based upon its integral open source C++ library, called CoCoALib. Putting the mathematical capabilities into a software library facilitates integration with other software. At ICMS~2010 we presented the first prototype of CoCoA-5, which then implemented a subset of the new CoCoA language, and was able to compute just some fairly basic operations on polynomials. Four years later... We have finished the design and implementation of the completely new CoCoALanguage. Superficially it resembles the CoCoA-4 language, is largely backward compatible with it, and maintains or improves the naturalness and ease of use for which CoCoA-4 was noted. The clearly defined semantics of the new language make it both more robust and more flexible than CoCoA-4. The internal software design makes it easy to render new extensions to CoCoALib (whether by the authors, or by contributors) accessible via the interactive CoCoA-5 system, so there's no need to wrestle with C++ to use them. Mathematically speaking, CoCoA-5 can now do (almost) everything that CoCoA-4 could do, and faster. It can also do many things CoCoA-4 cannot. The openness and clean design of CoCoALib and CoCoA-5 is intended to encourage extensions by users outside the main development team. For instance, (1) new contributed functions integrated in CoCoALib operations on Mayer-Vietoris trees (Saenz de Cabezon), Janet Bases (Albert, Seiler) (2) integration of external libraries Normaliz (Bruns, Ichim, Soeger) -- almost ``symbiotic'', Frobby (Roune)

Additional details

Created:
March 27, 2023
Modified:
November 28, 2023