in math/src/polynom/tests.rs [107:146]
fn mul() {
let poly1: [BaseElement; 3] = [
BaseElement::from(384863712573444386u128),
BaseElement::from(7682273369345308472u128),
BaseElement::from(13294661765012277990u128),
];
let poly2: [BaseElement; 3] = [
BaseElement::from(9918505539874556741u128),
BaseElement::from(16401861429499852246u128),
BaseElement::from(12181445947541805654u128),
];
// same degree
let pr = vec![
poly1[0] * poly2[0],
poly1[0] * poly2[1] + poly2[0] * poly1[1],
poly1[1] * poly2[1] + poly1[2] * poly2[0] + poly2[2] * poly1[0],
poly1[2] * poly2[1] + poly2[2] * poly1[1],
poly1[2] * poly2[2],
];
assert_eq!(pr, super::mul(&poly1, &poly2));
// poly1 is lower degree
let pr = vec![
poly1[0] * poly2[0],
poly1[0] * poly2[1] + poly2[0] * poly1[1],
poly1[0] * poly2[2] + poly2[1] * poly1[1],
poly1[1] * poly2[2],
];
assert_eq!(pr, super::mul(&poly1[..2], &poly2));
// poly2 is lower degree
let pr = vec![
poly1[0] * poly2[0],
poly1[0] * poly2[1] + poly2[0] * poly1[1],
poly1[2] * poly2[0] + poly2[1] * poly1[1],
poly1[2] * poly2[1],
];
assert_eq!(pr, super::mul(&poly1, &poly2[..2]));
}