A general polynomial library for the Rust programming language. Focusing on polynomial multiplication algorithms for arbitrary algebras. This library served as the basis for a talk given at Maple Conf 2020 "Rust for developing Fast, Parallelized Computer Algebra Systems"
Currently includes the following features:
- Polynomial addition
- Naive polynomial multiplication
- Karatsuba Multiplication
- FFT Multiplication
- F4 algorithm for reducing a polynomial ideal to a Gröbner basis
- Encoding/decoding polynomials as a human readable string
The following algebraic structures are supported:
- Polynomial rings, including quotient rings and over multiple variables.
- Polynomial ideals
Which are both supported over the real numbers, complex numbers, integers, and finite fields.
These operations are mostly supported on a dense polynomial representation but some operation are also supported on an experimental sparse polynomial representation.