From 97a1559bf21389dd68917db7329aa9b9202139eb Mon Sep 17 00:00:00 2001 From: Jean-Philippe Bossuat Date: Wed, 5 Mar 2025 16:11:41 +0100 Subject: [PATCH] fixed vec_znx.rsh --- base2k/src/vec_znx.rs | 9 +++++++-- rns/src/modulus/impl_u64/223123123123123 123 123 | 1 + 2 files changed, 8 insertions(+), 2 deletions(-) create mode 100644 rns/src/modulus/impl_u64/223123123123123 123 123 diff --git a/base2k/src/vec_znx.rs b/base2k/src/vec_znx.rs index e9c8b42..6daa95e 100644 --- a/base2k/src/vec_znx.rs +++ b/base2k/src/vec_znx.rs @@ -475,13 +475,18 @@ pub fn rsh(log_base2k: usize, a: &mut T, k: usize, tmp_bytes: & (cols_steps..cols).for_each(|i| { izip!(carry_i64.iter_mut(), a.at_mut(i).iter_mut()).for_each(|(ci, xi)| { *xi += *ci << log_base2k; - *ci = *xi & mask; - *xi /= 1 << k_rem; + *ci = get_base_k_carry(*xi, k_rem); + *xi = (*xi-*ci)>>k_rem; }); }) } } +#[inline(always)] +fn get_base_k_carry(x: i64, k: usize) -> i64{ + (x<<64-k) >> (64-k) +} + pub trait VecZnxCommon: VecZnxApi + Infos {} pub trait VecZnxOps { diff --git a/rns/src/modulus/impl_u64/223123123123123 123 123 b/rns/src/modulus/impl_u64/223123123123123 123 123 new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/rns/src/modulus/impl_u64/223123123123123 123 123 @@ -0,0 +1 @@ +