GiNaC - Symbolic computation with C++
Jens Vollinga
TL;DR
High-energy physics calculations involve many coupled algorithmic tasks and growing software complexity when combining tools for algebra, numerics, and data management. This paper presents GiNaC, a C++ library that extends the language with new data types (symbol, ex) and operator overloading to enable seamless symbolic computation directly in C++. The main contributions are a wide-ranging symbolic toolkit (differentiation, series, pattern matching, polynomial operations), support for special algebras (Clifford, SU(3)), and an extensive library of polylogarithms, all released under GPL with documentation. The approach reduces fragmentation and improves maintainability by providing a unified algebra engine within C++, enabling complete physics workflows in a single language.
Abstract
We give an introduction to the C++ library GiNaC, which extends the C++ language by new objects and methods for the representation and manipulation of arbitrary symbolic expressions.
