mirror of
https://github.com/arnaucube/phantom-zone.git
synced 2026-01-11 16:41:29 +01:00
put decomposer in main.rs in different file
This commit is contained in:
@@ -160,7 +160,7 @@ where
|
||||
}
|
||||
}
|
||||
|
||||
trait BoolEncoding {
|
||||
pub(super) trait BoolEncoding {
|
||||
type Element;
|
||||
fn true_el(&self) -> Self::Element;
|
||||
fn false_el(&self) -> Self::Element;
|
||||
@@ -210,7 +210,7 @@ where
|
||||
}
|
||||
}
|
||||
|
||||
struct BoolPbsInfo<M: Matrix, Ntt, RlweModOp, LweModOp> {
|
||||
pub(super) struct BoolPbsInfo<M: Matrix, Ntt, RlweModOp, LweModOp> {
|
||||
auto_decomposer: DefaultDecomposer<M::MatElement>,
|
||||
rlwe_rgsw_decomposer: (
|
||||
DefaultDecomposer<M::MatElement>,
|
||||
@@ -305,7 +305,15 @@ where
|
||||
_phantom: PhantomData<M>,
|
||||
}
|
||||
|
||||
impl<M: Matrix, NttOp, RlweModOp, LweModOp> BoolEvaluator<M, NttOp, RlweModOp, LweModOp> {}
|
||||
impl<M: Matrix, NttOp, RlweModOp, LweModOp> BoolEvaluator<M, NttOp, RlweModOp, LweModOp> {
|
||||
pub(super) fn parameters(&self) -> &BoolParameters<M::MatElement> {
|
||||
&self.pbs_info.parameters
|
||||
}
|
||||
|
||||
pub(super) fn pbs_info(&self) -> &BoolPbsInfo<M, NttOp, RlweModOp, LweModOp> {
|
||||
&self.pbs_info
|
||||
}
|
||||
}
|
||||
|
||||
impl<M: Matrix, NttOp, RlweModOp, LweModOp> BoolEvaluator<M, NttOp, RlweModOp, LweModOp>
|
||||
where
|
||||
@@ -1687,7 +1695,7 @@ mod tests {
|
||||
>::new(MP_BOOL_PARAMS);
|
||||
|
||||
let (parties, collective_pk, _, _, server_key_eval, ideal_client_key) =
|
||||
_multi_party_all_keygen(&bool_evaluator, 64);
|
||||
_multi_party_all_keygen(&bool_evaluator, 2);
|
||||
|
||||
let mut m0 = true;
|
||||
let mut m1 = false;
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
pub(crate) mod evaluator;
|
||||
pub(crate) mod keys;
|
||||
pub mod noise;
|
||||
pub(crate) mod parameters;
|
||||
|
||||
pub type FheBool = Vec<u64>;
|
||||
|
||||
@@ -319,22 +319,58 @@ pub(crate) const MP_BOOL_PARAMS: BoolParameters<u64> = BoolParameters::<u64> {
|
||||
lwe_decomposer_base: DecompostionLogBase(4),
|
||||
lwe_decomposer_count: DecompositionCount(5),
|
||||
rlrg_decomposer_base: DecompostionLogBase(12),
|
||||
rlrg_decomposer_count: (DecompositionCount(2), DecompositionCount(2)),
|
||||
rlrg_decomposer_count: (DecompositionCount(5), DecompositionCount(5)),
|
||||
rgrg_decomposer_base: DecompostionLogBase(12),
|
||||
rgrg_decomposer_count: (DecompositionCount(5), DecompositionCount(4)),
|
||||
rgrg_decomposer_count: (DecompositionCount(5), DecompositionCount(5)),
|
||||
auto_decomposer_base: DecompostionLogBase(12),
|
||||
auto_decomposer_count: DecompositionCount(5),
|
||||
g: 5,
|
||||
w: 10,
|
||||
};
|
||||
|
||||
// pub(crate) const SMALL_MP_BOOL_PARAMS: BoolParameters<u64> =
|
||||
// BoolParameters::<u64> { rlwe_q:
|
||||
// CiphertextModulus::new_non_native(36028797018820609), lwe_q:
|
||||
// CiphertextModulus::new_non_native(1 << 20), br_q: 1 << 11,
|
||||
// rlwe_n: PolynomialSize(1 << 11),
|
||||
// lwe_n: LweDimension(600),
|
||||
// lwe_decomposer_base: DecompostionLogBase(4),
|
||||
// lwe_decomposer_count: DecompositionCount(5),
|
||||
// rlrg_decomposer_base: DecompostionLogBase(11),
|
||||
// rlrg_decomposer_count: (DecompositionCount(2), DecompositionCount(2)),
|
||||
// rgrg_decomposer_base: DecompostionLogBase(11),
|
||||
// rgrg_decomposer_count: (DecompositionCount(5), DecompositionCount(4)),
|
||||
// auto_decomposer_base: DecompostionLogBase(11),
|
||||
// auto_decomposer_count: DecompositionCount(2),
|
||||
// g: 5,
|
||||
// w: 10,
|
||||
// };
|
||||
|
||||
pub(crate) const SMALL_MP_BOOL_PARAMS: BoolParameters<u64> = BoolParameters::<u64> {
|
||||
rlwe_q: CiphertextModulus::new_non_native(36028797018820609),
|
||||
lwe_q: CiphertextModulus::new_non_native(1 << 20),
|
||||
br_q: 1 << 11,
|
||||
rlwe_n: PolynomialSize(1 << 11),
|
||||
lwe_n: LweDimension(500),
|
||||
lwe_decomposer_base: DecompostionLogBase(4),
|
||||
lwe_decomposer_count: DecompositionCount(5),
|
||||
rlrg_decomposer_base: DecompostionLogBase(11),
|
||||
rlrg_decomposer_count: (DecompositionCount(5), DecompositionCount(5)),
|
||||
rgrg_decomposer_base: DecompostionLogBase(11),
|
||||
rgrg_decomposer_count: (DecompositionCount(5), DecompositionCount(5)),
|
||||
auto_decomposer_base: DecompostionLogBase(11),
|
||||
auto_decomposer_count: DecompositionCount(5),
|
||||
g: 5,
|
||||
w: 10,
|
||||
};
|
||||
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
use crate::utils::generate_prime;
|
||||
|
||||
#[test]
|
||||
fn find_prime() {
|
||||
let bits = 61;
|
||||
let bits = 55;
|
||||
let ring_size = 1 << 11;
|
||||
let prime = generate_prime(bits, ring_size * 2, 1 << bits).unwrap();
|
||||
dbg!(prime);
|
||||
|
||||
Reference in New Issue
Block a user