This repository contains a community-enhanced Symbolica library. It adds extra functionality to existing Symbolica types and defines new ones.
For example, a community function that computes a Dirac trace, can be injected into a Symbolica Expression
:
Expression.parse("gamma(mu1,mu2,mu3,mu4)").trace()
The community-enhanced version is currently in the testing stage and requires manual building. In the near future, it will be accessible through pip
and crates.io
.
To use the extension in Python, use maturin
to build it:
maturin build --release
If you want to use Symbolica as a library in Rust, simply include it in the Cargo.toml
:
[dependencies]
symbolica_community = { git = "https://github.com/benruijl/symbolica_community.git" }
Users can easily contribute Python or Rust code that extends Symbolica's functionality via Pull Requests. All code in this repository is MIT licensed.
Pure Python contributions should go in the python/symbolica_community/[category]
folder, where the category
is for example physics
, chemisty
, etc. All code must be fully typed.
Rust contributions go in src/[category]/myfeature.rs
and potential Python bindings need to be registered in src/[category].rs
All code accepted into the repository will continuously be upgraded to the latest stable version of Symbolica by Ruijl Research (potentially in combination with other contributors).