Symbolica ⊆ Modern Computer Algebra
Symbolica is a high-performance computer algebra library for Python and Rust. It is built for large expressions, symbolic rewrites, exact polynomial arithmetic, and optimized numerical evaluators.
Trusted by CERN and research groups at ETH Zurich, the University of Zurich, the University of Bern, and Karlsruhe Institute of Technology.
Try the live Jupyter Notebook demo, read the documentation, or see symbolica.io for licensing and support.
Why Symbolica?
- Native Python and Rust APIs for the same symbolic core
- Optimized numerical evaluators, with JIT, C++, SIMD, ASM, and CUDA code generation
- Fast multivariate polynomial arithmetic for large symbolic workloads
- Pattern matching and rewrites for domain-specific algebra
- Mixed exact and numerical computation with error propagation
- Streaming tools for expressions too large to keep in memory
Installation
Visit the Get Started page for detailed installation instructions.
Python
Symbolica can be installed from PyPI using pip:
Rust
If you want to use Symbolica as a library in Rust, simply include it:
Example
Here is one compact workflow that combines symbolic manipulation, series expansion, replacement, solving a parameterized linear system, and numerical evaluation. Check the guide for a complete overview.
Pendulum calibration
Start with a pendulum whose restoring torque is controlled by the scale κ:
, =
= *
= -
-\kappa \sin\!\left(\theta\right)
Expand the torque to get a small-angle model:
=
-\kappa\theta+\frac{1}{6}\kappa\theta^3+\mathcal{O}\!\left(\theta^4\right)
Suppose the scale κ and a sensor offset τ_0 are unknown. Each pair
(θ_i, τ_i) is one sensor reading: at angle θ_i, the measured torque is
τ_i. Convert the truncated series back to an expression, evaluate it at two
measurement angles using replace, and solve the resulting linear system:
, , , , =
= +
, =
\frac{6\tau_1-6\tau_2}{-6\theta_1+6\theta_2+\theta_1^3-\theta_2^3}
Finally, plug in measured values:
.
4.905227655986509
Development
Follow the development of Symbolica and the open-source spin-off projects numerica and graphica on Zulip!