From a7af4d6d1fde75003c1ee4b2c91584dd2e7eeacb Mon Sep 17 00:00:00 2001 From: Jean-Philippe Bossuat Date: Wed, 29 Jan 2025 16:18:53 +0100 Subject: [PATCH] more vec_rnx methods --- base2k/src/vec_znx_arithmetic.rs | 32 +++++++++++++++++++++++++++++++- 1 file changed, 31 insertions(+), 1 deletion(-) diff --git a/base2k/src/vec_znx_arithmetic.rs b/base2k/src/vec_znx_arithmetic.rs index 7ba45d3..203a37f 100644 --- a/base2k/src/vec_znx_arithmetic.rs +++ b/base2k/src/vec_znx_arithmetic.rs @@ -1,4 +1,6 @@ -use crate::bindings::{vec_znx_add, vec_znx_automorphism, vec_znx_rotate, vec_znx_sub}; +use crate::bindings::{ + vec_znx_add, vec_znx_automorphism, vec_znx_negate, vec_znx_rotate, vec_znx_sub, +}; use crate::{Module, VecZnx}; impl Module { @@ -74,6 +76,34 @@ impl Module { } } + pub fn vec_znx_negate(&self, b: &mut VecZnx, a: &VecZnx) { + unsafe { + vec_znx_negate( + self.0, + b.as_mut_ptr(), + b.limbs() as u64, + b.n() as u64, + a.as_ptr(), + a.limbs() as u64, + a.n() as u64, + ) + } + } + + pub fn vec_znx_negate_inplace(&self, a: &mut VecZnx) { + unsafe { + vec_znx_negate( + self.0, + a.as_mut_ptr(), + a.limbs() as u64, + a.n() as u64, + a.as_ptr(), + a.limbs() as u64, + a.n() as u64, + ) + } + } + pub fn vec_znx_rotate(&self, k: i64, a: &mut VecZnx, b: &VecZnx) { unsafe { vec_znx_rotate(