use crate::{modular::reduction::montgomery_reduction, CtChoice, Limb, Uint}; pub const fn inv_montgomery_form( x: &Uint, modulus: &Uint, r3: &Uint, mod_neg_inv: Limb, ) -> (Uint, CtChoice) { let (inverse, is_some) = x.inv_odd_mod(modulus); ( montgomery_reduction(&inverse.mul_wide(r3), modulus, mod_neg_inv), is_some, ) }