mirror of
https://github.com/arnaucube/poulpy.git
synced 2026-02-10 13:16:44 +01:00
Remove T from GetBitCircuit
This commit is contained in:
@@ -30,7 +30,7 @@ where
|
|||||||
scratch: &mut Scratch<BE>,
|
scratch: &mut Scratch<BE>,
|
||||||
) where
|
) where
|
||||||
T: UnsignedInteger,
|
T: UnsignedInteger,
|
||||||
C: GetBitCircuitInfo<T>,
|
C: GetBitCircuitInfo,
|
||||||
R: DataMut,
|
R: DataMut,
|
||||||
A: DataRef,
|
A: DataRef,
|
||||||
B: DataRef,
|
B: DataRef,
|
||||||
@@ -54,7 +54,7 @@ where
|
|||||||
scratch: &mut Scratch<BE>,
|
scratch: &mut Scratch<BE>,
|
||||||
) where
|
) where
|
||||||
T: UnsignedInteger,
|
T: UnsignedInteger,
|
||||||
C: GetBitCircuitInfo<T>,
|
C: GetBitCircuitInfo,
|
||||||
R: DataMut,
|
R: DataMut,
|
||||||
A: DataRef,
|
A: DataRef,
|
||||||
B: DataRef,
|
B: DataRef,
|
||||||
|
|||||||
@@ -14,13 +14,13 @@ use poulpy_hal::{
|
|||||||
layouts::{Backend, DataMut, Module, Scratch, VecZnxBig, ZnxZero},
|
layouts::{Backend, DataMut, Module, Scratch, VecZnxBig, ZnxZero},
|
||||||
};
|
};
|
||||||
|
|
||||||
use crate::tfhe::bdd_arithmetic::{GetGGSWBit, UnsignedInteger};
|
use crate::tfhe::bdd_arithmetic::GetGGSWBit;
|
||||||
|
|
||||||
pub trait BitCircuitInfo: Sync {
|
pub trait BitCircuitInfo: Sync {
|
||||||
fn info(&self) -> (&[Node], usize);
|
fn info(&self) -> (&[Node], usize);
|
||||||
}
|
}
|
||||||
|
|
||||||
pub trait GetBitCircuitInfo<T: UnsignedInteger>: Sync {
|
pub trait GetBitCircuitInfo: Sync {
|
||||||
fn input_size(&self) -> usize;
|
fn input_size(&self) -> usize;
|
||||||
fn output_size(&self) -> usize;
|
fn output_size(&self) -> usize;
|
||||||
fn get_circuit(&self, bit: usize) -> (&[Node], usize);
|
fn get_circuit(&self, bit: usize) -> (&[Node], usize);
|
||||||
@@ -38,7 +38,7 @@ pub trait BitCircuitFamily {
|
|||||||
|
|
||||||
pub struct Circuit<C: BitCircuitInfo, const N: usize>(pub [C; N]);
|
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
|
where
|
||||||
C: BitCircuitInfo + BitCircuitFamily,
|
C: BitCircuitInfo + BitCircuitFamily,
|
||||||
{
|
{
|
||||||
@@ -59,21 +59,16 @@ pub trait ExecuteBDDCircuit<BE: Backend> {
|
|||||||
R: GLWEInfos,
|
R: GLWEInfos,
|
||||||
G: GGSWInfos;
|
G: GGSWInfos;
|
||||||
|
|
||||||
fn execute_bdd_circuit<C, G, O, T: UnsignedInteger>(
|
fn execute_bdd_circuit<C, G, O>(&self, out: &mut [GLWE<O>], inputs: &G, circuit: &C, scratch: &mut Scratch<BE>)
|
||||||
&self,
|
where
|
||||||
out: &mut [GLWE<O>],
|
|
||||||
inputs: &G,
|
|
||||||
circuit: &C,
|
|
||||||
scratch: &mut Scratch<BE>,
|
|
||||||
) where
|
|
||||||
G: GetGGSWBit<BE> + BitSize,
|
G: GetGGSWBit<BE> + BitSize,
|
||||||
C: GetBitCircuitInfo<T>,
|
C: GetBitCircuitInfo,
|
||||||
O: DataMut,
|
O: DataMut,
|
||||||
{
|
{
|
||||||
self.execute_bdd_circuit_multi_thread(1, out, inputs, circuit, scratch);
|
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,
|
&self,
|
||||||
threads: usize,
|
threads: usize,
|
||||||
out: &mut [GLWE<O>],
|
out: &mut [GLWE<O>],
|
||||||
@@ -82,7 +77,7 @@ pub trait ExecuteBDDCircuit<BE: Backend> {
|
|||||||
scratch: &mut Scratch<BE>,
|
scratch: &mut Scratch<BE>,
|
||||||
) where
|
) where
|
||||||
G: GetGGSWBit<BE> + BitSize,
|
G: GetGGSWBit<BE> + BitSize,
|
||||||
C: GetBitCircuitInfo<T>,
|
C: GetBitCircuitInfo,
|
||||||
O: DataMut;
|
O: DataMut;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -103,7 +98,7 @@ where
|
|||||||
2 * state_size * GLWE::bytes_of_from_infos(res_infos) + self.cmux_tmp_bytes(res_infos, res_infos, ggsw_infos)
|
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,
|
&self,
|
||||||
threads: usize,
|
threads: usize,
|
||||||
out: &mut [GLWE<O>],
|
out: &mut [GLWE<O>],
|
||||||
@@ -112,7 +107,7 @@ where
|
|||||||
scratch: &mut Scratch<BE>,
|
scratch: &mut Scratch<BE>,
|
||||||
) where
|
) where
|
||||||
G: GetGGSWBit<BE> + BitSize,
|
G: GetGGSWBit<BE> + BitSize,
|
||||||
C: GetBitCircuitInfo<T>,
|
C: GetBitCircuitInfo,
|
||||||
O: DataMut,
|
O: DataMut,
|
||||||
{
|
{
|
||||||
#[cfg(debug_assertions)]
|
#[cfg(debug_assertions)]
|
||||||
|
|||||||
Reference in New Issue
Block a user