GiNaC

GiNaC is a C++ library. It is designed to allow the creation of integrated systems that embed symbolic manipulations together with more established areas of computer science (like computation- intense numeric applications, graphical interfaces, etc.) under one roof. It is distributed under the terms and conditions of the GNU general public license (GPL). GiNaC is an iterated and recursive acronym for GiNaC is Not a CAS, where CAS stands for Computer Algebra System.

It has been specifically developed to be an engine for computing Feynman integrals. But it is not restricted to high energy physics applications. Its design is revolutionary in a sense that contrary to other CAS it does not try to provide extensive algebraic capabilities and a simple programming language but instead accepts a given language (C++) and extends it by a set of algebraic capabilities.

Perplexed? Feel free to read this paper which describes the philosophy behind GiNaC in more detail. It also addresses some design principles and questions of efficiency, although some implementation details have changed since it was written.