diff --git a/concrete-optimizer/src/global_parameters.rs b/concrete-optimizer/src/global_parameters.rs index 4d630218b..736c33c74 100644 --- a/concrete-optimizer/src/global_parameters.rs +++ b/concrete-optimizer/src/global_parameters.rs @@ -4,14 +4,14 @@ use crate::graph::operator::{Operator, OperatorIndex}; use crate::graph::parameter_indexed::{AtomicPatternParametersIndexed, InputParameterIndexed}; use crate::graph::{parameter_indexed, range_parametrized, unparametrized}; use crate::parameters::{ - GlweParameterRanges, GlweParameters, KsDecompositionParameterRanges, KsDecompositionParameters, - PbsDecompositionParameterRanges, PbsDecompositionParameters, + BrDecompositionParameterRanges, BrDecompositionParameters, GlweParameterRanges, GlweParameters, + KsDecompositionParameterRanges, KsDecompositionParameters, }; #[derive(Clone)] pub(crate) struct ParameterToOperation { pub glwe: Vec>, - pub pbs_decomposition: Vec>, + pub br_decomposition: Vec>, pub ks_decomposition: Vec>, } @@ -19,20 +19,20 @@ pub(crate) struct ParameterToOperation { #[derive(Clone, Copy, PartialEq, Debug)] pub struct ParameterCount { pub glwe: usize, - pub pbs_decomposition: usize, + pub br_decomposition: usize, pub ks_decomposition: usize, } #[derive(Clone)] pub struct ParameterRanges { pub glwe: Vec, - pub pbs_decomposition: Vec, // 0 => lpetit , 1 => l plus grand + pub br_decomposition: Vec, // 0 => lpetit , 1 => l plus grand pub ks_decomposition: Vec, } pub struct ParameterValues { pub glwe: Vec, - pub pbs_decomposition: Vec, + pub br_decomposition: Vec, pub ks_decomposition: Vec, } @@ -42,7 +42,7 @@ pub struct ParameterDomains { // TODO: verify if pareto optimal parameters depends on precisions pub glwe_pbs_constrained: GlweParameterRanges, pub free_glwe: GlweParameterRanges, - pub pbs_decomposition: PbsDecompositionParameterRanges, + pub br_decomposition: BrDecompositionParameterRanges, pub ks_decomposition: KsDecompositionParameterRanges, } @@ -58,7 +58,7 @@ pub const DEFAUT_DOMAINS: ParameterDomains = ParameterDomains { end: 1025, }, }, - pbs_decomposition: PbsDecompositionParameterRanges { + br_decomposition: BrDecompositionParameterRanges { log2_base: Range { start: 1, end: 65 }, level: Range { start: 1, end: 65 }, }, @@ -101,7 +101,7 @@ fn convert_maximal( ) -> Operator { let external_glwe_index = 0; let internal_lwe_index = 1; - let pbs_decomposition_index = 0; + let br_decomposition_index = 0; let ks_decomposition_index = 0; match op { Operator::Input { out_precision, .. } => Operator::Input { @@ -123,7 +123,7 @@ fn convert_maximal( input_lwe_dimensionlwe_dimension_index: external_glwe_index, ks_decomposition_parameter_index: ks_decomposition_index, internal_lwe_dimension_index: internal_lwe_index, - pbs_decomposition_parameter_index: pbs_decomposition_index, + br_decomposition_parameter_index: br_decomposition_index, output_glwe_params_index: external_glwe_index, }, }, @@ -136,13 +136,13 @@ pub fn maximal_unify(g: unparametrized::AtomicPatternDag) -> parameter_indexed:: let parameters = ParameterCount { glwe: 2, - pbs_decomposition: 1, + br_decomposition: 1, ks_decomposition: 1, }; let mut reverse_map = ParameterToOperation { glwe: vec![vec![], vec![]], - pbs_decomposition: vec![vec![]], + br_decomposition: vec![vec![]], ks_decomposition: vec![vec![]], }; @@ -154,7 +154,7 @@ pub fn maximal_unify(g: unparametrized::AtomicPatternDag) -> parameter_indexed:: Operator::AtomicPattern { .. } => { reverse_map.glwe[0].push(OperatorIndex(i)); reverse_map.glwe[1].push(OperatorIndex(i)); - reverse_map.pbs_decomposition[0].push(OperatorIndex(i)); + reverse_map.br_decomposition[0].push(OperatorIndex(i)); reverse_map.ks_decomposition[0].push(OperatorIndex(i)); } } @@ -195,9 +195,9 @@ pub fn domains_to_ranges( let parameter_ranges = ParameterRanges { glwe, - pbs_decomposition: vec![ - domains.pbs_decomposition; - parameters_count.pbs_decomposition as usize + br_decomposition: vec![ + domains.br_decomposition; + parameters_count.br_decomposition as usize ], ks_decomposition: vec![domains.ks_decomposition; parameters_count.ks_decomposition], }; @@ -242,7 +242,7 @@ mod tests { graph_params.parameters_count, ParameterCount { glwe: 2, - pbs_decomposition: 1, + br_decomposition: 1, ks_decomposition: 1, } ); @@ -261,7 +261,7 @@ mod tests { ); assert_eq!( - graph_params.reverse_map.pbs_decomposition, + graph_params.reverse_map.br_decomposition, vec![vec![OperatorIndex(2), OperatorIndex(3)]] ); diff --git a/concrete-optimizer/src/graph/parameter_indexed.rs b/concrete-optimizer/src/graph/parameter_indexed.rs index 9ec9c317e..7fb7851d7 100644 --- a/concrete-optimizer/src/graph/parameter_indexed.rs +++ b/concrete-optimizer/src/graph/parameter_indexed.rs @@ -11,7 +11,7 @@ pub struct AtomicPatternParametersIndexed { pub input_lwe_dimensionlwe_dimension_index: usize, pub ks_decomposition_parameter_index: usize, pub internal_lwe_dimension_index: usize, - pub pbs_decomposition_parameter_index: usize, + pub br_decomposition_parameter_index: usize, pub output_glwe_params_index: usize, } diff --git a/concrete-optimizer/src/parameters.rs b/concrete-optimizer/src/parameters.rs index abfe50b68..9444e1ed1 100644 --- a/concrete-optimizer/src/parameters.rs +++ b/concrete-optimizer/src/parameters.rs @@ -11,7 +11,7 @@ mod individual { } #[derive(Clone, Copy, Hash, PartialEq, Eq, PartialOrd, Ord, Debug)] - pub struct PbsDecompositionParameters { + pub struct BrDecompositionParameters { pub level: u64, pub log2_base: u64, } @@ -37,7 +37,7 @@ mod individual { pub input_lwe_dimension: LweDimension, pub ks_decomposition_parameter: KsDecompositionParameters, pub internal_lwe_dimension: LweDimension, - pub pbs_decomposition_parameter: PbsDecompositionParameters, + pub br_decomposition_parameter: BrDecompositionParameters, pub output_glwe_params: GlweParameters, } } @@ -64,7 +64,7 @@ mod range { } #[derive(Clone, Copy)] - pub struct PbsDecompositionParameterRanges { + pub struct BrDecompositionParameterRanges { pub level: Range, pub log2_base: Range, } @@ -72,14 +72,14 @@ mod range { mod grouped { use super::{ - GlweParameters, KsDecompositionParameters, LweDimension, PbsDecompositionParameters, + BrDecompositionParameters, GlweParameters, KsDecompositionParameters, LweDimension, }; #[derive(Clone)] pub struct Parameters { pub lwe_dimension: Vec, pub glwe_dimension_and_polynomial_size: Vec, - pub pbs_decomposition_parameters: Vec, + pub br_decomposition_parameters: Vec, pub ks_decomposition_parameters: Vec, } } diff --git a/concrete-optimizer/src/pareto.rs b/concrete-optimizer/src/pareto.rs index 1b7f9a2ff..7f04bb9bb 100644 --- a/concrete-optimizer/src/pareto.rs +++ b/concrete-optimizer/src/pareto.rs @@ -1,6 +1,6 @@ use crate::noise_estimator::operators::atomic_pattern::{variance_bootstrap, variance_keyswitch}; use crate::parameters::{ - GlweParameterRanges, KsDecompositionParameters, PbsDecompositionParameters, + BrDecompositionParameters, GlweParameterRanges, KsDecompositionParameters, }; use crate::security::glwe::minimal_variance; use concrete_commons::dispersion::Variance; @@ -11,7 +11,7 @@ pub fn extract_br_pareto( output_glwe_range: &GlweParameterRanges, input_lwe_range: &crate::parameters::LweDimensionRange, ciphertext_modulus_log: u64, -) -> Vec { +) -> Vec { let mut paretos = HashSet::new(); for glwe_dimension in &output_glwe_range.glwe_dimension { @@ -55,7 +55,7 @@ pub fn extract_br_pareto( } } if let Some(log2_base_arg_min) = log_base_arg_min { - let _ = paretos.insert(PbsDecompositionParameters { + let _ = paretos.insert(BrDecompositionParameters { level, log2_base: log2_base_arg_min, });