FunctionalPackingKeyswitchKeyEntity

Trait FunctionalPackingKeyswitchKeyEntity 

Source
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:

§Formal Definition

Required Associated Types§

Source

type InputKeyDistribution: KeyDistributionMarker

The distribution of the key the input ciphertext is encrypted with.

Source

type OutputKeyDistribution: KeyDistributionMarker

The distribution of the key the output ciphertext is encrypted with.

Required Methods§

Source

fn input_lwe_dimension(&self) -> LweDimension

Returns the input LWE dimension of the key.

Source

fn output_glwe_dimension(&self) -> GlweDimension

Returns the output GLWE dimension of the key.

Source

fn output_polynomial_size(&self) -> PolynomialSize

Returns the output polynomial degree of the key.

Source

fn decomposition_level_count(&self) -> DecompositionLevelCount

Returns the number of decomposition levels of the key.

Source

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.

Implementors§