diff --git a/base2k/src/scalar_znx.rs b/base2k/src/scalar_znx.rs index acdac8c..731add3 100644 --- a/base2k/src/scalar_znx.rs +++ b/base2k/src/scalar_znx.rs @@ -5,13 +5,13 @@ use rand_core::RngCore; use rand_distr::{Distribution, weighted::WeightedIndex}; use sampling::source::Source; -pub struct Scalar { +pub struct ScalarZnx { data: D, n: usize, cols: usize, } -impl ZnxInfos for Scalar { +impl ZnxInfos for ScalarZnx { fn cols(&self) -> usize { self.cols } @@ -29,30 +29,30 @@ impl ZnxInfos for Scalar { } } -impl ZnxSliceSize for Scalar { +impl ZnxSliceSize for ScalarZnx { fn sl(&self) -> usize { self.n() } } -impl DataView for Scalar { +impl DataView for ScalarZnx { type D = D; fn data(&self) -> &Self::D { &self.data } } -impl DataViewMut for Scalar { +impl DataViewMut for ScalarZnx { fn data_mut(&mut self) -> &mut Self::D { &mut self.data } } -impl> ZnxView for Scalar { +impl> ZnxView for ScalarZnx { type Scalar = i64; } -impl + AsRef<[u8]>> Scalar { +impl + AsRef<[u8]>> ScalarZnx { pub fn fill_ternary_prob(&mut self, col: usize, prob: f64, source: &mut Source) { let choices: [i64; 3] = [-1, 0, 1]; let weights: [f64; 3] = [prob / 2.0, 1.0 - prob, prob / 2.0]; @@ -71,7 +71,7 @@ impl + AsRef<[u8]>> Scalar { } } -impl>> Scalar { +impl>> ScalarZnx { pub(crate) fn bytes_of(n: usize, cols: usize) -> usize { n * cols * size_of::() } @@ -96,37 +96,37 @@ impl>> Scalar { } } -pub type ScalarOwned = Scalar>; +pub type ScalarZnxOwned = ScalarZnx>; -pub trait ScalarAlloc { +pub trait ScalarZnxAlloc { fn bytes_of_scalar(&self, cols: usize) -> usize; - fn new_scalar(&self, cols: usize) -> ScalarOwned; - fn new_scalar_from_bytes(&self, cols: usize, bytes: Vec) -> ScalarOwned; + fn new_scalar(&self, cols: usize) -> ScalarZnxOwned; + fn new_scalar_from_bytes(&self, cols: usize, bytes: Vec) -> ScalarZnxOwned; } -impl ScalarAlloc for Module { +impl ScalarZnxAlloc for Module { fn bytes_of_scalar(&self, cols: usize) -> usize { - ScalarOwned::bytes_of::(self.n(), cols) + ScalarZnxOwned::bytes_of::(self.n(), cols) } - fn new_scalar(&self, cols: usize) -> ScalarOwned { - ScalarOwned::new::(self.n(), cols) + fn new_scalar(&self, cols: usize) -> ScalarZnxOwned { + ScalarZnxOwned::new::(self.n(), cols) } - fn new_scalar_from_bytes(&self, cols: usize, bytes: Vec) -> ScalarOwned { - ScalarOwned::new_from_bytes::(self.n(), cols, bytes) + fn new_scalar_from_bytes(&self, cols: usize, bytes: Vec) -> ScalarZnxOwned { + ScalarZnxOwned::new_from_bytes::(self.n(), cols, bytes) } } -pub trait ScalarToRef { - fn to_ref(&self) -> Scalar<&[u8]>; +pub trait ScalarZnxToRef { + fn to_ref(&self) -> ScalarZnx<&[u8]>; } -pub trait ScalarToMut { - fn to_mut(&mut self) -> Scalar<&mut [u8]>; +pub trait ScalarZnxToMut { + fn to_mut(&mut self) -> ScalarZnx<&mut [u8]>; } -impl ScalarToMut for Scalar> { - fn to_mut(&mut self) -> Scalar<&mut [u8]> { - Scalar { +impl ScalarZnxToMut for ScalarZnx> { + fn to_mut(&mut self) -> ScalarZnx<&mut [u8]> { + ScalarZnx { data: self.data.as_mut_slice(), n: self.n, cols: self.cols, @@ -134,9 +134,9 @@ impl ScalarToMut for Scalar> { } } -impl ScalarToRef for Scalar> { - fn to_ref(&self) -> Scalar<&[u8]> { - Scalar { +impl ScalarZnxToRef for ScalarZnx> { + fn to_ref(&self) -> ScalarZnx<&[u8]> { + ScalarZnx { data: self.data.as_slice(), n: self.n, cols: self.cols, @@ -144,9 +144,9 @@ impl ScalarToRef for Scalar> { } } -impl ScalarToMut for Scalar<&mut [u8]> { - fn to_mut(&mut self) -> Scalar<&mut [u8]> { - Scalar { +impl ScalarZnxToMut for ScalarZnx<&mut [u8]> { + fn to_mut(&mut self) -> ScalarZnx<&mut [u8]> { + ScalarZnx { data: self.data, n: self.n, cols: self.cols, @@ -154,9 +154,9 @@ impl ScalarToMut for Scalar<&mut [u8]> { } } -impl ScalarToRef for Scalar<&mut [u8]> { - fn to_ref(&self) -> Scalar<&[u8]> { - Scalar { +impl ScalarZnxToRef for ScalarZnx<&mut [u8]> { + fn to_ref(&self) -> ScalarZnx<&[u8]> { + ScalarZnx { data: self.data, n: self.n, cols: self.cols, @@ -164,9 +164,9 @@ impl ScalarToRef for Scalar<&mut [u8]> { } } -impl ScalarToRef for Scalar<&[u8]> { - fn to_ref(&self) -> Scalar<&[u8]> { - Scalar { +impl ScalarZnxToRef for ScalarZnx<&[u8]> { + fn to_ref(&self) -> ScalarZnx<&[u8]> { + ScalarZnx { data: self.data, n: self.n, cols: self.cols, diff --git a/base2k/src/scalar_znx_dft_ops.rs b/base2k/src/scalar_znx_dft_ops.rs index a51d72f..888b2a9 100644 --- a/base2k/src/scalar_znx_dft_ops.rs +++ b/base2k/src/scalar_znx_dft_ops.rs @@ -2,7 +2,7 @@ use crate::ffi::svp; use crate::ffi::vec_znx_dft::vec_znx_dft_t; use crate::znx_base::{ZnxInfos, ZnxView, ZnxViewMut}; use crate::{ - Backend, FFT64, Module, ScalarToRef, ScalarZnxDft, ScalarZnxDftOwned, ScalarZnxDftToMut, ScalarZnxDftToRef, + Backend, FFT64, Module, ScalarZnxToRef, ScalarZnxDft, ScalarZnxDftOwned, ScalarZnxDftToMut, ScalarZnxDftToRef, VecZnxDft, VecZnxDftToMut, VecZnxDftToRef, }; @@ -16,7 +16,7 @@ pub trait ScalarZnxDftOps { fn svp_prepare(&self, res: &mut R, res_col: usize, a: &A, a_col: usize) where R: ScalarZnxDftToMut, - A: ScalarToRef; + A: ScalarZnxToRef; fn svp_apply(&self, res: &mut R, res_col: usize, a: &A, a_col: usize, b: &B, b_col: usize) where R: VecZnxDftToMut, @@ -46,7 +46,7 @@ impl ScalarZnxDftOps for Module { fn svp_prepare(&self, res: &mut R, res_col: usize, a: &A, a_col: usize) where R: ScalarZnxDftToMut, - A: ScalarToRef, + A: ScalarZnxToRef, { unsafe { svp::svp_prepare(