Function modulo_n_tools::sub_mod [−][src]
pub fn sub_mod<T>(a: &T, b: &T, modulo: &T) -> T where
T: Ord + for<'x> AddAssign<&'x T> + for<'x> SubAssign<&'x T>,
for<'x> &'x T: Sub<Output = T> + Neg<Output = T>,
Expand description
$a - b \bmod n
$
Input: $-\text{modulo} \leq a,\, b \leq \text{modulo}
$
Output: $-\text{modulo} \leq x \leq \text{modulo}
$
use modulo_n_tools::sub_mod; assert_eq!(sub_mod(&3, &4, &5), -1); assert_eq!(sub_mod(&2, &-5, &6), 1); assert_eq!(sub_mod(&-2, &-3, &4), 1); assert_eq!(sub_mod(&2, &2, &5), 0);