Skip to content

A community-enhanced version of Symbolica, for modern computer algebra in Python and Rust

License

Notifications You must be signed in to change notification settings

alphal00p/symbolica-community

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation


logo

Symbolica website Zulip Chat Symbolica website

Community-enhanced Symbolica

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()

Usage

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.

Python

To use the extension in Python, use maturin to build it:

maturin build --release

Rust

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" }

Contributing

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

Forward compatibility

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).

About

A community-enhanced version of Symbolica, for modern computer algebra in Python and Rust

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 89.2%
  • Rust 10.8%