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_backend::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}