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
- Host: GitHub
- URL: https://github.com/grihabor/symrs
- Owner: grihabor
- License: bsd-2-clause
- Created: 2020-05-04T10:08:17.000Z (about 6 years ago)
- Default Branch: master
- Last Pushed: 2020-06-07T17:07:52.000Z (about 6 years ago)
- Last Synced: 2025-01-14T06:47:57.294Z (over 1 year ago)
- Topics: computer-algebra, math, rust, science
- Language: Rust
- Size: 58.6 KB
- Stars: 2
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
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