pub fn modulo_inverse<T>(a: T, m: T) -> Option<T> where
    T: Sized + Eq + Zero + One + RingNormalize,
    for<'x> &'x T: EuclideanRingOperation<T>, 
Expand description

calc inverse in modulo

calc x ($ax \equiv 1 \pmod{m}$)

use ring_algorithm::modulo_inverse;
let a = 42;
let m = 55;
let b = modulo_inverse::<i32>(a, m).unwrap();
assert_eq!((a * b - 1) % m, 0);