Features:

- Rich set of number classes: Integer (unlimited precision), rational, short float, single float, double float, long float (unlimited precision), complex, modular integer, univariate polynomial.
- Elementary, logical, transcendental functions.
- C++ as implementation language brings
- efficiency,
- type safety,
- algebraic syntax.

- Memory efficiency:
- Small integers and short floats are immediate, not heap allocated.
- Automatic, non-interruptive garbage collection.

- Speed efficiency:
- Assembly language kernel for some CPUs,
- Karatsuba and Schönhage-Strassen multiplication.
- binary splitting.

- Interoperability:
- Garbage collection with no burden on the main application,
- hooks for memory allocation and exceptions.

Requires: C++ compiler g++. The following C++ features are used: classes, member functions, overloading of functions and operators, constructors and destructors, inline, const, multiple inheritance, templates, namespaces, and exceptions. The following C++ features are not used: new, delete, virtual inheritance.

CLN is available via anonymous ftp from `ftp://ftpthep.physik-uni-mainz.de/pub/gnu/`.

CINT is a C/C++ interpreter which is aimed at processing C/C++ scripts. Scripts are programs which perform specific tasks. Generally execution time is not critical, but rapid development is. Using an interpreter the compile and link cycle is dramatically reduced facilitating rapid development. CINT covers about 95% of ANSI C and 85% of C++. CINT, written in ANSI C (about 80000 loc), is solid enough to interpret itself and let the interpreted version execute a program.

CINT makes C/C++ programming enjoyable even for part-time programmers.

CINT is developed by Masaharu Goto, who works for HP Japan. It is also integrated by the ROOT system developed at CERN to be able to execute C++ scripts and C++ command line input. CINT also provides ROOT with extensive RTTI capabilities.

CINT is available via anonymous ftp from `ftp://root.cern.ch/root/`.

Here is an (incomplete) list of other people's projects we are aware of that use GiNaC in one way or another. If you have a GiNaC-based project that you would like to see listed here, please send us an email.

Project Name | Maintainer | Description |
---|---|---|

feelfem | Hidehiro Fujio | A finite element method (FEM) code generator. |

gTybalt | Stefan Weinzierl | Combines GiNaC with TeXmacs and Root into an interactive computer algebra system. |

Nested Sums | Stefan Weinzierl | Symbolic expansion of special transcendental functions (polylogs, etc.) |

PURRS | Roberto Bagnara | A C++ library for solving recurrence relations. |

PyGiNaC | Pearu Peterson | A (discontinued?) Python package providing an interface to GiNaC. |

PyGiNaC | Jonathan Brandmeyer, Matti Peltomäki | A Python interface to GiNaC, based on Boost.Python. |

Swiginac | Ola Skavhaug, Ondrej Certik | A Python interface to GiNaC, based on SWIG. |

Antipodes | Isabella Bierenbaum | A beautiful little project where divergent terms arising in Feynman diagram computations are computed in an elegant way (c.f. hep-th/0111192). |

Ecco | Kai Ludwig et al. | A compiler for the simulation of (electro)chemical reaction kinetics. Part of the EChem++ package. |

ORSA | Pasquale Tricarico, Kuba Ober, Greg MacDonald | Orbit Reconstruction, Simulation and Analysis |

Wedge | Diego Conti | A C++ library for symbolic computations in differential geometry. |

pSketcher | Michael Greminger | A parametric 2D sketcher application with constraints. |

Pynac | William Stein, Burcin Erocal | A feature-reduced version of GiNaC, replacing the dependency on CLN by a dependency of Python, to be used within Sage. |

jemris | Tony Stöcker, Kaveh Vahedipour, Daniel Pflugfelder | High performace computing open source simulator for MRI (magnetic resonance imaging). |

GiNaCRA | Ulrich Loup, Joachim Redies, Sebastian Junges | C++ library providing data structures and algorithms for real algebraic computations. |

Reduze | Andreas von Manteuffel, Cedric Studerus | Program for reducing Feynman integrals to master integrals employing a variant of Laporta's reduction algorithm. |