The Python package sympy2c allows creation and compilation of fast
C/C++ based extension modules from symbolic representations, using sympy.
sympy2c offers functionalities which are beyond the code generation
capabilities already provided by sympy. This
includes creating fast code for
the solution of high dimensional ODEs, or numerical evaluation of integrals
where sympy fails to compute an anti-derivative.
Based on the symbolic formulation of a stiff ODE, sympy2c analyzes
sparsity patterns in the Jacobian matrix of the ODE, and generates loop-less
fast code by unrolling loops in the internally used LU factorization algorithm
and by avoiding unnecessary computations involving known zeros.
We use sympy2c within PyCosmo, see also the
latest publication.