CoCoA System (Computations in Commutative Algebra) è un sistema di algebra computazionale, sviluppato dall'Università di Genova e studiato per affrontare problemi di teoria dei numeri e soprattutto di polinomi.

CoCoA System
software
Logo
Logo
GenereSistema di algebra computazionale
SviluppatoreUniversità di Genova
Ultima versione5.2.4 (2018)
Sistema operativoLinux
macOS
Microsoft Windows
Solaris
LinguaggioC++
ToolkitQt
LicenzaGNU GPL
(licenza libera)
Sito webcocoa.dima.unige.it/

È programmabile tramite un linguaggio appositamente progettato, CoCoA language, e presenta un'interfaccia testuale (usabile anche tramite Emacs).

Nella sua recente evoluzione è stato meglio delineato e potenziato il cuore matematico, progettato come libreria C++, CoCoALib. CoCoALib è distribuito sotto licenza GPL, e così anche per la versione interattiva (CoCoA-5) del sistema.

Esistono versioni per Mac, Linux, Windows e Solaris.

Caratteristiche

modifica

Alla base di CoCoA c'è la potente libreria GMP, sviluppata per trattare in modo esatto numeri a precisione arbitraria con un'efficienza massima su qualsiasi architettura.

CoCoA può essere utilizzata sia per calcoli semplici sia per complesse operazioni di calcolo simbolico. È in grado di trattare:

Il progetto prese il via nel 1987: A. Giovini e G. Niesi svilupparono ognuno per conto proprio due piccoli progetti, che vennero poi riuniti sotto il coordinamento di L. Robbiano[1]; il codice a quel tempo era scritto in Pascal e girava solo su computer Macintosh.

CoCoA3, sviluppata tra il 1990 e il 1993, è stata la prima versione scritta in C.

CoCoA5 è la prima ad essere interamente basata su CoCoALib[2], scritta in C++.

L'evoluzione del progetto è strettamente legata ai meeting e scuole su CoCoA che si tengono periodicamente.

Esempi di utilizzo

modifica

Il seguente esempio permette di definire un ideale e stamparne a schermo la base di Gröbner:

 I := ideal(x^2, y*x+1);
 G := GBasis(I);
 G;

Si osserva facilmente che CoCoA non approssima le frazioni, ma le tratta in modo simbolico:

 (1/3) * 3;
 1
 0.3333333333333 * 3;
 9999999999999/10000000000000
  1. ^ CoCoA Release Notes, su cocoa.dima.unige.it. URL consultato il 7 maggio 2010 (archiviato dall'url originale il 18 marzo 2010).
  2. ^ CoCoALib, su cocoa.dima.unige.it. URL consultato l'8 giugno 2008 (archiviato dall'url originale il 25 marzo 2008).

Altri progetti

modifica

Collegamenti esterni

modifica
  • CoCoA, su cocoa.dima.unige.it.
  • CoCoALib C++ library, su cocoa.dima.unige.it. URL consultato l'8 giugno 2008 (archiviato dall'url originale il 19 ottobre 2014).
  • Manuale d'uso, su cocoa.dima.unige.it. URL consultato l'8 giugno 2008 (archiviato dall'url originale il 28 maggio 2008).
  • ApCoCoA, su apcocoa.org. URL consultato l'8 giugno 2008 (archiviato dall'url originale l'8 dicembre 2015).