Computer algebra systems and TeXmacs


1.The Axiom system

Axiom is a general purpose Computer Algebra system. It is useful for research and development of mathematical algorithms. It defines a strongly typed, mathematically correct type hierarchy. It has a programming language and a built-in compiler.

Axiom has been in development since 1973 and was sold as a commercial product. It has been released as free software (under a BSD-like license).

Efforts are underway to extend this software to

Axiom web page :

Axiom project :


2.The Giac system

Giac Is A Computer algebra system. The system has been designed by Bernard Parisse and is under active development. It is a general-purpose computation kernel written in C++ with the following features.


Arbitrary precision integers, integer and polynomial arithmetic, Gröbner bases, simplification, equation solver, partial fraction decomposition, linear algebra (vectors, matrices, row reduction to echelon form, eigenvalues and eigenvectors), permutations, combinatorial analysis, computing in and


Derivatives, integration, limits, series expansion, vector calculus, calculus of variations, implicit differentiation, curve interpolation, differential equations, special functions

2D and 3D plotting

Function graphs, surfaces, plotting implicit curves, plotting the solution of a system of inequalities, polar and parametric plots, scatter and line plots, bar plots, pie charts, histograms

2D and 3D geometry

Points, segments, lines, triangles, polygons, circles, conics, parametric curves, curve intersection, tangents, planes, surfaces

Probability and statistics

Probability distributions, random variables, efficient sampling, maximum-likelihood fitting, statistical tests, kernel density estimation

Signal processing and audio tools

Convolution, (auto)correlation, continuous/fast Fourier transform, Fourier series, filtering, windowing, loading, creating and saving audio clips, audio playback, resampling, noise removal, waveform plotting, spectrum plotting


Mixed integer linear programming, finding local and global extrema, nonlinear programming, transportation problem

Graph theory

Creating (random) graphs and digraphs, operations on graphs, modifying graphs, importing and exporting graphs to dot file format, examining properties of graphs, traversing graphs, vertex and edge coloring, graph isomorphism, graph drawing


Functions, local variables, conditionals, loops, choice of syntax (C-like, Python, Maple, Mupad, TI89)

Syntax compatibility with other systems

Maple compatibility, MuPAD compatibility, Python compatibility, MathML export (content and presentation), LaTeX export

Giac output is rendered in TeXmacs from its Scheme tree representation, which results in semantically correct formulas which can be copied back to Giac. Interactive plotting and mathematical input are supported as well.

A note on session plots.
Any interactive Giac figure can be automatically embedded into the TeXmacs document by pressing “OK”. However, the PostScript conversion requires eps2eps script to be available in PATH, which is resolved by installing Ghostscript. In MS Windows, paths to bin and lib folders in the Ghostscript installation directory (e.g. C:\Program Files\gs\gs9.53.3\bin and also lib) must be manually added to the PATH variable after installation (type env in the Start menu to edit environment variables).


3.The GTybalt system

GTybalt is a free computer algebra system which is built on top of GiNaC, CLN and a program to interpret C and C++ commands. gTybalt, which is still in an experimental stage, is maintained by Stefan Weinzierl. Some of the main features of gTybalt are the following:

1.Macaulay 2

4.The Macaulay 2 system

Macaulay 2 is a new software system devoted to supporting research in algebraic geometry and commutative algebra. The software is available now in source code for porting, and in compiled form for Linux, SunOS, Solaris, Windows, and a few other Unix machines. An interface with TeXmacs is currently being implemented.


5.The Maxima system

Maxima is not only one of the oldest and best computer algebra systems around, it is also one of the only general purpose systems for which there is a free implementation. The current free Maxima implementation was started by William F. Schelter. It is dedicated to his memory. Here follow some features of Maxima:


6.The Pari system

Pari-gp is a software package for computer-aided number theory. It consists of a C library, libpari (with optional assembler cores for some popular architectures), and of the programmable interactive gp calculator. While you can write your own libpari-based programs, many people just start up a gp session, or have gp execute their scripts. Pari sessions can now be started inside TeXmacs.

Developed at Bordeaux by a team led by Henri Cohen, PARI-GP is now maintained by Karim Belabas with the help of many volunteer contributors.


7.Reduce computer algebra system

Reduce is one of the oldest computer algebra systems. It is powerful, stable and highly efficient. Its TeXmacs interface is described in the arXiv article.



The Sage system

Sage is an open source system for mathematical computations. It is written in Python and provides interfaces for a wide variety of other systems, such as Axiom, Gap, Pari GP, Macaulay 2, Maxima, Octave, and Singular. The system was started by William Stein.


9.The Yacas system

Yacas is, as it's name suggest, yet another computer algebra system. Things implemented include: arbitrary precision, rational numeric, vector, complex, and matrix computations (including inverses and determinants and solving matrix equations), derivatives, solving, Taylor series, numerical solving (Newtons method), and a lot more non-mathematical algorithms. The language natively supports variables and user-defined functions. There is basic support for univariate polynomials, integrating functions and tensor calculations. Yacas is still under development.