A symbolic math library written in C++

ViennaMath is a free open-source implementation of a symbolic math kernel in C++. The library provides a unified interface for both runtime and compiletime expression manipulation and evaluation. Unlike other symbolic math libraries, which aim at algebraic investigations such as the computation of Groebner bases, the primary focus of ViennaMath is to raise the level of abstraction in numerical algorithms such as implementations of the finite element method.


  • Unified user API for runtime and compiletime manipulations and evaluations
  • Symbolic differentiation of arbitrary expressions
  • Symbolic integration of polynomials
  • LaTeX converter: Directly generates LaTeX code from ViennaMath expressions
  • Multi-Platform support
  • Header-Only library
  • Permissive MIT/X11 license

More information can be found at