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.