arnaucube
arnaucube/poulpyPublic Self-hosted repository
poulpy/poulpy-schemes/src/tfhe/bdd_arithmetic/parameters.rs
poulpy-schemes/src/tfhe/bdd_arithmetic/parameters.rsRaw
 1#[cfg(test)]
 2use poulpy_core::layouts::{
 3    AutomorphismKeyLayout, Base2K, Degree, Dnum, Dsize, GGSWCiphertextLayout, GLWELayout, GLWEToLWEKeyLayout, Rank,
 4    TensorKeyLayout, TorusPrecision,
 5};
 6
 7#[cfg(test)]
 8use crate::tfhe::{
 9    bdd_arithmetic::BDDKeyLayout, blind_rotation::BlindRotationKeyLayout, circuit_bootstrapping::CircuitBootstrappingKeyLayout,
10};
11
12#[cfg(test)]
13pub(crate) const TEST_N_GLWE: u32 = 512;
14#[cfg(test)]
15pub(crate) const TEST_N_LWE: u32 = 77;
16#[cfg(test)]
17pub(crate) const TEST_BASE2K: u32 = 13;
18#[cfg(test)]
19pub(crate) const TEST_K_GLWE: u32 = 26;
20#[cfg(test)]
21pub(crate) const TEST_K_GGSW: u32 = 39;
22#[cfg(test)]
23pub(crate) const TEST_BLOCK_SIZE: u32 = 7;
24#[cfg(test)]
25pub(crate) const TEST_RANK: u32 = 2;
26
27#[cfg(test)]
28pub(crate) static TEST_GLWE_INFOS: GLWELayout = GLWELayout {
29    n: Degree(TEST_N_GLWE),
30    base2k: Base2K(TEST_BASE2K),
31    k: TorusPrecision(TEST_K_GLWE),
32    rank: Rank(TEST_RANK),
33};
34
35#[cfg(test)]
36pub(crate) static TEST_GGSW_INFOS: GGSWCiphertextLayout = GGSWCiphertextLayout {
37    n: Degree(TEST_N_GLWE),
38    base2k: Base2K(TEST_BASE2K),
39    k: TorusPrecision(TEST_K_GGSW),
40    rank: Rank(TEST_RANK),
41    dnum: Dnum(2),
42    dsize: Dsize(1),
43};
44
45#[cfg(test)]
46pub(crate) static TEST_BDD_KEY_LAYOUT: BDDKeyLayout = BDDKeyLayout {
47    cbt: CircuitBootstrappingKeyLayout {
48        layout_brk: BlindRotationKeyLayout {
49            n_glwe: Degree(TEST_N_GLWE),
50            n_lwe: Degree(TEST_N_LWE),
51            base2k: Base2K(TEST_BASE2K),
52            k: TorusPrecision(52),
53            dnum: Dnum(3),
54            rank: Rank(TEST_RANK),
55        },
56        layout_atk: AutomorphismKeyLayout {
57            n: Degree(TEST_N_GLWE),
58            base2k: Base2K(TEST_BASE2K),
59            k: TorusPrecision(52),
60            rank: Rank(TEST_RANK),
61            dnum: Dnum(3),
62            dsize: Dsize(1),
63        },
64        layout_tsk: TensorKeyLayout {
65            n: Degree(TEST_N_GLWE),
66            base2k: Base2K(TEST_BASE2K),
67            k: TorusPrecision(52),
68            rank: Rank(TEST_RANK),
69            dnum: Dnum(3),
70            dsize: Dsize(1),
71        },
72    },
73    ks: GLWEToLWEKeyLayout {
74        n: Degree(TEST_N_GLWE),
75        base2k: Base2K(TEST_BASE2K),
76        k: TorusPrecision(39),
77        rank_in: Rank(TEST_RANK),
78        dnum: Dnum(2),
79    },
80};