arnaucube
arnaucube/poulpyPublic Self-hosted repository
Remove T from GetBitCircuit
Pro7ech jeanphilippe.bossuat@gmail.com
Wed, 12 Nov 2025 15:08:21 +0100
commit

33e1656368c92b40626a4447ae858f4fdcff2e21

parent

1423de1c46bc3d81099f75c5e8473ebe185b06e0

M poulpy-schemes/src/tfhe/bdd_arithmetic/bdd_2w_to_1w.rs → poulpy-schemes/src/tfhe/bdd_arithmetic/bdd_2w_to_1w.rs

@@ -30,7 +30,7 @@ key: &H,

scratch: &mut Scratch<BE>, ) where T: UnsignedInteger, - C: GetBitCircuitInfo<T>, + C: GetBitCircuitInfo, R: DataMut, A: DataRef, B: DataRef,

@@ -54,7 +54,7 @@ key: &H,

scratch: &mut Scratch<BE>, ) where T: UnsignedInteger, - C: GetBitCircuitInfo<T>, + C: GetBitCircuitInfo, R: DataMut, A: DataRef, B: DataRef,
M poulpy-schemes/src/tfhe/bdd_arithmetic/eval.rs → poulpy-schemes/src/tfhe/bdd_arithmetic/eval.rs

@@ -14,13 +14,13 @@ },

layouts::{Backend, DataMut, Module, Scratch, VecZnxBig, ZnxZero}, }; -use crate::tfhe::bdd_arithmetic::{GetGGSWBit, UnsignedInteger}; +use crate::tfhe::bdd_arithmetic::GetGGSWBit; pub trait BitCircuitInfo: Sync { fn info(&self) -> (&[Node], usize); } -pub trait GetBitCircuitInfo<T: UnsignedInteger>: Sync { +pub trait GetBitCircuitInfo: Sync { fn input_size(&self) -> usize; fn output_size(&self) -> usize; fn get_circuit(&self, bit: usize) -> (&[Node], usize);

@@ -38,7 +38,7 @@ }

pub struct Circuit<C: BitCircuitInfo, const N: usize>(pub [C; N]); -impl<C, T: UnsignedInteger, const N: usize> GetBitCircuitInfo<T> for Circuit<C, N> +impl<C, const N: usize> GetBitCircuitInfo for Circuit<C, N> where C: BitCircuitInfo + BitCircuitFamily, {

@@ -59,21 +59,16 @@ where

R: GLWEInfos, G: GGSWInfos; - fn execute_bdd_circuit<C, G, O, T: UnsignedInteger>( - &self, - out: &mut [GLWE<O>], - inputs: &G, - circuit: &C, - scratch: &mut Scratch<BE>, - ) where + fn execute_bdd_circuit<C, G, O>(&self, out: &mut [GLWE<O>], inputs: &G, circuit: &C, scratch: &mut Scratch<BE>) + where G: GetGGSWBit<BE> + BitSize, - C: GetBitCircuitInfo<T>, + C: GetBitCircuitInfo, O: DataMut, { self.execute_bdd_circuit_multi_thread(1, out, inputs, circuit, scratch); } - fn execute_bdd_circuit_multi_thread<C, G, O, T: UnsignedInteger>( + fn execute_bdd_circuit_multi_thread<C, G, O>( &self, threads: usize, out: &mut [GLWE<O>],

@@ -82,7 +77,7 @@ circuit: &C,

scratch: &mut Scratch<BE>, ) where G: GetGGSWBit<BE> + BitSize, - C: GetBitCircuitInfo<T>, + C: GetBitCircuitInfo, O: DataMut; }

@@ -103,7 +98,7 @@ {

2 * state_size * GLWE::bytes_of_from_infos(res_infos) + self.cmux_tmp_bytes(res_infos, res_infos, ggsw_infos) } - fn execute_bdd_circuit_multi_thread<C, G, O, T: UnsignedInteger>( + fn execute_bdd_circuit_multi_thread<C, G, O>( &self, threads: usize, out: &mut [GLWE<O>],

@@ -112,7 +107,7 @@ circuit: &C,

scratch: &mut Scratch<BE>, ) where G: GetGGSWBit<BE> + BitSize, - C: GetBitCircuitInfo<T>, + C: GetBitCircuitInfo, O: DataMut, { #[cfg(debug_assertions)]