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;
 3
 4//[cfg(tests)]
 5//pub mod tests;
 6
 7pub use circuit::*;
 8pub use key::*;
 9
10use poulpy_core::layouts::{GGSW, LWE};
11
12use poulpy_hal::layouts::{Backend, DataMut, DataRef, Module, Scratch};
13
14pub trait CirtuitBootstrappingExecute<B: Backend> {
15    fn execute_to_constant<DM: DataMut, DR: DataRef>(
16        &self,
17        module: &Module<B>,
18        res: &mut GGSW<DM>,
19        lwe: &LWE<DR>,
20        log_domain: usize,
21        extension_factor: usize,
22        scratch: &mut Scratch<B>,
23    );
24
25    #[allow(clippy::too_many_arguments)]
26    fn execute_to_exponent<DM: DataMut, DR: DataRef>(
27        &self,
28        module: &Module<B>,
29        log_gap_out: usize,
30        res: &mut GGSW<DM>,
31        lwe: &LWE<DR>,
32        log_domain: usize,
33        extension_factor: usize,
34        scratch: &mut Scratch<B>,
35    );
36}