Function ring_algorithm::chinese_remainder_theorem [−][src]
pub fn chinese_remainder_theorem<T>(u: &[T], m: &[T]) -> Option<T> where
T: Sized + Clone + Eq + Zero + One + RingNormalize,
for<'x> &'x T: EuclideanRingOperation<T>,
Expand description
Chinese remainder theorem
use ring_algorithm::chinese_remainder_theorem;
let u = vec![2, 3, 2];
let m = vec![3, 5, 7];
let a = chinese_remainder_theorem::<i32>(&u, &m).unwrap();
for (u, m) in u.iter().zip(m.iter()) {
assert_eq!((a - u) % m, 0);
}