An open API service indexing awesome lists of open source software.

https://github.com/grihabor/symrs

Rust library for symbolic mathematics
https://github.com/grihabor/symrs

computer-algebra math rust science

Last synced: 8 months ago
JSON representation

Rust library for symbolic mathematics

Awesome Lists containing this project

README

          

# symrs

Inspired by [sympy](https://github.com/sympy/sympy)

## TODO

Implement sympy.core functionality:
- [ ] [expand](https://docs.sympy.org/latest/tutorial/simplification.html#expand)
- [ ] [substitution](https://docs.sympy.org/latest/tutorial/basic_operations.html#substitution)
- [ ] [factor](https://docs.sympy.org/latest/tutorial/simplification.html#factor)
- [ ] [collect](https://docs.sympy.org/latest/tutorial/simplification.html#collect)
- [ ] [cancel](https://docs.sympy.org/latest/tutorial/simplification.html#cancel)
- [ ] [apart](https://docs.sympy.org/latest/tutorial/simplification.html#apart)

Use numeric types:
https://github.com/rust-num/num

Parse math expressions with parser combinators:
https://github.com/Geal/nom

## Papers

Brown's algorithm:
https://www.tandfonline.com/doi/pdf/10.1080/00029890.1969.12000122

RADCAN (Fateman's) algorithm:
https://people.eecs.berkeley.edu/~fateman/papers/radcan.pdf

Berlekamp's algorithm
https://www.ams.org/journals/mcom/1970-24-111/S0025-5718-1970-0276200-X/S0025-5718-1970-0276200-X.pdf

## Related projects

Abstract algebra for Rust:
https://docs.rs/crate/alga/0.9.3

Linear algebra library for Rust:
https://github.com/rustsim/nalgebra

a Rust implementation of first-order term rewriting systems (TRS):
https://github.com/joshrule/term-rewriting-rs

Manipulations and data types that represent polynomial:
https://github.com/gifnksm/polynomial-rs