From b8fdf4552e61b16cef35e8f7e8a292845a7b1bde Mon Sep 17 00:00:00 2001 From: Janmajaya Mall Date: Mon, 20 May 2024 13:22:32 +0530 Subject: [PATCH] fix to_i64 for modulus u64 --- src/backend.rs | 6 +++--- src/bool/evaluator.rs | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/backend.rs b/src/backend.rs index 5936fad..32021c5 100644 --- a/src/backend.rs +++ b/src/backend.rs @@ -56,14 +56,14 @@ impl Modulus for u64 { // 0.0? let v = v.round(); if v < 0.0 { - self - v.to_u64().unwrap() + self - v.abs().to_u64().unwrap() } else { v.to_u64().unwrap() } } fn map_element_from_i64(&self, v: i64) -> Self::Element { if v < 0 { - self - v.to_u64().unwrap() + self - v.abs().to_u64().unwrap() } else { v.to_u64().unwrap() } @@ -171,7 +171,7 @@ impl ModularOpsU64 { debug_assert!(a < self.q); debug_assert!(b < self.q); - if a > b { + if a >= b { a - b } else { (self.q + a) - b diff --git a/src/bool/evaluator.rs b/src/bool/evaluator.rs index fdb4e18..d017a10 100644 --- a/src/bool/evaluator.rs +++ b/src/bool/evaluator.rs @@ -1927,7 +1927,7 @@ mod tests { let mut bool_evaluator = BoolEvaluator::< Vec>, NttBackendU64, - WordSizeModulus>, + ModularOpsU64>, ModularOpsU64>, >::new(SP_BOOL_PARAMS);