poulpy_core/api/mod.rs
1//! Safe, user-facing trait definitions for Module-LWE operations.
2//!
3//! Traits are organized by operation family:
4//! - `automorphism` -- Galois automorphisms on ciphertexts and automorphism keys.
5//! - `conversion` -- conversions between ciphertext representations.
6//! - `decryption` -- secret-key decryption operations.
7//! - `encryption` -- secret/public-key encryption and evaluation-key generation.
8//! - `external_product` -- GLWE/GGLWE/GGSW external products.
9//! - `keyswitching` -- LWE/GLWE/GGLWE/GGSW key-switching.
10//! - `noise` -- runtime noise measurement helpers for ciphertexts.
11//! - `operations` -- arithmetic helpers, packing, trace, and tensoring.
12//!
13//! Scheme authors can program against these traits directly. Execution is
14//! dispatched through the [`crate::oep`] backend extension points by blanket
15//! implementations in the (private) `delegates` module.
16
17mod automorphism;
18mod conversion;
19mod decryption;
20mod encryption;
21mod external_product;
22mod keyswitching;
23mod noise;
24mod operations;
25mod transfer;
26
27pub use automorphism::*;
28pub use conversion::*;
29pub use decryption::*;
30pub use encryption::*;
31pub use external_product::*;
32pub use keyswitching::*;
33pub use noise::*;
34pub use operations::*;
35pub use transfer::*;