pub fn modulo_division<T>(a: T, b: T, m: T) -> Option<T>where
T: Sized + Clone + Eq + Zero + One + RingNormalize + EuclideanRingOperationFrom,
for<'x> &'x T: EuclideanRingOperation,
Expand description
division in modulo
calc x ($bx \equiv a \pmod{m}
$)
use ring_algorithm::modulo_division;
let a = 42;
let b = 32;
let m = 98;
let x = modulo_division::<i32>(a, b, m).unwrap();
assert_eq!((b * x - a) % m, 0);