arnaucube
arnaucube/poulpyPublic Self-hosted repository
poulpy/schemes/src/tfhe/circuit_bootstrapping/mod.rs
schemes/src/tfhe/circuit_bootstrapping/mod.rsRaw
 1mod circuit_bootstrapping;
 2mod key;
 3pub mod tests;
 4
 5pub use circuit_bootstrapping::*;
 6pub use key::*;
 7
 8use core::layouts::{GGSWCiphertext, LWECiphertext};
 9
10use 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    fn execute_to_exponent<DM: DataMut, DR: DataRef>(
24        &self,
25        module: &Module<B>,
26        log_gap_out: usize,
27        res: &mut GGSWCiphertext<DM>,
28        lwe: &LWECiphertext<DR>,
29        log_domain: usize,
30        extension_factor: usize,
31        scratch: &mut Scratch<B>,
32    );
33}