mirror of
https://github.com/zama-ai/concrete.git
synced 2026-02-09 03:55:04 -05:00
rename pbs_decomp br_decomp
This commit is contained in:
@@ -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<Vec<OperatorIndex>>,
|
||||
pub pbs_decomposition: Vec<Vec<OperatorIndex>>,
|
||||
pub br_decomposition: Vec<Vec<OperatorIndex>>,
|
||||
pub ks_decomposition: Vec<Vec<OperatorIndex>>,
|
||||
}
|
||||
|
||||
@@ -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<GlweParameterRanges>,
|
||||
pub pbs_decomposition: Vec<PbsDecompositionParameterRanges>, // 0 => lpetit , 1 => l plus grand
|
||||
pub br_decomposition: Vec<BrDecompositionParameterRanges>, // 0 => lpetit , 1 => l plus grand
|
||||
pub ks_decomposition: Vec<KsDecompositionParameterRanges>,
|
||||
}
|
||||
|
||||
pub struct ParameterValues {
|
||||
pub glwe: Vec<GlweParameters>,
|
||||
pub pbs_decomposition: Vec<PbsDecompositionParameters>,
|
||||
pub br_decomposition: Vec<BrDecompositionParameters>,
|
||||
pub ks_decomposition: Vec<KsDecompositionParameters>,
|
||||
}
|
||||
|
||||
@@ -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<InputParameterIndexed, AtomicPatternParametersIndexed> {
|
||||
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)]]
|
||||
);
|
||||
|
||||
|
||||
@@ -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,
|
||||
}
|
||||
|
||||
|
||||
@@ -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<LweDimension>,
|
||||
pub glwe_dimension_and_polynomial_size: Vec<GlweParameters>,
|
||||
pub pbs_decomposition_parameters: Vec<PbsDecompositionParameters>,
|
||||
pub br_decomposition_parameters: Vec<BrDecompositionParameters>,
|
||||
pub ks_decomposition_parameters: Vec<KsDecompositionParameters>,
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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<PbsDecompositionParameters> {
|
||||
) -> Vec<BrDecompositionParameters> {
|
||||
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,
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user