ApCoCoA-1:What is ApCoCoA

From ApCoCoAWiki

The computer algebra framework ApCoCoA is a client/server application which is based on the computer algebra system CoCoA. CoCoA respectively ApCoCoA are acronyms of

Applied Computations in Commutative Algebra.

So the main goal of ApCoCoA is to apply the symbolic methods of the computer algebra system CoCoA to 'real problems', i.e. to connect computer algebra and numeric. The second goal of ApCoCoA is to enable accessing further external libraries and programs from ApCoCoA. The computer algebra framework ApCoCoA is developed by the ApCoCoA Team, which is lead by Martin Kreuzer.

Overview

The following diagram gives a simplified overview of what ApCoCoA is, how ApCoCoA is built up and what features ApCoCoA provides.

Apcocoa overview.svg

From CoCoA to ApCoCoA

ApCoCoA provides the full functionality of CoCoA which is an open source computer algebra system available for various platforms and operating systems. CoCoA is developed at the University of Genova (Italy). For further information about CoCoA please go to its official website or go to the CoCoA section of this wiki. In the wiki you can also find something about the history of CoCoA.

But as mentioned above ApCoCoA is much more than 'only CoCoA'. With the own programming language of CoCoA called CoCoAL it is possible to easily write top-level functions which extend the functionality of CoCoA. For instance ApCoCoA provides functions for border basis computations or computations in weyl algebras. All these CoCoAL packages are bundled in ApCoCoA packages.

CoCoA provides a C++ library, called CoCoALib, licensed under GPL v3 with which it is possible to use the CoCoA computing engine for the developement of own applications. The use of C++ allows much faster and efficient computations. The most functions of ApCoCoA which extend CoCoA are also written in C++ based on CoCoALib. So ApCoCoA has its own C++ library, called ApCoCoALib, which is also licensed under GPL v3.

ApCoCoALib builds the ApCoCoAServer which communicates with CoCoA via an interpreter and a parser. All the functionality of ApCoCoALib respectively ApCoCoAServer is accessible from ApCoCoA. Therefore there are packages in ApCoCoA packages which do the communication between client and server. For all commands which ApCoCoA provides in addition to CoCoA please go to the Command reference.

Is this all what ApCoCoA provides? Of course not! ApCoCoA make various external libraries and programs accessible and usable. At the time of writing these are

  • Bertini
  • GLPK
  • Gnuplot
  • IML
  • LattE
  • Linbox
  • MiniSat

In the Command reference you can find the commands for using the functionality of these libraries and programs.

Since the release of ApCoCoA-1.2 ApCoCoA provides much more comfort to the user, because ApCoCoA does no longer use the outdated Qt-GUI, but instead a new GUI based on eclipse.

GUI Rearrangement.jpg

It makes working with ApCoCoA as well as developing it more comfortable and comes along with a lot of features, e.g.

  • improved file management
  • user-defined colouring
  • syntax highlighting
  • line numbers
  • auto completion
  • code templates

and much more. Try and find out yourself all features of the next generation Graphical User Interface for ApCoCoA!

Now you are certainly convinced to use ApCoCoA! So go to Downloads and get the latest version of ApCoCoA!