in math/src/field/f62/tests.rs [125:186]
fn cube_mul() {
// identity
let r: CubeExtension<BaseElement> = rand_value();
assert_eq!(
<CubeExtension<BaseElement>>::ZERO,
r * <CubeExtension<BaseElement>>::ZERO
);
assert_eq!(r, r * <CubeExtension<BaseElement>>::ONE);
// test multiplication within bounds
let a = <CubeExtension<BaseElement>>::new(
BaseElement::new(15),
BaseElement::new(22),
BaseElement::new(8),
);
let b = <CubeExtension<BaseElement>>::new(
BaseElement::new(20),
BaseElement::new(22),
BaseElement::new(6),
);
let expected = <CubeExtension<BaseElement>>::new(
BaseElement::new(4611624995532046021),
BaseElement::new(58),
BaseElement::new(638),
);
assert_eq!(expected, a * b);
// test multiplication with overflow
let a = <CubeExtension<BaseElement>>::new(
BaseElement::new(4611624995532046322),
BaseElement::new(1390),
BaseElement::new(4611624995532037737),
);
let b = <CubeExtension<BaseElement>>::new(
BaseElement::new(4611624995532046117),
BaseElement::new(2305812497766022990),
BaseElement::new(4611624995532046335),
);
let expected = <CubeExtension<BaseElement>>::new(
BaseElement::new(4611624995528984997),
BaseElement::new(2305812497762621006),
BaseElement::new(1609515),
);
assert_eq!(expected, a * b);
let a = <CubeExtension<BaseElement>>::new(
BaseElement::new(4611624995532046319),
BaseElement::new(4611624995532045209),
BaseElement::new(4611624995532030347),
);
let b = <CubeExtension<BaseElement>>::new(
BaseElement::new(4611624995532046117),
BaseElement::new(200000476),
BaseElement::new(4611624995077500937),
);
let expected = <CubeExtension<BaseElement>>::new(
BaseElement::new(5370560804040),
BaseElement::new(4611615826131194009),
BaseElement::new(4611610241754952409),
);
assert_eq!(expected, a * b);
}