pub struct Module<B>where
B: Backend,{ /* private fields */ }Expand description
Primary entry point for all polynomial operations over Z[X]/(X^N + 1).
A Module pairs a ring degree N (always a power of two) with a
backend-specific handle that holds any required precomputed state. All
api trait methods are dispatched through this type.
The module owns its handle; dropping the Module calls
Backend::destroy.
Implementations§
Source§impl<B> Module<B>where
B: Backend,
impl<B> Module<B>where
B: Backend,
Sourcepub unsafe fn from_raw_parts(
ptr: *mut <B as Backend>::Handle,
n: u64,
) -> Module<B>
pub unsafe fn from_raw_parts( ptr: *mut <B as Backend>::Handle, n: u64, ) -> Module<B>
Construct from a raw pointer managed elsewhere.
SAFETY: ptr must be non-null and remain valid for the lifetime of this Module.
Sourcepub unsafe fn ptr(&self) -> *mut <B as Backend>::Handle
pub unsafe fn ptr(&self) -> *mut <B as Backend>::Handle
Returns the raw pointer to the backend handle.
Sourcepub fn scalar_znx_alloc(
&self,
cols: usize,
) -> ScalarZnx<<B as Backend>::OwnedBuf>
pub fn scalar_znx_alloc( &self, cols: usize, ) -> ScalarZnx<<B as Backend>::OwnedBuf>
Allocates a zero-initialized backend-owned ScalarZnx.
Sourcepub fn vec_znx_alloc(
&self,
cols: usize,
size: usize,
) -> VecZnx<<B as Backend>::OwnedBuf>
pub fn vec_znx_alloc( &self, cols: usize, size: usize, ) -> VecZnx<<B as Backend>::OwnedBuf>
Allocates a zero-initialized backend-owned VecZnx.
Sourcepub fn vec_znx_alloc_with_max_size(
&self,
cols: usize,
size: usize,
max_size: usize,
) -> VecZnx<<B as Backend>::OwnedBuf>
pub fn vec_znx_alloc_with_max_size( &self, cols: usize, size: usize, max_size: usize, ) -> VecZnx<<B as Backend>::OwnedBuf>
Allocates a zero-initialized backend-owned VecZnx with explicit limb capacity.
Sourcepub fn mat_znx_alloc(
&self,
rows: usize,
cols_in: usize,
cols_out: usize,
size: usize,
) -> MatZnx<<B as Backend>::OwnedBuf>
pub fn mat_znx_alloc( &self, rows: usize, cols_in: usize, cols_out: usize, size: usize, ) -> MatZnx<<B as Backend>::OwnedBuf>
Allocates a zero-initialized backend-owned MatZnx.
Sourcepub fn as_mut_ptr(&self) -> *mut <B as Backend>::Handle
pub fn as_mut_ptr(&self) -> *mut <B as Backend>::Handle
Returns the raw pointer to the backend handle.
Sourcepub fn reinterpret<Other>(&self) -> &Module<Other>
pub fn reinterpret<Other>(&self) -> &Module<Other>
Reinterprets this Module<B> as a Module<Other> sharing the same
backend Handle type.
This is a zero-cost view used to forward API calls to a compatible source backend without rebuilding the handle.
Sourcepub fn reinterpret_mut<Other>(&mut self) -> &mut Module<Other>
pub fn reinterpret_mut<Other>(&mut self) -> &mut Module<Other>
Mutable version of Module::reinterpret.
Trait Implementations§
Source§impl CKKSAddDefault<FFT64Ref> for Module<FFT64Ref>
impl CKKSAddDefault<FFT64Ref> for Module<FFT64Ref>
fn ckks_add_tmp_bytes_default(&self) -> usizewhere
Self: GLWEShift<BE> + GLWENormalize<BE>,
fn ckks_add_pt_vec_tmp_bytes_default(&self) -> usize
fn ckks_add_pt_const_tmp_bytes_default(&self) -> usize
fn ckks_add_into_default<Dst, A, B>(
&self,
dst: &mut Dst,
a: &A,
b: &B,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Self: GLWEAdd<BE> + GLWEShift<BE> + GLWENormalize<BE>,
Dst: GLWEToBackendMut<BE> + LWEInfos + SetCKKSInfos + CKKSInfos,
A: GLWEToBackendRef<BE> + LWEInfos + CKKSInfos,
B: GLWEToBackendRef<BE> + LWEInfos + CKKSInfos,
fn ckks_add_into_unsafe_default<Dst, A, B>(
&self,
dst: &mut Dst,
a: &A,
b: &B,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Self: GLWEAdd<BE> + GLWEShift<BE>,
Dst: GLWEToBackendMut<BE> + LWEInfos + SetCKKSInfos + CKKSInfos,
A: GLWEToBackendRef<BE> + LWEInfos + CKKSInfos,
B: GLWEToBackendRef<BE> + LWEInfos + CKKSInfos,
fn ckks_add_assign_default<Dst, A>(
&self,
dst: &mut Dst,
a: &A,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Self: GLWEAdd<BE> + GLWEShift<BE> + GLWENormalize<BE>,
Dst: GLWEToBackendMut<BE> + CKKSInfos + SetCKKSInfos,
A: GLWEToBackendRef<BE> + CKKSInfos,
fn ckks_add_assign_unsafe_default<Dst, A>(
&self,
dst: &mut Dst,
a: &A,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Self: GLWEAdd<BE> + GLWEShift<BE>,
Dst: GLWEToBackendMut<BE> + CKKSInfos + SetCKKSInfos,
A: GLWEToBackendRef<BE> + CKKSInfos,
fn ckks_add_one_assign_default<Dst>(
&self,
dst: &mut Dst,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Self: GLWENormalize<BE> + VecZnxRshAddCoeffIntoBackend<BE> + CKKSPlaintextDefault<BE>,
Dst: GLWEToBackendMut<BE> + LWEInfos + CKKSInfos,
fn ckks_add_pt_vec_into_default<Dst, A, P>(
&self,
dst: &mut Dst,
a: &A,
pt: &P,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Self: VecZnxRshAddIntoBackend<BE> + GLWEShift<BE> + GLWENormalize<BE> + CKKSPlaintextDefault<BE>,
Dst: GLWEToBackendMut<BE> + LWEInfos + CKKSInfos + SetCKKSInfos,
A: GLWEToBackendRef<BE> + LWEInfos + CKKSInfos,
P: GLWEToBackendRef<BE> + LWEInfos + CKKSInfos,
fn ckks_add_pt_vec_into_unsafe_default<Dst, A, P>(
&self,
dst: &mut Dst,
a: &A,
pt: &P,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Self: VecZnxRshAddIntoBackend<BE> + GLWEShift<BE> + CKKSPlaintextDefault<BE>,
Dst: GLWEToBackendMut<BE> + LWEInfos + CKKSInfos + SetCKKSInfos,
A: GLWEToBackendRef<BE> + LWEInfos + CKKSInfos,
P: GLWEToBackendRef<BE> + LWEInfos + CKKSInfos,
fn ckks_add_pt_vec_assign_default<Dst, P>(
&self,
dst: &mut Dst,
pt: &P,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Self: VecZnxRshAddIntoBackend<BE> + GLWENormalize<BE> + CKKSPlaintextDefault<BE>,
Dst: GLWEToBackendMut<BE> + LWEInfos + CKKSInfos,
P: GLWEToBackendRef<BE> + LWEInfos + CKKSInfos,
fn ckks_add_pt_vec_assign_unsafe_default<Dst, P>(
&self,
dst: &mut Dst,
pt: &P,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Self: VecZnxRshAddIntoBackend<BE> + CKKSPlaintextDefault<BE>,
Dst: GLWEToBackendMut<BE> + LWEInfos + CKKSInfos,
P: GLWEToBackendRef<BE> + LWEInfos + CKKSInfos,
fn ckks_add_pt_const_into_default<Dst, A, P>(
&self,
dst: &mut Dst,
a: &A,
dst_coeff: usize,
cst: &P,
const_coeff: usize,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Self: GLWEShift<BE> + GLWENormalize<BE> + VecZnxRshAddCoeffIntoBackend<BE> + CKKSPlaintextDefault<BE>,
Dst: GLWEToBackendMut<BE> + LWEInfos + CKKSInfos + SetCKKSInfos,
A: GLWEToBackendRef<BE> + LWEInfos + CKKSInfos,
P: GLWEToBackendRef<BE> + LWEInfos + CKKSInfos,
fn ckks_add_pt_const_into_unsafe_default<Dst, A, P>(
&self,
dst: &mut Dst,
a: &A,
dst_coeff: usize,
cst: &P,
const_coeff: usize,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Self: GLWEShift<BE> + VecZnxRshAddCoeffIntoBackend<BE> + CKKSPlaintextDefault<BE>,
Dst: GLWEToBackendMut<BE> + LWEInfos + CKKSInfos + SetCKKSInfos,
A: GLWEToBackendRef<BE> + LWEInfos + CKKSInfos,
P: GLWEToBackendRef<BE> + LWEInfos + CKKSInfos,
fn ckks_add_pt_const_assign_default<Dst, P>(
&self,
dst: &mut Dst,
dst_coeff: usize,
cst: &P,
const_coeff: usize,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Self: GLWENormalize<BE> + VecZnxRshAddCoeffIntoBackend<BE> + CKKSPlaintextDefault<BE>,
Dst: GLWEToBackendMut<BE> + LWEInfos + CKKSInfos,
P: GLWEToBackendRef<BE> + LWEInfos + CKKSInfos,
fn ckks_add_pt_const_assign_unsafe_default<Dst, P>(
&self,
dst: &mut Dst,
dst_coeff: usize,
cst: &P,
const_coeff: usize,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Self: VecZnxRshAddCoeffIntoBackend<BE> + CKKSPlaintextDefault<BE>,
Dst: GLWEToBackendMut<BE> + LWEInfos + CKKSInfos,
P: GLWEToBackendRef<BE> + LWEInfos + CKKSInfos,
Source§impl CKKSAddDefault<NTT120Ref> for Module<NTT120Ref>
impl CKKSAddDefault<NTT120Ref> for Module<NTT120Ref>
fn ckks_add_tmp_bytes_default(&self) -> usizewhere
Self: GLWEShift<BE> + GLWENormalize<BE>,
fn ckks_add_pt_vec_tmp_bytes_default(&self) -> usize
fn ckks_add_pt_const_tmp_bytes_default(&self) -> usize
fn ckks_add_into_default<Dst, A, B>(
&self,
dst: &mut Dst,
a: &A,
b: &B,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Self: GLWEAdd<BE> + GLWEShift<BE> + GLWENormalize<BE>,
Dst: GLWEToBackendMut<BE> + LWEInfos + SetCKKSInfos + CKKSInfos,
A: GLWEToBackendRef<BE> + LWEInfos + CKKSInfos,
B: GLWEToBackendRef<BE> + LWEInfos + CKKSInfos,
fn ckks_add_into_unsafe_default<Dst, A, B>(
&self,
dst: &mut Dst,
a: &A,
b: &B,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Self: GLWEAdd<BE> + GLWEShift<BE>,
Dst: GLWEToBackendMut<BE> + LWEInfos + SetCKKSInfos + CKKSInfos,
A: GLWEToBackendRef<BE> + LWEInfos + CKKSInfos,
B: GLWEToBackendRef<BE> + LWEInfos + CKKSInfos,
fn ckks_add_assign_default<Dst, A>(
&self,
dst: &mut Dst,
a: &A,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Self: GLWEAdd<BE> + GLWEShift<BE> + GLWENormalize<BE>,
Dst: GLWEToBackendMut<BE> + CKKSInfos + SetCKKSInfos,
A: GLWEToBackendRef<BE> + CKKSInfos,
fn ckks_add_assign_unsafe_default<Dst, A>(
&self,
dst: &mut Dst,
a: &A,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Self: GLWEAdd<BE> + GLWEShift<BE>,
Dst: GLWEToBackendMut<BE> + CKKSInfos + SetCKKSInfos,
A: GLWEToBackendRef<BE> + CKKSInfos,
fn ckks_add_one_assign_default<Dst>(
&self,
dst: &mut Dst,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Self: GLWENormalize<BE> + VecZnxRshAddCoeffIntoBackend<BE> + CKKSPlaintextDefault<BE>,
Dst: GLWEToBackendMut<BE> + LWEInfos + CKKSInfos,
fn ckks_add_pt_vec_into_default<Dst, A, P>(
&self,
dst: &mut Dst,
a: &A,
pt: &P,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Self: VecZnxRshAddIntoBackend<BE> + GLWEShift<BE> + GLWENormalize<BE> + CKKSPlaintextDefault<BE>,
Dst: GLWEToBackendMut<BE> + LWEInfos + CKKSInfos + SetCKKSInfos,
A: GLWEToBackendRef<BE> + LWEInfos + CKKSInfos,
P: GLWEToBackendRef<BE> + LWEInfos + CKKSInfos,
fn ckks_add_pt_vec_into_unsafe_default<Dst, A, P>(
&self,
dst: &mut Dst,
a: &A,
pt: &P,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Self: VecZnxRshAddIntoBackend<BE> + GLWEShift<BE> + CKKSPlaintextDefault<BE>,
Dst: GLWEToBackendMut<BE> + LWEInfos + CKKSInfos + SetCKKSInfos,
A: GLWEToBackendRef<BE> + LWEInfos + CKKSInfos,
P: GLWEToBackendRef<BE> + LWEInfos + CKKSInfos,
fn ckks_add_pt_vec_assign_default<Dst, P>(
&self,
dst: &mut Dst,
pt: &P,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Self: VecZnxRshAddIntoBackend<BE> + GLWENormalize<BE> + CKKSPlaintextDefault<BE>,
Dst: GLWEToBackendMut<BE> + LWEInfos + CKKSInfos,
P: GLWEToBackendRef<BE> + LWEInfos + CKKSInfos,
fn ckks_add_pt_vec_assign_unsafe_default<Dst, P>(
&self,
dst: &mut Dst,
pt: &P,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Self: VecZnxRshAddIntoBackend<BE> + CKKSPlaintextDefault<BE>,
Dst: GLWEToBackendMut<BE> + LWEInfos + CKKSInfos,
P: GLWEToBackendRef<BE> + LWEInfos + CKKSInfos,
fn ckks_add_pt_const_into_default<Dst, A, P>(
&self,
dst: &mut Dst,
a: &A,
dst_coeff: usize,
cst: &P,
const_coeff: usize,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Self: GLWEShift<BE> + GLWENormalize<BE> + VecZnxRshAddCoeffIntoBackend<BE> + CKKSPlaintextDefault<BE>,
Dst: GLWEToBackendMut<BE> + LWEInfos + CKKSInfos + SetCKKSInfos,
A: GLWEToBackendRef<BE> + LWEInfos + CKKSInfos,
P: GLWEToBackendRef<BE> + LWEInfos + CKKSInfos,
fn ckks_add_pt_const_into_unsafe_default<Dst, A, P>(
&self,
dst: &mut Dst,
a: &A,
dst_coeff: usize,
cst: &P,
const_coeff: usize,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Self: GLWEShift<BE> + VecZnxRshAddCoeffIntoBackend<BE> + CKKSPlaintextDefault<BE>,
Dst: GLWEToBackendMut<BE> + LWEInfos + CKKSInfos + SetCKKSInfos,
A: GLWEToBackendRef<BE> + LWEInfos + CKKSInfos,
P: GLWEToBackendRef<BE> + LWEInfos + CKKSInfos,
fn ckks_add_pt_const_assign_default<Dst, P>(
&self,
dst: &mut Dst,
dst_coeff: usize,
cst: &P,
const_coeff: usize,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Self: GLWENormalize<BE> + VecZnxRshAddCoeffIntoBackend<BE> + CKKSPlaintextDefault<BE>,
Dst: GLWEToBackendMut<BE> + LWEInfos + CKKSInfos,
P: GLWEToBackendRef<BE> + LWEInfos + CKKSInfos,
fn ckks_add_pt_const_assign_unsafe_default<Dst, P>(
&self,
dst: &mut Dst,
dst_coeff: usize,
cst: &P,
const_coeff: usize,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Self: VecZnxRshAddCoeffIntoBackend<BE> + CKKSPlaintextDefault<BE>,
Dst: GLWEToBackendMut<BE> + LWEInfos + CKKSInfos,
P: GLWEToBackendRef<BE> + LWEInfos + CKKSInfos,
Source§impl<BE> CKKSAddManyOps<BE> for Module<BE>
impl<BE> CKKSAddManyOps<BE> for Module<BE>
fn ckks_add_many_tmp_bytes(&self) -> usize
Source§fn ckks_add_many<Dst, Src>(
&self,
dst: &mut CKKSCiphertext<Dst>,
inputs: &[&CKKSCiphertext<Src>],
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Dst: Data,
Src: Data,
CKKSCiphertext<Dst>: GLWEToBackendMut<BE>,
CKKSCiphertext<Src>: GLWEToBackendRef<BE>,
fn ckks_add_many<Dst, Src>(
&self,
dst: &mut CKKSCiphertext<Dst>,
inputs: &[&CKKSCiphertext<Src>],
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Dst: Data,
Src: Data,
CKKSCiphertext<Dst>: GLWEToBackendMut<BE>,
CKKSCiphertext<Src>: GLWEToBackendRef<BE>,
dst = inputs[0] + inputs[1] + … + inputs[n-1] using a
balanced binary tree of pairwise additions. Read moreSource§impl<BE> CKKSAddOps<BE> for Module<BE>where
BE: Backend + CKKSAddImpl<BE>,
impl<BE> CKKSAddOps<BE> for Module<BE>where
BE: Backend + CKKSAddImpl<BE>,
fn ckks_add_tmp_bytes(&self) -> usize
Source§fn ckks_add_into<Dst, A, B>(
&self,
dst: &mut Dst,
a: &A,
b: &B,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Dst: GLWEToBackendMut<BE> + CKKSCtBounds + SetCKKSInfos,
A: GLWEToBackendRef<BE> + CKKSCtBounds,
B: GLWEToBackendRef<BE> + CKKSCtBounds,
fn ckks_add_into<Dst, A, B>(
&self,
dst: &mut Dst,
a: &A,
b: &B,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Dst: GLWEToBackendMut<BE> + CKKSCtBounds + SetCKKSInfos,
A: GLWEToBackendRef<BE> + CKKSCtBounds,
B: GLWEToBackendRef<BE> + CKKSCtBounds,
dst = a + b. Read moreSource§fn ckks_add_assign<Dst, A>(
&self,
dst: &mut Dst,
a: &A,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Dst: GLWEToBackendMut<BE> + CKKSCtBounds + SetCKKSInfos,
A: GLWEToBackendRef<BE> + CKKSCtBounds,
fn ckks_add_assign<Dst, A>(
&self,
dst: &mut Dst,
a: &A,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Dst: GLWEToBackendMut<BE> + CKKSCtBounds + SetCKKSInfos,
A: GLWEToBackendRef<BE> + CKKSCtBounds,
dst += a in-place. Read moreSource§fn ckks_add_one_assign<Dst>(
&self,
dst: &mut Dst,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>
fn ckks_add_one_assign<Dst>( &self, dst: &mut Dst, scratch: &mut ScratchArena<'_, BE>, ) -> Result<(), Error>
dst += 1 in-place. Read morefn ckks_add_pt_vec_tmp_bytes(&self) -> usize
Source§fn ckks_add_pt_vec_into<Dst, A, P>(
&self,
dst: &mut Dst,
a: &A,
pt: &P,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Dst: GLWEToBackendMut<BE> + CKKSCtBounds + SetCKKSInfos,
A: GLWEToBackendRef<BE> + CKKSCtBounds,
P: GLWEToBackendRef<BE> + CKKSCtBounds,
fn ckks_add_pt_vec_into<Dst, A, P>(
&self,
dst: &mut Dst,
a: &A,
pt: &P,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Dst: GLWEToBackendMut<BE> + CKKSCtBounds + SetCKKSInfos,
A: GLWEToBackendRef<BE> + CKKSCtBounds,
P: GLWEToBackendRef<BE> + CKKSCtBounds,
Source§fn ckks_add_pt_vec_assign<Dst, P>(
&self,
dst: &mut Dst,
pt: &P,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Dst: GLWEToBackendMut<BE> + CKKSCtBounds + SetCKKSInfos,
P: GLWEToBackendRef<BE> + CKKSCtBounds,
fn ckks_add_pt_vec_assign<Dst, P>(
&self,
dst: &mut Dst,
pt: &P,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Dst: GLWEToBackendMut<BE> + CKKSCtBounds + SetCKKSInfos,
P: GLWEToBackendRef<BE> + CKKSCtBounds,
dst += pt in-place, where pt is a full plaintext polynomial.fn ckks_add_pt_const_tmp_bytes(&self) -> usize
Source§fn ckks_add_pt_const_into<Dst, A, P>(
&self,
dst: &mut Dst,
a: &A,
dst_coeff: usize,
pt: &P,
pt_coeff: usize,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Dst: GLWEToBackendMut<BE> + CKKSCtBounds + SetCKKSInfos,
A: GLWEToBackendRef<BE> + CKKSCtBounds,
P: GLWEToBackendRef<BE> + CKKSCtBounds,
fn ckks_add_pt_const_into<Dst, A, P>(
&self,
dst: &mut Dst,
a: &A,
dst_coeff: usize,
pt: &P,
pt_coeff: usize,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Dst: GLWEToBackendMut<BE> + CKKSCtBounds + SetCKKSInfos,
A: GLWEToBackendRef<BE> + CKKSCtBounds,
P: GLWEToBackendRef<BE> + CKKSCtBounds,
dst = a + pt[pt_coeff], adding one quantized constant to
a single coefficient slot of the ciphertext. Read moreSource§fn ckks_add_pt_const_assign<Dst, P>(
&self,
dst: &mut Dst,
dst_coeff: usize,
pt: &P,
pt_coeff: usize,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Dst: GLWEToBackendMut<BE> + CKKSCtBounds + SetCKKSInfos,
P: GLWEToBackendRef<BE> + CKKSCtBounds,
fn ckks_add_pt_const_assign<Dst, P>(
&self,
dst: &mut Dst,
dst_coeff: usize,
pt: &P,
pt_coeff: usize,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Dst: GLWEToBackendMut<BE> + CKKSCtBounds + SetCKKSInfos,
P: GLWEToBackendRef<BE> + CKKSCtBounds,
dst += pt[pt_coeff] in-place. Read moreSource§impl<BE> CKKSAddOpsUnnormalized<BE> for Module<BE>where
BE: Backend + CKKSAddImpl<BE>,
impl<BE> CKKSAddOpsUnnormalized<BE> for Module<BE>where
BE: Backend + CKKSAddImpl<BE>,
fn ckks_add_into_unnormalized<Dst, A, B>(
&self,
dst: &mut CKKSCiphertext<Dst, Unnormalized>,
a: &A,
b: &B,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Dst: Data,
CKKSCiphertext<Dst, Unnormalized>: GLWEToBackendMut<BE>,
A: GLWEToBackendRef<BE> + CKKSCtBounds,
B: GLWEToBackendRef<BE> + CKKSCtBounds,
fn ckks_add_assign_unnormalized<Dst, A>(
&self,
dst: &mut CKKSCiphertext<Dst, Unnormalized>,
a: &A,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Dst: Data,
CKKSCiphertext<Dst, Unnormalized>: GLWEToBackendMut<BE>,
A: GLWEToBackendRef<BE> + CKKSInfos,
fn ckks_add_pt_vec_into_unnormalized<Dst, A, P>(
&self,
dst: &mut CKKSCiphertext<Dst, Unnormalized>,
a: &A,
pt: &P,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Dst: Data,
CKKSCiphertext<Dst, Unnormalized>: GLWEToBackendMut<BE>,
A: GLWEToBackendRef<BE> + CKKSCtBounds,
P: GLWEToBackendRef<BE> + CKKSCtBounds,
fn ckks_add_pt_vec_assign_unnormalized<Dst, P>(
&self,
dst: &mut CKKSCiphertext<Dst, Unnormalized>,
pt: &P,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Dst: Data,
CKKSCiphertext<Dst, Unnormalized>: GLWEToBackendMut<BE>,
P: GLWEToBackendRef<BE> + CKKSCtBounds,
fn ckks_add_pt_const_into_unnormalized<Dst, A, P>(
&self,
dst: &mut CKKSCiphertext<Dst, Unnormalized>,
a: &A,
dst_coeff: usize,
pt: &P,
pt_coeff: usize,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Dst: Data,
CKKSCiphertext<Dst, Unnormalized>: GLWEToBackendMut<BE>,
A: GLWEToBackendRef<BE> + CKKSCtBounds,
P: GLWEToBackendRef<BE> + CKKSCtBounds,
fn ckks_add_pt_const_assign_unnormalized<Dst, P>(
&self,
dst: &mut CKKSCiphertext<Dst, Unnormalized>,
dst_coeff: usize,
pt: &P,
pt_coeff: usize,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Dst: Data,
CKKSCiphertext<Dst, Unnormalized>: GLWEToBackendMut<BE>,
P: GLWEToBackendRef<BE> + CKKSCtBounds,
Source§impl<BE> CKKSAffineOps<BE> for Module<BE>
impl<BE> CKKSAffineOps<BE> for Module<BE>
fn ckks_affine_pt_const_tmp_bytes<R, A, P>( &self, res: &R, a: &A, affine_const: &P, ) -> usize
Source§fn ckks_affine_pt_const_into<Dst, A, P>(
&self,
dst: &mut Dst,
a: &A,
affine_const: &P,
offset_coeff: usize,
scale_coeff: usize,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Dst: GLWEToBackendMut<BE> + CKKSCtBounds + SetCKKSInfos,
A: GLWEToBackendRef<BE> + CKKSCtBounds,
P: GLWEToBackendRef<BE> + CKKSCtBounds,
fn ckks_affine_pt_const_into<Dst, A, P>(
&self,
dst: &mut Dst,
a: &A,
affine_const: &P,
offset_coeff: usize,
scale_coeff: usize,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Dst: GLWEToBackendMut<BE> + CKKSCtBounds + SetCKKSInfos,
A: GLWEToBackendRef<BE> + CKKSCtBounds,
P: GLWEToBackendRef<BE> + CKKSCtBounds,
dst = a * affine_const[scale_coeff] + affine_const[offset_coeff]. Read moreSource§fn ckks_affine_pt_const_assign<Dst, P>(
&self,
dst: &mut Dst,
affine_const: &P,
offset_coeff: usize,
scale_coeff: usize,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Dst: GLWEToBackendMut<BE> + GLWEToBackendRef<BE> + CKKSCtBounds + SetCKKSInfos,
P: GLWEToBackendRef<BE> + CKKSCtBounds,
fn ckks_affine_pt_const_assign<Dst, P>(
&self,
dst: &mut Dst,
affine_const: &P,
offset_coeff: usize,
scale_coeff: usize,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Dst: GLWEToBackendMut<BE> + GLWEToBackendRef<BE> + CKKSCtBounds + SetCKKSInfos,
P: GLWEToBackendRef<BE> + CKKSCtBounds,
dst = dst * affine_const[scale_coeff] + affine_const[offset_coeff] in-place. Read morefn ckks_affine_pt_vec_tmp_bytes<R, A, S>( &self, res: &R, a: &A, scale: &S, ) -> usize
Source§fn ckks_affine_pt_vec_into<Dst, A, S, P>(
&self,
dst: &mut Dst,
a: &A,
scale: &S,
offset: &P,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Dst: GLWEToBackendMut<BE> + CKKSCtBounds + SetCKKSInfos,
A: GLWEToBackendRef<BE> + CKKSCtBounds,
S: GLWEToBackendRef<BE> + CKKSCtBounds,
P: GLWEToBackendRef<BE> + CKKSCtBounds,
fn ckks_affine_pt_vec_into<Dst, A, S, P>(
&self,
dst: &mut Dst,
a: &A,
scale: &S,
offset: &P,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Dst: GLWEToBackendMut<BE> + CKKSCtBounds + SetCKKSInfos,
A: GLWEToBackendRef<BE> + CKKSCtBounds,
S: GLWEToBackendRef<BE> + CKKSCtBounds,
P: GLWEToBackendRef<BE> + CKKSCtBounds,
dst = a * scale + offset where scale and offset are full
plaintext polynomials in the ZNX domain. Read moreSource§fn ckks_affine_pt_vec_assign<Dst, S, P>(
&self,
dst: &mut Dst,
scale: &S,
offset: &P,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Dst: GLWEToBackendMut<BE> + GLWEToBackendRef<BE> + CKKSCtBounds + SetCKKSInfos,
S: GLWEToBackendRef<BE> + CKKSCtBounds,
P: GLWEToBackendRef<BE> + CKKSCtBounds,
fn ckks_affine_pt_vec_assign<Dst, S, P>(
&self,
dst: &mut Dst,
scale: &S,
offset: &P,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Dst: GLWEToBackendMut<BE> + GLWEToBackendRef<BE> + CKKSCtBounds + SetCKKSInfos,
S: GLWEToBackendRef<BE> + CKKSCtBounds,
P: GLWEToBackendRef<BE> + CKKSCtBounds,
dst = dst * scale + offset in-place. Read moreSource§impl<BE> CKKSAllOpsTmpBytes<BE> for Module<BE>where
BE: Backend,
Module<BE>: CKKSEncrypt<BE> + CKKSDecrypt<BE> + CKKSAddOps<BE> + CKKSConjugateOps<BE> + CKKSSubOps<BE> + CKKSNegOps<BE> + CKKSPow2Ops<BE> + CKKSImagOps<BE> + CKKSRescaleOps<BE> + CKKSRotateOps<BE> + CKKSMulOps<BE> + GLWEAutomorphism<BE> + GLWEAutomorphismKeyEncryptSk<BE> + GLWEAutomorphismKeyPreparedFactory<BE> + ModuleN + GLWEShift<BE> + GLWEMulPlain<BE> + GLWEMulConst<BE> + GLWERotate<BE> + GLWETensoring<BE> + GLWETensorKeyEncryptSk<BE> + GLWETensorKeyPreparedFactory<BE> + VecZnxLshBackend<BE> + VecZnxLshTmpBytes + VecZnxRshBackend<BE> + VecZnxRshAddIntoBackend<BE> + VecZnxRshSubBackend<BE> + VecZnxRshTmpBytes,
impl<BE> CKKSAllOpsTmpBytes<BE> for Module<BE>where
BE: Backend,
Module<BE>: CKKSEncrypt<BE> + CKKSDecrypt<BE> + CKKSAddOps<BE> + CKKSConjugateOps<BE> + CKKSSubOps<BE> + CKKSNegOps<BE> + CKKSPow2Ops<BE> + CKKSImagOps<BE> + CKKSRescaleOps<BE> + CKKSRotateOps<BE> + CKKSMulOps<BE> + GLWEAutomorphism<BE> + GLWEAutomorphismKeyEncryptSk<BE> + GLWEAutomorphismKeyPreparedFactory<BE> + ModuleN + GLWEShift<BE> + GLWEMulPlain<BE> + GLWEMulConst<BE> + GLWERotate<BE> + GLWETensoring<BE> + GLWETensorKeyEncryptSk<BE> + GLWETensorKeyPreparedFactory<BE> + VecZnxLshBackend<BE> + VecZnxLshTmpBytes + VecZnxRshBackend<BE> + VecZnxRshAddIntoBackend<BE> + VecZnxRshSubBackend<BE> + VecZnxRshTmpBytes,
Source§fn ckks_all_ops_tmp_bytes<C, T, P>(
&self,
ct_infos: &C,
tsk_infos: &T,
pt_prec: &P,
) -> usize
fn ckks_all_ops_tmp_bytes<C, T, P>( &self, ct_infos: &C, tsk_infos: &T, pt_prec: &P, ) -> usize
Source§fn ckks_all_ops_with_atk_tmp_bytes<C, T, A, P>(
&self,
ct_infos: &C,
tsk_infos: &T,
atk_infos: &A,
pt_prec: &P,
) -> usize
fn ckks_all_ops_with_atk_tmp_bytes<C, T, A, P>( &self, ct_infos: &C, tsk_infos: &T, atk_infos: &A, pt_prec: &P, ) -> usize
Self::ckks_all_ops_tmp_bytes
plus automorphism-key setup, rotation, and conjugation.Source§impl CKKSConjugateDefault<FFT64Ref> for Module<FFT64Ref>
impl CKKSConjugateDefault<FFT64Ref> for Module<FFT64Ref>
fn ckks_conjugate_tmp_bytes_default<C, K>( &self, ct_infos: &C, key_infos: &K, ) -> usize
fn ckks_conjugate_into_default<Dst, Src, K>(
&self,
dst: &mut Dst,
src: &Src,
key: &K,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Self: GLWEAutomorphism<BE> + GLWEShift<BE>,
Dst: GLWEToBackendMut<BE> + GLWEInfos + LWEInfos + CKKSInfos + SetCKKSInfos,
Src: GLWEToBackendRef<BE> + GLWEInfos + LWEInfos + CKKSInfos,
K: GetGaloisElement + GGLWEPreparedToBackendRef<BE> + GGLWEInfos,
fn ckks_conjugate_assign_default<Dst, K>(
&self,
dst: &mut Dst,
key: &K,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Self: GLWEAutomorphism<BE>,
Dst: GLWEToBackendMut<BE> + GLWEInfos,
K: GetGaloisElement + GGLWEPreparedToBackendRef<BE> + GGLWEInfos,
Source§impl CKKSConjugateDefault<NTT120Ref> for Module<NTT120Ref>
impl CKKSConjugateDefault<NTT120Ref> for Module<NTT120Ref>
fn ckks_conjugate_tmp_bytes_default<C, K>( &self, ct_infos: &C, key_infos: &K, ) -> usize
fn ckks_conjugate_into_default<Dst, Src, K>(
&self,
dst: &mut Dst,
src: &Src,
key: &K,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Self: GLWEAutomorphism<BE> + GLWEShift<BE>,
Dst: GLWEToBackendMut<BE> + GLWEInfos + LWEInfos + CKKSInfos + SetCKKSInfos,
Src: GLWEToBackendRef<BE> + GLWEInfos + LWEInfos + CKKSInfos,
K: GetGaloisElement + GGLWEPreparedToBackendRef<BE> + GGLWEInfos,
fn ckks_conjugate_assign_default<Dst, K>(
&self,
dst: &mut Dst,
key: &K,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Self: GLWEAutomorphism<BE>,
Dst: GLWEToBackendMut<BE> + GLWEInfos,
K: GetGaloisElement + GGLWEPreparedToBackendRef<BE> + GGLWEInfos,
Source§impl<BE> CKKSConjugateOps<BE> for Module<BE>
impl<BE> CKKSConjugateOps<BE> for Module<BE>
fn ckks_conjugate_tmp_bytes<C, K>(&self, ct_infos: &C, key_infos: &K) -> usizewhere
C: CKKSCtBounds,
K: GGLWEInfos,
Source§fn ckks_conjugate_into<Dst, Src, K>(
&self,
dst: &mut Dst,
src: &Src,
key: &K,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Dst: GLWEToBackendMut<BE> + CKKSCtBounds + SetCKKSInfos,
Src: GLWEToBackendRef<BE> + CKKSCtBounds,
K: GLWEAutomorphismKeyPreparedToBackendRef<BE> + GGLWEPreparedToBackendRef<BE> + GetGaloisElement + GGLWEInfos,
fn ckks_conjugate_into<Dst, Src, K>(
&self,
dst: &mut Dst,
src: &Src,
key: &K,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Dst: GLWEToBackendMut<BE> + CKKSCtBounds + SetCKKSInfos,
Src: GLWEToBackendRef<BE> + CKKSCtBounds,
K: GLWEAutomorphismKeyPreparedToBackendRef<BE> + GGLWEPreparedToBackendRef<BE> + GetGaloisElement + GGLWEInfos,
dst = conj(src): takes the complex conjugate of every slot.Source§fn ckks_conjugate_assign<Dst, K>(
&self,
dst: &mut Dst,
key: &K,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Dst: GLWEToBackendMut<BE> + CKKSCtBounds + SetCKKSInfos,
K: GLWEAutomorphismKeyPreparedToBackendRef<BE> + GGLWEPreparedToBackendRef<BE> + GetGaloisElement + GGLWEInfos,
fn ckks_conjugate_assign<Dst, K>(
&self,
dst: &mut Dst,
key: &K,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Dst: GLWEToBackendMut<BE> + CKKSCtBounds + SetCKKSInfos,
K: GLWEAutomorphismKeyPreparedToBackendRef<BE> + GGLWEPreparedToBackendRef<BE> + GetGaloisElement + GGLWEInfos,
dst = conj(dst) in-place. Metadata is unchanged.Source§impl CKKSCopyDefault<FFT64Ref> for Module<FFT64Ref>
impl CKKSCopyDefault<FFT64Ref> for Module<FFT64Ref>
fn ckks_copy_tmp_bytes_default(&self) -> usizewhere
Self: GLWEShift<BE>,
fn ckks_copy_default<Dst, Src>(
&self,
dst: &mut Dst,
src: &Src,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Self: GLWECopy<BE> + GLWEShift<BE>,
Dst: GLWEToBackendMut<BE> + LWEInfos + CKKSInfos + SetCKKSInfos,
Src: GLWEToBackendRef<BE> + LWEInfos + CKKSInfos,
Source§impl CKKSCopyDefault<NTT120Ref> for Module<NTT120Ref>
impl CKKSCopyDefault<NTT120Ref> for Module<NTT120Ref>
fn ckks_copy_tmp_bytes_default(&self) -> usizewhere
Self: GLWEShift<BE>,
fn ckks_copy_default<Dst, Src>(
&self,
dst: &mut Dst,
src: &Src,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Self: GLWECopy<BE> + GLWEShift<BE>,
Dst: GLWEToBackendMut<BE> + LWEInfos + CKKSInfos + SetCKKSInfos,
Src: GLWEToBackendRef<BE> + LWEInfos + CKKSInfos,
Source§impl<BE> CKKSCopyOps<BE> for Module<BE>
impl<BE> CKKSCopyOps<BE> for Module<BE>
fn ckks_copy_tmp_bytes(&self) -> usize
Source§fn ckks_copy<Dst, Src>(
&self,
dst: &mut Dst,
src: &Src,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Dst: GLWEToBackendMut<BE> + CKKSCtBounds + SetCKKSInfos,
Src: GLWEToBackendRef<BE> + CKKSCtBounds,
fn ckks_copy<Dst, Src>(
&self,
dst: &mut Dst,
src: &Src,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Dst: GLWEToBackendMut<BE> + CKKSCtBounds + SetCKKSInfos,
Src: GLWEToBackendRef<BE> + CKKSCtBounds,
src into dst.Source§impl<BE> CKKSDecrypt<BE> for Module<BE>where
BE: Backend + CKKSEncryptionImpl<BE> + HalVecZnxImpl<BE>,
Module<BE>: GLWEDecrypt<BE> + VecZnxLshBackend<BE> + VecZnxLshTmpBytes + VecZnxRshBackend<BE> + VecZnxRshTmpBytes + ModuleCoreAlloc<OwnedBuf = <BE as Backend>::OwnedBuf>,
<BE as Backend>::OwnedBuf: HostDataMut,
impl<BE> CKKSDecrypt<BE> for Module<BE>where
BE: Backend + CKKSEncryptionImpl<BE> + HalVecZnxImpl<BE>,
Module<BE>: GLWEDecrypt<BE> + VecZnxLshBackend<BE> + VecZnxLshTmpBytes + VecZnxRshBackend<BE> + VecZnxRshTmpBytes + ModuleCoreAlloc<OwnedBuf = <BE as Backend>::OwnedBuf>,
<BE as Backend>::OwnedBuf: HostDataMut,
fn ckks_decrypt_tmp_bytes<A>(&self, ct_infos: &A) -> usizewhere
A: CKKSCtBounds,
fn ckks_decrypt<Dpt, Dct, S>(
&self,
pt: &mut Dpt,
ct: &Dct,
sk: &S,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
S: GLWESecretPreparedToBackendRef<BE> + GLWEInfos,
Dpt: GLWEToBackendMut<BE> + CKKSCtBounds + SetCKKSInfos,
Dct: GLWEToBackendRef<BE> + CKKSCtBounds,
Source§impl<BE> CKKSDotProductOps<BE> for Module<BE>where
BE: Backend + CKKSAddImpl<BE>,
Module<BE>: CKKSAddOps<BE> + CKKSMulOps<BE> + CKKSRescaleOps<BE> + GLWENormalize<BE> + GLWETensoring<BE>,
impl<BE> CKKSDotProductOps<BE> for Module<BE>where
BE: Backend + CKKSAddImpl<BE>,
Module<BE>: CKKSAddOps<BE> + CKKSMulOps<BE> + CKKSRescaleOps<BE> + GLWENormalize<BE> + GLWETensoring<BE>,
fn ckks_dot_product_ct_tmp_bytes<R, T>(
&self,
n: usize,
res: &R,
tsk: &T,
) -> usizewhere
R: CKKSCtBounds,
T: GGLWEInfos,
fn ckks_dot_product_pt_vec_tmp_bytes<R, A, P>( &self, res: &R, a: &A, b: &P, ) -> usize
fn ckks_dot_product_pt_const_tmp_bytes<R, A, P>( &self, res: &R, a: &A, b: &P, ) -> usize
Source§fn ckks_dot_product_ct<Dst, D, E, T>(
&self,
dst: &mut CKKSCiphertext<Dst>,
a: &[&CKKSCiphertext<D>],
b: &[&CKKSCiphertext<E>],
tsk: &GLWETensorKeyPrepared<T, BE>,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Dst: Data,
D: Data,
E: Data,
T: Data,
CKKSCiphertext<Dst>: GLWEToBackendMut<BE>,
CKKSCiphertext<D>: GLWEToBackendRef<BE> + GLWEInfos,
CKKSCiphertext<E>: GLWEToBackendRef<BE> + GLWEInfos,
GLWETensorKeyPrepared<T, BE>: GLWETensorKeyPreparedToBackendRef<BE>,
fn ckks_dot_product_ct<Dst, D, E, T>(
&self,
dst: &mut CKKSCiphertext<Dst>,
a: &[&CKKSCiphertext<D>],
b: &[&CKKSCiphertext<E>],
tsk: &GLWETensorKeyPrepared<T, BE>,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Dst: Data,
D: Data,
E: Data,
T: Data,
CKKSCiphertext<Dst>: GLWEToBackendMut<BE>,
CKKSCiphertext<D>: GLWEToBackendRef<BE> + GLWEInfos,
CKKSCiphertext<E>: GLWEToBackendRef<BE> + GLWEInfos,
GLWETensorKeyPrepared<T, BE>: GLWETensorKeyPreparedToBackendRef<BE>,
dst = Σ a[i] * b[i] over ciphertext–ciphertext pairs. Read moreSource§fn ckks_dot_product_pt_vec<Dst, D, E>(
&self,
dst: &mut CKKSCiphertext<Dst>,
a: &[&CKKSCiphertext<D>],
b: &[&E],
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Dst: Data,
D: Data,
CKKSCiphertext<Dst>: GLWEToBackendMut<BE>,
CKKSCiphertext<D>: GLWEToBackendRef<BE> + GLWEInfos,
E: GLWEToBackendRef<BE> + CKKSCtBounds,
fn ckks_dot_product_pt_vec<Dst, D, E>(
&self,
dst: &mut CKKSCiphertext<Dst>,
a: &[&CKKSCiphertext<D>],
b: &[&E],
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Dst: Data,
D: Data,
CKKSCiphertext<Dst>: GLWEToBackendMut<BE>,
CKKSCiphertext<D>: GLWEToBackendRef<BE> + GLWEInfos,
E: GLWEToBackendRef<BE> + CKKSCtBounds,
dst = Σ a[i] * b[i] over ciphertext–plaintext-polynomial pairs. Read moreSource§fn ckks_dot_product_pt_const<Dst, D, E>(
&self,
dst: &mut CKKSCiphertext<Dst>,
a: &[&CKKSCiphertext<D>],
b: &[&E],
pt_coeffs: &[usize],
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Dst: Data,
D: Data,
CKKSCiphertext<Dst>: GLWEToBackendMut<BE>,
CKKSCiphertext<D>: GLWEToBackendRef<BE> + GLWEInfos,
E: GLWEToBackendRef<BE> + CKKSCtBounds,
fn ckks_dot_product_pt_const<Dst, D, E>(
&self,
dst: &mut CKKSCiphertext<Dst>,
a: &[&CKKSCiphertext<D>],
b: &[&E],
pt_coeffs: &[usize],
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Dst: Data,
D: Data,
CKKSCiphertext<Dst>: GLWEToBackendMut<BE>,
CKKSCiphertext<D>: GLWEToBackendRef<BE> + GLWEInfos,
E: GLWEToBackendRef<BE> + CKKSCtBounds,
dst = Σ a[i] * b[i][pt_coeffs[i]] over ciphertext–scalar-constant pairs. Read moreSource§impl<BE> CKKSEncrypt<BE> for Module<BE>where
BE: Backend + CKKSEncryptionImpl<BE> + HalVecZnxImpl<BE>,
Module<BE>: GLWEEncryptSk<BE> + VecZnxRshAddIntoBackend<BE> + VecZnxRshTmpBytes,
impl<BE> CKKSEncrypt<BE> for Module<BE>where
BE: Backend + CKKSEncryptionImpl<BE> + HalVecZnxImpl<BE>,
Module<BE>: GLWEEncryptSk<BE> + VecZnxRshAddIntoBackend<BE> + VecZnxRshTmpBytes,
fn ckks_encrypt_sk_tmp_bytes<A>(&self, ct_infos: &A) -> usizewhere
A: CKKSCtBounds,
fn ckks_encrypt_sk<Dct, Dpt, S, E>(
&self,
ct: &mut Dct,
pt: &Dpt,
sk: &S,
enc_infos: &E,
source_xa: &mut Source,
source_xe: &mut Source,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
E: EncryptionInfos,
S: GLWESecretPreparedToBackendRef<BE>,
Dct: GLWEToBackendMut<BE> + CKKSCtBounds + SetCKKSInfos,
Dpt: GLWEToBackendRef<BE> + CKKSCtBounds,
Source§impl CKKSEncryptionDefault<FFT64Ref> for Module<FFT64Ref>
impl CKKSEncryptionDefault<FFT64Ref> for Module<FFT64Ref>
fn ckks_encrypt_sk_tmp_bytes_default<A>(&self, ct_infos: &A) -> usizewhere
A: GLWEInfos + CKKSInfos,
Self: GLWEEncryptSk<BE> + VecZnxRshAddIntoBackend<BE> + VecZnxRshTmpBytes,
fn ckks_encrypt_sk_default<Dct, Dpt, S, E>(
&self,
ct: &mut Dct,
pt: &Dpt,
sk: &S,
enc_infos: &E,
source_xa: &mut Source,
source_xe: &mut Source,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
E: EncryptionInfos,
S: GLWESecretPreparedToBackendRef<BE>,
Dct: GLWEToBackendMut<BE> + LWEInfos + CKKSInfos + SetCKKSInfos,
Dpt: GLWEToBackendRef<BE> + LWEInfos + CKKSInfos,
Self: GLWEEncryptSk<BE> + VecZnxRshAddIntoBackend<BE> + CKKSPlaintextDefault<BE>,
fn ckks_decrypt_tmp_bytes_default<A>(&self, ct_infos: &A) -> usizewhere
A: GLWEInfos + CKKSInfos,
Self: GLWEDecrypt<BE> + VecZnxLshBackend<BE> + VecZnxLshTmpBytes + VecZnxRshBackend<BE> + VecZnxRshTmpBytes + CKKSPlaintextDefault<BE>,
fn ckks_decrypt_default<Dpt, Dct, S>(
&self,
pt: &mut Dpt,
ct: &Dct,
sk: &S,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
S: GLWESecretPreparedToBackendRef<BE> + GLWEInfos,
Dpt: GLWEToBackendMut<BE> + LWEInfos + CKKSInfos + SetCKKSInfos,
Dct: GLWEToBackendRef<BE> + GLWEInfos + LWEInfos + CKKSInfos,
Self: GLWEDecrypt<BE> + CKKSPlaintextDefault<BE> + VecZnxLshBackend<BE> + VecZnxRshBackend<BE>,
Source§impl CKKSEncryptionDefault<NTT120Ref> for Module<NTT120Ref>
impl CKKSEncryptionDefault<NTT120Ref> for Module<NTT120Ref>
fn ckks_encrypt_sk_tmp_bytes_default<A>(&self, ct_infos: &A) -> usizewhere
A: GLWEInfos + CKKSInfos,
Self: GLWEEncryptSk<BE> + VecZnxRshAddIntoBackend<BE> + VecZnxRshTmpBytes,
fn ckks_encrypt_sk_default<Dct, Dpt, S, E>(
&self,
ct: &mut Dct,
pt: &Dpt,
sk: &S,
enc_infos: &E,
source_xa: &mut Source,
source_xe: &mut Source,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
E: EncryptionInfos,
S: GLWESecretPreparedToBackendRef<BE>,
Dct: GLWEToBackendMut<BE> + LWEInfos + CKKSInfos + SetCKKSInfos,
Dpt: GLWEToBackendRef<BE> + LWEInfos + CKKSInfos,
Self: GLWEEncryptSk<BE> + VecZnxRshAddIntoBackend<BE> + CKKSPlaintextDefault<BE>,
fn ckks_decrypt_tmp_bytes_default<A>(&self, ct_infos: &A) -> usizewhere
A: GLWEInfos + CKKSInfos,
Self: GLWEDecrypt<BE> + VecZnxLshBackend<BE> + VecZnxLshTmpBytes + VecZnxRshBackend<BE> + VecZnxRshTmpBytes + CKKSPlaintextDefault<BE>,
fn ckks_decrypt_default<Dpt, Dct, S>(
&self,
pt: &mut Dpt,
ct: &Dct,
sk: &S,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
S: GLWESecretPreparedToBackendRef<BE> + GLWEInfos,
Dpt: GLWEToBackendMut<BE> + LWEInfos + CKKSInfos + SetCKKSInfos,
Dct: GLWEToBackendRef<BE> + GLWEInfos + LWEInfos + CKKSInfos,
Self: GLWEDecrypt<BE> + CKKSPlaintextDefault<BE> + VecZnxLshBackend<BE> + VecZnxRshBackend<BE>,
Source§impl CKKSImagDefault<FFT64Ref> for Module<FFT64Ref>
impl CKKSImagDefault<FFT64Ref> for Module<FFT64Ref>
fn ckks_mul_i_tmp_bytes_default(&self) -> usizewhere
Self: GLWERotate<BE> + GLWEShift<BE>,
fn ckks_div_i_tmp_bytes_default(&self) -> usizewhere
Self: GLWERotate<BE> + GLWEShift<BE>,
fn ckks_mul_i_into_default<Dst, Src>(
&self,
dst: &mut Dst,
src: &Src,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Self: GLWERotate<BE> + GLWEShift<BE> + ModuleN,
Dst: GLWEToBackendMut<BE> + LWEInfos + CKKSInfos + SetCKKSInfos,
Src: GLWEToBackendRef<BE> + GLWEInfos + LWEInfos + CKKSInfos,
fn ckks_mul_i_assign_default<Dst>(
&self,
dst: &mut Dst,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Self: GLWERotate<BE> + ModuleN,
Dst: GLWEToBackendMut<BE> + LWEInfos + CKKSInfos + SetCKKSInfos,
fn ckks_div_i_into_default<Dst, Src>(
&self,
dst: &mut Dst,
src: &Src,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Self: GLWECopy<BE> + GLWENegate<BE> + GLWERotate<BE> + GLWEShift<BE> + ModuleN,
Dst: GLWEToBackendMut<BE> + LWEInfos + CKKSInfos + SetCKKSInfos,
Src: GLWEToBackendRef<BE> + GLWEInfos + LWEInfos + CKKSInfos,
fn ckks_div_i_assign_default<Dst>(
&self,
dst: &mut Dst,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Self: GLWENegate<BE> + GLWERotate<BE> + ModuleN,
Dst: GLWEToBackendMut<BE> + LWEInfos + CKKSInfos + SetCKKSInfos,
Source§impl CKKSImagDefault<NTT120Ref> for Module<NTT120Ref>
impl CKKSImagDefault<NTT120Ref> for Module<NTT120Ref>
fn ckks_mul_i_tmp_bytes_default(&self) -> usizewhere
Self: GLWERotate<BE> + GLWEShift<BE>,
fn ckks_div_i_tmp_bytes_default(&self) -> usizewhere
Self: GLWERotate<BE> + GLWEShift<BE>,
fn ckks_mul_i_into_default<Dst, Src>(
&self,
dst: &mut Dst,
src: &Src,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Self: GLWERotate<BE> + GLWEShift<BE> + ModuleN,
Dst: GLWEToBackendMut<BE> + LWEInfos + CKKSInfos + SetCKKSInfos,
Src: GLWEToBackendRef<BE> + GLWEInfos + LWEInfos + CKKSInfos,
fn ckks_mul_i_assign_default<Dst>(
&self,
dst: &mut Dst,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Self: GLWERotate<BE> + ModuleN,
Dst: GLWEToBackendMut<BE> + LWEInfos + CKKSInfos + SetCKKSInfos,
fn ckks_div_i_into_default<Dst, Src>(
&self,
dst: &mut Dst,
src: &Src,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Self: GLWECopy<BE> + GLWENegate<BE> + GLWERotate<BE> + GLWEShift<BE> + ModuleN,
Dst: GLWEToBackendMut<BE> + LWEInfos + CKKSInfos + SetCKKSInfos,
Src: GLWEToBackendRef<BE> + GLWEInfos + LWEInfos + CKKSInfos,
fn ckks_div_i_assign_default<Dst>(
&self,
dst: &mut Dst,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Self: GLWENegate<BE> + GLWERotate<BE> + ModuleN,
Dst: GLWEToBackendMut<BE> + LWEInfos + CKKSInfos + SetCKKSInfos,
Source§impl<BE> CKKSImagOps<BE> for Module<BE>where
BE: Backend + CKKSImagImpl<BE>,
Module<BE>: GLWECopy<BE> + GLWENegate<BE> + GLWERotate<BE> + GLWEShift<BE> + ModuleN,
impl<BE> CKKSImagOps<BE> for Module<BE>where
BE: Backend + CKKSImagImpl<BE>,
Module<BE>: GLWECopy<BE> + GLWENegate<BE> + GLWERotate<BE> + GLWEShift<BE> + ModuleN,
fn ckks_mul_i_tmp_bytes(&self) -> usize
Source§fn ckks_mul_i_into<Dst, Src>(
&self,
dst: &mut Dst,
src: &Src,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Dst: GLWEToBackendMut<BE> + CKKSCtBounds + SetCKKSInfos,
Src: GLWEToBackendRef<BE> + CKKSCtBounds,
fn ckks_mul_i_into<Dst, Src>(
&self,
dst: &mut Dst,
src: &Src,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Dst: GLWEToBackendMut<BE> + CKKSCtBounds + SetCKKSInfos,
Src: GLWEToBackendRef<BE> + CKKSCtBounds,
dst = i · src (multiply every slot by the imaginary unit).Source§fn ckks_mul_i_assign<Dst>(
&self,
dst: &mut Dst,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>
fn ckks_mul_i_assign<Dst>( &self, dst: &mut Dst, scratch: &mut ScratchArena<'_, BE>, ) -> Result<(), Error>
dst = i · dst in-place. Metadata is unchanged.fn ckks_div_i_tmp_bytes(&self) -> usize
Source§fn ckks_div_i_into<Dst, Src>(
&self,
dst: &mut Dst,
src: &Src,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Dst: GLWEToBackendMut<BE> + CKKSCtBounds + SetCKKSInfos,
Src: GLWEToBackendRef<BE> + CKKSCtBounds,
fn ckks_div_i_into<Dst, Src>(
&self,
dst: &mut Dst,
src: &Src,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Dst: GLWEToBackendMut<BE> + CKKSCtBounds + SetCKKSInfos,
Src: GLWEToBackendRef<BE> + CKKSCtBounds,
dst = src / i = −i · src (multiply every slot by −i).Source§fn ckks_div_i_assign<Dst>(
&self,
dst: &mut Dst,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>
fn ckks_div_i_assign<Dst>( &self, dst: &mut Dst, scratch: &mut ScratchArena<'_, BE>, ) -> Result<(), Error>
dst = dst / i in-place. Metadata is unchanged.Source§impl<BE> CKKSMaintainOps for Module<BE>where
BE: Backend<OwnedBuf = Vec<u8>> + HostBackend,
Module<BE>: CKKSMaintainOpsDefault<BE> + CKKSModuleAlloc<BE>,
impl<BE> CKKSMaintainOps for Module<BE>where
BE: Backend<OwnedBuf = Vec<u8>> + HostBackend,
Module<BE>: CKKSMaintainOpsDefault<BE> + CKKSModuleAlloc<BE>,
Source§fn ckks_reallocate_limbs_checked(
&self,
ct: &mut CKKSCiphertext<Vec<u8>>,
size: usize,
) -> Result<(), Error>
fn ckks_reallocate_limbs_checked( &self, ct: &mut CKKSCiphertext<Vec<u8>>, size: usize, ) -> Result<(), Error>
size limbs. Read moreSource§fn ckks_compact_limbs(
&self,
ct: &mut CKKSCiphertext<Vec<u8>>,
) -> Result<(), Error>
fn ckks_compact_limbs( &self, ct: &mut CKKSCiphertext<Vec<u8>>, ) -> Result<(), Error>
Source§fn ckks_compact_limbs_copy<D>(
&self,
ct: &CKKSCiphertext<D>,
) -> Result<CKKSCiphertext<Vec<u8>>, Error>where
D: HostDataRef,
fn ckks_compact_limbs_copy<D>(
&self,
ct: &CKKSCiphertext<D>,
) -> Result<CKKSCiphertext<Vec<u8>>, Error>where
D: HostDataRef,
ct. Read moreSource§impl<BE> CKKSModuleAlloc<BE> for Module<BE>
impl<BE> CKKSModuleAlloc<BE> for Module<BE>
fn ckks_ciphertext_alloc_from_infos<A>(
&self,
infos: &A,
) -> CKKSCiphertext<<BE as Backend>::OwnedBuf>where
A: GLWEInfos,
fn ckks_ciphertext_alloc( &self, base2k: Base2K, k: TorusPrecision, ) -> CKKSCiphertext<<BE as Backend>::OwnedBuf>
fn ckks_pt_vec_alloc_from_infos<A>( &self, infos: &A, ) -> CKKSPlaintext<<BE as Backend>::OwnedBuf>
fn ckks_plaintext_alloc_from_infos<A>( &self, infos: &A, ) -> CKKSPlaintext<<BE as Backend>::OwnedBuf>
fn ckks_plaintext_alloc( &self, n: Degree, base2k: Base2K, meta: CKKSMeta, ) -> CKKSPlaintext<<BE as Backend>::OwnedBuf>
fn ckks_pt_vec_alloc( &self, base2k: Base2K, meta: CKKSMeta, ) -> CKKSPlaintext<<BE as Backend>::OwnedBuf>
fn ckks_pt_coeffs_alloc( &self, coeff_count: usize, base2k: Base2K, meta: CKKSMeta, ) -> CKKSPlaintext<<BE as Backend>::OwnedBuf>
Source§impl<BE> CKKSMulAddOps<BE> for Module<BE>
impl<BE> CKKSMulAddOps<BE> for Module<BE>
fn ckks_mul_add_ct_tmp_bytes<R, T>(&self, res: &R, tsk: &T) -> usizewhere
R: CKKSCtBounds,
T: GGLWEInfos,
fn ckks_mul_add_pt_vec_tmp_bytes<R, A, P>(&self, res: &R, a: &A, b: &P) -> usize
fn ckks_mul_add_pt_const_tmp_bytes<R, A, P>( &self, res: &R, a: &A, b: &P, ) -> usize
Source§fn ckks_mul_add_ct_into<Dst, A, B, T>(
&self,
dst: &mut CKKSCiphertext<Dst>,
a: &CKKSCiphertext<A>,
b: &CKKSCiphertext<B>,
tsk: &GLWETensorKeyPrepared<T, BE>,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Dst: Data,
A: Data,
B: Data,
T: Data,
CKKSCiphertext<Dst>: GLWEToBackendMut<BE>,
CKKSCiphertext<A>: GLWEToBackendRef<BE> + GLWEInfos,
CKKSCiphertext<B>: GLWEToBackendRef<BE> + GLWEInfos,
GLWETensorKeyPrepared<T, BE>: GLWETensorKeyPreparedToBackendRef<BE>,
fn ckks_mul_add_ct_into<Dst, A, B, T>(
&self,
dst: &mut CKKSCiphertext<Dst>,
a: &CKKSCiphertext<A>,
b: &CKKSCiphertext<B>,
tsk: &GLWETensorKeyPrepared<T, BE>,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Dst: Data,
A: Data,
B: Data,
T: Data,
CKKSCiphertext<Dst>: GLWEToBackendMut<BE>,
CKKSCiphertext<A>: GLWEToBackendRef<BE> + GLWEInfos,
CKKSCiphertext<B>: GLWEToBackendRef<BE> + GLWEInfos,
GLWETensorKeyPrepared<T, BE>: GLWETensorKeyPreparedToBackendRef<BE>,
Source§fn ckks_mul_add_pt_vec_into<Dst, A, P>(
&self,
dst: &mut CKKSCiphertext<Dst>,
a: &CKKSCiphertext<A>,
pt: &P,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Dst: Data,
A: Data,
CKKSCiphertext<Dst>: GLWEToBackendMut<BE>,
CKKSCiphertext<A>: GLWEToBackendRef<BE> + GLWEInfos,
P: GLWEToBackendRef<BE> + CKKSCtBounds,
fn ckks_mul_add_pt_vec_into<Dst, A, P>(
&self,
dst: &mut CKKSCiphertext<Dst>,
a: &CKKSCiphertext<A>,
pt: &P,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Dst: Data,
A: Data,
CKKSCiphertext<Dst>: GLWEToBackendMut<BE>,
CKKSCiphertext<A>: GLWEToBackendRef<BE> + GLWEInfos,
P: GLWEToBackendRef<BE> + CKKSCtBounds,
Source§fn ckks_mul_add_pt_const_into<Dst, A, P>(
&self,
dst: &mut CKKSCiphertext<Dst>,
a: &CKKSCiphertext<A>,
pt: &P,
pt_coeff: usize,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Dst: Data,
A: Data,
CKKSCiphertext<Dst>: GLWEToBackendMut<BE>,
CKKSCiphertext<A>: GLWEToBackendRef<BE> + GLWEInfos,
P: GLWEToBackendRef<BE> + CKKSCtBounds,
fn ckks_mul_add_pt_const_into<Dst, A, P>(
&self,
dst: &mut CKKSCiphertext<Dst>,
a: &CKKSCiphertext<A>,
pt: &P,
pt_coeff: usize,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Dst: Data,
A: Data,
CKKSCiphertext<Dst>: GLWEToBackendMut<BE>,
CKKSCiphertext<A>: GLWEToBackendRef<BE> + GLWEInfos,
P: GLWEToBackendRef<BE> + CKKSCtBounds,
dst += a * pt[pt_coeff]. Read moreSource§fn ckks_mul_add_pt_const_into_unnormalized<Dst, A, P>(
&self,
dst: &mut CKKSCiphertext<Dst, Unnormalized>,
a: &A,
pt: &P,
pt_coeff: usize,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Dst: Data,
CKKSCiphertext<Dst, Unnormalized>: GLWEToBackendMut<BE>,
A: GLWEToBackendRef<BE> + CKKSCtBounds,
P: GLWEToBackendRef<BE> + CKKSCtBounds,
fn ckks_mul_add_pt_const_into_unnormalized<Dst, A, P>(
&self,
dst: &mut CKKSCiphertext<Dst, Unnormalized>,
a: &A,
pt: &P,
pt_coeff: usize,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Dst: Data,
CKKSCiphertext<Dst, Unnormalized>: GLWEToBackendMut<BE>,
A: GLWEToBackendRef<BE> + CKKSCtBounds,
P: GLWEToBackendRef<BE> + CKKSCtBounds,
Source§fn ckks_mul_add_pt_vec_into_unnormalized<Dst, A, P>(
&self,
dst: &mut CKKSCiphertext<Dst, Unnormalized>,
a: &A,
pt: &P,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Dst: Data,
CKKSCiphertext<Dst, Unnormalized>: GLWEToBackendMut<BE>,
A: GLWEToBackendRef<BE> + CKKSCtBounds,
P: GLWEToBackendRef<BE> + CKKSCtBounds,
fn ckks_mul_add_pt_vec_into_unnormalized<Dst, A, P>(
&self,
dst: &mut CKKSCiphertext<Dst, Unnormalized>,
a: &A,
pt: &P,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Dst: Data,
CKKSCiphertext<Dst, Unnormalized>: GLWEToBackendMut<BE>,
A: GLWEToBackendRef<BE> + CKKSCtBounds,
P: GLWEToBackendRef<BE> + CKKSCtBounds,
Source§impl CKKSMulDefault<FFT64Ref> for Module<FFT64Ref>
impl CKKSMulDefault<FFT64Ref> for Module<FFT64Ref>
fn ckks_mul_tmp_bytes_default<R, T>(&self, res: &R, tsk: &T) -> usize
fn ckks_mul_into_default<Dst, A, B, T>(
&self,
dst: &mut Dst,
a: &A,
b: &B,
tsk: &T,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Self: GLWETensoring<BE> + GLWECopy<BE> + ModuleCoreAlloc<OwnedBuf = <BE as Backend>::OwnedBuf>,
Dst: GLWEToBackendMut<BE> + CKKSInfos + SetCKKSInfos + GLWEInfos,
A: GLWEToBackendRef<BE> + CKKSInfos + GLWEInfos,
B: GLWEToBackendRef<BE> + CKKSInfos + GLWEInfos,
T: GLWETensorKeyPreparedToBackendRef<BE> + GGLWEInfos,
fn ckks_mul_assign_default<Dst, A, T>(
&self,
dst: &mut Dst,
a: &A,
tsk: &T,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Self: GLWETensoring<BE> + GLWECopy<BE> + ModuleCoreAlloc<OwnedBuf = <BE as Backend>::OwnedBuf>,
Dst: GLWEToBackendMut<BE> + GLWEToBackendRef<BE> + CKKSInfos + SetCKKSInfos + GLWEInfos,
A: GLWEToBackendRef<BE> + CKKSInfos + GLWEInfos,
T: GLWETensorKeyPreparedToBackendRef<BE> + GGLWEInfos,
fn ckks_square_tmp_bytes_default<R, T>(&self, res: &R, tsk: &T) -> usize
fn ckks_square_into_default<Dst, A, T>(
&self,
dst: &mut Dst,
a: &A,
tsk: &T,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Self: GLWETensoring<BE> + GLWECopy<BE> + ModuleCoreAlloc<OwnedBuf = <BE as Backend>::OwnedBuf>,
Dst: GLWEToBackendMut<BE> + CKKSInfos + SetCKKSInfos + GLWEInfos,
A: GLWEToBackendRef<BE> + CKKSInfos + GLWEInfos,
T: GLWETensorKeyPreparedToBackendRef<BE> + GGLWEInfos,
fn ckks_square_assign_default<Dst, T>(
&self,
dst: &mut Dst,
tsk: &T,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Self: GLWETensoring<BE> + GLWECopy<BE> + ModuleCoreAlloc<OwnedBuf = <BE as Backend>::OwnedBuf>,
Dst: GLWEToBackendMut<BE> + GLWEToBackendRef<BE> + CKKSInfos + SetCKKSInfos + GLWEInfos,
T: GLWETensorKeyPreparedToBackendRef<BE> + GGLWEInfos,
fn ckks_mul_pt_vec_tmp_bytes_default<R, A>( &self, res: &R, a: &A, b: &CKKSMeta, ) -> usize
fn ckks_mul_pt_const_tmp_bytes_default<R, A>( &self, res: &R, a: &A, b: &CKKSMeta, ) -> usize
fn ckks_mul_pt_vec_into_default<Dst, A, P>(
&self,
dst: &mut Dst,
a: &A,
pt: &P,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
P: GLWEToBackendRef<BE> + LWEInfos + GLWEInfos + CKKSInfos,
Self: GLWECopy<BE> + GLWEMulPlain<BE> + ModuleCoreAlloc<OwnedBuf = <BE as Backend>::OwnedBuf> + VecZnxCopyBackend<BE>,
Dst: GLWEToBackendMut<BE> + CKKSInfos + SetCKKSInfos + GLWEInfos,
A: GLWEToBackendRef<BE> + CKKSInfos + GLWEInfos,
fn ckks_mul_pt_vec_assign_default<Dst, P>(
&self,
dst: &mut Dst,
pt: &P,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
P: GLWEToBackendRef<BE> + LWEInfos + GLWEInfos + CKKSInfos,
Self: GLWECopy<BE> + GLWEMulPlain<BE> + ModuleCoreAlloc<OwnedBuf = <BE as Backend>::OwnedBuf> + VecZnxCopyBackend<BE>,
Dst: GLWEToBackendMut<BE> + CKKSInfos + SetCKKSInfos + GLWEInfos,
fn ckks_mul_pt_const_into_default<Dst, A, P>(
&self,
dst: &mut Dst,
a: &A,
pt: &P,
pt_coeff: usize,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
P: GLWEToBackendRef<BE> + LWEInfos + GLWEInfos + CKKSInfos,
Self: GLWEMulConst<BE>,
Dst: GLWEToBackendMut<BE> + CKKSInfos + SetCKKSInfos + GLWEInfos,
A: GLWEToBackendRef<BE> + CKKSInfos + GLWEInfos,
fn ckks_mul_pt_const_assign_default<Dst, P>(
&self,
dst: &mut Dst,
cnst: &P,
cnst_coeff: usize,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
P: GLWEToBackendRef<BE> + LWEInfos + GLWEInfos + CKKSInfos,
Self: GLWEMulConst<BE>,
Dst: GLWEToBackendMut<BE> + GLWEToBackendRef<BE> + CKKSInfos + SetCKKSInfos + GLWEInfos,
Source§impl CKKSMulDefault<NTT120Ref> for Module<NTT120Ref>
impl CKKSMulDefault<NTT120Ref> for Module<NTT120Ref>
fn ckks_mul_tmp_bytes_default<R, T>(&self, res: &R, tsk: &T) -> usize
fn ckks_mul_into_default<Dst, A, B, T>(
&self,
dst: &mut Dst,
a: &A,
b: &B,
tsk: &T,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Self: GLWETensoring<BE> + GLWECopy<BE> + ModuleCoreAlloc<OwnedBuf = <BE as Backend>::OwnedBuf>,
Dst: GLWEToBackendMut<BE> + CKKSInfos + SetCKKSInfos + GLWEInfos,
A: GLWEToBackendRef<BE> + CKKSInfos + GLWEInfos,
B: GLWEToBackendRef<BE> + CKKSInfos + GLWEInfos,
T: GLWETensorKeyPreparedToBackendRef<BE> + GGLWEInfos,
fn ckks_mul_assign_default<Dst, A, T>(
&self,
dst: &mut Dst,
a: &A,
tsk: &T,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Self: GLWETensoring<BE> + GLWECopy<BE> + ModuleCoreAlloc<OwnedBuf = <BE as Backend>::OwnedBuf>,
Dst: GLWEToBackendMut<BE> + GLWEToBackendRef<BE> + CKKSInfos + SetCKKSInfos + GLWEInfos,
A: GLWEToBackendRef<BE> + CKKSInfos + GLWEInfos,
T: GLWETensorKeyPreparedToBackendRef<BE> + GGLWEInfos,
fn ckks_square_tmp_bytes_default<R, T>(&self, res: &R, tsk: &T) -> usize
fn ckks_square_into_default<Dst, A, T>(
&self,
dst: &mut Dst,
a: &A,
tsk: &T,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Self: GLWETensoring<BE> + GLWECopy<BE> + ModuleCoreAlloc<OwnedBuf = <BE as Backend>::OwnedBuf>,
Dst: GLWEToBackendMut<BE> + CKKSInfos + SetCKKSInfos + GLWEInfos,
A: GLWEToBackendRef<BE> + CKKSInfos + GLWEInfos,
T: GLWETensorKeyPreparedToBackendRef<BE> + GGLWEInfos,
fn ckks_square_assign_default<Dst, T>(
&self,
dst: &mut Dst,
tsk: &T,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Self: GLWETensoring<BE> + GLWECopy<BE> + ModuleCoreAlloc<OwnedBuf = <BE as Backend>::OwnedBuf>,
Dst: GLWEToBackendMut<BE> + GLWEToBackendRef<BE> + CKKSInfos + SetCKKSInfos + GLWEInfos,
T: GLWETensorKeyPreparedToBackendRef<BE> + GGLWEInfos,
fn ckks_mul_pt_vec_tmp_bytes_default<R, A>( &self, res: &R, a: &A, b: &CKKSMeta, ) -> usize
fn ckks_mul_pt_const_tmp_bytes_default<R, A>( &self, res: &R, a: &A, b: &CKKSMeta, ) -> usize
fn ckks_mul_pt_vec_into_default<Dst, A, P>(
&self,
dst: &mut Dst,
a: &A,
pt: &P,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
P: GLWEToBackendRef<BE> + LWEInfos + GLWEInfos + CKKSInfos,
Self: GLWECopy<BE> + GLWEMulPlain<BE> + ModuleCoreAlloc<OwnedBuf = <BE as Backend>::OwnedBuf> + VecZnxCopyBackend<BE>,
Dst: GLWEToBackendMut<BE> + CKKSInfos + SetCKKSInfos + GLWEInfos,
A: GLWEToBackendRef<BE> + CKKSInfos + GLWEInfos,
fn ckks_mul_pt_vec_assign_default<Dst, P>(
&self,
dst: &mut Dst,
pt: &P,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
P: GLWEToBackendRef<BE> + LWEInfos + GLWEInfos + CKKSInfos,
Self: GLWECopy<BE> + GLWEMulPlain<BE> + ModuleCoreAlloc<OwnedBuf = <BE as Backend>::OwnedBuf> + VecZnxCopyBackend<BE>,
Dst: GLWEToBackendMut<BE> + CKKSInfos + SetCKKSInfos + GLWEInfos,
fn ckks_mul_pt_const_into_default<Dst, A, P>(
&self,
dst: &mut Dst,
a: &A,
pt: &P,
pt_coeff: usize,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
P: GLWEToBackendRef<BE> + LWEInfos + GLWEInfos + CKKSInfos,
Self: GLWEMulConst<BE>,
Dst: GLWEToBackendMut<BE> + CKKSInfos + SetCKKSInfos + GLWEInfos,
A: GLWEToBackendRef<BE> + CKKSInfos + GLWEInfos,
fn ckks_mul_pt_const_assign_default<Dst, P>(
&self,
dst: &mut Dst,
cnst: &P,
cnst_coeff: usize,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
P: GLWEToBackendRef<BE> + LWEInfos + GLWEInfos + CKKSInfos,
Self: GLWEMulConst<BE>,
Dst: GLWEToBackendMut<BE> + GLWEToBackendRef<BE> + CKKSInfos + SetCKKSInfos + GLWEInfos,
Source§impl<BE> CKKSMulOps<BE> for Module<BE>where
BE: Backend + CKKSMulImpl<BE>,
Module<BE>: GLWEAdd<BE> + GLWECopy<BE> + GLWEMulConst<BE> + GLWEMulPlain<BE> + GLWERotate<BE> + GLWETensoring<BE> + ModuleN + ModuleCoreAlloc<OwnedBuf = <BE as Backend>::OwnedBuf> + VecZnxCopyBackend<BE>,
impl<BE> CKKSMulOps<BE> for Module<BE>where
BE: Backend + CKKSMulImpl<BE>,
Module<BE>: GLWEAdd<BE> + GLWECopy<BE> + GLWEMulConst<BE> + GLWEMulPlain<BE> + GLWERotate<BE> + GLWETensoring<BE> + ModuleN + ModuleCoreAlloc<OwnedBuf = <BE as Backend>::OwnedBuf> + VecZnxCopyBackend<BE>,
fn ckks_mul_tmp_bytes<R, T>(&self, res: &R, tsk: &T) -> usizewhere
R: CKKSCtBounds,
T: GGLWEInfos,
fn ckks_square_tmp_bytes<R, T>(&self, res: &R, tsk: &T) -> usizewhere
R: CKKSCtBounds,
T: GGLWEInfos,
fn ckks_mul_pt_vec_tmp_bytes<R, A, P>(&self, res: &R, a: &A, b: &P) -> usize
fn ckks_mul_pt_const_tmp_bytes<R, A, P>(&self, res: &R, a: &A, b: &P) -> usize
Source§fn ckks_mul_into<Dst, A, B, T>(
&self,
dst: &mut Dst,
a: &A,
b: &B,
tsk: &T,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Dst: GLWEToBackendMut<BE> + CKKSCtBounds + SetCKKSInfos,
A: GLWEToBackendRef<BE> + CKKSCtBounds,
B: GLWEToBackendRef<BE> + CKKSCtBounds,
T: GGLWEInfos + GLWETensorKeyPreparedToBackendRef<BE>,
fn ckks_mul_into<Dst, A, B, T>(
&self,
dst: &mut Dst,
a: &A,
b: &B,
tsk: &T,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Dst: GLWEToBackendMut<BE> + CKKSCtBounds + SetCKKSInfos,
A: GLWEToBackendRef<BE> + CKKSCtBounds,
B: GLWEToBackendRef<BE> + CKKSCtBounds,
T: GGLWEInfos + GLWETensorKeyPreparedToBackendRef<BE>,
Source§fn ckks_mul_assign<Dst, A, T>(
&self,
dst: &mut Dst,
a: &A,
tsk: &T,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Dst: GLWEToBackendMut<BE> + GLWEToBackendRef<BE> + CKKSCtBounds + SetCKKSInfos,
A: GLWEToBackendRef<BE> + CKKSCtBounds,
T: GGLWEInfos + GLWETensorKeyPreparedToBackendRef<BE>,
fn ckks_mul_assign<Dst, A, T>(
&self,
dst: &mut Dst,
a: &A,
tsk: &T,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Dst: GLWEToBackendMut<BE> + GLWEToBackendRef<BE> + CKKSCtBounds + SetCKKSInfos,
A: GLWEToBackendRef<BE> + CKKSCtBounds,
T: GGLWEInfos + GLWETensorKeyPreparedToBackendRef<BE>,
dst *= a in-place using tensor-product keyswitching via tsk.Source§fn ckks_square_into<Dst, A, T>(
&self,
dst: &mut Dst,
a: &A,
tsk: &T,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Dst: GLWEToBackendMut<BE> + CKKSCtBounds + SetCKKSInfos,
A: GLWEToBackendRef<BE> + CKKSCtBounds,
T: GGLWEInfos + GLWETensorKeyPreparedToBackendRef<BE>,
fn ckks_square_into<Dst, A, T>(
&self,
dst: &mut Dst,
a: &A,
tsk: &T,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Dst: GLWEToBackendMut<BE> + CKKSCtBounds + SetCKKSInfos,
A: GLWEToBackendRef<BE> + CKKSCtBounds,
T: GGLWEInfos + GLWETensorKeyPreparedToBackendRef<BE>,
dst = a * a (squaring) using tensor-product keyswitching. Read moreSource§fn ckks_square_assign<Dst, T>(
&self,
dst: &mut Dst,
tsk: &T,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Dst: GLWEToBackendMut<BE> + GLWEToBackendRef<BE> + CKKSCtBounds + SetCKKSInfos,
T: GGLWEInfos + GLWETensorKeyPreparedToBackendRef<BE>,
fn ckks_square_assign<Dst, T>(
&self,
dst: &mut Dst,
tsk: &T,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Dst: GLWEToBackendMut<BE> + GLWEToBackendRef<BE> + CKKSCtBounds + SetCKKSInfos,
T: GGLWEInfos + GLWETensorKeyPreparedToBackendRef<BE>,
dst = dst * dst (squaring in-place) using tensor-product keyswitching.Source§fn ckks_mul_pt_vec_into<Dst, A, P>(
&self,
dst: &mut Dst,
a: &A,
pt: &P,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Dst: GLWEToBackendMut<BE> + CKKSCtBounds + SetCKKSInfos,
A: GLWEToBackendRef<BE> + CKKSCtBounds,
P: GLWEToBackendRef<BE> + CKKSCtBounds,
fn ckks_mul_pt_vec_into<Dst, A, P>(
&self,
dst: &mut Dst,
a: &A,
pt: &P,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Dst: GLWEToBackendMut<BE> + CKKSCtBounds + SetCKKSInfos,
A: GLWEToBackendRef<BE> + CKKSCtBounds,
P: GLWEToBackendRef<BE> + CKKSCtBounds,
Source§fn ckks_mul_pt_vec_assign<Dst, P>(
&self,
dst: &mut Dst,
pt: &P,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Dst: GLWEToBackendMut<BE> + GLWEToBackendRef<BE> + CKKSCtBounds + SetCKKSInfos,
P: GLWEToBackendRef<BE> + CKKSCtBounds,
fn ckks_mul_pt_vec_assign<Dst, P>(
&self,
dst: &mut Dst,
pt: &P,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Dst: GLWEToBackendMut<BE> + GLWEToBackendRef<BE> + CKKSCtBounds + SetCKKSInfos,
P: GLWEToBackendRef<BE> + CKKSCtBounds,
dst *= pt in-place.Source§fn ckks_mul_pt_const_into<Dst, A, P>(
&self,
dst: &mut Dst,
a: &A,
pt: &P,
pt_coeff: usize,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Dst: GLWEToBackendMut<BE> + CKKSCtBounds + SetCKKSInfos,
A: GLWEToBackendRef<BE> + CKKSCtBounds,
P: GLWEToBackendRef<BE> + CKKSCtBounds,
fn ckks_mul_pt_const_into<Dst, A, P>(
&self,
dst: &mut Dst,
a: &A,
pt: &P,
pt_coeff: usize,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Dst: GLWEToBackendMut<BE> + CKKSCtBounds + SetCKKSInfos,
A: GLWEToBackendRef<BE> + CKKSCtBounds,
P: GLWEToBackendRef<BE> + CKKSCtBounds,
dst = a * pt[pt_coeff], multiplying by a single
quantized constant from coefficient pt_coeff of pt. Read moreSource§fn ckks_mul_pt_const_assign<Dst, P>(
&self,
dst: &mut Dst,
pt: &P,
pt_coeff: usize,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Dst: GLWEToBackendMut<BE> + GLWEToBackendRef<BE> + CKKSCtBounds + SetCKKSInfos,
P: GLWEToBackendRef<BE> + CKKSCtBounds,
fn ckks_mul_pt_const_assign<Dst, P>(
&self,
dst: &mut Dst,
pt: &P,
pt_coeff: usize,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Dst: GLWEToBackendMut<BE> + GLWEToBackendRef<BE> + CKKSCtBounds + SetCKKSInfos,
P: GLWEToBackendRef<BE> + CKKSCtBounds,
dst *= pt[pt_coeff] in-place.Source§impl<BE> CKKSMulSubOps<BE> for Module<BE>
impl<BE> CKKSMulSubOps<BE> for Module<BE>
fn ckks_mul_sub_ct_tmp_bytes<R, T>(&self, res: &R, tsk: &T) -> usizewhere
R: CKKSCtBounds,
T: GGLWEInfos,
fn ckks_mul_sub_pt_vec_tmp_bytes<R, A, P>(&self, res: &R, a: &A, b: &P) -> usize
fn ckks_mul_sub_pt_const_tmp_bytes<R, A, P>( &self, res: &R, a: &A, b: &P, ) -> usize
Source§fn ckks_mul_sub_ct_into<Dst, A, B, T>(
&self,
dst: &mut CKKSCiphertext<Dst>,
a: &CKKSCiphertext<A>,
b: &CKKSCiphertext<B>,
tsk: &GLWETensorKeyPrepared<T, BE>,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Dst: Data,
A: Data,
B: Data,
T: Data,
CKKSCiphertext<Dst>: GLWEToBackendMut<BE>,
CKKSCiphertext<A>: GLWEToBackendRef<BE> + GLWEInfos,
CKKSCiphertext<B>: GLWEToBackendRef<BE> + GLWEInfos,
GLWETensorKeyPrepared<T, BE>: GLWETensorKeyPreparedToBackendRef<BE>,
fn ckks_mul_sub_ct_into<Dst, A, B, T>(
&self,
dst: &mut CKKSCiphertext<Dst>,
a: &CKKSCiphertext<A>,
b: &CKKSCiphertext<B>,
tsk: &GLWETensorKeyPrepared<T, BE>,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Dst: Data,
A: Data,
B: Data,
T: Data,
CKKSCiphertext<Dst>: GLWEToBackendMut<BE>,
CKKSCiphertext<A>: GLWEToBackendRef<BE> + GLWEInfos,
CKKSCiphertext<B>: GLWEToBackendRef<BE> + GLWEInfos,
GLWETensorKeyPrepared<T, BE>: GLWETensorKeyPreparedToBackendRef<BE>,
Source§fn ckks_mul_sub_pt_vec_into<Dst, A, P>(
&self,
dst: &mut CKKSCiphertext<Dst>,
a: &CKKSCiphertext<A>,
pt: &P,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Dst: Data,
A: Data,
CKKSCiphertext<Dst>: GLWEToBackendMut<BE>,
CKKSCiphertext<A>: GLWEToBackendRef<BE> + GLWEInfos,
P: GLWEToBackendRef<BE> + CKKSCtBounds,
fn ckks_mul_sub_pt_vec_into<Dst, A, P>(
&self,
dst: &mut CKKSCiphertext<Dst>,
a: &CKKSCiphertext<A>,
pt: &P,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Dst: Data,
A: Data,
CKKSCiphertext<Dst>: GLWEToBackendMut<BE>,
CKKSCiphertext<A>: GLWEToBackendRef<BE> + GLWEInfos,
P: GLWEToBackendRef<BE> + CKKSCtBounds,
Source§fn ckks_mul_sub_pt_const_into<Dst, A, P>(
&self,
dst: &mut CKKSCiphertext<Dst>,
a: &CKKSCiphertext<A>,
pt: &P,
pt_coeff: usize,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Dst: Data,
A: Data,
CKKSCiphertext<Dst>: GLWEToBackendMut<BE>,
CKKSCiphertext<A>: GLWEToBackendRef<BE> + GLWEInfos,
P: GLWEToBackendRef<BE> + CKKSCtBounds,
fn ckks_mul_sub_pt_const_into<Dst, A, P>(
&self,
dst: &mut CKKSCiphertext<Dst>,
a: &CKKSCiphertext<A>,
pt: &P,
pt_coeff: usize,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Dst: Data,
A: Data,
CKKSCiphertext<Dst>: GLWEToBackendMut<BE>,
CKKSCiphertext<A>: GLWEToBackendRef<BE> + GLWEInfos,
P: GLWEToBackendRef<BE> + CKKSCtBounds,
dst -= a * pt[pt_coeff]. Read moreSource§impl CKKSNegDefault<FFT64Ref> for Module<FFT64Ref>
impl CKKSNegDefault<FFT64Ref> for Module<FFT64Ref>
fn ckks_neg_tmp_bytes_default(&self) -> usizewhere
Self: GLWEShift<BE>,
fn ckks_neg_into_default<Dst, Src>(
&self,
dst: &mut Dst,
src: &Src,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Self: GLWENegate<BE> + GLWEShift<BE>,
Dst: GLWEToBackendMut<BE> + LWEInfos + CKKSInfos + SetCKKSInfos,
Src: GLWEToBackendRef<BE> + GLWEInfos + LWEInfos + CKKSInfos,
fn ckks_neg_assign_default<Dst>(&self, dst: &mut Dst) -> Result<(), Error>
Source§impl CKKSNegDefault<NTT120Ref> for Module<NTT120Ref>
impl CKKSNegDefault<NTT120Ref> for Module<NTT120Ref>
fn ckks_neg_tmp_bytes_default(&self) -> usizewhere
Self: GLWEShift<BE>,
fn ckks_neg_into_default<Dst, Src>(
&self,
dst: &mut Dst,
src: &Src,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Self: GLWENegate<BE> + GLWEShift<BE>,
Dst: GLWEToBackendMut<BE> + LWEInfos + CKKSInfos + SetCKKSInfos,
Src: GLWEToBackendRef<BE> + GLWEInfos + LWEInfos + CKKSInfos,
fn ckks_neg_assign_default<Dst>(&self, dst: &mut Dst) -> Result<(), Error>
Source§impl<BE> CKKSNegOps<BE> for Module<BE>
impl<BE> CKKSNegOps<BE> for Module<BE>
fn ckks_neg_tmp_bytes(&self) -> usize
Source§fn ckks_neg_into<Dst, Src>(
&self,
dst: &mut Dst,
src: &Src,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Dst: GLWEToBackendMut<BE> + CKKSCtBounds + SetCKKSInfos,
Src: GLWEToBackendRef<BE> + CKKSCtBounds,
fn ckks_neg_into<Dst, Src>(
&self,
dst: &mut Dst,
src: &Src,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Dst: GLWEToBackendMut<BE> + CKKSCtBounds + SetCKKSInfos,
Src: GLWEToBackendRef<BE> + CKKSCtBounds,
dst = -src.Source§impl CKKSPlaintextDefault<FFT64Ref> for Module<FFT64Ref>
impl CKKSPlaintextDefault<FFT64Ref> for Module<FFT64Ref>
fn ckks_add_pt_vec_into_default<Dst, A>(
&self,
ct: &mut Dst,
pt: &A,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Self: VecZnxRshAddIntoBackend<BE>,
Dst: GLWEToBackendMut<BE> + LWEInfos + CKKSInfos,
A: GLWEToBackendRef<BE> + LWEInfos + CKKSInfos,
fn ckks_add_pt_const_into_default<Dst, A>(
&self,
ct: &mut Dst,
coeff_ct: usize,
pt: &A,
coeff_pt: usize,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Self: VecZnxRshAddCoeffIntoBackend<BE>,
Dst: GLWEToBackendMut<BE> + LWEInfos + CKKSInfos,
A: GLWEToBackendRef<BE> + LWEInfos + CKKSInfos,
fn ckks_sub_pt_const_into_default<Dst, A>(
&self,
ct: &mut Dst,
coeff_ct: usize,
pt: &A,
coeff_pt: usize,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Self: VecZnxRshSubCoeffIntoBackend<BE>,
Dst: GLWEToBackendMut<BE> + LWEInfos + CKKSInfos,
A: GLWEToBackendRef<BE> + LWEInfos + CKKSInfos,
fn ckks_sub_pt_vec_into_default<Dst, A>(
&self,
ct: &mut Dst,
pt: &A,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Self: VecZnxRshSubBackend<BE>,
Dst: GLWEToBackendMut<BE> + LWEInfos + CKKSInfos,
A: GLWEToBackendRef<BE> + LWEInfos + CKKSInfos,
fn ckks_extract_pt_tmp_bytes_default(&self) -> usizewhere
Self: VecZnxLshTmpBytes + VecZnxRshTmpBytes,
fn ckks_extract_pt_default<D, S>(
&self,
dst: &mut D,
src: &S,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
D: GLWEToBackendMut<BE> + LWEInfos + CKKSInfos + SetCKKSInfos,
S: GLWEToBackendRef<BE> + GLWEInfos + LWEInfos + CKKSInfos,
Self: VecZnxLshBackend<BE> + VecZnxRshBackend<BE>,
fn ckks_extract_pt_with_meta_default<D, S>(
&self,
dst: &mut D,
src: &S,
src_meta: CKKSMeta,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
D: GLWEToBackendMut<BE> + LWEInfos + CKKSInfos + SetCKKSInfos,
S: GLWEToBackendRef<BE> + GLWEInfos + LWEInfos,
Self: VecZnxLshBackend<BE> + VecZnxRshBackend<BE>,
Source§impl CKKSPlaintextDefault<NTT120Ref> for Module<NTT120Ref>
impl CKKSPlaintextDefault<NTT120Ref> for Module<NTT120Ref>
fn ckks_add_pt_vec_into_default<Dst, A>(
&self,
ct: &mut Dst,
pt: &A,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Self: VecZnxRshAddIntoBackend<BE>,
Dst: GLWEToBackendMut<BE> + LWEInfos + CKKSInfos,
A: GLWEToBackendRef<BE> + LWEInfos + CKKSInfos,
fn ckks_add_pt_const_into_default<Dst, A>(
&self,
ct: &mut Dst,
coeff_ct: usize,
pt: &A,
coeff_pt: usize,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Self: VecZnxRshAddCoeffIntoBackend<BE>,
Dst: GLWEToBackendMut<BE> + LWEInfos + CKKSInfos,
A: GLWEToBackendRef<BE> + LWEInfos + CKKSInfos,
fn ckks_sub_pt_const_into_default<Dst, A>(
&self,
ct: &mut Dst,
coeff_ct: usize,
pt: &A,
coeff_pt: usize,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Self: VecZnxRshSubCoeffIntoBackend<BE>,
Dst: GLWEToBackendMut<BE> + LWEInfos + CKKSInfos,
A: GLWEToBackendRef<BE> + LWEInfos + CKKSInfos,
fn ckks_sub_pt_vec_into_default<Dst, A>(
&self,
ct: &mut Dst,
pt: &A,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Self: VecZnxRshSubBackend<BE>,
Dst: GLWEToBackendMut<BE> + LWEInfos + CKKSInfos,
A: GLWEToBackendRef<BE> + LWEInfos + CKKSInfos,
fn ckks_extract_pt_tmp_bytes_default(&self) -> usizewhere
Self: VecZnxLshTmpBytes + VecZnxRshTmpBytes,
fn ckks_extract_pt_default<D, S>(
&self,
dst: &mut D,
src: &S,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
D: GLWEToBackendMut<BE> + LWEInfos + CKKSInfos + SetCKKSInfos,
S: GLWEToBackendRef<BE> + GLWEInfos + LWEInfos + CKKSInfos,
Self: VecZnxLshBackend<BE> + VecZnxRshBackend<BE>,
fn ckks_extract_pt_with_meta_default<D, S>(
&self,
dst: &mut D,
src: &S,
src_meta: CKKSMeta,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
D: GLWEToBackendMut<BE> + LWEInfos + CKKSInfos + SetCKKSInfos,
S: GLWEToBackendRef<BE> + GLWEInfos + LWEInfos,
Self: VecZnxLshBackend<BE> + VecZnxRshBackend<BE>,
Source§impl<BE> CKKSPlaintextVecOps<BE> for Module<BE>where
BE: Backend + CKKSPlaintextZnxImpl<BE> + HalVecZnxImpl<BE>,
Module<BE>: VecZnxLshBackend<BE> + VecZnxLshTmpBytes + VecZnxRshBackend<BE> + VecZnxRshTmpBytes,
impl<BE> CKKSPlaintextVecOps<BE> for Module<BE>where
BE: Backend + CKKSPlaintextZnxImpl<BE> + HalVecZnxImpl<BE>,
Module<BE>: VecZnxLshBackend<BE> + VecZnxLshTmpBytes + VecZnxRshBackend<BE> + VecZnxRshTmpBytes,
fn ckks_extract_pt_tmp_bytes(&self) -> usize
Source§fn ckks_extract_pt<D, S>(
&self,
dst: &mut D,
src: &S,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
D: GLWEToBackendMut<BE> + GLWEInfos + CKKSInfos + SetCKKSInfos + LWEInfos,
S: GLWEToBackendRef<BE> + GLWEInfos + LWEInfos + CKKSInfos,
fn ckks_extract_pt<D, S>(
&self,
dst: &mut D,
src: &S,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
D: GLWEToBackendMut<BE> + GLWEInfos + CKKSInfos + SetCKKSInfos + LWEInfos,
S: GLWEToBackendRef<BE> + GLWEInfos + LWEInfos + CKKSInfos,
src into dst.Source§impl CKKSPow2Default<FFT64Ref> for Module<FFT64Ref>
impl CKKSPow2Default<FFT64Ref> for Module<FFT64Ref>
fn ckks_mul_pow2_tmp_bytes_default(&self) -> usizewhere
Self: GLWEShift<BE>,
fn ckks_div_pow2_tmp_bytes_default(&self) -> usizewhere
Self: GLWEShift<BE>,
fn ckks_mul_pow2_into_default<Dst, Src>(
&self,
dst: &mut Dst,
src: &Src,
bits: usize,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Self: GLWEShift<BE>,
Dst: GLWEToBackendMut<BE> + LWEInfos + CKKSInfos + SetCKKSInfos,
Src: GLWEToBackendRef<BE> + GLWEInfos + LWEInfos + CKKSInfos,
fn ckks_mul_pow2_assign_default<Dst>( &self, dst: &mut Dst, bits: usize, scratch: &mut ScratchArena<'_, BE>, ) -> Result<(), Error>
fn ckks_div_pow2_into_default<Dst, Src>(
&self,
dst: &mut Dst,
src: &Src,
bits: usize,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Self: GLWEShift<BE> + GLWECopy<BE>,
Dst: GLWEToBackendMut<BE> + LWEInfos + CKKSInfos + SetCKKSInfos,
Src: GLWEToBackendRef<BE> + GLWEInfos + LWEInfos + CKKSInfos,
fn ckks_div_pow2_assign_default<Dst>( &self, dst: &mut Dst, bits: usize, ) -> Result<(), Error>
Source§impl CKKSPow2Default<NTT120Ref> for Module<NTT120Ref>
impl CKKSPow2Default<NTT120Ref> for Module<NTT120Ref>
fn ckks_mul_pow2_tmp_bytes_default(&self) -> usizewhere
Self: GLWEShift<BE>,
fn ckks_div_pow2_tmp_bytes_default(&self) -> usizewhere
Self: GLWEShift<BE>,
fn ckks_mul_pow2_into_default<Dst, Src>(
&self,
dst: &mut Dst,
src: &Src,
bits: usize,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Self: GLWEShift<BE>,
Dst: GLWEToBackendMut<BE> + LWEInfos + CKKSInfos + SetCKKSInfos,
Src: GLWEToBackendRef<BE> + GLWEInfos + LWEInfos + CKKSInfos,
fn ckks_mul_pow2_assign_default<Dst>( &self, dst: &mut Dst, bits: usize, scratch: &mut ScratchArena<'_, BE>, ) -> Result<(), Error>
fn ckks_div_pow2_into_default<Dst, Src>(
&self,
dst: &mut Dst,
src: &Src,
bits: usize,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Self: GLWEShift<BE> + GLWECopy<BE>,
Dst: GLWEToBackendMut<BE> + LWEInfos + CKKSInfos + SetCKKSInfos,
Src: GLWEToBackendRef<BE> + GLWEInfos + LWEInfos + CKKSInfos,
fn ckks_div_pow2_assign_default<Dst>( &self, dst: &mut Dst, bits: usize, ) -> Result<(), Error>
Source§impl<BE> CKKSPow2Ops<BE> for Module<BE>
impl<BE> CKKSPow2Ops<BE> for Module<BE>
fn ckks_mul_pow2_tmp_bytes(&self) -> usize
Source§fn ckks_mul_pow2_into<Dst, Src>(
&self,
dst: &mut Dst,
src: &Src,
bits: usize,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Dst: GLWEToBackendMut<BE> + CKKSCtBounds + SetCKKSInfos,
Src: GLWEToBackendRef<BE> + CKKSCtBounds,
fn ckks_mul_pow2_into<Dst, Src>(
&self,
dst: &mut Dst,
src: &Src,
bits: usize,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Dst: GLWEToBackendMut<BE> + CKKSCtBounds + SetCKKSInfos,
Src: GLWEToBackendRef<BE> + CKKSCtBounds,
dst = src * 2^bits. Read moreSource§fn ckks_mul_pow2_assign<Dst>(
&self,
dst: &mut Dst,
bits: usize,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>
fn ckks_mul_pow2_assign<Dst>( &self, dst: &mut Dst, bits: usize, scratch: &mut ScratchArena<'_, BE>, ) -> Result<(), Error>
dst *= 2^bits in-place. Metadata is unchanged.fn ckks_div_pow2_tmp_bytes(&self) -> usize
Source§fn ckks_div_pow2_into<Dst, Src>(
&self,
dst: &mut Dst,
src: &Src,
bits: usize,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Dst: GLWEToBackendMut<BE> + CKKSCtBounds + SetCKKSInfos,
Src: GLWEToBackendRef<BE> + CKKSCtBounds,
fn ckks_div_pow2_into<Dst, Src>(
&self,
dst: &mut Dst,
src: &Src,
bits: usize,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Dst: GLWEToBackendMut<BE> + CKKSCtBounds + SetCKKSInfos,
Src: GLWEToBackendRef<BE> + CKKSCtBounds,
dst = src / 2^bits. Read moreSource§impl<BE> CKKSRescaleOps<BE> for Module<BE>
impl<BE> CKKSRescaleOps<BE> for Module<BE>
Source§fn ckks_rescale_tmp_bytes(&self) -> usize
fn ckks_rescale_tmp_bytes(&self) -> usize
Self::ckks_rescale_into.Source§fn ckks_rescale_assign<Dst>(
&self,
ct: &mut Dst,
k: usize,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>
fn ckks_rescale_assign<Dst>( &self, ct: &mut Dst, k: usize, scratch: &mut ScratchArena<'_, BE>, ) -> Result<(), Error>
Source§fn ckks_rescale_into<Dst, Src>(
&self,
dst: &mut Dst,
k: usize,
src: &Src,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Dst: GLWEToBackendMut<BE> + CKKSCtBounds + SetCKKSInfos,
Src: GLWEToBackendRef<BE> + CKKSCtBounds,
fn ckks_rescale_into<Dst, Src>(
&self,
dst: &mut Dst,
k: usize,
src: &Src,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Dst: GLWEToBackendMut<BE> + CKKSCtBounds + SetCKKSInfos,
Src: GLWEToBackendRef<BE> + CKKSCtBounds,
Source§fn ckks_align_pair<A, B>(
&self,
a: &mut A,
b: &mut B,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
A: GLWEToBackendMut<BE> + CKKSCtBounds + SetCKKSInfos,
B: GLWEToBackendMut<BE> + CKKSCtBounds + SetCKKSInfos,
fn ckks_align_pair<A, B>(
&self,
a: &mut A,
b: &mut B,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
A: GLWEToBackendMut<BE> + CKKSCtBounds + SetCKKSInfos,
B: GLWEToBackendMut<BE> + CKKSCtBounds + SetCKKSInfos,
log_budget of a and b by rescaling whichever has
more remaining capacity down to the other’s level. Read moreSource§fn ckks_align_tmp_bytes(&self) -> usize
fn ckks_align_tmp_bytes(&self) -> usize
Self::ckks_align_pair.Source§impl CKKSRotateDefault<FFT64Ref> for Module<FFT64Ref>
impl CKKSRotateDefault<FFT64Ref> for Module<FFT64Ref>
fn ckks_rotate_tmp_bytes_default<C, K>( &self, ct_infos: &C, key_infos: &K, ) -> usize
fn ckks_rotate_into_default<Dst, Src, K>(
&self,
dst: &mut Dst,
src: &Src,
key: &K,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Self: GLWEAutomorphism<BE> + GLWEShift<BE>,
Dst: GLWEToBackendMut<BE> + GLWEInfos + LWEInfos + CKKSInfos + SetCKKSInfos,
Src: GLWEToBackendRef<BE> + GLWEInfos + LWEInfos + CKKSInfos,
K: GetGaloisElement + GGLWEPreparedToBackendRef<BE> + GGLWEInfos,
fn ckks_rotate_assign_default<Dst, K>(
&self,
dst: &mut Dst,
key: &K,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Self: GLWEAutomorphism<BE>,
Dst: GLWEToBackendMut<BE> + GLWEInfos + LWEInfos + CKKSInfos + SetCKKSInfos,
K: GetGaloisElement + GGLWEPreparedToBackendRef<BE> + GGLWEInfos,
Source§impl CKKSRotateDefault<NTT120Ref> for Module<NTT120Ref>
impl CKKSRotateDefault<NTT120Ref> for Module<NTT120Ref>
fn ckks_rotate_tmp_bytes_default<C, K>( &self, ct_infos: &C, key_infos: &K, ) -> usize
fn ckks_rotate_into_default<Dst, Src, K>(
&self,
dst: &mut Dst,
src: &Src,
key: &K,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Self: GLWEAutomorphism<BE> + GLWEShift<BE>,
Dst: GLWEToBackendMut<BE> + GLWEInfos + LWEInfos + CKKSInfos + SetCKKSInfos,
Src: GLWEToBackendRef<BE> + GLWEInfos + LWEInfos + CKKSInfos,
K: GetGaloisElement + GGLWEPreparedToBackendRef<BE> + GGLWEInfos,
fn ckks_rotate_assign_default<Dst, K>(
&self,
dst: &mut Dst,
key: &K,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Self: GLWEAutomorphism<BE>,
Dst: GLWEToBackendMut<BE> + GLWEInfos + LWEInfos + CKKSInfos + SetCKKSInfos,
K: GetGaloisElement + GGLWEPreparedToBackendRef<BE> + GGLWEInfos,
Source§impl<BE> CKKSRotateOps<BE> for Module<BE>
impl<BE> CKKSRotateOps<BE> for Module<BE>
fn ckks_rotate_tmp_bytes<C, K>(&self, ct_infos: &C, key_infos: &K) -> usizewhere
C: CKKSCtBounds,
K: GGLWEInfos,
Source§fn ckks_rotate_into<Dst, Src, H, K>(
&self,
dst: &mut Dst,
src: &Src,
k: i64,
keys: &H,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
K: GLWEAutomorphismKeyPreparedToBackendRef<BE> + GGLWEPreparedToBackendRef<BE> + GetGaloisElement + GGLWEInfos,
H: GLWEAutomorphismKeyHelper<K, BE>,
Dst: GLWEToBackendMut<BE> + CKKSCtBounds + SetCKKSInfos,
Src: GLWEToBackendRef<BE> + CKKSCtBounds,
fn ckks_rotate_into<Dst, Src, H, K>(
&self,
dst: &mut Dst,
src: &Src,
k: i64,
keys: &H,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
K: GLWEAutomorphismKeyPreparedToBackendRef<BE> + GGLWEPreparedToBackendRef<BE> + GetGaloisElement + GGLWEInfos,
H: GLWEAutomorphismKeyHelper<K, BE>,
Dst: GLWEToBackendMut<BE> + CKKSCtBounds + SetCKKSInfos,
Src: GLWEToBackendRef<BE> + CKKSCtBounds,
Source§fn ckks_rotate_assign<Dst, H, K>(
&self,
dst: &mut Dst,
k: i64,
keys: &H,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
K: GLWEAutomorphismKeyPreparedToBackendRef<BE> + GGLWEPreparedToBackendRef<BE> + GetGaloisElement + GGLWEInfos,
H: GLWEAutomorphismKeyHelper<K, BE>,
Dst: GLWEToBackendMut<BE> + CKKSCtBounds + SetCKKSInfos,
fn ckks_rotate_assign<Dst, H, K>(
&self,
dst: &mut Dst,
k: i64,
keys: &H,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
K: GLWEAutomorphismKeyPreparedToBackendRef<BE> + GGLWEPreparedToBackendRef<BE> + GetGaloisElement + GGLWEInfos,
H: GLWEAutomorphismKeyHelper<K, BE>,
Dst: GLWEToBackendMut<BE> + CKKSCtBounds + SetCKKSInfos,
dst = rotate(dst, k) in-place. Metadata is unchanged.Source§impl CKKSSubDefault<FFT64Ref> for Module<FFT64Ref>
impl CKKSSubDefault<FFT64Ref> for Module<FFT64Ref>
fn ckks_sub_tmp_bytes_default(&self) -> usize
fn ckks_sub_pt_vec_tmp_bytes_default(&self) -> usize
fn ckks_sub_pt_const_tmp_bytes_default(&self) -> usize
fn ckks_sub_into_default<Dst, A, B>(
&self,
dst: &mut Dst,
a: &A,
b: &B,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Self: GLWESub<BE> + GLWEShift<BE> + GLWENormalize<BE>,
Dst: GLWEToBackendMut<BE> + LWEInfos + SetCKKSInfos + CKKSInfos,
A: GLWEToBackendRef<BE> + LWEInfos + CKKSInfos,
B: GLWEToBackendRef<BE> + LWEInfos + CKKSInfos,
fn ckks_sub_into_unsafe_default<Dst, A, B>(
&self,
dst: &mut Dst,
a: &A,
b: &B,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Self: GLWESub<BE> + GLWEShift<BE>,
Dst: GLWEToBackendMut<BE> + LWEInfos + SetCKKSInfos + CKKSInfos,
A: GLWEToBackendRef<BE> + LWEInfos + CKKSInfos,
B: GLWEToBackendRef<BE> + LWEInfos + CKKSInfos,
fn ckks_sub_assign_default<Dst, A>(
&self,
dst: &mut Dst,
a: &A,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Self: GLWESub<BE> + GLWEShift<BE> + GLWENormalize<BE>,
Dst: GLWEToBackendMut<BE> + CKKSInfos + SetCKKSInfos,
A: GLWEToBackendRef<BE> + CKKSInfos,
fn ckks_sub_assign_unsafe_default<Dst, A>(
&self,
dst: &mut Dst,
a: &A,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Self: GLWESub<BE> + GLWEShift<BE>,
Dst: GLWEToBackendMut<BE> + CKKSInfos + SetCKKSInfos,
A: GLWEToBackendRef<BE> + CKKSInfos,
fn ckks_sub_one_assign_default<Dst>(
&self,
dst: &mut Dst,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Self: VecZnxRshSubCoeffIntoBackend<BE> + CKKSPlaintextDefault<BE> + GLWENormalize<BE>,
Dst: GLWEToBackendMut<BE> + CKKSInfos + LWEInfos,
fn ckks_sub_pt_vec_into_default<Dst, A, P>(
&self,
dst: &mut Dst,
a: &A,
pt: &P,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Self: VecZnxRshSubBackend<BE> + GLWEShift<BE> + GLWENormalize<BE> + CKKSPlaintextDefault<BE>,
Dst: GLWEToBackendMut<BE> + CKKSInfos + SetCKKSInfos + LWEInfos,
A: GLWEToBackendRef<BE> + CKKSInfos + LWEInfos,
P: GLWEToBackendRef<BE> + LWEInfos + CKKSInfos,
fn ckks_sub_pt_vec_into_unsafe_default<Dst, A, P>(
&self,
dst: &mut Dst,
a: &A,
pt: &P,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Self: VecZnxRshSubBackend<BE> + GLWEShift<BE> + CKKSPlaintextDefault<BE>,
Dst: GLWEToBackendMut<BE> + CKKSInfos + SetCKKSInfos + LWEInfos,
A: GLWEToBackendRef<BE> + CKKSInfos + LWEInfos,
P: GLWEToBackendRef<BE> + LWEInfos + CKKSInfos,
fn ckks_sub_pt_vec_assign_default<Dst, P>(
&self,
dst: &mut Dst,
pt: &P,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Self: VecZnxRshSubBackend<BE> + GLWENormalize<BE> + CKKSPlaintextDefault<BE>,
Dst: GLWEToBackendMut<BE> + CKKSInfos + LWEInfos,
P: GLWEToBackendRef<BE> + LWEInfos + CKKSInfos,
fn ckks_sub_pt_vec_assign_unsafe_default<Dst, P>(
&self,
dst: &mut Dst,
pt: &P,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Self: VecZnxRshSubBackend<BE> + CKKSPlaintextDefault<BE>,
Dst: GLWEToBackendMut<BE> + CKKSInfos + LWEInfos,
P: GLWEToBackendRef<BE> + LWEInfos + CKKSInfos,
fn ckks_sub_pt_const_into_default<Dst, A, P>(
&self,
dst: &mut Dst,
a: &A,
dst_coeff: usize,
cst: &P,
const_coeff: usize,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Self: GLWEShift<BE> + GLWENormalize<BE> + VecZnxRshSubCoeffIntoBackend<BE> + CKKSPlaintextDefault<BE>,
Dst: GLWEToBackendMut<BE> + CKKSInfos + SetCKKSInfos + LWEInfos,
A: GLWEToBackendRef<BE> + CKKSInfos + LWEInfos,
P: GLWEToBackendRef<BE> + LWEInfos + CKKSInfos,
fn ckks_sub_pt_const_into_unsafe_default<Dst, A, P>(
&self,
dst: &mut Dst,
a: &A,
dst_coeff: usize,
cst: &P,
const_coeff: usize,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Self: GLWEShift<BE> + VecZnxRshSubCoeffIntoBackend<BE> + CKKSPlaintextDefault<BE>,
Dst: GLWEToBackendMut<BE> + CKKSInfos + SetCKKSInfos + LWEInfos,
A: GLWEToBackendRef<BE> + CKKSInfos + LWEInfos,
P: GLWEToBackendRef<BE> + LWEInfos + CKKSInfos,
fn ckks_sub_pt_const_assign_default<Dst, P>(
&self,
dst: &mut Dst,
dst_coeff: usize,
cst: &P,
const_coeff: usize,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Self: VecZnxRshSubCoeffIntoBackend<BE> + CKKSPlaintextDefault<BE> + GLWENormalize<BE>,
Dst: GLWEToBackendMut<BE> + CKKSInfos + LWEInfos,
P: GLWEToBackendRef<BE> + LWEInfos + CKKSInfos,
fn ckks_sub_pt_const_assign_unsafe_default<Dst, P>(
&self,
dst: &mut Dst,
dst_coeff: usize,
cst: &P,
const_coeff: usize,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Self: VecZnxRshSubCoeffIntoBackend<BE> + CKKSPlaintextDefault<BE>,
Dst: GLWEToBackendMut<BE> + CKKSInfos + LWEInfos,
P: GLWEToBackendRef<BE> + LWEInfos + CKKSInfos,
Source§impl CKKSSubDefault<NTT120Ref> for Module<NTT120Ref>
impl CKKSSubDefault<NTT120Ref> for Module<NTT120Ref>
fn ckks_sub_tmp_bytes_default(&self) -> usize
fn ckks_sub_pt_vec_tmp_bytes_default(&self) -> usize
fn ckks_sub_pt_const_tmp_bytes_default(&self) -> usize
fn ckks_sub_into_default<Dst, A, B>(
&self,
dst: &mut Dst,
a: &A,
b: &B,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Self: GLWESub<BE> + GLWEShift<BE> + GLWENormalize<BE>,
Dst: GLWEToBackendMut<BE> + LWEInfos + SetCKKSInfos + CKKSInfos,
A: GLWEToBackendRef<BE> + LWEInfos + CKKSInfos,
B: GLWEToBackendRef<BE> + LWEInfos + CKKSInfos,
fn ckks_sub_into_unsafe_default<Dst, A, B>(
&self,
dst: &mut Dst,
a: &A,
b: &B,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Self: GLWESub<BE> + GLWEShift<BE>,
Dst: GLWEToBackendMut<BE> + LWEInfos + SetCKKSInfos + CKKSInfos,
A: GLWEToBackendRef<BE> + LWEInfos + CKKSInfos,
B: GLWEToBackendRef<BE> + LWEInfos + CKKSInfos,
fn ckks_sub_assign_default<Dst, A>(
&self,
dst: &mut Dst,
a: &A,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Self: GLWESub<BE> + GLWEShift<BE> + GLWENormalize<BE>,
Dst: GLWEToBackendMut<BE> + CKKSInfos + SetCKKSInfos,
A: GLWEToBackendRef<BE> + CKKSInfos,
fn ckks_sub_assign_unsafe_default<Dst, A>(
&self,
dst: &mut Dst,
a: &A,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Self: GLWESub<BE> + GLWEShift<BE>,
Dst: GLWEToBackendMut<BE> + CKKSInfos + SetCKKSInfos,
A: GLWEToBackendRef<BE> + CKKSInfos,
fn ckks_sub_one_assign_default<Dst>(
&self,
dst: &mut Dst,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Self: VecZnxRshSubCoeffIntoBackend<BE> + CKKSPlaintextDefault<BE> + GLWENormalize<BE>,
Dst: GLWEToBackendMut<BE> + CKKSInfos + LWEInfos,
fn ckks_sub_pt_vec_into_default<Dst, A, P>(
&self,
dst: &mut Dst,
a: &A,
pt: &P,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Self: VecZnxRshSubBackend<BE> + GLWEShift<BE> + GLWENormalize<BE> + CKKSPlaintextDefault<BE>,
Dst: GLWEToBackendMut<BE> + CKKSInfos + SetCKKSInfos + LWEInfos,
A: GLWEToBackendRef<BE> + CKKSInfos + LWEInfos,
P: GLWEToBackendRef<BE> + LWEInfos + CKKSInfos,
fn ckks_sub_pt_vec_into_unsafe_default<Dst, A, P>(
&self,
dst: &mut Dst,
a: &A,
pt: &P,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Self: VecZnxRshSubBackend<BE> + GLWEShift<BE> + CKKSPlaintextDefault<BE>,
Dst: GLWEToBackendMut<BE> + CKKSInfos + SetCKKSInfos + LWEInfos,
A: GLWEToBackendRef<BE> + CKKSInfos + LWEInfos,
P: GLWEToBackendRef<BE> + LWEInfos + CKKSInfos,
fn ckks_sub_pt_vec_assign_default<Dst, P>(
&self,
dst: &mut Dst,
pt: &P,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Self: VecZnxRshSubBackend<BE> + GLWENormalize<BE> + CKKSPlaintextDefault<BE>,
Dst: GLWEToBackendMut<BE> + CKKSInfos + LWEInfos,
P: GLWEToBackendRef<BE> + LWEInfos + CKKSInfos,
fn ckks_sub_pt_vec_assign_unsafe_default<Dst, P>(
&self,
dst: &mut Dst,
pt: &P,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Self: VecZnxRshSubBackend<BE> + CKKSPlaintextDefault<BE>,
Dst: GLWEToBackendMut<BE> + CKKSInfos + LWEInfos,
P: GLWEToBackendRef<BE> + LWEInfos + CKKSInfos,
fn ckks_sub_pt_const_into_default<Dst, A, P>(
&self,
dst: &mut Dst,
a: &A,
dst_coeff: usize,
cst: &P,
const_coeff: usize,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Self: GLWEShift<BE> + GLWENormalize<BE> + VecZnxRshSubCoeffIntoBackend<BE> + CKKSPlaintextDefault<BE>,
Dst: GLWEToBackendMut<BE> + CKKSInfos + SetCKKSInfos + LWEInfos,
A: GLWEToBackendRef<BE> + CKKSInfos + LWEInfos,
P: GLWEToBackendRef<BE> + LWEInfos + CKKSInfos,
fn ckks_sub_pt_const_into_unsafe_default<Dst, A, P>(
&self,
dst: &mut Dst,
a: &A,
dst_coeff: usize,
cst: &P,
const_coeff: usize,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Self: GLWEShift<BE> + VecZnxRshSubCoeffIntoBackend<BE> + CKKSPlaintextDefault<BE>,
Dst: GLWEToBackendMut<BE> + CKKSInfos + SetCKKSInfos + LWEInfos,
A: GLWEToBackendRef<BE> + CKKSInfos + LWEInfos,
P: GLWEToBackendRef<BE> + LWEInfos + CKKSInfos,
fn ckks_sub_pt_const_assign_default<Dst, P>(
&self,
dst: &mut Dst,
dst_coeff: usize,
cst: &P,
const_coeff: usize,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Self: VecZnxRshSubCoeffIntoBackend<BE> + CKKSPlaintextDefault<BE> + GLWENormalize<BE>,
Dst: GLWEToBackendMut<BE> + CKKSInfos + LWEInfos,
P: GLWEToBackendRef<BE> + LWEInfos + CKKSInfos,
fn ckks_sub_pt_const_assign_unsafe_default<Dst, P>(
&self,
dst: &mut Dst,
dst_coeff: usize,
cst: &P,
const_coeff: usize,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Self: VecZnxRshSubCoeffIntoBackend<BE> + CKKSPlaintextDefault<BE>,
Dst: GLWEToBackendMut<BE> + CKKSInfos + LWEInfos,
P: GLWEToBackendRef<BE> + LWEInfos + CKKSInfos,
Source§impl<BE> CKKSSubOps<BE> for Module<BE>where
BE: Backend + CKKSSubImpl<BE>,
impl<BE> CKKSSubOps<BE> for Module<BE>where
BE: Backend + CKKSSubImpl<BE>,
fn ckks_sub_tmp_bytes(&self) -> usize
fn ckks_sub_pt_vec_tmp_bytes(&self) -> usize
Source§fn ckks_sub_into<Dst, A, B>(
&self,
dst: &mut Dst,
a: &A,
b: &B,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Dst: GLWEToBackendMut<BE> + CKKSCtBounds + SetCKKSInfos,
A: GLWEToBackendRef<BE> + CKKSCtBounds,
B: GLWEToBackendRef<BE> + CKKSCtBounds,
fn ckks_sub_into<Dst, A, B>(
&self,
dst: &mut Dst,
a: &A,
b: &B,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Dst: GLWEToBackendMut<BE> + CKKSCtBounds + SetCKKSInfos,
A: GLWEToBackendRef<BE> + CKKSCtBounds,
B: GLWEToBackendRef<BE> + CKKSCtBounds,
dst = a - b. Read moreSource§fn ckks_sub_assign<Dst, A>(
&self,
dst: &mut Dst,
a: &A,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Dst: GLWEToBackendMut<BE> + CKKSCtBounds + SetCKKSInfos,
A: GLWEToBackendRef<BE> + CKKSCtBounds,
fn ckks_sub_assign<Dst, A>(
&self,
dst: &mut Dst,
a: &A,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Dst: GLWEToBackendMut<BE> + CKKSCtBounds + SetCKKSInfos,
A: GLWEToBackendRef<BE> + CKKSCtBounds,
dst -= a in-place.Source§fn ckks_sub_one_assign<Dst>(
&self,
dst: &mut Dst,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>
fn ckks_sub_one_assign<Dst>( &self, dst: &mut Dst, scratch: &mut ScratchArena<'_, BE>, ) -> Result<(), Error>
dst -= 1 in-place. Read moreSource§fn ckks_sub_pt_vec_into<Dst, A, P>(
&self,
dst: &mut Dst,
a: &A,
pt: &P,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Dst: GLWEToBackendMut<BE> + CKKSCtBounds + SetCKKSInfos,
A: GLWEToBackendRef<BE> + CKKSCtBounds,
P: GLWEToBackendRef<BE> + CKKSCtBounds,
fn ckks_sub_pt_vec_into<Dst, A, P>(
&self,
dst: &mut Dst,
a: &A,
pt: &P,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Dst: GLWEToBackendMut<BE> + CKKSCtBounds + SetCKKSInfos,
A: GLWEToBackendRef<BE> + CKKSCtBounds,
P: GLWEToBackendRef<BE> + CKKSCtBounds,
dst = a - pt where pt is a full plaintext polynomial.Source§fn ckks_sub_pt_vec_assign<Dst, P>(
&self,
dst: &mut Dst,
pt: &P,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Dst: GLWEToBackendMut<BE> + CKKSCtBounds + SetCKKSInfos,
P: GLWEToBackendRef<BE> + CKKSCtBounds,
fn ckks_sub_pt_vec_assign<Dst, P>(
&self,
dst: &mut Dst,
pt: &P,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Dst: GLWEToBackendMut<BE> + CKKSCtBounds + SetCKKSInfos,
P: GLWEToBackendRef<BE> + CKKSCtBounds,
dst -= pt in-place.fn ckks_sub_pt_const_tmp_bytes(&self) -> usize
Source§fn ckks_sub_pt_const_into<Dst, A, P>(
&self,
dst: &mut Dst,
a: &A,
dst_coeff: usize,
pt: &P,
pt_coeff: usize,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Dst: GLWEToBackendMut<BE> + CKKSCtBounds + SetCKKSInfos,
A: GLWEToBackendRef<BE> + CKKSCtBounds,
P: GLWEToBackendRef<BE> + CKKSCtBounds,
fn ckks_sub_pt_const_into<Dst, A, P>(
&self,
dst: &mut Dst,
a: &A,
dst_coeff: usize,
pt: &P,
pt_coeff: usize,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Dst: GLWEToBackendMut<BE> + CKKSCtBounds + SetCKKSInfos,
A: GLWEToBackendRef<BE> + CKKSCtBounds,
P: GLWEToBackendRef<BE> + CKKSCtBounds,
dst = a - pt[pt_coeff], subtracting one quantized constant
from a single coefficient slot of the ciphertext. Read moreSource§fn ckks_sub_pt_const_assign<Dst, P>(
&self,
dst: &mut Dst,
dst_coeff: usize,
pt: &P,
pt_coeff: usize,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Dst: GLWEToBackendMut<BE> + CKKSCtBounds + SetCKKSInfos,
P: GLWEToBackendRef<BE> + CKKSCtBounds,
fn ckks_sub_pt_const_assign<Dst, P>(
&self,
dst: &mut Dst,
dst_coeff: usize,
pt: &P,
pt_coeff: usize,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Dst: GLWEToBackendMut<BE> + CKKSCtBounds + SetCKKSInfos,
P: GLWEToBackendRef<BE> + CKKSCtBounds,
dst -= pt[pt_coeff] in-place. Read moreSource§impl<BE> CKKSSubOpsUnnormalized<BE> for Module<BE>where
BE: Backend + CKKSSubImpl<BE>,
impl<BE> CKKSSubOpsUnnormalized<BE> for Module<BE>where
BE: Backend + CKKSSubImpl<BE>,
fn ckks_sub_into_unnormalized<Dst, A, B>(
&self,
dst: &mut CKKSCiphertext<Dst, Unnormalized>,
a: &A,
b: &B,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Dst: Data,
CKKSCiphertext<Dst, Unnormalized>: GLWEToBackendMut<BE>,
A: GLWEToBackendRef<BE> + CKKSCtBounds,
B: GLWEToBackendRef<BE> + CKKSCtBounds,
fn ckks_sub_assign_unnormalized<Dst, A>(
&self,
dst: &mut CKKSCiphertext<Dst, Unnormalized>,
a: &A,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Dst: Data,
CKKSCiphertext<Dst, Unnormalized>: GLWEToBackendMut<BE>,
A: GLWEToBackendRef<BE> + CKKSInfos,
fn ckks_sub_pt_vec_into_unnormalized<Dst, A, P>(
&self,
dst: &mut CKKSCiphertext<Dst, Unnormalized>,
a: &A,
pt: &P,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Dst: Data,
CKKSCiphertext<Dst, Unnormalized>: GLWEToBackendMut<BE>,
A: GLWEToBackendRef<BE> + CKKSCtBounds,
P: GLWEToBackendRef<BE> + CKKSCtBounds,
fn ckks_sub_pt_vec_assign_unnormalized<Dst, P>(
&self,
dst: &mut CKKSCiphertext<Dst, Unnormalized>,
pt: &P,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Dst: Data,
CKKSCiphertext<Dst, Unnormalized>: GLWEToBackendMut<BE>,
P: GLWEToBackendRef<BE> + CKKSCtBounds,
fn ckks_sub_pt_const_into_unnormalized<Dst, A, P>(
&self,
dst: &mut CKKSCiphertext<Dst, Unnormalized>,
a: &A,
dst_coeff: usize,
pt: &P,
pt_coeff: usize,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Dst: Data,
CKKSCiphertext<Dst, Unnormalized>: GLWEToBackendMut<BE>,
A: GLWEToBackendRef<BE> + CKKSCtBounds,
P: GLWEToBackendRef<BE> + CKKSCtBounds,
fn ckks_sub_pt_const_assign_unnormalized<Dst, P>(
&self,
dst: &mut CKKSCiphertext<Dst, Unnormalized>,
dst_coeff: usize,
pt: &P,
pt_coeff: usize,
scratch: &mut ScratchArena<'_, BE>,
) -> Result<(), Error>where
Dst: Data,
CKKSCiphertext<Dst, Unnormalized>: GLWEToBackendMut<BE>,
P: GLWEToBackendRef<BE> + CKKSCtBounds,
Source§impl<BE> CnvPVecAlloc<BE> for Module<BE>where
BE: Backend,
impl<BE> CnvPVecAlloc<BE> for Module<BE>where
BE: Backend,
Source§impl<BE> CnvPVecBytesOf for Module<BE>where
BE: Backend,
impl<BE> CnvPVecBytesOf for Module<BE>where
BE: Backend,
Source§impl<BE> Convolution<BE> for Module<BE>where
BE: Backend + HalConvolutionImpl<BE>,
impl<BE> Convolution<BE> for Module<BE>where
BE: Backend + HalConvolutionImpl<BE>,
Source§fn cnv_prepare_left_tmp_bytes(&self, res_size: usize, a_size: usize) -> usize
fn cnv_prepare_left_tmp_bytes(&self, res_size: usize, a_size: usize) -> usize
cnv_prepare_left.Source§fn cnv_prepare_left(
&self,
res: &mut CnvPVecL<<BE as Backend>::BufMut<'_>, BE>,
a: &VecZnx<<BE as Backend>::BufRef<'_>>,
mask: i64,
scratch: &mut ScratchArena<'_, BE>,
)
fn cnv_prepare_left( &self, res: &mut CnvPVecL<<BE as Backend>::BufMut<'_>, BE>, a: &VecZnx<<BE as Backend>::BufRef<'_>>, mask: i64, scratch: &mut ScratchArena<'_, BE>, )
VecZnx as the left
operand of a bivariate convolution.Source§fn cnv_prepare_right_tmp_bytes(&self, res_size: usize, a_size: usize) -> usize
fn cnv_prepare_right_tmp_bytes(&self, res_size: usize, a_size: usize) -> usize
cnv_prepare_right.Source§fn cnv_prepare_right(
&self,
res: &mut CnvPVecR<<BE as Backend>::BufMut<'_>, BE>,
a: &VecZnx<<BE as Backend>::BufRef<'_>>,
mask: i64,
scratch: &mut ScratchArena<'_, BE>,
)
fn cnv_prepare_right( &self, res: &mut CnvPVecR<<BE as Backend>::BufMut<'_>, BE>, a: &VecZnx<<BE as Backend>::BufRef<'_>>, mask: i64, scratch: &mut ScratchArena<'_, BE>, )
VecZnx as the right
operand of a bivariate convolution.Source§fn cnv_apply_dft_tmp_bytes(
&self,
cnv_offset: usize,
res_size: usize,
a_size: usize,
b_size: usize,
) -> usize
fn cnv_apply_dft_tmp_bytes( &self, cnv_offset: usize, res_size: usize, a_size: usize, b_size: usize, ) -> usize
cnv_apply_dft.Source§fn cnv_by_const_apply_tmp_bytes(
&self,
res_size: usize,
cnv_offset: usize,
a_size: usize,
b_size: usize,
) -> usize
fn cnv_by_const_apply_tmp_bytes( &self, res_size: usize, cnv_offset: usize, a_size: usize, b_size: usize, ) -> usize
cnv_by_const_apply.Source§fn cnv_by_const_apply(
&self,
cnv_offset: usize,
res: &mut VecZnxBig<<BE as Backend>::BufMut<'_>, BE>,
res_col: usize,
a: &VecZnx<<BE as Backend>::BufRef<'_>>,
a_col: usize,
b: &VecZnx<<BE as Backend>::BufRef<'_>>,
b_col: usize,
b_coeff: usize,
scratch: &mut ScratchArena<'_, BE>,
)
fn cnv_by_const_apply( &self, cnv_offset: usize, res: &mut VecZnxBig<<BE as Backend>::BufMut<'_>, BE>, res_col: usize, a: &VecZnx<<BE as Backend>::BufRef<'_>>, a_col: usize, b: &VecZnx<<BE as Backend>::BufRef<'_>>, b_col: usize, b_coeff: usize, scratch: &mut ScratchArena<'_, BE>, )
Source§fn cnv_apply_dft(
&self,
cnv_offset: usize,
res: &mut VecZnxDft<<BE as Backend>::BufMut<'_>, BE>,
res_col: usize,
a: &CnvPVecL<<BE as Backend>::BufRef<'_>, BE>,
a_col: usize,
b: &CnvPVecR<<BE as Backend>::BufRef<'_>, BE>,
b_col: usize,
scratch: &mut ScratchArena<'_, BE>,
)
fn cnv_apply_dft( &self, cnv_offset: usize, res: &mut VecZnxDft<<BE as Backend>::BufMut<'_>, BE>, res_col: usize, a: &CnvPVecL<<BE as Backend>::BufRef<'_>, BE>, a_col: usize, b: &CnvPVecR<<BE as Backend>::BufRef<'_>, BE>, b_col: usize, scratch: &mut ScratchArena<'_, BE>, )
Source§fn cnv_pairwise_apply_dft_tmp_bytes(
&self,
cnv_offset: usize,
res_size: usize,
a_size: usize,
b_size: usize,
) -> usize
fn cnv_pairwise_apply_dft_tmp_bytes( &self, cnv_offset: usize, res_size: usize, a_size: usize, b_size: usize, ) -> usize
cnv_pairwise_apply_dft.Source§fn cnv_pairwise_apply_dft(
&self,
cnv_offset: usize,
res: &mut VecZnxDft<<BE as Backend>::BufMut<'_>, BE>,
res_col: usize,
a: &CnvPVecL<<BE as Backend>::BufRef<'_>, BE>,
b: &CnvPVecR<<BE as Backend>::BufRef<'_>, BE>,
i: usize,
j: usize,
scratch: &mut ScratchArena<'_, BE>,
)
fn cnv_pairwise_apply_dft( &self, cnv_offset: usize, res: &mut VecZnxDft<<BE as Backend>::BufMut<'_>, BE>, res_col: usize, a: &CnvPVecL<<BE as Backend>::BufRef<'_>, BE>, b: &CnvPVecR<<BE as Backend>::BufRef<'_>, BE>, i: usize, j: usize, scratch: &mut ScratchArena<'_, BE>, )
Source§fn cnv_prepare_self_tmp_bytes(&self, res_size: usize, a_size: usize) -> usize
fn cnv_prepare_self_tmp_bytes(&self, res_size: usize, a_size: usize) -> usize
cnv_prepare_self.Source§fn cnv_prepare_self(
&self,
left: &mut CnvPVecL<<BE as Backend>::BufMut<'_>, BE>,
right: &mut CnvPVecR<<BE as Backend>::BufMut<'_>, BE>,
a: &VecZnx<<BE as Backend>::BufRef<'_>>,
mask: i64,
scratch: &mut ScratchArena<'_, BE>,
)
fn cnv_prepare_self( &self, left: &mut CnvPVecL<<BE as Backend>::BufMut<'_>, BE>, right: &mut CnvPVecR<<BE as Backend>::BufMut<'_>, BE>, a: &VecZnx<<BE as Backend>::BufRef<'_>>, mask: i64, scratch: &mut ScratchArena<'_, BE>, )
Source§impl<BE> CyclotomicOrder for Module<BE>
impl<BE> CyclotomicOrder for Module<BE>
Source§fn cyclotomic_order(&self) -> i64
fn cyclotomic_order(&self) -> i64
2N, the order of the cyclotomic polynomial X^N + 1.Source§impl<BE: Backend> FFTModuleHandle<<BE as Backend>::ScalarPrep> for Module<BE>
impl<BE: Backend> FFTModuleHandle<<BE as Backend>::ScalarPrep> for Module<BE>
fn get_fft_table(&self) -> &ReimFFTTable<BE::ScalarPrep>
fn get_ifft_table(&self) -> &ReimIFFTTable<BE::ScalarPrep>
Source§impl<BE> GGLWECompressedEncryptSk<BE> for Module<BE>where
BE: Backend + EncryptionImpl<BE>,
impl<BE> GGLWECompressedEncryptSk<BE> for Module<BE>where
BE: Backend + EncryptionImpl<BE>,
fn gglwe_compressed_encrypt_sk_tmp_bytes<A>(&self, infos: &A) -> usizewhere
A: GGLWEInfos,
fn gglwe_compressed_encrypt_sk<R, P, S, E>(
&self,
res: &mut R,
pt: &P,
sk: &S,
seed: [u8; 32],
enc_infos: &E,
source_xe: &mut Source,
scratch: &mut ScratchArena<'_, BE>,
)where
R: GGLWECompressedToBackendMut<BE> + GGLWECompressedSeedMut,
P: ScalarZnxToBackendRef<BE>,
E: EncryptionInfos,
S: GLWESecretPreparedToBackendRef<BE>,
Source§impl<B> GGLWEDecompress for Module<B>
impl<B> GGLWEDecompress for Module<B>
Source§fn decompress_gglwe<R, O>(&self, res: &mut R, other: &O)where
R: GGLWEToBackendMut<Self::Backend> + GGLWEInfos,
O: GGLWECompressedToBackendRef<Self::Backend> + GGLWEInfos,
fn decompress_gglwe<R, O>(&self, res: &mut R, other: &O)where
R: GGLWEToBackendMut<Self::Backend> + GGLWEInfos,
O: GGLWECompressedToBackendRef<Self::Backend> + GGLWEInfos,
other into res.Source§impl<BE> GGLWEEncryptSk<BE> for Module<BE>where
BE: Backend + EncryptionImpl<BE>,
impl<BE> GGLWEEncryptSk<BE> for Module<BE>where
BE: Backend + EncryptionImpl<BE>,
fn gglwe_encrypt_sk_tmp_bytes<A>(&self, infos: &A) -> usizewhere
A: GGLWEInfos,
fn gglwe_encrypt_sk<R, P, S, E>(
&self,
res: &mut R,
pt: &P,
sk: &S,
enc_infos: &E,
source_xe: &mut Source,
source_xa: &mut Source,
scratch: &mut ScratchArena<'_, BE>,
)where
R: GGLWEToBackendMut<BE>,
P: ScalarZnxToBackendRef<BE>,
E: EncryptionInfos,
S: GLWESecretPreparedToBackendRef<BE>,
Source§impl<BE> GGLWEExternalProduct<BE> for Module<BE>
impl<BE> GGLWEExternalProduct<BE> for Module<BE>
fn gglwe_external_product_tmp_bytes<R, A, B>( &self, res_infos: &R, a_infos: &A, b_infos: &B, ) -> usize
fn gglwe_external_product<R, A, B>(
&self,
res: &mut R,
a: &A,
b: &B,
key_size: usize,
scratch: &mut ScratchArena<'_, BE>,
)where
R: GGLWEToBackendMut<BE> + GGLWEInfos,
A: GGLWEToBackendRef<BE> + GGLWEInfos,
B: GGSWPreparedToBackendRef<BE> + GGSWInfos,
fn gglwe_external_product_assign<R, A>( &self, res: &mut R, a: &A, key_size: usize, scratch: &mut ScratchArena<'_, BE>, )
Source§impl<BE> GGLWEKeyswitch<BE> for Module<BE>where
BE: Backend + GGLWEKeyswitchImpl<BE>,
impl<BE> GGLWEKeyswitch<BE> for Module<BE>where
BE: Backend + GGLWEKeyswitchImpl<BE>,
fn gglwe_keyswitch_tmp_bytes<R, A, K>( &self, res_infos: &R, a_infos: &A, key_infos: &K, ) -> usize
fn gglwe_keyswitch<R, A, B>(
&self,
res: &mut R,
a: &A,
b: &B,
key_size: usize,
scratch: &mut ScratchArena<'_, BE>,
)where
R: GGLWEToBackendMut<BE> + GGLWEInfos,
A: GGLWEToBackendRef<BE> + GGLWEInfos,
B: GGLWEPreparedToBackendRef<BE> + GGLWEInfos,
fn gglwe_keyswitch_assign<R, A>( &self, res: &mut R, a: &A, key_size: usize, scratch: &mut ScratchArena<'_, BE>, )
Source§impl<BE> GGLWENoise<BE> for Module<BE>where
BE: Backend + HostBackend,
Module<BE>: VecZnxAddScalarAssignBackend<BE> + VecZnxSubAssignBackend<BE> + GLWENoise<BE> + GLWEDecrypt<BE> + GLWENormalize<BE> + ModuleN + VecZnxDftBytesOf + VecZnxBigBytesOf + VecZnxBigFromSmallBackend<BE> + VecZnxDftApply<BE> + SvpApplyDftToDftAssign<BE> + VecZnxIdftApplyTmpA<BE> + VecZnxBigAddAssign<BE> + VecZnxBigNormalize<BE> + VecZnxBigNormalizeTmpBytes,
<BE as Backend>::BufRef<'a>: for<'a> HostDataRef,
<BE as Backend>::BufMut<'a>: for<'a> HostDataMut,
impl<BE> GGLWENoise<BE> for Module<BE>where
BE: Backend + HostBackend,
Module<BE>: VecZnxAddScalarAssignBackend<BE> + VecZnxSubAssignBackend<BE> + GLWENoise<BE> + GLWEDecrypt<BE> + GLWENormalize<BE> + ModuleN + VecZnxDftBytesOf + VecZnxBigBytesOf + VecZnxBigFromSmallBackend<BE> + VecZnxDftApply<BE> + SvpApplyDftToDftAssign<BE> + VecZnxIdftApplyTmpA<BE> + VecZnxBigAddAssign<BE> + VecZnxBigNormalize<BE> + VecZnxBigNormalizeTmpBytes,
<BE as Backend>::BufRef<'a>: for<'a> HostDataRef,
<BE as Backend>::BufMut<'a>: for<'a> HostDataMut,
fn gglwe_noise_tmp_bytes<A>(&self, infos: &A) -> usizewhere
A: GGLWEInfos,
fn gglwe_noise<R, S>(
&self,
res: &R,
res_row: usize,
res_col: usize,
pt_want: &ScalarZnx<&[u8]>,
sk_prepared: &S,
scratch: &mut ScratchArena<'_, BE>,
) -> Statswhere
R: GGLWEToBackendRef<BE> + GGLWEInfos,
S: GLWESecretPreparedToBackendRef<BE> + GLWEInfos,
BE: HostBackend,
<BE as Backend>::BufRef<'a>: for<'a> HostDataRef,
<BE as Backend>::BufMut<'a>: for<'a> HostDataMut,
Source§impl<BE> GGLWEPreparedFactory<BE> for Module<BE>where
BE: Backend,
Module<BE>: GetDegree + VmpPMatAlloc<BE> + VmpPMatBytesOf + VmpPrepare<BE> + VmpPrepareTmpBytes,
impl<BE> GGLWEPreparedFactory<BE> for Module<BE>where
BE: Backend,
Module<BE>: GetDegree + VmpPMatAlloc<BE> + VmpPMatBytesOf + VmpPrepare<BE> + VmpPrepareTmpBytes,
Source§fn gglwe_prepared_alloc(
&self,
base2k: Base2K,
k: TorusPrecision,
rank_in: Rank,
rank_out: Rank,
dnum: Dnum,
dsize: Dsize,
) -> GGLWEPrepared<<BE as Backend>::OwnedBuf, BE>
fn gglwe_prepared_alloc( &self, base2k: Base2K, k: TorusPrecision, rank_in: Rank, rank_out: Rank, dnum: Dnum, dsize: Dsize, ) -> GGLWEPrepared<<BE as Backend>::OwnedBuf, BE>
GGLWEPrepared with the given parameters. Read moreSource§fn gglwe_prepared_alloc_from_infos<A>(
&self,
infos: &A,
) -> GGLWEPrepared<<BE as Backend>::OwnedBuf, BE>where
A: GGLWEInfos,
fn gglwe_prepared_alloc_from_infos<A>(
&self,
infos: &A,
) -> GGLWEPrepared<<BE as Backend>::OwnedBuf, BE>where
A: GGLWEInfos,
GGLWEPrepared matching the parameters of infos.Source§fn gglwe_prepared_bytes_of(
&self,
base2k: Base2K,
k: TorusPrecision,
rank_in: Rank,
rank_out: Rank,
dnum: Dnum,
dsize: Dsize,
) -> usize
fn gglwe_prepared_bytes_of( &self, base2k: Base2K, k: TorusPrecision, rank_in: Rank, rank_out: Rank, dnum: Dnum, dsize: Dsize, ) -> usize
GGLWEPrepared with the given parameters.Source§fn gglwe_prepared_bytes_of_from_infos<A>(&self, infos: &A) -> usizewhere
A: GGLWEInfos,
fn gglwe_prepared_bytes_of_from_infos<A>(&self, infos: &A) -> usizewhere
A: GGLWEInfos,
GGLWEPrepared matching infos.Source§fn gglwe_prepare_tmp_bytes<A>(&self, infos: &A) -> usizewhere
A: GGLWEInfos,
fn gglwe_prepare_tmp_bytes<A>(&self, infos: &A) -> usizewhere
A: GGLWEInfos,
gglwe_prepare.Source§fn gglwe_prepare<R, O>(
&self,
res: &mut R,
other: &O,
scratch: &mut ScratchArena<'_, BE>,
)where
R: GGLWEPreparedToBackendMut<BE>,
O: GGLWEToBackendRef<BE>,
fn gglwe_prepare<R, O>(
&self,
res: &mut R,
other: &O,
scratch: &mut ScratchArena<'_, BE>,
)where
R: GGLWEPreparedToBackendMut<BE>,
O: GGLWEToBackendRef<BE>,
Source§impl<BE> GGLWEToGGSWKeyCompressedEncryptSk<BE> for Module<BE>where
BE: Backend + EncryptionImpl<BE>,
impl<BE> GGLWEToGGSWKeyCompressedEncryptSk<BE> for Module<BE>where
BE: Backend + EncryptionImpl<BE>,
fn gglwe_to_ggsw_key_compressed_encrypt_sk_tmp_bytes<A>(
&self,
infos: &A,
) -> usizewhere
A: GGLWEInfos,
fn gglwe_to_ggsw_key_compressed_encrypt_sk<R, S, E>(
&self,
res: &mut R,
sk: &S,
seed_xa: [u8; 32],
enc_infos: &E,
source_xe: &mut Source,
scratch: &mut ScratchArena<'_, BE>,
)where
R: GGLWEToGGSWKeyCompressedToBackendMut<BE> + GGLWEInfos,
E: EncryptionInfos,
S: GLWESecretToBackendRef<BE> + GetDistribution + GLWEInfos,
Source§impl<BE> GGLWEToGGSWKeyEncryptSk<BE> for Module<BE>where
BE: Backend + EncryptionImpl<BE>,
impl<BE> GGLWEToGGSWKeyEncryptSk<BE> for Module<BE>where
BE: Backend + EncryptionImpl<BE>,
fn gglwe_to_ggsw_key_encrypt_sk_tmp_bytes<A>(&self, infos: &A) -> usizewhere
A: GGLWEInfos,
fn gglwe_to_ggsw_key_encrypt_sk<R, S, E>(
&self,
res: &mut R,
sk: &S,
enc_infos: &E,
source_xe: &mut Source,
source_xa: &mut Source,
scratch: &mut ScratchArena<'_, BE>,
)where
R: GGLWEToGGSWKeyToBackendMut<BE>,
E: EncryptionInfos,
S: GLWESecretToBackendRef<BE> + GetDistribution + GLWEInfos,
Source§impl<BE> GGLWEToGGSWKeyPreparedFactory<BE> for Module<BE>
impl<BE> GGLWEToGGSWKeyPreparedFactory<BE> for Module<BE>
Source§fn gglwe_to_ggsw_key_prepared_alloc_from_infos<A>(
&self,
infos: &A,
) -> GGLWEToGGSWKeyPrepared<<BE as Backend>::OwnedBuf, BE>where
A: GGLWEInfos,
fn gglwe_to_ggsw_key_prepared_alloc_from_infos<A>(
&self,
infos: &A,
) -> GGLWEToGGSWKeyPrepared<<BE as Backend>::OwnedBuf, BE>where
A: GGLWEInfos,
Source§fn gglwe_to_ggsw_key_prepared_alloc(
&self,
base2k: Base2K,
k: TorusPrecision,
rank: Rank,
dnum: Dnum,
dsize: Dsize,
) -> GGLWEToGGSWKeyPrepared<<BE as Backend>::OwnedBuf, BE>
fn gglwe_to_ggsw_key_prepared_alloc( &self, base2k: Base2K, k: TorusPrecision, rank: Rank, dnum: Dnum, dsize: Dsize, ) -> GGLWEToGGSWKeyPrepared<<BE as Backend>::OwnedBuf, BE>
GGLWEToGGSWKeyPrepared with explicit parameters. Read moreSource§fn bytes_of_gglwe_to_ggsw_from_infos<A>(&self, infos: &A) -> usizewhere
A: GGLWEInfos,
fn bytes_of_gglwe_to_ggsw_from_infos<A>(&self, infos: &A) -> usizewhere
A: GGLWEInfos,
GGLWEToGGSWKeyPrepared matching infos.Source§fn bytes_of_gglwe_to_ggsw(
&self,
base2k: Base2K,
k: TorusPrecision,
rank: Rank,
dnum: Dnum,
dsize: Dsize,
) -> usize
fn bytes_of_gglwe_to_ggsw( &self, base2k: Base2K, k: TorusPrecision, rank: Rank, dnum: Dnum, dsize: Dsize, ) -> usize
GGLWEToGGSWKeyPrepared with explicit parameters.Source§fn gglwe_to_ggsw_key_prepare_tmp_bytes<A>(&self, infos: &A) -> usizewhere
A: GGLWEInfos,
fn gglwe_to_ggsw_key_prepare_tmp_bytes<A>(&self, infos: &A) -> usizewhere
A: GGLWEInfos,
gglwe_to_ggsw_key_prepare.Source§fn gglwe_to_ggsw_key_prepare<R, O>(
&self,
res: &mut R,
other: &O,
scratch: &mut ScratchArena<'_, BE>,
)where
R: GGLWEToGGSWKeyPreparedToBackendMut<BE>,
O: GGLWEToGGSWKeyToBackendRef<BE>,
fn gglwe_to_ggsw_key_prepare<R, O>(
&self,
res: &mut R,
other: &O,
scratch: &mut ScratchArena<'_, BE>,
)where
R: GGLWEToGGSWKeyPreparedToBackendMut<BE>,
O: GGLWEToGGSWKeyToBackendRef<BE>,
Source§impl<BE> GGSWAutomorphism<BE> for Module<BE>
impl<BE> GGSWAutomorphism<BE> for Module<BE>
fn ggsw_automorphism_tmp_bytes<R, A, K, T>( &self, res_infos: &R, a_infos: &A, key_infos: &K, tsk_infos: &T, ) -> usize
fn ggsw_automorphism<R, A, K, T>(
&self,
res: &mut R,
a: &A,
key: &K,
key_size: usize,
tsk: &T,
tsk_size: usize,
scratch: &mut ScratchArena<'_, BE>,
)where
R: GGSWToBackendMut<BE> + GGSWInfos,
A: GGSWToBackendRef<BE> + GGSWInfos,
K: GetGaloisElement + GGLWEPreparedToBackendRef<BE> + GGLWEInfos,
T: GGLWEToGGSWKeyPreparedToBackendRef<BE> + GGLWEInfos,
fn ggsw_automorphism_assign<R, K, T>(
&self,
res: &mut R,
key: &K,
key_size: usize,
tsk: &T,
tsk_size: usize,
scratch: &mut ScratchArena<'_, BE>,
)where
R: GGSWToBackendMut<BE> + GGSWInfos,
K: GetGaloisElement + GGLWEPreparedToBackendRef<BE> + GGLWEInfos,
T: GGLWEToGGSWKeyPreparedToBackendRef<BE> + GGLWEInfos,
Source§impl<BE> GGSWCompressedEncryptSk<BE> for Module<BE>where
BE: Backend + EncryptionImpl<BE>,
impl<BE> GGSWCompressedEncryptSk<BE> for Module<BE>where
BE: Backend + EncryptionImpl<BE>,
fn ggsw_compressed_encrypt_sk_tmp_bytes<A>(&self, infos: &A) -> usizewhere
A: GGSWInfos,
fn ggsw_compressed_encrypt_sk<R, P, S, E>(
&self,
res: &mut R,
pt: &P,
sk: &S,
seed_xa: [u8; 32],
enc_infos: &E,
source_xe: &mut Source,
scratch: &mut ScratchArena<'_, BE>,
)where
R: GGSWCompressedToBackendMut<BE> + GGSWCompressedSeedMut + GGSWInfos,
P: ScalarZnxToBackendRef<BE>,
E: EncryptionInfos,
S: GLWESecretPreparedToBackendRef<BE>,
Source§impl<B> GGSWDecompress for Module<B>
impl<B> GGSWDecompress for Module<B>
Source§fn decompress_ggsw<R, O>(&self, res: &mut R, other: &O)where
R: GGSWToBackendMut<Self::Backend> + GGSWInfos,
O: GGSWCompressedToBackendRef<Self::Backend> + GGSWInfos,
fn decompress_ggsw<R, O>(&self, res: &mut R, other: &O)where
R: GGSWToBackendMut<Self::Backend> + GGSWInfos,
O: GGSWCompressedToBackendRef<Self::Backend> + GGSWInfos,
other into res.Source§impl<BE> GGSWEncryptSk<BE> for Module<BE>where
BE: Backend + EncryptionImpl<BE>,
impl<BE> GGSWEncryptSk<BE> for Module<BE>where
BE: Backend + EncryptionImpl<BE>,
fn ggsw_encrypt_sk_tmp_bytes<A>(&self, infos: &A) -> usizewhere
A: GGSWInfos,
fn ggsw_encrypt_sk<R, P, S, E>(
&self,
res: &mut R,
pt: &P,
sk: &S,
enc_infos: &E,
source_xe: &mut Source,
source_xa: &mut Source,
scratch: &mut ScratchArena<'_, BE>,
)where
R: GGSWToBackendMut<BE> + GGSWInfos + GGSWAtViewMut<BE>,
P: ScalarZnxToBackendRef<BE> + ZnxInfos,
E: EncryptionInfos,
S: GLWESecretPreparedToBackendRef<BE> + LWEInfos + GLWEInfos,
Source§impl<BE> GGSWExpandRows<BE> for Module<BE>
impl<BE> GGSWExpandRows<BE> for Module<BE>
fn ggsw_expand_rows_tmp_bytes<R, A>(
&self,
res_infos: &R,
tsk_infos: &A,
) -> usizewhere
R: GGSWInfos,
A: GGLWEInfos,
fn ggsw_expand_row<R, T>( &self, res: &mut R, tsk: &T, tsk_size: usize, scratch: &mut ScratchArena<'_, BE>, )
Source§impl<BE> GGSWExternalProduct<BE> for Module<BE>
impl<BE> GGSWExternalProduct<BE> for Module<BE>
fn ggsw_external_product_tmp_bytes<R, A, B>( &self, res_infos: &R, a_infos: &A, b_infos: &B, ) -> usize
fn ggsw_external_product<R, A, B>(
&self,
res: &mut R,
a: &A,
b: &B,
key_size: usize,
scratch: &mut ScratchArena<'_, BE>,
)where
R: GGSWToBackendMut<BE> + GGSWAtViewMut<BE> + GGSWInfos,
A: GGSWToBackendRef<BE> + GGSWAtViewRef<BE> + GGSWInfos,
B: GGSWPreparedToBackendRef<BE> + GGSWInfos,
fn ggsw_external_product_assign<R, A>(
&self,
res: &mut R,
a: &A,
key_size: usize,
scratch: &mut ScratchArena<'_, BE>,
)where
R: GGSWToBackendMut<BE> + GGSWAtViewMut<BE> + GGSWInfos,
A: GGSWPreparedToBackendRef<BE> + GGSWInfos,
Source§impl<BE> GGSWFromGGLWE<BE> for Module<BE>
impl<BE> GGSWFromGGLWE<BE> for Module<BE>
fn ggsw_from_gglwe_tmp_bytes<R, A>(&self, res_infos: &R, tsk_infos: &A) -> usizewhere
R: GGSWInfos,
A: GGLWEInfos,
fn ggsw_from_gglwe<R, A, T>(
&self,
res: &mut R,
a: &A,
tsk: &T,
tsk_size: usize,
scratch: &mut ScratchArena<'_, BE>,
)where
R: GGSWToBackendMut<BE> + GGSWInfos,
A: GGLWEToBackendRef<BE> + GGLWEInfos,
T: GGLWEToGGSWKeyPreparedToBackendRef<BE> + GGLWEInfos,
Source§impl<BE> GGSWKeyswitch<BE> for Module<BE>where
BE: Backend + GGSWKeyswitchImpl<BE>,
impl<BE> GGSWKeyswitch<BE> for Module<BE>where
BE: Backend + GGSWKeyswitchImpl<BE>,
fn ggsw_keyswitch_tmp_bytes<R, A, K, T>( &self, res_infos: &R, a_infos: &A, key_infos: &K, tsk_infos: &T, ) -> usize
fn ggsw_keyswitch<R, A, K, T>(
&self,
res: &mut R,
a: &A,
key: &K,
key_size: usize,
tsk: &T,
tsk_size: usize,
scratch: &mut ScratchArena<'_, BE>,
)where
R: GGSWToBackendMut<BE> + GGSWInfos,
A: GGSWToBackendRef<BE> + GGSWInfos,
K: GGLWEPreparedToBackendRef<BE> + GGLWEInfos,
T: GGLWEToGGSWKeyPreparedToBackendRef<BE> + GGLWEInfos,
fn ggsw_keyswitch_assign<R, K, T>(
&self,
res: &mut R,
key: &K,
key_size: usize,
tsk: &T,
tsk_size: usize,
scratch: &mut ScratchArena<'_, BE>,
)where
R: GGSWToBackendMut<BE> + GGSWInfos,
K: GGLWEPreparedToBackendRef<BE> + GGLWEInfos,
T: GGLWEToGGSWKeyPreparedToBackendRef<BE> + GGLWEInfos,
Source§impl<BE> GGSWNoise<BE> for Module<BE>where
BE: Backend + HostBackend,
Module<BE>: VecZnxAddScalarAssignBackend<BE> + VecZnxDftApply<BE> + SvpApplyDftToDftAssign<BE> + VecZnxIdftApplyTmpA<BE> + VecZnxBigBytesOf + VecZnxDftBytesOf + VecZnxBigFromSmallBackend<BE> + VecZnxBigAddAssign<BE> + VecZnxBigNormalize<BE> + VecZnxBigNormalizeTmpBytes + VecZnxSubAssignBackend<BE> + GLWENoise<BE> + GLWEDecrypt<BE> + GLWENormalize<BE>,
<BE as Backend>::BufRef<'a>: for<'a> HostDataRef,
<BE as Backend>::BufMut<'a>: for<'a> HostDataMut,
impl<BE> GGSWNoise<BE> for Module<BE>where
BE: Backend + HostBackend,
Module<BE>: VecZnxAddScalarAssignBackend<BE> + VecZnxDftApply<BE> + SvpApplyDftToDftAssign<BE> + VecZnxIdftApplyTmpA<BE> + VecZnxBigBytesOf + VecZnxDftBytesOf + VecZnxBigFromSmallBackend<BE> + VecZnxBigAddAssign<BE> + VecZnxBigNormalize<BE> + VecZnxBigNormalizeTmpBytes + VecZnxSubAssignBackend<BE> + GLWENoise<BE> + GLWEDecrypt<BE> + GLWENormalize<BE>,
<BE as Backend>::BufRef<'a>: for<'a> HostDataRef,
<BE as Backend>::BufMut<'a>: for<'a> HostDataMut,
fn ggsw_noise_tmp_bytes<A>(&self, infos: &A) -> usizewhere
A: GGSWInfos,
fn ggsw_noise<R, S>(
&self,
res: &R,
res_row: usize,
res_col: usize,
pt_want: &ScalarZnx<&[u8]>,
sk_prepared: &S,
scratch: &mut ScratchArena<'_, BE>,
) -> Statswhere
R: GGSWToBackendRef<BE> + GGSWInfos,
S: GLWESecretPreparedToBackendRef<BE>,
BE: HostBackend,
<BE as Backend>::BufRef<'a>: for<'a> HostDataRef,
<BE as Backend>::BufMut<'a>: for<'a> HostDataMut,
Source§impl<B> GGSWPreparedFactory<B> for Module<B>where
B: Backend,
Module<B>: GetDegree + VmpPMatAlloc<B> + VmpPMatBytesOf + VmpPrepareTmpBytes + VmpPrepare<B> + VmpZero<B>,
impl<B> GGSWPreparedFactory<B> for Module<B>where
B: Backend,
Module<B>: GetDegree + VmpPMatAlloc<B> + VmpPMatBytesOf + VmpPrepareTmpBytes + VmpPrepare<B> + VmpZero<B>,
Source§fn ggsw_prepared_alloc(
&self,
base2k: Base2K,
k: TorusPrecision,
dnum: Dnum,
dsize: Dsize,
rank: Rank,
) -> GGSWPrepared<<B as Backend>::OwnedBuf, B>
fn ggsw_prepared_alloc( &self, base2k: Base2K, k: TorusPrecision, dnum: Dnum, dsize: Dsize, rank: Rank, ) -> GGSWPrepared<<B as Backend>::OwnedBuf, B>
fn ggsw_prepared_alloc_from_infos<A>(
&self,
infos: &A,
) -> GGSWPrepared<<B as Backend>::OwnedBuf, B>where
A: GGSWInfos,
fn ggsw_prepared_bytes_of( &self, base2k: Base2K, k: TorusPrecision, dnum: Dnum, dsize: Dsize, rank: Rank, ) -> usize
fn ggsw_prepared_bytes_of_from_infos<A>(&self, infos: &A) -> usizewhere
A: GGSWInfos,
fn ggsw_prepare_tmp_bytes<A>(&self, infos: &A) -> usizewhere
A: GGSWInfos,
fn ggsw_prepare<R, O>(
&self,
res: &mut R,
other: &O,
scratch: &mut ScratchArena<'_, B>,
)where
R: GGSWPreparedToBackendMut<B>,
O: GGSWToBackendRef<B>,
fn ggsw_zero<R>(&self, res: &mut R)where
R: GGSWPreparedToBackendMut<B>,
Source§impl<BE> GGSWRotate<BE> for Module<BE>
impl<BE> GGSWRotate<BE> for Module<BE>
fn ggsw_rotate_tmp_bytes(&self) -> usize
fn ggsw_rotate<R, A>(&self, k: i64, res: &mut R, a: &A)where
R: GGSWToBackendMut<BE> + GGSWAtViewMut<BE> + GGSWInfos,
A: GGSWToBackendRef<BE> + GGSWAtViewRef<BE> + GGSWInfos,
fn ggsw_rotate_assign<R>(
&self,
k: i64,
res: &mut R,
scratch: &mut ScratchArena<'_, BE>,
)where
R: GGSWToBackendMut<BE> + GGSWInfos,
Source§impl<BE> GLWEAdd<BE> for Module<BE>
impl<BE> GLWEAdd<BE> for Module<BE>
fn glwe_add_into<R, A, B>(&self, res: &mut R, a: &A, b: &B)
fn glwe_add_assign<R, A>(&self, res: &mut R, a: &A)where
R: GLWEToBackendMut<BE>,
A: GLWEToBackendRef<BE>,
Source§impl<BE> GLWEAutomorphism<BE> for Module<BE>where
BE: Backend + AutomorphismImpl<BE>,
impl<BE> GLWEAutomorphism<BE> for Module<BE>where
BE: Backend + AutomorphismImpl<BE>,
fn glwe_automorphism_tmp_bytes<R, A, K>( &self, res_infos: &R, a_infos: &A, key_infos: &K, ) -> usize
fn glwe_automorphism<R, A, K>(
&self,
res: &mut R,
a: &A,
key: &K,
key_size: usize,
scratch: &mut ScratchArena<'_, BE>,
)where
R: GLWEToBackendMut<BE> + GLWEInfos,
A: GLWEToBackendRef<BE> + GLWEInfos,
K: GetGaloisElement + GGLWEPreparedToBackendRef<BE> + GGLWEInfos,
fn glwe_automorphism_assign<R, K>(
&self,
res: &mut R,
key: &K,
key_size: usize,
scratch: &mut ScratchArena<'_, BE>,
)where
R: GLWEToBackendMut<BE> + GLWEInfos,
K: GetGaloisElement + GGLWEPreparedToBackendRef<BE> + GGLWEInfos,
fn glwe_automorphism_add<R, A, K>(
&self,
res: &mut R,
a: &A,
key: &K,
key_size: usize,
scratch: &mut ScratchArena<'_, BE>,
)where
R: GLWEToBackendMut<BE> + GLWEInfos,
A: GLWEToBackendRef<BE> + GLWEInfos,
K: GetGaloisElement + GGLWEPreparedToBackendRef<BE> + GGLWEInfos,
fn glwe_automorphism_add_assign<R, K>(
&self,
res: &mut R,
key: &K,
key_size: usize,
scratch: &mut ScratchArena<'_, BE>,
)where
R: GLWEToBackendMut<BE> + GLWEInfos,
K: GetGaloisElement + GGLWEPreparedToBackendRef<BE> + GGLWEInfos,
fn glwe_automorphism_sub<R, A, K>(
&self,
res: &mut R,
a: &A,
key: &K,
key_size: usize,
scratch: &mut ScratchArena<'_, BE>,
)where
R: GLWEToBackendMut<BE> + GLWEInfos,
A: GLWEToBackendRef<BE> + GLWEInfos,
K: GetGaloisElement + GGLWEPreparedToBackendRef<BE> + GGLWEInfos,
fn glwe_automorphism_sub_negate<R, A, K>(
&self,
res: &mut R,
a: &A,
key: &K,
key_size: usize,
scratch: &mut ScratchArena<'_, BE>,
)where
R: GLWEToBackendMut<BE> + GLWEInfos,
A: GLWEToBackendRef<BE> + GLWEInfos,
K: GetGaloisElement + GGLWEPreparedToBackendRef<BE> + GGLWEInfos,
fn glwe_automorphism_sub_assign<R, K>(
&self,
res: &mut R,
key: &K,
key_size: usize,
scratch: &mut ScratchArena<'_, BE>,
)where
R: GLWEToBackendMut<BE> + GLWEInfos,
K: GetGaloisElement + GGLWEPreparedToBackendRef<BE> + GGLWEInfos,
fn glwe_automorphism_sub_negate_assign<R, K>(
&self,
res: &mut R,
key: &K,
key_size: usize,
scratch: &mut ScratchArena<'_, BE>,
)where
R: GLWEToBackendMut<BE> + GLWEInfos,
K: GetGaloisElement + GGLWEPreparedToBackendRef<BE> + GGLWEInfos,
Source§impl<BE> GLWEAutomorphismKeyAutomorphism<BE> for Module<BE>where
BE: Backend + AutomorphismImpl<BE>,
impl<BE> GLWEAutomorphismKeyAutomorphism<BE> for Module<BE>where
BE: Backend + AutomorphismImpl<BE>,
fn glwe_automorphism_key_automorphism_tmp_bytes<R, A, K>( &self, res_infos: &R, a_infos: &A, key_infos: &K, ) -> usize
fn glwe_automorphism_key_automorphism<R, A, K>(
&self,
res: &mut R,
a: &A,
key: &K,
key_size: usize,
scratch: &mut ScratchArena<'_, BE>,
)where
R: GGLWEToBackendMut<BE> + SetGaloisElement + GGLWEInfos,
A: GGLWEToBackendRef<BE> + GetGaloisElement + GGLWEInfos,
K: GGLWEPreparedToBackendRef<BE> + GetGaloisElement + GGLWEInfos,
fn glwe_automorphism_key_automorphism_assign<R, K>(
&self,
res: &mut R,
key: &K,
key_size: usize,
scratch: &mut ScratchArena<'_, BE>,
)where
R: GGLWEToBackendMut<BE> + SetGaloisElement + GetGaloisElement + GGLWEInfos,
K: GGLWEPreparedToBackendRef<BE> + GetGaloisElement + GGLWEInfos,
Source§impl<BE> GLWEAutomorphismKeyCompressedEncryptSk<BE> for Module<BE>where
BE: Backend + EncryptionImpl<BE>,
impl<BE> GLWEAutomorphismKeyCompressedEncryptSk<BE> for Module<BE>where
BE: Backend + EncryptionImpl<BE>,
fn glwe_automorphism_key_compressed_encrypt_sk_tmp_bytes<A>(
&self,
infos: &A,
) -> usizewhere
A: GGLWEInfos,
fn glwe_automorphism_key_compressed_encrypt_sk<R, S, E>(
&self,
res: &mut R,
p: i64,
sk: &S,
seed_xa: [u8; 32],
enc_infos: &E,
source_xe: &mut Source,
scratch: &mut ScratchArena<'_, BE>,
)where
R: GGLWECompressedToBackendMut<BE> + GGLWECompressedSeedMut + SetGaloisElement + GGLWEInfos,
E: EncryptionInfos,
S: GLWESecretToBackendRef<BE> + GLWEInfos,
Source§impl<B> GLWEAutomorphismKeyDecompress for Module<B>
impl<B> GLWEAutomorphismKeyDecompress for Module<B>
fn decompress_automorphism_key<R, O>(&self, res: &mut R, other: &O)where
R: GGLWEToBackendMut<Self::Backend> + GGLWEInfos + SetGaloisElement,
O: GGLWECompressedToBackendRef<Self::Backend> + GGLWEInfos + GetGaloisElement,
Source§impl<BE> GLWEAutomorphismKeyEncryptPk<BE> for Module<BE>where
BE: Backend + EncryptionImpl<BE>,
impl<BE> GLWEAutomorphismKeyEncryptPk<BE> for Module<BE>where
BE: Backend + EncryptionImpl<BE>,
fn glwe_automorphism_key_encrypt_pk_tmp_bytes<A>(&self, infos: &A) -> usizewhere
A: GGLWEInfos,
Source§impl<BE> GLWEAutomorphismKeyEncryptSk<BE> for Module<BE>where
BE: Backend + EncryptionImpl<BE>,
impl<BE> GLWEAutomorphismKeyEncryptSk<BE> for Module<BE>where
BE: Backend + EncryptionImpl<BE>,
fn glwe_automorphism_key_encrypt_sk_tmp_bytes<A>(&self, infos: &A) -> usizewhere
A: GGLWEInfos,
fn glwe_automorphism_key_encrypt_sk<R, S, E>(
&self,
res: &mut R,
p: i64,
sk: &S,
enc_infos: &E,
source_xe: &mut Source,
source_xa: &mut Source,
scratch: &mut ScratchArena<'_, BE>,
)where
R: GGLWEToBackendMut<BE> + SetGaloisElement + GGLWEInfos,
E: EncryptionInfos,
S: GLWESecretToBackendRef<BE> + GLWEInfos,
Source§impl<B> GLWEAutomorphismKeyPreparedFactory<B> for Module<B>
impl<B> GLWEAutomorphismKeyPreparedFactory<B> for Module<B>
fn glwe_automorphism_key_prepared_alloc( &self, base2k: Base2K, k: TorusPrecision, rank: Rank, dnum: Dnum, dsize: Dsize, ) -> GLWEAutomorphismKeyPrepared<<B as Backend>::OwnedBuf, B>
fn glwe_automorphism_key_prepared_alloc_from_infos<A>(
&self,
infos: &A,
) -> GLWEAutomorphismKeyPrepared<<B as Backend>::OwnedBuf, B>where
A: GGLWEInfos,
fn glwe_automorphism_key_prepared_bytes_of( &self, base2k: Base2K, k: TorusPrecision, rank: Rank, dnum: Dnum, dsize: Dsize, ) -> usize
fn glwe_automorphism_key_prepared_bytes_of_from_infos<A>(
&self,
infos: &A,
) -> usizewhere
A: GGLWEInfos,
fn glwe_automorphism_key_prepare_tmp_bytes<A>(&self, infos: &A) -> usizewhere
A: GGLWEInfos,
fn glwe_automorphism_key_prepare<R, O>(
&self,
res: &mut R,
other: &O,
scratch: &mut ScratchArena<'_, B>,
)where
R: GGLWEPreparedToBackendMut<B> + SetGaloisElement,
O: GGLWEToBackendRef<B> + GetGaloisElement,
Source§impl<BE> GLWECompressedEncryptSk<BE> for Module<BE>where
BE: Backend + EncryptionImpl<BE>,
impl<BE> GLWECompressedEncryptSk<BE> for Module<BE>where
BE: Backend + EncryptionImpl<BE>,
fn glwe_compressed_encrypt_sk_tmp_bytes<A>(&self, infos: &A) -> usizewhere
A: GLWEInfos,
fn glwe_compressed_encrypt_sk<R, P, S, E>(
&self,
res: &mut R,
pt: &P,
sk: &S,
seed_xa: [u8; 32],
enc_infos: &E,
source_xe: &mut Source,
scratch: &mut ScratchArena<'_, BE>,
)where
R: GLWECompressedToBackendMut<BE> + GLWECompressedSeedMut,
P: GLWEToBackendRef<BE>,
E: EncryptionInfos,
S: GLWESecretPreparedToBackendRef<BE>,
Source§impl<BE> GLWECopy<BE> for Module<BE>
impl<BE> GLWECopy<BE> for Module<BE>
fn glwe_copy<R, A>(&self, res: &mut R, a: &A)where
R: GLWEToBackendMut<BE>,
A: GLWEToBackendRef<BE>,
Source§impl<B> GLWEDecompress for Module<B>
impl<B> GLWEDecompress for Module<B>
type Backend = B
Source§fn decompress_glwe<R, O>(&self, res: &mut R, other: &O)where
R: GLWEToBackendMut<Self::Backend> + SetLWEInfos,
O: GLWECompressedToBackendRef<Self::Backend> + GLWEInfos,
fn decompress_glwe<R, O>(&self, res: &mut R, other: &O)where
R: GLWEToBackendMut<Self::Backend> + SetLWEInfos,
O: GLWECompressedToBackendRef<Self::Backend> + GLWEInfos,
other into res by copying the body and regenerating the mask.Source§impl<BE> GLWEDecrypt<BE> for Module<BE>
impl<BE> GLWEDecrypt<BE> for Module<BE>
fn glwe_decrypt_tmp_bytes<A>(&self, infos: &A) -> usizewhere
A: GLWEInfos,
fn glwe_decrypt<R, P, S>(
&self,
res: &R,
pt: &mut P,
sk: &S,
scratch: &mut ScratchArena<'_, BE>,
)where
R: GLWEToBackendRef<BE> + GLWEInfos,
P: GLWEToBackendMut<BE> + GLWEInfos + SetLWEInfos,
S: GLWESecretPreparedToBackendRef<BE> + GLWEInfos,
Source§impl<BE> GLWEEncryptPk<BE> for Module<BE>where
BE: Backend + EncryptionImpl<BE>,
impl<BE> GLWEEncryptPk<BE> for Module<BE>where
BE: Backend + EncryptionImpl<BE>,
fn glwe_encrypt_pk_tmp_bytes<A>(&self, infos: &A) -> usizewhere
A: GLWEInfos,
fn glwe_encrypt_pk<R, P, K, E>(
&self,
res: &mut R,
pt: &P,
pk: &K,
enc_infos: &E,
source_xu: &mut Source,
source_xe: &mut Source,
scratch: &mut ScratchArena<'_, BE>,
)where
R: GLWEToBackendMut<BE> + GLWEInfos,
P: GLWEToBackendRef<BE> + GLWEInfos,
E: EncryptionInfos,
K: GLWEPreparedToBackendRef<BE> + GetDistribution + GLWEInfos,
fn glwe_encrypt_zero_pk<R, K, E>(
&self,
res: &mut R,
pk: &K,
enc_infos: &E,
source_xu: &mut Source,
source_xe: &mut Source,
scratch: &mut ScratchArena<'_, BE>,
)where
R: GLWEToBackendMut<BE> + GLWEInfos,
E: EncryptionInfos,
K: GLWEPreparedToBackendRef<BE> + GetDistribution + GLWEInfos,
Source§impl<BE> GLWEEncryptSk<BE> for Module<BE>where
BE: Backend + EncryptionImpl<BE>,
impl<BE> GLWEEncryptSk<BE> for Module<BE>where
BE: Backend + EncryptionImpl<BE>,
fn glwe_encrypt_sk_tmp_bytes<A>(&self, infos: &A) -> usizewhere
A: GLWEInfos,
fn glwe_encrypt_sk<R, P, S, E>(
&self,
res: &mut R,
pt: &P,
sk: &S,
enc_infos: &E,
source_xe: &mut Source,
source_xa: &mut Source,
scratch: &mut ScratchArena<'_, BE>,
)where
R: GLWEToBackendMut<BE>,
P: GLWEToBackendRef<BE>,
E: EncryptionInfos,
S: GLWESecretPreparedToBackendRef<BE>,
fn glwe_encrypt_zero_sk<R, E, S>( &self, res: &mut R, sk: &S, enc_infos: &E, source_xe: &mut Source, source_xa: &mut Source, scratch: &mut ScratchArena<'_, BE>, )
Source§impl<BE> GLWEExpandLWE<BE> for Module<BE>
impl<BE> GLWEExpandLWE<BE> for Module<BE>
fn glwe_expand_lwe_tmp_bytes<R, A>(&self, lwe_infos: &R, a_infos: &A) -> usize
fn glwe_expand_lwe<R, A>( &self, res: &mut [R], a: &A, scratch: &mut ScratchArena<'_, BE>, )
Source§impl<BE> GLWEExternalProduct<BE> for Module<BE>where
BE: Backend + GLWEExternalProductImpl<BE>,
impl<BE> GLWEExternalProduct<BE> for Module<BE>where
BE: Backend + GLWEExternalProductImpl<BE>,
fn glwe_external_product_tmp_bytes<R, A, B>( &self, res_infos: &R, a_infos: &A, b_infos: &B, ) -> usize
fn glwe_external_product_assign<R, D>( &self, res: &mut R, rhs: &D, key_size: usize, scratch: &mut ScratchArena<'_, BE>, )
fn glwe_external_product<R, A, D>(
&self,
res: &mut R,
lhs: &A,
rhs: &D,
key_size: usize,
scratch: &mut ScratchArena<'_, BE>,
)where
R: GLWEToBackendMut<BE> + GLWEInfos,
A: GLWEToBackendRef<BE> + GLWEInfos,
D: GGSWPreparedToBackendRef<BE> + GGSWInfos,
Source§impl<BE> GLWEExternalProductInternal<BE> for Module<BE>where
BE: Backend,
Module<BE>: ModuleN + VecZnxDftBytesOf + VmpApplyDftToDftTmpBytes + VecZnxNormalizeTmpBytes + VecZnxDftApply<BE> + VmpApplyDftToDft<BE> + VecZnxDftAddAssign<BE> + VecZnxBigBytesOf + VecZnxIdftApply<BE> + VecZnxIdftApplyTmpBytes + VecZnxBigNormalize<BE> + VecZnxNormalize<BE> + VecZnxDftZero<BE>,
impl<BE> GLWEExternalProductInternal<BE> for Module<BE>where
BE: Backend,
Module<BE>: ModuleN + VecZnxDftBytesOf + VmpApplyDftToDftTmpBytes + VecZnxNormalizeTmpBytes + VecZnxDftApply<BE> + VmpApplyDftToDft<BE> + VecZnxDftAddAssign<BE> + VecZnxBigBytesOf + VecZnxIdftApply<BE> + VecZnxIdftApplyTmpBytes + VecZnxBigNormalize<BE> + VecZnxNormalize<BE> + VecZnxDftZero<BE>,
fn glwe_external_product_internal_tmp_bytes<R, A, B>( &self, _res_infos: &R, a_infos: &A, b_infos: &B, ) -> usize
fn glwe_external_product_dft<'r, A, G>(
&self,
res_dft: &mut VecZnxDft<<BE as Backend>::BufMut<'r>, BE>,
a: &A,
ggsw: &G,
_key_size: usize,
scratch: &mut ScratchArena<'_, BE>,
)where
A: GLWEToBackendRef<BE>,
G: GGSWPreparedToBackendRef<BE>,
Source§impl<BE> GLWEFromLWE<BE> for Module<BE>
impl<BE> GLWEFromLWE<BE> for Module<BE>
fn glwe_from_lwe_tmp_bytes<R, A, K>( &self, glwe_infos: &R, lwe_infos: &A, key_infos: &K, ) -> usize
fn glwe_from_lwe<R, A, K>(
&self,
res: &mut R,
lwe: &A,
ksk: &K,
key_size: usize,
scratch: &mut ScratchArena<'_, BE>,
)where
R: GLWEToBackendMut<BE> + GLWEInfos,
A: LWEToBackendRef<BE> + LWEInfos,
K: GGLWEPreparedToBackendRef<BE> + GGLWEInfos,
Source§impl<BE> GLWEKeyswitch<BE> for Module<BE>where
BE: Backend + GLWEKeyswitchImpl<BE>,
impl<BE> GLWEKeyswitch<BE> for Module<BE>where
BE: Backend + GLWEKeyswitchImpl<BE>,
fn glwe_keyswitch_tmp_bytes<R, A, B>( &self, res_infos: &R, a_infos: &A, key_infos: &B, ) -> usize
fn glwe_keyswitch<R, A, K>(
&self,
res: &mut R,
a: &A,
key: &K,
key_size: usize,
scratch: &mut ScratchArena<'_, BE>,
)where
R: GLWEToBackendMut<BE> + GLWEInfos,
A: GLWEToBackendRef<BE> + GLWEInfos,
K: GGLWEPreparedToBackendRef<BE> + GGLWEInfos,
fn glwe_keyswitch_assign<R, K>( &self, res: &mut R, key: &K, key_size: usize, scratch: &mut ScratchArena<'_, BE>, )
Source§impl<BE> GLWEMulConst<BE> for Module<BE>
impl<BE> GLWEMulConst<BE> for Module<BE>
fn glwe_mul_const_tmp_bytes<R, A, B>(&self, res: &R, a: &A, b: &B) -> usize
fn glwe_mul_const<R, A, B>(
&self,
cnv_offset: usize,
res: &mut R,
a: &A,
b: &B,
b_coeff: usize,
scratch: &mut ScratchArena<'_, BE>,
)where
R: GLWEToBackendMut<BE> + GLWEInfos,
A: GLWEToBackendRef<BE> + GLWEInfos,
B: GLWEToBackendRef<BE> + GLWEInfos,
fn glwe_mul_const_assign<R, B>( &self, cnv_offset: usize, res: &mut R, b: &B, b_coeff: usize, scratch: &mut ScratchArena<'_, BE>, )
Source§impl<BE> GLWEMulPlain<BE> for Module<BE>
impl<BE> GLWEMulPlain<BE> for Module<BE>
fn glwe_mul_plain_tmp_bytes<R, A, B>(&self, res: &R, a: &A, b: &B) -> usize
fn glwe_mul_plain<R, A, B>(
&self,
cnv_offset: usize,
res: &mut R,
a: &A,
a_effective_k: usize,
b: &B,
b_effective_k: usize,
scratch: &mut ScratchArena<'_, BE>,
)where
R: GLWEToBackendMut<BE> + GLWEInfos,
A: GLWEToBackendRef<BE> + GLWEInfos,
B: GLWEToBackendRef<BE> + GLWEInfos,
fn glwe_mul_plain_assign<R, A>( &self, cnv_offset: usize, res: &mut R, res_effective_k: usize, a: &A, a_effective_k: usize, scratch: &mut ScratchArena<'_, BE>, )
Source§impl<BE> GLWEMulXpMinusOne<BE> for Module<BE>
impl<BE> GLWEMulXpMinusOne<BE> for Module<BE>
fn glwe_mul_xp_minus_one<R, A>(&self, k: i64, res: &mut R, a: &A)where
R: GLWEToBackendMut<BE>,
A: GLWEToBackendRef<BE>,
fn glwe_mul_xp_minus_one_assign<R>(
&self,
k: i64,
res: &mut R,
scratch: &mut ScratchArena<'_, BE>,
)where
R: GLWEToBackendMut<BE>,
Source§impl<BE> GLWENegate<BE> for Module<BE>
impl<BE> GLWENegate<BE> for Module<BE>
fn glwe_negate<R, A>(&self, res: &mut R, a: &A)where
R: GLWEToBackendMut<BE>,
A: GLWEToBackendRef<BE>,
fn glwe_negate_assign<R>(&self, res: &mut R)where
R: GLWEToBackendMut<BE>,
Source§impl<BE> GLWENoise<BE> for Module<BE>where
BE: Backend + HostBackend,
Module<BE>: GLWEDecrypt<BE> + GLWENormalize<BE> + VecZnxSubAssignBackend<BE> + ModuleN + VecZnxDftBytesOf + VecZnxBigBytesOf + VecZnxBigFromSmallBackend<BE> + VecZnxDftApply<BE> + SvpApplyDftToDftAssign<BE> + VecZnxIdftApplyTmpA<BE> + VecZnxBigAddAssign<BE> + VecZnxBigNormalize<BE> + VecZnxBigNormalizeTmpBytes,
<BE as Backend>::BufMut<'a>: for<'a> HostDataMut,
impl<BE> GLWENoise<BE> for Module<BE>where
BE: Backend + HostBackend,
Module<BE>: GLWEDecrypt<BE> + GLWENormalize<BE> + VecZnxSubAssignBackend<BE> + ModuleN + VecZnxDftBytesOf + VecZnxBigBytesOf + VecZnxBigFromSmallBackend<BE> + VecZnxDftApply<BE> + SvpApplyDftToDftAssign<BE> + VecZnxIdftApplyTmpA<BE> + VecZnxBigAddAssign<BE> + VecZnxBigNormalize<BE> + VecZnxBigNormalizeTmpBytes,
<BE as Backend>::BufMut<'a>: for<'a> HostDataMut,
fn glwe_noise_tmp_bytes<A>(&self, infos: &A) -> usizewhere
A: GLWEInfos,
fn glwe_noise<R, P, S>(
&self,
res: &R,
pt_want: &P,
sk_prepared: &S,
scratch: &mut ScratchArena<'_, BE>,
) -> Statswhere
R: GLWEToBackendRef<BE> + GLWEInfos,
P: GLWEToBackendRef<BE>,
S: GLWESecretPreparedToBackendRef<BE> + GLWEInfos,
BE: HostBackend,
<BE as Backend>::BufMut<'a>: for<'a> HostDataMut,
Source§impl<BE> GLWENormalize<BE> for Module<BE>
impl<BE> GLWENormalize<BE> for Module<BE>
fn glwe_normalize_tmp_bytes(&self) -> usize
fn glwe_normalize<R, A>(
&self,
res: &mut R,
a: &A,
scratch: &mut ScratchArena<'_, BE>,
)where
R: GLWEToBackendMut<BE>,
A: GLWEToBackendRef<BE>,
fn glwe_normalize_assign<R>(
&self,
res: &mut R,
scratch: &mut ScratchArena<'_, BE>,
)where
R: GLWEToBackendMut<BE>,
Source§impl<BE> GLWEPacking<BE> for Module<BE>
impl<BE> GLWEPacking<BE> for Module<BE>
fn glwe_pack_galois_elements(&self) -> Vec<i64>
fn glwe_pack_tmp_bytes<R, K>(&self, res: &R, key: &K) -> usizewhere
R: GLWEInfos,
K: GGLWEInfos,
fn glwe_pack<R, A, K, H>(
&self,
res: &mut R,
a: HashMap<usize, &mut A>,
log_gap_out: usize,
keys: &H,
key_size: usize,
scratch: &mut ScratchArena<'_, BE>,
)where
R: GLWEToBackendMut<BE> + GLWEInfos,
A: GLWEToBackendMut<BE> + GLWEInfos,
K: GGLWEPreparedToBackendRef<BE> + GetGaloisElement + GGLWEInfos,
H: GLWEAutomorphismKeyHelper<K, BE>,
Source§impl<B> GLWEPreparedFactory<B> for Module<B>
impl<B> GLWEPreparedFactory<B> for Module<B>
Source§fn glwe_prepared_alloc(
&self,
base2k: Base2K,
k: TorusPrecision,
rank: Rank,
) -> GLWEPrepared<<B as Backend>::OwnedBuf, B>
fn glwe_prepared_alloc( &self, base2k: Base2K, k: TorusPrecision, rank: Rank, ) -> GLWEPrepared<<B as Backend>::OwnedBuf, B>
fn glwe_prepared_alloc_from_infos<A>(
&self,
infos: &A,
) -> GLWEPrepared<<B as Backend>::OwnedBuf, B>where
A: GLWEInfos,
fn glwe_prepared_bytes_of( &self, base2k: Base2K, k: TorusPrecision, rank: Rank, ) -> usize
fn glwe_prepared_bytes_of_from_infos<A>(&self, infos: &A) -> usizewhere
A: GLWEInfos,
fn glwe_prepare<R, O>(&self, res: &mut R, other: &O)
Source§impl<BE> GLWEPublicKeyGenerate<BE> for Module<BE>where
BE: Backend + EncryptionImpl<BE>,
impl<BE> GLWEPublicKeyGenerate<BE> for Module<BE>where
BE: Backend + EncryptionImpl<BE>,
fn glwe_public_key_generate<R, S, E>(
&self,
res: &mut R,
sk: &S,
enc_infos: &E,
source_xe: &mut Source,
source_xa: &mut Source,
)where
R: GLWEToBackendMut<BE> + GetDistributionMut + GLWEInfos,
E: EncryptionInfos,
S: GLWESecretPreparedToBackendRef<BE> + GetDistribution,
Source§impl<B> GLWEPublicKeyPreparedFactory<B> for Module<B>
impl<B> GLWEPublicKeyPreparedFactory<B> for Module<B>
fn glwe_public_key_prepared_alloc( &self, base2k: Base2K, k: TorusPrecision, rank: Rank, ) -> GLWEPublicKeyPrepared<<B as Backend>::OwnedBuf, B>
fn glwe_public_key_prepared_alloc_from_infos<A>(
&self,
infos: &A,
) -> GLWEPublicKeyPrepared<<B as Backend>::OwnedBuf, B>where
A: GLWEInfos,
fn glwe_public_key_prepared_bytes_of( &self, base2k: Base2K, k: TorusPrecision, rank: Rank, ) -> usize
fn glwe_public_key_prepared_bytes_of_from_infos<A>(&self, infos: &A) -> usizewhere
A: GLWEInfos,
fn glwe_public_key_prepare<R, O>(&self, res: &mut R, other: &O)where
R: GLWEPreparedToBackendMut<B> + GetDistributionMut,
O: GLWEToBackendRef<B> + GetDistribution + GLWEInfos,
Source§impl<BE> GLWERotate<BE> for Module<BE>
impl<BE> GLWERotate<BE> for Module<BE>
fn glwe_rotate_tmp_bytes(&self) -> usize
fn glwe_rotate<R, A>(&self, k: i64, res: &mut R, a: &A)where
R: GLWEToBackendMut<BE>,
A: GLWEToBackendRef<BE>,
fn glwe_rotate_assign<R>(
&self,
k: i64,
res: &mut R,
scratch: &mut ScratchArena<'_, BE>,
)where
R: GLWEToBackendMut<BE>,
Source§impl<B> GLWESecretPreparedFactory<B> for Module<B>
impl<B> GLWESecretPreparedFactory<B> for Module<B>
fn glwe_secret_prepared_alloc( &self, rank: Rank, ) -> GLWESecretPrepared<<B as Backend>::OwnedBuf, B>
fn glwe_secret_prepared_alloc_from_infos<A>(
&self,
infos: &A,
) -> GLWESecretPrepared<<B as Backend>::OwnedBuf, B>where
A: GLWEInfos,
fn glwe_secret_prepared_bytes_of(&self, rank: Rank) -> usize
fn glwe_secret_prepared_bytes_of_from_infos<A>(&self, infos: &A) -> usizewhere
A: GLWEInfos,
fn glwe_secret_prepare<R, O>(&self, res: &mut R, other: &O)where
R: GLWESecretPreparedToBackendMut<B> + GetDistributionMut,
O: GLWESecretToBackendRef<B> + GetDistribution,
Source§impl<BE> GLWESecretTensorFactory<BE> for Module<BE>where
BE: Backend,
Module<BE>: ModuleN + GLWESecretPreparedFactory<BE> + VecZnxBigNormalize<BE> + VecZnxDftApply<BE> + SvpApplyDftToDft<BE> + VecZnxIdftApplyTmpA<BE> + VecZnxDftBytesOf + VecZnxBigBytesOf + VecZnxBigNormalizeTmpBytes,
impl<BE> GLWESecretTensorFactory<BE> for Module<BE>where
BE: Backend,
Module<BE>: ModuleN + GLWESecretPreparedFactory<BE> + VecZnxBigNormalize<BE> + VecZnxDftApply<BE> + SvpApplyDftToDft<BE> + VecZnxIdftApplyTmpA<BE> + VecZnxDftBytesOf + VecZnxBigBytesOf + VecZnxBigNormalizeTmpBytes,
fn glwe_secret_tensor_prepare_tmp_bytes(&self, rank: Rank) -> usize
fn glwe_secret_tensor_prepare<R, A>(
&self,
res: &mut R,
a: &A,
scratch: &mut ScratchArena<'_, BE>,
)where
R: GLWESecretToBackendMut<BE> + GetDistributionMut + GLWEInfos,
A: GLWESecretToBackendRef<BE> + GetDistribution + GLWEInfos,
Source§impl<B> GLWESecretTensorPreparedFactory<B> for Module<B>
impl<B> GLWESecretTensorPreparedFactory<B> for Module<B>
fn glwe_secret_tensor_prepared_alloc( &self, rank: Rank, ) -> GLWESecretTensorPrepared<<B as Backend>::OwnedBuf, B>
fn glwe_secret_tensor_prepared_alloc_from_infos<A>(
&self,
infos: &A,
) -> GLWESecretTensorPrepared<<B as Backend>::OwnedBuf, B>where
A: GLWEInfos,
fn glwe_secret_tensor_prepared_bytes_of(&self, rank: Rank) -> usize
fn glwe_secret_tensor_prepared_bytes_of_from_infos<A>(&self, infos: &A) -> usizewhere
A: GLWEInfos,
fn glwe_secret_tensor_prepared_prepare<R, O>(&self, res: &mut R, other: &O)where
R: GLWESecretPreparedToBackendMut<B> + GetDistributionMut,
O: GLWESecretToBackendRef<B> + GetDistribution,
Source§impl<BE> GLWEShift<BE> for Module<BE>
impl<BE> GLWEShift<BE> for Module<BE>
fn glwe_shift_tmp_bytes(&self) -> usize
fn glwe_rsh<R>(&self, k: usize, res: &mut R, scratch: &mut ScratchArena<'_, BE>)where
R: GLWEToBackendMut<BE>,
fn glwe_lsh_assign<R>(
&self,
res: &mut R,
k: usize,
scratch: &mut ScratchArena<'_, BE>,
)where
R: GLWEToBackendMut<BE>,
fn glwe_lsh<R, A>(
&self,
res: &mut R,
a: &A,
k: usize,
scratch: &mut ScratchArena<'_, BE>,
)where
R: GLWEToBackendMut<BE>,
A: GLWEToBackendRef<BE>,
fn glwe_lsh_add<R, A>(
&self,
res: &mut R,
a: &A,
k: usize,
scratch: &mut ScratchArena<'_, BE>,
)where
R: GLWEToBackendMut<BE>,
A: GLWEToBackendRef<BE>,
fn glwe_lsh_sub<R, A>(
&self,
res: &mut R,
a: &A,
k: usize,
scratch: &mut ScratchArena<'_, BE>,
)where
R: GLWEToBackendMut<BE>,
A: GLWEToBackendRef<BE>,
Source§impl<BE> GLWESub<BE> for Module<BE>
impl<BE> GLWESub<BE> for Module<BE>
fn glwe_sub<R, A, B>(&self, res: &mut R, a: &A, b: &B)
fn glwe_sub_assign<R, A>(&self, res: &mut R, a: &A)where
R: GLWEToBackendMut<BE>,
A: GLWEToBackendRef<BE>,
fn glwe_sub_negate_assign<R, A>(&self, res: &mut R, a: &A)where
R: GLWEToBackendMut<BE>,
A: GLWEToBackendRef<BE>,
Source§impl<BE> GLWESwitchingKeyCompressedEncryptSk<BE> for Module<BE>where
BE: Backend + EncryptionImpl<BE>,
impl<BE> GLWESwitchingKeyCompressedEncryptSk<BE> for Module<BE>where
BE: Backend + EncryptionImpl<BE>,
fn glwe_switching_key_compressed_encrypt_sk_tmp_bytes<A>(
&self,
infos: &A,
) -> usizewhere
A: GGLWEInfos,
fn glwe_switching_key_compressed_encrypt_sk<R, S1, S2, E>(
&self,
res: &mut R,
sk_in: &S1,
sk_out: &S2,
seed_xa: [u8; 32],
enc_infos: &E,
source_xe: &mut Source,
scratch: &mut ScratchArena<'_, BE>,
)where
R: GGLWECompressedToBackendMut<BE> + GGLWECompressedSeedMut + GLWESwitchingKeyDegreesMut + GGLWEInfos,
E: EncryptionInfos,
S1: GLWESecretToBackendRef<BE> + GLWEInfos,
S2: GLWESecretToBackendRef<BE> + GetDistribution + GLWEInfos,
Source§impl<B> GLWESwitchingKeyDecompress for Module<B>
impl<B> GLWESwitchingKeyDecompress for Module<B>
Source§fn decompress_glwe_switching_key<R, O>(&self, res: &mut R, other: &O)where
R: GGLWEToBackendMut<Self::Backend> + GGLWEInfos + GLWESwitchingKeyDegreesMut,
O: GGLWECompressedToBackendRef<Self::Backend> + GGLWEInfos + GLWESwitchingKeyDegrees,
fn decompress_glwe_switching_key<R, O>(&self, res: &mut R, other: &O)where
R: GGLWEToBackendMut<Self::Backend> + GGLWEInfos + GLWESwitchingKeyDegreesMut,
O: GGLWECompressedToBackendRef<Self::Backend> + GGLWEInfos + GLWESwitchingKeyDegrees,
other into res, copying degree metadata.Source§impl<BE> GLWESwitchingKeyEncryptPk<BE> for Module<BE>where
BE: Backend + EncryptionImpl<BE>,
impl<BE> GLWESwitchingKeyEncryptPk<BE> for Module<BE>where
BE: Backend + EncryptionImpl<BE>,
fn glwe_switching_key_encrypt_pk_tmp_bytes<A>(&self, infos: &A) -> usizewhere
A: GGLWEInfos,
Source§impl<BE> GLWESwitchingKeyEncryptSk<BE> for Module<BE>where
BE: Backend + EncryptionImpl<BE>,
impl<BE> GLWESwitchingKeyEncryptSk<BE> for Module<BE>where
BE: Backend + EncryptionImpl<BE>,
fn glwe_switching_key_encrypt_sk_tmp_bytes<A>(&self, infos: &A) -> usizewhere
A: GGLWEInfos,
fn glwe_switching_key_encrypt_sk<R, S1, S2, E>(
&self,
res: &mut R,
sk_in: &S1,
sk_out: &S2,
enc_infos: &E,
source_xe: &mut Source,
source_xa: &mut Source,
scratch: &mut ScratchArena<'_, BE>,
)where
R: GGLWEToBackendMut<BE> + GLWESwitchingKeyDegreesMut + GGLWEInfos,
E: EncryptionInfos,
S1: GLWESecretToBackendRef<BE> + GLWEInfos,
S2: GLWESecretToBackendRef<BE> + GetDistribution + GLWEInfos,
Source§impl<B> GLWESwitchingKeyPreparedFactory<B> for Module<B>
impl<B> GLWESwitchingKeyPreparedFactory<B> for Module<B>
fn glwe_switching_key_prepared_alloc( &self, base2k: Base2K, k: TorusPrecision, rank_in: Rank, rank_out: Rank, dnum: Dnum, dsize: Dsize, ) -> GLWESwitchingKeyPrepared<<B as Backend>::OwnedBuf, B>
fn glwe_switching_key_prepared_alloc_from_infos<A>(
&self,
infos: &A,
) -> GLWESwitchingKeyPrepared<<B as Backend>::OwnedBuf, B>where
A: GGLWEInfos,
fn bytes_of_glwe_key_prepared( &self, base2k: Base2K, k: TorusPrecision, rank_in: Rank, rank_out: Rank, dnum: Dnum, dsize: Dsize, ) -> usize
fn glwe_switching_key_prepared_bytes_of_from_infos<A>(&self, infos: &A) -> usizewhere
A: GGLWEInfos,
fn glwe_switching_key_prepare_tmp_bytes<A>(&self, infos: &A) -> usizewhere
A: GGLWEInfos,
fn glwe_switching_key_prepare<R, O>(
&self,
res: &mut R,
other: &O,
scratch: &mut ScratchArena<'_, B>,
)where
R: GGLWEPreparedToBackendMut<B> + GLWESwitchingKeyDegreesMut,
O: GGLWEToBackendRef<B> + GLWESwitchingKeyDegrees,
Source§impl<BE> GLWETensorDecrypt<BE> for Module<BE>
impl<BE> GLWETensorDecrypt<BE> for Module<BE>
fn glwe_tensor_decrypt_tmp_bytes<A>(&self, infos: &A) -> usizewhere
A: GLWEInfos,
fn glwe_tensor_decrypt<R, P, S0, S1>(
&self,
res: &GLWETensor<R>,
pt: &mut GLWEPlaintext<P>,
sk: &GLWESecretPrepared<S0, BE>,
sk_tensor: &GLWESecretTensorPrepared<S1, BE>,
scratch: &mut ScratchArena<'_, BE>,
)where
R: Data,
P: Data,
S0: Data,
S1: Data,
GLWETensor<R>: GLWEToBackendRef<BE> + GLWEInfos,
GLWEPlaintext<P>: GLWEToBackendMut<BE> + GLWEInfos + SetLWEInfos,
GLWESecretPrepared<S0, BE>: GLWESecretPreparedToBackendRef<BE> + GLWEInfos,
GLWESecretTensorPrepared<S1, BE>: GLWESecretTensorPreparedToBackendRef<BE> + GLWEInfos,
Source§impl<BE> GLWETensorKeyCompressedEncryptSk<BE> for Module<BE>where
BE: Backend + EncryptionImpl<BE>,
impl<BE> GLWETensorKeyCompressedEncryptSk<BE> for Module<BE>where
BE: Backend + EncryptionImpl<BE>,
fn glwe_tensor_key_compressed_encrypt_sk_tmp_bytes<A>(&self, infos: &A) -> usizewhere
A: GGLWEInfos,
fn glwe_tensor_key_compressed_encrypt_sk<R, S, E>(
&self,
res: &mut R,
sk: &S,
seed_xa: [u8; 32],
enc_infos: &E,
source_xe: &mut Source,
scratch: &mut ScratchArena<'_, BE>,
)where
R: GGLWECompressedToBackendMut<BE> + GGLWEInfos + GGLWECompressedSeedMut,
E: EncryptionInfos,
S: GLWESecretToBackendRef<BE> + GetDistribution + GLWEInfos,
Source§impl<B> GLWETensorKeyDecompress for Module<B>
impl<B> GLWETensorKeyDecompress for Module<B>
fn decompress_tensor_key<R, O>(&self, res: &mut R, other: &O)where
R: GGLWEToBackendMut<Self::Backend> + GGLWEInfos,
O: GGLWECompressedToBackendRef<Self::Backend> + GGLWEInfos,
Source§impl<BE> GLWETensorKeyEncryptSk<BE> for Module<BE>where
BE: Backend + EncryptionImpl<BE>,
impl<BE> GLWETensorKeyEncryptSk<BE> for Module<BE>where
BE: Backend + EncryptionImpl<BE>,
fn glwe_tensor_key_encrypt_sk_tmp_bytes<A>(&self, infos: &A) -> usizewhere
A: GGLWEInfos,
fn glwe_tensor_key_encrypt_sk<R, S, E>(
&self,
res: &mut R,
sk: &S,
enc_infos: &E,
source_xe: &mut Source,
source_xa: &mut Source,
scratch: &mut ScratchArena<'_, BE>,
)where
R: GGLWEToBackendMut<BE> + GGLWEInfos,
E: EncryptionInfos,
S: GLWESecretToBackendRef<BE> + GetDistribution + GLWEInfos,
Source§impl<B> GLWETensorKeyPreparedFactory<B> for Module<B>
impl<B> GLWETensorKeyPreparedFactory<B> for Module<B>
fn alloc_tensor_key_prepared( &self, base2k: Base2K, k: TorusPrecision, dnum: Dnum, dsize: Dsize, rank: Rank, ) -> GLWETensorKeyPrepared<<B as Backend>::OwnedBuf, B>
fn alloc_tensor_key_prepared_from_infos<A>(
&self,
infos: &A,
) -> GLWETensorKeyPrepared<<B as Backend>::OwnedBuf, B>where
A: GGLWEInfos,
fn bytes_of_tensor_key_prepared( &self, base2k: Base2K, k: TorusPrecision, rank: Rank, dnum: Dnum, dsize: Dsize, ) -> usize
fn bytes_of_tensor_key_prepared_from_infos<A>(&self, infos: &A) -> usizewhere
A: GGLWEInfos,
fn prepare_tensor_key_tmp_bytes<A>(&self, infos: &A) -> usizewhere
A: GGLWEInfos,
fn prepare_tensor_key<R, O>(
&self,
res: &mut R,
other: &O,
scratch: &mut ScratchArena<'_, B>,
)where
R: GGLWEPreparedToBackendMut<B>,
O: GGLWEToBackendRef<B>,
Source§impl<BE> GLWETensoring<BE> for Module<BE>
impl<BE> GLWETensoring<BE> for Module<BE>
fn glwe_tensor_apply_tmp_bytes<R, A, B>(&self, res: &R, a: &A, b: &B) -> usize
fn glwe_tensor_square_apply_tmp_bytes<R, A>(&self, res: &R, a: &A) -> usize
fn glwe_tensor_apply<R, A, B>(
&self,
cnv_offset: usize,
res: &mut R,
a: &A,
a_effective_k: usize,
b: &B,
b_effective_k: usize,
scratch: &mut ScratchArena<'_, BE>,
)where
R: GLWEToBackendMut<BE> + GLWEInfos,
A: GLWEToBackendRef<BE> + GLWEInfos,
B: GLWEToBackendRef<BE> + GLWEInfos,
fn glwe_tensor_square_apply<R, A>( &self, cnv_offset: usize, res: &mut R, a: &A, a_effective_k: usize, scratch: &mut ScratchArena<'_, BE>, )
fn glwe_tensor_relinearize<R, A, T>(
&self,
res: &mut R,
a: &A,
tsk: &T,
tsk_size: usize,
scratch: &mut ScratchArena<'_, BE>,
)where
R: GLWEToBackendMut<BE> + GLWEInfos,
A: GLWEToBackendRef<BE> + GLWEInfos,
T: GGLWEInfos + GLWETensorKeyPreparedToBackendRef<BE>,
fn glwe_tensor_relinearize_tmp_bytes<R, A, B>( &self, res: &R, a: &A, tsk: &B, ) -> usize
Source§impl<B> GLWEToLWEKeyPreparedFactory<B> for Module<B>
impl<B> GLWEToLWEKeyPreparedFactory<B> for Module<B>
fn glwe_to_lwe_key_prepared_alloc( &self, base2k: Base2K, k: TorusPrecision, rank_in: Rank, dnum: Dnum, ) -> GLWEToLWEKeyPrepared<<B as Backend>::OwnedBuf, B>
fn glwe_to_lwe_key_prepared_alloc_from_infos<A>(
&self,
infos: &A,
) -> GLWEToLWEKeyPrepared<<B as Backend>::OwnedBuf, B>where
A: GGLWEInfos,
fn glwe_to_lwe_key_prepared_bytes_of( &self, base2k: Base2K, k: TorusPrecision, rank_in: Rank, dnum: Dnum, ) -> usize
fn glwe_to_lwe_key_prepared_bytes_of_from_infos<A>(&self, infos: &A) -> usizewhere
A: GGLWEInfos,
fn glwe_to_lwe_key_prepare_tmp_bytes<A>(&self, infos: &A) -> usizewhere
A: GGLWEInfos,
fn glwe_to_lwe_key_prepare<R, O>(
&self,
res: &mut R,
other: &O,
scratch: &mut ScratchArena<'_, B>,
)where
R: GGLWEPreparedToBackendMut<B> + GLWESwitchingKeyDegreesMut,
O: GGLWEToBackendRef<B> + GLWESwitchingKeyDegrees,
Source§impl<B> GLWEToLWESwitchingKeyDecompress for Module<B>
impl<B> GLWEToLWESwitchingKeyDecompress for Module<B>
fn decompress_glwe_to_lwe_key<R, O>(&self, res: &mut R, other: &O)where
R: GGLWEToBackendMut<Self::Backend> + GGLWEInfos + GLWESwitchingKeyDegreesMut,
O: GGLWECompressedToBackendRef<Self::Backend> + GGLWEInfos + GLWESwitchingKeyDegrees,
Source§impl<BE> GLWEToLWESwitchingKeyEncryptSk<BE> for Module<BE>where
BE: Backend + EncryptionImpl<BE>,
impl<BE> GLWEToLWESwitchingKeyEncryptSk<BE> for Module<BE>where
BE: Backend + EncryptionImpl<BE>,
fn glwe_to_lwe_key_encrypt_sk_tmp_bytes<A>(&self, infos: &A) -> usizewhere
A: GGLWEInfos,
fn glwe_to_lwe_key_encrypt_sk<R, S1, S2, E>(
&self,
res: &mut R,
sk_lwe: &S1,
sk_glwe: &S2,
enc_infos: &E,
source_xe: &mut Source,
source_xa: &mut Source,
scratch: &mut ScratchArena<'_, BE>,
)where
S1: LWESecretToBackendRef<BE>,
S2: GLWESecretToBackendRef<BE>,
E: EncryptionInfos,
R: GGLWEToBackendMut<BE> + GGLWEInfos,
Source§impl<BE> GLWETrace<BE> for Module<BE>
impl<BE> GLWETrace<BE> for Module<BE>
fn glwe_trace_galois_elements(&self) -> Vec<i64>
fn glwe_trace_tmp_bytes<R, A, K>( &self, res_infos: &R, a_infos: &A, key_infos: &K, ) -> usize
fn glwe_trace<R, A, K, H>(
&self,
res: &mut R,
skip: usize,
a: &A,
keys: &H,
key_size: usize,
scratch: &mut ScratchArena<'_, BE>,
)where
R: GLWEToBackendMut<BE> + GLWEInfos,
A: GLWEToBackendRef<BE> + GLWEInfos,
K: GGLWEPreparedToBackendRef<BE> + GetGaloisElement + GGLWEInfos,
H: GLWEAutomorphismKeyHelper<K, BE>,
fn glwe_trace_assign<R, K, H>(
&self,
res: &mut R,
skip: usize,
keys: &H,
key_size: usize,
scratch: &mut ScratchArena<'_, BE>,
)where
R: GLWEToBackendMut<BE> + GLWEInfos,
K: GGLWEPreparedToBackendRef<BE> + GetGaloisElement + GGLWEInfos,
H: GLWEAutomorphismKeyHelper<K, BE>,
Source§impl<BE> GLWEZero<BE> for Module<BE>
impl<BE> GLWEZero<BE> for Module<BE>
fn glwe_zero<R>(&self, res: &mut R)where
R: GLWEToBackendMut<BE>,
Source§impl<BE> GaloisElement for Module<BE>
impl<BE> GaloisElement for Module<BE>
Source§fn galois_element(&self, generator: i64) -> i64
fn galois_element(&self, generator: i64) -> i64
GALOISGENERATOR^|generator| * sign(generator) mod 2N.Source§impl<B> GetDegree for Module<B>where
B: Backend,
impl<B> GetDegree for Module<B>where
B: Backend,
Source§fn ring_degree(&self) -> Degree
fn ring_degree(&self) -> Degree
Degree.Source§impl<B> LWEDecompress for Module<B>
impl<B> LWEDecompress for Module<B>
Source§impl<BE> LWEDecrypt<BE> for Module<BE>
impl<BE> LWEDecrypt<BE> for Module<BE>
fn lwe_decrypt<R, P, S>(
&self,
res: &R,
pt: &mut P,
sk: &S,
scratch: &mut ScratchArena<'_, BE>,
)where
R: LWEToBackendRef<BE> + LWEInfos,
P: LWEPlaintextToBackendMut<BE> + SetLWEInfos + LWEInfos,
S: LWESecretToBackendRef<BE> + LWEInfos,
fn lwe_decrypt_tmp_bytes<A>(&self, infos: &A) -> usizewhere
A: LWEInfos,
Source§impl<BE> LWEEncryptSk<BE> for Module<BE>where
BE: Backend + EncryptionImpl<BE>,
impl<BE> LWEEncryptSk<BE> for Module<BE>where
BE: Backend + EncryptionImpl<BE>,
fn lwe_encrypt_sk_tmp_bytes<A>(&self, infos: &A) -> usizewhere
A: LWEInfos,
fn lwe_encrypt_sk<R, P, S, E>(
&self,
res: &mut R,
pt: &P,
sk: &S,
enc_infos: &E,
source_xe: &mut Source,
source_xa: &mut Source,
scratch: &mut ScratchArena<'_, BE>,
)where
R: LWEToBackendMut<BE> + LWEInfos,
P: LWEPlaintextToBackendRef<BE>,
S: LWESecretToBackendRef<BE>,
E: EncryptionInfos,
Source§impl<BE> LWEFromGLWE<BE> for Module<BE>
impl<BE> LWEFromGLWE<BE> for Module<BE>
fn lwe_from_glwe_tmp_bytes<R, A, K>( &self, lwe_infos: &R, glwe_infos: &A, key_infos: &K, ) -> usize
fn lwe_from_glwe<R, A, K>(
&self,
res: &mut R,
a: &A,
a_idx: usize,
key: &K,
key_size: usize,
scratch: &mut ScratchArena<'_, BE>,
)where
R: LWEToBackendMut<BE> + LWEInfos,
A: GLWEToBackendRef<BE> + GLWEInfos,
K: GGLWEPreparedToBackendRef<BE> + GGLWEInfos,
Source§impl<BE> LWEKeyswitch<BE> for Module<BE>where
BE: Backend + LWEKeyswitchImpl<BE>,
impl<BE> LWEKeyswitch<BE> for Module<BE>where
BE: Backend + LWEKeyswitchImpl<BE>,
fn lwe_keyswitch_tmp_bytes<R, A, K>( &self, res_infos: &R, a_infos: &A, key_infos: &K, ) -> usize
fn lwe_keyswitch<R, A, K>(
&self,
res: &mut R,
a: &A,
ksk: &K,
key_size: usize,
scratch: &mut ScratchArena<'_, BE>,
)where
R: LWEToBackendMut<BE> + LWEInfos,
A: LWEToBackendRef<BE> + LWEInfos,
K: GGLWEPreparedToBackendRef<BE> + GGLWEInfos,
Source§impl<BE> LWESampleExtract<BE> for Module<BE>
impl<BE> LWESampleExtract<BE> for Module<BE>
fn lwe_sample_extract<R, A>(&self, res: &mut R, a: &A)
Source§impl<B> LWESwitchingKeyDecompress for Module<B>
impl<B> LWESwitchingKeyDecompress for Module<B>
fn decompress_lwe_switching_key<R, O>(&self, res: &mut R, other: &O)where
R: GGLWEToBackendMut<Self::Backend> + GGLWEInfos + GLWESwitchingKeyDegreesMut,
O: GGLWECompressedToBackendRef<Self::Backend> + GGLWEInfos + GLWESwitchingKeyDegrees,
Source§impl<BE> LWESwitchingKeyEncrypt<BE> for Module<BE>where
BE: Backend + EncryptionImpl<BE>,
impl<BE> LWESwitchingKeyEncrypt<BE> for Module<BE>where
BE: Backend + EncryptionImpl<BE>,
fn lwe_switching_key_encrypt_sk_tmp_bytes<A>(&self, infos: &A) -> usizewhere
A: GGLWEInfos,
fn lwe_switching_key_encrypt_sk<R, S1, S2, E>(
&self,
res: &mut R,
sk_lwe_in: &S1,
sk_lwe_out: &S2,
enc_infos: &E,
source_xe: &mut Source,
source_xa: &mut Source,
scratch: &mut ScratchArena<'_, BE>,
)where
R: GGLWEToBackendMut<BE> + GLWESwitchingKeyDegreesMut + GGLWEInfos,
E: EncryptionInfos,
S1: LWESecretToBackendRef<BE>,
S2: LWESecretToBackendRef<BE>,
Source§impl<B> LWESwitchingKeyPreparedFactory<B> for Module<B>
impl<B> LWESwitchingKeyPreparedFactory<B> for Module<B>
fn lwe_switching_key_prepared_alloc( &self, base2k: Base2K, k: TorusPrecision, dnum: Dnum, ) -> LWESwitchingKeyPrepared<<B as Backend>::OwnedBuf, B>
fn lwe_switching_key_prepared_alloc_from_infos<A>(
&self,
infos: &A,
) -> LWESwitchingKeyPrepared<<B as Backend>::OwnedBuf, B>where
A: GGLWEInfos,
fn lwe_switching_key_prepared_bytes_of( &self, base2k: Base2K, k: TorusPrecision, dnum: Dnum, ) -> usize
fn lwe_switching_key_prepared_bytes_of_from_infos<A>(&self, infos: &A) -> usizewhere
A: GGLWEInfos,
fn lwe_switching_key_prepare_tmp_bytes<A>(&self, infos: &A) -> usizewhere
A: GGLWEInfos,
fn lwe_switching_key_prepare<R, O>(
&self,
res: &mut R,
other: &O,
scratch: &mut ScratchArena<'_, B>,
)where
R: GGLWEPreparedToBackendMut<B> + GLWESwitchingKeyDegreesMut,
O: GGLWEToBackendRef<B> + GLWESwitchingKeyDegrees,
Source§impl<B> LWEToGLWEKeyDecompress for Module<B>
impl<B> LWEToGLWEKeyDecompress for Module<B>
fn decompress_lwe_to_glwe_key<R, O>(&self, res: &mut R, other: &O)where
R: GGLWEToBackendMut<Self::Backend> + GGLWEInfos + GLWESwitchingKeyDegreesMut,
O: GGLWECompressedToBackendRef<Self::Backend> + GGLWEInfos + GLWESwitchingKeyDegrees,
Source§impl<B> LWEToGLWEKeyPreparedFactory<B> for Module<B>
impl<B> LWEToGLWEKeyPreparedFactory<B> for Module<B>
fn lwe_to_glwe_key_prepared_alloc( &self, base2k: Base2K, k: TorusPrecision, rank_out: Rank, dnum: Dnum, ) -> LWEToGLWEKeyPrepared<<B as Backend>::OwnedBuf, B>
fn lwe_to_glwe_key_prepared_alloc_from_infos<A>(
&self,
infos: &A,
) -> LWEToGLWEKeyPrepared<<B as Backend>::OwnedBuf, B>where
A: GGLWEInfos,
fn lwe_to_glwe_key_prepared_bytes_of( &self, base2k: Base2K, k: TorusPrecision, rank_out: Rank, dnum: Dnum, ) -> usize
fn lwe_to_glwe_key_prepared_bytes_of_from_infos<A>(&self, infos: &A) -> usizewhere
A: GGLWEInfos,
fn lwe_to_glwe_key_prepare_tmp_bytes<A>(&self, infos: &A) -> usizewhere
A: GGLWEInfos,
fn lwe_to_glwe_key_prepare<R, O>(
&self,
res: &mut R,
other: &O,
scratch: &mut ScratchArena<'_, B>,
)where
R: GGLWEPreparedToBackendMut<B> + GLWESwitchingKeyDegreesMut,
O: GGLWEToBackendRef<B> + GLWESwitchingKeyDegrees,
Source§impl<BE> LWEToGLWESwitchingKeyEncryptSk<BE> for Module<BE>where
BE: Backend + EncryptionImpl<BE>,
impl<BE> LWEToGLWESwitchingKeyEncryptSk<BE> for Module<BE>where
BE: Backend + EncryptionImpl<BE>,
fn lwe_to_glwe_key_encrypt_sk_tmp_bytes<A>(&self, infos: &A) -> usizewhere
A: GGLWEInfos,
fn lwe_to_glwe_key_encrypt_sk<R, S1, S2, E>(
&self,
res: &mut R,
sk_lwe: &S1,
sk_glwe: &S2,
enc_infos: &E,
source_xe: &mut Source,
source_xa: &mut Source,
scratch: &mut ScratchArena<'_, BE>,
)where
S1: LWESecretToBackendRef<BE>,
S2: GLWESecretPreparedToBackendRef<BE>,
E: EncryptionInfos,
R: GGLWEToBackendMut<BE> + GGLWEInfos,
Source§impl<B> MatZnxAlloc<B> for Module<B>where
B: Backend,
impl<B> MatZnxAlloc<B> for Module<B>where
B: Backend,
Source§impl<B> ModuleCoreAlloc for Module<B>where
B: Backend,
impl<B> ModuleCoreAlloc for Module<B>where
B: Backend,
type OwnedBuf = <B as Backend>::OwnedBuf
fn glwe_alloc_from_infos<A>(&self, infos: &A) -> GLWE<<B as Backend>::OwnedBuf>where
A: GLWEInfos,
fn glwe_alloc( &self, base2k: Base2K, k: TorusPrecision, rank: Rank, ) -> GLWE<<B as Backend>::OwnedBuf>
fn gglwe_alloc_from_infos<A>(
&self,
infos: &A,
) -> GGLWE<<B as Backend>::OwnedBuf>where
A: GGLWEInfos,
fn gglwe_alloc( &self, base2k: Base2K, k: TorusPrecision, rank_in: Rank, rank_out: Rank, dnum: Dnum, dsize: Dsize, ) -> GGLWE<<B as Backend>::OwnedBuf>
fn ggsw_alloc_from_infos<A>(&self, infos: &A) -> GGSW<<B as Backend>::OwnedBuf>where
A: GGSWInfos,
fn ggsw_alloc( &self, base2k: Base2K, k: TorusPrecision, rank: Rank, dnum: Dnum, dsize: Dsize, ) -> GGSW<<B as Backend>::OwnedBuf>
fn glwe_plaintext_alloc_from_infos<A>(
&self,
infos: &A,
) -> GLWEPlaintext<<B as Backend>::OwnedBuf>where
A: GLWEInfos,
fn glwe_plaintext_alloc( &self, base2k: Base2K, k: TorusPrecision, ) -> GLWEPlaintext<<B as Backend>::OwnedBuf>
fn glwe_secret_alloc_from_infos<A>(
&self,
infos: &A,
) -> GLWESecret<<B as Backend>::OwnedBuf>where
A: GLWEInfos,
fn glwe_secret_alloc(&self, rank: Rank) -> GLWESecret<<B as Backend>::OwnedBuf>
fn glwe_secret_tensor_alloc_from_infos<A>(
&self,
infos: &A,
) -> GLWESecretTensor<<B as Backend>::OwnedBuf>where
A: GLWEInfos,
fn glwe_secret_tensor_alloc( &self, rank: Rank, ) -> GLWESecretTensor<<B as Backend>::OwnedBuf>
fn glwe_tensor_alloc_from_infos<A>(
&self,
infos: &A,
) -> GLWETensor<<B as Backend>::OwnedBuf>where
A: GLWEInfos,
fn glwe_tensor_alloc( &self, base2k: Base2K, k: TorusPrecision, rank: Rank, ) -> GLWETensor<<B as Backend>::OwnedBuf>
fn glwe_public_key_alloc_from_infos<A>(
&self,
infos: &A,
) -> GLWEPublicKey<<B as Backend>::OwnedBuf>where
A: GLWEInfos,
fn glwe_public_key_alloc( &self, base2k: Base2K, k: TorusPrecision, rank: Rank, ) -> GLWEPublicKey<<B as Backend>::OwnedBuf>
fn glwe_switching_key_alloc_from_infos<A>(
&self,
infos: &A,
) -> GLWESwitchingKey<<B as Backend>::OwnedBuf>where
A: GGLWEInfos,
fn glwe_switching_key_alloc( &self, base2k: Base2K, k: TorusPrecision, rank_in: Rank, rank_out: Rank, dnum: Dnum, dsize: Dsize, ) -> GLWESwitchingKey<<B as Backend>::OwnedBuf>
fn glwe_automorphism_key_alloc_from_infos<A>(
&self,
infos: &A,
) -> GLWEAutomorphismKey<<B as Backend>::OwnedBuf>where
A: GGLWEInfos,
fn glwe_automorphism_key_alloc( &self, base2k: Base2K, k: TorusPrecision, rank: Rank, dnum: Dnum, dsize: Dsize, ) -> GLWEAutomorphismKey<<B as Backend>::OwnedBuf>
fn glwe_tensor_key_alloc_from_infos<A>(
&self,
infos: &A,
) -> GLWETensorKey<<B as Backend>::OwnedBuf>where
A: GGLWEInfos,
fn glwe_tensor_key_alloc( &self, base2k: Base2K, k: TorusPrecision, rank: Rank, dnum: Dnum, dsize: Dsize, ) -> GLWETensorKey<<B as Backend>::OwnedBuf>
fn glwe_to_lwe_key_alloc_from_infos<A>(
&self,
infos: &A,
) -> GLWEToLWEKey<<B as Backend>::OwnedBuf>where
A: GGLWEInfos,
fn glwe_to_lwe_key_alloc( &self, base2k: Base2K, k: TorusPrecision, rank_in: Rank, dnum: Dnum, ) -> GLWEToLWEKey<<B as Backend>::OwnedBuf>
fn gglwe_to_ggsw_key_alloc_from_infos<A>(
&self,
infos: &A,
) -> GGLWEToGGSWKey<<B as Backend>::OwnedBuf>where
A: GGLWEInfos,
fn gglwe_to_ggsw_key_alloc( &self, base2k: Base2K, k: TorusPrecision, rank: Rank, dnum: Dnum, dsize: Dsize, ) -> GGLWEToGGSWKey<<B as Backend>::OwnedBuf>
fn lwe_alloc_from_infos<A>(&self, infos: &A) -> LWE<<B as Backend>::OwnedBuf>where
A: LWEInfos,
fn lwe_alloc( &self, n: Degree, base2k: Base2K, k: TorusPrecision, ) -> LWE<<B as Backend>::OwnedBuf>
fn lwe_plaintext_alloc_from_infos<A>(
&self,
infos: &A,
) -> LWEPlaintext<<B as Backend>::OwnedBuf>where
A: LWEInfos,
fn lwe_plaintext_alloc( &self, base2k: Base2K, k: TorusPrecision, ) -> LWEPlaintext<<B as Backend>::OwnedBuf>
fn lwe_secret_alloc(&self, n: Degree) -> LWESecret<<B as Backend>::OwnedBuf>
fn lwe_switching_key_alloc_from_infos<A>(
&self,
infos: &A,
) -> LWESwitchingKey<<B as Backend>::OwnedBuf>where
A: GGLWEInfos,
fn lwe_switching_key_alloc( &self, n: Degree, base2k: Base2K, k: TorusPrecision, dnum: Dnum, ) -> LWESwitchingKey<<B as Backend>::OwnedBuf>
fn lwe_to_glwe_key_alloc_from_infos<A>(
&self,
infos: &A,
) -> LWEToGLWEKey<<B as Backend>::OwnedBuf>where
A: GGLWEInfos,
fn lwe_to_glwe_key_alloc( &self, n: Degree, base2k: Base2K, k: TorusPrecision, rank_out: Rank, dnum: Dnum, ) -> LWEToGLWEKey<<B as Backend>::OwnedBuf>
Source§impl<B> ModuleCoreCompressedAlloc for Module<B>where
B: Backend,
impl<B> ModuleCoreCompressedAlloc for Module<B>where
B: Backend,
fn glwe_compressed_alloc_from_infos<A>(
&self,
infos: &A,
) -> GLWECompressed<Vec<u8>>where
A: GLWEInfos,
fn glwe_compressed_alloc( &self, base2k: Base2K, k: TorusPrecision, rank: Rank, ) -> GLWECompressed<Vec<u8>>
fn lwe_compressed_alloc_from_infos<A>(
&self,
infos: &A,
) -> LWECompressed<Vec<u8>>where
A: LWEInfos,
fn lwe_compressed_alloc( &self, base2k: Base2K, k: TorusPrecision, ) -> LWECompressed<Vec<u8>>
fn gglwe_compressed_alloc_from_infos<A>(
&self,
infos: &A,
) -> GGLWECompressed<Vec<u8>>where
A: GGLWEInfos,
fn gglwe_compressed_alloc( &self, base2k: Base2K, k: TorusPrecision, rank_in: Rank, rank_out: Rank, dnum: Dnum, dsize: Dsize, ) -> GGLWECompressed<Vec<u8>>
fn ggsw_compressed_alloc_from_infos<A>(
&self,
infos: &A,
) -> GGSWCompressed<Vec<u8>>where
A: GGSWInfos,
fn ggsw_compressed_alloc( &self, base2k: Base2K, k: TorusPrecision, rank: Rank, dnum: Dnum, dsize: Dsize, ) -> GGSWCompressed<Vec<u8>>
fn glwe_switching_key_compressed_alloc_from_infos<A>(
&self,
infos: &A,
) -> GLWESwitchingKeyCompressed<Vec<u8>>where
A: GGLWEInfos,
fn glwe_switching_key_compressed_alloc( &self, base2k: Base2K, k: TorusPrecision, rank_in: Rank, rank_out: Rank, dnum: Dnum, dsize: Dsize, ) -> GLWESwitchingKeyCompressed<Vec<u8>>
fn glwe_automorphism_key_compressed_alloc_from_infos<A>(
&self,
infos: &A,
) -> GLWEAutomorphismKeyCompressed<Vec<u8>>where
A: GGLWEInfos,
fn glwe_automorphism_key_compressed_alloc( &self, base2k: Base2K, k: TorusPrecision, rank: Rank, dnum: Dnum, dsize: Dsize, ) -> GLWEAutomorphismKeyCompressed<Vec<u8>>
fn glwe_tensor_key_compressed_alloc_from_infos<A>(
&self,
infos: &A,
) -> GLWETensorKeyCompressed<Vec<u8>>where
A: GGLWEInfos,
fn glwe_tensor_key_compressed_alloc( &self, base2k: Base2K, k: TorusPrecision, rank: Rank, dnum: Dnum, dsize: Dsize, ) -> GLWETensorKeyCompressed<Vec<u8>>
fn glwe_to_lwe_key_compressed_alloc_from_infos<A>(
&self,
infos: &A,
) -> GLWEToLWESwitchingKeyCompressed<Vec<u8>>where
A: GGLWEInfos,
fn glwe_to_lwe_key_compressed_alloc( &self, base2k: Base2K, k: TorusPrecision, rank_in: Rank, dnum: Dnum, ) -> GLWEToLWESwitchingKeyCompressed<Vec<u8>>
fn lwe_to_glwe_key_compressed_alloc_from_infos<A>(
&self,
infos: &A,
) -> LWEToGLWEKeyCompressed<Vec<u8>>where
A: GGLWEInfos,
fn lwe_to_glwe_key_compressed_alloc( &self, n: Degree, base2k: Base2K, k: TorusPrecision, rank_out: Rank, dnum: Dnum, ) -> LWEToGLWEKeyCompressed<Vec<u8>>
fn lwe_switching_key_compressed_alloc_from_infos<A>(
&self,
infos: &A,
) -> LWESwitchingKeyCompressed<Vec<u8>>where
A: GGLWEInfos,
fn lwe_switching_key_compressed_alloc( &self, n: Degree, base2k: Base2K, k: TorusPrecision, dnum: Dnum, ) -> LWESwitchingKeyCompressed<Vec<u8>>
fn gglwe_to_ggsw_key_compressed_alloc_from_infos<A>(
&self,
infos: &A,
) -> GGLWEToGGSWKeyCompressed<Vec<u8>>where
A: GGLWEInfos,
fn gglwe_to_ggsw_key_compressed_alloc( &self, base2k: Base2K, k: TorusPrecision, rank: Rank, dnum: Dnum, dsize: Dsize, ) -> GGLWEToGGSWKeyCompressed<Vec<u8>>
Source§impl<BE> ModuleLogN for Module<BE>
impl<BE> ModuleLogN for Module<BE>
Source§impl<To> ModuleTransfer<To> for Module<To>where
To: Backend,
impl<To> ModuleTransfer<To> for Module<To>where
To: Backend,
fn upload_glwe<From>(
&self,
src: &GLWE<<From as Backend>::OwnedBuf>,
) -> GLWE<<To as Backend>::OwnedBuf>where
From: Backend,
To: TransferFrom<From>,
fn download_glwe<From>(
&self,
src: &GLWE<<From as Backend>::OwnedBuf>,
) -> GLWE<<To as Backend>::OwnedBuf>where
From: Backend,
To: TransferFrom<From>,
fn upload_lwe<From>(
&self,
src: &LWE<<From as Backend>::OwnedBuf>,
) -> LWE<<To as Backend>::OwnedBuf>where
From: Backend,
To: TransferFrom<From>,
fn download_lwe<From>(
&self,
src: &LWE<<From as Backend>::OwnedBuf>,
) -> LWE<<To as Backend>::OwnedBuf>where
From: Backend,
To: TransferFrom<From>,
fn upload_gglwe<From>(
&self,
src: &GGLWE<<From as Backend>::OwnedBuf>,
) -> GGLWE<<To as Backend>::OwnedBuf>where
From: Backend,
To: TransferFrom<From>,
fn download_gglwe<From>(
&self,
src: &GGLWE<<From as Backend>::OwnedBuf>,
) -> GGLWE<<To as Backend>::OwnedBuf>where
From: Backend,
To: TransferFrom<From>,
fn upload_ggsw<From>(
&self,
src: &GGSW<<From as Backend>::OwnedBuf>,
) -> GGSW<<To as Backend>::OwnedBuf>where
From: Backend,
To: TransferFrom<From>,
fn download_ggsw<From>(
&self,
src: &GGSW<<From as Backend>::OwnedBuf>,
) -> GGSW<<To as Backend>::OwnedBuf>where
From: Backend,
To: TransferFrom<From>,
fn upload_glwe_secret<From>(
&self,
src: &GLWESecret<<From as Backend>::OwnedBuf>,
) -> GLWESecret<<To as Backend>::OwnedBuf>where
From: Backend,
To: TransferFrom<From>,
fn download_glwe_secret<From>(
&self,
src: &GLWESecret<<From as Backend>::OwnedBuf>,
) -> GLWESecret<<To as Backend>::OwnedBuf>where
From: Backend,
To: TransferFrom<From>,
fn upload_lwe_secret<From>(
&self,
src: &LWESecret<<From as Backend>::OwnedBuf>,
) -> LWESecret<<To as Backend>::OwnedBuf>where
From: Backend,
To: TransferFrom<From>,
fn download_lwe_secret<From>(
&self,
src: &LWESecret<<From as Backend>::OwnedBuf>,
) -> LWESecret<<To as Backend>::OwnedBuf>where
From: Backend,
To: TransferFrom<From>,
fn upload_glwe_plaintext<From>(
&self,
src: &GLWEPlaintext<<From as Backend>::OwnedBuf>,
) -> GLWEPlaintext<<To as Backend>::OwnedBuf>where
From: Backend,
To: TransferFrom<From>,
fn download_glwe_plaintext<From>(
&self,
src: &GLWEPlaintext<<From as Backend>::OwnedBuf>,
) -> GLWEPlaintext<<To as Backend>::OwnedBuf>where
From: Backend,
To: TransferFrom<From>,
fn upload_lwe_plaintext<From>(
&self,
src: &LWEPlaintext<<From as Backend>::OwnedBuf>,
) -> LWEPlaintext<<To as Backend>::OwnedBuf>where
From: Backend,
To: TransferFrom<From>,
fn download_lwe_plaintext<From>(
&self,
src: &LWEPlaintext<<From as Backend>::OwnedBuf>,
) -> LWEPlaintext<<To as Backend>::OwnedBuf>where
From: Backend,
To: TransferFrom<From>,
Source§impl<B> NttModuleHandle for Module<B>
Blanket impl: any Module<B> whose handle implements NttHandleProvider
automatically satisfies NttModuleHandle.
impl<B> NttModuleHandle for Module<B>
Blanket impl: any Module<B> whose handle implements NttHandleProvider
automatically satisfies NttModuleHandle.
Source§fn get_ntt_table(&self) -> &NttTable<Primes30>
fn get_ntt_table(&self) -> &NttTable<Primes30>
n).Source§fn get_intt_table(&self) -> &NttTableInv<Primes30>
fn get_intt_table(&self) -> &NttTableInv<Primes30>
n).Source§fn get_bbc_meta(&self) -> &BbcMeta<Primes30>
fn get_bbc_meta(&self) -> &BbcMeta<Primes30>
q120b × q120c lazy multiply–accumulate.Source§fn get_bbb_meta(&self) -> &BbbMeta<Primes30>
fn get_bbb_meta(&self) -> &BbbMeta<Primes30>
q120b × q120b lazy multiply–accumulate.Source§impl<B> ScalarZnxAlloc<B> for Module<B>where
B: Backend,
impl<B> ScalarZnxAlloc<B> for Module<B>where
B: Backend,
Source§impl<B> ScalarZnxFillBinaryBlockBackend<B> for Module<B>where
B: Backend + HalVecZnxImpl<B>,
impl<B> ScalarZnxFillBinaryBlockBackend<B> for Module<B>where
B: Backend + HalVecZnxImpl<B>,
Source§impl<B> ScalarZnxFillBinaryBlockSourceBackend<B> for Module<B>where
B: Backend + HalVecZnxImpl<B>,
impl<B> ScalarZnxFillBinaryBlockSourceBackend<B> for Module<B>where
B: Backend + HalVecZnxImpl<B>,
Source§impl<B> ScalarZnxFillBinaryHwBackend<B> for Module<B>where
B: Backend + HalVecZnxImpl<B>,
impl<B> ScalarZnxFillBinaryHwBackend<B> for Module<B>where
B: Backend + HalVecZnxImpl<B>,
Source§impl<B> ScalarZnxFillBinaryHwSourceBackend<B> for Module<B>where
B: Backend + HalVecZnxImpl<B>,
impl<B> ScalarZnxFillBinaryHwSourceBackend<B> for Module<B>where
B: Backend + HalVecZnxImpl<B>,
Source§impl<B> ScalarZnxFillBinaryProbBackend<B> for Module<B>where
B: Backend + HalVecZnxImpl<B>,
impl<B> ScalarZnxFillBinaryProbBackend<B> for Module<B>where
B: Backend + HalVecZnxImpl<B>,
Source§impl<B> ScalarZnxFillBinaryProbSourceBackend<B> for Module<B>where
B: Backend + HalVecZnxImpl<B>,
impl<B> ScalarZnxFillBinaryProbSourceBackend<B> for Module<B>where
B: Backend + HalVecZnxImpl<B>,
Source§impl<B> ScalarZnxFillTernaryHwBackend<B> for Module<B>where
B: Backend + HalVecZnxImpl<B>,
impl<B> ScalarZnxFillTernaryHwBackend<B> for Module<B>where
B: Backend + HalVecZnxImpl<B>,
Source§impl<B> ScalarZnxFillTernaryHwSourceBackend<B> for Module<B>where
B: Backend + HalVecZnxImpl<B>,
impl<B> ScalarZnxFillTernaryHwSourceBackend<B> for Module<B>where
B: Backend + HalVecZnxImpl<B>,
Source§impl<B> ScalarZnxFillTernaryProbBackend<B> for Module<B>where
B: Backend + HalVecZnxImpl<B>,
impl<B> ScalarZnxFillTernaryProbBackend<B> for Module<B>where
B: Backend + HalVecZnxImpl<B>,
Source§impl<B> ScalarZnxFillTernaryProbSourceBackend<B> for Module<B>where
B: Backend + HalVecZnxImpl<B>,
impl<B> ScalarZnxFillTernaryProbSourceBackend<B> for Module<B>where
B: Backend + HalVecZnxImpl<B>,
Source§impl<B> SecretConversion<B> for Module<B>where
B: Backend + HalVecZnxImpl<B>,
impl<B> SecretConversion<B> for Module<B>where
B: Backend + HalVecZnxImpl<B>,
Source§fn glwe_secret_from_lwe_secret<S>(
&self,
src: &S,
) -> GLWESecret<<B as Backend>::OwnedBuf>where
S: LWESecretToBackendRef<B>,
fn glwe_secret_from_lwe_secret<S>(
&self,
src: &S,
) -> GLWESecret<<B as Backend>::OwnedBuf>where
S: LWESecretToBackendRef<B>,
GLWESecret from a LWESecret by applying
the X → X⁻¹ automorphism (k = -1). The result is the GLWE polynomial key
whose ring product with a mask decrypts LWE ciphertexts produced by
glwe_expand_lwe.Source§fn lwe_secret_from_glwe_secret<S>(
&self,
src: &S,
) -> LWESecret<<B as Backend>::OwnedBuf>where
S: GLWESecretToBackendRef<B>,
fn lwe_secret_from_glwe_secret<S>(
&self,
src: &S,
) -> LWESecret<<B as Backend>::OwnedBuf>where
S: GLWESecretToBackendRef<B>,
LWESecret from a GLWESecret by applying the
X → X⁻¹ automorphism (k = -1) to each rank component. Read moreSource§impl<B> SvpApplyDft<B> for Module<B>where
B: Backend + HalSvpImpl<B>,
impl<B> SvpApplyDft<B> for Module<B>where
B: Backend + HalSvpImpl<B>,
Source§impl<B> SvpApplyDftToDft<B> for Module<B>where
B: Backend + HalSvpImpl<B>,
impl<B> SvpApplyDftToDft<B> for Module<B>where
B: Backend + HalSvpImpl<B>,
Source§impl<B> SvpApplyDftToDftAssign<B> for Module<B>where
B: Backend + HalSvpImpl<B>,
impl<B> SvpApplyDftToDftAssign<B> for Module<B>where
B: Backend + HalSvpImpl<B>,
Source§impl<B> SvpPPolAlloc<B> for Module<B>where
B: Backend,
impl<B> SvpPPolAlloc<B> for Module<B>where
B: Backend,
Source§impl<B> SvpPPolBytesOf for Module<B>where
B: Backend,
impl<B> SvpPPolBytesOf for Module<B>where
B: Backend,
fn bytes_of_svp_ppol(&self, cols: usize) -> usize
Source§impl<B> SvpPPolCopyBackend<B> for Module<B>where
B: Backend + HalSvpImpl<B>,
impl<B> SvpPPolCopyBackend<B> for Module<B>where
B: Backend + HalSvpImpl<B>,
Source§impl<B> SvpPrepare<B> for Module<B>where
B: Backend + HalSvpImpl<B>,
impl<B> SvpPrepare<B> for Module<B>where
B: Backend + HalSvpImpl<B>,
Source§impl<B> VecZnxAddAssignBackend<B> for Module<B>where
B: Backend + HalVecZnxImpl<B>,
impl<B> VecZnxAddAssignBackend<B> for Module<B>where
B: Backend + HalVecZnxImpl<B>,
Source§impl<B> VecZnxAddConstAssignBackend<B> for Module<B>where
B: Backend + HalVecZnxImpl<B>,
impl<B> VecZnxAddConstAssignBackend<B> for Module<B>where
B: Backend + HalVecZnxImpl<B>,
Source§impl<B> VecZnxAddConstIntoBackend<B> for Module<B>where
B: Backend + HalVecZnxImpl<B>,
impl<B> VecZnxAddConstIntoBackend<B> for Module<B>where
B: Backend + HalVecZnxImpl<B>,
Source§impl<B> VecZnxAddIntoBackend<B> for Module<B>where
B: Backend + HalVecZnxImpl<B>,
impl<B> VecZnxAddIntoBackend<B> for Module<B>where
B: Backend + HalVecZnxImpl<B>,
Source§fn vec_znx_add_into_backend(
&self,
res: &mut VecZnx<<B as Backend>::BufMut<'_>>,
res_col: usize,
a: &VecZnx<<B as Backend>::BufRef<'_>>,
a_col: usize,
b: &VecZnx<<B as Backend>::BufRef<'_>>,
b_col: usize,
)
fn vec_znx_add_into_backend( &self, res: &mut VecZnx<<B as Backend>::BufMut<'_>>, res_col: usize, a: &VecZnx<<B as Backend>::BufRef<'_>>, a_col: usize, b: &VecZnx<<B as Backend>::BufRef<'_>>, b_col: usize, )
a to the selected backend-native column of b.Source§impl<B> VecZnxAddNormalBackend<B> for Module<B>where
B: Backend + HalVecZnxImpl<B>,
impl<B> VecZnxAddNormalBackend<B> for Module<B>where
B: Backend + HalVecZnxImpl<B>,
Source§impl<B> VecZnxAddNormalSourceBackend<B> for Module<B>where
B: Backend + HalVecZnxImpl<B>,
impl<B> VecZnxAddNormalSourceBackend<B> for Module<B>where
B: Backend + HalVecZnxImpl<B>,
Source§fn vec_znx_add_normal_source_backend(
&self,
base2k: usize,
res: &mut VecZnx<<B as Backend>::BufMut<'_>>,
res_col: usize,
noise_infos: NoiseInfos,
source_xe: &mut Source,
)
fn vec_znx_add_normal_source_backend( &self, base2k: usize, res: &mut VecZnx<<B as Backend>::BufMut<'_>>, res_col: usize, noise_infos: NoiseInfos, source_xe: &mut Source, )
Source§impl<B> VecZnxAddScalarAssignBackend<B> for Module<B>where
B: Backend + HalVecZnxImpl<B>,
impl<B> VecZnxAddScalarAssignBackend<B> for Module<B>where
B: Backend + HalVecZnxImpl<B>,
Source§impl<B> VecZnxAddScalarIntoBackend<B> for Module<B>where
B: Backend + HalVecZnxImpl<B>,
impl<B> VecZnxAddScalarIntoBackend<B> for Module<B>where
B: Backend + HalVecZnxImpl<B>,
Source§impl<B> VecZnxAlloc<B> for Module<B>where
B: Backend,
impl<B> VecZnxAlloc<B> for Module<B>where
B: Backend,
Source§impl<B> VecZnxAutomorphismAssignBackend<B> for Module<B>where
B: Backend + HalVecZnxImpl<B>,
impl<B> VecZnxAutomorphismAssignBackend<B> for Module<B>where
B: Backend + HalVecZnxImpl<B>,
Source§fn vec_znx_automorphism_assign_backend(
&self,
k: i64,
res: &mut VecZnx<<B as Backend>::BufMut<'_>>,
res_col: usize,
scratch: &mut ScratchArena<'_, B>,
)
fn vec_znx_automorphism_assign_backend( &self, k: i64, res: &mut VecZnx<<B as Backend>::BufMut<'_>>, res_col: usize, scratch: &mut ScratchArena<'_, B>, )
a.Source§impl<B> VecZnxAutomorphismAssignTmpBytes for Module<B>where
B: Backend + HalVecZnxImpl<B>,
impl<B> VecZnxAutomorphismAssignTmpBytes for Module<B>where
B: Backend + HalVecZnxImpl<B>,
fn vec_znx_automorphism_assign_tmp_bytes(&self) -> usize
Source§impl<B> VecZnxAutomorphismBackend<B> for Module<B>where
B: Backend + HalVecZnxImpl<B>,
impl<B> VecZnxAutomorphismBackend<B> for Module<B>where
B: Backend + HalVecZnxImpl<B>,
Source§impl<B> VecZnxBigAddAssign<B> for Module<B>where
B: Backend + HalVecZnxBigImpl<B>,
impl<B> VecZnxBigAddAssign<B> for Module<B>where
B: Backend + HalVecZnxBigImpl<B>,
Source§impl<B> VecZnxBigAddInto<B> for Module<B>where
B: Backend + HalVecZnxBigImpl<B>,
impl<B> VecZnxBigAddInto<B> for Module<B>where
B: Backend + HalVecZnxBigImpl<B>,
Source§impl<B> VecZnxBigAddNormal<B> for Module<B>where
B: Backend + HalVecZnxBigImpl<B>,
impl<B> VecZnxBigAddNormal<B> for Module<B>where
B: Backend + HalVecZnxBigImpl<B>,
fn vec_znx_big_add_normal( &self, base2k: usize, res: &mut VecZnxBig<<B as Backend>::BufMut<'_>, B>, res_col: usize, noise_infos: NoiseInfos, source: &mut Source, )
Source§impl<B> VecZnxBigAddNormalBackend<B> for Module<B>where
B: Backend + HalVecZnxBigImpl<B>,
impl<B> VecZnxBigAddNormalBackend<B> for Module<B>where
B: Backend + HalVecZnxBigImpl<B>,
Source§impl<B> VecZnxBigAddSmallAssign<B> for Module<B>where
B: Backend + HalVecZnxBigImpl<B>,
impl<B> VecZnxBigAddSmallAssign<B> for Module<B>where
B: Backend + HalVecZnxBigImpl<B>,
Source§impl<B> VecZnxBigAddSmallIntoBackend<B> for Module<B>where
B: Backend + HalVecZnxBigImpl<B>,
impl<B> VecZnxBigAddSmallIntoBackend<B> for Module<B>where
B: Backend + HalVecZnxBigImpl<B>,
Source§impl<B> VecZnxBigAlloc<B> for Module<B>where
B: Backend,
impl<B> VecZnxBigAlloc<B> for Module<B>where
B: Backend,
Source§impl<B> VecZnxBigAutomorphism<B> for Module<B>where
B: Backend + HalVecZnxBigImpl<B>,
impl<B> VecZnxBigAutomorphism<B> for Module<B>where
B: Backend + HalVecZnxBigImpl<B>,
Source§impl<B> VecZnxBigAutomorphismAssign<B> for Module<B>where
B: Backend + HalVecZnxBigImpl<B>,
impl<B> VecZnxBigAutomorphismAssign<B> for Module<B>where
B: Backend + HalVecZnxBigImpl<B>,
Source§fn vec_znx_big_automorphism_assign(
&self,
k: i64,
a: &mut VecZnxBig<<B as Backend>::BufMut<'_>, B>,
a_col: usize,
scratch: &mut ScratchArena<'_, B>,
)
fn vec_znx_big_automorphism_assign( &self, k: i64, a: &mut VecZnxBig<<B as Backend>::BufMut<'_>, B>, a_col: usize, scratch: &mut ScratchArena<'_, B>, )
a and stores the result on a.Source§impl<B> VecZnxBigAutomorphismAssignTmpBytes for Module<B>where
B: Backend + HalVecZnxBigImpl<B>,
impl<B> VecZnxBigAutomorphismAssignTmpBytes for Module<B>where
B: Backend + HalVecZnxBigImpl<B>,
fn vec_znx_big_automorphism_assign_tmp_bytes(&self) -> usize
Source§impl<B> VecZnxBigBytesOf for Module<B>where
B: Backend,
impl<B> VecZnxBigBytesOf for Module<B>where
B: Backend,
Source§impl<B> VecZnxBigFromBytes<B> for Module<B>where
B: Backend,
impl<B> VecZnxBigFromBytes<B> for Module<B>where
B: Backend,
Source§impl<B> VecZnxBigFromSmallBackend<B> for Module<B>where
B: Backend + HalVecZnxBigImpl<B>,
impl<B> VecZnxBigFromSmallBackend<B> for Module<B>where
B: Backend + HalVecZnxBigImpl<B>,
Source§impl<B> VecZnxBigInnerSumBackend<B> for Module<B>where
B: Backend + HalVecZnxBigImpl<B>,
impl<B> VecZnxBigInnerSumBackend<B> for Module<B>where
B: Backend + HalVecZnxBigImpl<B>,
Source§impl<B> VecZnxBigNegate<B> for Module<B>where
B: Backend + HalVecZnxBigImpl<B>,
impl<B> VecZnxBigNegate<B> for Module<B>where
B: Backend + HalVecZnxBigImpl<B>,
Source§impl<B> VecZnxBigNegateAssign<B> for Module<B>where
B: Backend + HalVecZnxBigImpl<B>,
impl<B> VecZnxBigNegateAssign<B> for Module<B>where
B: Backend + HalVecZnxBigImpl<B>,
Source§impl<B> VecZnxBigNormalize<B> for Module<B>where
B: Backend + HalVecZnxBigImpl<B>,
impl<B> VecZnxBigNormalize<B> for Module<B>where
B: Backend + HalVecZnxBigImpl<B>,
Source§impl<B> VecZnxBigNormalizeTmpBytes for Module<B>where
B: Backend + HalVecZnxBigImpl<B>,
impl<B> VecZnxBigNormalizeTmpBytes for Module<B>where
B: Backend + HalVecZnxBigImpl<B>,
fn vec_znx_big_normalize_tmp_bytes(&self) -> usize
Source§impl<B> VecZnxBigSub<B> for Module<B>where
B: Backend + HalVecZnxBigImpl<B>,
impl<B> VecZnxBigSub<B> for Module<B>where
B: Backend + HalVecZnxBigImpl<B>,
Source§impl<B> VecZnxBigSubAssign<B> for Module<B>where
B: Backend + HalVecZnxBigImpl<B>,
impl<B> VecZnxBigSubAssign<B> for Module<B>where
B: Backend + HalVecZnxBigImpl<B>,
Source§impl<B> VecZnxBigSubNegateAssign<B> for Module<B>where
B: Backend + HalVecZnxBigImpl<B>,
impl<B> VecZnxBigSubNegateAssign<B> for Module<B>where
B: Backend + HalVecZnxBigImpl<B>,
Source§impl<B> VecZnxBigSubSmallABackend<B> for Module<B>where
B: Backend + HalVecZnxBigImpl<B>,
impl<B> VecZnxBigSubSmallABackend<B> for Module<B>where
B: Backend + HalVecZnxBigImpl<B>,
Source§impl<B> VecZnxBigSubSmallAssign<B> for Module<B>where
B: Backend + HalVecZnxBigImpl<B>,
impl<B> VecZnxBigSubSmallAssign<B> for Module<B>where
B: Backend + HalVecZnxBigImpl<B>,
Source§impl<B> VecZnxBigSubSmallBBackend<B> for Module<B>where
B: Backend + HalVecZnxBigImpl<B>,
impl<B> VecZnxBigSubSmallBBackend<B> for Module<B>where
B: Backend + HalVecZnxBigImpl<B>,
Source§impl<B> VecZnxBigSubSmallNegateAssign<B> for Module<B>where
B: Backend + HalVecZnxBigImpl<B>,
impl<B> VecZnxBigSubSmallNegateAssign<B> for Module<B>where
B: Backend + HalVecZnxBigImpl<B>,
Source§impl<B> VecZnxCopyBackend<B> for Module<B>where
B: Backend + HalVecZnxImpl<B>,
impl<B> VecZnxCopyBackend<B> for Module<B>where
B: Backend + HalVecZnxImpl<B>,
Source§impl<B> VecZnxCopyRangeBackend<B> for Module<B>where
B: Backend + HalVecZnxImpl<B>,
impl<B> VecZnxCopyRangeBackend<B> for Module<B>where
B: Backend + HalVecZnxImpl<B>,
Source§impl<B> VecZnxDftAddAssign<B> for Module<B>where
B: Backend + HalVecZnxDftImpl<B>,
impl<B> VecZnxDftAddAssign<B> for Module<B>where
B: Backend + HalVecZnxDftImpl<B>,
Source§impl<B> VecZnxDftAddInto<B> for Module<B>where
B: Backend + HalVecZnxDftImpl<B>,
impl<B> VecZnxDftAddInto<B> for Module<B>where
B: Backend + HalVecZnxDftImpl<B>,
Source§impl<B> VecZnxDftAddScaledAssign<B> for Module<B>where
B: Backend + HalVecZnxDftImpl<B>,
impl<B> VecZnxDftAddScaledAssign<B> for Module<B>where
B: Backend + HalVecZnxDftImpl<B>,
Source§impl<B> VecZnxDftAlloc<B> for Module<B>where
B: Backend,
impl<B> VecZnxDftAlloc<B> for Module<B>where
B: Backend,
Source§impl<B> VecZnxDftApply<B> for Module<B>where
B: Backend + HalVecZnxDftImpl<B>,
impl<B> VecZnxDftApply<B> for Module<B>where
B: Backend + HalVecZnxDftImpl<B>,
Source§impl<B> VecZnxDftBytesOf for Module<B>where
B: Backend,
impl<B> VecZnxDftBytesOf for Module<B>where
B: Backend,
Source§impl<B> VecZnxDftCopy<B> for Module<B>where
B: Backend + HalVecZnxDftImpl<B>,
impl<B> VecZnxDftCopy<B> for Module<B>where
B: Backend + HalVecZnxDftImpl<B>,
Source§impl<B> VecZnxDftFromBytes<B> for Module<B>where
B: Backend,
impl<B> VecZnxDftFromBytes<B> for Module<B>where
B: Backend,
Source§impl<B> VecZnxDftSub<B> for Module<B>where
B: Backend + HalVecZnxDftImpl<B>,
impl<B> VecZnxDftSub<B> for Module<B>where
B: Backend + HalVecZnxDftImpl<B>,
Source§impl<B> VecZnxDftSubAssign<B> for Module<B>where
B: Backend + HalVecZnxDftImpl<B>,
impl<B> VecZnxDftSubAssign<B> for Module<B>where
B: Backend + HalVecZnxDftImpl<B>,
Source§impl<B> VecZnxDftSubNegateAssign<B> for Module<B>where
B: Backend + HalVecZnxDftImpl<B>,
impl<B> VecZnxDftSubNegateAssign<B> for Module<B>where
B: Backend + HalVecZnxDftImpl<B>,
Source§impl<B> VecZnxDftZero<B> for Module<B>where
B: Backend + HalVecZnxDftImpl<B>,
impl<B> VecZnxDftZero<B> for Module<B>where
B: Backend + HalVecZnxDftImpl<B>,
Source§impl<B> VecZnxExtractCoeffBackend<B> for Module<B>where
B: Backend + HalVecZnxImpl<B>,
impl<B> VecZnxExtractCoeffBackend<B> for Module<B>where
B: Backend + HalVecZnxImpl<B>,
Source§impl<B> VecZnxFillNormalBackend<B> for Module<B>where
B: Backend + HalVecZnxImpl<B>,
impl<B> VecZnxFillNormalBackend<B> for Module<B>where
B: Backend + HalVecZnxImpl<B>,
Source§impl<B> VecZnxFillNormalSourceBackend<B> for Module<B>where
B: Backend + HalVecZnxImpl<B>,
impl<B> VecZnxFillNormalSourceBackend<B> for Module<B>where
B: Backend + HalVecZnxImpl<B>,
fn vec_znx_fill_normal_source_backend( &self, base2k: usize, res: &mut VecZnx<<B as Backend>::BufMut<'_>>, res_col: usize, noise_infos: NoiseInfos, source_xe: &mut Source, )
Source§impl<B> VecZnxFillUniformBackend<B> for Module<B>where
B: Backend + HalVecZnxImpl<B>,
impl<B> VecZnxFillUniformBackend<B> for Module<B>where
B: Backend + HalVecZnxImpl<B>,
Source§impl<B> VecZnxFillUniformSourceBackend<B> for Module<B>where
B: Backend + HalVecZnxImpl<B>,
impl<B> VecZnxFillUniformSourceBackend<B> for Module<B>where
B: Backend + HalVecZnxImpl<B>,
Source§impl<B> VecZnxHadamardProductScalarZnxBackend<B> for Module<B>where
B: Backend + HalVecZnxImpl<B>,
impl<B> VecZnxHadamardProductScalarZnxBackend<B> for Module<B>where
B: Backend + HalVecZnxImpl<B>,
Source§impl<B> VecZnxIdftApply<B> for Module<B>where
B: Backend + HalVecZnxDftImpl<B>,
impl<B> VecZnxIdftApply<B> for Module<B>where
B: Backend + HalVecZnxDftImpl<B>,
Source§impl<B> VecZnxIdftApplyTmpA<B> for Module<B>where
B: Backend + HalVecZnxDftImpl<B>,
impl<B> VecZnxIdftApplyTmpA<B> for Module<B>where
B: Backend + HalVecZnxDftImpl<B>,
Source§impl<B> VecZnxIdftApplyTmpBytes for Module<B>where
B: Backend + HalVecZnxDftImpl<B>,
impl<B> VecZnxIdftApplyTmpBytes for Module<B>where
B: Backend + HalVecZnxDftImpl<B>,
fn vec_znx_idft_apply_tmp_bytes(&self) -> usize
Source§impl<B> VecZnxLshAddCoeffIntoBackend<B> for Module<B>where
B: Backend + HalVecZnxImpl<B>,
impl<B> VecZnxLshAddCoeffIntoBackend<B> for Module<B>where
B: Backend + HalVecZnxImpl<B>,
Source§impl<B> VecZnxLshAddIntoBackend<B> for Module<B>where
B: Backend + HalVecZnxImpl<B>,
impl<B> VecZnxLshAddIntoBackend<B> for Module<B>where
B: Backend + HalVecZnxImpl<B>,
Source§impl<B> VecZnxLshAssignBackend<B> for Module<B>where
B: Backend + HalVecZnxImpl<B>,
impl<B> VecZnxLshAssignBackend<B> for Module<B>where
B: Backend + HalVecZnxImpl<B>,
Source§fn vec_znx_lsh_assign_backend(
&self,
base2k: usize,
k: usize,
a: &mut VecZnx<<B as Backend>::BufMut<'_>>,
a_col: usize,
scratch: &mut ScratchArena<'_, B>,
)
fn vec_znx_lsh_assign_backend( &self, base2k: usize, k: usize, a: &mut VecZnx<<B as Backend>::BufMut<'_>>, a_col: usize, scratch: &mut ScratchArena<'_, B>, )
a.Source§impl<B> VecZnxLshBackend<B> for Module<B>where
B: Backend + HalVecZnxImpl<B>,
impl<B> VecZnxLshBackend<B> for Module<B>where
B: Backend + HalVecZnxImpl<B>,
Source§impl<B> VecZnxLshCoeffBackend<B> for Module<B>where
B: Backend + HalVecZnxImpl<B>,
impl<B> VecZnxLshCoeffBackend<B> for Module<B>where
B: Backend + HalVecZnxImpl<B>,
Source§impl<B> VecZnxLshSubBackend<B> for Module<B>where
B: Backend + HalVecZnxImpl<B>,
impl<B> VecZnxLshSubBackend<B> for Module<B>where
B: Backend + HalVecZnxImpl<B>,
Source§impl<B> VecZnxLshTmpBytes for Module<B>where
B: Backend + HalVecZnxImpl<B>,
impl<B> VecZnxLshTmpBytes for Module<B>where
B: Backend + HalVecZnxImpl<B>,
fn vec_znx_lsh_tmp_bytes(&self) -> usize
Source§impl<B> VecZnxMergeRingsBackend<B> for Module<B>where
B: Backend + HalVecZnxImpl<B>,
impl<B> VecZnxMergeRingsBackend<B> for Module<B>where
B: Backend + HalVecZnxImpl<B>,
Source§impl<B> VecZnxMergeRingsTmpBytes for Module<B>where
B: Backend + HalVecZnxImpl<B>,
impl<B> VecZnxMergeRingsTmpBytes for Module<B>where
B: Backend + HalVecZnxImpl<B>,
fn vec_znx_merge_rings_tmp_bytes(&self) -> usize
Source§impl<B> VecZnxMulXpMinusOneAssignBackend<B> for Module<B>where
B: Backend + HalVecZnxImpl<B>,
impl<B> VecZnxMulXpMinusOneAssignBackend<B> for Module<B>where
B: Backend + HalVecZnxImpl<B>,
fn vec_znx_mul_xp_minus_one_assign_backend( &self, p: i64, res: &mut VecZnx<<B as Backend>::BufMut<'_>>, res_col: usize, scratch: &mut ScratchArena<'_, B>, )
Source§impl<B> VecZnxMulXpMinusOneAssignTmpBytes for Module<B>where
B: Backend + HalVecZnxImpl<B>,
impl<B> VecZnxMulXpMinusOneAssignTmpBytes for Module<B>where
B: Backend + HalVecZnxImpl<B>,
fn vec_znx_mul_xp_minus_one_assign_tmp_bytes(&self) -> usize
Source§impl<B> VecZnxMulXpMinusOneBackend<B> for Module<B>where
B: Backend + HalVecZnxImpl<B>,
impl<B> VecZnxMulXpMinusOneBackend<B> for Module<B>where
B: Backend + HalVecZnxImpl<B>,
Source§impl<B> VecZnxNegateAssignBackend<B> for Module<B>where
B: Backend + HalVecZnxImpl<B>,
impl<B> VecZnxNegateAssignBackend<B> for Module<B>where
B: Backend + HalVecZnxImpl<B>,
Source§impl<B> VecZnxNegateBackend<B> for Module<B>where
B: Backend + HalVecZnxImpl<B>,
impl<B> VecZnxNegateBackend<B> for Module<B>where
B: Backend + HalVecZnxImpl<B>,
Source§impl<B> VecZnxNormalize<B> for Module<B>where
B: Backend + HalVecZnxImpl<B>,
impl<B> VecZnxNormalize<B> for Module<B>where
B: Backend + HalVecZnxImpl<B>,
Source§fn vec_znx_normalize(
&self,
res: &mut VecZnx<<B as Backend>::BufMut<'_>>,
res_base2k: usize,
res_offset: i64,
res_col: usize,
a: &VecZnx<<B as Backend>::BufRef<'_>>,
a_base2k: usize,
a_col: usize,
scratch: &mut ScratchArena<'_, B>,
)
fn vec_znx_normalize( &self, res: &mut VecZnx<<B as Backend>::BufMut<'_>>, res_base2k: usize, res_offset: i64, res_col: usize, a: &VecZnx<<B as Backend>::BufRef<'_>>, a_base2k: usize, a_col: usize, scratch: &mut ScratchArena<'_, B>, )
a and stores the result into the selected column of res.Source§impl<B> VecZnxNormalizeAssignBackend<B> for Module<B>where
B: Backend + HalVecZnxImpl<B>,
impl<B> VecZnxNormalizeAssignBackend<B> for Module<B>where
B: Backend + HalVecZnxImpl<B>,
fn vec_znx_normalize_assign_backend( &self, base2k: usize, a: &mut VecZnx<<B as Backend>::BufMut<'_>>, a_col: usize, scratch: &mut ScratchArena<'_, B>, )
Source§impl<B> VecZnxNormalizeCoeffAssignBackend<B> for Module<B>where
B: Backend + HalVecZnxImpl<B>,
impl<B> VecZnxNormalizeCoeffAssignBackend<B> for Module<B>where
B: Backend + HalVecZnxImpl<B>,
fn vec_znx_normalize_coeff_assign_backend( &self, base2k: usize, a: &mut VecZnx<<B as Backend>::BufMut<'_>>, a_col: usize, a_coeff: usize, scratch: &mut ScratchArena<'_, B>, )
Source§impl<B> VecZnxNormalizeCoeffBackend<B> for Module<B>where
B: Backend + HalVecZnxImpl<B>,
impl<B> VecZnxNormalizeCoeffBackend<B> for Module<B>where
B: Backend + HalVecZnxImpl<B>,
Source§fn vec_znx_normalize_coeff_backend(
&self,
res: &mut VecZnx<<B as Backend>::BufMut<'_>>,
res_base2k: usize,
res_offset: i64,
res_col: usize,
a: &VecZnx<<B as Backend>::BufRef<'_>>,
a_base2k: usize,
a_col: usize,
a_coeff: usize,
scratch: &mut ScratchArena<'_, B>,
)
fn vec_znx_normalize_coeff_backend( &self, res: &mut VecZnx<<B as Backend>::BufMut<'_>>, res_base2k: usize, res_offset: i64, res_col: usize, a: &VecZnx<<B as Backend>::BufRef<'_>>, a_base2k: usize, a_col: usize, a_coeff: usize, scratch: &mut ScratchArena<'_, B>, )
a across its limbs into a 1-coeff destination column.Source§impl<B> VecZnxNormalizeTmpBytes for Module<B>where
B: Backend + HalVecZnxImpl<B>,
impl<B> VecZnxNormalizeTmpBytes for Module<B>where
B: Backend + HalVecZnxImpl<B>,
Source§fn vec_znx_normalize_tmp_bytes(&self) -> usize
fn vec_znx_normalize_tmp_bytes(&self) -> usize
Source§impl<B> VecZnxRotateAssignBackend<B> for Module<B>where
B: Backend + HalVecZnxImpl<B>,
impl<B> VecZnxRotateAssignBackend<B> for Module<B>where
B: Backend + HalVecZnxImpl<B>,
Source§fn vec_znx_rotate_assign_backend(
&self,
k: i64,
a: &mut VecZnx<<B as Backend>::BufMut<'_>>,
a_col: usize,
scratch: &mut ScratchArena<'_, B>,
)
fn vec_znx_rotate_assign_backend( &self, k: i64, a: &mut VecZnx<<B as Backend>::BufMut<'_>>, a_col: usize, scratch: &mut ScratchArena<'_, B>, )
a by X^k.Source§impl<B> VecZnxRotateAssignTmpBytes for Module<B>where
B: Backend + HalVecZnxImpl<B>,
impl<B> VecZnxRotateAssignTmpBytes for Module<B>where
B: Backend + HalVecZnxImpl<B>,
fn vec_znx_rotate_assign_tmp_bytes(&self) -> usize
Source§impl<B> VecZnxRotateBackend<B> for Module<B>where
B: Backend + HalVecZnxImpl<B>,
impl<B> VecZnxRotateBackend<B> for Module<B>where
B: Backend + HalVecZnxImpl<B>,
Source§impl<B> VecZnxRshAddCoeffIntoBackend<B> for Module<B>where
B: Backend + HalVecZnxImpl<B>,
impl<B> VecZnxRshAddCoeffIntoBackend<B> for Module<B>where
B: Backend + HalVecZnxImpl<B>,
Source§impl<B> VecZnxRshAddIntoBackend<B> for Module<B>where
B: Backend + HalVecZnxImpl<B>,
impl<B> VecZnxRshAddIntoBackend<B> for Module<B>where
B: Backend + HalVecZnxImpl<B>,
Source§impl<B> VecZnxRshAssignBackend<B> for Module<B>where
B: Backend + HalVecZnxImpl<B>,
impl<B> VecZnxRshAssignBackend<B> for Module<B>where
B: Backend + HalVecZnxImpl<B>,
Source§fn vec_znx_rsh_assign_backend(
&self,
base2k: usize,
k: usize,
a: &mut VecZnx<<B as Backend>::BufMut<'_>>,
a_col: usize,
scratch: &mut ScratchArena<'_, B>,
)
fn vec_znx_rsh_assign_backend( &self, base2k: usize, k: usize, a: &mut VecZnx<<B as Backend>::BufMut<'_>>, a_col: usize, scratch: &mut ScratchArena<'_, B>, )
a.Source§impl<B> VecZnxRshBackend<B> for Module<B>where
B: Backend + HalVecZnxImpl<B>,
impl<B> VecZnxRshBackend<B> for Module<B>where
B: Backend + HalVecZnxImpl<B>,
Source§impl<B> VecZnxRshCoeffBackend<B> for Module<B>where
B: Backend + HalVecZnxImpl<B>,
impl<B> VecZnxRshCoeffBackend<B> for Module<B>where
B: Backend + HalVecZnxImpl<B>,
Source§impl<B> VecZnxRshSubBackend<B> for Module<B>where
B: Backend + HalVecZnxImpl<B>,
impl<B> VecZnxRshSubBackend<B> for Module<B>where
B: Backend + HalVecZnxImpl<B>,
Source§impl<B> VecZnxRshSubCoeffIntoBackend<B> for Module<B>where
B: Backend + HalVecZnxImpl<B>,
impl<B> VecZnxRshSubCoeffIntoBackend<B> for Module<B>where
B: Backend + HalVecZnxImpl<B>,
Source§impl<B> VecZnxRshTmpBytes for Module<B>where
B: Backend + HalVecZnxImpl<B>,
impl<B> VecZnxRshTmpBytes for Module<B>where
B: Backend + HalVecZnxImpl<B>,
fn vec_znx_rsh_tmp_bytes(&self) -> usize
Source§impl<B> VecZnxScalarProduct<B> for Module<B>where
B: Backend + HalVecZnxBigImpl<B>,
impl<B> VecZnxScalarProduct<B> for Module<B>where
B: Backend + HalVecZnxBigImpl<B>,
Source§impl<B> VecZnxSplitRingBackend<B> for Module<B>where
B: Backend + HalVecZnxImpl<B>,
impl<B> VecZnxSplitRingBackend<B> for Module<B>where
B: Backend + HalVecZnxImpl<B>,
Source§fn vec_znx_split_ring_backend(
&self,
res: &mut [VecZnx<<B as Backend>::BufMut<'_>>],
res_col: usize,
a: &VecZnx<<B as Backend>::BufRef<'_>>,
a_col: usize,
scratch: &mut ScratchArena<'_, B>,
)
fn vec_znx_split_ring_backend( &self, res: &mut [VecZnx<<B as Backend>::BufMut<'_>>], res_col: usize, a: &VecZnx<<B as Backend>::BufRef<'_>>, a_col: usize, scratch: &mut ScratchArena<'_, B>, )
b into subrings and copies them them into the selected column of res. Read moreSource§impl<B> VecZnxSplitRingTmpBytes for Module<B>where
B: Backend + HalVecZnxImpl<B>,
impl<B> VecZnxSplitRingTmpBytes for Module<B>where
B: Backend + HalVecZnxImpl<B>,
fn vec_znx_split_ring_tmp_bytes(&self) -> usize
Source§impl<B> VecZnxSubAssignBackend<B> for Module<B>where
B: Backend + HalVecZnxImpl<B>,
impl<B> VecZnxSubAssignBackend<B> for Module<B>where
B: Backend + HalVecZnxImpl<B>,
Source§impl<B> VecZnxSubBackend<B> for Module<B>where
B: Backend + HalVecZnxImpl<B>,
impl<B> VecZnxSubBackend<B> for Module<B>where
B: Backend + HalVecZnxImpl<B>,
Source§impl<B> VecZnxSubNegateAssignBackend<B> for Module<B>where
B: Backend + HalVecZnxImpl<B>,
impl<B> VecZnxSubNegateAssignBackend<B> for Module<B>where
B: Backend + HalVecZnxImpl<B>,
Source§impl<B> VecZnxSubScalarAssignBackend<B> for Module<B>where
B: Backend + HalVecZnxImpl<B>,
impl<B> VecZnxSubScalarAssignBackend<B> for Module<B>where
B: Backend + HalVecZnxImpl<B>,
Source§impl<B> VecZnxSubScalarBackend<B> for Module<B>where
B: Backend + HalVecZnxImpl<B>,
impl<B> VecZnxSubScalarBackend<B> for Module<B>where
B: Backend + HalVecZnxImpl<B>,
Source§impl<B> VecZnxSwitchRingBackend<B> for Module<B>where
B: Backend + HalVecZnxImpl<B>,
impl<B> VecZnxSwitchRingBackend<B> for Module<B>where
B: Backend + HalVecZnxImpl<B>,
Source§impl<B> VecZnxZeroBackend<B> for Module<B>where
B: Backend + HalVecZnxImpl<B>,
impl<B> VecZnxZeroBackend<B> for Module<B>where
B: Backend + HalVecZnxImpl<B>,
Source§impl<B> VmpApplyDft<B> for Module<B>where
B: Backend + HalVmpImpl<B>,
impl<B> VmpApplyDft<B> for Module<B>where
B: Backend + HalVmpImpl<B>,
fn vmp_apply_dft<R>(
&self,
res: &mut R,
a: &VecZnx<<B as Backend>::BufRef<'_>>,
b: &VmpPMat<<B as Backend>::BufRef<'_>, B>,
scratch: &mut ScratchArena<'_, B>,
)where
R: VecZnxDftToBackendMut<B>,
Source§impl<B> VmpApplyDftTmpBytes for Module<B>where
B: Backend + HalVmpImpl<B>,
impl<B> VmpApplyDftTmpBytes for Module<B>where
B: Backend + HalVmpImpl<B>,
Source§impl<B> VmpApplyDftToDft<B> for Module<B>where
B: Backend + HalVmpImpl<B>,
impl<B> VmpApplyDftToDft<B> for Module<B>where
B: Backend + HalVmpImpl<B>,
Source§impl<B> VmpApplyDftToDftAccumulate<B> for Module<B>where
B: Backend + HalVmpImpl<B>,
impl<B> VmpApplyDftToDftAccumulate<B> for Module<B>where
B: Backend + HalVmpImpl<B>,
Source§fn vmp_apply_dft_to_dft_accumulate(
&self,
res: &mut VecZnxDft<<B as Backend>::BufMut<'_>, B>,
a: &VecZnxDft<<B as Backend>::BufRef<'_>, B>,
b: &VmpPMat<<B as Backend>::BufRef<'_>, B>,
limb_offset: usize,
scratch: &mut ScratchArena<'_, B>,
)
fn vmp_apply_dft_to_dft_accumulate( &self, res: &mut VecZnxDft<<B as Backend>::BufMut<'_>, B>, a: &VecZnxDft<<B as Backend>::BufRef<'_>, B>, b: &VmpPMat<<B as Backend>::BufRef<'_>, B>, limb_offset: usize, scratch: &mut ScratchArena<'_, B>, )
res += a · pmat, shifted by limb_offset limbs.Source§impl<B> VmpApplyDftToDftAccumulateTmpBytes for Module<B>where
B: Backend + HalVmpImpl<B>,
impl<B> VmpApplyDftToDftAccumulateTmpBytes for Module<B>where
B: Backend + HalVmpImpl<B>,
Source§impl<B> VmpApplyDftToDftTmpBytes for Module<B>where
B: Backend + HalVmpImpl<B>,
impl<B> VmpApplyDftToDftTmpBytes for Module<B>where
B: Backend + HalVmpImpl<B>,
Source§impl<B> VmpPMatAlloc<B> for Module<B>where
B: Backend,
impl<B> VmpPMatAlloc<B> for Module<B>where
B: Backend,
Source§impl<B> VmpPMatBytesOf for Module<B>where
B: Backend,
impl<B> VmpPMatBytesOf for Module<B>where
B: Backend,
Source§impl<B> VmpPrepare<B> for Module<B>where
B: Backend + HalVmpImpl<B>,
impl<B> VmpPrepare<B> for Module<B>where
B: Backend + HalVmpImpl<B>,
fn vmp_prepare( &self, res: &mut VmpPMat<<B as Backend>::BufMut<'_>, B>, a: &MatZnx<<B as Backend>::BufRef<'_>>, scratch: &mut ScratchArena<'_, B>, )
Source§impl<B> VmpPrepareTmpBytes for Module<B>where
B: Backend + HalVmpImpl<B>,
impl<B> VmpPrepareTmpBytes for Module<B>where
B: Backend + HalVmpImpl<B>,
impl<B> Send for Module<B>where
B: Backend,
impl<B> Sync for Module<B>where
B: Backend,
Auto Trait Implementations§
impl<B> Freeze for Module<B>
impl<B> RefUnwindSafe for Module<B>
impl<B> Unpin for Module<B>where
B: Unpin,
impl<B> UnsafeUnpin for Module<B>
impl<B> UnwindSafe for Module<B>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more