mirror of
https://github.com/zama-ai/tfhe-rs.git
synced 2026-01-10 15:18:33 -05:00
fix(doc): add syntax highlighting to rust doctests
This commit is contained in:
@@ -52,9 +52,9 @@ impl ServerKey {
|
||||
///
|
||||
/// # Examples
|
||||
///
|
||||
/// ```
|
||||
/// # use crate::ciphertext::{FheString, GenericPattern};
|
||||
/// # use crate::server_key::gen_keys;
|
||||
/// ```rust
|
||||
/// use crate::ciphertext::{FheString, GenericPattern};
|
||||
/// use crate::server_key::gen_keys;
|
||||
///
|
||||
/// let (ck, sk) = gen_keys();
|
||||
/// let (s1, s2) = ("hello", "hello");
|
||||
@@ -106,9 +106,9 @@ impl ServerKey {
|
||||
///
|
||||
/// # Examples
|
||||
///
|
||||
/// ```
|
||||
/// # use crate::ciphertext::{FheString, GenericPattern};
|
||||
/// # use crate::server_key::gen_keys;
|
||||
/// ```rust
|
||||
/// use crate::ciphertext::{FheString, GenericPattern};
|
||||
/// use crate::server_key::gen_keys;
|
||||
///
|
||||
/// let (ck, sk) = gen_keys();
|
||||
/// let (s1, s2) = ("hello", "world");
|
||||
@@ -133,9 +133,9 @@ impl ServerKey {
|
||||
///
|
||||
/// # Examples
|
||||
///
|
||||
/// ```
|
||||
/// # use crate::ciphertext::FheString;
|
||||
/// # use crate::server_key::gen_keys;
|
||||
/// ```rust
|
||||
/// use crate::ciphertext::FheString;
|
||||
/// use crate::server_key::gen_keys;
|
||||
///
|
||||
/// let (ck, sk) = gen_keys();
|
||||
/// let (s1, s2) = ("apple", "banana");
|
||||
@@ -163,9 +163,9 @@ impl ServerKey {
|
||||
///
|
||||
/// # Examples
|
||||
///
|
||||
/// ```
|
||||
/// # use crate::ciphertext::FheString;
|
||||
/// # use crate::server_key::gen_keys;
|
||||
/// ```rust
|
||||
/// use crate::ciphertext::FheString;
|
||||
/// use crate::server_key::gen_keys;
|
||||
///
|
||||
/// let (ck, sk) = gen_keys();
|
||||
/// let (s1, s2) = ("banana", "apple");
|
||||
@@ -194,9 +194,9 @@ impl ServerKey {
|
||||
///
|
||||
/// # Examples
|
||||
///
|
||||
/// ```
|
||||
/// # use crate::ciphertext::FheString;
|
||||
/// # use crate::server_key::gen_keys;
|
||||
/// ```rust
|
||||
/// use crate::ciphertext::FheString;
|
||||
/// use crate::server_key::gen_keys;
|
||||
///
|
||||
/// let (ck, sk) = gen_keys();
|
||||
/// let (s1, s2) = ("apple", "banana");
|
||||
@@ -225,9 +225,9 @@ impl ServerKey {
|
||||
///
|
||||
/// # Examples
|
||||
///
|
||||
/// ```
|
||||
/// # use crate::ciphertext::FheString;
|
||||
/// # use crate::server_key::gen_keys;
|
||||
/// ```rust
|
||||
/// use crate::ciphertext::FheString;
|
||||
/// use crate::server_key::gen_keys;
|
||||
///
|
||||
/// let (ck, sk) = gen_keys();
|
||||
/// let (s1, s2) = ("banana", "apple");
|
||||
|
||||
@@ -12,9 +12,9 @@ impl ServerKey {
|
||||
///
|
||||
/// # Examples
|
||||
///
|
||||
/// ```
|
||||
/// # use crate::ciphertext::FheString;
|
||||
/// # use crate::server_key::{FheStringLen, gen_keys};
|
||||
/// ```rust
|
||||
/// use crate::ciphertext::FheString;
|
||||
/// use crate::server_key::{gen_keys, FheStringLen};
|
||||
///
|
||||
/// let (ck, sk) = gen_keys();
|
||||
/// let s = "hello";
|
||||
@@ -71,9 +71,9 @@ impl ServerKey {
|
||||
///
|
||||
/// # Examples
|
||||
///
|
||||
/// ```
|
||||
/// # use crate::ciphertext::FheString;
|
||||
/// # use crate::server_key::{FheStringIsEmpty, gen_keys};
|
||||
/// ```rust
|
||||
/// use crate::ciphertext::FheString;
|
||||
/// use crate::server_key::{gen_keys, FheStringIsEmpty};
|
||||
///
|
||||
/// let (ck, sk) = gen_keys();
|
||||
/// let s = "";
|
||||
@@ -118,9 +118,9 @@ impl ServerKey {
|
||||
///
|
||||
/// # Examples
|
||||
///
|
||||
/// ```
|
||||
/// # use crate::ciphertext::FheString;
|
||||
/// # use crate::server_key::gen_keys;
|
||||
/// ```rust
|
||||
/// use crate::ciphertext::FheString;
|
||||
/// use crate::server_key::gen_keys;
|
||||
///
|
||||
/// let (ck, sk) = gen_keys();
|
||||
/// let s = "Hello World";
|
||||
@@ -172,9 +172,9 @@ impl ServerKey {
|
||||
///
|
||||
/// # Examples
|
||||
///
|
||||
/// ```
|
||||
/// # use crate::ciphertext::FheString;
|
||||
/// # use crate::server_key::gen_keys;
|
||||
/// ```rust
|
||||
/// use crate::ciphertext::FheString;
|
||||
/// use crate::server_key::gen_keys;
|
||||
///
|
||||
/// let (ck, sk) = gen_keys();
|
||||
/// let s = "Hello World";
|
||||
@@ -232,9 +232,9 @@ impl ServerKey {
|
||||
///
|
||||
/// # Examples
|
||||
///
|
||||
/// ```
|
||||
/// # use crate::ciphertext::{FheString, GenericPattern};
|
||||
/// # use crate::server_key::gen_keys;
|
||||
/// ```rust
|
||||
/// use crate::ciphertext::{FheString, GenericPattern};
|
||||
/// use crate::server_key::gen_keys;
|
||||
///
|
||||
/// let (ck, sk) = gen_keys();
|
||||
/// let (s1, s2) = ("Hello", "hello");
|
||||
@@ -267,9 +267,9 @@ impl ServerKey {
|
||||
///
|
||||
/// # Examples
|
||||
///
|
||||
/// ```
|
||||
/// # use crate::ciphertext::FheString;
|
||||
/// # use crate::server_key::gen_keys;
|
||||
/// ```rust
|
||||
/// use crate::ciphertext::FheString;
|
||||
/// use crate::server_key::gen_keys;
|
||||
///
|
||||
/// let (ck, sk) = gen_keys();
|
||||
/// let (lhs, rhs) = ("Hello, ", "world!");
|
||||
@@ -318,9 +318,9 @@ impl ServerKey {
|
||||
///
|
||||
/// # Examples
|
||||
///
|
||||
/// ```
|
||||
/// # use crate::ciphertext::{FheString, UIntArg};
|
||||
/// # use crate::server_key::gen_keys;
|
||||
/// ```rust
|
||||
/// use crate::ciphertext::{FheString, UIntArg};
|
||||
/// use crate::server_key::gen_keys;
|
||||
///
|
||||
/// let (ck, sk) = gen_keys();
|
||||
/// let s = "hi";
|
||||
|
||||
@@ -87,9 +87,9 @@ impl ServerKey {
|
||||
///
|
||||
/// # Examples
|
||||
///
|
||||
/// ```
|
||||
/// # use crate::ciphertext::{ClearString, FheString, GenericPattern};
|
||||
/// # use crate::server_key::gen_keys;
|
||||
/// ```rust
|
||||
/// use crate::ciphertext::{ClearString, FheString, GenericPattern};
|
||||
/// use crate::server_key::gen_keys;
|
||||
///
|
||||
/// let (ck, sk) = gen_keys();
|
||||
/// let (bananas, nana, apples) = ("bananas", "nana", "apples");
|
||||
@@ -147,9 +147,9 @@ impl ServerKey {
|
||||
///
|
||||
/// # Examples
|
||||
///
|
||||
/// ```
|
||||
/// # use crate::ciphertext::{ClearString, FheString, GenericPattern};
|
||||
/// # use crate::server_key::gen_keys;
|
||||
/// ```rust
|
||||
/// use crate::ciphertext::{ClearString, FheString, GenericPattern};
|
||||
/// use crate::server_key::gen_keys;
|
||||
///
|
||||
/// let (ck, sk) = gen_keys();
|
||||
/// let (bananas, ba, nan) = ("bananas", "ba", "nan");
|
||||
@@ -216,9 +216,9 @@ impl ServerKey {
|
||||
///
|
||||
/// # Examples
|
||||
///
|
||||
/// ```
|
||||
/// # use crate::ciphertext::{ClearString, FheString, GenericPattern};
|
||||
/// # use crate::server_key::gen_keys;
|
||||
/// ```rust
|
||||
/// use crate::ciphertext::{ClearString, FheString, GenericPattern};
|
||||
/// use crate::server_key::gen_keys;
|
||||
///
|
||||
/// let (ck, sk) = gen_keys();
|
||||
/// let (bananas, anas, nana) = ("bananas", "anas", "nana");
|
||||
|
||||
@@ -105,9 +105,9 @@ impl ServerKey {
|
||||
///
|
||||
/// # Examples
|
||||
///
|
||||
/// ```
|
||||
/// # use crate::ciphertext::{FheString, GenericPattern};
|
||||
/// # use crate::server_key::gen_keys;
|
||||
/// ```rust
|
||||
/// use crate::ciphertext::{FheString, GenericPattern};
|
||||
/// use crate::server_key::gen_keys;
|
||||
///
|
||||
/// let (ck, sk) = gen_keys();
|
||||
/// let (haystack, needle) = ("hello world", "world");
|
||||
@@ -174,9 +174,9 @@ impl ServerKey {
|
||||
///
|
||||
/// # Examples
|
||||
///
|
||||
/// ```
|
||||
/// # use crate::ciphertext::{FheString, GenericPattern};
|
||||
/// # use crate::server_key::gen_keys;
|
||||
/// ```rust
|
||||
/// use crate::ciphertext::{FheString, GenericPattern};
|
||||
/// use crate::server_key::gen_keys;
|
||||
///
|
||||
/// let (ck, sk) = gen_keys();
|
||||
/// let (haystack, needle) = ("hello world world", "world");
|
||||
|
||||
@@ -229,9 +229,9 @@ impl ServerKey {
|
||||
///
|
||||
/// # Examples
|
||||
///
|
||||
/// ```
|
||||
/// # use crate::ciphertext::{FheString, GenericPattern, UIntArg};
|
||||
/// # use crate::server_key::gen_keys;
|
||||
/// ```rust
|
||||
/// use crate::ciphertext::{FheString, GenericPattern, UIntArg};
|
||||
/// use crate::server_key::gen_keys;
|
||||
///
|
||||
/// let (ck, sk) = gen_keys();
|
||||
/// let (s, from, to) = ("hello", "l", "r");
|
||||
@@ -354,9 +354,9 @@ impl ServerKey {
|
||||
///
|
||||
/// # Examples
|
||||
///
|
||||
/// ```
|
||||
/// # use crate::ciphertext::{ClearString, FheString, GenericPattern};
|
||||
/// # use crate::server_key::gen_keys;
|
||||
/// ```rust
|
||||
/// use crate::ciphertext::{ClearString, FheString, GenericPattern};
|
||||
/// use crate::server_key::gen_keys;
|
||||
///
|
||||
/// let (ck, sk) = gen_keys();
|
||||
/// let (s, from, to) = ("hi", "i", "o");
|
||||
|
||||
@@ -73,9 +73,9 @@ impl ServerKey {
|
||||
///
|
||||
/// # Examples
|
||||
///
|
||||
/// ```
|
||||
/// # use crate::ciphertext::{FheString, GenericPattern};
|
||||
/// # use crate::server_key::gen_keys;
|
||||
/// ```rust
|
||||
/// use crate::ciphertext::{FheString, GenericPattern};
|
||||
/// use crate::server_key::gen_keys;
|
||||
///
|
||||
/// let (ck, sk) = gen_keys();
|
||||
/// let (s, pat) = (" hello world", " ");
|
||||
@@ -143,9 +143,9 @@ impl ServerKey {
|
||||
///
|
||||
/// # Examples
|
||||
///
|
||||
/// ```
|
||||
/// # use crate::ciphertext::{FheString, GenericPattern};
|
||||
/// # use crate::server_key::gen_keys;
|
||||
/// ```rust
|
||||
/// use crate::ciphertext::{FheString, GenericPattern};
|
||||
/// use crate::server_key::gen_keys;
|
||||
///
|
||||
/// let (ck, sk) = gen_keys();
|
||||
/// let (s, pat) = (" hello world", " ");
|
||||
|
||||
@@ -46,9 +46,9 @@ impl ServerKey {
|
||||
///
|
||||
/// # Examples
|
||||
///
|
||||
/// ```
|
||||
/// # use crate::ciphertext::{FheString, GenericPattern};
|
||||
/// # use crate::server_key::{FheStringIterator, gen_keys};
|
||||
/// ```rust
|
||||
/// use crate::ciphertext::{FheString, GenericPattern};
|
||||
/// use crate::server_key::{gen_keys, FheStringIterator};
|
||||
///
|
||||
/// let (ck, sk) = gen_keys();
|
||||
/// let (s, pat) = ("hello ", " ");
|
||||
@@ -91,9 +91,9 @@ impl ServerKey {
|
||||
///
|
||||
/// # Examples
|
||||
///
|
||||
/// ```
|
||||
/// # use crate::ciphertext::{FheString, GenericPattern};
|
||||
/// # use crate::server_key::{FheStringIterator, gen_keys};
|
||||
/// ```rust
|
||||
/// use crate::ciphertext::{FheString, GenericPattern};
|
||||
/// use crate::server_key::{gen_keys, FheStringIterator};
|
||||
///
|
||||
/// let (ck, sk) = gen_keys();
|
||||
/// let (s, pat) = ("hello ", " ");
|
||||
@@ -137,9 +137,9 @@ impl ServerKey {
|
||||
///
|
||||
/// # Examples
|
||||
///
|
||||
/// ```
|
||||
/// # use crate::ciphertext::{FheString, GenericPattern, UIntArg};
|
||||
/// # use crate::server_key::{FheStringIterator, gen_keys};
|
||||
/// ```rust
|
||||
/// use crate::ciphertext::{FheString, GenericPattern, UIntArg};
|
||||
/// use crate::server_key::{gen_keys, FheStringIterator};
|
||||
///
|
||||
/// let (ck, sk) = gen_keys();
|
||||
/// let (s, pat) = ("hello world", " ");
|
||||
@@ -189,9 +189,9 @@ impl ServerKey {
|
||||
///
|
||||
/// # Examples
|
||||
///
|
||||
/// ```
|
||||
/// # use crate::ciphertext::{FheString, GenericPattern, UIntArg};
|
||||
/// # use crate::server_key::{FheStringIterator, gen_keys};
|
||||
/// ```rust
|
||||
/// use crate::ciphertext::{FheString, GenericPattern, UIntArg};
|
||||
/// use crate::server_key::{gen_keys, FheStringIterator};
|
||||
///
|
||||
/// let (ck, sk) = gen_keys();
|
||||
/// let (s, pat) = ("hello world", " ");
|
||||
@@ -239,9 +239,9 @@ impl ServerKey {
|
||||
///
|
||||
/// # Examples
|
||||
///
|
||||
/// ```
|
||||
/// # use crate::ciphertext::{FheString, GenericPattern};
|
||||
/// # use crate::server_key::{FheStringIterator, gen_keys};
|
||||
/// ```rust
|
||||
/// use crate::ciphertext::{FheString, GenericPattern};
|
||||
/// use crate::server_key::{gen_keys, FheStringIterator};
|
||||
///
|
||||
/// let (ck, sk) = gen_keys();
|
||||
/// let (s, pat) = ("hello world ", " ");
|
||||
@@ -287,9 +287,9 @@ impl ServerKey {
|
||||
///
|
||||
/// # Examples
|
||||
///
|
||||
/// ```
|
||||
/// # use crate::ciphertext::{FheString, GenericPattern};
|
||||
/// # use crate::server_key::{FheStringIterator, gen_keys};
|
||||
/// ```rust
|
||||
/// use crate::ciphertext::{FheString, GenericPattern};
|
||||
/// use crate::server_key::{gen_keys, FheStringIterator};
|
||||
///
|
||||
/// let (ck, sk) = gen_keys();
|
||||
/// let (s, pat) = ("hello world ", " ");
|
||||
@@ -334,9 +334,9 @@ impl ServerKey {
|
||||
///
|
||||
/// # Examples
|
||||
///
|
||||
/// ```
|
||||
/// # use crate::ciphertext::{FheString, GenericPattern};
|
||||
/// # use crate::server_key::{FheStringIterator, gen_keys};
|
||||
/// ```rust
|
||||
/// use crate::ciphertext::{FheString, GenericPattern};
|
||||
/// use crate::server_key::{gen_keys, FheStringIterator};
|
||||
///
|
||||
/// let (ck, sk) = gen_keys();
|
||||
/// let (s, pat) = ("hello world ", " ");
|
||||
|
||||
@@ -107,9 +107,9 @@ impl ServerKey {
|
||||
///
|
||||
/// # Examples
|
||||
///
|
||||
/// ```
|
||||
/// # use crate::ciphertext::{ClearString, FheString, GenericPattern};
|
||||
/// # use crate::server_key::gen_keys;
|
||||
/// ```rust
|
||||
/// use crate::ciphertext::{ClearString, FheString, GenericPattern};
|
||||
/// use crate::server_key::gen_keys;
|
||||
///
|
||||
/// let (ck, sk) = gen_keys();
|
||||
/// let (s, prefix, not_prefix) = ("hello world", "hello", "world");
|
||||
@@ -190,9 +190,9 @@ impl ServerKey {
|
||||
///
|
||||
/// # Examples
|
||||
///
|
||||
/// ```
|
||||
/// # use crate::ciphertext::{ClearString, FheString, GenericPattern};
|
||||
/// # use crate::server_key::gen_keys;
|
||||
/// ```rust
|
||||
/// use crate::ciphertext::{ClearString, FheString, GenericPattern};
|
||||
/// use crate::server_key::gen_keys;
|
||||
///
|
||||
/// let (ck, sk) = gen_keys();
|
||||
/// let (s, suffix, not_suffix) = ("hello world", "world", "hello");
|
||||
|
||||
@@ -183,9 +183,9 @@ impl ServerKey {
|
||||
///
|
||||
/// # Examples
|
||||
///
|
||||
/// ```
|
||||
/// # use crate::ciphertext::FheString;
|
||||
/// # use crate::server_key::gen_keys;
|
||||
/// ```rust
|
||||
/// use crate::ciphertext::FheString;
|
||||
/// use crate::server_key::gen_keys;
|
||||
///
|
||||
/// let (ck, sk) = gen_keys();
|
||||
/// let s = " hello world";
|
||||
@@ -239,9 +239,9 @@ impl ServerKey {
|
||||
///
|
||||
/// # Examples
|
||||
///
|
||||
/// ```
|
||||
/// # use crate::ciphertext::FheString;
|
||||
/// # use crate::server_key::gen_keys;
|
||||
/// ```rust
|
||||
/// use crate::ciphertext::FheString;
|
||||
/// use crate::server_key::gen_keys;
|
||||
///
|
||||
/// let (ck, sk) = gen_keys();
|
||||
/// let s = "hello world ";
|
||||
@@ -279,9 +279,9 @@ impl ServerKey {
|
||||
///
|
||||
/// # Examples
|
||||
///
|
||||
/// ```
|
||||
/// # use crate::ciphertext::FheString;
|
||||
/// # use crate::server_key::gen_keys;
|
||||
/// ```rust
|
||||
/// use crate::ciphertext::FheString;
|
||||
/// use crate::server_key::gen_keys;
|
||||
///
|
||||
/// let (ck, sk) = gen_keys();
|
||||
/// let s = " hello world ";
|
||||
@@ -313,9 +313,9 @@ impl ServerKey {
|
||||
///
|
||||
/// # Examples
|
||||
///
|
||||
/// ```
|
||||
/// # use crate::ciphertext::FheString;
|
||||
/// # use crate::server_key::{FheStringIterator, gen_keys};
|
||||
/// ```rust
|
||||
/// use crate::ciphertext::FheString;
|
||||
/// use crate::server_key::{gen_keys, FheStringIterator};
|
||||
///
|
||||
/// let (ck, sk) = gen_keys();
|
||||
/// let s = "hello \t\nworld ";
|
||||
|
||||
@@ -51,7 +51,6 @@ impl ClientKey {
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// # fn main() {
|
||||
/// use tfhe::boolean::prelude::*;
|
||||
///
|
||||
/// // Generate the client key and the server key:
|
||||
@@ -63,7 +62,6 @@ impl ClientKey {
|
||||
/// // Decryption:
|
||||
/// let dec = cks.decrypt(&ct);
|
||||
/// assert_eq!(true, dec);
|
||||
/// # }
|
||||
/// ```
|
||||
pub fn encrypt(&self, message: bool) -> Ciphertext {
|
||||
BooleanEngine::with_thread_local_mut(|engine| engine.encrypt(message, self))
|
||||
@@ -74,7 +72,6 @@ impl ClientKey {
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// # fn main() {
|
||||
/// use tfhe::boolean::prelude::*;
|
||||
///
|
||||
/// // Generate the client key and the server key:
|
||||
@@ -88,7 +85,6 @@ impl ClientKey {
|
||||
/// // Decryption:
|
||||
/// let dec = cks.decrypt(&ct);
|
||||
/// assert_eq!(true, dec);
|
||||
/// # }
|
||||
/// ```
|
||||
pub fn encrypt_compressed(&self, message: bool) -> CompressedCiphertext {
|
||||
BooleanEngine::with_thread_local_mut(|engine| engine.encrypt_compressed(message, self))
|
||||
@@ -99,7 +95,6 @@ impl ClientKey {
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// # fn main() {
|
||||
/// use tfhe::boolean::prelude::*;
|
||||
///
|
||||
/// // Generate the client key and the server key:
|
||||
@@ -111,7 +106,6 @@ impl ClientKey {
|
||||
/// // Decryption:
|
||||
/// let dec = cks.decrypt(&ct);
|
||||
/// assert_eq!(true, dec);
|
||||
/// # }
|
||||
/// ```
|
||||
pub fn decrypt(&self, ct: &Ciphertext) -> bool {
|
||||
BooleanEngine::with_thread_local_mut(|engine| engine.decrypt(ct, self))
|
||||
@@ -122,14 +116,12 @@ impl ClientKey {
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// # fn main() {
|
||||
/// use tfhe::boolean::client_key::ClientKey;
|
||||
/// use tfhe::boolean::parameters::PARAMETERS_ERROR_PROB_2_POW_MINUS_165;
|
||||
/// use tfhe::boolean::prelude::*;
|
||||
///
|
||||
/// // Generate the client key:
|
||||
/// let cks = ClientKey::new(&PARAMETERS_ERROR_PROB_2_POW_MINUS_165);
|
||||
/// # }
|
||||
/// ```
|
||||
pub fn new(parameter_set: &BooleanParameters) -> Self {
|
||||
BooleanEngine::with_thread_local_mut(|engine| engine.create_client_key(*parameter_set))
|
||||
@@ -140,7 +132,6 @@ impl ClientKey {
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// # fn main() {
|
||||
/// use tfhe::boolean::client_key::ClientKey;
|
||||
/// use tfhe::boolean::parameters::PARAMETERS_ERROR_PROB_2_POW_MINUS_165;
|
||||
/// use tfhe::boolean::prelude::*;
|
||||
@@ -148,7 +139,6 @@ impl ClientKey {
|
||||
/// // Generate the client key:
|
||||
/// let cks = ClientKey::new(&PARAMETERS_ERROR_PROB_2_POW_MINUS_165);
|
||||
/// let raw_parts = cks.into_raw_parts();
|
||||
/// # }
|
||||
/// ```
|
||||
pub fn into_raw_parts(
|
||||
self,
|
||||
@@ -175,7 +165,6 @@ impl ClientKey {
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// # fn main() {
|
||||
/// use tfhe::boolean::client_key::ClientKey;
|
||||
/// use tfhe::boolean::parameters::PARAMETERS_ERROR_PROB_2_POW_MINUS_165;
|
||||
/// use tfhe::boolean::prelude::*;
|
||||
@@ -184,7 +173,6 @@ impl ClientKey {
|
||||
/// let cks = ClientKey::new(&PARAMETERS_ERROR_PROB_2_POW_MINUS_165);
|
||||
/// let (lwe_secret_key, glwe_secret_key, parameters) = cks.into_raw_parts();
|
||||
/// let reconstructed_cks = ClientKey::new_from_raw_parts(lwe_secret_key, glwe_secret_key, parameters);
|
||||
/// # }
|
||||
pub fn new_from_raw_parts(
|
||||
lwe_secret_key: LweSecretKeyOwned<u32>,
|
||||
glwe_secret_key: GlweSecretKeyOwned<u32>,
|
||||
|
||||
@@ -15,8 +15,6 @@
|
||||
//! homomorphically.
|
||||
//!
|
||||
//! ```rust
|
||||
//! # fn main() {
|
||||
//!
|
||||
//! use tfhe::boolean::gen_keys;
|
||||
//! use tfhe::boolean::prelude::*;
|
||||
//!
|
||||
@@ -49,7 +47,6 @@
|
||||
//! let ct_9 = server_key.mux(&ct_7, &ct_3, &ct_8);
|
||||
//! let output_3 = client_key.decrypt(&ct_9);
|
||||
//! assert_eq!(output_3, true);
|
||||
//! # }
|
||||
//! ```
|
||||
|
||||
use crate::boolean::client_key::ClientKey;
|
||||
@@ -110,12 +107,10 @@ pub(crate) fn random_integer() -> u32 {
|
||||
/// meant to be published (the client sends it to the server).
|
||||
///
|
||||
/// ```rust
|
||||
/// # fn main() {
|
||||
/// use tfhe::boolean::gen_keys;
|
||||
/// use tfhe::boolean::prelude::*;
|
||||
/// // generate the client key and the server key:
|
||||
/// let (cks, sks) = gen_keys();
|
||||
/// # }
|
||||
/// ```
|
||||
pub fn gen_keys() -> (ClientKey, ServerKey) {
|
||||
// generate the client key
|
||||
|
||||
@@ -17,20 +17,17 @@ impl CompressedPublicKey {
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// # fn main() {
|
||||
/// use tfhe::boolean::prelude::*;
|
||||
///
|
||||
/// // Generate the client key and the server key:
|
||||
/// let (cks, sks) = gen_keys();
|
||||
///
|
||||
/// let cpks = CompressedPublicKey::new(&cks);
|
||||
/// # }
|
||||
/// ```
|
||||
///
|
||||
/// Decompressing the key
|
||||
///
|
||||
/// ```rust
|
||||
/// # fn main() {
|
||||
/// use tfhe::boolean::prelude::*;
|
||||
///
|
||||
/// // Generate the client key and the server key:
|
||||
@@ -38,7 +35,6 @@ impl CompressedPublicKey {
|
||||
///
|
||||
/// let cpks = CompressedPublicKey::new(&cks);
|
||||
/// let pks = PublicKey::from(cpks);
|
||||
/// # }
|
||||
/// ```
|
||||
pub fn new(client_key: &ClientKey) -> Self {
|
||||
BooleanEngine::with_thread_local_mut(|engine| {
|
||||
@@ -112,7 +108,6 @@ impl CompressedPublicKey {
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// # fn main() {
|
||||
/// use tfhe::boolean::prelude::*;
|
||||
///
|
||||
/// // Generate the client key and the server key:
|
||||
@@ -128,7 +123,6 @@ impl CompressedPublicKey {
|
||||
/// // Decryption:
|
||||
/// let dec = cks.decrypt(&ct_res);
|
||||
/// assert_eq!(false, dec);
|
||||
/// # }
|
||||
/// ```
|
||||
pub fn encrypt(&self, message: bool) -> Ciphertext {
|
||||
BooleanEngine::with_thread_local_mut(|engine| {
|
||||
|
||||
@@ -22,7 +22,6 @@ impl PublicKey {
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// # fn main() {
|
||||
/// use tfhe::boolean::prelude::*;
|
||||
///
|
||||
/// // Generate the client key and the server key:
|
||||
@@ -38,7 +37,6 @@ impl PublicKey {
|
||||
/// // Decryption:
|
||||
/// let dec = cks.decrypt(&ct_res);
|
||||
/// assert_eq!(false, dec);
|
||||
/// # }
|
||||
/// ```
|
||||
pub fn encrypt(&self, message: bool) -> Ciphertext {
|
||||
BooleanEngine::with_thread_local_mut(|engine| engine.encrypt_with_public_key(message, self))
|
||||
@@ -49,14 +47,12 @@ impl PublicKey {
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// # fn main() {
|
||||
/// use tfhe::boolean::prelude::*;
|
||||
///
|
||||
/// // Generate the client key and the server key:
|
||||
/// let (cks, sks) = gen_keys();
|
||||
///
|
||||
/// let pks = PublicKey::new(&cks);
|
||||
/// # }
|
||||
/// ```
|
||||
pub fn new(client_key: &ClientKey) -> Self {
|
||||
BooleanEngine::with_thread_local_mut(|engine| engine.create_public_key(client_key))
|
||||
|
||||
@@ -16,7 +16,7 @@ use rayon::prelude::*;
|
||||
/// See the [`GGSW ciphertext formal definition`](`GgswCiphertext#ggsw-encryption`) for the
|
||||
/// definition of the encryption algorithm.
|
||||
///
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use tfhe::core_crypto::prelude::*;
|
||||
///
|
||||
/// // DISCLAIMER: these toy example parameters are not guaranteed to be secure or yield correct
|
||||
@@ -158,7 +158,7 @@ pub fn encrypt_constant_ggsw_ciphertext<Scalar, NoiseDistribution, KeyCont, Outp
|
||||
///
|
||||
/// New tasks are created per level matrix and per row of each level matrix.
|
||||
///
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use tfhe::core_crypto::prelude::*;
|
||||
///
|
||||
/// // DISCLAIMER: these toy example parameters are not guaranteed to be secure or yield correct
|
||||
@@ -419,7 +419,7 @@ pub fn encrypt_constant_seeded_ggsw_ciphertext_with_existing_generator<
|
||||
/// See the [`formal definition`](`GgswCiphertext#ggsw-encryption`) for the definition of the
|
||||
/// encryption algorithm.
|
||||
///
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use tfhe::core_crypto::prelude::*;
|
||||
///
|
||||
/// // DISCLAIMER: these toy example parameters are not guaranteed to be secure or yield correct
|
||||
@@ -607,7 +607,7 @@ pub fn par_encrypt_constant_seeded_ggsw_ciphertext_with_existing_generator<
|
||||
///
|
||||
/// New tasks are created per level matrix and per row of each level matrix.
|
||||
///
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use tfhe::core_crypto::prelude::*;
|
||||
///
|
||||
/// // DISCLAIMER: these toy example parameters are not guaranteed to be secure or yield correct
|
||||
@@ -765,7 +765,7 @@ fn encrypt_constant_seeded_ggsw_level_matrix_row<
|
||||
///
|
||||
/// # Example
|
||||
///
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use tfhe::core_crypto::prelude::*;
|
||||
///
|
||||
/// // DISCLAIMER: these toy example parameters are not guaranteed to be secure or yield correct
|
||||
|
||||
@@ -76,7 +76,7 @@ pub fn fill_glwe_mask_and_body_for_encryption_assign<
|
||||
///
|
||||
/// # Example
|
||||
///
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use tfhe::core_crypto::prelude::*;
|
||||
///
|
||||
/// // DISCLAIMER: these toy example parameters are not guaranteed to be secure or yield correct
|
||||
@@ -310,7 +310,7 @@ pub fn fill_glwe_mask_and_body_for_encryption<
|
||||
///
|
||||
/// # Example
|
||||
///
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use tfhe::core_crypto::prelude::*;
|
||||
///
|
||||
/// // DISCLAIMER: these toy example parameters are not guaranteed to be secure or yield correct
|
||||
@@ -431,7 +431,7 @@ pub fn encrypt_glwe_ciphertext<Scalar, NoiseDistribution, KeyCont, InputCont, Ou
|
||||
///
|
||||
/// # Example
|
||||
///
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use tfhe::core_crypto::prelude::*;
|
||||
///
|
||||
/// // DISCLAIMER: these toy example parameters are not guaranteed to be secure or yield correct
|
||||
@@ -689,7 +689,7 @@ pub fn decrypt_glwe_ciphertext_list<Scalar, KeyCont, InputCont, OutputCont>(
|
||||
///
|
||||
/// # Example
|
||||
///
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use tfhe::core_crypto::prelude::*;
|
||||
///
|
||||
/// // DISCLAIMER: these toy example parameters are not guaranteed to be secure or yield correct
|
||||
@@ -783,7 +783,7 @@ pub fn trivially_encrypt_glwe_ciphertext<Scalar, InputCont, OutputCont>(
|
||||
///
|
||||
/// # Example
|
||||
///
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use tfhe::core_crypto::prelude::*;
|
||||
///
|
||||
/// // DISCLAIMER: these toy example parameters are not guaranteed to be secure or yield correct
|
||||
@@ -932,7 +932,7 @@ pub fn encrypt_seeded_glwe_ciphertext_with_existing_generator<
|
||||
/// Encrypt a [`PlaintextList`] in a
|
||||
/// [`compressed/seeded GLWE ciphertext`](`SeededGlweCiphertext`).
|
||||
///
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use tfhe::core_crypto::prelude::*;
|
||||
///
|
||||
/// // DISCLAIMER: these toy example parameters are not guaranteed to be secure or yield correct
|
||||
@@ -1120,7 +1120,7 @@ pub fn encrypt_seeded_glwe_ciphertext_list_with_existing_generator<
|
||||
/// Encrypt a [`PlaintextList`] in a
|
||||
/// [`compressed/seeded LWE ciphertext list`](`SeededLweCiphertextList`).
|
||||
///
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use tfhe::core_crypto::prelude::*;
|
||||
///
|
||||
/// // DISCLAIMER: these toy example parameters are not guaranteed to be secure or yield correct
|
||||
|
||||
@@ -10,7 +10,7 @@ use crate::core_crypto::entities::*;
|
||||
///
|
||||
/// # Example
|
||||
///
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use tfhe::core_crypto::prelude::*;
|
||||
///
|
||||
/// // DISCLAIMER: these toy example parameters are not guaranteed to be secure or yield correct
|
||||
@@ -103,7 +103,7 @@ pub fn glwe_ciphertext_add_assign<Scalar, LhsCont, RhsCont>(
|
||||
///
|
||||
/// # Example
|
||||
///
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use tfhe::core_crypto::prelude::*;
|
||||
///
|
||||
/// // DISCLAIMER: these toy example parameters are not guaranteed to be secure or yield correct
|
||||
@@ -207,7 +207,7 @@ pub fn glwe_ciphertext_add<Scalar, OutputCont, LhsCont, RhsCont>(
|
||||
///
|
||||
/// # Example
|
||||
///
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use tfhe::core_crypto::prelude::*;
|
||||
///
|
||||
/// // DISCLAIMER: these toy example parameters are not guaranteed to be secure or yield correct
|
||||
@@ -299,7 +299,7 @@ pub fn glwe_ciphertext_plaintext_list_add_assign<Scalar, InCont, PlainCont>(
|
||||
///
|
||||
/// # Example
|
||||
///
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use tfhe::core_crypto::prelude::*;
|
||||
///
|
||||
/// // DISCLAIMER: these toy example parameters are not guaranteed to be secure or yield correct
|
||||
@@ -391,7 +391,7 @@ pub fn glwe_ciphertext_plaintext_list_sub_assign<Scalar, InCont, PlainCont>(
|
||||
///
|
||||
/// # Example
|
||||
///
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use tfhe::core_crypto::prelude::*;
|
||||
///
|
||||
/// // DISCLAIMER: these toy example parameters are not guaranteed to be secure or yield correct
|
||||
@@ -483,7 +483,7 @@ pub fn glwe_ciphertext_plaintext_add_assign<Scalar, InCont>(
|
||||
///
|
||||
/// # Example
|
||||
///
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use tfhe::core_crypto::prelude::*;
|
||||
///
|
||||
/// // DISCLAIMER: these toy example parameters are not guaranteed to be secure or yield correct
|
||||
@@ -574,7 +574,7 @@ pub fn glwe_ciphertext_plaintext_sub_assign<Scalar, InCont>(
|
||||
///
|
||||
/// # Example
|
||||
///
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use tfhe::core_crypto::prelude::*;
|
||||
///
|
||||
/// // DISCLAIMER: these toy example parameters are not guaranteed to be secure or yield correct
|
||||
@@ -655,7 +655,7 @@ where
|
||||
///
|
||||
/// # Example
|
||||
///
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use tfhe::core_crypto::prelude::*;
|
||||
///
|
||||
/// // DISCLAIMER: these toy example parameters are not guaranteed to be secure or yield correct
|
||||
@@ -739,7 +739,7 @@ pub fn glwe_ciphertext_cleartext_mul_assign<Scalar, InCont>(
|
||||
///
|
||||
/// # Example
|
||||
///
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use tfhe::core_crypto::prelude::*;
|
||||
///
|
||||
/// // DISCLAIMER: these toy example parameters are not guaranteed to be secure or yield correct
|
||||
@@ -835,7 +835,7 @@ pub fn glwe_ciphertext_cleartext_mul<Scalar, InputCont, OutputCont>(
|
||||
///
|
||||
/// # Example
|
||||
///
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use tfhe::core_crypto::prelude::*;
|
||||
///
|
||||
/// // DISCLAIMER: these toy example parameters are not guaranteed to be secure or yield correct
|
||||
@@ -928,7 +928,7 @@ pub fn glwe_ciphertext_sub_assign<Scalar, LhsCont, RhsCont>(
|
||||
///
|
||||
/// # Example
|
||||
///
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use tfhe::core_crypto::prelude::*;
|
||||
///
|
||||
/// // DISCLAIMER: these toy example parameters are not guaranteed to be secure or yield correct
|
||||
|
||||
@@ -17,7 +17,7 @@ use rayon::prelude::*;
|
||||
///
|
||||
/// # Example
|
||||
///
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use tfhe::core_crypto::prelude::*;
|
||||
///
|
||||
/// // DISCLAIMER: these toy example parameters are not guaranteed to be secure or yield correct
|
||||
@@ -156,7 +156,7 @@ pub fn extract_lwe_sample_from_glwe_ciphertext<Scalar, InputCont, OutputCont>(
|
||||
///
|
||||
/// # Example
|
||||
///
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use tfhe::core_crypto::prelude::*;
|
||||
///
|
||||
/// // DISCLAIMER: these toy example parameters are not guaranteed to be secure or yield correct
|
||||
@@ -263,7 +263,7 @@ pub fn par_extract_lwe_sample_from_glwe_ciphertext<Scalar, InputCont, OutputCont
|
||||
///
|
||||
/// # Example
|
||||
///
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use tfhe::core_crypto::prelude::*;
|
||||
///
|
||||
/// // DISCLAIMER: these toy example parameters are not guaranteed to be secure or yield correct
|
||||
|
||||
@@ -33,7 +33,7 @@ where
|
||||
///
|
||||
/// # Example
|
||||
///
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use tfhe::core_crypto::prelude::*;
|
||||
///
|
||||
/// // DISCLAIMER: these toy example parameters are not guaranteed to be secure or yield correct
|
||||
|
||||
@@ -16,7 +16,7 @@ use rayon::prelude::*;
|
||||
///
|
||||
/// Consider using [`par_generate_lwe_bootstrap_key`] for better key generation times.
|
||||
///
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use tfhe::core_crypto::prelude::*;
|
||||
///
|
||||
/// // DISCLAIMER: these toy example parameters are not guaranteed to be secure or yield correct
|
||||
@@ -197,7 +197,7 @@ where
|
||||
///
|
||||
/// # Example
|
||||
///
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use tfhe::core_crypto::prelude::*;
|
||||
///
|
||||
/// // DISCLAIMER: these toy example parameters are not guaranteed to be secure or yield correct
|
||||
|
||||
@@ -183,7 +183,7 @@ pub fn fill_lwe_mask_and_body_for_encryption_other_mod<
|
||||
///
|
||||
/// # Example
|
||||
///
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use tfhe::core_crypto::prelude::*;
|
||||
///
|
||||
/// // DISCLAIMER: these toy example parameters are not guaranteed to be secure or yield correct
|
||||
@@ -275,7 +275,7 @@ pub fn encrypt_lwe_ciphertext<Scalar, NoiseDistribution, KeyCont, OutputCont, Ge
|
||||
///
|
||||
/// # Example
|
||||
///
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use tfhe::core_crypto::prelude::*;
|
||||
///
|
||||
/// // DISCLAIMER: these toy example parameters are not guaranteed to be secure or yield correct
|
||||
@@ -366,7 +366,7 @@ where
|
||||
///
|
||||
/// # Example
|
||||
///
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use tfhe::core_crypto::prelude::*;
|
||||
///
|
||||
/// // DISCLAIMER: these toy example parameters are not guaranteed to be secure or yield correct
|
||||
@@ -440,7 +440,7 @@ pub fn trivially_encrypt_lwe_ciphertext<Scalar, OutputCont>(
|
||||
///
|
||||
/// # Example
|
||||
///
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use tfhe::core_crypto::prelude::*;
|
||||
///
|
||||
/// // DISCLAIMER: these toy example parameters are not guaranteed to be secure or yield correct
|
||||
@@ -616,7 +616,7 @@ where
|
||||
///
|
||||
/// # Example
|
||||
///
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use tfhe::core_crypto::prelude::*;
|
||||
///
|
||||
/// // DISCLAIMER: these toy example parameters are not guaranteed to be secure or yield correct
|
||||
@@ -727,7 +727,7 @@ pub fn encrypt_lwe_ciphertext_list<Scalar, NoiseDistribution, KeyCont, OutputCon
|
||||
/// See this [`formal definition`](`encrypt_lwe_ciphertext#formal-definition`) for the definition
|
||||
/// of the LWE encryption algorithm.
|
||||
///
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use tfhe::core_crypto::prelude::*;
|
||||
///
|
||||
/// // DISCLAIMER: these toy example parameters are not guaranteed to be secure or yield correct
|
||||
@@ -880,7 +880,7 @@ pub fn decrypt_lwe_ciphertext_list<Scalar, KeyCont, InputCont, OutputCont>(
|
||||
///
|
||||
/// # Example
|
||||
///
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use tfhe::core_crypto::prelude::*;
|
||||
///
|
||||
/// // DISCLAIMER: these toy example parameters are not guaranteed to be secure or yield correct
|
||||
@@ -998,7 +998,7 @@ pub fn encrypt_lwe_ciphertext_with_public_key<Scalar, KeyCont, OutputCont, Gen>(
|
||||
///
|
||||
/// # Example
|
||||
///
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use tfhe::core_crypto::prelude::*;
|
||||
///
|
||||
/// // DISCLAIMER: these toy example parameters are not guaranteed to be secure or yield correct
|
||||
@@ -1186,7 +1186,7 @@ pub fn encrypt_seeded_lwe_ciphertext_list_with_existing_generator<
|
||||
/// Encrypt a [`PlaintextList`] in a
|
||||
/// [`compressed/seeded LWE ciphertext list`](`SeededLweCiphertextList`).
|
||||
///
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use tfhe::core_crypto::prelude::*;
|
||||
///
|
||||
/// // DISCLAIMER: these toy example parameters are not guaranteed to be secure or yield correct
|
||||
@@ -1357,7 +1357,7 @@ pub fn par_encrypt_seeded_lwe_ciphertext_list_with_existing_generator<
|
||||
|
||||
/// Parallel variant of [`encrypt_seeded_lwe_ciphertext_list`].
|
||||
///
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use tfhe::core_crypto::prelude::*;
|
||||
///
|
||||
/// // DISCLAIMER: these toy example parameters are not guaranteed to be secure or yield correct
|
||||
@@ -1504,7 +1504,7 @@ pub fn encrypt_seeded_lwe_ciphertext_with_existing_generator<
|
||||
///
|
||||
/// # Example
|
||||
///
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use tfhe::core_crypto::prelude::*;
|
||||
///
|
||||
/// // DISCLAIMER: these toy example parameters are not guaranteed to be secure or yield correct
|
||||
@@ -1596,7 +1596,7 @@ pub fn encrypt_seeded_lwe_ciphertext<Scalar, NoiseDistribution, KeyCont, NoiseSe
|
||||
///
|
||||
/// # Example
|
||||
///
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use tfhe::core_crypto::prelude::*;
|
||||
///
|
||||
/// // DISCLAIMER: these toy example parameters are not guaranteed to be secure or yield correct
|
||||
@@ -1689,7 +1689,7 @@ where
|
||||
///
|
||||
/// # Example
|
||||
///
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use tfhe::core_crypto::prelude::*;
|
||||
///
|
||||
/// // DISCLAIMER: these toy example parameters are not guaranteed to be secure or yield correct
|
||||
@@ -1829,7 +1829,7 @@ pub fn encrypt_lwe_ciphertext_with_compact_public_key<
|
||||
///
|
||||
/// # Example
|
||||
///
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use tfhe::core_crypto::prelude::*;
|
||||
///
|
||||
/// // DISCLAIMER: these toy example parameters are not guaranteed to be secure or yield correct
|
||||
@@ -2052,7 +2052,7 @@ pub fn encrypt_lwe_compact_ciphertext_list_with_compact_public_key<
|
||||
///
|
||||
/// # Example
|
||||
///
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use tfhe::core_crypto::prelude::*;
|
||||
///
|
||||
/// // DISCLAIMER: these toy example parameters are not guaranteed to be secure or yield correct
|
||||
|
||||
@@ -19,7 +19,7 @@ use rayon::prelude::*;
|
||||
///
|
||||
/// # Example
|
||||
///
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use tfhe::core_crypto::prelude::*;
|
||||
///
|
||||
/// // DISCLAIMER: these toy example parameters are not guaranteed to be secure or yield correct
|
||||
@@ -192,7 +192,7 @@ pub fn keyswitch_lwe_ciphertext<Scalar, KSKCont, InputCont, OutputCont>(
|
||||
///
|
||||
/// # Example
|
||||
///
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use tfhe::core_crypto::prelude::*;
|
||||
///
|
||||
/// // DISCLAIMER: these toy example parameters are not guaranteed to be secure or yield correct
|
||||
@@ -295,7 +295,7 @@ pub fn par_keyswitch_lwe_ciphertext<Scalar, KSKCont, InputCont, OutputCont>(
|
||||
///
|
||||
/// # Example
|
||||
///
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use tfhe::core_crypto::prelude::*;
|
||||
///
|
||||
/// // DISCLAIMER: these toy example parameters are not guaranteed to be secure or yield correct
|
||||
|
||||
@@ -13,7 +13,7 @@ use crate::core_crypto::entities::*;
|
||||
/// Fill an [`LWE keyswitch key`](`LweKeyswitchKey`) with an actual keyswitching key constructed
|
||||
/// from an input and an output key [`LWE secret key`](`LweSecretKey`).
|
||||
///
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use tfhe::core_crypto::prelude::*;
|
||||
///
|
||||
/// // DISCLAIMER: these toy example parameters are not guaranteed to be secure or yield correct
|
||||
@@ -186,7 +186,7 @@ where
|
||||
/// Fill an [`LWE keyswitch key`](`SeededLweKeyswitchKey`) with an actual keyswitching key
|
||||
/// constructed from an input and an output key [`LWE secret key`](`LweSecretKey`).
|
||||
///
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use tfhe::core_crypto::prelude::*;
|
||||
///
|
||||
/// // DISCLAIMER: these toy example parameters are not guaranteed to be secure or yield correct
|
||||
|
||||
@@ -11,7 +11,7 @@ use crate::core_crypto::entities::*;
|
||||
///
|
||||
/// # Example
|
||||
///
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use tfhe::core_crypto::prelude::*;
|
||||
///
|
||||
/// // DISCLAIMER: these toy example parameters are not guaranteed to be secure or yield correct
|
||||
@@ -133,7 +133,7 @@ pub fn lwe_ciphertext_add_assign_other_mod<Scalar, LhsCont, RhsCont>(
|
||||
///
|
||||
/// # Example
|
||||
///
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use tfhe::core_crypto::prelude::*;
|
||||
///
|
||||
/// // DISCLAIMER: these toy example parameters are not guaranteed to be secure or yield correct
|
||||
@@ -223,7 +223,7 @@ pub fn lwe_ciphertext_add<Scalar, OutputCont, LhsCont, RhsCont>(
|
||||
///
|
||||
/// # Example
|
||||
///
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use tfhe::core_crypto::prelude::*;
|
||||
///
|
||||
/// // DISCLAIMER: these toy example parameters are not guaranteed to be secure or yield correct
|
||||
@@ -332,7 +332,7 @@ pub fn lwe_ciphertext_plaintext_add_assign_other_mod<Scalar, InCont>(
|
||||
///
|
||||
/// # Example
|
||||
///
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use tfhe::core_crypto::prelude::*;
|
||||
///
|
||||
/// // DISCLAIMER: these toy example parameters are not guaranteed to be secure or yield correct
|
||||
@@ -440,7 +440,7 @@ pub fn lwe_ciphertext_plaintext_sub_assign_other_mod<Scalar, InCont>(
|
||||
///
|
||||
/// # Example
|
||||
///
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use tfhe::core_crypto::prelude::*;
|
||||
///
|
||||
/// // DISCLAIMER: these toy example parameters are not guaranteed to be secure or yield correct
|
||||
@@ -505,7 +505,7 @@ where
|
||||
///
|
||||
/// # Example
|
||||
///
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use tfhe::core_crypto::prelude::*;
|
||||
///
|
||||
/// // DISCLAIMER: these toy example parameters are not guaranteed to be secure or yield correct
|
||||
@@ -573,7 +573,7 @@ pub fn lwe_ciphertext_cleartext_mul_assign<Scalar, InCont>(
|
||||
///
|
||||
/// # Example
|
||||
///
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use tfhe::core_crypto::prelude::*;
|
||||
///
|
||||
/// // DISCLAIMER: these toy example parameters are not guaranteed to be secure or yield correct
|
||||
@@ -653,7 +653,7 @@ pub fn lwe_ciphertext_cleartext_mul<Scalar, InputCont, OutputCont>(
|
||||
///
|
||||
/// # Example
|
||||
///
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use tfhe::core_crypto::prelude::*;
|
||||
///
|
||||
/// // DISCLAIMER: these toy example parameters are not guaranteed to be secure or yield correct
|
||||
@@ -732,7 +732,7 @@ pub fn lwe_ciphertext_sub_assign<Scalar, LhsCont, RhsCont>(
|
||||
///
|
||||
/// # Example
|
||||
///
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use tfhe::core_crypto::prelude::*;
|
||||
///
|
||||
/// // DISCLAIMER: these toy example parameters are not guaranteed to be secure or yield correct
|
||||
|
||||
@@ -9,7 +9,7 @@ use crate::core_crypto::commons::traits::*;
|
||||
use crate::core_crypto::entities::*;
|
||||
use rayon::prelude::*;
|
||||
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use tfhe::core_crypto::prelude::*;
|
||||
///
|
||||
/// // DISCLAIMER: these toy example parameters are not guaranteed to be secure or yield correct
|
||||
@@ -226,7 +226,7 @@ where
|
||||
bsk
|
||||
}
|
||||
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use tfhe::core_crypto::prelude::*;
|
||||
///
|
||||
/// // DISCLAIMER: these toy example parameters are not guaranteed to be secure or yield correct
|
||||
|
||||
@@ -84,7 +84,7 @@ pub fn prepare_multi_bit_ggsw_mem_optimized<
|
||||
///
|
||||
/// # Example
|
||||
///
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use tfhe::core_crypto::prelude::*;
|
||||
///
|
||||
/// // DISCLAIMER: these toy example parameters are not guaranteed to be secure or yield correct
|
||||
@@ -816,7 +816,7 @@ pub fn multi_bit_deterministic_blind_rotate_assign<Scalar, InputCont, OutputCont
|
||||
///
|
||||
/// # Example
|
||||
///
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use tfhe::core_crypto::prelude::*;
|
||||
///
|
||||
/// // DISCLAIMER: these toy example parameters are not guaranteed to be secure or yield correct
|
||||
|
||||
@@ -13,7 +13,7 @@ use rayon::prelude::*;
|
||||
/// Apply a keyswitch on an input [`LWE ciphertext`](`LweCiphertext`) and
|
||||
/// write the result in an output [`GLWE ciphertext`](`GlweCiphertext`).
|
||||
///
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use tfhe::core_crypto::prelude::*;
|
||||
///
|
||||
/// // DISCLAIMER: these toy example parameters are not guaranteed to be secure or yield correct
|
||||
@@ -191,7 +191,7 @@ pub fn keyswitch_lwe_ciphertext_into_glwe_ciphertext<Scalar, KeyCont, InputCont,
|
||||
/// list`](`LweCiphertextList`) and pack the result in an output [`GLWE
|
||||
/// ciphertext`](`GlweCiphertext`).
|
||||
///
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use tfhe::core_crypto::prelude::*;
|
||||
///
|
||||
/// // DISCLAIMER: these toy example parameters are not guaranteed to be secure or yield correct
|
||||
@@ -386,7 +386,7 @@ pub fn keyswitch_lwe_ciphertext_list_and_pack_in_glwe_ciphertext<
|
||||
///
|
||||
/// This will use all threads available in the current rayon thread pool.
|
||||
///
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use tfhe::core_crypto::prelude::*;
|
||||
///
|
||||
/// // DISCLAIMER: these toy example parameters are not guaranteed to be secure or yield correct
|
||||
@@ -523,7 +523,7 @@ pub fn par_keyswitch_lwe_ciphertext_list_and_pack_in_glwe_ciphertext<
|
||||
/// the available number of threads in the current rayon thread pool then only the number of
|
||||
/// available threads will be used. Note that `thread_count` cannot be 0.
|
||||
///
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use tfhe::core_crypto::prelude::*;
|
||||
///
|
||||
/// // DISCLAIMER: these toy example parameters are not guaranteed to be secure or yield correct
|
||||
|
||||
@@ -19,7 +19,7 @@ use crate::core_crypto::entities::{
|
||||
/// keyswitching key constructed from an input [`LWE secret key`](`LweSecretKey`) and an output
|
||||
/// [`GLWE secret key`](`GlweSecretKey`).
|
||||
///
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use tfhe::core_crypto::prelude::*;
|
||||
///
|
||||
/// // DISCLAIMER: these toy example parameters are not guaranteed to be secure or yield correct
|
||||
@@ -210,7 +210,7 @@ where
|
||||
/// constructed from an input [`LWE secret key`](`LweSecretKey`) and an output
|
||||
/// [`GLWE secret key`](`GlweSecretKey`).
|
||||
///
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use tfhe::core_crypto::prelude::*;
|
||||
///
|
||||
/// // DISCLAIMER: these toy example parameters are not guaranteed to be secure or yield correct
|
||||
|
||||
@@ -29,7 +29,7 @@ use dyn_stack::{PodStack, SizeOverflow, StackReq};
|
||||
///
|
||||
/// # Example
|
||||
///
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use tfhe::core_crypto::prelude::*;
|
||||
///
|
||||
/// // This example recreates a PBS by combining a blind rotate and a sample extract.
|
||||
@@ -300,7 +300,7 @@ pub fn blind_rotate_assign_mem_optimized_requirement<Scalar>(
|
||||
///
|
||||
/// ```text
|
||||
/// out <- out + glwe * ggsw
|
||||
/// ```
|
||||
/// ```rust
|
||||
///
|
||||
/// If you want to manage the computation memory manually you can use
|
||||
/// [`add_external_product_assign_mem_optimized`].
|
||||
@@ -343,11 +343,11 @@ pub fn add_external_product_assign<Scalar, OutputGlweCont, InputGlweCont, GgswCo
|
||||
///
|
||||
/// ```text
|
||||
/// out <- out + glwe * ggsw
|
||||
/// ```
|
||||
/// ```rust
|
||||
///
|
||||
/// # Example
|
||||
///
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use tfhe::core_crypto::prelude::*;
|
||||
/// // DISCLAIMER: these toy example parameters are not guaranteed to be secure or yield correct
|
||||
/// // computations
|
||||
@@ -529,7 +529,7 @@ pub fn add_external_product_assign_mem_optimized_requirement<Scalar>(
|
||||
/// ```text
|
||||
/// ct1 <- ct1 - ct0
|
||||
/// ct0 <- ct1 * ggsw + ct0
|
||||
/// ```
|
||||
/// ```rust
|
||||
///
|
||||
/// Therefore encrypting values other than 0 or 1 in the `ggsw` will yield a linear combination of
|
||||
/// `ct0` and `ct1`
|
||||
@@ -544,7 +544,7 @@ pub fn add_external_product_assign_mem_optimized_requirement<Scalar>(
|
||||
/// return ct1
|
||||
/// else:
|
||||
/// return ct0
|
||||
/// ```
|
||||
/// ```rust
|
||||
///
|
||||
/// If you want to manage the computation memory manually you can use
|
||||
/// [`cmux_assign_mem_optimized`].
|
||||
@@ -583,7 +583,7 @@ pub fn cmux_assign<Scalar, Cont0, Cont1, GgswCont>(
|
||||
///
|
||||
/// # Example
|
||||
///
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use tfhe::core_crypto::prelude::*;
|
||||
/// // DISCLAIMER: these toy example parameters are not guaranteed to be secure or yield correct
|
||||
/// // computations
|
||||
@@ -821,7 +821,7 @@ pub fn cmux_assign_mem_optimized_requirement<Scalar>(
|
||||
///
|
||||
/// # Example
|
||||
///
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use tfhe::core_crypto::prelude::*;
|
||||
///
|
||||
/// // DISCLAIMER: these toy example parameters are not guaranteed to be secure or yield correct
|
||||
@@ -1132,7 +1132,7 @@ pub fn programmable_bootstrap_lwe_ciphertext_mem_optimized_requirement<Scalar>(
|
||||
///
|
||||
/// # Example
|
||||
///
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use tfhe::core_crypto::prelude::*;
|
||||
///
|
||||
/// // DISCLAIMER: these toy example parameters are not guaranteed to be secure or yield correct
|
||||
|
||||
@@ -30,7 +30,7 @@ where
|
||||
///
|
||||
/// # Example
|
||||
///
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use tfhe::core_crypto::prelude::*;
|
||||
///
|
||||
/// // DISCLAIMER: these toy example parameters are not guaranteed to be secure or yield correct
|
||||
|
||||
@@ -409,7 +409,7 @@ pub fn extract_bits_from_lwe_ciphertext_mem_optimized_requirement<Scalar>(
|
||||
/// ```text
|
||||
/// small lut for 1st output ciphertext|...|small lut for 4th output ciphertext
|
||||
/// |[polynomial 1] ... [polynomial 64]|...|[polynomial 1] ... [polynomial 64]|
|
||||
/// ```
|
||||
/// ```rust
|
||||
///
|
||||
/// The polynomials in the above representation are not necessarily the same, this is just for
|
||||
/// illustration purposes.
|
||||
@@ -423,14 +423,14 @@ pub fn extract_bits_from_lwe_ciphertext_mem_optimized_requirement<Scalar>(
|
||||
/// ```text
|
||||
/// small lut for 1st output ciphertext|...|small lut for 4th output ciphertext
|
||||
/// |[ polynomial 1 ]|...|[ polynomial 1 ]|
|
||||
/// ```
|
||||
/// ```rust
|
||||
///
|
||||
/// The caller must provide a properly configured [`FftView`] object and a `PodStack` used as a
|
||||
/// memory buffer having a capacity at least as large as the result of
|
||||
/// [`circuit_bootstrap_boolean_vertical_packing_lwe_ciphertext_list_mem_optimized_requirement`].
|
||||
///
|
||||
/// # Example
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use tfhe::core_crypto::prelude::*;
|
||||
///
|
||||
/// // DISCLAIMER: these toy example parameters are not guaranteed to be secure or yield correct
|
||||
|
||||
@@ -14,7 +14,7 @@ use crate::core_crypto::entities::*;
|
||||
///
|
||||
/// # Example
|
||||
///
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use tfhe::core_crypto::algorithms::polynomial_algorithms::*;
|
||||
/// use tfhe::core_crypto::entities::*;
|
||||
/// let mut first = Polynomial::from_container(vec![1u8, 2, 3, 4, 5, 6]);
|
||||
@@ -43,7 +43,7 @@ pub fn polynomial_wrapping_add_assign<Scalar, OutputCont, InputCont>(
|
||||
///
|
||||
/// # Example
|
||||
///
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use tfhe::core_crypto::algorithms::polynomial_algorithms::*;
|
||||
/// use tfhe::core_crypto::entities::*;
|
||||
/// let mut first = Polynomial::from_container(vec![1u8, 2, 3, 4, 5, 6]);
|
||||
@@ -79,7 +79,7 @@ pub fn polynomial_wrapping_sub_assign<Scalar, OutputCont, InputCont>(
|
||||
///
|
||||
/// # Example
|
||||
///
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use tfhe::core_crypto::algorithms::polynomial_algorithms::*;
|
||||
/// use tfhe::core_crypto::commons::parameters::*;
|
||||
/// use tfhe::core_crypto::entities::*;
|
||||
@@ -153,7 +153,7 @@ fn polynomial_wrapping_add_mul_assign_schoolbook<Scalar, OutputCont, InputCont1,
|
||||
///
|
||||
/// # Example
|
||||
///
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use tfhe::core_crypto::algorithms::polynomial_algorithms::*;
|
||||
/// use tfhe::core_crypto::entities::*;
|
||||
/// let poly_1 = Polynomial::from_container(vec![1_u8, 2, 3]);
|
||||
@@ -207,7 +207,7 @@ pub fn polynomial_wrapping_add_mul_assign<Scalar, OutputCont, InputCont1, InputC
|
||||
///
|
||||
/// # Examples
|
||||
///
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use tfhe::core_crypto::algorithms::polynomial_algorithms::*;
|
||||
/// use tfhe::core_crypto::commons::parameters::*;
|
||||
/// use tfhe::core_crypto::entities::*;
|
||||
@@ -249,7 +249,7 @@ pub fn polynomial_wrapping_monic_monomial_div_assign<Scalar, OutputCont>(
|
||||
///
|
||||
/// # Examples
|
||||
///
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use tfhe::core_crypto::algorithms::polynomial_algorithms::*;
|
||||
/// use tfhe::core_crypto::commons::parameters::*;
|
||||
/// use tfhe::core_crypto::entities::*;
|
||||
@@ -302,7 +302,7 @@ fn copy_without_neg<Scalar: UnsignedInteger>(dst: &mut [Scalar], src: &[Scalar])
|
||||
///
|
||||
/// # Examples
|
||||
///
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use tfhe::core_crypto::algorithms::polynomial_algorithms::*;
|
||||
/// use tfhe::core_crypto::commons::parameters::*;
|
||||
/// use tfhe::core_crypto::entities::*;
|
||||
@@ -362,7 +362,7 @@ pub fn polynomial_wrapping_monic_monomial_div<Scalar, OutputCont, InputCont>(
|
||||
///
|
||||
/// # Examples
|
||||
///
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use tfhe::core_crypto::algorithms::polynomial_algorithms::*;
|
||||
/// use tfhe::core_crypto::commons::parameters::*;
|
||||
/// use tfhe::core_crypto::entities::*;
|
||||
@@ -504,7 +504,7 @@ pub(crate) fn polynomial_wrapping_monic_monomial_mul_and_subtract<Scalar, Output
|
||||
///
|
||||
/// # Example
|
||||
///
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use tfhe::core_crypto::algorithms::polynomial_algorithms::*;
|
||||
/// use tfhe::core_crypto::commons::parameters::*;
|
||||
/// use tfhe::core_crypto::entities::*;
|
||||
@@ -579,7 +579,7 @@ fn polynomial_wrapping_sub_mul_assign_schoolbook<Scalar, OutputCont, InputCont1,
|
||||
///
|
||||
/// # Example
|
||||
///
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use tfhe::core_crypto::algorithms::polynomial_algorithms::*;
|
||||
/// use tfhe::core_crypto::entities::*;
|
||||
/// let poly_1 = Polynomial::from_container(vec![1_u8, 2, 3]);
|
||||
@@ -633,7 +633,7 @@ pub fn polynomial_wrapping_sub_mul_assign<Scalar, OutputCont, InputCont1, InputC
|
||||
///
|
||||
/// # Example
|
||||
///
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use tfhe::core_crypto::algorithms::polynomial_algorithms::*;
|
||||
/// use tfhe::core_crypto::commons::parameters::*;
|
||||
/// use tfhe::core_crypto::entities::*;
|
||||
@@ -667,7 +667,7 @@ pub fn polynomial_wrapping_mul<Scalar, OutputCont, LhsCont, RhsCont>(
|
||||
///
|
||||
/// # Example
|
||||
///
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use tfhe::core_crypto::algorithms::polynomial_algorithms::*;
|
||||
/// use tfhe::core_crypto::commons::parameters::*;
|
||||
/// use tfhe::core_crypto::entities::*;
|
||||
|
||||
@@ -13,7 +13,7 @@ use crate::core_crypto::entities::Polynomial;
|
||||
///
|
||||
/// # Example
|
||||
///
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use tfhe::core_crypto::algorithms::slice_algorithms::*;
|
||||
/// let mut first = vec![1u8, 2, 3, 4, 5, 6];
|
||||
/// let second = vec![255u8, 255, 255, 1, 2, 3];
|
||||
@@ -72,7 +72,7 @@ where
|
||||
///
|
||||
/// # Example
|
||||
///
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use tfhe::core_crypto::algorithms::slice_algorithms::*;
|
||||
/// let mut first = vec![1u8, 2, 3, 4, 5, 6];
|
||||
/// let second = vec![255u8, 255, 255, 1, 2, 3];
|
||||
@@ -139,7 +139,7 @@ pub fn slice_wrapping_add_custom_mod<Scalar>(
|
||||
///
|
||||
/// # Example
|
||||
///
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use tfhe::core_crypto::algorithms::slice_algorithms::*;
|
||||
/// let mut first = vec![1u8, 2, 3, 4, 5, 6];
|
||||
/// let second = vec![255u8, 255, 255, 1, 2, 3];
|
||||
@@ -192,7 +192,7 @@ pub fn slice_wrapping_add_assign_custom_mod<Scalar>(
|
||||
///
|
||||
/// # Example
|
||||
///
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use tfhe::core_crypto::algorithms::slice_algorithms::*;
|
||||
/// let mut first = vec![1u8, 2, 3, 4, 5, 6];
|
||||
/// let second = vec![255u8, 255, 255, 1, 2, 3];
|
||||
@@ -227,7 +227,7 @@ pub fn slice_wrapping_add_scalar_mul_assign<Scalar>(
|
||||
///
|
||||
/// # Example
|
||||
///
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use tfhe::core_crypto::algorithms::slice_algorithms::*;
|
||||
/// let mut first = vec![1u8, 2, 3, 4, 5, 6];
|
||||
/// let second = vec![255u8, 255, 255, 1, 2, 3];
|
||||
@@ -294,7 +294,7 @@ pub fn slice_wrapping_sub_custom_mod<Scalar>(
|
||||
///
|
||||
/// # Example
|
||||
///
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use tfhe::core_crypto::algorithms::slice_algorithms::*;
|
||||
/// let mut first = vec![1u8, 2, 3, 4, 5, 6];
|
||||
/// let second = vec![255u8, 255, 255, 1, 2, 3];
|
||||
@@ -353,7 +353,7 @@ pub fn slice_wrapping_sub_assign_custom_mod<Scalar>(
|
||||
///
|
||||
/// # Example
|
||||
///
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use tfhe::core_crypto::algorithms::slice_algorithms::*;
|
||||
/// let mut first = vec![1u8, 2, 3, 4, 5, 6];
|
||||
/// let second = vec![255u8, 255, 255, 1, 2, 3];
|
||||
@@ -490,7 +490,7 @@ pub fn slice_wrapping_sub_scalar_mul_assign_custom_modulus<Scalar>(
|
||||
///
|
||||
/// # Example
|
||||
///
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use tfhe::core_crypto::algorithms::slice_algorithms::*;
|
||||
/// let mut first = vec![1u8, 2, 3, 4, 5, 6];
|
||||
/// slice_wrapping_opposite_assign(&mut first);
|
||||
@@ -525,7 +525,7 @@ pub fn slice_wrapping_opposite_assign_custom_mod<Scalar>(
|
||||
///
|
||||
/// # Example
|
||||
///
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use tfhe::core_crypto::algorithms::slice_algorithms::*;
|
||||
/// let mut first = vec![1u8, 2, 3, 4, 5, 6];
|
||||
/// let scalar = 252;
|
||||
@@ -568,7 +568,7 @@ where
|
||||
///
|
||||
/// # Example
|
||||
///
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use tfhe::core_crypto::algorithms::slice_algorithms::*;
|
||||
/// let mut first = vec![1u8, 2, 3, 4, 5, 255];
|
||||
/// let scalar = 1;
|
||||
@@ -592,7 +592,7 @@ where
|
||||
///
|
||||
/// # Example
|
||||
///
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use tfhe::core_crypto::algorithms::slice_algorithms::*;
|
||||
/// let mut first = vec![0u8, 1, 2, 3, 4, 5];
|
||||
/// let scalar = 1;
|
||||
@@ -610,7 +610,7 @@ where
|
||||
/// Primitive for compact LWE public key
|
||||
///
|
||||
/// Here $i$ from section 3 of <https://eprint.iacr.org/2023/603> is taken equal to $n$.
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use tfhe::core_crypto::algorithms::slice_algorithms::*;
|
||||
/// let lhs = vec![1u8, 2u8, 3u8];
|
||||
/// let rhs = vec![4u8, 5u8, 6u8];
|
||||
|
||||
@@ -43,7 +43,7 @@ pub trait DispersionParameter: Copy {
|
||||
///
|
||||
/// # Example:
|
||||
///
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use tfhe::core_crypto::commons::dispersion::{DispersionParameter, LogStandardDev};
|
||||
/// let params = LogStandardDev::from_log_standard_dev(-25.);
|
||||
/// assert_eq!(params.get_standard_dev(), 2_f64.powf(-25.));
|
||||
@@ -97,7 +97,7 @@ impl DispersionParameter for LogStandardDev {
|
||||
///
|
||||
/// # Example:
|
||||
///
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use tfhe::core_crypto::commons::dispersion::{DispersionParameter, StandardDev};
|
||||
/// let params = StandardDev::from_standard_dev(2_f64.powf(-25.));
|
||||
/// assert_eq!(params.get_standard_dev(), 2_f64.powf(-25.));
|
||||
@@ -148,7 +148,7 @@ impl DispersionParameter for StandardDev {
|
||||
///
|
||||
/// # Example:
|
||||
///
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use tfhe::core_crypto::commons::dispersion::{DispersionParameter, Variance};
|
||||
/// let params = Variance::from_variance(2_f64.powi(-50));
|
||||
/// assert_eq!(params.get_standard_dev(), 2_f64.powf(-25.));
|
||||
|
||||
@@ -121,7 +121,7 @@ impl<G: ByteRandomGenerator> RandomGenerator<G> {
|
||||
///
|
||||
/// # Example
|
||||
///
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use concrete_csprng::generators::SoftwareRandomGenerator;
|
||||
/// use concrete_csprng::seeders::Seed;
|
||||
/// use tfhe::core_crypto::commons::math::random::RandomGenerator;
|
||||
@@ -465,7 +465,7 @@ impl<G: ByteRandomGenerator> RandomGenerator<G> {
|
||||
///
|
||||
/// # Example
|
||||
///
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use concrete_csprng::generators::SoftwareRandomGenerator;
|
||||
/// use concrete_csprng::seeders::Seed;
|
||||
/// use tfhe::core_crypto::commons::math::random::RandomGenerator;
|
||||
@@ -485,7 +485,7 @@ impl<G: ByteRandomGenerator> RandomGenerator<G> {
|
||||
///
|
||||
/// # Example
|
||||
///
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use concrete_csprng::generators::SoftwareRandomGenerator;
|
||||
/// use concrete_csprng::seeders::Seed;
|
||||
/// use tfhe::core_crypto::commons::math::random::RandomGenerator;
|
||||
@@ -537,7 +537,7 @@ impl<G: ByteRandomGenerator> RandomGenerator<G> {
|
||||
///
|
||||
/// # Example
|
||||
///
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use concrete_csprng::generators::SoftwareRandomGenerator;
|
||||
/// use concrete_csprng::seeders::Seed;
|
||||
/// use tfhe::core_crypto::commons::math::random::RandomGenerator;
|
||||
@@ -604,7 +604,7 @@ impl<G: ByteRandomGenerator> RandomGenerator<G> {
|
||||
///
|
||||
/// # Example
|
||||
///
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use concrete_csprng::generators::SoftwareRandomGenerator;
|
||||
/// use concrete_csprng::seeders::Seed;
|
||||
/// use tfhe::core_crypto::commons::math::random::RandomGenerator;
|
||||
@@ -637,7 +637,7 @@ impl<G: ByteRandomGenerator> RandomGenerator<G> {
|
||||
///
|
||||
/// # Example
|
||||
///
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use concrete_csprng::generators::SoftwareRandomGenerator;
|
||||
/// use concrete_csprng::seeders::Seed;
|
||||
/// use tfhe::core_crypto::commons::math::random::RandomGenerator;
|
||||
@@ -688,7 +688,7 @@ impl<G: ByteRandomGenerator> RandomGenerator<G> {
|
||||
///
|
||||
/// # Example
|
||||
///
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use concrete_csprng::generators::SoftwareRandomGenerator;
|
||||
/// use concrete_csprng::seeders::Seed;
|
||||
/// use tfhe::core_crypto::commons::math::random::RandomGenerator;
|
||||
@@ -722,7 +722,7 @@ impl<G: ByteRandomGenerator> RandomGenerator<G> {
|
||||
///
|
||||
/// # Example
|
||||
///
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use concrete_csprng::generators::SoftwareRandomGenerator;
|
||||
/// use concrete_csprng::seeders::Seed;
|
||||
/// use tfhe::core_crypto::commons::math::random::RandomGenerator;
|
||||
@@ -779,7 +779,7 @@ impl<G: ParallelByteRandomGenerator> RandomGenerator<G> {
|
||||
///
|
||||
/// # Example
|
||||
///
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use concrete_csprng::generators::SoftwareRandomGenerator;
|
||||
/// use concrete_csprng::seeders::Seed;
|
||||
/// use tfhe::core_crypto::commons::math::random::RandomGenerator;
|
||||
|
||||
@@ -8,7 +8,7 @@ pub struct Cleartext<T: Numeric>(pub T);
|
||||
/// An immutable reference to a cleartext value.
|
||||
///
|
||||
/// Can be converted to a cleartext via a call to `into`
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use tfhe::core_crypto::entities::*;
|
||||
///
|
||||
/// pub fn takes_cleartext(clear: Cleartext<u64>) {
|
||||
@@ -26,7 +26,7 @@ pub struct CleartextRef<'data, T: Numeric>(pub &'data T);
|
||||
/// A mutable reference to a cleartext (encoded) value.
|
||||
///
|
||||
/// Can be converted to a cleartext via a call to `into`
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use tfhe::core_crypto::entities::*;
|
||||
///
|
||||
/// pub fn takes_cleartext(clear: Cleartext<u64>) {
|
||||
|
||||
@@ -228,7 +228,7 @@ impl<Scalar: UnsignedInteger, C: Container<Element = Scalar>> GgswCiphertext<C>
|
||||
///
|
||||
/// This docstring exhibits [`GgswCiphertext`] primitives usage.
|
||||
///
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use tfhe::core_crypto::prelude::*;
|
||||
///
|
||||
/// // DISCLAIMER: these toy example parameters are not guaranteed to be secure or yield correct
|
||||
@@ -512,7 +512,7 @@ impl<Scalar: UnsignedInteger, C: Container<Element = Scalar>> GgswLevelMatrix<C>
|
||||
///
|
||||
/// This docstring exhibits [`GgswLevelMatrix`] primitives usage.
|
||||
///
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use tfhe::core_crypto::prelude::*;
|
||||
///
|
||||
/// // DISCLAIMER: these toy example parameters are not guaranteed to be secure or yield correct
|
||||
|
||||
@@ -54,7 +54,7 @@ impl<Scalar: UnsignedInteger, C: Container<Element = Scalar>> GgswCiphertextList
|
||||
///
|
||||
/// This docstring exhibits [`GgswCiphertextList`] primitives usage.
|
||||
///
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use tfhe::core_crypto::prelude::*;
|
||||
///
|
||||
/// // DISCLAIMER: these toy example parameters are not guaranteed to be secure or yield correct
|
||||
|
||||
@@ -21,7 +21,7 @@ impl<Scalar: UnsignedInteger, C: Container<Element = Scalar>> GlweBody<C> {
|
||||
///
|
||||
/// This docstring exhibits [`GlweBody`] primitives usage.
|
||||
///
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use tfhe::core_crypto::prelude::*;
|
||||
///
|
||||
/// // DISCLAIMER: these toy example parameters are not guaranteed to be secure or yield correct
|
||||
@@ -102,7 +102,7 @@ impl<Scalar: UnsignedInteger, C: Container<Element = Scalar>> GlweMask<C> {
|
||||
///
|
||||
/// This docstring exhibits [`GlweMask`] primitives usage.
|
||||
///
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use tfhe::core_crypto::prelude::*;
|
||||
///
|
||||
/// // DISCLAIMER: these toy example parameters are not guaranteed to be secure or yield correct
|
||||
@@ -315,7 +315,7 @@ impl<Scalar: UnsignedInteger, C: Container<Element = Scalar>> GlweCiphertext<C>
|
||||
///
|
||||
/// This docstring exhibits [`GlweCiphertext`] primitives usage.
|
||||
///
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use tfhe::core_crypto::prelude::*;
|
||||
///
|
||||
/// // DISCLAIMER: these toy example parameters are not guaranteed to be secure or yield correct
|
||||
|
||||
@@ -42,7 +42,7 @@ impl<Scalar: UnsignedInteger, C: Container<Element = Scalar>> GlweCiphertextList
|
||||
///
|
||||
/// This docstring exhibits [`GlweCiphertextList`] primitives usage.
|
||||
///
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use tfhe::core_crypto::prelude::*;
|
||||
///
|
||||
/// // DISCLAIMER: these toy example parameters are not guaranteed to be secure or yield correct
|
||||
|
||||
@@ -49,7 +49,7 @@ impl<Scalar, C: Container<Element = Scalar>> GlweSecretKey<C> {
|
||||
///
|
||||
/// This docstring exhibits [`GlweSecretKey`] primitives usage.
|
||||
///
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use tfhe::core_crypto::prelude::*;
|
||||
///
|
||||
/// // DISCLAIMER: these toy example parameters are not guaranteed to be secure or yield correct
|
||||
@@ -185,7 +185,7 @@ where
|
||||
///
|
||||
/// # Example
|
||||
///
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use tfhe::core_crypto::prelude::*;
|
||||
///
|
||||
/// // DISCLAIMER: these toy example parameters are not guaranteed to be secure or yield correct
|
||||
|
||||
@@ -149,7 +149,7 @@ impl<Scalar: UnsignedInteger, C: Container<Element = Scalar>> LweBootstrapKey<C>
|
||||
///
|
||||
/// This docstring exhibits [`LweBootstrapKey`] primitives usage.
|
||||
///
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use tfhe::core_crypto::prelude::*;
|
||||
///
|
||||
/// // DISCLAIMER: these toy example parameters are not guaranteed to be secure or yield correct
|
||||
|
||||
@@ -223,7 +223,7 @@ impl<Scalar: UnsignedInteger, C: Container<Element = Scalar>> LweMask<C> {
|
||||
///
|
||||
/// This docstring exhibits [`LweMask`] primitives usage.
|
||||
///
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use tfhe::core_crypto::prelude::*;
|
||||
///
|
||||
/// // DISCLAIMER: these toy example parameters are not guaranteed to be secure or yield correct
|
||||
@@ -542,7 +542,7 @@ impl<Scalar: UnsignedInteger, C: Container<Element = Scalar>> LweCiphertext<C> {
|
||||
///
|
||||
/// This docstring exhibits [`LweCiphertext`] primitives usage.
|
||||
///
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use tfhe::core_crypto::prelude::*;
|
||||
///
|
||||
/// // DISCLAIMER: these toy example parameters are not guaranteed to be secure or yield correct
|
||||
|
||||
@@ -40,7 +40,7 @@ impl<Scalar: UnsignedInteger, C: Container<Element = Scalar>> LweCiphertextList<
|
||||
///
|
||||
/// This docstring exhibits [`LweCiphertextList`] primitives usage.
|
||||
///
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use tfhe::core_crypto::prelude::*;
|
||||
///
|
||||
/// // DISCLAIMER: these toy example parameters are not guaranteed to be secure or yield correct
|
||||
|
||||
@@ -76,7 +76,7 @@ impl<Scalar: UnsignedInteger, C: Container<Element = Scalar>> LweCompactCipherte
|
||||
///
|
||||
/// This docstring exhibits [`LweCompactCiphertextList`] primitives usage.
|
||||
///
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use tfhe::core_crypto::prelude::*;
|
||||
///
|
||||
/// // DISCLAIMER: these toy example parameters are not guaranteed to be secure or yield correct
|
||||
|
||||
@@ -40,7 +40,7 @@ impl<Scalar: UnsignedInteger, C: Container<Element = Scalar>> LweCompactPublicKe
|
||||
///
|
||||
/// This docstring exhibits [`LweCompactPublicKey`] primitives usage.
|
||||
///
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use tfhe::core_crypto::prelude::*;
|
||||
///
|
||||
/// // DISCLAIMER: these toy example parameters are not guaranteed to be secure or yield correct
|
||||
|
||||
@@ -118,7 +118,7 @@ impl<Scalar: UnsignedInteger, C: Container<Element = Scalar>> LweKeyswitchKey<C>
|
||||
///
|
||||
/// This docstring exhibits [`LweKeyswitchKey`] primitives usage.
|
||||
///
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use tfhe::core_crypto::prelude::*;
|
||||
///
|
||||
/// // DISCLAIMER: these toy example parameters are not guaranteed to be secure or yield correct
|
||||
|
||||
@@ -74,7 +74,7 @@ impl<Scalar: UnsignedInteger, C: Container<Element = Scalar>> LweMultiBitBootstr
|
||||
///
|
||||
/// This docstring exhibits [`LweMultiBitBootstrapKey`] primitives usage.
|
||||
///
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use tfhe::core_crypto::prelude::*;
|
||||
///
|
||||
/// // DISCLAIMER: these toy example parameters are not guaranteed to be secure or yield correct
|
||||
|
||||
@@ -59,7 +59,7 @@ impl<Scalar: UnsignedInteger, C: Container<Element = Scalar>> LwePackingKeyswitc
|
||||
///
|
||||
/// This docstring exhibits [`LwePackingKeyswitchKey`] primitives usage.
|
||||
///
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use tfhe::core_crypto::prelude::*;
|
||||
///
|
||||
/// // DISCLAIMER: these toy example parameters are not guaranteed to be secure or yield correct
|
||||
|
||||
@@ -78,7 +78,7 @@ impl<Scalar: UnsignedInteger, C: Container<Element = Scalar>>
|
||||
///
|
||||
/// This docstring exhibits [`LwePrivateFunctionalPackingKeyswitchKey`] primitives usage.
|
||||
///
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use tfhe::core_crypto::prelude::*;
|
||||
///
|
||||
/// // DISCLAIMER: these toy example parameters are not guaranteed to be secure or yield correct
|
||||
|
||||
@@ -56,7 +56,7 @@ impl<Scalar: UnsignedInteger, C: Container<Element = Scalar>>
|
||||
///
|
||||
/// This docstring exhibits [`LwePrivateFunctionalPackingKeyswitchKeyList`] primitives usage.
|
||||
///
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use tfhe::core_crypto::prelude::*;
|
||||
///
|
||||
/// // DISCLAIMER: these toy example parameters are not guaranteed to be secure or yield correct
|
||||
|
||||
@@ -55,7 +55,7 @@ impl<Scalar: UnsignedInteger, C: Container<Element = Scalar>> LwePublicKey<C> {
|
||||
///
|
||||
/// This docstring exhibits [`LwePublicKey`] primitives usage.
|
||||
///
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use tfhe::core_crypto::prelude::*;
|
||||
///
|
||||
/// // DISCLAIMER: these toy example parameters are not guaranteed to be secure or yield correct
|
||||
|
||||
@@ -46,7 +46,7 @@ impl<Scalar, C: Container<Element = Scalar>> LweSecretKey<C> {
|
||||
///
|
||||
/// This docstring exhibits [`LweSecretKey`] primitives usage.
|
||||
///
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use tfhe::core_crypto::prelude::*;
|
||||
///
|
||||
/// // DISCLAIMER: these toy example parameters are not guaranteed to be secure or yield correct
|
||||
@@ -134,7 +134,7 @@ where
|
||||
///
|
||||
/// # Example
|
||||
///
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use tfhe::core_crypto::prelude::*;
|
||||
///
|
||||
/// // DISCLAIMER: these toy example parameters are not guaranteed to be secure or yield correct
|
||||
|
||||
@@ -6,7 +6,7 @@ use crate::core_crypto::prelude::*;
|
||||
/// The uncompacted result can be used as the input of a blind rotation to recover a low noise lwe
|
||||
/// ciphertext
|
||||
///
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use concrete_csprng::seeders::Seed;
|
||||
/// use tfhe::core_crypto::prelude::*;
|
||||
/// use tfhe::core_crypto::fft_impl::common::modulus_switch;
|
||||
|
||||
@@ -8,7 +8,7 @@ pub struct Plaintext<T: Numeric>(pub T);
|
||||
/// An immutable reference to a plaintext (encoded) value.
|
||||
///
|
||||
/// Can be converted to a plaintext via a call to `into`
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use tfhe::core_crypto::entities::*;
|
||||
///
|
||||
/// pub fn takes_plaintext(plain: Plaintext<u64>) {
|
||||
@@ -26,7 +26,7 @@ pub struct PlaintextRef<'data, T: Numeric>(pub &'data T);
|
||||
/// A mutable reference to a plaintext (encoded) value.
|
||||
///
|
||||
/// Can be converted to a plaintext via a call to `into`
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use tfhe::core_crypto::entities::*;
|
||||
///
|
||||
/// pub fn takes_plaintext(plain: Plaintext<u64>) {
|
||||
|
||||
@@ -31,7 +31,7 @@ impl<Scalar, C: Container<Element = Scalar>> PlaintextList<C> {
|
||||
///
|
||||
/// This docstring exhibits [`PlaintextList`] primitives usage.
|
||||
///
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use tfhe::core_crypto::prelude::*;
|
||||
///
|
||||
/// // Define parameters for PlaintextList creation
|
||||
|
||||
@@ -45,7 +45,7 @@ impl<Scalar, C: Container<Element = Scalar>> Polynomial<C> {
|
||||
///
|
||||
/// This docstring exhibits [`Polynomial`] primitives usage.
|
||||
///
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use tfhe::core_crypto::prelude::*;
|
||||
///
|
||||
/// // DISCLAIMER: these toy example parameters are not guaranteed to be secure or yield correct
|
||||
|
||||
@@ -33,7 +33,7 @@ impl<Scalar, C: Container<Element = Scalar>> PolynomialList<C> {
|
||||
///
|
||||
/// This docstring exhibits [`PolynomialList`] primitives usage.
|
||||
///
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use tfhe::core_crypto::prelude::*;
|
||||
///
|
||||
/// // DISCLAIMER: these toy example parameters are not guaranteed to be secure or yield correct
|
||||
|
||||
@@ -64,7 +64,7 @@ impl<Scalar: UnsignedInteger, C: Container<Element = Scalar>> SeededGgswCipherte
|
||||
///
|
||||
/// This docstring exhibits [`SeededGgswCiphertext`] primitives usage.
|
||||
///
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use tfhe::core_crypto::prelude::*;
|
||||
///
|
||||
/// // DISCLAIMER: these toy example parameters are not guaranteed to be secure or yield correct
|
||||
@@ -443,7 +443,7 @@ impl<Scalar: UnsignedInteger, C: Container<Element = Scalar>> SeededGgswLevelMat
|
||||
///
|
||||
/// This docstring exhibits [`SeededGgswLevelMatrix`] primitives usage.
|
||||
///
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use tfhe::core_crypto::prelude::*;
|
||||
///
|
||||
/// // DISCLAIMER: these toy example parameters are not guaranteed to be secure or yield correct
|
||||
|
||||
@@ -48,7 +48,7 @@ impl<Scalar: UnsignedInteger, C: Container<Element = Scalar>> SeededGgswCipherte
|
||||
///
|
||||
/// This docstring exhibits [`SeededGgswCiphertextList`] primitives usage.
|
||||
///
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use tfhe::core_crypto::prelude::*;
|
||||
///
|
||||
/// // DISCLAIMER: these toy example parameters are not guaranteed to be secure or yield correct
|
||||
|
||||
@@ -41,7 +41,7 @@ impl<Scalar: UnsignedInteger, C: Container<Element = Scalar>> SeededGlweCipherte
|
||||
///
|
||||
/// This docstring exhibits [`SeededGlweCiphertext`] primitives usage.
|
||||
///
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use tfhe::core_crypto::prelude::*;
|
||||
///
|
||||
/// // DISCLAIMER: these toy example parameters are not guaranteed to be secure or yield correct
|
||||
|
||||
@@ -43,7 +43,7 @@ impl<Scalar: UnsignedInteger, C: Container<Element = Scalar>> SeededGlweCipherte
|
||||
///
|
||||
/// This docstring exhibits [`SeededGlweCiphertextList`] primitives usage.
|
||||
///
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use tfhe::core_crypto::prelude::*;
|
||||
///
|
||||
/// // DISCLAIMER: these toy example parameters are not guaranteed to be secure or yield correct
|
||||
|
||||
@@ -54,7 +54,7 @@ impl<Scalar: UnsignedInteger, C: Container<Element = Scalar>> SeededLweBootstrap
|
||||
///
|
||||
/// This docstring exhibits [`SeededLweBootstrapKey`] primitives usage.
|
||||
///
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use tfhe::core_crypto::prelude::*;
|
||||
///
|
||||
/// // DISCLAIMER: these toy example parameters are not guaranteed to be secure or yield correct
|
||||
|
||||
@@ -64,7 +64,7 @@ impl<Scalar: UnsignedInteger> SeededLweCiphertext<Scalar> {
|
||||
///
|
||||
///F # Example
|
||||
///
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use tfhe::core_crypto::prelude::*;
|
||||
///
|
||||
/// // DISCLAIMER: these toy example parameters are not guaranteed to be secure or yield correct
|
||||
|
||||
@@ -43,7 +43,7 @@ impl<Scalar: UnsignedInteger, C: Container<Element = Scalar>> SeededLweCiphertex
|
||||
///
|
||||
/// This docstring exhibits [`SeededLweCiphertextList`] primitives usage.
|
||||
///
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use tfhe::core_crypto::prelude::*;
|
||||
///
|
||||
/// // DISCLAIMER: these toy example parameters are not guaranteed to be secure or yield correct
|
||||
|
||||
@@ -42,7 +42,7 @@ impl<Scalar: UnsignedInteger, C: Container<Element = Scalar>> SeededLweCompactPu
|
||||
///
|
||||
/// This docstring exhibits [`SeededLweCompactPublicKey`] primitives usage.
|
||||
///
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use tfhe::core_crypto::prelude::*;
|
||||
///
|
||||
/// // DISCLAIMER: these toy example parameters are not guaranteed to be secure or yield correct
|
||||
|
||||
@@ -53,7 +53,7 @@ impl<Scalar: UnsignedInteger, C: Container<Element = Scalar>> SeededLweKeyswitch
|
||||
///
|
||||
/// This docstring exhibits [`SeededLweKeyswitchKey`] primitives usage.
|
||||
///
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use tfhe::core_crypto::prelude::*;
|
||||
///
|
||||
/// // DISCLAIMER: these toy example parameters are not guaranteed to be secure or yield correct
|
||||
|
||||
@@ -56,7 +56,7 @@ impl<Scalar: UnsignedInteger, C: Container<Element = Scalar>> SeededLweMultiBitB
|
||||
///
|
||||
/// This docstring exhibits [`SeededLweMultiBitBootstrapKey`] primitives usage.
|
||||
///
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use tfhe::core_crypto::prelude::*;
|
||||
///
|
||||
/// // DISCLAIMER: these toy example parameters are not guaranteed to be secure or yield correct
|
||||
|
||||
@@ -58,7 +58,7 @@ impl<Scalar: UnsignedInteger, C: Container<Element = Scalar>> SeededLwePackingKe
|
||||
///
|
||||
/// This docstring exhibits [`SeededLwePackingKeyswitchKey`] primitives usage.
|
||||
///
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use tfhe::core_crypto::prelude::*;
|
||||
///
|
||||
/// // DISCLAIMER: these toy example parameters are not guaranteed to be secure or yield correct
|
||||
|
||||
@@ -61,7 +61,7 @@ impl<Scalar: UnsignedInteger, C: Container<Element = Scalar>> SeededLwePublicKey
|
||||
///
|
||||
/// This docstring exhibits [`SeededLwePublicKey`] primitives usage.
|
||||
///
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use tfhe::core_crypto::prelude::*;
|
||||
///
|
||||
/// // DISCLAIMER: these toy example parameters are not guaranteed to be secure or yield correct
|
||||
|
||||
@@ -58,7 +58,7 @@ mod wasm_seeder {
|
||||
///
|
||||
/// # Example
|
||||
///
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use tfhe::core_crypto::prelude::*;
|
||||
///
|
||||
/// let mut seeder = new_seeder();
|
||||
|
||||
@@ -103,10 +103,10 @@ impl FheBool {
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// # use tfhe::prelude::*;
|
||||
/// # use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheBool};
|
||||
/// #
|
||||
/// # let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// use tfhe::prelude::*;
|
||||
/// use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheBool};
|
||||
///
|
||||
/// let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// set_server_key(server_key);
|
||||
///
|
||||
/// // This is not a trivial ciphertext as we use a client key to encrypt.
|
||||
@@ -131,10 +131,10 @@ impl FheBool {
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// # use tfhe::prelude::*;
|
||||
/// # use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheBool};
|
||||
/// #
|
||||
/// # let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// use tfhe::prelude::*;
|
||||
/// use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheBool};
|
||||
///
|
||||
/// let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// set_server_key(server_key);
|
||||
///
|
||||
/// let non_trivial = FheBool::encrypt(false, &client_key);
|
||||
@@ -218,10 +218,10 @@ where
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// # use tfhe::prelude::*;
|
||||
/// # use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheBool};
|
||||
/// use tfhe::prelude::*;
|
||||
/// use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheBool};
|
||||
///
|
||||
/// # let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// set_server_key(server_key);
|
||||
///
|
||||
/// let a = FheBool::encrypt(true, &client_key);
|
||||
@@ -259,10 +259,10 @@ where
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// # use tfhe::prelude::*;
|
||||
/// # use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheBool};
|
||||
/// use tfhe::prelude::*;
|
||||
/// use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheBool};
|
||||
///
|
||||
/// # let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// set_server_key(server_key);
|
||||
///
|
||||
/// let a = FheBool::encrypt(true, &client_key);
|
||||
@@ -302,10 +302,10 @@ impl FheEq<bool> for FheBool {
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// # use tfhe::prelude::*;
|
||||
/// # use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheBool};
|
||||
/// use tfhe::prelude::*;
|
||||
/// use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheBool};
|
||||
///
|
||||
/// # let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// set_server_key(server_key);
|
||||
///
|
||||
/// let a = FheBool::encrypt(true, &client_key);
|
||||
@@ -341,10 +341,10 @@ impl FheEq<bool> for FheBool {
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// # use tfhe::prelude::*;
|
||||
/// # use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheBool};
|
||||
/// use tfhe::prelude::*;
|
||||
/// use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheBool};
|
||||
///
|
||||
/// # let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// set_server_key(server_key);
|
||||
///
|
||||
/// let a = FheBool::encrypt(true, &client_key);
|
||||
@@ -387,10 +387,10 @@ where
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// # use tfhe::prelude::*;
|
||||
/// # use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheBool};
|
||||
/// #
|
||||
/// # let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// use tfhe::prelude::*;
|
||||
/// use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheBool};
|
||||
///
|
||||
/// let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// set_server_key(server_key);
|
||||
///
|
||||
/// let a = FheBool::encrypt(true, &client_key);
|
||||
@@ -415,10 +415,10 @@ where
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// # use tfhe::prelude::*;
|
||||
/// # use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheBool};
|
||||
/// #
|
||||
/// # let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// use tfhe::prelude::*;
|
||||
/// use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheBool};
|
||||
///
|
||||
/// let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// set_server_key(server_key);
|
||||
///
|
||||
/// let a = FheBool::encrypt(true, &client_key);
|
||||
@@ -461,10 +461,10 @@ where
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// # use tfhe::prelude::*;
|
||||
/// # use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheBool};
|
||||
/// #
|
||||
/// # let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// use tfhe::prelude::*;
|
||||
/// use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheBool};
|
||||
///
|
||||
/// let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// set_server_key(server_key);
|
||||
///
|
||||
/// let a = FheBool::encrypt(true, &client_key);
|
||||
@@ -490,10 +490,10 @@ where
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// # use tfhe::prelude::*;
|
||||
/// # use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheBool};
|
||||
/// #
|
||||
/// # let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// use tfhe::prelude::*;
|
||||
/// use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheBool};
|
||||
///
|
||||
/// let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// set_server_key(server_key);
|
||||
///
|
||||
/// let a = FheBool::encrypt(true, &client_key);
|
||||
@@ -537,10 +537,10 @@ where
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// # use tfhe::prelude::*;
|
||||
/// # use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheBool};
|
||||
/// #
|
||||
/// # let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// use tfhe::prelude::*;
|
||||
/// use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheBool};
|
||||
///
|
||||
/// let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// set_server_key(server_key);
|
||||
///
|
||||
/// let a = FheBool::encrypt(true, &client_key);
|
||||
@@ -566,10 +566,10 @@ where
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// # use tfhe::prelude::*;
|
||||
/// # use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheBool};
|
||||
/// #
|
||||
/// # let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// use tfhe::prelude::*;
|
||||
/// use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheBool};
|
||||
///
|
||||
/// let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// set_server_key(server_key);
|
||||
///
|
||||
/// let a = FheBool::encrypt(true, &client_key);
|
||||
@@ -610,10 +610,10 @@ impl BitAnd<bool> for FheBool {
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// # use tfhe::prelude::*;
|
||||
/// # use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheBool};
|
||||
/// #
|
||||
/// # let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// use tfhe::prelude::*;
|
||||
/// use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheBool};
|
||||
///
|
||||
/// let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// set_server_key(server_key);
|
||||
///
|
||||
/// let a = FheBool::encrypt(true, &client_key);
|
||||
@@ -635,10 +635,10 @@ impl BitAnd<bool> for &FheBool {
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// # use tfhe::prelude::*;
|
||||
/// # use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheBool};
|
||||
/// #
|
||||
/// # let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// use tfhe::prelude::*;
|
||||
/// use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheBool};
|
||||
///
|
||||
/// let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// set_server_key(server_key);
|
||||
///
|
||||
/// let a = FheBool::encrypt(true, &client_key);
|
||||
@@ -677,10 +677,10 @@ impl BitOr<bool> for FheBool {
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// # use tfhe::prelude::*;
|
||||
/// # use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheBool};
|
||||
/// #
|
||||
/// # let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// use tfhe::prelude::*;
|
||||
/// use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheBool};
|
||||
///
|
||||
/// let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// set_server_key(server_key);
|
||||
///
|
||||
/// let a = FheBool::encrypt(true, &client_key);
|
||||
@@ -702,10 +702,10 @@ impl BitOr<bool> for &FheBool {
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// # use tfhe::prelude::*;
|
||||
/// # use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheBool};
|
||||
/// #
|
||||
/// # let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// use tfhe::prelude::*;
|
||||
/// use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheBool};
|
||||
///
|
||||
/// let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// set_server_key(server_key);
|
||||
///
|
||||
/// let a = FheBool::encrypt(true, &client_key);
|
||||
@@ -744,10 +744,10 @@ impl BitXor<bool> for FheBool {
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// # use tfhe::prelude::*;
|
||||
/// # use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheBool};
|
||||
/// #
|
||||
/// # let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// use tfhe::prelude::*;
|
||||
/// use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheBool};
|
||||
///
|
||||
/// let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// set_server_key(server_key);
|
||||
///
|
||||
/// let a = FheBool::encrypt(true, &client_key);
|
||||
@@ -769,10 +769,10 @@ impl BitXor<bool> for &FheBool {
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// # use tfhe::prelude::*;
|
||||
/// # use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheBool};
|
||||
/// #
|
||||
/// # let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// use tfhe::prelude::*;
|
||||
/// use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheBool};
|
||||
///
|
||||
/// let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// set_server_key(server_key);
|
||||
///
|
||||
/// let a = FheBool::encrypt(true, &client_key);
|
||||
@@ -811,10 +811,10 @@ impl BitAnd<FheBool> for bool {
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// # use tfhe::prelude::*;
|
||||
/// # use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheBool};
|
||||
/// #
|
||||
/// # let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// use tfhe::prelude::*;
|
||||
/// use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheBool};
|
||||
///
|
||||
/// let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// set_server_key(server_key);
|
||||
///
|
||||
/// let a = FheBool::encrypt(true, &client_key);
|
||||
@@ -836,10 +836,10 @@ impl BitAnd<&FheBool> for bool {
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// # use tfhe::prelude::*;
|
||||
/// # use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheBool};
|
||||
/// #
|
||||
/// # let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// use tfhe::prelude::*;
|
||||
/// use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheBool};
|
||||
///
|
||||
/// let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// set_server_key(server_key);
|
||||
///
|
||||
/// let a = FheBool::encrypt(true, &client_key);
|
||||
@@ -862,10 +862,10 @@ impl BitOr<FheBool> for bool {
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// # use tfhe::prelude::*;
|
||||
/// # use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheBool};
|
||||
/// #
|
||||
/// # let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// use tfhe::prelude::*;
|
||||
/// use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheBool};
|
||||
///
|
||||
/// let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// set_server_key(server_key);
|
||||
///
|
||||
/// let a = FheBool::encrypt(true, &client_key);
|
||||
@@ -887,10 +887,10 @@ impl BitOr<&FheBool> for bool {
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// # use tfhe::prelude::*;
|
||||
/// # use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheBool};
|
||||
/// #
|
||||
/// # let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// use tfhe::prelude::*;
|
||||
/// use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheBool};
|
||||
///
|
||||
/// let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// set_server_key(server_key);
|
||||
///
|
||||
/// let a = FheBool::encrypt(true, &client_key);
|
||||
@@ -913,10 +913,10 @@ impl BitXor<FheBool> for bool {
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// # use tfhe::prelude::*;
|
||||
/// # use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheBool};
|
||||
/// #
|
||||
/// # let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// use tfhe::prelude::*;
|
||||
/// use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheBool};
|
||||
///
|
||||
/// let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// set_server_key(server_key);
|
||||
///
|
||||
/// let a = FheBool::encrypt(true, &client_key);
|
||||
@@ -939,10 +939,10 @@ impl BitXor<&FheBool> for bool {
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// # use tfhe::prelude::*;
|
||||
/// # use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheBool};
|
||||
/// #
|
||||
/// # let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// use tfhe::prelude::*;
|
||||
/// use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheBool};
|
||||
///
|
||||
/// let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// set_server_key(server_key);
|
||||
///
|
||||
/// let a = FheBool::encrypt(true, &client_key);
|
||||
@@ -966,10 +966,10 @@ where
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// # use tfhe::prelude::*;
|
||||
/// # use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheBool};
|
||||
/// #
|
||||
/// # let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// use tfhe::prelude::*;
|
||||
/// use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheBool};
|
||||
///
|
||||
/// let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// set_server_key(server_key);
|
||||
///
|
||||
/// let mut a = FheBool::encrypt(true, &client_key);
|
||||
@@ -1009,10 +1009,10 @@ where
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// # use tfhe::prelude::*;
|
||||
/// # use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheBool};
|
||||
/// #
|
||||
/// # let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// use tfhe::prelude::*;
|
||||
/// use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheBool};
|
||||
///
|
||||
/// let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// set_server_key(server_key);
|
||||
///
|
||||
/// let mut a = FheBool::encrypt(true, &client_key);
|
||||
@@ -1052,10 +1052,10 @@ where
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// # use tfhe::prelude::*;
|
||||
/// # use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheBool};
|
||||
/// #
|
||||
/// # let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// use tfhe::prelude::*;
|
||||
/// use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheBool};
|
||||
///
|
||||
/// let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// set_server_key(server_key);
|
||||
///
|
||||
/// let mut a = FheBool::encrypt(true, &client_key);
|
||||
@@ -1092,10 +1092,10 @@ impl BitAndAssign<bool> for FheBool {
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// # use tfhe::prelude::*;
|
||||
/// # use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheBool};
|
||||
/// #
|
||||
/// # let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// use tfhe::prelude::*;
|
||||
/// use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheBool};
|
||||
///
|
||||
/// let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// set_server_key(server_key);
|
||||
///
|
||||
/// let mut a = FheBool::encrypt(true, &client_key);
|
||||
@@ -1129,10 +1129,10 @@ impl BitOrAssign<bool> for FheBool {
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// # use tfhe::prelude::*;
|
||||
/// # use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheBool};
|
||||
/// #
|
||||
/// # let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// use tfhe::prelude::*;
|
||||
/// use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheBool};
|
||||
///
|
||||
/// let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// set_server_key(server_key);
|
||||
///
|
||||
/// let mut a = FheBool::encrypt(true, &client_key);
|
||||
@@ -1166,10 +1166,10 @@ impl BitXorAssign<bool> for FheBool {
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// # use tfhe::prelude::*;
|
||||
/// # use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheBool};
|
||||
/// #
|
||||
/// # let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// use tfhe::prelude::*;
|
||||
/// use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheBool};
|
||||
///
|
||||
/// let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// set_server_key(server_key);
|
||||
///
|
||||
/// let mut a = FheBool::encrypt(true, &client_key);
|
||||
@@ -1205,10 +1205,10 @@ impl std::ops::Not for FheBool {
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// # use tfhe::prelude::*;
|
||||
/// # use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheBool};
|
||||
/// #
|
||||
/// # let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// use tfhe::prelude::*;
|
||||
/// use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheBool};
|
||||
///
|
||||
/// let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// set_server_key(server_key);
|
||||
///
|
||||
/// let a = FheBool::encrypt(true, &client_key);
|
||||
@@ -1230,10 +1230,10 @@ impl std::ops::Not for &FheBool {
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// # use tfhe::prelude::*;
|
||||
/// # use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheBool};
|
||||
/// #
|
||||
/// # let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// use tfhe::prelude::*;
|
||||
/// use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheBool};
|
||||
///
|
||||
/// let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// set_server_key(server_key);
|
||||
///
|
||||
/// let a = FheBool::encrypt(true, &client_key);
|
||||
|
||||
@@ -20,7 +20,7 @@ use crate::CompactPublicKey;
|
||||
///
|
||||
/// # Example
|
||||
///
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use tfhe::prelude::*;
|
||||
/// use tfhe::{generate_keys, CompactFheBool, CompactPublicKey, ConfigBuilder, FheBool};
|
||||
///
|
||||
@@ -88,7 +88,7 @@ impl ParameterSetConformant for CompactFheBool {
|
||||
///
|
||||
/// # Example
|
||||
///
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use tfhe::prelude::*;
|
||||
/// use tfhe::{generate_keys, CompactFheBoolList, CompactPublicKey, ConfigBuilder};
|
||||
///
|
||||
|
||||
@@ -18,7 +18,7 @@ use serde::{Deserialize, Serialize};
|
||||
///
|
||||
/// # Example
|
||||
///
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use tfhe::prelude::*;
|
||||
/// use tfhe::{generate_keys, CompressedFheBool, ConfigBuilder};
|
||||
///
|
||||
|
||||
@@ -46,10 +46,10 @@ impl FheTrivialEncrypt<bool> for FheBool {
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// # use tfhe::{ConfigBuilder, generate_keys, set_server_key, FheBool};
|
||||
/// # use tfhe::prelude::*;
|
||||
/// #
|
||||
/// # let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// use tfhe::prelude::*;
|
||||
/// use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheBool};
|
||||
///
|
||||
/// let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// set_server_key(server_key);
|
||||
///
|
||||
/// let a = FheBool::encrypt_trivial(true);
|
||||
|
||||
@@ -24,11 +24,11 @@ thread_local! {
|
||||
///
|
||||
/// Only working in the `main` thread
|
||||
///
|
||||
/// ```
|
||||
/// use tfhe;
|
||||
/// ```rust
|
||||
/// use tfhe::{generate_keys, ConfigBuilder};
|
||||
///
|
||||
/// # let config = tfhe::ConfigBuilder::default().build();
|
||||
/// let (client_key, server_key) = tfhe::generate_keys(config);
|
||||
/// let config = ConfigBuilder::default().build();
|
||||
/// let (client_key, server_key) = generate_keys(config);
|
||||
///
|
||||
/// tfhe::set_server_key(server_key);
|
||||
/// // Now we can do operations on homomorphic types
|
||||
@@ -37,12 +37,12 @@ thread_local! {
|
||||
///
|
||||
/// Working with multiple threads
|
||||
///
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use std::thread;
|
||||
/// use tfhe;
|
||||
/// use tfhe::ConfigBuilder;
|
||||
///
|
||||
/// # let config = tfhe::ConfigBuilder::default().build();
|
||||
/// let config = tfhe::ConfigBuilder::default().build();
|
||||
/// let (client_key, server_key) = tfhe::generate_keys(config);
|
||||
/// let server_key_2 = server_key.clone();
|
||||
///
|
||||
|
||||
@@ -85,10 +85,10 @@ where
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// # use tfhe::prelude::*;
|
||||
/// # use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheInt16};
|
||||
/// #
|
||||
/// # let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// use tfhe::prelude::*;
|
||||
/// use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheInt16};
|
||||
///
|
||||
/// let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// set_server_key(server_key);
|
||||
///
|
||||
/// let a = FheInt16::encrypt(-3i16, &client_key);
|
||||
@@ -125,10 +125,10 @@ where
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// # use tfhe::prelude::*;
|
||||
/// # use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheInt16};
|
||||
/// #
|
||||
/// # let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// use tfhe::prelude::*;
|
||||
/// use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheInt16};
|
||||
///
|
||||
/// let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// set_server_key(server_key);
|
||||
///
|
||||
/// // This is not a trivial ciphertext as we use a client key to encrypt.
|
||||
@@ -162,12 +162,12 @@ where
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// # use tfhe::prelude::*;
|
||||
/// # use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheInt16, FheInt32};
|
||||
/// #
|
||||
/// # let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// # set_server_key(server_key);
|
||||
/// #
|
||||
/// use tfhe::prelude::*;
|
||||
/// use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheInt16, FheInt32};
|
||||
///
|
||||
/// let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// set_server_key(server_key);
|
||||
///
|
||||
/// let a = FheInt32::encrypt(i32::MAX, &client_key);
|
||||
/// let b = FheInt16::cast_from(a);
|
||||
///
|
||||
@@ -195,12 +195,12 @@ where
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// # use tfhe::prelude::*;
|
||||
/// # use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheUint32, FheInt16};
|
||||
/// #
|
||||
/// # let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// # set_server_key(server_key);
|
||||
/// #
|
||||
/// use tfhe::prelude::*;
|
||||
/// use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheInt16, FheUint32};
|
||||
///
|
||||
/// let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// set_server_key(server_key);
|
||||
///
|
||||
/// let a = FheUint32::encrypt(u32::MAX, &client_key);
|
||||
/// let b = FheInt16::cast_from(a);
|
||||
///
|
||||
@@ -227,12 +227,12 @@ where
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// # use tfhe::prelude::*;
|
||||
/// # use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheBool, FheInt16};
|
||||
/// #
|
||||
/// # let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// # set_server_key(server_key);
|
||||
/// #
|
||||
/// use tfhe::prelude::*;
|
||||
/// use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheBool, FheInt16};
|
||||
///
|
||||
/// let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// set_server_key(server_key);
|
||||
///
|
||||
/// let a = FheBool::encrypt(true, &client_key);
|
||||
/// let b = FheInt16::cast_from(a);
|
||||
///
|
||||
|
||||
@@ -18,7 +18,7 @@ use crate::CompactPublicKey;
|
||||
///
|
||||
/// # Example
|
||||
///
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use tfhe::prelude::*;
|
||||
/// use tfhe::{generate_keys, CompactFheInt32, CompactPublicKey, ConfigBuilder, FheInt32};
|
||||
///
|
||||
@@ -103,7 +103,7 @@ impl<Id: FheIntId> ParameterSetConformant for CompactFheInt<Id> {
|
||||
///
|
||||
/// # Example
|
||||
///
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use tfhe::prelude::*;
|
||||
/// use tfhe::{generate_keys, CompactFheInt32List, CompactPublicKey, ConfigBuilder, FheInt32};
|
||||
///
|
||||
|
||||
@@ -20,7 +20,7 @@ use crate::ClientKey;
|
||||
///
|
||||
/// # Example
|
||||
///
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use tfhe::prelude::*;
|
||||
/// use tfhe::{generate_keys, CompressedFheInt32, ConfigBuilder};
|
||||
///
|
||||
|
||||
@@ -17,12 +17,12 @@ where
|
||||
///
|
||||
/// # Example
|
||||
/// ```rust
|
||||
/// # use tfhe::{ConfigBuilder, generate_keys, set_server_key, FheInt16};
|
||||
/// # use tfhe::prelude::*;
|
||||
/// #
|
||||
/// # let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// # set_server_key(server_key);
|
||||
/// #
|
||||
/// use tfhe::prelude::*;
|
||||
/// use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheInt16};
|
||||
///
|
||||
/// let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// set_server_key(server_key);
|
||||
///
|
||||
/// let a = FheInt16::encrypt(7288i16, &client_key);
|
||||
///
|
||||
/// // i16 is explicit
|
||||
|
||||
@@ -25,12 +25,11 @@ where
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// # use tfhe::prelude::*;
|
||||
/// # use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheBool, FheInt16};
|
||||
/// #
|
||||
/// # let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// # set_server_key(server_key);
|
||||
/// #
|
||||
/// use tfhe::prelude::*;
|
||||
/// use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheBool, FheInt16};
|
||||
///
|
||||
/// let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// set_server_key(server_key);
|
||||
///
|
||||
/// let clears = [-1i16, 2, 3, 4, -5];
|
||||
/// let encrypted = clears
|
||||
@@ -79,10 +78,10 @@ where
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// # use tfhe::prelude::*;
|
||||
/// # use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheInt16};
|
||||
/// #
|
||||
/// # let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// use tfhe::prelude::*;
|
||||
/// use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheInt16};
|
||||
///
|
||||
/// let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// set_server_key(server_key);
|
||||
///
|
||||
/// let a = FheInt16::encrypt(-1i16, &client_key);
|
||||
@@ -113,10 +112,10 @@ where
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// # use tfhe::prelude::*;
|
||||
/// # use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheInt16};
|
||||
/// #
|
||||
/// # let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// use tfhe::prelude::*;
|
||||
/// use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheInt16};
|
||||
///
|
||||
/// let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// set_server_key(server_key);
|
||||
///
|
||||
/// let a = FheInt16::encrypt(-1i16, &client_key);
|
||||
@@ -158,10 +157,10 @@ where
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// # use tfhe::prelude::*;
|
||||
/// # use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheInt16};
|
||||
/// #
|
||||
/// # let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// use tfhe::prelude::*;
|
||||
/// use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheInt16};
|
||||
///
|
||||
/// let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// set_server_key(server_key);
|
||||
///
|
||||
/// let a = FheInt16::encrypt(-1i16, &client_key);
|
||||
@@ -185,10 +184,10 @@ where
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// # use tfhe::prelude::*;
|
||||
/// # use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheInt16};
|
||||
/// #
|
||||
/// # let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// use tfhe::prelude::*;
|
||||
/// use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheInt16};
|
||||
///
|
||||
/// let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// set_server_key(server_key);
|
||||
///
|
||||
/// let a = FheInt16::encrypt(-1i16, &client_key);
|
||||
@@ -238,10 +237,10 @@ where
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// # use tfhe::prelude::*;
|
||||
/// # use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheInt16};
|
||||
/// #
|
||||
/// # let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// use tfhe::prelude::*;
|
||||
/// use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheInt16};
|
||||
///
|
||||
/// let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// set_server_key(server_key);
|
||||
///
|
||||
/// let a = FheInt16::encrypt(-1i16, &client_key);
|
||||
@@ -265,10 +264,10 @@ where
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// # use tfhe::prelude::*;
|
||||
/// # use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheInt16};
|
||||
/// #
|
||||
/// # let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// use tfhe::prelude::*;
|
||||
/// use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheInt16};
|
||||
///
|
||||
/// let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// set_server_key(server_key);
|
||||
///
|
||||
/// let a = FheInt16::encrypt(-1i16, &client_key);
|
||||
@@ -292,10 +291,10 @@ where
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// # use tfhe::prelude::*;
|
||||
/// # use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheInt16};
|
||||
/// #
|
||||
/// # let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// use tfhe::prelude::*;
|
||||
/// use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheInt16};
|
||||
///
|
||||
/// let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// set_server_key(server_key);
|
||||
///
|
||||
/// let a = FheInt16::encrypt(-1i16, &client_key);
|
||||
@@ -319,10 +318,10 @@ where
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// # use tfhe::prelude::*;
|
||||
/// # use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheInt16};
|
||||
/// #
|
||||
/// # let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// use tfhe::prelude::*;
|
||||
/// use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheInt16};
|
||||
///
|
||||
/// let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// set_server_key(server_key);
|
||||
///
|
||||
/// let a = FheInt16::encrypt(-1i16, &client_key);
|
||||
@@ -384,10 +383,10 @@ where
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// # use tfhe::prelude::*;
|
||||
/// # use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheInt16};
|
||||
/// #
|
||||
/// # let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// use tfhe::prelude::*;
|
||||
/// use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheInt16};
|
||||
///
|
||||
/// let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// set_server_key(server_key);
|
||||
///
|
||||
/// let a = FheInt16::encrypt(-23i16, &client_key);
|
||||
@@ -599,10 +598,10 @@ where
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// # use tfhe::prelude::*;
|
||||
/// # use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheInt16};
|
||||
/// #
|
||||
/// # let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// use tfhe::prelude::*;
|
||||
/// use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheInt16};
|
||||
///
|
||||
/// let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// set_server_key(server_key);
|
||||
///
|
||||
/// let a = FheInt16::encrypt(-3i16, &client_key);
|
||||
@@ -627,10 +626,10 @@ where
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// # use tfhe::prelude::*;
|
||||
/// # use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheInt16};
|
||||
/// #
|
||||
/// # let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// use tfhe::prelude::*;
|
||||
/// use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheInt16};
|
||||
///
|
||||
/// let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// set_server_key(server_key);
|
||||
///
|
||||
/// let a = FheInt16::encrypt(-3i16, &client_key);
|
||||
@@ -658,10 +657,10 @@ where
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// # use tfhe::prelude::*;
|
||||
/// # use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheInt16};
|
||||
/// #
|
||||
/// # let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// use tfhe::prelude::*;
|
||||
/// use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheInt16};
|
||||
///
|
||||
/// let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// set_server_key(server_key);
|
||||
///
|
||||
/// let a = FheInt16::encrypt(-3i16, &client_key);
|
||||
@@ -686,10 +685,10 @@ where
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// # use tfhe::prelude::*;
|
||||
/// # use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheInt16};
|
||||
/// #
|
||||
/// # let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// use tfhe::prelude::*;
|
||||
/// use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheInt16};
|
||||
///
|
||||
/// let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// set_server_key(server_key);
|
||||
///
|
||||
/// let a = FheInt16::encrypt(-3i16, &client_key);
|
||||
|
||||
@@ -20,10 +20,10 @@ where
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// # use tfhe::prelude::*;
|
||||
/// # use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheInt16};
|
||||
/// #
|
||||
/// # let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// use tfhe::prelude::*;
|
||||
/// use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheInt16};
|
||||
///
|
||||
/// let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// set_server_key(server_key);
|
||||
///
|
||||
/// let a = FheInt16::encrypt(i16::MAX, &client_key);
|
||||
@@ -68,10 +68,10 @@ where
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// # use tfhe::prelude::*;
|
||||
/// # use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheInt16};
|
||||
/// #
|
||||
/// # let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// use tfhe::prelude::*;
|
||||
/// use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheInt16};
|
||||
///
|
||||
/// let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// set_server_key(server_key);
|
||||
///
|
||||
/// let a = FheInt16::encrypt(i16::MAX, &client_key);
|
||||
@@ -106,10 +106,10 @@ where
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// # use tfhe::prelude::*;
|
||||
/// # use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheInt16};
|
||||
/// #
|
||||
/// # let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// use tfhe::prelude::*;
|
||||
/// use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheInt16};
|
||||
///
|
||||
/// let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// set_server_key(server_key);
|
||||
///
|
||||
/// let a = FheInt16::encrypt(i16::MAX, &client_key);
|
||||
@@ -154,10 +154,10 @@ where
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// # use tfhe::prelude::*;
|
||||
/// # use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheInt16};
|
||||
/// #
|
||||
/// # let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// use tfhe::prelude::*;
|
||||
/// use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheInt16};
|
||||
///
|
||||
/// let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// set_server_key(server_key);
|
||||
///
|
||||
/// let a = FheInt16::encrypt(i16::MAX, &client_key);
|
||||
@@ -191,10 +191,10 @@ where
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// # use tfhe::prelude::*;
|
||||
/// # use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheInt16};
|
||||
/// #
|
||||
/// # let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// use tfhe::prelude::*;
|
||||
/// use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheInt16};
|
||||
///
|
||||
/// let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// set_server_key(server_key);
|
||||
///
|
||||
/// let a = FheInt16::encrypt(i16::MAX, &client_key);
|
||||
@@ -229,10 +229,10 @@ where
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// # use tfhe::prelude::*;
|
||||
/// # use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheInt16};
|
||||
/// #
|
||||
/// # let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// use tfhe::prelude::*;
|
||||
/// use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheInt16};
|
||||
///
|
||||
/// let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// set_server_key(server_key);
|
||||
///
|
||||
/// let a = FheInt16::encrypt(i16::MIN, &client_key);
|
||||
@@ -275,10 +275,10 @@ where
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// # use tfhe::prelude::*;
|
||||
/// # use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheInt16};
|
||||
/// #
|
||||
/// # let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// use tfhe::prelude::*;
|
||||
/// use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheInt16};
|
||||
///
|
||||
/// let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// set_server_key(server_key);
|
||||
///
|
||||
/// let a = FheInt16::encrypt(i16::MIN, &client_key);
|
||||
@@ -311,10 +311,10 @@ where
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// # use tfhe::prelude::*;
|
||||
/// # use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheInt16};
|
||||
/// #
|
||||
/// # let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// use tfhe::prelude::*;
|
||||
/// use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheInt16};
|
||||
///
|
||||
/// let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// set_server_key(server_key);
|
||||
///
|
||||
/// let a = FheInt16::encrypt(i16::MIN, &client_key);
|
||||
@@ -357,10 +357,10 @@ where
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// # use tfhe::prelude::*;
|
||||
/// # use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheInt16};
|
||||
/// #
|
||||
/// # let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// use tfhe::prelude::*;
|
||||
/// use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheInt16};
|
||||
///
|
||||
/// let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// set_server_key(server_key);
|
||||
///
|
||||
/// let a = FheInt16::encrypt(i16::MIN, &client_key);
|
||||
@@ -391,10 +391,10 @@ where
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// # use tfhe::prelude::*;
|
||||
/// # use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheInt16};
|
||||
/// #
|
||||
/// # let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// use tfhe::prelude::*;
|
||||
/// use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheInt16};
|
||||
///
|
||||
/// let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// set_server_key(server_key);
|
||||
///
|
||||
/// let a = FheInt16::encrypt(3434i16, &client_key);
|
||||
@@ -437,10 +437,10 @@ where
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// # use tfhe::prelude::*;
|
||||
/// # use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheInt16};
|
||||
/// #
|
||||
/// # let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// use tfhe::prelude::*;
|
||||
/// use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheInt16};
|
||||
///
|
||||
/// let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// set_server_key(server_key);
|
||||
///
|
||||
/// let a = FheInt16::encrypt(3434i16, &client_key);
|
||||
|
||||
@@ -23,10 +23,10 @@ where
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// # use tfhe::prelude::*;
|
||||
/// # use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheInt16};
|
||||
/// #
|
||||
/// # let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// use tfhe::prelude::*;
|
||||
/// use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheInt16};
|
||||
///
|
||||
/// let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// set_server_key(server_key);
|
||||
///
|
||||
/// let a = FheInt16::encrypt(-1i16, &client_key);
|
||||
@@ -56,10 +56,10 @@ where
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// # use tfhe::prelude::*;
|
||||
/// # use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheInt16};
|
||||
/// #
|
||||
/// # let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// use tfhe::prelude::*;
|
||||
/// use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheInt16};
|
||||
///
|
||||
/// let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// set_server_key(server_key);
|
||||
///
|
||||
/// let a = FheInt16::encrypt(-1i16, &client_key);
|
||||
@@ -87,10 +87,10 @@ where
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// # use tfhe::prelude::*;
|
||||
/// # use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheInt16};
|
||||
/// #
|
||||
/// # let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// use tfhe::prelude::*;
|
||||
/// use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheInt16};
|
||||
///
|
||||
/// let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// set_server_key(server_key);
|
||||
///
|
||||
/// let a = FheInt16::encrypt(-1i16, &client_key);
|
||||
@@ -114,10 +114,10 @@ where
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// # use tfhe::prelude::*;
|
||||
/// # use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheInt16};
|
||||
/// #
|
||||
/// # let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// use tfhe::prelude::*;
|
||||
/// use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheInt16};
|
||||
///
|
||||
/// let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// set_server_key(server_key);
|
||||
///
|
||||
/// let a = FheInt16::encrypt(-1i16, &client_key);
|
||||
@@ -147,10 +147,10 @@ where
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// # use tfhe::prelude::*;
|
||||
/// # use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheInt16};
|
||||
/// #
|
||||
/// # let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// use tfhe::prelude::*;
|
||||
/// use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheInt16};
|
||||
///
|
||||
/// let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// set_server_key(server_key);
|
||||
///
|
||||
/// let a = FheInt16::encrypt(-1i16, &client_key);
|
||||
@@ -173,10 +173,10 @@ where
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// # use tfhe::prelude::*;
|
||||
/// # use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheInt16};
|
||||
/// #
|
||||
/// # let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// use tfhe::prelude::*;
|
||||
/// use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheInt16};
|
||||
///
|
||||
/// let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// set_server_key(server_key);
|
||||
///
|
||||
/// let a = FheInt16::encrypt(-1i16, &client_key);
|
||||
@@ -199,10 +199,10 @@ where
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// # use tfhe::prelude::*;
|
||||
/// # use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheInt16};
|
||||
/// #
|
||||
/// # let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// use tfhe::prelude::*;
|
||||
/// use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheInt16};
|
||||
///
|
||||
/// let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// set_server_key(server_key);
|
||||
///
|
||||
/// let a = FheInt16::encrypt(-1i16, &client_key);
|
||||
@@ -225,10 +225,10 @@ where
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// # use tfhe::prelude::*;
|
||||
/// # use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheInt16};
|
||||
/// #
|
||||
/// # let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// use tfhe::prelude::*;
|
||||
/// use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheInt16};
|
||||
///
|
||||
/// let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// set_server_key(server_key);
|
||||
///
|
||||
/// let a = FheInt16::encrypt(-1i16, &client_key);
|
||||
|
||||
@@ -159,10 +159,10 @@ where
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// # use tfhe::prelude::*;
|
||||
/// # use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheUint16};
|
||||
/// #
|
||||
/// # let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// use tfhe::prelude::*;
|
||||
/// use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheUint16};
|
||||
///
|
||||
/// let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// set_server_key(server_key);
|
||||
///
|
||||
/// // This is not a trivial ciphertext as we use a client key to encrypt.
|
||||
@@ -190,10 +190,10 @@ where
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// # use tfhe::prelude::*;
|
||||
/// # use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheUint16};
|
||||
/// #
|
||||
/// # let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// use tfhe::prelude::*;
|
||||
/// use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheUint16};
|
||||
///
|
||||
/// let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// set_server_key(server_key);
|
||||
///
|
||||
/// let non_trivial = FheUint16::encrypt(1u16, &client_key);
|
||||
@@ -214,12 +214,11 @@ where
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// # use tfhe::prelude::*;
|
||||
/// # use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheBool, FheUint16};
|
||||
/// #
|
||||
/// # let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// # set_server_key(server_key);
|
||||
/// #
|
||||
/// use tfhe::prelude::*;
|
||||
/// use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheBool, FheUint16};
|
||||
///
|
||||
/// let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// set_server_key(server_key);
|
||||
///
|
||||
/// let a = FheUint16::encrypt(1u16, &client_key);
|
||||
/// let b = FheUint16::encrypt(2u16, &client_key);
|
||||
@@ -316,12 +315,12 @@ where
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// # use tfhe::prelude::*;
|
||||
/// # use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheInt32, FheUint16};
|
||||
/// #
|
||||
/// # let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// # set_server_key(server_key);
|
||||
/// #
|
||||
/// use tfhe::prelude::*;
|
||||
/// use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheInt32, FheUint16};
|
||||
///
|
||||
/// let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// set_server_key(server_key);
|
||||
///
|
||||
/// let a = FheInt32::encrypt(i32::MIN, &client_key);
|
||||
/// let b = FheUint16::cast_from(a);
|
||||
///
|
||||
@@ -354,12 +353,12 @@ where
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// # use tfhe::prelude::*;
|
||||
/// # use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheUint16, FheUint32};
|
||||
/// #
|
||||
/// # let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// # set_server_key(server_key);
|
||||
/// #
|
||||
/// use tfhe::prelude::*;
|
||||
/// use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheUint16, FheUint32};
|
||||
///
|
||||
/// let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// set_server_key(server_key);
|
||||
///
|
||||
/// let a = FheUint32::encrypt(u32::MAX, &client_key);
|
||||
/// let b = FheUint16::cast_from(a);
|
||||
///
|
||||
@@ -391,12 +390,12 @@ where
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// # use tfhe::prelude::*;
|
||||
/// # use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheBool, FheUint16};
|
||||
/// #
|
||||
/// # let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// # set_server_key(server_key);
|
||||
/// #
|
||||
/// use tfhe::prelude::*;
|
||||
/// use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheBool, FheUint16};
|
||||
///
|
||||
/// let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// set_server_key(server_key);
|
||||
///
|
||||
/// let a = FheBool::encrypt(true, &client_key);
|
||||
/// let b = FheUint16::cast_from(a);
|
||||
///
|
||||
|
||||
@@ -18,7 +18,7 @@ use crate::CompactPublicKey;
|
||||
///
|
||||
/// # Example
|
||||
///
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use tfhe::prelude::*;
|
||||
/// use tfhe::{generate_keys, CompactFheUint32, CompactPublicKey, ConfigBuilder, FheUint32};
|
||||
///
|
||||
@@ -104,7 +104,7 @@ impl<Id: FheUintId> ParameterSetConformant for CompactFheUint<Id> {
|
||||
///
|
||||
/// # Example
|
||||
///
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use tfhe::prelude::*;
|
||||
/// use tfhe::{generate_keys, CompactFheUint32List, CompactPublicKey, ConfigBuilder, FheUint32};
|
||||
///
|
||||
|
||||
@@ -19,7 +19,7 @@ use crate::named::Named;
|
||||
///
|
||||
/// # Example
|
||||
///
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use tfhe::prelude::*;
|
||||
/// use tfhe::{generate_keys, CompressedFheUint32, ConfigBuilder};
|
||||
///
|
||||
|
||||
@@ -19,12 +19,12 @@ where
|
||||
///
|
||||
/// # Example
|
||||
/// ```rust
|
||||
/// # use tfhe::{ConfigBuilder, generate_keys, set_server_key, FheUint16};
|
||||
/// # use tfhe::prelude::*;
|
||||
/// #
|
||||
/// # let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// # set_server_key(server_key);
|
||||
/// #
|
||||
/// use tfhe::prelude::*;
|
||||
/// use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheUint16};
|
||||
///
|
||||
/// let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// set_server_key(server_key);
|
||||
///
|
||||
/// let a = FheUint16::encrypt(7288u16, &client_key);
|
||||
///
|
||||
/// // u16 is explicit
|
||||
@@ -163,10 +163,10 @@ where
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// # use tfhe::{ConfigBuilder, generate_keys, set_server_key, FheUint16};
|
||||
/// # use tfhe::prelude::*;
|
||||
/// #
|
||||
/// # let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// use tfhe::prelude::*;
|
||||
/// use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheUint16};
|
||||
///
|
||||
/// let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// set_server_key(server_key);
|
||||
///
|
||||
/// let a = FheUint16::encrypt_trivial(7288u16);
|
||||
|
||||
@@ -33,12 +33,11 @@ where
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// # use tfhe::prelude::*;
|
||||
/// # use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheBool, FheUint16};
|
||||
/// #
|
||||
/// # let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// # set_server_key(server_key);
|
||||
/// #
|
||||
/// use tfhe::prelude::*;
|
||||
/// use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheBool, FheUint16};
|
||||
///
|
||||
/// let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// set_server_key(server_key);
|
||||
///
|
||||
/// let clears = [1, 2, 3, 4, 5];
|
||||
/// let encrypted = clears
|
||||
@@ -101,12 +100,11 @@ where
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// # use tfhe::prelude::*;
|
||||
/// # use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheBool, FheUint16};
|
||||
/// #
|
||||
/// # let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// # set_server_key(server_key);
|
||||
/// #
|
||||
/// use tfhe::prelude::*;
|
||||
/// use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheBool, FheUint16};
|
||||
///
|
||||
/// let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// set_server_key(server_key);
|
||||
///
|
||||
/// let clears = [1, 2, 3, 4, 5];
|
||||
/// let encrypted = clears
|
||||
@@ -173,10 +171,10 @@ where
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// # use tfhe::prelude::*;
|
||||
/// # use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheUint16};
|
||||
/// #
|
||||
/// # let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// use tfhe::prelude::*;
|
||||
/// use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheUint16};
|
||||
///
|
||||
/// let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// set_server_key(server_key);
|
||||
///
|
||||
/// let a = FheUint16::encrypt(1u16, &client_key);
|
||||
@@ -218,10 +216,10 @@ where
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// # use tfhe::prelude::*;
|
||||
/// # use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheUint16};
|
||||
/// #
|
||||
/// # let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// use tfhe::prelude::*;
|
||||
/// use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheUint16};
|
||||
///
|
||||
/// let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// set_server_key(server_key);
|
||||
///
|
||||
/// let a = FheUint16::encrypt(1u16, &client_key);
|
||||
@@ -274,10 +272,10 @@ where
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// # use tfhe::prelude::*;
|
||||
/// # use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheUint16};
|
||||
/// #
|
||||
/// # let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// use tfhe::prelude::*;
|
||||
/// use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheUint16};
|
||||
///
|
||||
/// let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// set_server_key(server_key);
|
||||
///
|
||||
/// let a = FheUint16::encrypt(1u16, &client_key);
|
||||
@@ -312,10 +310,10 @@ where
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// # use tfhe::prelude::*;
|
||||
/// # use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheUint16};
|
||||
/// #
|
||||
/// # let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// use tfhe::prelude::*;
|
||||
/// use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheUint16};
|
||||
///
|
||||
/// let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// set_server_key(server_key);
|
||||
///
|
||||
/// let a = FheUint16::encrypt(1u16, &client_key);
|
||||
@@ -376,10 +374,10 @@ where
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// # use tfhe::prelude::*;
|
||||
/// # use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheUint16};
|
||||
/// #
|
||||
/// # let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// use tfhe::prelude::*;
|
||||
/// use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheUint16};
|
||||
///
|
||||
/// let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// set_server_key(server_key);
|
||||
///
|
||||
/// let a = FheUint16::encrypt(1u16, &client_key);
|
||||
@@ -414,10 +412,10 @@ where
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// # use tfhe::prelude::*;
|
||||
/// # use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheUint16};
|
||||
/// #
|
||||
/// # let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// use tfhe::prelude::*;
|
||||
/// use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheUint16};
|
||||
///
|
||||
/// let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// set_server_key(server_key);
|
||||
///
|
||||
/// let a = FheUint16::encrypt(1u16, &client_key);
|
||||
@@ -452,10 +450,10 @@ where
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// # use tfhe::prelude::*;
|
||||
/// # use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheUint16};
|
||||
/// #
|
||||
/// # let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// use tfhe::prelude::*;
|
||||
/// use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheUint16};
|
||||
///
|
||||
/// let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// set_server_key(server_key);
|
||||
///
|
||||
/// let a = FheUint16::encrypt(1u16, &client_key);
|
||||
@@ -490,10 +488,10 @@ where
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// # use tfhe::prelude::*;
|
||||
/// # use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheUint16};
|
||||
/// #
|
||||
/// # let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// use tfhe::prelude::*;
|
||||
/// use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheUint16};
|
||||
///
|
||||
/// let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// set_server_key(server_key);
|
||||
///
|
||||
/// let a = FheUint16::encrypt(1u16, &client_key);
|
||||
@@ -631,10 +629,10 @@ where
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// # use tfhe::prelude::*;
|
||||
/// # use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheUint16};
|
||||
/// #
|
||||
/// # let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// use tfhe::prelude::*;
|
||||
/// use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheUint16};
|
||||
///
|
||||
/// let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// set_server_key(server_key);
|
||||
///
|
||||
/// let a = FheUint16::encrypt(23u16, &client_key);
|
||||
@@ -702,26 +700,26 @@ macro_rules! generic_integer_impl_operation (
|
||||
}
|
||||
);
|
||||
generic_integer_impl_operation!(
|
||||
/// Adds two [FheUint]
|
||||
///
|
||||
/// The operation is modular, i.e on overflow it wraps around.
|
||||
///
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// # use tfhe::prelude::*;
|
||||
/// # use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheUint16};
|
||||
/// #
|
||||
/// # let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// set_server_key(server_key);
|
||||
///
|
||||
/// let a = FheUint16::encrypt(23u16, &client_key);
|
||||
/// let b = FheUint16::encrypt(3u16, &client_key);
|
||||
///
|
||||
/// let result = &a + &b;
|
||||
/// let result: u16 = result.decrypt(&client_key);
|
||||
/// assert_eq!(result, 23u16 + 3u16);
|
||||
/// ```
|
||||
/// Adds two [FheUint]
|
||||
///
|
||||
/// The operation is modular, i.e on overflow it wraps around.
|
||||
///
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// use tfhe::prelude::*;
|
||||
/// use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheUint16};
|
||||
///
|
||||
/// let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// set_server_key(server_key);
|
||||
///
|
||||
/// let a = FheUint16::encrypt(23u16, &client_key);
|
||||
/// let b = FheUint16::encrypt(3u16, &client_key);
|
||||
///
|
||||
/// let result = &a + &b;
|
||||
/// let result: u16 = result.decrypt(&client_key);
|
||||
/// assert_eq!(result, 23u16 + 3u16);
|
||||
/// ```
|
||||
rust_trait: Add(add),
|
||||
implem: {
|
||||
|lhs: &FheUint<_>, rhs: &FheUint<_>| {
|
||||
@@ -745,26 +743,26 @@ generic_integer_impl_operation!(
|
||||
},
|
||||
);
|
||||
generic_integer_impl_operation!(
|
||||
/// Subtracts two [FheUint]
|
||||
///
|
||||
/// The operation is modular, i.e on overflow it wraps around.
|
||||
///
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// # use tfhe::prelude::*;
|
||||
/// # use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheUint16};
|
||||
/// #
|
||||
/// # let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// set_server_key(server_key);
|
||||
///
|
||||
/// let a = FheUint16::encrypt(3u16, &client_key);
|
||||
/// let b = FheUint16::encrypt(37849u16, &client_key);
|
||||
///
|
||||
/// let result = &a - &b;
|
||||
/// let result: u16 = result.decrypt(&client_key);
|
||||
/// assert_eq!(result, 3u16.wrapping_sub(37849u16));
|
||||
/// ```
|
||||
/// Subtracts two [FheUint]
|
||||
///
|
||||
/// The operation is modular, i.e on overflow it wraps around.
|
||||
///
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// use tfhe::prelude::*;
|
||||
/// use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheUint16};
|
||||
///
|
||||
/// let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// set_server_key(server_key);
|
||||
///
|
||||
/// let a = FheUint16::encrypt(3u16, &client_key);
|
||||
/// let b = FheUint16::encrypt(37849u16, &client_key);
|
||||
///
|
||||
/// let result = &a - &b;
|
||||
/// let result: u16 = result.decrypt(&client_key);
|
||||
/// assert_eq!(result, 3u16.wrapping_sub(37849u16));
|
||||
/// ```
|
||||
rust_trait: Sub(sub),
|
||||
implem: {
|
||||
|lhs: &FheUint<_>, rhs: &FheUint<_>| {
|
||||
@@ -788,26 +786,26 @@ generic_integer_impl_operation!(
|
||||
},
|
||||
);
|
||||
generic_integer_impl_operation!(
|
||||
/// Multiplies two [FheUint]
|
||||
///
|
||||
/// The operation is modular, i.e on overflow it wraps around.
|
||||
///
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// # use tfhe::prelude::*;
|
||||
/// # use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheUint16};
|
||||
/// #
|
||||
/// # let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// set_server_key(server_key);
|
||||
///
|
||||
/// let a = FheUint16::encrypt(3u16, &client_key);
|
||||
/// let b = FheUint16::encrypt(37849u16, &client_key);
|
||||
///
|
||||
/// let result = &a * &b;
|
||||
/// let result: u16 = result.decrypt(&client_key);
|
||||
/// assert_eq!(result, 3u16.wrapping_mul(37849u16));
|
||||
/// ```
|
||||
/// Multiplies two [FheUint]
|
||||
///
|
||||
/// The operation is modular, i.e on overflow it wraps around.
|
||||
///
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// use tfhe::prelude::*;
|
||||
/// use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheUint16};
|
||||
///
|
||||
/// let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// set_server_key(server_key);
|
||||
///
|
||||
/// let a = FheUint16::encrypt(3u16, &client_key);
|
||||
/// let b = FheUint16::encrypt(37849u16, &client_key);
|
||||
///
|
||||
/// let result = &a * &b;
|
||||
/// let result: u16 = result.decrypt(&client_key);
|
||||
/// assert_eq!(result, 3u16.wrapping_mul(37849u16));
|
||||
/// ```
|
||||
rust_trait: Mul(mul),
|
||||
implem: {
|
||||
|lhs: &FheUint<_>, rhs: &FheUint<_>| {
|
||||
@@ -831,24 +829,24 @@ generic_integer_impl_operation!(
|
||||
},
|
||||
);
|
||||
generic_integer_impl_operation!(
|
||||
/// Performs a bitwise 'and' between two [FheUint]
|
||||
///
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// # use tfhe::prelude::*;
|
||||
/// # use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheUint16};
|
||||
/// #
|
||||
/// # let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// set_server_key(server_key);
|
||||
///
|
||||
/// let a = FheUint16::encrypt(3u16, &client_key);
|
||||
/// let b = FheUint16::encrypt(37849u16, &client_key);
|
||||
///
|
||||
/// let result = &a & &b;
|
||||
/// let result: u16 = result.decrypt(&client_key);
|
||||
/// assert_eq!(result, 3u16 & 37849u16);
|
||||
/// ```
|
||||
/// Performs a bitwise 'and' between two [FheUint]
|
||||
///
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// use tfhe::prelude::*;
|
||||
/// use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheUint16};
|
||||
///
|
||||
/// let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// set_server_key(server_key);
|
||||
///
|
||||
/// let a = FheUint16::encrypt(3u16, &client_key);
|
||||
/// let b = FheUint16::encrypt(37849u16, &client_key);
|
||||
///
|
||||
/// let result = &a & &b;
|
||||
/// let result: u16 = result.decrypt(&client_key);
|
||||
/// assert_eq!(result, 3u16 & 37849u16);
|
||||
/// ```
|
||||
rust_trait: BitAnd(bitand),
|
||||
implem: {
|
||||
|lhs: &FheUint<_>, rhs: &FheUint<_>| {
|
||||
@@ -872,24 +870,24 @@ generic_integer_impl_operation!(
|
||||
},
|
||||
);
|
||||
generic_integer_impl_operation!(
|
||||
/// Performs a bitwise 'or' between two [FheUint]
|
||||
///
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// # use tfhe::prelude::*;
|
||||
/// # use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheUint16};
|
||||
/// #
|
||||
/// # let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// set_server_key(server_key);
|
||||
///
|
||||
/// let a = FheUint16::encrypt(3u16, &client_key);
|
||||
/// let b = FheUint16::encrypt(37849u16, &client_key);
|
||||
///
|
||||
/// let result = &a | &b;
|
||||
/// let result: u16 = result.decrypt(&client_key);
|
||||
/// assert_eq!(result, 3u16 | 37849u16);
|
||||
/// ```
|
||||
/// Performs a bitwise 'or' between two [FheUint]
|
||||
///
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// use tfhe::prelude::*;
|
||||
/// use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheUint16};
|
||||
///
|
||||
/// let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// set_server_key(server_key);
|
||||
///
|
||||
/// let a = FheUint16::encrypt(3u16, &client_key);
|
||||
/// let b = FheUint16::encrypt(37849u16, &client_key);
|
||||
///
|
||||
/// let result = &a | &b;
|
||||
/// let result: u16 = result.decrypt(&client_key);
|
||||
/// assert_eq!(result, 3u16 | 37849u16);
|
||||
/// ```
|
||||
rust_trait: BitOr(bitor),
|
||||
implem: {
|
||||
|lhs: &FheUint<_>, rhs: &FheUint<_>| {
|
||||
@@ -913,24 +911,24 @@ generic_integer_impl_operation!(
|
||||
},
|
||||
);
|
||||
generic_integer_impl_operation!(
|
||||
/// Performs a bitwise 'xor' between two [FheUint]
|
||||
///
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// # use tfhe::prelude::*;
|
||||
/// # use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheUint16};
|
||||
/// #
|
||||
/// # let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// set_server_key(server_key);
|
||||
///
|
||||
/// let a = FheUint16::encrypt(3u16, &client_key);
|
||||
/// let b = FheUint16::encrypt(37849u16, &client_key);
|
||||
///
|
||||
/// let result = &a ^ &b;
|
||||
/// let result: u16 = result.decrypt(&client_key);
|
||||
/// assert_eq!(result, 3u16 ^ 37849u16);
|
||||
/// ```
|
||||
/// Performs a bitwise 'xor' between two [FheUint]
|
||||
///
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// use tfhe::prelude::*;
|
||||
/// use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheUint16};
|
||||
///
|
||||
/// let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// set_server_key(server_key);
|
||||
///
|
||||
/// let a = FheUint16::encrypt(3u16, &client_key);
|
||||
/// let b = FheUint16::encrypt(37849u16, &client_key);
|
||||
///
|
||||
/// let result = &a ^ &b;
|
||||
/// let result: u16 = result.decrypt(&client_key);
|
||||
/// assert_eq!(result, 3u16 ^ 37849u16);
|
||||
/// ```
|
||||
rust_trait: BitXor(bitxor),
|
||||
implem: {
|
||||
|lhs: &FheUint<_>, rhs: &FheUint<_>| {
|
||||
@@ -954,32 +952,32 @@ generic_integer_impl_operation!(
|
||||
},
|
||||
);
|
||||
generic_integer_impl_operation!(
|
||||
/// Divides two [FheUint] and returns the quotient
|
||||
///
|
||||
/// # Note
|
||||
///
|
||||
/// If you need both the quotient and remainder, then prefer to use
|
||||
/// [FheUint::div_rem], instead of using `/` and `%` separately.
|
||||
///
|
||||
/// When the divisor is 0, the returned quotient will be the max value (i.e. all bits set to 1).
|
||||
///
|
||||
/// This behaviour should not be relied on.
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// # use tfhe::prelude::*;
|
||||
/// # use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheUint16};
|
||||
/// #
|
||||
/// # let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// set_server_key(server_key);
|
||||
///
|
||||
/// let a = FheUint16::encrypt(37849u16, &client_key);
|
||||
/// let b = FheUint16::encrypt(3u16, &client_key);
|
||||
///
|
||||
/// let result = &a / &b;
|
||||
/// let result: u16 = result.decrypt(&client_key);
|
||||
/// assert_eq!(result, 37849u16 / 3u16);
|
||||
/// ```
|
||||
/// Divides two [FheUint] and returns the quotient
|
||||
///
|
||||
/// # Note
|
||||
///
|
||||
/// If you need both the quotient and remainder, then prefer to use
|
||||
/// [FheUint::div_rem], instead of using `/` and `%` separately.
|
||||
///
|
||||
/// When the divisor is 0, the returned quotient will be the max value (i.e. all bits set to 1).
|
||||
///
|
||||
/// This behaviour should not be relied on.
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// use tfhe::prelude::*;
|
||||
/// use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheUint16};
|
||||
///
|
||||
/// let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// set_server_key(server_key);
|
||||
///
|
||||
/// let a = FheUint16::encrypt(37849u16, &client_key);
|
||||
/// let b = FheUint16::encrypt(3u16, &client_key);
|
||||
///
|
||||
/// let result = &a / &b;
|
||||
/// let result: u16 = result.decrypt(&client_key);
|
||||
/// assert_eq!(result, 37849u16 / 3u16);
|
||||
/// ```
|
||||
rust_trait: Div(div),
|
||||
implem: {
|
||||
|lhs: &FheUint<_>, rhs: &FheUint<_>| {
|
||||
@@ -999,33 +997,33 @@ generic_integer_impl_operation!(
|
||||
},
|
||||
);
|
||||
generic_integer_impl_operation!(
|
||||
/// Divides two [FheUint] and returns the remainder
|
||||
///
|
||||
/// # Note
|
||||
///
|
||||
/// If you need both the quotient and remainder, then prefer to use
|
||||
/// [FheUint::div_rem], instead of using `/` and `%` separately.
|
||||
///
|
||||
/// When the divisor is 0, the returned remainder will have the value of the numerator.
|
||||
///
|
||||
/// This behaviour should not be relied on.
|
||||
///
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// # use tfhe::prelude::*;
|
||||
/// # use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheUint16};
|
||||
/// #
|
||||
/// # let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// set_server_key(server_key);
|
||||
///
|
||||
/// let a = FheUint16::encrypt(37849u16, &client_key);
|
||||
/// let b = FheUint16::encrypt(3u16, &client_key);
|
||||
///
|
||||
/// let result = &a % &b;
|
||||
/// let result: u16 = result.decrypt(&client_key);
|
||||
/// assert_eq!(result, 37849u16 % 3u16);
|
||||
/// ```
|
||||
/// Divides two [FheUint] and returns the remainder
|
||||
///
|
||||
/// # Note
|
||||
///
|
||||
/// If you need both the quotient and remainder, then prefer to use
|
||||
/// [FheUint::div_rem], instead of using `/` and `%` separately.
|
||||
///
|
||||
/// When the divisor is 0, the returned remainder will have the value of the numerator.
|
||||
///
|
||||
/// This behaviour should not be relied on.
|
||||
///
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// use tfhe::prelude::*;
|
||||
/// use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheUint16};
|
||||
///
|
||||
/// let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// set_server_key(server_key);
|
||||
///
|
||||
/// let a = FheUint16::encrypt(37849u16, &client_key);
|
||||
/// let b = FheUint16::encrypt(3u16, &client_key);
|
||||
///
|
||||
/// let result = &a % &b;
|
||||
/// let result: u16 = result.decrypt(&client_key);
|
||||
/// assert_eq!(result, 37849u16 % 3u16);
|
||||
/// ```
|
||||
rust_trait: Rem(rem),
|
||||
implem: {
|
||||
|lhs: &FheUint<_>, rhs: &FheUint<_>| {
|
||||
@@ -1115,25 +1113,25 @@ macro_rules! generic_integer_impl_shift_rotate (
|
||||
}
|
||||
);
|
||||
generic_integer_impl_shift_rotate!(
|
||||
/// Performs a bitwise left shift of a [FheUint] by another [FheUint]
|
||||
///
|
||||
///
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// # use tfhe::prelude::*;
|
||||
/// # use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheUint16};
|
||||
/// #
|
||||
/// # let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// set_server_key(server_key);
|
||||
///
|
||||
/// let a = FheUint16::encrypt(37849u16, &client_key);
|
||||
/// let b = FheUint16::encrypt(3u16, &client_key);
|
||||
///
|
||||
/// let result = &a << &b;
|
||||
/// let result: u16 = result.decrypt(&client_key);
|
||||
/// assert_eq!(result, 37849u16 << 3u16);
|
||||
/// ```
|
||||
/// Performs a bitwise left shift of a [FheUint] by another [FheUint]
|
||||
///
|
||||
///
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// use tfhe::prelude::*;
|
||||
/// use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheUint16};
|
||||
///
|
||||
/// let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// set_server_key(server_key);
|
||||
///
|
||||
/// let a = FheUint16::encrypt(37849u16, &client_key);
|
||||
/// let b = FheUint16::encrypt(3u16, &client_key);
|
||||
///
|
||||
/// let result = &a << &b;
|
||||
/// let result: u16 = result.decrypt(&client_key);
|
||||
/// assert_eq!(result, 37849u16 << 3u16);
|
||||
/// ```
|
||||
rust_trait: Shl(shl),
|
||||
implem: {
|
||||
|lhs: &FheUint<_>, rhs: &FheUint<_>| {
|
||||
@@ -1161,10 +1159,10 @@ generic_integer_impl_shift_rotate!(
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// # use tfhe::prelude::*;
|
||||
/// # use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheUint16};
|
||||
/// #
|
||||
/// # let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// use tfhe::prelude::*;
|
||||
/// use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheUint16};
|
||||
///
|
||||
/// let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// set_server_key(server_key);
|
||||
///
|
||||
/// let a = FheUint16::encrypt(37849u16, &client_key);
|
||||
@@ -1201,10 +1199,10 @@ generic_integer_impl_shift_rotate!(
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// # use tfhe::prelude::*;
|
||||
/// # use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheUint16};
|
||||
/// #
|
||||
/// # let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// use tfhe::prelude::*;
|
||||
/// use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheUint16};
|
||||
///
|
||||
/// let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// set_server_key(server_key);
|
||||
///
|
||||
/// let a = FheUint16::encrypt(37849u16, &client_key);
|
||||
@@ -1241,10 +1239,10 @@ generic_integer_impl_shift_rotate!(
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// # use tfhe::prelude::*;
|
||||
/// # use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheUint16};
|
||||
/// #
|
||||
/// # let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// use tfhe::prelude::*;
|
||||
/// use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheUint16};
|
||||
///
|
||||
/// let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// set_server_key(server_key);
|
||||
///
|
||||
/// let a = FheUint16::encrypt(37849u16, &client_key);
|
||||
@@ -1289,10 +1287,10 @@ where
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// # use tfhe::prelude::*;
|
||||
/// # use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheUint16};
|
||||
/// #
|
||||
/// # let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// use tfhe::prelude::*;
|
||||
/// use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheUint16};
|
||||
///
|
||||
/// let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// set_server_key(server_key);
|
||||
///
|
||||
/// let mut a = FheUint16::encrypt(3u16, &client_key);
|
||||
@@ -1334,10 +1332,10 @@ where
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// # use tfhe::prelude::*;
|
||||
/// # use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheUint16};
|
||||
/// #
|
||||
/// # let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// use tfhe::prelude::*;
|
||||
/// use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheUint16};
|
||||
///
|
||||
/// let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// set_server_key(server_key);
|
||||
///
|
||||
/// let mut a = FheUint16::encrypt(3u16, &client_key);
|
||||
@@ -1379,10 +1377,10 @@ where
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// # use tfhe::prelude::*;
|
||||
/// # use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheUint16};
|
||||
/// #
|
||||
/// # let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// use tfhe::prelude::*;
|
||||
/// use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheUint16};
|
||||
///
|
||||
/// let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// set_server_key(server_key);
|
||||
///
|
||||
/// let mut a = FheUint16::encrypt(3u16, &client_key);
|
||||
@@ -1422,10 +1420,10 @@ where
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// # use tfhe::prelude::*;
|
||||
/// # use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheUint16};
|
||||
/// #
|
||||
/// # let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// use tfhe::prelude::*;
|
||||
/// use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheUint16};
|
||||
///
|
||||
/// let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// set_server_key(server_key);
|
||||
///
|
||||
/// let mut a = FheUint16::encrypt(3u16, &client_key);
|
||||
@@ -1465,10 +1463,10 @@ where
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// # use tfhe::prelude::*;
|
||||
/// # use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheUint16};
|
||||
/// #
|
||||
/// # let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// use tfhe::prelude::*;
|
||||
/// use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheUint16};
|
||||
///
|
||||
/// let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// set_server_key(server_key);
|
||||
///
|
||||
/// let mut a = FheUint16::encrypt(3u16, &client_key);
|
||||
@@ -1508,10 +1506,10 @@ where
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// # use tfhe::prelude::*;
|
||||
/// # use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheUint16};
|
||||
/// #
|
||||
/// # let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// use tfhe::prelude::*;
|
||||
/// use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheUint16};
|
||||
///
|
||||
/// let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// set_server_key(server_key);
|
||||
///
|
||||
/// let mut a = FheUint16::encrypt(3u16, &client_key);
|
||||
@@ -1556,10 +1554,10 @@ where
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// # use tfhe::prelude::*;
|
||||
/// # use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheUint16};
|
||||
/// #
|
||||
/// # let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// use tfhe::prelude::*;
|
||||
/// use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheUint16};
|
||||
///
|
||||
/// let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// set_server_key(server_key);
|
||||
///
|
||||
/// let mut a = FheUint16::encrypt(37849u16, &client_key);
|
||||
@@ -1600,10 +1598,10 @@ where
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// # use tfhe::prelude::*;
|
||||
/// # use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheUint16};
|
||||
/// #
|
||||
/// # let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// use tfhe::prelude::*;
|
||||
/// use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheUint16};
|
||||
///
|
||||
/// let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// set_server_key(server_key);
|
||||
///
|
||||
/// let mut a = FheUint16::encrypt(37849u16, &client_key);
|
||||
@@ -1655,10 +1653,10 @@ where
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// # use tfhe::prelude::*;
|
||||
/// # use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheUint16};
|
||||
/// #
|
||||
/// # let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// use tfhe::prelude::*;
|
||||
/// use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheUint16};
|
||||
///
|
||||
/// let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// set_server_key(server_key);
|
||||
///
|
||||
/// let mut a = FheUint16::encrypt(37849u16, &client_key);
|
||||
@@ -1708,10 +1706,10 @@ where
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// # use tfhe::prelude::*;
|
||||
/// # use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheUint16};
|
||||
/// #
|
||||
/// # let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// use tfhe::prelude::*;
|
||||
/// use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheUint16};
|
||||
///
|
||||
/// let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// set_server_key(server_key);
|
||||
///
|
||||
/// let mut a = FheUint16::encrypt(37849u16, &client_key);
|
||||
@@ -1762,10 +1760,10 @@ where
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// # use tfhe::prelude::*;
|
||||
/// # use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheUint16};
|
||||
/// #
|
||||
/// # let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// use tfhe::prelude::*;
|
||||
/// use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheUint16};
|
||||
///
|
||||
/// let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// set_server_key(server_key);
|
||||
///
|
||||
/// let mut a = FheUint16::encrypt(37849u16, &client_key);
|
||||
@@ -1816,10 +1814,10 @@ where
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// # use tfhe::prelude::*;
|
||||
/// # use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheUint16};
|
||||
/// #
|
||||
/// # let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// use tfhe::prelude::*;
|
||||
/// use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheUint16};
|
||||
///
|
||||
/// let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// set_server_key(server_key);
|
||||
///
|
||||
/// let mut a = FheUint16::encrypt(37849u16, &client_key);
|
||||
@@ -1860,10 +1858,10 @@ where
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// # use tfhe::prelude::*;
|
||||
/// # use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheUint16};
|
||||
/// #
|
||||
/// # let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// use tfhe::prelude::*;
|
||||
/// use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheUint16};
|
||||
///
|
||||
/// let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// set_server_key(server_key);
|
||||
///
|
||||
/// let a = FheUint16::encrypt(3u16, &client_key);
|
||||
@@ -1892,10 +1890,10 @@ where
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// # use tfhe::prelude::*;
|
||||
/// # use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheUint16};
|
||||
/// #
|
||||
/// # let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// use tfhe::prelude::*;
|
||||
/// use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheUint16};
|
||||
///
|
||||
/// let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// set_server_key(server_key);
|
||||
///
|
||||
/// let a = FheUint16::encrypt(3u16, &client_key);
|
||||
@@ -1932,10 +1930,10 @@ where
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// # use tfhe::prelude::*;
|
||||
/// # use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheUint16};
|
||||
/// #
|
||||
/// # let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// use tfhe::prelude::*;
|
||||
/// use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheUint16};
|
||||
///
|
||||
/// let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// set_server_key(server_key);
|
||||
///
|
||||
/// let a = FheUint16::encrypt(3u16, &client_key);
|
||||
@@ -1960,10 +1958,10 @@ where
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// # use tfhe::prelude::*;
|
||||
/// # use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheUint16};
|
||||
/// #
|
||||
/// # let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// use tfhe::prelude::*;
|
||||
/// use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheUint16};
|
||||
///
|
||||
/// let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// set_server_key(server_key);
|
||||
///
|
||||
/// let a = FheUint16::encrypt(3u16, &client_key);
|
||||
|
||||
@@ -20,10 +20,10 @@ where
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// # use tfhe::prelude::*;
|
||||
/// # use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheUint16};
|
||||
/// #
|
||||
/// # let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// use tfhe::prelude::*;
|
||||
/// use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheUint16};
|
||||
///
|
||||
/// let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// set_server_key(server_key);
|
||||
///
|
||||
/// let a = FheUint16::encrypt(u16::MAX, &client_key);
|
||||
@@ -69,10 +69,10 @@ where
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// # use tfhe::prelude::*;
|
||||
/// # use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheUint16};
|
||||
/// #
|
||||
/// # let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// use tfhe::prelude::*;
|
||||
/// use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheUint16};
|
||||
///
|
||||
/// let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// set_server_key(server_key);
|
||||
///
|
||||
/// let a = FheUint16::encrypt(u16::MAX, &client_key);
|
||||
@@ -107,10 +107,10 @@ where
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// # use tfhe::prelude::*;
|
||||
/// # use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheUint16};
|
||||
/// #
|
||||
/// # let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// use tfhe::prelude::*;
|
||||
/// use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheUint16};
|
||||
///
|
||||
/// let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// set_server_key(server_key);
|
||||
///
|
||||
/// let a = FheUint16::encrypt(u16::MAX, &client_key);
|
||||
@@ -155,10 +155,10 @@ where
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// # use tfhe::prelude::*;
|
||||
/// # use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheUint16};
|
||||
/// #
|
||||
/// # let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// use tfhe::prelude::*;
|
||||
/// use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheUint16};
|
||||
///
|
||||
/// let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// set_server_key(server_key);
|
||||
///
|
||||
/// let a = FheUint16::encrypt(u16::MAX, &client_key);
|
||||
@@ -192,10 +192,10 @@ where
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// # use tfhe::prelude::*;
|
||||
/// # use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheUint16};
|
||||
/// #
|
||||
/// # let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// use tfhe::prelude::*;
|
||||
/// use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheUint16};
|
||||
///
|
||||
/// let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// set_server_key(server_key);
|
||||
///
|
||||
/// let a = FheUint16::encrypt(u16::MAX, &client_key);
|
||||
@@ -230,10 +230,10 @@ where
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// # use tfhe::prelude::*;
|
||||
/// # use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheUint16};
|
||||
/// #
|
||||
/// # let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// use tfhe::prelude::*;
|
||||
/// use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheUint16};
|
||||
///
|
||||
/// let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// set_server_key(server_key);
|
||||
///
|
||||
/// let a = FheUint16::encrypt(0u16, &client_key);
|
||||
@@ -279,10 +279,10 @@ where
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// # use tfhe::prelude::*;
|
||||
/// # use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheUint16};
|
||||
/// #
|
||||
/// # let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// use tfhe::prelude::*;
|
||||
/// use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheUint16};
|
||||
///
|
||||
/// let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// set_server_key(server_key);
|
||||
///
|
||||
/// let a = FheUint16::encrypt(0u16, &client_key);
|
||||
@@ -317,10 +317,10 @@ where
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// # use tfhe::prelude::*;
|
||||
/// # use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheUint16};
|
||||
/// #
|
||||
/// # let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// use tfhe::prelude::*;
|
||||
/// use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheUint16};
|
||||
///
|
||||
/// let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// set_server_key(server_key);
|
||||
///
|
||||
/// let a = FheUint16::encrypt(0u16, &client_key);
|
||||
@@ -365,10 +365,10 @@ where
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// # use tfhe::prelude::*;
|
||||
/// # use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheUint16};
|
||||
/// #
|
||||
/// # let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// use tfhe::prelude::*;
|
||||
/// use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheUint16};
|
||||
///
|
||||
/// let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// set_server_key(server_key);
|
||||
///
|
||||
/// let a = FheUint16::encrypt(0u16, &client_key);
|
||||
@@ -401,10 +401,10 @@ where
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// # use tfhe::prelude::*;
|
||||
/// # use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheUint16};
|
||||
/// #
|
||||
/// # let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// use tfhe::prelude::*;
|
||||
/// use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheUint16};
|
||||
///
|
||||
/// let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// set_server_key(server_key);
|
||||
///
|
||||
/// let a = FheUint16::encrypt(3434u16, &client_key);
|
||||
@@ -448,10 +448,10 @@ where
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// # use tfhe::prelude::*;
|
||||
/// # use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheUint16};
|
||||
/// #
|
||||
/// # let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// use tfhe::prelude::*;
|
||||
/// use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheUint16};
|
||||
///
|
||||
/// let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// set_server_key(server_key);
|
||||
///
|
||||
/// let a = FheUint16::encrypt(3434u16, &client_key);
|
||||
|
||||
@@ -34,10 +34,10 @@ where
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// # use tfhe::prelude::*;
|
||||
/// # use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheUint16};
|
||||
/// #
|
||||
/// # let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// use tfhe::prelude::*;
|
||||
/// use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheUint16};
|
||||
///
|
||||
/// let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// set_server_key(server_key);
|
||||
///
|
||||
/// let a = FheUint16::encrypt(1u16, &client_key);
|
||||
@@ -68,10 +68,10 @@ where
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// # use tfhe::prelude::*;
|
||||
/// # use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheUint16};
|
||||
/// #
|
||||
/// # let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// use tfhe::prelude::*;
|
||||
/// use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheUint16};
|
||||
///
|
||||
/// let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// set_server_key(server_key);
|
||||
///
|
||||
/// let a = FheUint16::encrypt(1u16, &client_key);
|
||||
@@ -108,10 +108,10 @@ where
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// # use tfhe::prelude::*;
|
||||
/// # use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheUint16};
|
||||
/// #
|
||||
/// # let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// use tfhe::prelude::*;
|
||||
/// use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheUint16};
|
||||
///
|
||||
/// let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// set_server_key(server_key);
|
||||
///
|
||||
/// let a = FheUint16::encrypt(1u16, &client_key);
|
||||
@@ -145,10 +145,10 @@ where
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// # use tfhe::prelude::*;
|
||||
/// # use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheUint16};
|
||||
/// #
|
||||
/// # let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// use tfhe::prelude::*;
|
||||
/// use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheUint16};
|
||||
///
|
||||
/// let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// set_server_key(server_key);
|
||||
///
|
||||
/// let a = FheUint16::encrypt(1u16, &client_key);
|
||||
@@ -182,10 +182,10 @@ where
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// # use tfhe::prelude::*;
|
||||
/// # use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheUint16};
|
||||
/// #
|
||||
/// # let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// use tfhe::prelude::*;
|
||||
/// use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheUint16};
|
||||
///
|
||||
/// let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// set_server_key(server_key);
|
||||
///
|
||||
/// let a = FheUint16::encrypt(1u16, &client_key);
|
||||
@@ -219,10 +219,10 @@ where
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// # use tfhe::prelude::*;
|
||||
/// # use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheUint16};
|
||||
/// #
|
||||
/// # let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// use tfhe::prelude::*;
|
||||
/// use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheUint16};
|
||||
///
|
||||
/// let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// set_server_key(server_key);
|
||||
///
|
||||
/// let a = FheUint16::encrypt(1u16, &client_key);
|
||||
@@ -264,10 +264,10 @@ where
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// # use tfhe::prelude::*;
|
||||
/// # use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheUint16};
|
||||
/// #
|
||||
/// # let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// use tfhe::prelude::*;
|
||||
/// use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheUint16};
|
||||
///
|
||||
/// let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// set_server_key(server_key);
|
||||
///
|
||||
/// let a = FheUint16::encrypt(1u16, &client_key);
|
||||
@@ -309,10 +309,10 @@ where
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// # use tfhe::prelude::*;
|
||||
/// # use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheUint16};
|
||||
/// #
|
||||
/// # let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// use tfhe::prelude::*;
|
||||
/// use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheUint16};
|
||||
///
|
||||
/// let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// set_server_key(server_key);
|
||||
///
|
||||
/// let a = FheUint16::encrypt(1u16, &client_key);
|
||||
@@ -982,10 +982,10 @@ generic_integer_impl_scalar_left_operation!(
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// # use tfhe::prelude::*;
|
||||
/// # use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheUint16};
|
||||
/// #
|
||||
/// # let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// use tfhe::prelude::*;
|
||||
/// use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheUint16};
|
||||
///
|
||||
/// let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// set_server_key(server_key);
|
||||
///
|
||||
/// let a = 23u16;
|
||||
@@ -1045,10 +1045,10 @@ generic_integer_impl_scalar_left_operation!(
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// # use tfhe::prelude::*;
|
||||
/// # use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheUint16};
|
||||
/// #
|
||||
/// # let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// use tfhe::prelude::*;
|
||||
/// use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheUint16};
|
||||
///
|
||||
/// let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// set_server_key(server_key);
|
||||
///
|
||||
/// let a = 23u16;
|
||||
@@ -1090,10 +1090,10 @@ generic_integer_impl_scalar_left_operation!(
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// # use tfhe::prelude::*;
|
||||
/// # use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheUint16};
|
||||
/// #
|
||||
/// # let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// use tfhe::prelude::*;
|
||||
/// use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheUint16};
|
||||
///
|
||||
/// let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// set_server_key(server_key);
|
||||
///
|
||||
/// let a = 23u16;
|
||||
@@ -1133,10 +1133,10 @@ generic_integer_impl_scalar_left_operation!(
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// # use tfhe::prelude::*;
|
||||
/// # use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheUint16};
|
||||
/// #
|
||||
/// # let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// use tfhe::prelude::*;
|
||||
/// use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheUint16};
|
||||
///
|
||||
/// let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// set_server_key(server_key);
|
||||
///
|
||||
/// let a = 23u16;
|
||||
@@ -1176,10 +1176,10 @@ generic_integer_impl_scalar_left_operation!(
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// # use tfhe::prelude::*;
|
||||
/// # use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheUint16};
|
||||
/// #
|
||||
/// # let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// use tfhe::prelude::*;
|
||||
/// use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheUint16};
|
||||
///
|
||||
/// let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// set_server_key(server_key);
|
||||
///
|
||||
/// let a = 23u16;
|
||||
@@ -1219,10 +1219,10 @@ generic_integer_impl_scalar_left_operation!(
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// # use tfhe::prelude::*;
|
||||
/// # use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheUint16};
|
||||
/// #
|
||||
/// # let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// use tfhe::prelude::*;
|
||||
/// use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheUint16};
|
||||
///
|
||||
/// let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// set_server_key(server_key);
|
||||
///
|
||||
/// let a = 23u16;
|
||||
@@ -1304,10 +1304,10 @@ generic_integer_impl_scalar_operation_assign!(
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// # use tfhe::prelude::*;
|
||||
/// # use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheUint16};
|
||||
/// #
|
||||
/// # let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// use tfhe::prelude::*;
|
||||
/// use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheUint16};
|
||||
///
|
||||
/// let (client_key, server_key) = generate_keys(ConfigBuilder::default());
|
||||
/// set_server_key(server_key);
|
||||
///
|
||||
/// let mut a = FheUint16::encrypt(3u16, &client_key);
|
||||
|
||||
@@ -25,7 +25,7 @@ pub(in crate::high_level_api) use inner::{
|
||||
///
|
||||
/// # Example
|
||||
///
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use tfhe::{generate_keys, ConfigBuilder};
|
||||
///
|
||||
/// let config = ConfigBuilder::default().build();
|
||||
|
||||
@@ -20,7 +20,7 @@ use serde::{Deserialize, Serialize};
|
||||
/// # Examples
|
||||
/// ## Converting a [BooleanBlock] to a [RadixCiphertext]
|
||||
///
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use tfhe::integer::{gen_keys_radix, BooleanBlock};
|
||||
/// use tfhe::shortint::parameters::PARAM_MESSAGE_2_CARRY_2_KS_PBS;
|
||||
///
|
||||
@@ -78,7 +78,7 @@ impl BooleanBlock {
|
||||
/// # Examples
|
||||
/// ## Converting a [BooleanBlock] to a [RadixCiphertext]
|
||||
///
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use tfhe::integer::{gen_keys_radix, BooleanBlock};
|
||||
/// use tfhe::shortint::parameters::PARAM_MESSAGE_2_CARRY_2_KS_PBS;
|
||||
///
|
||||
|
||||
@@ -491,7 +491,7 @@ impl ClientKey {
|
||||
///
|
||||
/// # Example
|
||||
///
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use tfhe::integer::{gen_keys_radix, BooleanBlock};
|
||||
/// use tfhe::shortint::parameters::PARAM_MESSAGE_2_CARRY_2_KS_PBS;
|
||||
///
|
||||
@@ -526,7 +526,7 @@ impl ClientKey {
|
||||
///
|
||||
/// # Example
|
||||
///
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use tfhe::integer::{BooleanBlock, ClientKey};
|
||||
/// use tfhe::shortint::parameters::PARAM_MESSAGE_2_CARRY_2_KS_PBS;
|
||||
///
|
||||
|
||||
@@ -96,7 +96,6 @@ impl ServerKey {
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// # fn main() -> Result<(), Box<dyn std::error::Error>> {
|
||||
/// use tfhe::integer::gen_keys_crt;
|
||||
/// use tfhe::shortint::parameters::PARAM_MESSAGE_3_CARRY_3_KS_PBS;
|
||||
///
|
||||
@@ -115,8 +114,6 @@ impl ServerKey {
|
||||
/// // Decrypt
|
||||
/// let res = cks.decrypt(&ctxt_1);
|
||||
/// assert_eq!((clear_1 + clear_2) % modulus, res);
|
||||
/// # Ok(())
|
||||
/// # }
|
||||
/// ```
|
||||
pub fn checked_crt_scalar_add(
|
||||
&self,
|
||||
|
||||
@@ -95,7 +95,6 @@ impl ServerKey {
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// # fn main() -> Result<(), Box<dyn std::error::Error>> {
|
||||
/// use tfhe::integer::gen_keys_crt;
|
||||
/// use tfhe::shortint::parameters::PARAM_MESSAGE_3_CARRY_3_KS_PBS;
|
||||
///
|
||||
@@ -114,8 +113,6 @@ impl ServerKey {
|
||||
/// // Decrypt
|
||||
/// let res = cks.decrypt(&ctxt_1);
|
||||
/// assert_eq!((clear_1 * clear_2) % modulus, res);
|
||||
/// # Ok(())
|
||||
/// # }
|
||||
/// ```
|
||||
pub fn checked_crt_scalar_mul(
|
||||
&self,
|
||||
|
||||
@@ -90,7 +90,6 @@ impl ServerKey {
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// # fn main() -> Result<(), Box<dyn std::error::Error>> {
|
||||
/// use tfhe::integer::gen_keys_crt;
|
||||
/// use tfhe::shortint::parameters::PARAM_MESSAGE_3_CARRY_3_KS_PBS;
|
||||
///
|
||||
@@ -104,13 +103,11 @@ impl ServerKey {
|
||||
///
|
||||
/// let mut ctxt_1 = cks.encrypt(clear_1);
|
||||
///
|
||||
/// let ct_res = sks.checked_crt_scalar_sub(&mut ctxt_1, clear_2)?;
|
||||
/// let ct_res = sks.checked_crt_scalar_sub(&mut ctxt_1, clear_2).unwrap();
|
||||
///
|
||||
/// // Decrypt:
|
||||
/// let dec = cks.decrypt(&ct_res);
|
||||
/// assert_eq!((clear_1 - clear_2) % modulus, dec);
|
||||
/// # Ok(())
|
||||
/// # }
|
||||
/// ```
|
||||
pub fn checked_crt_scalar_sub(
|
||||
&self,
|
||||
@@ -129,7 +126,6 @@ impl ServerKey {
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// # fn main() -> Result<(), Box<dyn std::error::Error>> {
|
||||
/// use tfhe::integer::gen_keys_crt;
|
||||
/// use tfhe::shortint::parameters::PARAM_MESSAGE_3_CARRY_3_KS_PBS;
|
||||
///
|
||||
@@ -143,13 +139,12 @@ impl ServerKey {
|
||||
///
|
||||
/// let mut ctxt_1 = cks.encrypt(clear_1);
|
||||
///
|
||||
/// sks.checked_crt_scalar_sub_assign(&mut ctxt_1, clear_2)?;
|
||||
/// sks.checked_crt_scalar_sub_assign(&mut ctxt_1, clear_2)
|
||||
/// .unwrap();
|
||||
///
|
||||
/// // Decrypt:
|
||||
/// let dec = cks.decrypt(&ctxt_1);
|
||||
/// assert_eq!((clear_1 - clear_2) % modulus, dec);
|
||||
/// # Ok(())
|
||||
/// # }
|
||||
/// ```
|
||||
pub fn checked_crt_scalar_sub_assign(
|
||||
&self,
|
||||
|
||||
@@ -71,7 +71,6 @@ impl ServerKey {
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// # fn main() -> Result<(), Box<dyn std::error::Error>> {
|
||||
/// use tfhe::integer::gen_keys_crt;
|
||||
/// use tfhe::shortint::parameters::PARAM_MESSAGE_3_CARRY_3_KS_PBS;
|
||||
///
|
||||
@@ -90,8 +89,6 @@ impl ServerKey {
|
||||
/// // Decrypt
|
||||
/// let res = cks.decrypt(&ctxt_1);
|
||||
/// assert_eq!((clear_1 + clear_2) % modulus, res);
|
||||
/// # Ok(())
|
||||
/// # }
|
||||
/// ```
|
||||
pub fn checked_crt_scalar_add_parallelized(
|
||||
&self,
|
||||
|
||||
@@ -65,7 +65,6 @@ impl ServerKey {
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// # fn main() -> Result<(), Box<dyn std::error::Error>> {
|
||||
/// use tfhe::integer::gen_keys_crt;
|
||||
/// use tfhe::shortint::parameters::PARAM_MESSAGE_3_CARRY_3_KS_PBS;
|
||||
///
|
||||
@@ -79,13 +78,13 @@ impl ServerKey {
|
||||
///
|
||||
/// let mut ctxt_1 = cks.encrypt(clear_1);
|
||||
///
|
||||
/// let ct_res = sks.checked_crt_scalar_sub_parallelized(&mut ctxt_1, clear_2)?;
|
||||
/// let ct_res = sks
|
||||
/// .checked_crt_scalar_sub_parallelized(&mut ctxt_1, clear_2)
|
||||
/// .unwrap();
|
||||
///
|
||||
/// // Decrypt:
|
||||
/// let dec = cks.decrypt(&ct_res);
|
||||
/// assert_eq!((clear_1 - clear_2) % modulus, dec);
|
||||
/// # Ok(())
|
||||
/// # }
|
||||
/// ```
|
||||
pub fn checked_crt_scalar_sub_parallelized(
|
||||
&self,
|
||||
@@ -104,7 +103,6 @@ impl ServerKey {
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// # fn main() -> Result<(), Box<dyn std::error::Error>> {
|
||||
/// use tfhe::integer::gen_keys_crt;
|
||||
/// use tfhe::shortint::parameters::PARAM_MESSAGE_3_CARRY_3_KS_PBS;
|
||||
///
|
||||
@@ -118,13 +116,12 @@ impl ServerKey {
|
||||
///
|
||||
/// let mut ctxt_1 = cks.encrypt(clear_1);
|
||||
///
|
||||
/// sks.checked_crt_scalar_sub_assign_parallelized(&mut ctxt_1, clear_2)?;
|
||||
/// sks.checked_crt_scalar_sub_assign_parallelized(&mut ctxt_1, clear_2)
|
||||
/// .unwrap();
|
||||
///
|
||||
/// // Decrypt:
|
||||
/// let dec = cks.decrypt(&ctxt_1);
|
||||
/// assert_eq!((clear_1 - clear_2) % modulus, dec);
|
||||
/// # Ok(())
|
||||
/// # }
|
||||
/// ```
|
||||
pub fn checked_crt_scalar_sub_assign_parallelized(
|
||||
&self,
|
||||
|
||||
@@ -122,7 +122,6 @@ impl ServerKey {
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// # fn main() -> Result<(), Box<dyn std::error::Error>> {
|
||||
/// use tfhe::integer::gen_keys_radix;
|
||||
/// use tfhe::shortint::parameters::PARAM_MESSAGE_2_CARRY_2_KS_PBS;
|
||||
///
|
||||
@@ -136,13 +135,11 @@ impl ServerKey {
|
||||
/// let mut ct = cks.encrypt(msg);
|
||||
///
|
||||
/// // Compute homomorphically an addition:
|
||||
/// let ct_res = sks.checked_scalar_add(&mut ct, scalar)?;
|
||||
/// let ct_res = sks.checked_scalar_add(&mut ct, scalar).unwrap();
|
||||
///
|
||||
/// // Decrypt:
|
||||
/// let dec: u64 = cks.decrypt(&ct_res);
|
||||
/// assert_eq!(msg + scalar, dec);
|
||||
/// # Ok(())
|
||||
/// # }
|
||||
/// ```
|
||||
pub fn checked_scalar_add<T, C>(&self, ct: &C, scalar: T) -> Result<C, CheckError>
|
||||
where
|
||||
|
||||
@@ -173,7 +173,6 @@ impl ServerKey {
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// # fn main() -> Result<(), Box<dyn std::error::Error>> {
|
||||
/// use tfhe::integer::gen_keys_radix;
|
||||
/// use tfhe::shortint::parameters::PARAM_MESSAGE_2_CARRY_2_KS_PBS;
|
||||
///
|
||||
@@ -187,13 +186,11 @@ impl ServerKey {
|
||||
/// let ct = cks.encrypt(msg);
|
||||
///
|
||||
/// // Compute the subtraction:
|
||||
/// let ct_res = sks.checked_scalar_sub(&ct, scalar)?;
|
||||
/// let ct_res = sks.checked_scalar_sub(&ct, scalar).unwrap();
|
||||
///
|
||||
/// // Decrypt:
|
||||
/// let dec: u64 = cks.decrypt(&ct_res);
|
||||
/// assert_eq!(msg - scalar, dec);
|
||||
/// # Ok(())
|
||||
/// # }
|
||||
/// ```
|
||||
pub fn checked_scalar_sub<T, Scalar>(&self, ct: &T, scalar: Scalar) -> Result<T, CheckError>
|
||||
where
|
||||
@@ -212,7 +209,6 @@ impl ServerKey {
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// # fn main() -> Result<(), Box<dyn std::error::Error>> {
|
||||
/// use tfhe::integer::gen_keys_radix;
|
||||
/// use tfhe::shortint::parameters::PARAM_MESSAGE_2_CARRY_2_KS_PBS;
|
||||
///
|
||||
@@ -226,13 +222,11 @@ impl ServerKey {
|
||||
/// let mut ct = cks.encrypt(msg);
|
||||
///
|
||||
/// // Compute the subtraction:
|
||||
/// sks.checked_scalar_sub_assign(&mut ct, scalar)?;
|
||||
/// sks.checked_scalar_sub_assign(&mut ct, scalar).unwrap();
|
||||
///
|
||||
/// // Decrypt:
|
||||
/// let dec: u64 = cks.decrypt(&ct);
|
||||
/// assert_eq!(msg - scalar, dec);
|
||||
/// # Ok(())
|
||||
/// # }
|
||||
/// ```
|
||||
pub fn checked_scalar_sub_assign<T, Scalar>(
|
||||
&self,
|
||||
|
||||
@@ -45,7 +45,7 @@ impl ServerKey {
|
||||
/// Note that while the returned ciphertext encrypts the same value as
|
||||
/// either true_ct or false_ct, it won't exactly be true_ct or false_ct.
|
||||
///
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use tfhe::integer::gen_keys_radix;
|
||||
/// use tfhe::shortint::parameters::PARAM_MESSAGE_2_CARRY_2_KS_PBS;
|
||||
///
|
||||
@@ -120,7 +120,7 @@ impl ServerKey {
|
||||
/// Note that while the returned ciphertext encrypts the same value as
|
||||
/// either true_ct or false_ct, it won't exactly be true_ct or false_ct.
|
||||
///
|
||||
/// ```
|
||||
/// ```rust
|
||||
/// use tfhe::integer::gen_keys_radix;
|
||||
/// use tfhe::shortint::parameters::PARAM_MESSAGE_2_CARRY_2_KS_PBS;
|
||||
///
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user