From 63cbeb9a3cba7fbc9de15390b76e24b1285e104c Mon Sep 17 00:00:00 2001 From: Mark Date: Tue, 24 Oct 2023 14:20:26 -0600 Subject: [PATCH] correct modulus bug (#2118, #2119) --- src/machine/arithmetic_ops.rs | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/src/machine/arithmetic_ops.rs b/src/machine/arithmetic_ops.rs index d1f764d6..92e9c599 100644 --- a/src/machine/arithmetic_ops.rs +++ b/src/machine/arithmetic_ops.rs @@ -850,15 +850,9 @@ pub(crate) fn modulus(x: Number, y: Number, arena: &mut Arena) -> Result Integer { - if n1 > &Integer::ZERO && n2 < &Integer::ZERO { - ((n1 - Integer::ONE) / n2) - Integer::ONE - } else if n1 < &Integer::ZERO && n2 > &Integer::ZERO { - ((n1 + Integer::ONE) / n2) - Integer::ONE - } else { - let ring = ConstDivisor::new(n2.unsigned_abs()); - let n1 = n1.clone(); - IBig::from(ring.reduce(n1).residue()) - } + let ring = ConstDivisor::new(n2.unsigned_abs()); + let n1 = n1.clone(); + IBig::from(ring.reduce(n1).residue()) } match (x, y) { -- 2.54.0