arnaucube
arnaucube/phantom-zonePublic Self-hosted repository
fix to_i64 for modulus u64
Janmajaya Mall janmajayamall@protonmail.com
Mon, 20 May 2024 13:22:32 +0530
commit

b8fdf4552e61b16cef35e8f7e8a292845a7b1bde

parent

28216110b2e4f01db1a6cf7ea48ace31dea91a08

2 files changed, 4 insertions(+), 4 deletions(-)

jump to
M src/backend.rs → src/backend.rs

@@ -56,14 +56,14 @@ // o.is_sign_negative() && o != 0.0; I'm ocnfused why didn't I simply check <

// 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 @@ fn sub_mod_fast(&self, a: u64, b: u64) -> u64 {

debug_assert!(a < self.q); debug_assert!(b < self.q); - if a > b { + if a >= b { a - b } else { (self.q + a) - b
M src/bool/evaluator.rs → src/bool/evaluator.rs

@@ -1927,7 +1927,7 @@

let mut bool_evaluator = BoolEvaluator::< Vec<Vec<u64>>, NttBackendU64, - WordSizeModulus<CiphertextModulus<u64>>, + ModularOpsU64<CiphertextModulus<u64>>, ModularOpsU64<CiphertextModulus<u64>>, >::new(SP_BOOL_PARAMS);