arnaucube
arnaucube/poulpyPublic Self-hosted repository
poulpy/poulpy-schemes/src/tfhe/circuit_bootstrapping/mod.rs
poulpy-schemes/src/tfhe/circuit_bootstrapping/mod.rsRaw
 1mod circuit;
 2mod key;
 3pub mod tests;
 4
 5pub use circuit::*;
 6pub use key::*;
 7
 8use poulpy_core::layouts::{GGSWCiphertext, LWECiphertext};
 9
10use poulpy_hal::layouts::{Backend, DataMut, DataRef, Module, Scratch};
11
12pub trait CirtuitBootstrappingExecute<B: Backend> {
13    fn execute_to_constant<DM: DataMut, DR: DataRef>(
14        &self,
15        module: &Module<B>,
16        res: &mut GGSWCiphertext<DM>,
17        lwe: &LWECiphertext<DR>,
18        log_domain: usize,
19        extension_factor: usize,
20        scratch: &mut Scratch<B>,
21    );
22
23    #[allow(clippy::too_many_arguments)]
24    fn execute_to_exponent<DM: DataMut, DR: DataRef>(
25        &self,
26        module: &Module<B>,
27        log_gap_out: usize,
28        res: &mut GGSWCiphertext<DM>,
29        lwe: &LWECiphertext<DR>,
30        log_domain: usize,
31        extension_factor: usize,
32        scratch: &mut Scratch<B>,
33    );
34}