CoCoA

Da Wikipedia, l'enciclopedia libera.
CoCoA System
Logo
CoCoA.4 Logo.png
Sviluppatore Università di Genova
Ultima versione 5.1.4 (aprile 2016)
Sistema operativo Linux
macOS
Microsoft Windows
Solaris
Linguaggio
Genere Sistema di algebra computazionale
Licenza GNU GPL
(licenza libera)
Sito web

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.

Si basa su un linguaggio appositamente progettato, CoCoA language, e presenta un'interfaccia testuale (usabile anche tramite Emacs) e una grafica (GUI).

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 | modifica wikitesto]

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:

Storia[modifica | modifica wikitesto]

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 e' la prima ad essere interamente basata su CoCoALib[2].

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

Esempi di utilizzo[modifica | modifica wikitesto]

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

Note[modifica | modifica wikitesto]

Altri progetti[modifica | modifica wikitesto]

Collegamenti esterni[modifica | modifica wikitesto]