concrete-core 1.0.2

Concrete is a fully homomorphic encryption (FHE) library that implements Zama's variant of TFHE.
Documentation
use crate::commons::math::random::CompressionSeed;
use crate::prelude::{DecompositionBaseLog, DecompositionLevelCount, LweDimension};
use crate::specification::entities::markers::LweSeededKeyswitchKeyKind;
use crate::specification::entities::AbstractEntity;

/// A trait implemented by types embodying a seeded LWE keyswitch key.
///
/// # Formal Definition
///
/// ## Seeded Key Switching Key
///
/// TODO
pub trait LweSeededKeyswitchKeyEntity: AbstractEntity<Kind = LweSeededKeyswitchKeyKind> {
    /// Returns the input LWE dimension of the key.
    fn input_lwe_dimension(&self) -> LweDimension;

    /// Returns the output lew dimension of the key.
    fn output_lwe_dimension(&self) -> LweDimension;

    /// Returns the number of decomposition levels of the key.
    fn decomposition_level_count(&self) -> DecompositionLevelCount;

    /// Returns the logarithm of the base used in the key.
    fn decomposition_base_log(&self) -> DecompositionBaseLog;

    /// Returns the compression seed used to generate the mask of the LWE ciphertext during
    /// encryption.
    fn compression_seed(&self) -> CompressionSeed;
}