## polynomial-ring

A polynomial implementation

### 20 releases

 0.5.0 Nov 26, 2022 Jul 18, 2022 Jun 25, 2022 Feb 13, 2022 Apr 5, 2020

#1318 in Math

Used in 2 crates

AGPL-3.0-or-later

24KB
514 lines

# Polynomial Ring

A polynomial implementation.

``````use num::Rational64;
use polynomial_ring::Polynomial;

let f = Polynomial::new(vec![3, 1, 4, 1, 5].into_iter().map(|x| Rational64::from_integer(x)).collect());
let g = Polynomial::new(vec![2, 7, 1].into_iter().map(|x| Rational64::from_integer(x)).collect());
let mut r = f.clone();
let q = r.division(&g);
assert_eq!(f, q * g + r);
let f = Polynomial::new(vec![3, 1, 4, 1, 5].into_iter().map(|x| rug::Rational::from(x)).collect());
let g = Polynomial::new(vec![2, 7, 1].into_iter().map(|x| rug::Rational::from(x)).collect());
let mut r = f.clone();
let q = r.division(&g);
assert_eq!(f, q * g + r);
``````

The `Add`, `Sub`, `Mul`, `Div`, and `Rem` traits are implemented for polynomials. Polynomials also support computing derivative, square free, pseudo division, and resultant.

# Licence

AGPL-3.0-or-later

~1.5MB
~39K SLoC