#[derive(Clone, PartialEq)] pub(super) struct BoolParameters { pub(super) rlwe_q: El, pub(super) rlwe_logq: usize, pub(super) lwe_q: El, pub(super) lwe_logq: usize, pub(super) br_q: usize, pub(super) rlwe_n: usize, pub(super) lwe_n: usize, pub(super) d_rgsw: usize, pub(super) logb_rgsw: usize, pub(super) d_lwe: usize, pub(super) logb_lwe: usize, pub(super) g: usize, pub(super) w: usize, } // impl BoolParameters { // fn rlwe_q(&self) -> &El { // &self.rlwe_q // } // } pub(super) const SP_BOOL_PARAMS: BoolParameters = BoolParameters:: { rlwe_q: 268369921u64, rlwe_logq: 28, lwe_q: 1 << 16, lwe_logq: 16, br_q: 1 << 10, rlwe_n: 1 << 10, lwe_n: 493, d_rgsw: 3, logb_rgsw: 8, d_lwe: 3, logb_lwe: 4, g: 5, w: 1, }; pub(super) const MP_BOOL_PARAMS: BoolParameters = BoolParameters:: { rlwe_q: 2305843009213616129u64, rlwe_logq: 61, lwe_q: 1 << 25, lwe_logq: 25, br_q: 1 << 11, rlwe_n: 1 << 11, lwe_n: 500, d_rgsw: 7, logb_rgsw: 8, d_lwe: 5, logb_lwe: 5, g: 5, w: 1, }; #[cfg(test)] mod tests { use crate::utils::generate_prime; #[test] fn find_prime() { let bits = 61; let ring_size = 1 << 11; let prime = generate_prime(bits, ring_size * 2, 1 << bits).unwrap(); dbg!(prime); } }