pub trait FunctionalPackingKeyswitchKeyEntity: AbstractEntity<Kind = FunctionalPackingKeyswitchKeyKind> {
type InputKeyDistribution: KeyDistributionMarker;
type OutputKeyDistribution: KeyDistributionMarker;
// Required methods
fn input_lwe_dimension(&self) -> LweDimension;
fn output_glwe_dimension(&self) -> GlweDimension;
fn output_polynomial_size(&self) -> PolynomialSize;
fn decomposition_level_count(&self) -> DecompositionLevelCount;
fn decomposition_base_log(&self) -> DecompositionBaseLog;
}Expand description
A trait implemented by types embodying a packing keyswitch key.
A packing keyswitch key is associated with two KeyDistributionMarker types:
- The
InputKeyDistributiontype conveys the distribution of the input secret key. - The
OutputKeyDistributiontype conveys the distribution of the output secret key.
§Formal Definition
Required Associated Types§
Sourcetype InputKeyDistribution: KeyDistributionMarker
type InputKeyDistribution: KeyDistributionMarker
The distribution of the key the input ciphertext is encrypted with.
Sourcetype OutputKeyDistribution: KeyDistributionMarker
type OutputKeyDistribution: KeyDistributionMarker
The distribution of the key the output ciphertext is encrypted with.
Required Methods§
Sourcefn input_lwe_dimension(&self) -> LweDimension
fn input_lwe_dimension(&self) -> LweDimension
Returns the input LWE dimension of the key.
Sourcefn output_glwe_dimension(&self) -> GlweDimension
fn output_glwe_dimension(&self) -> GlweDimension
Returns the output GLWE dimension of the key.
Sourcefn output_polynomial_size(&self) -> PolynomialSize
fn output_polynomial_size(&self) -> PolynomialSize
Returns the output polynomial degree of the key.
Sourcefn decomposition_level_count(&self) -> DecompositionLevelCount
fn decomposition_level_count(&self) -> DecompositionLevelCount
Returns the number of decomposition levels of the key.
Sourcefn decomposition_base_log(&self) -> DecompositionBaseLog
fn decomposition_base_log(&self) -> DecompositionBaseLog
Returns the logarithm of the base used in the key.
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.