Skip to main content

FheUint

Struct FheUint 

Source
pub struct FheUint<Id: FheUintId> { /* private fields */ }
Expand description

A Generic FHE unsigned integer

This struct is generic over some Id, as its the Id that controls how many bit they represent.

You will need to use one of this type specialization (e.g., FheUint8, FheUint12, FheUint16).

Its the type that overloads the operators (+, -, *), since the FheUint type is not Copy the operators are also overloaded to work with references.

Implementations§

Source§

impl<Id: FheUintId> FheUint<Id>

Source

pub fn generate_oblivious_pseudo_random(seed: impl OprfSeed) -> Self

Generates an encrypted unsigned integer taken uniformly in its full range using the given seed. The encrypted value is oblivious to the server. It can be useful to make server random generation deterministic.

use tfhe::prelude::FheDecrypt;
use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheUint8, Seed};

let config = ConfigBuilder::default().build();
let (client_key, server_key) = generate_keys(config);

set_server_key(server_key);

// DANGER: Using a deterministic seed is insecure and only done here to show API usage.
// The proper way of generating a seed depends on your application.
let ct_res = FheUint8::generate_oblivious_pseudo_random(Seed(0));

let dec_result: u16 = ct_res.decrypt(&client_key);
Source

pub fn get_generate_oblivious_pseudo_random_size_on_gpu() -> u64

Returns the amount of memory required to execute generate_oblivious_pseudo_random

use tfhe::core_crypto::gpu::check_valid_cuda_malloc_assert_oom;
use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheUint8, GpuIndex};

let config = ConfigBuilder::default().build();
let (client_key, server_key) = generate_keys(config);

set_server_key(server_key);

let random_bits_count = 3;

let size = FheUint8::get_generate_oblivious_pseudo_random_size_on_gpu();

check_valid_cuda_malloc_assert_oom(size, GpuIndex::new(0));
Source

pub fn generate_oblivious_pseudo_random_and_re_randomize<'a, RRD: Into<ReRandomizationMode<'a>>>( seed: impl OprfSeed, re_randomization_mode: RRD, prf_re_randomization_context: &PrfReRandomizationContext, ) -> Result<Self>

Re-randomizing variant of Self::generate_oblivious_pseudo_random.

Source

pub fn generate_oblivious_pseudo_random_bounded( seed: impl OprfSeed, random_bits_count: u64, ) -> Self

Generates an encrypted unsigned integer taken uniformly in [0, 2^random_bits_count[ using the given seed. The encrypted value is oblivious to the server. It can be useful to make server random generation deterministic.

WARNING: If the requested random_bits_count is 0, then the returned ciphertext is a trivial encryption of 0.

use tfhe::prelude::FheDecrypt;
use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheUint8, Seed};

let config = ConfigBuilder::default().build();
let (client_key, server_key) = generate_keys(config);

set_server_key(server_key);

let random_bits_count = 3;

// DANGER: Using a deterministic seed is insecure and only done here to show API usage.
// The proper way of generating a seed depends on your application.
let ct_res = FheUint8::generate_oblivious_pseudo_random_bounded(Seed(0), random_bits_count);

let dec_result: u16 = ct_res.decrypt(&client_key);
assert!(dec_result < (1 << random_bits_count));
Source

pub fn generate_oblivious_pseudo_random_bounded_and_re_randomize<'a, RRD: Into<ReRandomizationMode<'a>>>( seed: impl OprfSeed, random_bits_count: u64, re_randomization_mode: RRD, prf_re_randomization_context: &PrfReRandomizationContext, ) -> Result<Self>

Re-randomizing variant of Self::generate_oblivious_pseudo_random_bounded.

WARNING: If the requested random_bits_count is 0, then the returned ciphertext is a trivial encryption of 0.

Source

pub fn generate_oblivious_pseudo_random_custom_range( seed: impl OprfSeed, range: &RangeForRandom, max_distance: Option<f64>, ) -> Self

Generates an encrypted unsigned integer taken almost uniformly in the given range using the given seed. Currently the range can only be in the form [0, excluded_upper_bound[ with any excluded_upper_bound in [1, 2^64[.

The encrypted value is oblivious to the server. It can be useful to make server random generation deterministic.

This function guarantees the the norm-1 distance (defined as ∆(P,Q) := 1/2 Sum[ω∈Ω] |P(ω) − Q(ω)|) between the actual distribution and the target uniform distribution will be below the max_distance argument (which must be in ]0, 1[). The higher the distance, the more dissimilar the actual distribution is from the target uniform distribution.

The default value for max_distance is 2^-128 if None is provided.

Higher values allow better performance but must be considered carefully in the context of their target application as it may have serious unintended consequences.

If the range is a power of 2, the distribution is uniform (for any max_distance) and the cost is smaller.

use std::num::NonZeroU64;
use tfhe::prelude::FheDecrypt;
use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheUint8, RangeForRandom, Seed};

let config = ConfigBuilder::default().build();
let (client_key, server_key) = generate_keys(config);

set_server_key(server_key);

let excluded_upper_bound = NonZeroU64::new(3).unwrap();

let range = RangeForRandom::new_from_excluded_upper_bound(excluded_upper_bound);

// DANGER: Using a deterministic seed is insecure and only done here to show API usage.
// The proper way of generating a seed depends on your application.
let ct_res = FheUint8::generate_oblivious_pseudo_random_custom_range(Seed(0), &range, None);

let dec_result: u16 = ct_res.decrypt(&client_key);
assert!(dec_result < excluded_upper_bound.get() as u16);
Source

pub fn get_generate_oblivious_pseudo_random_bounded_size_on_gpu() -> u64

Returns the amount of memory required to execute generate_oblivious_pseudo_random_bounded

use tfhe::core_crypto::gpu::check_valid_cuda_malloc_assert_oom;
use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheUint8, GpuIndex};

let config = ConfigBuilder::default().build();
let (client_key, server_key) = generate_keys(config);

set_server_key(server_key);

let random_bits_count = 3;

let size = FheUint8::get_generate_oblivious_pseudo_random_bounded_size_on_gpu();

check_valid_cuda_malloc_assert_oom(size, GpuIndex::new(0));
Source

pub fn generate_oblivious_pseudo_random_custom_range_and_re_randomize<'a, RRD: Into<ReRandomizationMode<'a>>>( seed: impl OprfSeed, range: &RangeForRandom, max_distance: Option<f64>, re_randomization_mode: RRD, prf_re_randomization_context: &PrfReRandomizationContext, ) -> Result<Self>

Source§

impl<Id> FheUint<Id>
where Id: FheUintId,

Source

pub fn into_raw_parts( self, ) -> (RadixCiphertext, Id, Tag, ReRandomizationMetadata)

Source

pub fn from_raw_parts( ciphertext: RadixCiphertext, id: Id, tag: Tag, re_randomization_metadata: ReRandomizationMetadata, ) -> Self

Source

pub fn num_bits() -> usize

Source

pub fn current_device(&self) -> Device

Returns the device where the ciphertext is currently on

Source

pub fn move_to_device(&mut self, device: Device)

Moves (in-place) the ciphertext to the desired device.

Does nothing if the ciphertext is already in the desired device

Source

pub fn move_to_current_device(&mut self)

Moves (in-place) the ciphertext to the device of the current thread-local server key

Does nothing if the ciphertext is already in the desired device or if no server key is set

Source

pub fn gpu_indexes(&self) -> &[GpuIndex]

Returns the indexes of the GPUs where the ciphertext lives

If the ciphertext is on another deive (e.g CPU) then the returned slice is empty

Source

pub fn is_even(&self) -> FheBool

Returns a FheBool that encrypts true if the value is even

§Example
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(32u16, &client_key);

let result = a.is_even();
let decrypted = result.decrypt(&client_key);
assert!(decrypted);
Source

pub fn is_odd(&self) -> FheBool

Returns a FheBool that encrypts true if the value is odd

§Example
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(4393u16, &client_key);

let result = a.is_odd();
let decrypted = result.decrypt(&client_key);
assert!(decrypted);
Source

pub fn try_decrypt_trivial<Clear>( &self, ) -> Result<Clear, NotTrivialCiphertextError>

Tries to decrypt a trivial ciphertext

Trivial ciphertexts are ciphertexts which are not encrypted meaning they can be decrypted by any key, or even without a key.

For debugging it can be useful to use trivial ciphertext to speed up execution, and use Self::try_decrypt_trivial to decrypt temporary values and debug.

§Example
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.
let non_trivial = FheUint16::encrypt(1u16, &client_key);
// This is a trivial ciphertext
let trivial = FheUint16::encrypt_trivial(2u16);

// We can trivial decrypt
let result: Result<u16, _> = trivial.try_decrypt_trivial();
assert_eq!(result, Ok(2));

// We cannot trivial decrypt
let result: Result<u16, _> = non_trivial.try_decrypt_trivial();
assert!(result.is_err());
Source

pub fn is_trivial(&self) -> bool

Returns true if the ciphertext is a trivial encryption

§Example
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);
assert!(!non_trivial.is_trivial());

let trivial = FheUint16::encrypt_trivial(2u16);
assert!(trivial.is_trivial());
Source

pub fn sum<'a, C>(collection: C) -> Self
where C: AsRef<[&'a Self]>,

Sums multiple ciphertexts together.

This is much more efficient than manually calling the + operator, thus using sum should always be preferred.

§Example
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);
let b = FheUint16::encrypt(2u16, &client_key);
let c = FheUint16::encrypt(3u16, &client_key);

let result = FheUint16::sum([&a, &b, &c]);
let decrypted: u16 = result.decrypt(&client_key);
assert_eq!(decrypted, 1u16 + 2 + 3);

// Or
let result = [&a, &b, &c].into_iter().sum::<FheUint16>();
let decrypted: u16 = result.decrypt(&client_key);
assert_eq!(decrypted, 1u16 + 2 + 3);
Source

pub fn contains(cts: &[Self], value: &Self) -> FheBool

Returns an encrypted true if value is found in cts.

§Example
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);
let b = FheUint16::encrypt(2u16, &client_key);
let c = FheUint16::encrypt(3u16, &client_key);
let value = FheUint16::encrypt(2u16, &client_key);

let result = FheUint16::contains(&[a, b, c], &value);
let decrypted = result.decrypt(&client_key);
assert!(decrypted);
Source

pub fn leading_zeros(&self) -> FheUint32

Returns the number of leading zeros in the binary representation of self.

§Example
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(0b00111111_11111111u16, &client_key);

let result = a.leading_zeros();
let decrypted: u16 = result.decrypt(&client_key);
assert_eq!(decrypted, 2);
Source

pub fn leading_ones(&self) -> FheUint32

Returns the number of leading ones in the binary representation of self.

§Example
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(0b11000000_00000000u16, &client_key);

let result = a.leading_ones();
let decrypted: u16 = result.decrypt(&client_key);
assert_eq!(decrypted, 2);
Source

pub fn trailing_zeros(&self) -> FheUint32

Returns the number of trailing zeros in the binary representation of self.

§Example
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(0b0000000_0101000u16, &client_key);

let result = a.trailing_zeros();
let decrypted: u16 = result.decrypt(&client_key);
assert_eq!(decrypted, 3);
Source

pub fn trailing_ones(&self) -> FheUint32

Returns the number of trailing ones in the binary representation of self.

§Example
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(0b0000000_0110111u16, &client_key);

let result = a.trailing_ones();
let decrypted: u16 = result.decrypt(&client_key);
assert_eq!(decrypted, 3);
Source

pub fn count_ones(&self) -> FheUint32

Returns the number of ones in the binary representation of self.

§Example
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 clear_a = 0b0000000_0110111u16;
let a = FheUint16::encrypt(clear_a, &client_key);

let result = a.count_ones();
let decrypted: u32 = result.decrypt(&client_key);
assert_eq!(decrypted, clear_a.count_ones());
Source

pub fn count_zeros(&self) -> FheUint32

Returns the number of zeros in the binary representation of self.

§Example
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 clear_a = 0b0000000_0110111u16;
let a = FheUint16::encrypt(clear_a, &client_key);

let result = a.count_zeros();
let decrypted: u32 = result.decrypt(&client_key);
assert_eq!(decrypted, clear_a.count_zeros());
Source

pub fn ilog2(&self) -> FheUint32

Returns the base 2 logarithm of the number, rounded down.

Result has no meaning if self encrypts 0. See Self::checked_ilog2

§Example
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(2u16, &client_key);

let result = a.ilog2();
let decrypted: u16 = result.decrypt(&client_key);
assert_eq!(decrypted, 1);
Source

pub fn checked_ilog2(&self) -> (FheUint32, FheBool)

Returns the base 2 logarithm of the number, rounded down.

Also returns a boolean flag that is true if the result is valid (i.e self was > 0)

§Example
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);

let (result, is_ok) = a.checked_ilog2();

let is_ok = is_ok.decrypt(&client_key);
assert!(!is_ok);

let decrypted: u16 = result.decrypt(&client_key);
assert_eq!(decrypted, 63); // result is meaningless
Source

pub fn match_value<Clear, OutId>( &self, matches: &MatchValues<Clear>, ) -> Result<(FheUint<OutId>, FheBool)>

match an input value to an output value

  • Input values are not required to span all possible values that self could hold. And the output type can be different.

Returns a FheBool that encrypts true if the input self matched one of the possible inputs

§Example
use tfhe::prelude::*;
use tfhe::{
    generate_keys, set_server_key, ConfigBuilder, FheUint16, FheUint8, MatchValues,
};

let (client_key, server_key) = generate_keys(ConfigBuilder::default());
set_server_key(server_key);

let a = FheUint16::encrypt(17u16, &client_key);

let match_values = MatchValues::new(vec![
    (0u16, 3u16),
    (1u16, 3u16),
    (2u16, 3u16),
    (17u16, 25u16),
])
.unwrap();
let (result, matched): (FheUint8, _) = a.match_value(&match_values)
    .unwrap(); // All possible output values fit in a u8

let matched = matched.decrypt(&client_key);
assert!(matched);

let decrypted: u16 = result.decrypt(&client_key);
assert_eq!(decrypted, 25u16)
Source

pub fn get_match_value_size_on_gpu<Clear>( &self, matches: &MatchValues<Clear>, ) -> Result<u64>

Returns the estimated memory usage (in bytes) required on the GPU to perform the match_value operation.

This is useful to check if the operation fits in the GPU memory before attempting execution.

§Example
use tfhe::prelude::*;
use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheUint16, MatchValues};

let config = ConfigBuilder::default().build();
let (client_key, server_key) = generate_keys(config);
set_server_key(server_key);

let a = FheUint16::encrypt(17u16, &client_key);

let match_values = MatchValues::new(vec![(0u16, 3u16), (17u16, 25u16)]).unwrap();

#[cfg(feature = "gpu")]
{
    let size_bytes = a.get_match_value_size_on_gpu(&match_values).unwrap();
    println!("Memory required on GPU: {} bytes", size_bytes);
    assert!(size_bytes > 0);
}
Source

pub fn match_value_or<Clear, OutId>( &self, matches: &MatchValues<Clear>, or_value: Clear, ) -> Result<FheUint<OutId>>

match an input value to an output value

  • Input values are not required to span all possible values that self could hold. And the output type can be different.

If none of the input matched the self then, self will encrypt the value given to or_value

§Example
use tfhe::prelude::*;
use tfhe::{
    generate_keys, set_server_key, ConfigBuilder, FheUint16, FheUint8, MatchValues,
};

let (client_key, server_key) = generate_keys(ConfigBuilder::default());
set_server_key(server_key);

let a = FheUint16::encrypt(17u16, &client_key);

let match_values = MatchValues::new(vec![
    (0u16, 3u16), // map 0 to 3
    (1u16, 234u16),
    (2u16, 123u16),
])
.unwrap();
let result: FheUint8 = a.match_value_or(&match_values, 25u16)
    .unwrap(); // All possible output values fit on a u8

let decrypted: u16 = result.decrypt(&client_key);
assert_eq!(decrypted, 25u16)
Source

pub fn get_match_value_or_size_on_gpu<Clear>( &self, matches: &MatchValues<Clear>, or_value: Clear, ) -> Result<u64>

Returns the estimated memory usage (in bytes) required on the GPU to perform the match_value_or operation.

This is useful to check if the operation fits in the GPU memory before attempting execution.

§Example
use tfhe::prelude::*;
use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheUint16, MatchValues};

let config = ConfigBuilder::default().build();
let (client_key, server_key) = generate_keys(config);
set_server_key(server_key);

let a = FheUint16::encrypt(17u16, &client_key);

let match_values = MatchValues::new(vec![(0u16, 3u16), (17u16, 25u16)]).unwrap();

#[cfg(feature = "gpu")]
{
    let size_bytes = a
        .get_match_value_or_size_on_gpu(&match_values, 55u16)
        .unwrap();
    println!("Memory required on GPU: {} bytes", size_bytes);
    assert!(size_bytes > 0);
}
Source

pub fn reverse_bits(&self) -> Self

Reverse the bit of the unsigned integer

§Example
use tfhe::prelude::*;
use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheUint8};

let (client_key, server_key) = generate_keys(ConfigBuilder::default());
set_server_key(server_key);

let msg = 0b10110100_u8;

let a = FheUint8::encrypt(msg, &client_key);

let result: FheUint8 = a.reverse_bits();

let decrypted: u8 = result.decrypt(&client_key);
assert_eq!(decrypted, msg.reverse_bits());
Source

pub fn if_then_else<Clear>( condition: &FheBool, true_value: Clear, false_value: Clear, ) -> Self

Creates a FheUint that encrypts either of two values depending on an encrypted condition

§Example
use tfhe::prelude::*;
use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheBool, FheUint32};

let (client_key, server_key) = generate_keys(ConfigBuilder::default());
set_server_key(server_key);

let cond = FheBool::encrypt(true, &client_key);

let result = FheUint32::if_then_else(&cond, u32::MAX, u32::MIN);
let decrypted: u32 = result.decrypt(&client_key);
assert_eq!(decrypted, u32::MAX);

let result = FheUint32::if_then_else(&!cond, u32::MAX, u32::MIN);
let decrypted: u32 = result.decrypt(&client_key);
assert_eq!(decrypted, u32::MIN);
Source

pub fn select<Clear>( condition: &FheBool, true_value: Clear, false_value: Clear, ) -> Self

Same as Self::if_then_else but with a different name

Source

pub fn cmux<Clear>( condition: &FheBool, true_value: Clear, false_value: Clear, ) -> Self

Same as Self::if_then_else but with a different name

Source

pub fn re_randomization_metadata(&self) -> &ReRandomizationMetadata

Source

pub fn re_randomization_metadata_mut(&mut self) -> &mut ReRandomizationMetadata

Source§

impl<Id> FheUint<Id>
where Id: FheUintId,

Source

pub fn compress(&self) -> CompressedFheUint<Id>

Trait Implementations§

Source§

impl Add<&FheUint<FheUint2Id>> for u8

Source§

type Output = FheUint<FheUint2Id>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: &FheUint2) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<&FheUint<FheUint2Id>> for &u8

Source§

type Output = FheUint<FheUint2Id>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: &FheUint2) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<&FheUint<FheUint4Id>> for u8

Source§

type Output = FheUint<FheUint4Id>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: &FheUint4) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<&FheUint<FheUint4Id>> for &u8

Source§

type Output = FheUint<FheUint4Id>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: &FheUint4) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<&FheUint<FheUint6Id>> for u8

Source§

type Output = FheUint<FheUint6Id>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: &FheUint6) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<&FheUint<FheUint6Id>> for &u8

Source§

type Output = FheUint<FheUint6Id>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: &FheUint6) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<&FheUint<FheUint8Id>> for u8

Source§

type Output = FheUint<FheUint8Id>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: &FheUint8) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<&FheUint<FheUint8Id>> for &u8

Source§

type Output = FheUint<FheUint8Id>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: &FheUint8) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<&FheUint<FheUint10Id>> for u16

Source§

type Output = FheUint<FheUint10Id>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: &FheUint10) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<&FheUint<FheUint10Id>> for &u16

Source§

type Output = FheUint<FheUint10Id>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: &FheUint10) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<&FheUint<FheUint12Id>> for u16

Source§

type Output = FheUint<FheUint12Id>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: &FheUint12) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<&FheUint<FheUint12Id>> for &u16

Source§

type Output = FheUint<FheUint12Id>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: &FheUint12) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<&FheUint<FheUint14Id>> for u16

Source§

type Output = FheUint<FheUint14Id>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: &FheUint14) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<&FheUint<FheUint14Id>> for &u16

Source§

type Output = FheUint<FheUint14Id>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: &FheUint14) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<&FheUint<FheUint16Id>> for u16

Source§

type Output = FheUint<FheUint16Id>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: &FheUint16) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<&FheUint<FheUint16Id>> for &u16

Source§

type Output = FheUint<FheUint16Id>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: &FheUint16) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<&FheUint<FheUint24Id>> for u32

Source§

type Output = FheUint<FheUint24Id>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: &FheUint24) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<&FheUint<FheUint24Id>> for &u32

Source§

type Output = FheUint<FheUint24Id>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: &FheUint24) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<&FheUint<FheUint32Id>> for u32

Source§

type Output = FheUint<FheUint32Id>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: &FheUint32) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<&FheUint<FheUint32Id>> for &u32

Source§

type Output = FheUint<FheUint32Id>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: &FheUint32) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<&FheUint<FheUint40Id>> for u64

Source§

type Output = FheUint<FheUint40Id>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: &FheUint40) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<&FheUint<FheUint40Id>> for &u64

Source§

type Output = FheUint<FheUint40Id>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: &FheUint40) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<&FheUint<FheUint48Id>> for u64

Source§

type Output = FheUint<FheUint48Id>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: &FheUint48) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<&FheUint<FheUint48Id>> for &u64

Source§

type Output = FheUint<FheUint48Id>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: &FheUint48) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<&FheUint<FheUint56Id>> for u64

Source§

type Output = FheUint<FheUint56Id>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: &FheUint56) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<&FheUint<FheUint56Id>> for &u64

Source§

type Output = FheUint<FheUint56Id>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: &FheUint56) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<&FheUint<FheUint64Id>> for u64

Source§

type Output = FheUint<FheUint64Id>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: &FheUint64) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<&FheUint<FheUint64Id>> for &u64

Source§

type Output = FheUint<FheUint64Id>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: &FheUint64) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<&FheUint<FheUint72Id>> for u128

Source§

type Output = FheUint<FheUint72Id>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: &FheUint72) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<&FheUint<FheUint72Id>> for &u128

Source§

type Output = FheUint<FheUint72Id>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: &FheUint72) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<&FheUint<FheUint80Id>> for u128

Source§

type Output = FheUint<FheUint80Id>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: &FheUint80) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<&FheUint<FheUint80Id>> for &u128

Source§

type Output = FheUint<FheUint80Id>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: &FheUint80) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<&FheUint<FheUint88Id>> for u128

Source§

type Output = FheUint<FheUint88Id>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: &FheUint88) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<&FheUint<FheUint88Id>> for &u128

Source§

type Output = FheUint<FheUint88Id>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: &FheUint88) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<&FheUint<FheUint96Id>> for u128

Source§

type Output = FheUint<FheUint96Id>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: &FheUint96) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<&FheUint<FheUint96Id>> for &u128

Source§

type Output = FheUint<FheUint96Id>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: &FheUint96) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<&FheUint<FheUint104Id>> for u128

Source§

type Output = FheUint<FheUint104Id>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: &FheUint104) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<&FheUint<FheUint104Id>> for &u128

Source§

type Output = FheUint<FheUint104Id>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: &FheUint104) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<&FheUint<FheUint112Id>> for u128

Source§

type Output = FheUint<FheUint112Id>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: &FheUint112) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<&FheUint<FheUint112Id>> for &u128

Source§

type Output = FheUint<FheUint112Id>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: &FheUint112) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<&FheUint<FheUint120Id>> for u128

Source§

type Output = FheUint<FheUint120Id>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: &FheUint120) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<&FheUint<FheUint120Id>> for &u128

Source§

type Output = FheUint<FheUint120Id>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: &FheUint120) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<&FheUint<FheUint128Id>> for u128

Source§

type Output = FheUint<FheUint128Id>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: &FheUint128) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<&FheUint<FheUint128Id>> for &u128

Source§

type Output = FheUint<FheUint128Id>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: &FheUint128) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<&FheUint<FheUint136Id>> for U256

Source§

type Output = FheUint<FheUint136Id>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: &FheUint136) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<&FheUint<FheUint136Id>> for &U256

Source§

type Output = FheUint<FheUint136Id>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: &FheUint136) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<&FheUint<FheUint144Id>> for U256

Source§

type Output = FheUint<FheUint144Id>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: &FheUint144) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<&FheUint<FheUint144Id>> for &U256

Source§

type Output = FheUint<FheUint144Id>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: &FheUint144) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<&FheUint<FheUint152Id>> for U256

Source§

type Output = FheUint<FheUint152Id>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: &FheUint152) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<&FheUint<FheUint152Id>> for &U256

Source§

type Output = FheUint<FheUint152Id>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: &FheUint152) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<&FheUint<FheUint160Id>> for U256

Source§

type Output = FheUint<FheUint160Id>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: &FheUint160) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<&FheUint<FheUint160Id>> for &U256

Source§

type Output = FheUint<FheUint160Id>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: &FheUint160) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<&FheUint<FheUint168Id>> for U256

Source§

type Output = FheUint<FheUint168Id>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: &FheUint168) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<&FheUint<FheUint168Id>> for &U256

Source§

type Output = FheUint<FheUint168Id>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: &FheUint168) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<&FheUint<FheUint176Id>> for U256

Source§

type Output = FheUint<FheUint176Id>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: &FheUint176) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<&FheUint<FheUint176Id>> for &U256

Source§

type Output = FheUint<FheUint176Id>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: &FheUint176) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<&FheUint<FheUint184Id>> for U256

Source§

type Output = FheUint<FheUint184Id>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: &FheUint184) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<&FheUint<FheUint184Id>> for &U256

Source§

type Output = FheUint<FheUint184Id>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: &FheUint184) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<&FheUint<FheUint192Id>> for U256

Source§

type Output = FheUint<FheUint192Id>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: &FheUint192) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<&FheUint<FheUint192Id>> for &U256

Source§

type Output = FheUint<FheUint192Id>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: &FheUint192) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<&FheUint<FheUint200Id>> for U256

Source§

type Output = FheUint<FheUint200Id>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: &FheUint200) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<&FheUint<FheUint200Id>> for &U256

Source§

type Output = FheUint<FheUint200Id>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: &FheUint200) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<&FheUint<FheUint208Id>> for U256

Source§

type Output = FheUint<FheUint208Id>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: &FheUint208) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<&FheUint<FheUint208Id>> for &U256

Source§

type Output = FheUint<FheUint208Id>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: &FheUint208) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<&FheUint<FheUint216Id>> for U256

Source§

type Output = FheUint<FheUint216Id>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: &FheUint216) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<&FheUint<FheUint216Id>> for &U256

Source§

type Output = FheUint<FheUint216Id>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: &FheUint216) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<&FheUint<FheUint224Id>> for U256

Source§

type Output = FheUint<FheUint224Id>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: &FheUint224) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<&FheUint<FheUint224Id>> for &U256

Source§

type Output = FheUint<FheUint224Id>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: &FheUint224) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<&FheUint<FheUint232Id>> for U256

Source§

type Output = FheUint<FheUint232Id>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: &FheUint232) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<&FheUint<FheUint232Id>> for &U256

Source§

type Output = FheUint<FheUint232Id>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: &FheUint232) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<&FheUint<FheUint240Id>> for U256

Source§

type Output = FheUint<FheUint240Id>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: &FheUint240) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<&FheUint<FheUint240Id>> for &U256

Source§

type Output = FheUint<FheUint240Id>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: &FheUint240) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<&FheUint<FheUint248Id>> for U256

Source§

type Output = FheUint<FheUint248Id>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: &FheUint248) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<&FheUint<FheUint248Id>> for &U256

Source§

type Output = FheUint<FheUint248Id>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: &FheUint248) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<&FheUint<FheUint256Id>> for U256

Source§

type Output = FheUint<FheUint256Id>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: &FheUint256) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<&FheUint<FheUint256Id>> for &U256

Source§

type Output = FheUint<FheUint256Id>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: &FheUint256) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<&FheUint<FheUint512Id>> for U512

Source§

type Output = FheUint<FheUint512Id>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: &FheUint512) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<&FheUint<FheUint512Id>> for &U512

Source§

type Output = FheUint<FheUint512Id>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: &FheUint512) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<&FheUint<FheUint1024Id>> for U1024

Source§

type Output = FheUint<FheUint1024Id>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: &FheUint1024) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<&FheUint<FheUint1024Id>> for &U1024

Source§

type Output = FheUint<FheUint1024Id>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: &FheUint1024) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<&FheUint<FheUint2048Id>> for U2048

Source§

type Output = FheUint<FheUint2048Id>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: &FheUint2048) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<&FheUint<FheUint2048Id>> for &U2048

Source§

type Output = FheUint<FheUint2048Id>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: &FheUint2048) -> Self::Output

Performs the + operation. Read more
Source§

impl<Id, B> Add<B> for FheUint<Id>
where Id: FheUintId, B: Borrow<Self>,

Source§

type Output = FheUint<Id>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: B) -> Self::Output

Performs the + operation. Read more
Source§

impl<Id, B> Add<B> for &FheUint<Id>
where Id: FheUintId, B: Borrow<FheUint<Id>>,

Source§

fn add(self, rhs: B) -> Self::Output

Adds two FheUint

The operation is modular, i.e on overflow it wraps around.

§Example
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);
Source§

type Output = FheUint<Id>

The resulting type after applying the + operator.
Source§

impl Add<FheUint<FheUint2Id>> for u8

Source§

type Output = FheUint<FheUint2Id>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: FheUint2) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<FheUint<FheUint2Id>> for &u8

Source§

type Output = FheUint<FheUint2Id>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: FheUint2) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<FheUint<FheUint4Id>> for u8

Source§

type Output = FheUint<FheUint4Id>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: FheUint4) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<FheUint<FheUint4Id>> for &u8

Source§

type Output = FheUint<FheUint4Id>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: FheUint4) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<FheUint<FheUint6Id>> for u8

Source§

type Output = FheUint<FheUint6Id>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: FheUint6) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<FheUint<FheUint6Id>> for &u8

Source§

type Output = FheUint<FheUint6Id>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: FheUint6) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<FheUint<FheUint8Id>> for u8

Source§

type Output = FheUint<FheUint8Id>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: FheUint8) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<FheUint<FheUint8Id>> for &u8

Source§

type Output = FheUint<FheUint8Id>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: FheUint8) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<FheUint<FheUint10Id>> for u16

Source§

type Output = FheUint<FheUint10Id>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: FheUint10) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<FheUint<FheUint10Id>> for &u16

Source§

type Output = FheUint<FheUint10Id>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: FheUint10) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<FheUint<FheUint12Id>> for u16

Source§

type Output = FheUint<FheUint12Id>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: FheUint12) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<FheUint<FheUint12Id>> for &u16

Source§

type Output = FheUint<FheUint12Id>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: FheUint12) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<FheUint<FheUint14Id>> for u16

Source§

type Output = FheUint<FheUint14Id>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: FheUint14) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<FheUint<FheUint14Id>> for &u16

Source§

type Output = FheUint<FheUint14Id>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: FheUint14) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<FheUint<FheUint16Id>> for u16

Source§

type Output = FheUint<FheUint16Id>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: FheUint16) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<FheUint<FheUint16Id>> for &u16

Source§

type Output = FheUint<FheUint16Id>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: FheUint16) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<FheUint<FheUint24Id>> for u32

Source§

type Output = FheUint<FheUint24Id>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: FheUint24) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<FheUint<FheUint24Id>> for &u32

Source§

type Output = FheUint<FheUint24Id>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: FheUint24) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<FheUint<FheUint32Id>> for u32

Source§

type Output = FheUint<FheUint32Id>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: FheUint32) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<FheUint<FheUint32Id>> for &u32

Source§

type Output = FheUint<FheUint32Id>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: FheUint32) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<FheUint<FheUint40Id>> for u64

Source§

type Output = FheUint<FheUint40Id>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: FheUint40) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<FheUint<FheUint40Id>> for &u64

Source§

type Output = FheUint<FheUint40Id>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: FheUint40) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<FheUint<FheUint48Id>> for u64

Source§

type Output = FheUint<FheUint48Id>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: FheUint48) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<FheUint<FheUint48Id>> for &u64

Source§

type Output = FheUint<FheUint48Id>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: FheUint48) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<FheUint<FheUint56Id>> for u64

Source§

type Output = FheUint<FheUint56Id>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: FheUint56) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<FheUint<FheUint56Id>> for &u64

Source§

type Output = FheUint<FheUint56Id>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: FheUint56) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<FheUint<FheUint64Id>> for u64

Source§

type Output = FheUint<FheUint64Id>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: FheUint64) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<FheUint<FheUint64Id>> for &u64

Source§

type Output = FheUint<FheUint64Id>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: FheUint64) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<FheUint<FheUint72Id>> for u128

Source§

type Output = FheUint<FheUint72Id>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: FheUint72) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<FheUint<FheUint72Id>> for &u128

Source§

type Output = FheUint<FheUint72Id>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: FheUint72) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<FheUint<FheUint80Id>> for u128

Source§

type Output = FheUint<FheUint80Id>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: FheUint80) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<FheUint<FheUint80Id>> for &u128

Source§

type Output = FheUint<FheUint80Id>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: FheUint80) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<FheUint<FheUint88Id>> for u128

Source§

type Output = FheUint<FheUint88Id>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: FheUint88) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<FheUint<FheUint88Id>> for &u128

Source§

type Output = FheUint<FheUint88Id>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: FheUint88) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<FheUint<FheUint96Id>> for u128

Source§

type Output = FheUint<FheUint96Id>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: FheUint96) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<FheUint<FheUint96Id>> for &u128

Source§

type Output = FheUint<FheUint96Id>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: FheUint96) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<FheUint<FheUint104Id>> for u128

Source§

type Output = FheUint<FheUint104Id>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: FheUint104) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<FheUint<FheUint104Id>> for &u128

Source§

type Output = FheUint<FheUint104Id>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: FheUint104) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<FheUint<FheUint112Id>> for u128

Source§

type Output = FheUint<FheUint112Id>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: FheUint112) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<FheUint<FheUint112Id>> for &u128

Source§

type Output = FheUint<FheUint112Id>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: FheUint112) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<FheUint<FheUint120Id>> for u128

Source§

type Output = FheUint<FheUint120Id>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: FheUint120) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<FheUint<FheUint120Id>> for &u128

Source§

type Output = FheUint<FheUint120Id>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: FheUint120) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<FheUint<FheUint128Id>> for u128

Source§

type Output = FheUint<FheUint128Id>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: FheUint128) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<FheUint<FheUint128Id>> for &u128

Source§

type Output = FheUint<FheUint128Id>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: FheUint128) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<FheUint<FheUint136Id>> for U256

Source§

type Output = FheUint<FheUint136Id>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: FheUint136) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<FheUint<FheUint136Id>> for &U256

Source§

type Output = FheUint<FheUint136Id>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: FheUint136) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<FheUint<FheUint144Id>> for U256

Source§

type Output = FheUint<FheUint144Id>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: FheUint144) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<FheUint<FheUint144Id>> for &U256

Source§

type Output = FheUint<FheUint144Id>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: FheUint144) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<FheUint<FheUint152Id>> for U256

Source§

type Output = FheUint<FheUint152Id>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: FheUint152) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<FheUint<FheUint152Id>> for &U256

Source§

type Output = FheUint<FheUint152Id>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: FheUint152) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<FheUint<FheUint160Id>> for U256

Source§

type Output = FheUint<FheUint160Id>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: FheUint160) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<FheUint<FheUint160Id>> for &U256

Source§

type Output = FheUint<FheUint160Id>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: FheUint160) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<FheUint<FheUint168Id>> for U256

Source§

type Output = FheUint<FheUint168Id>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: FheUint168) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<FheUint<FheUint168Id>> for &U256

Source§

type Output = FheUint<FheUint168Id>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: FheUint168) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<FheUint<FheUint176Id>> for U256

Source§

type Output = FheUint<FheUint176Id>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: FheUint176) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<FheUint<FheUint176Id>> for &U256

Source§

type Output = FheUint<FheUint176Id>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: FheUint176) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<FheUint<FheUint184Id>> for U256

Source§

type Output = FheUint<FheUint184Id>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: FheUint184) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<FheUint<FheUint184Id>> for &U256

Source§

type Output = FheUint<FheUint184Id>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: FheUint184) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<FheUint<FheUint192Id>> for U256

Source§

type Output = FheUint<FheUint192Id>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: FheUint192) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<FheUint<FheUint192Id>> for &U256

Source§

type Output = FheUint<FheUint192Id>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: FheUint192) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<FheUint<FheUint200Id>> for U256

Source§

type Output = FheUint<FheUint200Id>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: FheUint200) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<FheUint<FheUint200Id>> for &U256

Source§

type Output = FheUint<FheUint200Id>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: FheUint200) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<FheUint<FheUint208Id>> for U256

Source§

type Output = FheUint<FheUint208Id>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: FheUint208) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<FheUint<FheUint208Id>> for &U256

Source§

type Output = FheUint<FheUint208Id>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: FheUint208) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<FheUint<FheUint216Id>> for U256

Source§

type Output = FheUint<FheUint216Id>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: FheUint216) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<FheUint<FheUint216Id>> for &U256

Source§

type Output = FheUint<FheUint216Id>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: FheUint216) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<FheUint<FheUint224Id>> for U256

Source§

type Output = FheUint<FheUint224Id>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: FheUint224) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<FheUint<FheUint224Id>> for &U256

Source§

type Output = FheUint<FheUint224Id>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: FheUint224) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<FheUint<FheUint232Id>> for U256

Source§

type Output = FheUint<FheUint232Id>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: FheUint232) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<FheUint<FheUint232Id>> for &U256

Source§

type Output = FheUint<FheUint232Id>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: FheUint232) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<FheUint<FheUint240Id>> for U256

Source§

type Output = FheUint<FheUint240Id>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: FheUint240) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<FheUint<FheUint240Id>> for &U256

Source§

type Output = FheUint<FheUint240Id>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: FheUint240) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<FheUint<FheUint248Id>> for U256

Source§

type Output = FheUint<FheUint248Id>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: FheUint248) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<FheUint<FheUint248Id>> for &U256

Source§

type Output = FheUint<FheUint248Id>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: FheUint248) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<FheUint<FheUint256Id>> for U256

Source§

type Output = FheUint<FheUint256Id>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: FheUint256) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<FheUint<FheUint256Id>> for &U256

Source§

type Output = FheUint<FheUint256Id>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: FheUint256) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<FheUint<FheUint512Id>> for U512

Source§

type Output = FheUint<FheUint512Id>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: FheUint512) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<FheUint<FheUint512Id>> for &U512

Source§

type Output = FheUint<FheUint512Id>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: FheUint512) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<FheUint<FheUint1024Id>> for U1024

Source§

type Output = FheUint<FheUint1024Id>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: FheUint1024) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<FheUint<FheUint1024Id>> for &U1024

Source§

type Output = FheUint<FheUint1024Id>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: FheUint1024) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<FheUint<FheUint2048Id>> for U2048

Source§

type Output = FheUint<FheUint2048Id>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: FheUint2048) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<FheUint<FheUint2048Id>> for &U2048

Source§

type Output = FheUint<FheUint2048Id>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: FheUint2048) -> Self::Output

Performs the + operation. Read more
Source§

impl<Id, I> AddAssign<I> for FheUint<Id>
where Id: FheUintId, I: Borrow<Self>,

Source§

fn add_assign(&mut self, rhs: I)

Performs the += operation on FheUint

The operation is modular, i.e on overflow it wraps around.

§Example
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);
let b = FheUint16::encrypt(37849u16, &client_key);

a += &b;
let result: u16 = a.decrypt(&client_key);
assert_eq!(result, 3u16.wrapping_add(37849u16));
Source§

impl AddSizeOnGpu<&FheUint<FheUint2Id>> for u8

Source§

impl AddSizeOnGpu<&FheUint<FheUint4Id>> for u8

Source§

impl AddSizeOnGpu<&FheUint<FheUint6Id>> for u8

Source§

impl AddSizeOnGpu<&FheUint<FheUint8Id>> for u8

Source§

impl AddSizeOnGpu<&FheUint<FheUint10Id>> for u16

Source§

impl AddSizeOnGpu<&FheUint<FheUint12Id>> for u16

Source§

impl AddSizeOnGpu<&FheUint<FheUint14Id>> for u16

Source§

impl AddSizeOnGpu<&FheUint<FheUint16Id>> for u16

Source§

impl AddSizeOnGpu<&FheUint<FheUint24Id>> for u32

Source§

impl AddSizeOnGpu<&FheUint<FheUint32Id>> for u32

Source§

impl AddSizeOnGpu<&FheUint<FheUint40Id>> for u64

Source§

impl AddSizeOnGpu<&FheUint<FheUint48Id>> for u64

Source§

impl AddSizeOnGpu<&FheUint<FheUint56Id>> for u64

Source§

impl AddSizeOnGpu<&FheUint<FheUint64Id>> for u64

Source§

impl AddSizeOnGpu<&FheUint<FheUint72Id>> for u128

Source§

impl AddSizeOnGpu<&FheUint<FheUint80Id>> for u128

Source§

impl AddSizeOnGpu<&FheUint<FheUint88Id>> for u128

Source§

impl AddSizeOnGpu<&FheUint<FheUint96Id>> for u128

Source§

impl AddSizeOnGpu<&FheUint<FheUint104Id>> for u128

Source§

impl AddSizeOnGpu<&FheUint<FheUint112Id>> for u128

Source§

impl AddSizeOnGpu<&FheUint<FheUint120Id>> for u128

Source§

impl AddSizeOnGpu<&FheUint<FheUint128Id>> for u128

Source§

impl AddSizeOnGpu<&FheUint<FheUint136Id>> for U256

Source§

impl AddSizeOnGpu<&FheUint<FheUint144Id>> for U256

Source§

impl AddSizeOnGpu<&FheUint<FheUint152Id>> for U256

Source§

impl AddSizeOnGpu<&FheUint<FheUint160Id>> for U256

Source§

impl AddSizeOnGpu<&FheUint<FheUint168Id>> for U256

Source§

impl AddSizeOnGpu<&FheUint<FheUint176Id>> for U256

Source§

impl AddSizeOnGpu<&FheUint<FheUint184Id>> for U256

Source§

impl AddSizeOnGpu<&FheUint<FheUint192Id>> for U256

Source§

impl AddSizeOnGpu<&FheUint<FheUint200Id>> for U256

Source§

impl AddSizeOnGpu<&FheUint<FheUint208Id>> for U256

Source§

impl AddSizeOnGpu<&FheUint<FheUint216Id>> for U256

Source§

impl AddSizeOnGpu<&FheUint<FheUint224Id>> for U256

Source§

impl AddSizeOnGpu<&FheUint<FheUint232Id>> for U256

Source§

impl AddSizeOnGpu<&FheUint<FheUint240Id>> for U256

Source§

impl AddSizeOnGpu<&FheUint<FheUint248Id>> for U256

Source§

impl AddSizeOnGpu<&FheUint<FheUint256Id>> for U256

Source§

impl AddSizeOnGpu<&FheUint<FheUint512Id>> for U512

Source§

impl AddSizeOnGpu<&FheUint<FheUint1024Id>> for U1024

Source§

impl AddSizeOnGpu<&FheUint<FheUint2048Id>> for U2048

Source§

impl AddSizeOnGpu<FheUint<FheUint2Id>> for u8

Source§

impl AddSizeOnGpu<FheUint<FheUint4Id>> for u8

Source§

impl AddSizeOnGpu<FheUint<FheUint6Id>> for u8

Source§

impl AddSizeOnGpu<FheUint<FheUint8Id>> for u8

Source§

impl AddSizeOnGpu<FheUint<FheUint10Id>> for u16

Source§

impl AddSizeOnGpu<FheUint<FheUint12Id>> for u16

Source§

impl AddSizeOnGpu<FheUint<FheUint14Id>> for u16

Source§

impl AddSizeOnGpu<FheUint<FheUint16Id>> for u16

Source§

impl AddSizeOnGpu<FheUint<FheUint24Id>> for u32

Source§

impl AddSizeOnGpu<FheUint<FheUint32Id>> for u32

Source§

impl AddSizeOnGpu<FheUint<FheUint40Id>> for u64

Source§

impl AddSizeOnGpu<FheUint<FheUint48Id>> for u64

Source§

impl AddSizeOnGpu<FheUint<FheUint56Id>> for u64

Source§

impl AddSizeOnGpu<FheUint<FheUint64Id>> for u64

Source§

impl AddSizeOnGpu<FheUint<FheUint72Id>> for u128

Source§

impl AddSizeOnGpu<FheUint<FheUint80Id>> for u128

Source§

impl AddSizeOnGpu<FheUint<FheUint88Id>> for u128

Source§

impl AddSizeOnGpu<FheUint<FheUint96Id>> for u128

Source§

impl AddSizeOnGpu<FheUint<FheUint104Id>> for u128

Source§

impl AddSizeOnGpu<FheUint<FheUint112Id>> for u128

Source§

impl AddSizeOnGpu<FheUint<FheUint120Id>> for u128

Source§

impl AddSizeOnGpu<FheUint<FheUint128Id>> for u128

Source§

impl AddSizeOnGpu<FheUint<FheUint136Id>> for U256

Source§

impl AddSizeOnGpu<FheUint<FheUint144Id>> for U256

Source§

impl AddSizeOnGpu<FheUint<FheUint152Id>> for U256

Source§

impl AddSizeOnGpu<FheUint<FheUint160Id>> for U256

Source§

impl AddSizeOnGpu<FheUint<FheUint168Id>> for U256

Source§

impl AddSizeOnGpu<FheUint<FheUint176Id>> for U256

Source§

impl AddSizeOnGpu<FheUint<FheUint184Id>> for U256

Source§

impl AddSizeOnGpu<FheUint<FheUint192Id>> for U256

Source§

impl AddSizeOnGpu<FheUint<FheUint200Id>> for U256

Source§

impl AddSizeOnGpu<FheUint<FheUint208Id>> for U256

Source§

impl AddSizeOnGpu<FheUint<FheUint216Id>> for U256

Source§

impl AddSizeOnGpu<FheUint<FheUint224Id>> for U256

Source§

impl AddSizeOnGpu<FheUint<FheUint232Id>> for U256

Source§

impl AddSizeOnGpu<FheUint<FheUint240Id>> for U256

Source§

impl AddSizeOnGpu<FheUint<FheUint248Id>> for U256

Source§

impl AddSizeOnGpu<FheUint<FheUint256Id>> for U256

Source§

impl AddSizeOnGpu<FheUint<FheUint512Id>> for U512

Source§

impl AddSizeOnGpu<FheUint<FheUint1024Id>> for U1024

Source§

impl AddSizeOnGpu<FheUint<FheUint2048Id>> for U2048

Source§

impl<Id, I> AddSizeOnGpu<I> for FheUint<Id>
where Id: FheUintId, I: Borrow<Self>,

Available on crate feature gpu only.
Source§

fn get_add_size_on_gpu(&self, rhs: I) -> u64

Source§

impl BitAnd<&FheUint<FheUint2Id>> for u8

Source§

type Output = FheUint<FheUint2Id>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: &FheUint2) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAnd<&FheUint<FheUint2Id>> for &u8

Source§

type Output = FheUint<FheUint2Id>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: &FheUint2) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAnd<&FheUint<FheUint4Id>> for u8

Source§

type Output = FheUint<FheUint4Id>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: &FheUint4) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAnd<&FheUint<FheUint4Id>> for &u8

Source§

type Output = FheUint<FheUint4Id>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: &FheUint4) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAnd<&FheUint<FheUint6Id>> for u8

Source§

type Output = FheUint<FheUint6Id>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: &FheUint6) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAnd<&FheUint<FheUint6Id>> for &u8

Source§

type Output = FheUint<FheUint6Id>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: &FheUint6) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAnd<&FheUint<FheUint8Id>> for u8

Source§

type Output = FheUint<FheUint8Id>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: &FheUint8) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAnd<&FheUint<FheUint8Id>> for &u8

Source§

type Output = FheUint<FheUint8Id>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: &FheUint8) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAnd<&FheUint<FheUint10Id>> for u16

Source§

type Output = FheUint<FheUint10Id>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: &FheUint10) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAnd<&FheUint<FheUint10Id>> for &u16

Source§

type Output = FheUint<FheUint10Id>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: &FheUint10) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAnd<&FheUint<FheUint12Id>> for u16

Source§

type Output = FheUint<FheUint12Id>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: &FheUint12) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAnd<&FheUint<FheUint12Id>> for &u16

Source§

type Output = FheUint<FheUint12Id>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: &FheUint12) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAnd<&FheUint<FheUint14Id>> for u16

Source§

type Output = FheUint<FheUint14Id>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: &FheUint14) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAnd<&FheUint<FheUint14Id>> for &u16

Source§

type Output = FheUint<FheUint14Id>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: &FheUint14) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAnd<&FheUint<FheUint16Id>> for u16

Source§

type Output = FheUint<FheUint16Id>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: &FheUint16) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAnd<&FheUint<FheUint16Id>> for &u16

Source§

type Output = FheUint<FheUint16Id>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: &FheUint16) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAnd<&FheUint<FheUint24Id>> for u32

Source§

type Output = FheUint<FheUint24Id>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: &FheUint24) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAnd<&FheUint<FheUint24Id>> for &u32

Source§

type Output = FheUint<FheUint24Id>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: &FheUint24) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAnd<&FheUint<FheUint32Id>> for u32

Source§

type Output = FheUint<FheUint32Id>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: &FheUint32) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAnd<&FheUint<FheUint32Id>> for &u32

Source§

type Output = FheUint<FheUint32Id>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: &FheUint32) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAnd<&FheUint<FheUint40Id>> for u64

Source§

type Output = FheUint<FheUint40Id>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: &FheUint40) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAnd<&FheUint<FheUint40Id>> for &u64

Source§

type Output = FheUint<FheUint40Id>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: &FheUint40) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAnd<&FheUint<FheUint48Id>> for u64

Source§

type Output = FheUint<FheUint48Id>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: &FheUint48) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAnd<&FheUint<FheUint48Id>> for &u64

Source§

type Output = FheUint<FheUint48Id>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: &FheUint48) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAnd<&FheUint<FheUint56Id>> for u64

Source§

type Output = FheUint<FheUint56Id>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: &FheUint56) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAnd<&FheUint<FheUint56Id>> for &u64

Source§

type Output = FheUint<FheUint56Id>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: &FheUint56) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAnd<&FheUint<FheUint64Id>> for u64

Source§

type Output = FheUint<FheUint64Id>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: &FheUint64) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAnd<&FheUint<FheUint64Id>> for &u64

Source§

type Output = FheUint<FheUint64Id>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: &FheUint64) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAnd<&FheUint<FheUint72Id>> for u128

Source§

type Output = FheUint<FheUint72Id>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: &FheUint72) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAnd<&FheUint<FheUint72Id>> for &u128

Source§

type Output = FheUint<FheUint72Id>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: &FheUint72) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAnd<&FheUint<FheUint80Id>> for u128

Source§

type Output = FheUint<FheUint80Id>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: &FheUint80) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAnd<&FheUint<FheUint80Id>> for &u128

Source§

type Output = FheUint<FheUint80Id>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: &FheUint80) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAnd<&FheUint<FheUint88Id>> for u128

Source§

type Output = FheUint<FheUint88Id>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: &FheUint88) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAnd<&FheUint<FheUint88Id>> for &u128

Source§

type Output = FheUint<FheUint88Id>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: &FheUint88) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAnd<&FheUint<FheUint96Id>> for u128

Source§

type Output = FheUint<FheUint96Id>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: &FheUint96) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAnd<&FheUint<FheUint96Id>> for &u128

Source§

type Output = FheUint<FheUint96Id>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: &FheUint96) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAnd<&FheUint<FheUint104Id>> for u128

Source§

type Output = FheUint<FheUint104Id>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: &FheUint104) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAnd<&FheUint<FheUint104Id>> for &u128

Source§

type Output = FheUint<FheUint104Id>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: &FheUint104) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAnd<&FheUint<FheUint112Id>> for u128

Source§

type Output = FheUint<FheUint112Id>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: &FheUint112) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAnd<&FheUint<FheUint112Id>> for &u128

Source§

type Output = FheUint<FheUint112Id>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: &FheUint112) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAnd<&FheUint<FheUint120Id>> for u128

Source§

type Output = FheUint<FheUint120Id>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: &FheUint120) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAnd<&FheUint<FheUint120Id>> for &u128

Source§

type Output = FheUint<FheUint120Id>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: &FheUint120) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAnd<&FheUint<FheUint128Id>> for u128

Source§

type Output = FheUint<FheUint128Id>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: &FheUint128) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAnd<&FheUint<FheUint128Id>> for &u128

Source§

type Output = FheUint<FheUint128Id>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: &FheUint128) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAnd<&FheUint<FheUint136Id>> for U256

Source§

type Output = FheUint<FheUint136Id>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: &FheUint136) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAnd<&FheUint<FheUint136Id>> for &U256

Source§

type Output = FheUint<FheUint136Id>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: &FheUint136) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAnd<&FheUint<FheUint144Id>> for U256

Source§

type Output = FheUint<FheUint144Id>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: &FheUint144) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAnd<&FheUint<FheUint144Id>> for &U256

Source§

type Output = FheUint<FheUint144Id>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: &FheUint144) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAnd<&FheUint<FheUint152Id>> for U256

Source§

type Output = FheUint<FheUint152Id>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: &FheUint152) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAnd<&FheUint<FheUint152Id>> for &U256

Source§

type Output = FheUint<FheUint152Id>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: &FheUint152) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAnd<&FheUint<FheUint160Id>> for U256

Source§

type Output = FheUint<FheUint160Id>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: &FheUint160) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAnd<&FheUint<FheUint160Id>> for &U256

Source§

type Output = FheUint<FheUint160Id>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: &FheUint160) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAnd<&FheUint<FheUint168Id>> for U256

Source§

type Output = FheUint<FheUint168Id>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: &FheUint168) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAnd<&FheUint<FheUint168Id>> for &U256

Source§

type Output = FheUint<FheUint168Id>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: &FheUint168) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAnd<&FheUint<FheUint176Id>> for U256

Source§

type Output = FheUint<FheUint176Id>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: &FheUint176) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAnd<&FheUint<FheUint176Id>> for &U256

Source§

type Output = FheUint<FheUint176Id>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: &FheUint176) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAnd<&FheUint<FheUint184Id>> for U256

Source§

type Output = FheUint<FheUint184Id>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: &FheUint184) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAnd<&FheUint<FheUint184Id>> for &U256

Source§

type Output = FheUint<FheUint184Id>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: &FheUint184) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAnd<&FheUint<FheUint192Id>> for U256

Source§

type Output = FheUint<FheUint192Id>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: &FheUint192) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAnd<&FheUint<FheUint192Id>> for &U256

Source§

type Output = FheUint<FheUint192Id>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: &FheUint192) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAnd<&FheUint<FheUint200Id>> for U256

Source§

type Output = FheUint<FheUint200Id>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: &FheUint200) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAnd<&FheUint<FheUint200Id>> for &U256

Source§

type Output = FheUint<FheUint200Id>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: &FheUint200) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAnd<&FheUint<FheUint208Id>> for U256

Source§

type Output = FheUint<FheUint208Id>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: &FheUint208) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAnd<&FheUint<FheUint208Id>> for &U256

Source§

type Output = FheUint<FheUint208Id>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: &FheUint208) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAnd<&FheUint<FheUint216Id>> for U256

Source§

type Output = FheUint<FheUint216Id>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: &FheUint216) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAnd<&FheUint<FheUint216Id>> for &U256

Source§

type Output = FheUint<FheUint216Id>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: &FheUint216) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAnd<&FheUint<FheUint224Id>> for U256

Source§

type Output = FheUint<FheUint224Id>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: &FheUint224) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAnd<&FheUint<FheUint224Id>> for &U256

Source§

type Output = FheUint<FheUint224Id>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: &FheUint224) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAnd<&FheUint<FheUint232Id>> for U256

Source§

type Output = FheUint<FheUint232Id>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: &FheUint232) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAnd<&FheUint<FheUint232Id>> for &U256

Source§

type Output = FheUint<FheUint232Id>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: &FheUint232) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAnd<&FheUint<FheUint240Id>> for U256

Source§

type Output = FheUint<FheUint240Id>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: &FheUint240) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAnd<&FheUint<FheUint240Id>> for &U256

Source§

type Output = FheUint<FheUint240Id>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: &FheUint240) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAnd<&FheUint<FheUint248Id>> for U256

Source§

type Output = FheUint<FheUint248Id>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: &FheUint248) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAnd<&FheUint<FheUint248Id>> for &U256

Source§

type Output = FheUint<FheUint248Id>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: &FheUint248) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAnd<&FheUint<FheUint256Id>> for U256

Source§

type Output = FheUint<FheUint256Id>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: &FheUint256) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAnd<&FheUint<FheUint256Id>> for &U256

Source§

type Output = FheUint<FheUint256Id>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: &FheUint256) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAnd<&FheUint<FheUint512Id>> for U512

Source§

type Output = FheUint<FheUint512Id>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: &FheUint512) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAnd<&FheUint<FheUint512Id>> for &U512

Source§

type Output = FheUint<FheUint512Id>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: &FheUint512) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAnd<&FheUint<FheUint1024Id>> for U1024

Source§

type Output = FheUint<FheUint1024Id>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: &FheUint1024) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAnd<&FheUint<FheUint1024Id>> for &U1024

Source§

type Output = FheUint<FheUint1024Id>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: &FheUint1024) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAnd<&FheUint<FheUint2048Id>> for U2048

Source§

type Output = FheUint<FheUint2048Id>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: &FheUint2048) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAnd<&FheUint<FheUint2048Id>> for &U2048

Source§

type Output = FheUint<FheUint2048Id>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: &FheUint2048) -> Self::Output

Performs the & operation. Read more
Source§

impl<Id, B> BitAnd<B> for FheUint<Id>
where Id: FheUintId, B: Borrow<Self>,

Source§

type Output = FheUint<Id>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: B) -> Self::Output

Performs the & operation. Read more
Source§

impl<Id, B> BitAnd<B> for &FheUint<Id>
where Id: FheUintId, B: Borrow<FheUint<Id>>,

Source§

fn bitand(self, rhs: B) -> Self::Output

Performs a bitwise ‘and’ between two FheUint

§Example
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);
Source§

type Output = FheUint<Id>

The resulting type after applying the & operator.
Source§

impl BitAnd<FheUint<FheUint2Id>> for u8

Source§

type Output = FheUint<FheUint2Id>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: FheUint2) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAnd<FheUint<FheUint2Id>> for &u8

Source§

type Output = FheUint<FheUint2Id>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: FheUint2) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAnd<FheUint<FheUint4Id>> for u8

Source§

type Output = FheUint<FheUint4Id>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: FheUint4) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAnd<FheUint<FheUint4Id>> for &u8

Source§

type Output = FheUint<FheUint4Id>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: FheUint4) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAnd<FheUint<FheUint6Id>> for u8

Source§

type Output = FheUint<FheUint6Id>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: FheUint6) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAnd<FheUint<FheUint6Id>> for &u8

Source§

type Output = FheUint<FheUint6Id>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: FheUint6) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAnd<FheUint<FheUint8Id>> for u8

Source§

type Output = FheUint<FheUint8Id>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: FheUint8) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAnd<FheUint<FheUint8Id>> for &u8

Source§

type Output = FheUint<FheUint8Id>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: FheUint8) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAnd<FheUint<FheUint10Id>> for u16

Source§

type Output = FheUint<FheUint10Id>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: FheUint10) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAnd<FheUint<FheUint10Id>> for &u16

Source§

type Output = FheUint<FheUint10Id>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: FheUint10) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAnd<FheUint<FheUint12Id>> for u16

Source§

type Output = FheUint<FheUint12Id>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: FheUint12) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAnd<FheUint<FheUint12Id>> for &u16

Source§

type Output = FheUint<FheUint12Id>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: FheUint12) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAnd<FheUint<FheUint14Id>> for u16

Source§

type Output = FheUint<FheUint14Id>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: FheUint14) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAnd<FheUint<FheUint14Id>> for &u16

Source§

type Output = FheUint<FheUint14Id>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: FheUint14) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAnd<FheUint<FheUint16Id>> for u16

Source§

type Output = FheUint<FheUint16Id>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: FheUint16) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAnd<FheUint<FheUint16Id>> for &u16

Source§

type Output = FheUint<FheUint16Id>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: FheUint16) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAnd<FheUint<FheUint24Id>> for u32

Source§

type Output = FheUint<FheUint24Id>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: FheUint24) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAnd<FheUint<FheUint24Id>> for &u32

Source§

type Output = FheUint<FheUint24Id>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: FheUint24) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAnd<FheUint<FheUint32Id>> for u32

Source§

type Output = FheUint<FheUint32Id>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: FheUint32) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAnd<FheUint<FheUint32Id>> for &u32

Source§

type Output = FheUint<FheUint32Id>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: FheUint32) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAnd<FheUint<FheUint40Id>> for u64

Source§

type Output = FheUint<FheUint40Id>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: FheUint40) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAnd<FheUint<FheUint40Id>> for &u64

Source§

type Output = FheUint<FheUint40Id>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: FheUint40) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAnd<FheUint<FheUint48Id>> for u64

Source§

type Output = FheUint<FheUint48Id>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: FheUint48) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAnd<FheUint<FheUint48Id>> for &u64

Source§

type Output = FheUint<FheUint48Id>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: FheUint48) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAnd<FheUint<FheUint56Id>> for u64

Source§

type Output = FheUint<FheUint56Id>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: FheUint56) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAnd<FheUint<FheUint56Id>> for &u64

Source§

type Output = FheUint<FheUint56Id>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: FheUint56) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAnd<FheUint<FheUint64Id>> for u64

Source§

type Output = FheUint<FheUint64Id>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: FheUint64) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAnd<FheUint<FheUint64Id>> for &u64

Source§

type Output = FheUint<FheUint64Id>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: FheUint64) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAnd<FheUint<FheUint72Id>> for u128

Source§

type Output = FheUint<FheUint72Id>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: FheUint72) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAnd<FheUint<FheUint72Id>> for &u128

Source§

type Output = FheUint<FheUint72Id>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: FheUint72) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAnd<FheUint<FheUint80Id>> for u128

Source§

type Output = FheUint<FheUint80Id>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: FheUint80) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAnd<FheUint<FheUint80Id>> for &u128

Source§

type Output = FheUint<FheUint80Id>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: FheUint80) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAnd<FheUint<FheUint88Id>> for u128

Source§

type Output = FheUint<FheUint88Id>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: FheUint88) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAnd<FheUint<FheUint88Id>> for &u128

Source§

type Output = FheUint<FheUint88Id>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: FheUint88) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAnd<FheUint<FheUint96Id>> for u128

Source§

type Output = FheUint<FheUint96Id>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: FheUint96) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAnd<FheUint<FheUint96Id>> for &u128

Source§

type Output = FheUint<FheUint96Id>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: FheUint96) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAnd<FheUint<FheUint104Id>> for u128

Source§

type Output = FheUint<FheUint104Id>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: FheUint104) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAnd<FheUint<FheUint104Id>> for &u128

Source§

type Output = FheUint<FheUint104Id>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: FheUint104) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAnd<FheUint<FheUint112Id>> for u128

Source§

type Output = FheUint<FheUint112Id>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: FheUint112) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAnd<FheUint<FheUint112Id>> for &u128

Source§

type Output = FheUint<FheUint112Id>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: FheUint112) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAnd<FheUint<FheUint120Id>> for u128

Source§

type Output = FheUint<FheUint120Id>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: FheUint120) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAnd<FheUint<FheUint120Id>> for &u128

Source§

type Output = FheUint<FheUint120Id>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: FheUint120) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAnd<FheUint<FheUint128Id>> for u128

Source§

type Output = FheUint<FheUint128Id>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: FheUint128) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAnd<FheUint<FheUint128Id>> for &u128

Source§

type Output = FheUint<FheUint128Id>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: FheUint128) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAnd<FheUint<FheUint136Id>> for U256

Source§

type Output = FheUint<FheUint136Id>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: FheUint136) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAnd<FheUint<FheUint136Id>> for &U256

Source§

type Output = FheUint<FheUint136Id>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: FheUint136) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAnd<FheUint<FheUint144Id>> for U256

Source§

type Output = FheUint<FheUint144Id>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: FheUint144) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAnd<FheUint<FheUint144Id>> for &U256

Source§

type Output = FheUint<FheUint144Id>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: FheUint144) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAnd<FheUint<FheUint152Id>> for U256

Source§

type Output = FheUint<FheUint152Id>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: FheUint152) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAnd<FheUint<FheUint152Id>> for &U256

Source§

type Output = FheUint<FheUint152Id>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: FheUint152) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAnd<FheUint<FheUint160Id>> for U256

Source§

type Output = FheUint<FheUint160Id>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: FheUint160) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAnd<FheUint<FheUint160Id>> for &U256

Source§

type Output = FheUint<FheUint160Id>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: FheUint160) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAnd<FheUint<FheUint168Id>> for U256

Source§

type Output = FheUint<FheUint168Id>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: FheUint168) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAnd<FheUint<FheUint168Id>> for &U256

Source§

type Output = FheUint<FheUint168Id>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: FheUint168) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAnd<FheUint<FheUint176Id>> for U256

Source§

type Output = FheUint<FheUint176Id>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: FheUint176) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAnd<FheUint<FheUint176Id>> for &U256

Source§

type Output = FheUint<FheUint176Id>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: FheUint176) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAnd<FheUint<FheUint184Id>> for U256

Source§

type Output = FheUint<FheUint184Id>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: FheUint184) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAnd<FheUint<FheUint184Id>> for &U256

Source§

type Output = FheUint<FheUint184Id>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: FheUint184) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAnd<FheUint<FheUint192Id>> for U256

Source§

type Output = FheUint<FheUint192Id>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: FheUint192) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAnd<FheUint<FheUint192Id>> for &U256

Source§

type Output = FheUint<FheUint192Id>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: FheUint192) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAnd<FheUint<FheUint200Id>> for U256

Source§

type Output = FheUint<FheUint200Id>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: FheUint200) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAnd<FheUint<FheUint200Id>> for &U256

Source§

type Output = FheUint<FheUint200Id>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: FheUint200) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAnd<FheUint<FheUint208Id>> for U256

Source§

type Output = FheUint<FheUint208Id>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: FheUint208) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAnd<FheUint<FheUint208Id>> for &U256

Source§

type Output = FheUint<FheUint208Id>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: FheUint208) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAnd<FheUint<FheUint216Id>> for U256

Source§

type Output = FheUint<FheUint216Id>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: FheUint216) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAnd<FheUint<FheUint216Id>> for &U256

Source§

type Output = FheUint<FheUint216Id>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: FheUint216) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAnd<FheUint<FheUint224Id>> for U256

Source§

type Output = FheUint<FheUint224Id>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: FheUint224) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAnd<FheUint<FheUint224Id>> for &U256

Source§

type Output = FheUint<FheUint224Id>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: FheUint224) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAnd<FheUint<FheUint232Id>> for U256

Source§

type Output = FheUint<FheUint232Id>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: FheUint232) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAnd<FheUint<FheUint232Id>> for &U256

Source§

type Output = FheUint<FheUint232Id>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: FheUint232) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAnd<FheUint<FheUint240Id>> for U256

Source§

type Output = FheUint<FheUint240Id>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: FheUint240) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAnd<FheUint<FheUint240Id>> for &U256

Source§

type Output = FheUint<FheUint240Id>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: FheUint240) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAnd<FheUint<FheUint248Id>> for U256

Source§

type Output = FheUint<FheUint248Id>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: FheUint248) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAnd<FheUint<FheUint248Id>> for &U256

Source§

type Output = FheUint<FheUint248Id>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: FheUint248) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAnd<FheUint<FheUint256Id>> for U256

Source§

type Output = FheUint<FheUint256Id>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: FheUint256) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAnd<FheUint<FheUint256Id>> for &U256

Source§

type Output = FheUint<FheUint256Id>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: FheUint256) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAnd<FheUint<FheUint512Id>> for U512

Source§

type Output = FheUint<FheUint512Id>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: FheUint512) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAnd<FheUint<FheUint512Id>> for &U512

Source§

type Output = FheUint<FheUint512Id>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: FheUint512) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAnd<FheUint<FheUint1024Id>> for U1024

Source§

type Output = FheUint<FheUint1024Id>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: FheUint1024) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAnd<FheUint<FheUint1024Id>> for &U1024

Source§

type Output = FheUint<FheUint1024Id>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: FheUint1024) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAnd<FheUint<FheUint2048Id>> for U2048

Source§

type Output = FheUint<FheUint2048Id>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: FheUint2048) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAnd<FheUint<FheUint2048Id>> for &U2048

Source§

type Output = FheUint<FheUint2048Id>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: FheUint2048) -> Self::Output

Performs the & operation. Read more
Source§

impl<Id, I> BitAndAssign<I> for FheUint<Id>
where Id: FheUintId, I: Borrow<Self>,

Source§

fn bitand_assign(&mut self, rhs: I)

Performs the &= operation on FheUint

§Example
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);
let b = FheUint16::encrypt(37849u16, &client_key);

a &= &b;
let result: u16 = a.decrypt(&client_key);
assert_eq!(result, 3u16 & 37849u16);
Source§

impl BitAndSizeOnGpu<&FheUint<FheUint2Id>> for u8

Source§

impl BitAndSizeOnGpu<&FheUint<FheUint4Id>> for u8

Source§

impl BitAndSizeOnGpu<&FheUint<FheUint6Id>> for u8

Source§

impl BitAndSizeOnGpu<&FheUint<FheUint8Id>> for u8

Source§

impl BitAndSizeOnGpu<&FheUint<FheUint10Id>> for u16

Source§

impl BitAndSizeOnGpu<&FheUint<FheUint12Id>> for u16

Source§

impl BitAndSizeOnGpu<&FheUint<FheUint14Id>> for u16

Source§

impl BitAndSizeOnGpu<&FheUint<FheUint16Id>> for u16

Source§

impl BitAndSizeOnGpu<&FheUint<FheUint24Id>> for u32

Source§

impl BitAndSizeOnGpu<&FheUint<FheUint32Id>> for u32

Source§

impl BitAndSizeOnGpu<&FheUint<FheUint40Id>> for u64

Source§

impl BitAndSizeOnGpu<&FheUint<FheUint48Id>> for u64

Source§

impl BitAndSizeOnGpu<&FheUint<FheUint56Id>> for u64

Source§

impl BitAndSizeOnGpu<&FheUint<FheUint64Id>> for u64

Source§

impl BitAndSizeOnGpu<&FheUint<FheUint72Id>> for u128

Source§

impl BitAndSizeOnGpu<&FheUint<FheUint80Id>> for u128

Source§

impl BitAndSizeOnGpu<&FheUint<FheUint88Id>> for u128

Source§

impl BitAndSizeOnGpu<&FheUint<FheUint96Id>> for u128

Source§

impl BitAndSizeOnGpu<&FheUint<FheUint104Id>> for u128

Source§

impl BitAndSizeOnGpu<&FheUint<FheUint112Id>> for u128

Source§

impl BitAndSizeOnGpu<&FheUint<FheUint120Id>> for u128

Source§

impl BitAndSizeOnGpu<&FheUint<FheUint128Id>> for u128

Source§

impl BitAndSizeOnGpu<&FheUint<FheUint136Id>> for U256

Source§

impl BitAndSizeOnGpu<&FheUint<FheUint144Id>> for U256

Source§

impl BitAndSizeOnGpu<&FheUint<FheUint152Id>> for U256

Source§

impl BitAndSizeOnGpu<&FheUint<FheUint160Id>> for U256

Source§

impl BitAndSizeOnGpu<&FheUint<FheUint168Id>> for U256

Source§

impl BitAndSizeOnGpu<&FheUint<FheUint176Id>> for U256

Source§

impl BitAndSizeOnGpu<&FheUint<FheUint184Id>> for U256

Source§

impl BitAndSizeOnGpu<&FheUint<FheUint192Id>> for U256

Source§

impl BitAndSizeOnGpu<&FheUint<FheUint200Id>> for U256

Source§

impl BitAndSizeOnGpu<&FheUint<FheUint208Id>> for U256

Source§

impl BitAndSizeOnGpu<&FheUint<FheUint216Id>> for U256

Source§

impl BitAndSizeOnGpu<&FheUint<FheUint224Id>> for U256

Source§

impl BitAndSizeOnGpu<&FheUint<FheUint232Id>> for U256

Source§

impl BitAndSizeOnGpu<&FheUint<FheUint240Id>> for U256

Source§

impl BitAndSizeOnGpu<&FheUint<FheUint248Id>> for U256

Source§

impl BitAndSizeOnGpu<&FheUint<FheUint256Id>> for U256

Source§

impl BitAndSizeOnGpu<&FheUint<FheUint512Id>> for U512

Source§

impl BitAndSizeOnGpu<&FheUint<FheUint1024Id>> for U1024

Source§

impl BitAndSizeOnGpu<&FheUint<FheUint2048Id>> for U2048

Source§

impl BitAndSizeOnGpu<FheUint<FheUint2Id>> for u8

Source§

impl BitAndSizeOnGpu<FheUint<FheUint4Id>> for u8

Source§

impl BitAndSizeOnGpu<FheUint<FheUint6Id>> for u8

Source§

impl BitAndSizeOnGpu<FheUint<FheUint8Id>> for u8

Source§

impl BitAndSizeOnGpu<FheUint<FheUint10Id>> for u16

Source§

impl BitAndSizeOnGpu<FheUint<FheUint12Id>> for u16

Source§

impl BitAndSizeOnGpu<FheUint<FheUint14Id>> for u16

Source§

impl BitAndSizeOnGpu<FheUint<FheUint16Id>> for u16

Source§

impl BitAndSizeOnGpu<FheUint<FheUint24Id>> for u32

Source§

impl BitAndSizeOnGpu<FheUint<FheUint32Id>> for u32

Source§

impl BitAndSizeOnGpu<FheUint<FheUint40Id>> for u64

Source§

impl BitAndSizeOnGpu<FheUint<FheUint48Id>> for u64

Source§

impl BitAndSizeOnGpu<FheUint<FheUint56Id>> for u64

Source§

impl BitAndSizeOnGpu<FheUint<FheUint64Id>> for u64

Source§

impl BitAndSizeOnGpu<FheUint<FheUint72Id>> for u128

Source§

impl BitAndSizeOnGpu<FheUint<FheUint80Id>> for u128

Source§

impl BitAndSizeOnGpu<FheUint<FheUint88Id>> for u128

Source§

impl BitAndSizeOnGpu<FheUint<FheUint96Id>> for u128

Source§

impl BitAndSizeOnGpu<FheUint<FheUint104Id>> for u128

Source§

impl BitAndSizeOnGpu<FheUint<FheUint112Id>> for u128

Source§

impl BitAndSizeOnGpu<FheUint<FheUint120Id>> for u128

Source§

impl BitAndSizeOnGpu<FheUint<FheUint128Id>> for u128

Source§

impl BitAndSizeOnGpu<FheUint<FheUint136Id>> for U256

Source§

impl BitAndSizeOnGpu<FheUint<FheUint144Id>> for U256

Source§

impl BitAndSizeOnGpu<FheUint<FheUint152Id>> for U256

Source§

impl BitAndSizeOnGpu<FheUint<FheUint160Id>> for U256

Source§

impl BitAndSizeOnGpu<FheUint<FheUint168Id>> for U256

Source§

impl BitAndSizeOnGpu<FheUint<FheUint176Id>> for U256

Source§

impl BitAndSizeOnGpu<FheUint<FheUint184Id>> for U256

Source§

impl BitAndSizeOnGpu<FheUint<FheUint192Id>> for U256

Source§

impl BitAndSizeOnGpu<FheUint<FheUint200Id>> for U256

Source§

impl BitAndSizeOnGpu<FheUint<FheUint208Id>> for U256

Source§

impl BitAndSizeOnGpu<FheUint<FheUint216Id>> for U256

Source§

impl BitAndSizeOnGpu<FheUint<FheUint224Id>> for U256

Source§

impl BitAndSizeOnGpu<FheUint<FheUint232Id>> for U256

Source§

impl BitAndSizeOnGpu<FheUint<FheUint240Id>> for U256

Source§

impl BitAndSizeOnGpu<FheUint<FheUint248Id>> for U256

Source§

impl BitAndSizeOnGpu<FheUint<FheUint256Id>> for U256

Source§

impl BitAndSizeOnGpu<FheUint<FheUint512Id>> for U512

Source§

impl BitAndSizeOnGpu<FheUint<FheUint1024Id>> for U1024

Source§

impl BitAndSizeOnGpu<FheUint<FheUint2048Id>> for U2048

Source§

impl<Id, I> BitAndSizeOnGpu<I> for FheUint<Id>
where Id: FheUintId, I: Borrow<Self>,

Available on crate feature gpu only.
Source§

fn get_bitand_size_on_gpu(&self, rhs: I) -> u64

Source§

impl<Id> BitNotSizeOnGpu for FheUint<Id>
where Id: FheUintId,

Available on crate feature gpu only.
Source§

impl BitOr<&FheUint<FheUint2Id>> for u8

Source§

type Output = FheUint<FheUint2Id>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: &FheUint2) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOr<&FheUint<FheUint2Id>> for &u8

Source§

type Output = FheUint<FheUint2Id>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: &FheUint2) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOr<&FheUint<FheUint4Id>> for u8

Source§

type Output = FheUint<FheUint4Id>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: &FheUint4) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOr<&FheUint<FheUint4Id>> for &u8

Source§

type Output = FheUint<FheUint4Id>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: &FheUint4) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOr<&FheUint<FheUint6Id>> for u8

Source§

type Output = FheUint<FheUint6Id>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: &FheUint6) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOr<&FheUint<FheUint6Id>> for &u8

Source§

type Output = FheUint<FheUint6Id>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: &FheUint6) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOr<&FheUint<FheUint8Id>> for u8

Source§

type Output = FheUint<FheUint8Id>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: &FheUint8) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOr<&FheUint<FheUint8Id>> for &u8

Source§

type Output = FheUint<FheUint8Id>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: &FheUint8) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOr<&FheUint<FheUint10Id>> for u16

Source§

type Output = FheUint<FheUint10Id>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: &FheUint10) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOr<&FheUint<FheUint10Id>> for &u16

Source§

type Output = FheUint<FheUint10Id>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: &FheUint10) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOr<&FheUint<FheUint12Id>> for u16

Source§

type Output = FheUint<FheUint12Id>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: &FheUint12) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOr<&FheUint<FheUint12Id>> for &u16

Source§

type Output = FheUint<FheUint12Id>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: &FheUint12) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOr<&FheUint<FheUint14Id>> for u16

Source§

type Output = FheUint<FheUint14Id>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: &FheUint14) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOr<&FheUint<FheUint14Id>> for &u16

Source§

type Output = FheUint<FheUint14Id>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: &FheUint14) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOr<&FheUint<FheUint16Id>> for u16

Source§

type Output = FheUint<FheUint16Id>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: &FheUint16) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOr<&FheUint<FheUint16Id>> for &u16

Source§

type Output = FheUint<FheUint16Id>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: &FheUint16) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOr<&FheUint<FheUint24Id>> for u32

Source§

type Output = FheUint<FheUint24Id>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: &FheUint24) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOr<&FheUint<FheUint24Id>> for &u32

Source§

type Output = FheUint<FheUint24Id>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: &FheUint24) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOr<&FheUint<FheUint32Id>> for u32

Source§

type Output = FheUint<FheUint32Id>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: &FheUint32) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOr<&FheUint<FheUint32Id>> for &u32

Source§

type Output = FheUint<FheUint32Id>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: &FheUint32) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOr<&FheUint<FheUint40Id>> for u64

Source§

type Output = FheUint<FheUint40Id>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: &FheUint40) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOr<&FheUint<FheUint40Id>> for &u64

Source§

type Output = FheUint<FheUint40Id>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: &FheUint40) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOr<&FheUint<FheUint48Id>> for u64

Source§

type Output = FheUint<FheUint48Id>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: &FheUint48) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOr<&FheUint<FheUint48Id>> for &u64

Source§

type Output = FheUint<FheUint48Id>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: &FheUint48) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOr<&FheUint<FheUint56Id>> for u64

Source§

type Output = FheUint<FheUint56Id>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: &FheUint56) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOr<&FheUint<FheUint56Id>> for &u64

Source§

type Output = FheUint<FheUint56Id>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: &FheUint56) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOr<&FheUint<FheUint64Id>> for u64

Source§

type Output = FheUint<FheUint64Id>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: &FheUint64) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOr<&FheUint<FheUint64Id>> for &u64

Source§

type Output = FheUint<FheUint64Id>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: &FheUint64) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOr<&FheUint<FheUint72Id>> for u128

Source§

type Output = FheUint<FheUint72Id>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: &FheUint72) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOr<&FheUint<FheUint72Id>> for &u128

Source§

type Output = FheUint<FheUint72Id>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: &FheUint72) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOr<&FheUint<FheUint80Id>> for u128

Source§

type Output = FheUint<FheUint80Id>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: &FheUint80) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOr<&FheUint<FheUint80Id>> for &u128

Source§

type Output = FheUint<FheUint80Id>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: &FheUint80) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOr<&FheUint<FheUint88Id>> for u128

Source§

type Output = FheUint<FheUint88Id>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: &FheUint88) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOr<&FheUint<FheUint88Id>> for &u128

Source§

type Output = FheUint<FheUint88Id>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: &FheUint88) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOr<&FheUint<FheUint96Id>> for u128

Source§

type Output = FheUint<FheUint96Id>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: &FheUint96) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOr<&FheUint<FheUint96Id>> for &u128

Source§

type Output = FheUint<FheUint96Id>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: &FheUint96) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOr<&FheUint<FheUint104Id>> for u128

Source§

type Output = FheUint<FheUint104Id>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: &FheUint104) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOr<&FheUint<FheUint104Id>> for &u128

Source§

type Output = FheUint<FheUint104Id>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: &FheUint104) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOr<&FheUint<FheUint112Id>> for u128

Source§

type Output = FheUint<FheUint112Id>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: &FheUint112) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOr<&FheUint<FheUint112Id>> for &u128

Source§

type Output = FheUint<FheUint112Id>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: &FheUint112) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOr<&FheUint<FheUint120Id>> for u128

Source§

type Output = FheUint<FheUint120Id>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: &FheUint120) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOr<&FheUint<FheUint120Id>> for &u128

Source§

type Output = FheUint<FheUint120Id>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: &FheUint120) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOr<&FheUint<FheUint128Id>> for u128

Source§

type Output = FheUint<FheUint128Id>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: &FheUint128) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOr<&FheUint<FheUint128Id>> for &u128

Source§

type Output = FheUint<FheUint128Id>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: &FheUint128) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOr<&FheUint<FheUint136Id>> for U256

Source§

type Output = FheUint<FheUint136Id>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: &FheUint136) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOr<&FheUint<FheUint136Id>> for &U256

Source§

type Output = FheUint<FheUint136Id>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: &FheUint136) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOr<&FheUint<FheUint144Id>> for U256

Source§

type Output = FheUint<FheUint144Id>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: &FheUint144) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOr<&FheUint<FheUint144Id>> for &U256

Source§

type Output = FheUint<FheUint144Id>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: &FheUint144) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOr<&FheUint<FheUint152Id>> for U256

Source§

type Output = FheUint<FheUint152Id>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: &FheUint152) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOr<&FheUint<FheUint152Id>> for &U256

Source§

type Output = FheUint<FheUint152Id>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: &FheUint152) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOr<&FheUint<FheUint160Id>> for U256

Source§

type Output = FheUint<FheUint160Id>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: &FheUint160) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOr<&FheUint<FheUint160Id>> for &U256

Source§

type Output = FheUint<FheUint160Id>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: &FheUint160) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOr<&FheUint<FheUint168Id>> for U256

Source§

type Output = FheUint<FheUint168Id>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: &FheUint168) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOr<&FheUint<FheUint168Id>> for &U256

Source§

type Output = FheUint<FheUint168Id>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: &FheUint168) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOr<&FheUint<FheUint176Id>> for U256

Source§

type Output = FheUint<FheUint176Id>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: &FheUint176) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOr<&FheUint<FheUint176Id>> for &U256

Source§

type Output = FheUint<FheUint176Id>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: &FheUint176) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOr<&FheUint<FheUint184Id>> for U256

Source§

type Output = FheUint<FheUint184Id>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: &FheUint184) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOr<&FheUint<FheUint184Id>> for &U256

Source§

type Output = FheUint<FheUint184Id>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: &FheUint184) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOr<&FheUint<FheUint192Id>> for U256

Source§

type Output = FheUint<FheUint192Id>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: &FheUint192) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOr<&FheUint<FheUint192Id>> for &U256

Source§

type Output = FheUint<FheUint192Id>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: &FheUint192) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOr<&FheUint<FheUint200Id>> for U256

Source§

type Output = FheUint<FheUint200Id>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: &FheUint200) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOr<&FheUint<FheUint200Id>> for &U256

Source§

type Output = FheUint<FheUint200Id>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: &FheUint200) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOr<&FheUint<FheUint208Id>> for U256

Source§

type Output = FheUint<FheUint208Id>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: &FheUint208) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOr<&FheUint<FheUint208Id>> for &U256

Source§

type Output = FheUint<FheUint208Id>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: &FheUint208) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOr<&FheUint<FheUint216Id>> for U256

Source§

type Output = FheUint<FheUint216Id>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: &FheUint216) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOr<&FheUint<FheUint216Id>> for &U256

Source§

type Output = FheUint<FheUint216Id>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: &FheUint216) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOr<&FheUint<FheUint224Id>> for U256

Source§

type Output = FheUint<FheUint224Id>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: &FheUint224) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOr<&FheUint<FheUint224Id>> for &U256

Source§

type Output = FheUint<FheUint224Id>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: &FheUint224) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOr<&FheUint<FheUint232Id>> for U256

Source§

type Output = FheUint<FheUint232Id>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: &FheUint232) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOr<&FheUint<FheUint232Id>> for &U256

Source§

type Output = FheUint<FheUint232Id>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: &FheUint232) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOr<&FheUint<FheUint240Id>> for U256

Source§

type Output = FheUint<FheUint240Id>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: &FheUint240) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOr<&FheUint<FheUint240Id>> for &U256

Source§

type Output = FheUint<FheUint240Id>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: &FheUint240) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOr<&FheUint<FheUint248Id>> for U256

Source§

type Output = FheUint<FheUint248Id>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: &FheUint248) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOr<&FheUint<FheUint248Id>> for &U256

Source§

type Output = FheUint<FheUint248Id>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: &FheUint248) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOr<&FheUint<FheUint256Id>> for U256

Source§

type Output = FheUint<FheUint256Id>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: &FheUint256) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOr<&FheUint<FheUint256Id>> for &U256

Source§

type Output = FheUint<FheUint256Id>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: &FheUint256) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOr<&FheUint<FheUint512Id>> for U512

Source§

type Output = FheUint<FheUint512Id>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: &FheUint512) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOr<&FheUint<FheUint512Id>> for &U512

Source§

type Output = FheUint<FheUint512Id>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: &FheUint512) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOr<&FheUint<FheUint1024Id>> for U1024

Source§

type Output = FheUint<FheUint1024Id>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: &FheUint1024) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOr<&FheUint<FheUint1024Id>> for &U1024

Source§

type Output = FheUint<FheUint1024Id>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: &FheUint1024) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOr<&FheUint<FheUint2048Id>> for U2048

Source§

type Output = FheUint<FheUint2048Id>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: &FheUint2048) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOr<&FheUint<FheUint2048Id>> for &U2048

Source§

type Output = FheUint<FheUint2048Id>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: &FheUint2048) -> Self::Output

Performs the | operation. Read more
Source§

impl<Id, B> BitOr<B> for FheUint<Id>
where Id: FheUintId, B: Borrow<Self>,

Source§

type Output = FheUint<Id>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: B) -> Self::Output

Performs the | operation. Read more
Source§

impl<Id, B> BitOr<B> for &FheUint<Id>
where Id: FheUintId, B: Borrow<FheUint<Id>>,

Source§

fn bitor(self, rhs: B) -> Self::Output

Performs a bitwise ‘or’ between two FheUint

§Example
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);
Source§

type Output = FheUint<Id>

The resulting type after applying the | operator.
Source§

impl BitOr<FheUint<FheUint2Id>> for u8

Source§

type Output = FheUint<FheUint2Id>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: FheUint2) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOr<FheUint<FheUint2Id>> for &u8

Source§

type Output = FheUint<FheUint2Id>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: FheUint2) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOr<FheUint<FheUint4Id>> for u8

Source§

type Output = FheUint<FheUint4Id>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: FheUint4) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOr<FheUint<FheUint4Id>> for &u8

Source§

type Output = FheUint<FheUint4Id>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: FheUint4) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOr<FheUint<FheUint6Id>> for u8

Source§

type Output = FheUint<FheUint6Id>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: FheUint6) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOr<FheUint<FheUint6Id>> for &u8

Source§

type Output = FheUint<FheUint6Id>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: FheUint6) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOr<FheUint<FheUint8Id>> for u8

Source§

type Output = FheUint<FheUint8Id>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: FheUint8) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOr<FheUint<FheUint8Id>> for &u8

Source§

type Output = FheUint<FheUint8Id>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: FheUint8) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOr<FheUint<FheUint10Id>> for u16

Source§

type Output = FheUint<FheUint10Id>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: FheUint10) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOr<FheUint<FheUint10Id>> for &u16

Source§

type Output = FheUint<FheUint10Id>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: FheUint10) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOr<FheUint<FheUint12Id>> for u16

Source§

type Output = FheUint<FheUint12Id>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: FheUint12) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOr<FheUint<FheUint12Id>> for &u16

Source§

type Output = FheUint<FheUint12Id>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: FheUint12) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOr<FheUint<FheUint14Id>> for u16

Source§

type Output = FheUint<FheUint14Id>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: FheUint14) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOr<FheUint<FheUint14Id>> for &u16

Source§

type Output = FheUint<FheUint14Id>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: FheUint14) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOr<FheUint<FheUint16Id>> for u16

Source§

type Output = FheUint<FheUint16Id>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: FheUint16) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOr<FheUint<FheUint16Id>> for &u16

Source§

type Output = FheUint<FheUint16Id>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: FheUint16) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOr<FheUint<FheUint24Id>> for u32

Source§

type Output = FheUint<FheUint24Id>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: FheUint24) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOr<FheUint<FheUint24Id>> for &u32

Source§

type Output = FheUint<FheUint24Id>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: FheUint24) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOr<FheUint<FheUint32Id>> for u32

Source§

type Output = FheUint<FheUint32Id>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: FheUint32) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOr<FheUint<FheUint32Id>> for &u32

Source§

type Output = FheUint<FheUint32Id>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: FheUint32) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOr<FheUint<FheUint40Id>> for u64

Source§

type Output = FheUint<FheUint40Id>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: FheUint40) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOr<FheUint<FheUint40Id>> for &u64

Source§

type Output = FheUint<FheUint40Id>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: FheUint40) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOr<FheUint<FheUint48Id>> for u64

Source§

type Output = FheUint<FheUint48Id>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: FheUint48) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOr<FheUint<FheUint48Id>> for &u64

Source§

type Output = FheUint<FheUint48Id>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: FheUint48) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOr<FheUint<FheUint56Id>> for u64

Source§

type Output = FheUint<FheUint56Id>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: FheUint56) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOr<FheUint<FheUint56Id>> for &u64

Source§

type Output = FheUint<FheUint56Id>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: FheUint56) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOr<FheUint<FheUint64Id>> for u64

Source§

type Output = FheUint<FheUint64Id>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: FheUint64) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOr<FheUint<FheUint64Id>> for &u64

Source§

type Output = FheUint<FheUint64Id>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: FheUint64) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOr<FheUint<FheUint72Id>> for u128

Source§

type Output = FheUint<FheUint72Id>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: FheUint72) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOr<FheUint<FheUint72Id>> for &u128

Source§

type Output = FheUint<FheUint72Id>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: FheUint72) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOr<FheUint<FheUint80Id>> for u128

Source§

type Output = FheUint<FheUint80Id>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: FheUint80) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOr<FheUint<FheUint80Id>> for &u128

Source§

type Output = FheUint<FheUint80Id>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: FheUint80) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOr<FheUint<FheUint88Id>> for u128

Source§

type Output = FheUint<FheUint88Id>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: FheUint88) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOr<FheUint<FheUint88Id>> for &u128

Source§

type Output = FheUint<FheUint88Id>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: FheUint88) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOr<FheUint<FheUint96Id>> for u128

Source§

type Output = FheUint<FheUint96Id>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: FheUint96) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOr<FheUint<FheUint96Id>> for &u128

Source§

type Output = FheUint<FheUint96Id>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: FheUint96) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOr<FheUint<FheUint104Id>> for u128

Source§

type Output = FheUint<FheUint104Id>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: FheUint104) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOr<FheUint<FheUint104Id>> for &u128

Source§

type Output = FheUint<FheUint104Id>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: FheUint104) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOr<FheUint<FheUint112Id>> for u128

Source§

type Output = FheUint<FheUint112Id>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: FheUint112) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOr<FheUint<FheUint112Id>> for &u128

Source§

type Output = FheUint<FheUint112Id>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: FheUint112) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOr<FheUint<FheUint120Id>> for u128

Source§

type Output = FheUint<FheUint120Id>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: FheUint120) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOr<FheUint<FheUint120Id>> for &u128

Source§

type Output = FheUint<FheUint120Id>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: FheUint120) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOr<FheUint<FheUint128Id>> for u128

Source§

type Output = FheUint<FheUint128Id>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: FheUint128) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOr<FheUint<FheUint128Id>> for &u128

Source§

type Output = FheUint<FheUint128Id>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: FheUint128) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOr<FheUint<FheUint136Id>> for U256

Source§

type Output = FheUint<FheUint136Id>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: FheUint136) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOr<FheUint<FheUint136Id>> for &U256

Source§

type Output = FheUint<FheUint136Id>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: FheUint136) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOr<FheUint<FheUint144Id>> for U256

Source§

type Output = FheUint<FheUint144Id>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: FheUint144) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOr<FheUint<FheUint144Id>> for &U256

Source§

type Output = FheUint<FheUint144Id>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: FheUint144) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOr<FheUint<FheUint152Id>> for U256

Source§

type Output = FheUint<FheUint152Id>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: FheUint152) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOr<FheUint<FheUint152Id>> for &U256

Source§

type Output = FheUint<FheUint152Id>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: FheUint152) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOr<FheUint<FheUint160Id>> for U256

Source§

type Output = FheUint<FheUint160Id>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: FheUint160) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOr<FheUint<FheUint160Id>> for &U256

Source§

type Output = FheUint<FheUint160Id>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: FheUint160) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOr<FheUint<FheUint168Id>> for U256

Source§

type Output = FheUint<FheUint168Id>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: FheUint168) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOr<FheUint<FheUint168Id>> for &U256

Source§

type Output = FheUint<FheUint168Id>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: FheUint168) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOr<FheUint<FheUint176Id>> for U256

Source§

type Output = FheUint<FheUint176Id>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: FheUint176) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOr<FheUint<FheUint176Id>> for &U256

Source§

type Output = FheUint<FheUint176Id>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: FheUint176) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOr<FheUint<FheUint184Id>> for U256

Source§

type Output = FheUint<FheUint184Id>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: FheUint184) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOr<FheUint<FheUint184Id>> for &U256

Source§

type Output = FheUint<FheUint184Id>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: FheUint184) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOr<FheUint<FheUint192Id>> for U256

Source§

type Output = FheUint<FheUint192Id>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: FheUint192) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOr<FheUint<FheUint192Id>> for &U256

Source§

type Output = FheUint<FheUint192Id>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: FheUint192) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOr<FheUint<FheUint200Id>> for U256

Source§

type Output = FheUint<FheUint200Id>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: FheUint200) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOr<FheUint<FheUint200Id>> for &U256

Source§

type Output = FheUint<FheUint200Id>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: FheUint200) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOr<FheUint<FheUint208Id>> for U256

Source§

type Output = FheUint<FheUint208Id>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: FheUint208) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOr<FheUint<FheUint208Id>> for &U256

Source§

type Output = FheUint<FheUint208Id>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: FheUint208) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOr<FheUint<FheUint216Id>> for U256

Source§

type Output = FheUint<FheUint216Id>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: FheUint216) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOr<FheUint<FheUint216Id>> for &U256

Source§

type Output = FheUint<FheUint216Id>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: FheUint216) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOr<FheUint<FheUint224Id>> for U256

Source§

type Output = FheUint<FheUint224Id>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: FheUint224) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOr<FheUint<FheUint224Id>> for &U256

Source§

type Output = FheUint<FheUint224Id>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: FheUint224) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOr<FheUint<FheUint232Id>> for U256

Source§

type Output = FheUint<FheUint232Id>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: FheUint232) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOr<FheUint<FheUint232Id>> for &U256

Source§

type Output = FheUint<FheUint232Id>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: FheUint232) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOr<FheUint<FheUint240Id>> for U256

Source§

type Output = FheUint<FheUint240Id>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: FheUint240) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOr<FheUint<FheUint240Id>> for &U256

Source§

type Output = FheUint<FheUint240Id>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: FheUint240) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOr<FheUint<FheUint248Id>> for U256

Source§

type Output = FheUint<FheUint248Id>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: FheUint248) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOr<FheUint<FheUint248Id>> for &U256

Source§

type Output = FheUint<FheUint248Id>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: FheUint248) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOr<FheUint<FheUint256Id>> for U256

Source§

type Output = FheUint<FheUint256Id>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: FheUint256) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOr<FheUint<FheUint256Id>> for &U256

Source§

type Output = FheUint<FheUint256Id>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: FheUint256) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOr<FheUint<FheUint512Id>> for U512

Source§

type Output = FheUint<FheUint512Id>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: FheUint512) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOr<FheUint<FheUint512Id>> for &U512

Source§

type Output = FheUint<FheUint512Id>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: FheUint512) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOr<FheUint<FheUint1024Id>> for U1024

Source§

type Output = FheUint<FheUint1024Id>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: FheUint1024) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOr<FheUint<FheUint1024Id>> for &U1024

Source§

type Output = FheUint<FheUint1024Id>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: FheUint1024) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOr<FheUint<FheUint2048Id>> for U2048

Source§

type Output = FheUint<FheUint2048Id>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: FheUint2048) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOr<FheUint<FheUint2048Id>> for &U2048

Source§

type Output = FheUint<FheUint2048Id>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: FheUint2048) -> Self::Output

Performs the | operation. Read more
Source§

impl<Id, I> BitOrAssign<I> for FheUint<Id>
where Id: FheUintId, I: Borrow<Self>,

Source§

fn bitor_assign(&mut self, rhs: I)

Performs the &= operation on FheUint

§Example
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);
let b = FheUint16::encrypt(37849u16, &client_key);

a |= &b;
let result: u16 = a.decrypt(&client_key);
assert_eq!(result, 3u16 | 37849u16);
Source§

impl BitOrSizeOnGpu<&FheUint<FheUint2Id>> for u8

Source§

impl BitOrSizeOnGpu<&FheUint<FheUint4Id>> for u8

Source§

impl BitOrSizeOnGpu<&FheUint<FheUint6Id>> for u8

Source§

impl BitOrSizeOnGpu<&FheUint<FheUint8Id>> for u8

Source§

impl BitOrSizeOnGpu<&FheUint<FheUint10Id>> for u16

Source§

impl BitOrSizeOnGpu<&FheUint<FheUint12Id>> for u16

Source§

impl BitOrSizeOnGpu<&FheUint<FheUint14Id>> for u16

Source§

impl BitOrSizeOnGpu<&FheUint<FheUint16Id>> for u16

Source§

impl BitOrSizeOnGpu<&FheUint<FheUint24Id>> for u32

Source§

impl BitOrSizeOnGpu<&FheUint<FheUint32Id>> for u32

Source§

impl BitOrSizeOnGpu<&FheUint<FheUint40Id>> for u64

Source§

impl BitOrSizeOnGpu<&FheUint<FheUint48Id>> for u64

Source§

impl BitOrSizeOnGpu<&FheUint<FheUint56Id>> for u64

Source§

impl BitOrSizeOnGpu<&FheUint<FheUint64Id>> for u64

Source§

impl BitOrSizeOnGpu<&FheUint<FheUint72Id>> for u128

Source§

impl BitOrSizeOnGpu<&FheUint<FheUint80Id>> for u128

Source§

impl BitOrSizeOnGpu<&FheUint<FheUint88Id>> for u128

Source§

impl BitOrSizeOnGpu<&FheUint<FheUint96Id>> for u128

Source§

impl BitOrSizeOnGpu<&FheUint<FheUint104Id>> for u128

Source§

impl BitOrSizeOnGpu<&FheUint<FheUint112Id>> for u128

Source§

impl BitOrSizeOnGpu<&FheUint<FheUint120Id>> for u128

Source§

impl BitOrSizeOnGpu<&FheUint<FheUint128Id>> for u128

Source§

impl BitOrSizeOnGpu<&FheUint<FheUint136Id>> for U256

Source§

impl BitOrSizeOnGpu<&FheUint<FheUint144Id>> for U256

Source§

impl BitOrSizeOnGpu<&FheUint<FheUint152Id>> for U256

Source§

impl BitOrSizeOnGpu<&FheUint<FheUint160Id>> for U256

Source§

impl BitOrSizeOnGpu<&FheUint<FheUint168Id>> for U256

Source§

impl BitOrSizeOnGpu<&FheUint<FheUint176Id>> for U256

Source§

impl BitOrSizeOnGpu<&FheUint<FheUint184Id>> for U256

Source§

impl BitOrSizeOnGpu<&FheUint<FheUint192Id>> for U256

Source§

impl BitOrSizeOnGpu<&FheUint<FheUint200Id>> for U256

Source§

impl BitOrSizeOnGpu<&FheUint<FheUint208Id>> for U256

Source§

impl BitOrSizeOnGpu<&FheUint<FheUint216Id>> for U256

Source§

impl BitOrSizeOnGpu<&FheUint<FheUint224Id>> for U256

Source§

impl BitOrSizeOnGpu<&FheUint<FheUint232Id>> for U256

Source§

impl BitOrSizeOnGpu<&FheUint<FheUint240Id>> for U256

Source§

impl BitOrSizeOnGpu<&FheUint<FheUint248Id>> for U256

Source§

impl BitOrSizeOnGpu<&FheUint<FheUint256Id>> for U256

Source§

impl BitOrSizeOnGpu<&FheUint<FheUint512Id>> for U512

Source§

impl BitOrSizeOnGpu<&FheUint<FheUint1024Id>> for U1024

Source§

impl BitOrSizeOnGpu<&FheUint<FheUint2048Id>> for U2048

Source§

impl BitOrSizeOnGpu<FheUint<FheUint2Id>> for u8

Source§

impl BitOrSizeOnGpu<FheUint<FheUint4Id>> for u8

Source§

impl BitOrSizeOnGpu<FheUint<FheUint6Id>> for u8

Source§

impl BitOrSizeOnGpu<FheUint<FheUint8Id>> for u8

Source§

impl BitOrSizeOnGpu<FheUint<FheUint10Id>> for u16

Source§

impl BitOrSizeOnGpu<FheUint<FheUint12Id>> for u16

Source§

impl BitOrSizeOnGpu<FheUint<FheUint14Id>> for u16

Source§

impl BitOrSizeOnGpu<FheUint<FheUint16Id>> for u16

Source§

impl BitOrSizeOnGpu<FheUint<FheUint24Id>> for u32

Source§

impl BitOrSizeOnGpu<FheUint<FheUint32Id>> for u32

Source§

impl BitOrSizeOnGpu<FheUint<FheUint40Id>> for u64

Source§

impl BitOrSizeOnGpu<FheUint<FheUint48Id>> for u64

Source§

impl BitOrSizeOnGpu<FheUint<FheUint56Id>> for u64

Source§

impl BitOrSizeOnGpu<FheUint<FheUint64Id>> for u64

Source§

impl BitOrSizeOnGpu<FheUint<FheUint72Id>> for u128

Source§

impl BitOrSizeOnGpu<FheUint<FheUint80Id>> for u128

Source§

impl BitOrSizeOnGpu<FheUint<FheUint88Id>> for u128

Source§

impl BitOrSizeOnGpu<FheUint<FheUint96Id>> for u128

Source§

impl BitOrSizeOnGpu<FheUint<FheUint104Id>> for u128

Source§

impl BitOrSizeOnGpu<FheUint<FheUint112Id>> for u128

Source§

impl BitOrSizeOnGpu<FheUint<FheUint120Id>> for u128

Source§

impl BitOrSizeOnGpu<FheUint<FheUint128Id>> for u128

Source§

impl BitOrSizeOnGpu<FheUint<FheUint136Id>> for U256

Source§

impl BitOrSizeOnGpu<FheUint<FheUint144Id>> for U256

Source§

impl BitOrSizeOnGpu<FheUint<FheUint152Id>> for U256

Source§

impl BitOrSizeOnGpu<FheUint<FheUint160Id>> for U256

Source§

impl BitOrSizeOnGpu<FheUint<FheUint168Id>> for U256

Source§

impl BitOrSizeOnGpu<FheUint<FheUint176Id>> for U256

Source§

impl BitOrSizeOnGpu<FheUint<FheUint184Id>> for U256

Source§

impl BitOrSizeOnGpu<FheUint<FheUint192Id>> for U256

Source§

impl BitOrSizeOnGpu<FheUint<FheUint200Id>> for U256

Source§

impl BitOrSizeOnGpu<FheUint<FheUint208Id>> for U256

Source§

impl BitOrSizeOnGpu<FheUint<FheUint216Id>> for U256

Source§

impl BitOrSizeOnGpu<FheUint<FheUint224Id>> for U256

Source§

impl BitOrSizeOnGpu<FheUint<FheUint232Id>> for U256

Source§

impl BitOrSizeOnGpu<FheUint<FheUint240Id>> for U256

Source§

impl BitOrSizeOnGpu<FheUint<FheUint248Id>> for U256

Source§

impl BitOrSizeOnGpu<FheUint<FheUint256Id>> for U256

Source§

impl BitOrSizeOnGpu<FheUint<FheUint512Id>> for U512

Source§

impl BitOrSizeOnGpu<FheUint<FheUint1024Id>> for U1024

Source§

impl BitOrSizeOnGpu<FheUint<FheUint2048Id>> for U2048

Source§

impl<Id, I> BitOrSizeOnGpu<I> for FheUint<Id>
where Id: FheUintId, I: Borrow<Self>,

Available on crate feature gpu only.
Source§

fn get_bitor_size_on_gpu(&self, rhs: I) -> u64

Source§

impl<Id, Clear> BitSlice<Clear> for &FheUint<Id>
where Id: FheUintId, Clear: CastFrom<usize> + CastInto<usize> + Copy,

Source§

fn bitslice<R>(self, range: R) -> Result<Self::Output, InvalidRangeError>
where R: RangeBounds<Clear>,

Extract a slice of bits from a FheUint.

This function is more efficient if the range starts on a block boundary.

§Example
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 msg: u16 = 225;
let a = FheUint16::encrypt(msg, &client_key);
let start_bit = 3;
let end_bit = 6;

let result = (&a).bitslice(start_bit..end_bit).unwrap();

let decrypted_slice: u16 = result.decrypt(&client_key);
assert_eq!((msg % (1 << end_bit)) >> start_bit, decrypted_slice);
Source§

type Output = FheUint<Id>

Source§

impl<Id, Clear> BitSlice<Clear> for FheUint<Id>
where Id: FheUintId, Clear: CastFrom<usize> + CastInto<usize> + Copy,

Source§

fn bitslice<R>(self, range: R) -> Result<Self::Output, InvalidRangeError>
where R: RangeBounds<Clear>,

Extract a slice of bits from a FheUint.

This function is more efficient if the range starts on a block boundary.

§Example
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 msg: u16 = 225;
let a = FheUint16::encrypt(msg, &client_key);
let start_bit = 3;
let end_bit = 6;

let result = a.bitslice(start_bit..end_bit).unwrap();

let decrypted_slice: u16 = result.decrypt(&client_key);
assert_eq!((msg % (1 << end_bit)) >> start_bit, decrypted_slice);
Source§

type Output = FheUint<Id>

Source§

impl BitXor<&FheUint<FheUint2Id>> for u8

Source§

type Output = FheUint<FheUint2Id>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: &FheUint2) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXor<&FheUint<FheUint2Id>> for &u8

Source§

type Output = FheUint<FheUint2Id>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: &FheUint2) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXor<&FheUint<FheUint4Id>> for u8

Source§

type Output = FheUint<FheUint4Id>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: &FheUint4) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXor<&FheUint<FheUint4Id>> for &u8

Source§

type Output = FheUint<FheUint4Id>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: &FheUint4) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXor<&FheUint<FheUint6Id>> for u8

Source§

type Output = FheUint<FheUint6Id>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: &FheUint6) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXor<&FheUint<FheUint6Id>> for &u8

Source§

type Output = FheUint<FheUint6Id>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: &FheUint6) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXor<&FheUint<FheUint8Id>> for u8

Source§

type Output = FheUint<FheUint8Id>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: &FheUint8) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXor<&FheUint<FheUint8Id>> for &u8

Source§

type Output = FheUint<FheUint8Id>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: &FheUint8) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXor<&FheUint<FheUint10Id>> for u16

Source§

type Output = FheUint<FheUint10Id>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: &FheUint10) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXor<&FheUint<FheUint10Id>> for &u16

Source§

type Output = FheUint<FheUint10Id>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: &FheUint10) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXor<&FheUint<FheUint12Id>> for u16

Source§

type Output = FheUint<FheUint12Id>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: &FheUint12) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXor<&FheUint<FheUint12Id>> for &u16

Source§

type Output = FheUint<FheUint12Id>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: &FheUint12) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXor<&FheUint<FheUint14Id>> for u16

Source§

type Output = FheUint<FheUint14Id>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: &FheUint14) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXor<&FheUint<FheUint14Id>> for &u16

Source§

type Output = FheUint<FheUint14Id>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: &FheUint14) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXor<&FheUint<FheUint16Id>> for u16

Source§

type Output = FheUint<FheUint16Id>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: &FheUint16) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXor<&FheUint<FheUint16Id>> for &u16

Source§

type Output = FheUint<FheUint16Id>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: &FheUint16) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXor<&FheUint<FheUint24Id>> for u32

Source§

type Output = FheUint<FheUint24Id>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: &FheUint24) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXor<&FheUint<FheUint24Id>> for &u32

Source§

type Output = FheUint<FheUint24Id>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: &FheUint24) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXor<&FheUint<FheUint32Id>> for u32

Source§

type Output = FheUint<FheUint32Id>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: &FheUint32) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXor<&FheUint<FheUint32Id>> for &u32

Source§

type Output = FheUint<FheUint32Id>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: &FheUint32) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXor<&FheUint<FheUint40Id>> for u64

Source§

type Output = FheUint<FheUint40Id>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: &FheUint40) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXor<&FheUint<FheUint40Id>> for &u64

Source§

type Output = FheUint<FheUint40Id>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: &FheUint40) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXor<&FheUint<FheUint48Id>> for u64

Source§

type Output = FheUint<FheUint48Id>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: &FheUint48) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXor<&FheUint<FheUint48Id>> for &u64

Source§

type Output = FheUint<FheUint48Id>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: &FheUint48) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXor<&FheUint<FheUint56Id>> for u64

Source§

type Output = FheUint<FheUint56Id>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: &FheUint56) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXor<&FheUint<FheUint56Id>> for &u64

Source§

type Output = FheUint<FheUint56Id>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: &FheUint56) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXor<&FheUint<FheUint64Id>> for u64

Source§

type Output = FheUint<FheUint64Id>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: &FheUint64) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXor<&FheUint<FheUint64Id>> for &u64

Source§

type Output = FheUint<FheUint64Id>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: &FheUint64) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXor<&FheUint<FheUint72Id>> for u128

Source§

type Output = FheUint<FheUint72Id>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: &FheUint72) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXor<&FheUint<FheUint72Id>> for &u128

Source§

type Output = FheUint<FheUint72Id>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: &FheUint72) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXor<&FheUint<FheUint80Id>> for u128

Source§

type Output = FheUint<FheUint80Id>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: &FheUint80) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXor<&FheUint<FheUint80Id>> for &u128

Source§

type Output = FheUint<FheUint80Id>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: &FheUint80) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXor<&FheUint<FheUint88Id>> for u128

Source§

type Output = FheUint<FheUint88Id>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: &FheUint88) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXor<&FheUint<FheUint88Id>> for &u128

Source§

type Output = FheUint<FheUint88Id>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: &FheUint88) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXor<&FheUint<FheUint96Id>> for u128

Source§

type Output = FheUint<FheUint96Id>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: &FheUint96) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXor<&FheUint<FheUint96Id>> for &u128

Source§

type Output = FheUint<FheUint96Id>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: &FheUint96) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXor<&FheUint<FheUint104Id>> for u128

Source§

type Output = FheUint<FheUint104Id>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: &FheUint104) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXor<&FheUint<FheUint104Id>> for &u128

Source§

type Output = FheUint<FheUint104Id>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: &FheUint104) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXor<&FheUint<FheUint112Id>> for u128

Source§

type Output = FheUint<FheUint112Id>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: &FheUint112) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXor<&FheUint<FheUint112Id>> for &u128

Source§

type Output = FheUint<FheUint112Id>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: &FheUint112) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXor<&FheUint<FheUint120Id>> for u128

Source§

type Output = FheUint<FheUint120Id>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: &FheUint120) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXor<&FheUint<FheUint120Id>> for &u128

Source§

type Output = FheUint<FheUint120Id>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: &FheUint120) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXor<&FheUint<FheUint128Id>> for u128

Source§

type Output = FheUint<FheUint128Id>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: &FheUint128) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXor<&FheUint<FheUint128Id>> for &u128

Source§

type Output = FheUint<FheUint128Id>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: &FheUint128) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXor<&FheUint<FheUint136Id>> for U256

Source§

type Output = FheUint<FheUint136Id>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: &FheUint136) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXor<&FheUint<FheUint136Id>> for &U256

Source§

type Output = FheUint<FheUint136Id>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: &FheUint136) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXor<&FheUint<FheUint144Id>> for U256

Source§

type Output = FheUint<FheUint144Id>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: &FheUint144) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXor<&FheUint<FheUint144Id>> for &U256

Source§

type Output = FheUint<FheUint144Id>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: &FheUint144) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXor<&FheUint<FheUint152Id>> for U256

Source§

type Output = FheUint<FheUint152Id>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: &FheUint152) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXor<&FheUint<FheUint152Id>> for &U256

Source§

type Output = FheUint<FheUint152Id>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: &FheUint152) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXor<&FheUint<FheUint160Id>> for U256

Source§

type Output = FheUint<FheUint160Id>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: &FheUint160) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXor<&FheUint<FheUint160Id>> for &U256

Source§

type Output = FheUint<FheUint160Id>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: &FheUint160) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXor<&FheUint<FheUint168Id>> for U256

Source§

type Output = FheUint<FheUint168Id>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: &FheUint168) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXor<&FheUint<FheUint168Id>> for &U256

Source§

type Output = FheUint<FheUint168Id>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: &FheUint168) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXor<&FheUint<FheUint176Id>> for U256

Source§

type Output = FheUint<FheUint176Id>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: &FheUint176) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXor<&FheUint<FheUint176Id>> for &U256

Source§

type Output = FheUint<FheUint176Id>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: &FheUint176) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXor<&FheUint<FheUint184Id>> for U256

Source§

type Output = FheUint<FheUint184Id>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: &FheUint184) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXor<&FheUint<FheUint184Id>> for &U256

Source§

type Output = FheUint<FheUint184Id>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: &FheUint184) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXor<&FheUint<FheUint192Id>> for U256

Source§

type Output = FheUint<FheUint192Id>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: &FheUint192) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXor<&FheUint<FheUint192Id>> for &U256

Source§

type Output = FheUint<FheUint192Id>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: &FheUint192) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXor<&FheUint<FheUint200Id>> for U256

Source§

type Output = FheUint<FheUint200Id>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: &FheUint200) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXor<&FheUint<FheUint200Id>> for &U256

Source§

type Output = FheUint<FheUint200Id>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: &FheUint200) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXor<&FheUint<FheUint208Id>> for U256

Source§

type Output = FheUint<FheUint208Id>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: &FheUint208) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXor<&FheUint<FheUint208Id>> for &U256

Source§

type Output = FheUint<FheUint208Id>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: &FheUint208) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXor<&FheUint<FheUint216Id>> for U256

Source§

type Output = FheUint<FheUint216Id>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: &FheUint216) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXor<&FheUint<FheUint216Id>> for &U256

Source§

type Output = FheUint<FheUint216Id>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: &FheUint216) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXor<&FheUint<FheUint224Id>> for U256

Source§

type Output = FheUint<FheUint224Id>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: &FheUint224) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXor<&FheUint<FheUint224Id>> for &U256

Source§

type Output = FheUint<FheUint224Id>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: &FheUint224) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXor<&FheUint<FheUint232Id>> for U256

Source§

type Output = FheUint<FheUint232Id>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: &FheUint232) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXor<&FheUint<FheUint232Id>> for &U256

Source§

type Output = FheUint<FheUint232Id>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: &FheUint232) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXor<&FheUint<FheUint240Id>> for U256

Source§

type Output = FheUint<FheUint240Id>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: &FheUint240) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXor<&FheUint<FheUint240Id>> for &U256

Source§

type Output = FheUint<FheUint240Id>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: &FheUint240) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXor<&FheUint<FheUint248Id>> for U256

Source§

type Output = FheUint<FheUint248Id>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: &FheUint248) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXor<&FheUint<FheUint248Id>> for &U256

Source§

type Output = FheUint<FheUint248Id>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: &FheUint248) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXor<&FheUint<FheUint256Id>> for U256

Source§

type Output = FheUint<FheUint256Id>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: &FheUint256) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXor<&FheUint<FheUint256Id>> for &U256

Source§

type Output = FheUint<FheUint256Id>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: &FheUint256) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXor<&FheUint<FheUint512Id>> for U512

Source§

type Output = FheUint<FheUint512Id>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: &FheUint512) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXor<&FheUint<FheUint512Id>> for &U512

Source§

type Output = FheUint<FheUint512Id>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: &FheUint512) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXor<&FheUint<FheUint1024Id>> for U1024

Source§

type Output = FheUint<FheUint1024Id>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: &FheUint1024) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXor<&FheUint<FheUint1024Id>> for &U1024

Source§

type Output = FheUint<FheUint1024Id>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: &FheUint1024) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXor<&FheUint<FheUint2048Id>> for U2048

Source§

type Output = FheUint<FheUint2048Id>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: &FheUint2048) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXor<&FheUint<FheUint2048Id>> for &U2048

Source§

type Output = FheUint<FheUint2048Id>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: &FheUint2048) -> Self::Output

Performs the ^ operation. Read more
Source§

impl<Id, B> BitXor<B> for FheUint<Id>
where Id: FheUintId, B: Borrow<Self>,

Source§

type Output = FheUint<Id>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: B) -> Self::Output

Performs the ^ operation. Read more
Source§

impl<Id, B> BitXor<B> for &FheUint<Id>
where Id: FheUintId, B: Borrow<FheUint<Id>>,

Source§

fn bitxor(self, rhs: B) -> Self::Output

Performs a bitwise ‘xor’ between two FheUint

§Example
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);
Source§

type Output = FheUint<Id>

The resulting type after applying the ^ operator.
Source§

impl BitXor<FheUint<FheUint2Id>> for u8

Source§

type Output = FheUint<FheUint2Id>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: FheUint2) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXor<FheUint<FheUint2Id>> for &u8

Source§

type Output = FheUint<FheUint2Id>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: FheUint2) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXor<FheUint<FheUint4Id>> for u8

Source§

type Output = FheUint<FheUint4Id>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: FheUint4) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXor<FheUint<FheUint4Id>> for &u8

Source§

type Output = FheUint<FheUint4Id>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: FheUint4) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXor<FheUint<FheUint6Id>> for u8

Source§

type Output = FheUint<FheUint6Id>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: FheUint6) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXor<FheUint<FheUint6Id>> for &u8

Source§

type Output = FheUint<FheUint6Id>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: FheUint6) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXor<FheUint<FheUint8Id>> for u8

Source§

type Output = FheUint<FheUint8Id>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: FheUint8) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXor<FheUint<FheUint8Id>> for &u8

Source§

type Output = FheUint<FheUint8Id>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: FheUint8) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXor<FheUint<FheUint10Id>> for u16

Source§

type Output = FheUint<FheUint10Id>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: FheUint10) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXor<FheUint<FheUint10Id>> for &u16

Source§

type Output = FheUint<FheUint10Id>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: FheUint10) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXor<FheUint<FheUint12Id>> for u16

Source§

type Output = FheUint<FheUint12Id>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: FheUint12) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXor<FheUint<FheUint12Id>> for &u16

Source§

type Output = FheUint<FheUint12Id>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: FheUint12) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXor<FheUint<FheUint14Id>> for u16

Source§

type Output = FheUint<FheUint14Id>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: FheUint14) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXor<FheUint<FheUint14Id>> for &u16

Source§

type Output = FheUint<FheUint14Id>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: FheUint14) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXor<FheUint<FheUint16Id>> for u16

Source§

type Output = FheUint<FheUint16Id>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: FheUint16) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXor<FheUint<FheUint16Id>> for &u16

Source§

type Output = FheUint<FheUint16Id>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: FheUint16) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXor<FheUint<FheUint24Id>> for u32

Source§

type Output = FheUint<FheUint24Id>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: FheUint24) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXor<FheUint<FheUint24Id>> for &u32

Source§

type Output = FheUint<FheUint24Id>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: FheUint24) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXor<FheUint<FheUint32Id>> for u32

Source§

type Output = FheUint<FheUint32Id>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: FheUint32) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXor<FheUint<FheUint32Id>> for &u32

Source§

type Output = FheUint<FheUint32Id>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: FheUint32) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXor<FheUint<FheUint40Id>> for u64

Source§

type Output = FheUint<FheUint40Id>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: FheUint40) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXor<FheUint<FheUint40Id>> for &u64

Source§

type Output = FheUint<FheUint40Id>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: FheUint40) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXor<FheUint<FheUint48Id>> for u64

Source§

type Output = FheUint<FheUint48Id>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: FheUint48) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXor<FheUint<FheUint48Id>> for &u64

Source§

type Output = FheUint<FheUint48Id>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: FheUint48) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXor<FheUint<FheUint56Id>> for u64

Source§

type Output = FheUint<FheUint56Id>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: FheUint56) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXor<FheUint<FheUint56Id>> for &u64

Source§

type Output = FheUint<FheUint56Id>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: FheUint56) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXor<FheUint<FheUint64Id>> for u64

Source§

type Output = FheUint<FheUint64Id>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: FheUint64) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXor<FheUint<FheUint64Id>> for &u64

Source§

type Output = FheUint<FheUint64Id>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: FheUint64) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXor<FheUint<FheUint72Id>> for u128

Source§

type Output = FheUint<FheUint72Id>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: FheUint72) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXor<FheUint<FheUint72Id>> for &u128

Source§

type Output = FheUint<FheUint72Id>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: FheUint72) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXor<FheUint<FheUint80Id>> for u128

Source§

type Output = FheUint<FheUint80Id>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: FheUint80) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXor<FheUint<FheUint80Id>> for &u128

Source§

type Output = FheUint<FheUint80Id>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: FheUint80) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXor<FheUint<FheUint88Id>> for u128

Source§

type Output = FheUint<FheUint88Id>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: FheUint88) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXor<FheUint<FheUint88Id>> for &u128

Source§

type Output = FheUint<FheUint88Id>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: FheUint88) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXor<FheUint<FheUint96Id>> for u128

Source§

type Output = FheUint<FheUint96Id>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: FheUint96) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXor<FheUint<FheUint96Id>> for &u128

Source§

type Output = FheUint<FheUint96Id>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: FheUint96) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXor<FheUint<FheUint104Id>> for u128

Source§

type Output = FheUint<FheUint104Id>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: FheUint104) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXor<FheUint<FheUint104Id>> for &u128

Source§

type Output = FheUint<FheUint104Id>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: FheUint104) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXor<FheUint<FheUint112Id>> for u128

Source§

type Output = FheUint<FheUint112Id>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: FheUint112) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXor<FheUint<FheUint112Id>> for &u128

Source§

type Output = FheUint<FheUint112Id>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: FheUint112) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXor<FheUint<FheUint120Id>> for u128

Source§

type Output = FheUint<FheUint120Id>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: FheUint120) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXor<FheUint<FheUint120Id>> for &u128

Source§

type Output = FheUint<FheUint120Id>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: FheUint120) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXor<FheUint<FheUint128Id>> for u128

Source§

type Output = FheUint<FheUint128Id>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: FheUint128) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXor<FheUint<FheUint128Id>> for &u128

Source§

type Output = FheUint<FheUint128Id>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: FheUint128) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXor<FheUint<FheUint136Id>> for U256

Source§

type Output = FheUint<FheUint136Id>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: FheUint136) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXor<FheUint<FheUint136Id>> for &U256

Source§

type Output = FheUint<FheUint136Id>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: FheUint136) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXor<FheUint<FheUint144Id>> for U256

Source§

type Output = FheUint<FheUint144Id>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: FheUint144) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXor<FheUint<FheUint144Id>> for &U256

Source§

type Output = FheUint<FheUint144Id>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: FheUint144) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXor<FheUint<FheUint152Id>> for U256

Source§

type Output = FheUint<FheUint152Id>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: FheUint152) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXor<FheUint<FheUint152Id>> for &U256

Source§

type Output = FheUint<FheUint152Id>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: FheUint152) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXor<FheUint<FheUint160Id>> for U256

Source§

type Output = FheUint<FheUint160Id>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: FheUint160) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXor<FheUint<FheUint160Id>> for &U256

Source§

type Output = FheUint<FheUint160Id>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: FheUint160) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXor<FheUint<FheUint168Id>> for U256

Source§

type Output = FheUint<FheUint168Id>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: FheUint168) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXor<FheUint<FheUint168Id>> for &U256

Source§

type Output = FheUint<FheUint168Id>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: FheUint168) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXor<FheUint<FheUint176Id>> for U256

Source§

type Output = FheUint<FheUint176Id>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: FheUint176) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXor<FheUint<FheUint176Id>> for &U256

Source§

type Output = FheUint<FheUint176Id>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: FheUint176) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXor<FheUint<FheUint184Id>> for U256

Source§

type Output = FheUint<FheUint184Id>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: FheUint184) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXor<FheUint<FheUint184Id>> for &U256

Source§

type Output = FheUint<FheUint184Id>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: FheUint184) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXor<FheUint<FheUint192Id>> for U256

Source§

type Output = FheUint<FheUint192Id>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: FheUint192) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXor<FheUint<FheUint192Id>> for &U256

Source§

type Output = FheUint<FheUint192Id>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: FheUint192) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXor<FheUint<FheUint200Id>> for U256

Source§

type Output = FheUint<FheUint200Id>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: FheUint200) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXor<FheUint<FheUint200Id>> for &U256

Source§

type Output = FheUint<FheUint200Id>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: FheUint200) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXor<FheUint<FheUint208Id>> for U256

Source§

type Output = FheUint<FheUint208Id>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: FheUint208) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXor<FheUint<FheUint208Id>> for &U256

Source§

type Output = FheUint<FheUint208Id>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: FheUint208) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXor<FheUint<FheUint216Id>> for U256

Source§

type Output = FheUint<FheUint216Id>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: FheUint216) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXor<FheUint<FheUint216Id>> for &U256

Source§

type Output = FheUint<FheUint216Id>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: FheUint216) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXor<FheUint<FheUint224Id>> for U256

Source§

type Output = FheUint<FheUint224Id>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: FheUint224) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXor<FheUint<FheUint224Id>> for &U256

Source§

type Output = FheUint<FheUint224Id>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: FheUint224) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXor<FheUint<FheUint232Id>> for U256

Source§

type Output = FheUint<FheUint232Id>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: FheUint232) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXor<FheUint<FheUint232Id>> for &U256

Source§

type Output = FheUint<FheUint232Id>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: FheUint232) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXor<FheUint<FheUint240Id>> for U256

Source§

type Output = FheUint<FheUint240Id>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: FheUint240) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXor<FheUint<FheUint240Id>> for &U256

Source§

type Output = FheUint<FheUint240Id>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: FheUint240) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXor<FheUint<FheUint248Id>> for U256

Source§

type Output = FheUint<FheUint248Id>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: FheUint248) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXor<FheUint<FheUint248Id>> for &U256

Source§

type Output = FheUint<FheUint248Id>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: FheUint248) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXor<FheUint<FheUint256Id>> for U256

Source§

type Output = FheUint<FheUint256Id>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: FheUint256) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXor<FheUint<FheUint256Id>> for &U256

Source§

type Output = FheUint<FheUint256Id>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: FheUint256) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXor<FheUint<FheUint512Id>> for U512

Source§

type Output = FheUint<FheUint512Id>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: FheUint512) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXor<FheUint<FheUint512Id>> for &U512

Source§

type Output = FheUint<FheUint512Id>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: FheUint512) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXor<FheUint<FheUint1024Id>> for U1024

Source§

type Output = FheUint<FheUint1024Id>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: FheUint1024) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXor<FheUint<FheUint1024Id>> for &U1024

Source§

type Output = FheUint<FheUint1024Id>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: FheUint1024) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXor<FheUint<FheUint2048Id>> for U2048

Source§

type Output = FheUint<FheUint2048Id>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: FheUint2048) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXor<FheUint<FheUint2048Id>> for &U2048

Source§

type Output = FheUint<FheUint2048Id>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: FheUint2048) -> Self::Output

Performs the ^ operation. Read more
Source§

impl<Id, I> BitXorAssign<I> for FheUint<Id>
where Id: FheUintId, I: Borrow<Self>,

Source§

fn bitxor_assign(&mut self, rhs: I)

Performs the ^= operation on FheUint

§Example
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);
let b = FheUint16::encrypt(37849u16, &client_key);

a ^= &b;
let result: u16 = a.decrypt(&client_key);
assert_eq!(result, 3u16 ^ 37849u16);
Source§

impl BitXorSizeOnGpu<&FheUint<FheUint2Id>> for u8

Source§

impl BitXorSizeOnGpu<&FheUint<FheUint4Id>> for u8

Source§

impl BitXorSizeOnGpu<&FheUint<FheUint6Id>> for u8

Source§

impl BitXorSizeOnGpu<&FheUint<FheUint8Id>> for u8

Source§

impl BitXorSizeOnGpu<&FheUint<FheUint10Id>> for u16

Source§

impl BitXorSizeOnGpu<&FheUint<FheUint12Id>> for u16

Source§

impl BitXorSizeOnGpu<&FheUint<FheUint14Id>> for u16

Source§

impl BitXorSizeOnGpu<&FheUint<FheUint16Id>> for u16

Source§

impl BitXorSizeOnGpu<&FheUint<FheUint24Id>> for u32

Source§

impl BitXorSizeOnGpu<&FheUint<FheUint32Id>> for u32

Source§

impl BitXorSizeOnGpu<&FheUint<FheUint40Id>> for u64

Source§

impl BitXorSizeOnGpu<&FheUint<FheUint48Id>> for u64

Source§

impl BitXorSizeOnGpu<&FheUint<FheUint56Id>> for u64

Source§

impl BitXorSizeOnGpu<&FheUint<FheUint64Id>> for u64

Source§

impl BitXorSizeOnGpu<&FheUint<FheUint72Id>> for u128

Source§

impl BitXorSizeOnGpu<&FheUint<FheUint80Id>> for u128

Source§

impl BitXorSizeOnGpu<&FheUint<FheUint88Id>> for u128

Source§

impl BitXorSizeOnGpu<&FheUint<FheUint96Id>> for u128

Source§

impl BitXorSizeOnGpu<&FheUint<FheUint104Id>> for u128

Source§

impl BitXorSizeOnGpu<&FheUint<FheUint112Id>> for u128

Source§

impl BitXorSizeOnGpu<&FheUint<FheUint120Id>> for u128

Source§

impl BitXorSizeOnGpu<&FheUint<FheUint128Id>> for u128

Source§

impl BitXorSizeOnGpu<&FheUint<FheUint136Id>> for U256

Source§

impl BitXorSizeOnGpu<&FheUint<FheUint144Id>> for U256

Source§

impl BitXorSizeOnGpu<&FheUint<FheUint152Id>> for U256

Source§

impl BitXorSizeOnGpu<&FheUint<FheUint160Id>> for U256

Source§

impl BitXorSizeOnGpu<&FheUint<FheUint168Id>> for U256

Source§

impl BitXorSizeOnGpu<&FheUint<FheUint176Id>> for U256

Source§

impl BitXorSizeOnGpu<&FheUint<FheUint184Id>> for U256

Source§

impl BitXorSizeOnGpu<&FheUint<FheUint192Id>> for U256

Source§

impl BitXorSizeOnGpu<&FheUint<FheUint200Id>> for U256

Source§

impl BitXorSizeOnGpu<&FheUint<FheUint208Id>> for U256

Source§

impl BitXorSizeOnGpu<&FheUint<FheUint216Id>> for U256

Source§

impl BitXorSizeOnGpu<&FheUint<FheUint224Id>> for U256

Source§

impl BitXorSizeOnGpu<&FheUint<FheUint232Id>> for U256

Source§

impl BitXorSizeOnGpu<&FheUint<FheUint240Id>> for U256

Source§

impl BitXorSizeOnGpu<&FheUint<FheUint248Id>> for U256

Source§

impl BitXorSizeOnGpu<&FheUint<FheUint256Id>> for U256

Source§

impl BitXorSizeOnGpu<&FheUint<FheUint512Id>> for U512

Source§

impl BitXorSizeOnGpu<&FheUint<FheUint1024Id>> for U1024

Source§

impl BitXorSizeOnGpu<&FheUint<FheUint2048Id>> for U2048

Source§

impl BitXorSizeOnGpu<FheUint<FheUint2Id>> for u8

Source§

impl BitXorSizeOnGpu<FheUint<FheUint4Id>> for u8

Source§

impl BitXorSizeOnGpu<FheUint<FheUint6Id>> for u8

Source§

impl BitXorSizeOnGpu<FheUint<FheUint8Id>> for u8

Source§

impl BitXorSizeOnGpu<FheUint<FheUint10Id>> for u16

Source§

impl BitXorSizeOnGpu<FheUint<FheUint12Id>> for u16

Source§

impl BitXorSizeOnGpu<FheUint<FheUint14Id>> for u16

Source§

impl BitXorSizeOnGpu<FheUint<FheUint16Id>> for u16

Source§

impl BitXorSizeOnGpu<FheUint<FheUint24Id>> for u32

Source§

impl BitXorSizeOnGpu<FheUint<FheUint32Id>> for u32

Source§

impl BitXorSizeOnGpu<FheUint<FheUint40Id>> for u64

Source§

impl BitXorSizeOnGpu<FheUint<FheUint48Id>> for u64

Source§

impl BitXorSizeOnGpu<FheUint<FheUint56Id>> for u64

Source§

impl BitXorSizeOnGpu<FheUint<FheUint64Id>> for u64

Source§

impl BitXorSizeOnGpu<FheUint<FheUint72Id>> for u128

Source§

impl BitXorSizeOnGpu<FheUint<FheUint80Id>> for u128

Source§

impl BitXorSizeOnGpu<FheUint<FheUint88Id>> for u128

Source§

impl BitXorSizeOnGpu<FheUint<FheUint96Id>> for u128

Source§

impl BitXorSizeOnGpu<FheUint<FheUint104Id>> for u128

Source§

impl BitXorSizeOnGpu<FheUint<FheUint112Id>> for u128

Source§

impl BitXorSizeOnGpu<FheUint<FheUint120Id>> for u128

Source§

impl BitXorSizeOnGpu<FheUint<FheUint128Id>> for u128

Source§

impl BitXorSizeOnGpu<FheUint<FheUint136Id>> for U256

Source§

impl BitXorSizeOnGpu<FheUint<FheUint144Id>> for U256

Source§

impl BitXorSizeOnGpu<FheUint<FheUint152Id>> for U256

Source§

impl BitXorSizeOnGpu<FheUint<FheUint160Id>> for U256

Source§

impl BitXorSizeOnGpu<FheUint<FheUint168Id>> for U256

Source§

impl BitXorSizeOnGpu<FheUint<FheUint176Id>> for U256

Source§

impl BitXorSizeOnGpu<FheUint<FheUint184Id>> for U256

Source§

impl BitXorSizeOnGpu<FheUint<FheUint192Id>> for U256

Source§

impl BitXorSizeOnGpu<FheUint<FheUint200Id>> for U256

Source§

impl BitXorSizeOnGpu<FheUint<FheUint208Id>> for U256

Source§

impl BitXorSizeOnGpu<FheUint<FheUint216Id>> for U256

Source§

impl BitXorSizeOnGpu<FheUint<FheUint224Id>> for U256

Source§

impl BitXorSizeOnGpu<FheUint<FheUint232Id>> for U256

Source§

impl BitXorSizeOnGpu<FheUint<FheUint240Id>> for U256

Source§

impl BitXorSizeOnGpu<FheUint<FheUint248Id>> for U256

Source§

impl BitXorSizeOnGpu<FheUint<FheUint256Id>> for U256

Source§

impl BitXorSizeOnGpu<FheUint<FheUint512Id>> for U512

Source§

impl BitXorSizeOnGpu<FheUint<FheUint1024Id>> for U1024

Source§

impl BitXorSizeOnGpu<FheUint<FheUint2048Id>> for U2048

Source§

impl<Id, I> BitXorSizeOnGpu<I> for FheUint<Id>
where Id: FheUintId, I: Borrow<Self>,

Available on crate feature gpu only.
Source§

fn get_bitxor_size_on_gpu(&self, rhs: I) -> u64

Source§

impl<Id> CastFrom<FheBool> for FheUint<Id>
where Id: FheUintId,

Source§

fn cast_from(input: FheBool) -> Self

Cast a boolean ciphertext to an unsigned ciphertext

§Example
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);

let decrypted: u16 = b.decrypt(&client_key);
assert_eq!(decrypted, u16::from(true));
Source§

impl<FromId, IntoId> CastFrom<FheInt<FromId>> for FheUint<IntoId>
where FromId: FheIntId, IntoId: FheUintId,

Source§

fn cast_from(input: FheInt<FromId>) -> Self

Cast a FheInt to an FheUint

§Example
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);

let decrypted: u16 = b.decrypt(&client_key);
assert_eq!(decrypted, i32::MIN as u16);
Source§

impl<FromId, IntoId> CastFrom<FheUint<FromId>> for FheInt<IntoId>
where FromId: FheUintId, IntoId: FheIntId,

Source§

fn cast_from(input: FheUint<FromId>) -> Self

Cast a FheUint to a FheInt

§Example
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);

let decrypted: i16 = b.decrypt(&client_key);
assert_eq!(decrypted, u32::MAX as i16);
Source§

impl<FromId, IntoId> CastFrom<FheUint<FromId>> for FheUint<IntoId>
where FromId: FheUintId, IntoId: FheUintId,

Source§

fn cast_from(input: FheUint<FromId>) -> Self

Cast FheUint to another FheUint

§Example
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);

let decrypted: u16 = b.decrypt(&client_key);
assert_eq!(decrypted, u32::MAX as u16);
Source§

impl<Id: Clone + FheUintId> Clone for FheUint<Id>

Source§

fn clone(&self) -> FheUint<Id>

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl<Id: FheUintId> CudaCompressible for FheUint<Id>

Source§

fn compress_into( self, messages: &mut Vec<CudaRadixCiphertext>, streams: &CudaStreams, ) -> Option<DataKind>

Source§

impl<Id: FheUintId> CudaExpandable for FheUint<Id>

Source§

impl<'de, Id> Deserialize<'de> for FheUint<Id>
where Id: Deserialize<'de> + FheUintId,

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl<Id, B> Div<B> for FheUint<Id>
where Id: FheUintId, B: Borrow<Self>,

Source§

type Output = FheUint<Id>

The resulting type after applying the / operator.
Source§

fn div(self, rhs: B) -> Self::Output

Performs the / operation. Read more
Source§

impl<Id, B> Div<B> for &FheUint<Id>
where Id: FheUintId, B: Borrow<FheUint<Id>>,

Source§

fn div(self, rhs: B) -> Self::Output

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
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);
Source§

type Output = FheUint<Id>

The resulting type after applying the / operator.
Source§

impl<Id, I> DivAssign<I> for FheUint<Id>
where Id: FheUintId, I: Borrow<Self>,

Source§

fn div_assign(&mut self, rhs: I)

Performs the /= operation on FheUint

§Note

If you need both the quotient and remainder, then prefer to use FheUint::div_rem, instead of using / and % separately.

§Example
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);
let b = FheUint16::encrypt(3u16, &client_key);

a /= &b;
let result: u16 = a.decrypt(&client_key);
assert_eq!(result, 37849u16 / 3u16);
Source§

impl<Id> DivRem for FheUint<Id>
where Id: FheUintId,

Source§

type Output = (FheUint<Id>, FheUint<Id>)

Source§

fn div_rem(self, rhs: Self) -> Self::Output

Source§

impl<Id> DivRem for &FheUint<Id>
where Id: FheUintId,

Source§

fn div_rem(self, rhs: Self) -> Self::Output

Computes the quotient and remainder between two FheUint

If you need both the quotient and remainder, then div_rem is better than computing them separately using / and %.

§Notes

When the divisor is 0, the returned quotient will be the max value (i.e. all bits set to 1), the remainder will be the value of the numerator.

This behaviour should not be relied on.

§Example
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 (quotient, remainder) = (&a).div_rem(&b);

let quotient: u16 = quotient.decrypt(&client_key);
assert_eq!(quotient, 23u16 / 3u16);
let remainder: u16 = remainder.decrypt(&client_key);
assert_eq!(remainder, 23u16 % 3u16);
Source§

type Output = (FheUint<Id>, FheUint<Id>)

Source§

impl<Id> DivRem<&FheUint<Id>> for FheUint<Id>
where Id: FheUintId,

Source§

type Output = (FheUint<Id>, FheUint<Id>)

Source§

fn div_rem(self, rhs: &Self) -> Self::Output

Source§

impl<Id> DivRemSizeOnGpu<&FheUint<Id>> for FheUint<Id>
where Id: FheUintId,

Available on crate feature gpu only.
Source§

fn get_div_rem_size_on_gpu(&self, rhs: &Self) -> u64

Source§

impl<Id> DivSizeOnGpu<&FheUint<Id>> for FheUint<Id>
where Id: FheUintId,

Available on crate feature gpu only.
Source§

fn get_div_size_on_gpu(&self, rhs: &Self) -> u64

Source§

impl<Id: FheUintId> Expandable for FheUint<Id>

Source§

impl<Id, ClearType> FheDecrypt<ClearType> for FheUint<Id>
where Id: FheUintId, ClearType: RecomposableFrom<u64> + UnsignedNumeric,

Source§

fn decrypt(&self, key: &ClientKey) -> ClearType

Decrypts a FheUint to an unsigned type.

The unsigned type has to be explicit.

§Example
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
let decrypted: u16 = a.decrypt(&client_key);
assert_eq!(decrypted, 7288u16);

// u32 is explicit
let decrypted: u32 = a.decrypt(&client_key);
assert_eq!(decrypted, 7288u32);
Source§

impl<Id> FheEq for FheUint<Id>
where Id: FheUintId,

Source§

fn eq(&self, rhs: Self) -> FheBool

Source§

fn ne(&self, rhs: Self) -> FheBool

Source§

impl<Id> FheEq<&FheUint<Id>> for FheUint<Id>
where Id: FheUintId,

Source§

fn eq(&self, rhs: &Self) -> FheBool

Test for equality between two FheUint

§Example
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);
let b = FheUint16::encrypt(2u16, &client_key);

let result = a.eq(&b);

let decrypted = result.decrypt(&client_key);
assert_eq!(decrypted, 1u16 == 2u16);
Source§

fn ne(&self, rhs: &Self) -> FheBool

Test for difference between two FheUint

§Example
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);
let b = FheUint16::encrypt(2u16, &client_key);

let result = a.ne(&b);

let decrypted = result.decrypt(&client_key);
assert_eq!(decrypted, 1u16 != 2u16);
Source§

impl<Id, Clear> FheEq<Clear> for FheUint<Id>
where Clear: DecomposableInto<u64>, Id: FheUintId,

Source§

fn eq(&self, rhs: Clear) -> FheBool

Test for equality between a FheUint and a clear

§Example
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);
let b = 2u16;

let result = a.eq(b);

let decrypted = result.decrypt(&client_key);
assert_eq!(decrypted, 1u16 == 2u16);
Source§

fn ne(&self, rhs: Clear) -> FheBool

Test for difference between a FheUint and a clear

§Example
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);
let b = 2u16;

let result = a.ne(b);

let decrypted = result.decrypt(&client_key);
assert_eq!(decrypted, 1u16 != 2u16);
Source§

impl<Id> FheEqSizeOnGpu<&FheUint<Id>> for FheUint<Id>
where Id: FheUintId,

Available on crate feature gpu only.
Source§

fn get_eq_size_on_gpu(&self, rhs: &Self) -> u64

Source§

fn get_ne_size_on_gpu(&self, rhs: &Self) -> u64

Source§

impl<Id, Clear> FheEqSizeOnGpu<Clear> for FheUint<Id>
where Id: FheUintId, Clear: DecomposableInto<u64>,

Available on crate feature gpu only.
Source§

fn get_eq_size_on_gpu(&self, _rhs: Clear) -> u64

Source§

fn get_ne_size_on_gpu(&self, _rhs: Clear) -> u64

Source§

impl<Id> FheHpu for FheUint<Id>
where Id: FheUintId,

Available on crate feature hpu only.
Source§

fn iop_exec(iop: &AsmIOpcode, src: HpuHandle<&Self>) -> HpuHandle<Self>

Source§

impl<Id> FheIntegerType for FheUint<Id>
where Id: FheUintId,

Source§

type Id = Id

Source§

fn on_cpu(&self) -> MaybeCloned<'_, <Self::Id as IntegerId>::InnerCpu>

Source§

fn into_cpu(self) -> <Self::Id as IntegerId>::InnerCpu

Source§

fn from_cpu( inner: <Self::Id as IntegerId>::InnerCpu, tag: Tag, re_randomization_metadata: ReRandomizationMetadata, ) -> Self

Source§

fn on_gpu( &self, streams: &CudaStreams, ) -> MaybeCloned<'_, <Self::Id as IntegerId>::InnerGpu>

Source§

fn into_gpu(self, streams: &CudaStreams) -> <Self::Id as IntegerId>::InnerGpu

Source§

fn from_gpu( inner: <Self::Id as IntegerId>::InnerGpu, tag: Tag, re_randomization_metadata: ReRandomizationMetadata, ) -> Self

Source§

impl<Id> FheKeyswitch<FheUint<Id>> for KeySwitchingKey
where Id: FheUintId,

Source§

fn keyswitch(&self, input: &FheUint<Id>) -> FheUint<Id>

Source§

impl<Id> FheMax for FheUint<Id>
where Id: FheUintId,

Source§

type Output = FheUint<Id>

Source§

fn max(&self, rhs: Self) -> Self::Output

Source§

impl<Id> FheMax<&FheUint<Id>> for FheUint<Id>
where Id: FheUintId,

Source§

fn max(&self, rhs: &Self) -> Self::Output

Returns the max between two FheUint

§Example
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);
let b = FheUint16::encrypt(2u16, &client_key);

let result = a.max(&b);

let decrypted_max: u16 = result.decrypt(&client_key);
assert_eq!(decrypted_max, 2u16);
Source§

type Output = FheUint<Id>

Source§

impl<Id, Clear> FheMax<Clear> for FheUint<Id>
where Clear: DecomposableInto<u64>, Id: FheUintId,

Source§

fn max(&self, rhs: Clear) -> Self::Output

Returns the max between FheUint and a clear value

§Example
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);
let b = 2u16;

let result = a.max(b);

let decrypted_max: u16 = result.decrypt(&client_key);
assert_eq!(decrypted_max, 2u16);
Source§

type Output = FheUint<Id>

Source§

impl<Id> FheMaxSizeOnGpu<&FheUint<Id>> for FheUint<Id>
where Id: FheUintId,

Available on crate feature gpu only.
Source§

fn get_max_size_on_gpu(&self, rhs: &Self) -> u64

Source§

impl<Id, Clear> FheMaxSizeOnGpu<Clear> for FheUint<Id>
where Id: FheUintId, Clear: DecomposableInto<u64>,

Available on crate feature gpu only.
Source§

fn get_max_size_on_gpu(&self, _rhs: Clear) -> u64

Source§

impl<Id> FheMin for FheUint<Id>
where Id: FheUintId,

Source§

type Output = FheUint<Id>

Source§

fn min(&self, rhs: Self) -> Self::Output

Source§

impl<Id> FheMin<&FheUint<Id>> for FheUint<Id>
where Id: FheUintId,

Source§

fn min(&self, rhs: &Self) -> Self::Output

Returns the min between two FheUint

§Example
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);
let b = FheUint16::encrypt(2u16, &client_key);

let result = a.min(&b);

let decrypted_min: u16 = result.decrypt(&client_key);
assert_eq!(decrypted_min, 1u16);
Source§

type Output = FheUint<Id>

Source§

impl<Id, Clear> FheMin<Clear> for FheUint<Id>
where Id: FheUintId, Clear: DecomposableInto<u64>,

Source§

fn min(&self, rhs: Clear) -> Self::Output

Returns the min between FheUint and a clear value

§Example
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);
let b = 2u16;

let result = a.min(b);

let decrypted_min: u16 = result.decrypt(&client_key);
assert_eq!(decrypted_min, 1u16);
Source§

type Output = FheUint<Id>

Source§

impl<Id> FheMinSizeOnGpu<&FheUint<Id>> for FheUint<Id>
where Id: FheUintId,

Available on crate feature gpu only.
Source§

fn get_min_size_on_gpu(&self, rhs: &Self) -> u64

Source§

impl<Id, Clear> FheMinSizeOnGpu<Clear> for FheUint<Id>
where Id: FheUintId, Clear: DecomposableInto<u64>,

Available on crate feature gpu only.
Source§

fn get_min_size_on_gpu(&self, _rhs: Clear) -> u64

Source§

impl<Id> FheOrd for FheUint<Id>
where Id: FheUintId,

Source§

fn lt(&self, rhs: Self) -> FheBool

Source§

fn le(&self, rhs: Self) -> FheBool

Source§

fn gt(&self, rhs: Self) -> FheBool

Source§

fn ge(&self, rhs: Self) -> FheBool

Source§

impl<Id> FheOrd<&FheUint<Id>> for FheUint<Id>
where Id: FheUintId,

Source§

fn lt(&self, rhs: &Self) -> FheBool

Test for less than between two FheUint

§Example
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);
let b = FheUint16::encrypt(2u16, &client_key);

let result = a.lt(&b);

let decrypted = result.decrypt(&client_key);
assert_eq!(decrypted, 1u16 < 2u16);
Source§

fn le(&self, rhs: &Self) -> FheBool

Test for less than or equal between two FheUint

§Example
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);
let b = FheUint16::encrypt(2u16, &client_key);

let result = a.le(&b);

let decrypted = result.decrypt(&client_key);
assert_eq!(decrypted, 1u16 <= 2u16);
Source§

fn gt(&self, rhs: &Self) -> FheBool

Test for greater than between two FheUint

§Example
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);
let b = FheUint16::encrypt(2u16, &client_key);

let result = a.gt(&b);

let decrypted = result.decrypt(&client_key);
assert_eq!(decrypted, 1u16 > 2u16);
Source§

fn ge(&self, rhs: &Self) -> FheBool

Test for greater than or equal between two FheUint

§Example
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);
let b = FheUint16::encrypt(2u16, &client_key);

let result = a.gt(&b);

let decrypted = result.decrypt(&client_key);
assert_eq!(decrypted, 1u16 > 2u16);
Source§

impl<Id, Clear> FheOrd<Clear> for FheUint<Id>
where Id: FheUintId, Clear: DecomposableInto<u64>,

Source§

fn lt(&self, rhs: Clear) -> FheBool

Test for less than between a FheUint and a clear value

§Example
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);
let b = 2u16;

let result = a.lt(b);

let decrypted = result.decrypt(&client_key);
assert_eq!(decrypted, 1u16 < 2u16);
Source§

fn le(&self, rhs: Clear) -> FheBool

Test for less than or equal between a FheUint and a clear value

§Example
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);
let b = 2u16;

let result = a.le(b);

let decrypted = result.decrypt(&client_key);
assert_eq!(decrypted, 1u16 <= 2u16);
Source§

fn gt(&self, rhs: Clear) -> FheBool

Test for greater than between a FheUint and a clear value

§Example
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);
let b = 2u16;

let result = a.gt(b);

let decrypted = result.decrypt(&client_key);
assert_eq!(decrypted, 1u16 > 2u16);
Source§

fn ge(&self, rhs: Clear) -> FheBool

Test for greater than or equal between a FheUint and a clear value

§Example
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);
let b = 2u16;

let result = a.ge(b);

let decrypted = result.decrypt(&client_key);
assert_eq!(decrypted, 1u16 >= 2u16);
Source§

impl<Id> FheOrdSizeOnGpu<&FheUint<Id>> for FheUint<Id>
where Id: FheUintId,

Available on crate feature gpu only.
Source§

fn get_gt_size_on_gpu(&self, rhs: &Self) -> u64

Source§

fn get_ge_size_on_gpu(&self, rhs: &Self) -> u64

Source§

fn get_lt_size_on_gpu(&self, rhs: &Self) -> u64

Source§

fn get_le_size_on_gpu(&self, rhs: &Self) -> u64

Source§

impl<Id, Clear> FheOrdSizeOnGpu<Clear> for FheUint<Id>
where Id: FheUintId, Clear: DecomposableInto<u64>,

Available on crate feature gpu only.
Source§

fn get_gt_size_on_gpu(&self, _rhs: Clear) -> u64

Source§

fn get_ge_size_on_gpu(&self, _rhs: Clear) -> u64

Source§

fn get_lt_size_on_gpu(&self, _rhs: Clear) -> u64

Source§

fn get_le_size_on_gpu(&self, _rhs: Clear) -> u64

Source§

impl<Id, Clear> FheSliceDotProduct<FheBool, Clear> for FheUint<Id>
where Clear: UnsignedNumeric + DecomposableInto<u64> + CastInto<usize> + CastFrom<u128> + Mul<Clear, Output = Clear> + AddAssign<Clear> + OverflowingAdd<Clear, Output = Clear>, Id: FheUintId,

Source§

fn dot_product(bools: &[FheBool], clears: &[Clear]) -> Self

Performs a dot product between a slice of encrypted booleans and a slice of clear unsigned integers.

§Example
use tfhe::prelude::*;
use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheBool, FheUint8};

let (client_key, server_key) = generate_keys(ConfigBuilder::default());
set_server_key(server_key);

let a = [true, false, true]
    .into_iter()
    .map(|b| FheBool::encrypt(b, &client_key))
    .collect::<Vec<_>>();

let b = [2u8, 3u8, 4u8];

let result = FheUint8::dot_product(&a, &b);
let decrypted: u8 = result.decrypt(&client_key);
assert_eq!(decrypted, 6u8);
Source§

impl<Id, T> FheTrivialEncrypt<T> for FheUint<Id>

Source§

fn encrypt_trivial(value: T) -> Self

Creates a trivially encrypted FheUint

A trivial encryption is not an encryption, the value can be retrieved by anyone as if it were a clear value.

Thus no client or public key is needed to create a trivial encryption, this can be useful to initialize some values.

As soon as a trivial encryption is used in an operation that involves non trivial encryption, the result will be non trivial (secure).

§Example
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);

let decrypted: u16 = a.decrypt(&client_key);
assert_eq!(decrypted, 7288u16);
Source§

impl<Id, T> FheTryEncrypt<T, ClientKey> for FheUint<Id>

Source§

type Error = Error

Source§

fn try_encrypt(value: T, key: &ClientKey) -> Result<Self, Self::Error>

Source§

impl<Id, T> FheTryEncrypt<T, CompressedPublicKey> for FheUint<Id>

Source§

type Error = Error

Source§

fn try_encrypt(value: T, key: &CompressedPublicKey) -> Result<Self, Self::Error>

Source§

impl<Id, T> FheTryEncrypt<T, PublicKey> for FheUint<Id>

Source§

type Error = Error

Source§

fn try_encrypt(value: T, key: &PublicKey) -> Result<Self, Self::Error>

Source§

impl<Id, T> FheTryTrivialEncrypt<T> for FheUint<Id>

Source§

type Error = Error

Source§

fn try_encrypt_trivial(value: T) -> Result<Self, Self::Error>

Source§

impl<Id> FheWait for FheUint<Id>
where Id: FheUintId,

Source§

fn wait(&self)

Source§

impl<Id> Flip<&FheUint<Id>, &FheUint<Id>> for FheBool
where Id: FheUintId + Send + Sync,

Source§

fn flip( &self, lhs: &FheUint<Id>, rhs: &FheUint<Id>, ) -> (Self::Output, Self::Output)

Flips the two inputs based on the value of self.

  • flip(true, a, b) returns (b, a)
  • flip(false, a, b) returns (a, b)
§Example
use tfhe::prelude::*;
use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheBool, FheUint32};

let (client_key, server_key) = generate_keys(ConfigBuilder::default());
set_server_key(server_key);

let a = u32::MIN;
let b = FheUint32::encrypt(u32::MAX, &client_key);
let cond = FheBool::encrypt(true, &client_key);

let (ra, rb) = cond.flip(a, &b);
let da: u32 = ra.decrypt(&client_key);
let db: u32 = rb.decrypt(&client_key);
assert_eq!((da, db), (u32::MAX, u32::MIN));
Source§

type Output = FheUint<Id>

Source§

impl<Id, T> Flip<&FheUint<Id>, T> for FheBool

Source§

type Output = FheUint<Id>

Source§

fn flip(&self, lhs: &FheUint<Id>, rhs: T) -> (Self::Output, Self::Output)

Source§

impl<Id, T> Flip<T, &FheUint<Id>> for FheBool

Source§

type Output = FheUint<Id>

Source§

fn flip(&self, lhs: T, rhs: &FheUint<Id>) -> (Self::Output, Self::Output)

Source§

impl FusedMulScalarDiv<&FheUint<FheUint2Id>, u8> for &FheUint2

Source§

type Output = FheUint<FheUint2Id>

Source§

fn fused_mul_scalar_div(self, mul: &FheUint2, div_scalar: u8) -> Self::Output

Source§

impl FusedMulScalarDiv<&FheUint<FheUint2Id>, u8> for FheUint2

Source§

type Output = FheUint<FheUint2Id>

Source§

fn fused_mul_scalar_div(self, mul: &FheUint2, div_scalar: u8) -> Self::Output

Source§

impl FusedMulScalarDiv<&FheUint<FheUint4Id>, u8> for &FheUint4

Source§

type Output = FheUint<FheUint4Id>

Source§

fn fused_mul_scalar_div(self, mul: &FheUint4, div_scalar: u8) -> Self::Output

Source§

impl FusedMulScalarDiv<&FheUint<FheUint4Id>, u8> for FheUint4

Source§

type Output = FheUint<FheUint4Id>

Source§

fn fused_mul_scalar_div(self, mul: &FheUint4, div_scalar: u8) -> Self::Output

Source§

impl FusedMulScalarDiv<&FheUint<FheUint6Id>, u8> for &FheUint6

Source§

type Output = FheUint<FheUint6Id>

Source§

fn fused_mul_scalar_div(self, mul: &FheUint6, div_scalar: u8) -> Self::Output

Source§

impl FusedMulScalarDiv<&FheUint<FheUint6Id>, u8> for FheUint6

Source§

type Output = FheUint<FheUint6Id>

Source§

fn fused_mul_scalar_div(self, mul: &FheUint6, div_scalar: u8) -> Self::Output

Source§

impl FusedMulScalarDiv<&FheUint<FheUint8Id>, u8> for &FheUint8

Source§

type Output = FheUint<FheUint8Id>

Source§

fn fused_mul_scalar_div(self, mul: &FheUint8, div_scalar: u8) -> Self::Output

Source§

impl FusedMulScalarDiv<&FheUint<FheUint8Id>, u8> for FheUint8

Source§

type Output = FheUint<FheUint8Id>

Source§

fn fused_mul_scalar_div(self, mul: &FheUint8, div_scalar: u8) -> Self::Output

Source§

impl FusedMulScalarDiv<&FheUint<FheUint10Id>, u16> for &FheUint10

Source§

impl FusedMulScalarDiv<&FheUint<FheUint10Id>, u16> for FheUint10

Source§

impl FusedMulScalarDiv<&FheUint<FheUint12Id>, u16> for &FheUint12

Source§

impl FusedMulScalarDiv<&FheUint<FheUint12Id>, u16> for FheUint12

Source§

impl FusedMulScalarDiv<&FheUint<FheUint14Id>, u16> for &FheUint14

Source§

impl FusedMulScalarDiv<&FheUint<FheUint14Id>, u16> for FheUint14

Source§

impl FusedMulScalarDiv<&FheUint<FheUint16Id>, u16> for &FheUint16

Source§

impl FusedMulScalarDiv<&FheUint<FheUint16Id>, u16> for FheUint16

Source§

impl FusedMulScalarDiv<&FheUint<FheUint24Id>, u32> for &FheUint24

Source§

impl FusedMulScalarDiv<&FheUint<FheUint24Id>, u32> for FheUint24

Source§

impl FusedMulScalarDiv<&FheUint<FheUint32Id>, u32> for &FheUint32

Source§

impl FusedMulScalarDiv<&FheUint<FheUint32Id>, u32> for FheUint32

Source§

impl FusedMulScalarDiv<&FheUint<FheUint40Id>, u64> for &FheUint40

Source§

impl FusedMulScalarDiv<&FheUint<FheUint40Id>, u64> for FheUint40

Source§

impl FusedMulScalarDiv<&FheUint<FheUint48Id>, u64> for &FheUint48

Source§

impl FusedMulScalarDiv<&FheUint<FheUint48Id>, u64> for FheUint48

Source§

impl FusedMulScalarDiv<&FheUint<FheUint56Id>, u64> for &FheUint56

Source§

impl FusedMulScalarDiv<&FheUint<FheUint56Id>, u64> for FheUint56

Source§

impl FusedMulScalarDiv<&FheUint<FheUint64Id>, u64> for &FheUint64

Source§

impl FusedMulScalarDiv<&FheUint<FheUint64Id>, u64> for FheUint64

Source§

impl FusedMulScalarDiv<&FheUint<FheUint72Id>, u128> for &FheUint72

Source§

impl FusedMulScalarDiv<&FheUint<FheUint72Id>, u128> for FheUint72

Source§

impl FusedMulScalarDiv<&FheUint<FheUint80Id>, u128> for &FheUint80

Source§

impl FusedMulScalarDiv<&FheUint<FheUint80Id>, u128> for FheUint80

Source§

impl FusedMulScalarDiv<&FheUint<FheUint88Id>, u128> for &FheUint88

Source§

impl FusedMulScalarDiv<&FheUint<FheUint88Id>, u128> for FheUint88

Source§

impl FusedMulScalarDiv<&FheUint<FheUint96Id>, u128> for &FheUint96

Source§

impl FusedMulScalarDiv<&FheUint<FheUint96Id>, u128> for FheUint96

Source§

impl FusedMulScalarDiv<&FheUint<FheUint104Id>, u128> for &FheUint104

Source§

type Output = FheUint<FheUint104Id>

Source§

fn fused_mul_scalar_div( self, mul: &FheUint104, div_scalar: u128, ) -> Self::Output

Source§

impl FusedMulScalarDiv<&FheUint<FheUint104Id>, u128> for FheUint104

Source§

type Output = FheUint<FheUint104Id>

Source§

fn fused_mul_scalar_div( self, mul: &FheUint104, div_scalar: u128, ) -> Self::Output

Source§

impl FusedMulScalarDiv<&FheUint<FheUint112Id>, u128> for &FheUint112

Source§

type Output = FheUint<FheUint112Id>

Source§

fn fused_mul_scalar_div( self, mul: &FheUint112, div_scalar: u128, ) -> Self::Output

Source§

impl FusedMulScalarDiv<&FheUint<FheUint112Id>, u128> for FheUint112

Source§

type Output = FheUint<FheUint112Id>

Source§

fn fused_mul_scalar_div( self, mul: &FheUint112, div_scalar: u128, ) -> Self::Output

Source§

impl FusedMulScalarDiv<&FheUint<FheUint120Id>, u128> for &FheUint120

Source§

type Output = FheUint<FheUint120Id>

Source§

fn fused_mul_scalar_div( self, mul: &FheUint120, div_scalar: u128, ) -> Self::Output

Source§

impl FusedMulScalarDiv<&FheUint<FheUint120Id>, u128> for FheUint120

Source§

type Output = FheUint<FheUint120Id>

Source§

fn fused_mul_scalar_div( self, mul: &FheUint120, div_scalar: u128, ) -> Self::Output

Source§

impl FusedMulScalarDiv<&FheUint<FheUint128Id>, u128> for &FheUint128

Source§

type Output = FheUint<FheUint128Id>

Source§

fn fused_mul_scalar_div( self, mul: &FheUint128, div_scalar: u128, ) -> Self::Output

Source§

impl FusedMulScalarDiv<&FheUint<FheUint128Id>, u128> for FheUint128

Source§

type Output = FheUint<FheUint128Id>

Source§

fn fused_mul_scalar_div( self, mul: &FheUint128, div_scalar: u128, ) -> Self::Output

Source§

impl FusedMulScalarDiv<&FheUint<FheUint136Id>, StaticUnsignedBigInt<4>> for &FheUint136

Source§

type Output = FheUint<FheUint136Id>

Source§

fn fused_mul_scalar_div( self, mul: &FheUint136, div_scalar: U256, ) -> Self::Output

Source§

impl FusedMulScalarDiv<&FheUint<FheUint136Id>, StaticUnsignedBigInt<4>> for FheUint136

Source§

type Output = FheUint<FheUint136Id>

Source§

fn fused_mul_scalar_div( self, mul: &FheUint136, div_scalar: U256, ) -> Self::Output

Source§

impl FusedMulScalarDiv<&FheUint<FheUint144Id>, StaticUnsignedBigInt<4>> for &FheUint144

Source§

type Output = FheUint<FheUint144Id>

Source§

fn fused_mul_scalar_div( self, mul: &FheUint144, div_scalar: U256, ) -> Self::Output

Source§

impl FusedMulScalarDiv<&FheUint<FheUint144Id>, StaticUnsignedBigInt<4>> for FheUint144

Source§

type Output = FheUint<FheUint144Id>

Source§

fn fused_mul_scalar_div( self, mul: &FheUint144, div_scalar: U256, ) -> Self::Output

Source§

impl FusedMulScalarDiv<&FheUint<FheUint152Id>, StaticUnsignedBigInt<4>> for &FheUint152

Source§

type Output = FheUint<FheUint152Id>

Source§

fn fused_mul_scalar_div( self, mul: &FheUint152, div_scalar: U256, ) -> Self::Output

Source§

impl FusedMulScalarDiv<&FheUint<FheUint152Id>, StaticUnsignedBigInt<4>> for FheUint152

Source§

type Output = FheUint<FheUint152Id>

Source§

fn fused_mul_scalar_div( self, mul: &FheUint152, div_scalar: U256, ) -> Self::Output

Source§

impl FusedMulScalarDiv<&FheUint<FheUint160Id>, StaticUnsignedBigInt<4>> for &FheUint160

Source§

type Output = FheUint<FheUint160Id>

Source§

fn fused_mul_scalar_div( self, mul: &FheUint160, div_scalar: U256, ) -> Self::Output

Source§

impl FusedMulScalarDiv<&FheUint<FheUint160Id>, StaticUnsignedBigInt<4>> for FheUint160

Source§

type Output = FheUint<FheUint160Id>

Source§

fn fused_mul_scalar_div( self, mul: &FheUint160, div_scalar: U256, ) -> Self::Output

Source§

impl FusedMulScalarDiv<&FheUint<FheUint168Id>, StaticUnsignedBigInt<4>> for &FheUint168

Source§

type Output = FheUint<FheUint168Id>

Source§

fn fused_mul_scalar_div( self, mul: &FheUint168, div_scalar: U256, ) -> Self::Output

Source§

impl FusedMulScalarDiv<&FheUint<FheUint168Id>, StaticUnsignedBigInt<4>> for FheUint168

Source§

type Output = FheUint<FheUint168Id>

Source§

fn fused_mul_scalar_div( self, mul: &FheUint168, div_scalar: U256, ) -> Self::Output

Source§

impl FusedMulScalarDiv<&FheUint<FheUint176Id>, StaticUnsignedBigInt<4>> for &FheUint176

Source§

type Output = FheUint<FheUint176Id>

Source§

fn fused_mul_scalar_div( self, mul: &FheUint176, div_scalar: U256, ) -> Self::Output

Source§

impl FusedMulScalarDiv<&FheUint<FheUint176Id>, StaticUnsignedBigInt<4>> for FheUint176

Source§

type Output = FheUint<FheUint176Id>

Source§

fn fused_mul_scalar_div( self, mul: &FheUint176, div_scalar: U256, ) -> Self::Output

Source§

impl FusedMulScalarDiv<&FheUint<FheUint184Id>, StaticUnsignedBigInt<4>> for &FheUint184

Source§

type Output = FheUint<FheUint184Id>

Source§

fn fused_mul_scalar_div( self, mul: &FheUint184, div_scalar: U256, ) -> Self::Output

Source§

impl FusedMulScalarDiv<&FheUint<FheUint184Id>, StaticUnsignedBigInt<4>> for FheUint184

Source§

type Output = FheUint<FheUint184Id>

Source§

fn fused_mul_scalar_div( self, mul: &FheUint184, div_scalar: U256, ) -> Self::Output

Source§

impl FusedMulScalarDiv<&FheUint<FheUint192Id>, StaticUnsignedBigInt<4>> for &FheUint192

Source§

type Output = FheUint<FheUint192Id>

Source§

fn fused_mul_scalar_div( self, mul: &FheUint192, div_scalar: U256, ) -> Self::Output

Source§

impl FusedMulScalarDiv<&FheUint<FheUint192Id>, StaticUnsignedBigInt<4>> for FheUint192

Source§

type Output = FheUint<FheUint192Id>

Source§

fn fused_mul_scalar_div( self, mul: &FheUint192, div_scalar: U256, ) -> Self::Output

Source§

impl FusedMulScalarDiv<&FheUint<FheUint200Id>, StaticUnsignedBigInt<4>> for &FheUint200

Source§

type Output = FheUint<FheUint200Id>

Source§

fn fused_mul_scalar_div( self, mul: &FheUint200, div_scalar: U256, ) -> Self::Output

Source§

impl FusedMulScalarDiv<&FheUint<FheUint200Id>, StaticUnsignedBigInt<4>> for FheUint200

Source§

type Output = FheUint<FheUint200Id>

Source§

fn fused_mul_scalar_div( self, mul: &FheUint200, div_scalar: U256, ) -> Self::Output

Source§

impl FusedMulScalarDiv<&FheUint<FheUint208Id>, StaticUnsignedBigInt<4>> for &FheUint208

Source§

type Output = FheUint<FheUint208Id>

Source§

fn fused_mul_scalar_div( self, mul: &FheUint208, div_scalar: U256, ) -> Self::Output

Source§

impl FusedMulScalarDiv<&FheUint<FheUint208Id>, StaticUnsignedBigInt<4>> for FheUint208

Source§

type Output = FheUint<FheUint208Id>

Source§

fn fused_mul_scalar_div( self, mul: &FheUint208, div_scalar: U256, ) -> Self::Output

Source§

impl FusedMulScalarDiv<&FheUint<FheUint216Id>, StaticUnsignedBigInt<4>> for &FheUint216

Source§

type Output = FheUint<FheUint216Id>

Source§

fn fused_mul_scalar_div( self, mul: &FheUint216, div_scalar: U256, ) -> Self::Output

Source§

impl FusedMulScalarDiv<&FheUint<FheUint216Id>, StaticUnsignedBigInt<4>> for FheUint216

Source§

type Output = FheUint<FheUint216Id>

Source§

fn fused_mul_scalar_div( self, mul: &FheUint216, div_scalar: U256, ) -> Self::Output

Source§

impl FusedMulScalarDiv<&FheUint<FheUint224Id>, StaticUnsignedBigInt<4>> for &FheUint224

Source§

type Output = FheUint<FheUint224Id>

Source§

fn fused_mul_scalar_div( self, mul: &FheUint224, div_scalar: U256, ) -> Self::Output

Source§

impl FusedMulScalarDiv<&FheUint<FheUint224Id>, StaticUnsignedBigInt<4>> for FheUint224

Source§

type Output = FheUint<FheUint224Id>

Source§

fn fused_mul_scalar_div( self, mul: &FheUint224, div_scalar: U256, ) -> Self::Output

Source§

impl FusedMulScalarDiv<&FheUint<FheUint232Id>, StaticUnsignedBigInt<4>> for &FheUint232

Source§

type Output = FheUint<FheUint232Id>

Source§

fn fused_mul_scalar_div( self, mul: &FheUint232, div_scalar: U256, ) -> Self::Output

Source§

impl FusedMulScalarDiv<&FheUint<FheUint232Id>, StaticUnsignedBigInt<4>> for FheUint232

Source§

type Output = FheUint<FheUint232Id>

Source§

fn fused_mul_scalar_div( self, mul: &FheUint232, div_scalar: U256, ) -> Self::Output

Source§

impl FusedMulScalarDiv<&FheUint<FheUint240Id>, StaticUnsignedBigInt<4>> for &FheUint240

Source§

type Output = FheUint<FheUint240Id>

Source§

fn fused_mul_scalar_div( self, mul: &FheUint240, div_scalar: U256, ) -> Self::Output

Source§

impl FusedMulScalarDiv<&FheUint<FheUint240Id>, StaticUnsignedBigInt<4>> for FheUint240

Source§

type Output = FheUint<FheUint240Id>

Source§

fn fused_mul_scalar_div( self, mul: &FheUint240, div_scalar: U256, ) -> Self::Output

Source§

impl FusedMulScalarDiv<&FheUint<FheUint248Id>, StaticUnsignedBigInt<4>> for &FheUint248

Source§

type Output = FheUint<FheUint248Id>

Source§

fn fused_mul_scalar_div( self, mul: &FheUint248, div_scalar: U256, ) -> Self::Output

Source§

impl FusedMulScalarDiv<&FheUint<FheUint248Id>, StaticUnsignedBigInt<4>> for FheUint248

Source§

type Output = FheUint<FheUint248Id>

Source§

fn fused_mul_scalar_div( self, mul: &FheUint248, div_scalar: U256, ) -> Self::Output

Source§

impl FusedMulScalarDiv<&FheUint<FheUint256Id>, StaticUnsignedBigInt<4>> for &FheUint256

Source§

type Output = FheUint<FheUint256Id>

Source§

fn fused_mul_scalar_div( self, mul: &FheUint256, div_scalar: U256, ) -> Self::Output

Source§

impl FusedMulScalarDiv<&FheUint<FheUint256Id>, StaticUnsignedBigInt<4>> for FheUint256

Source§

type Output = FheUint<FheUint256Id>

Source§

fn fused_mul_scalar_div( self, mul: &FheUint256, div_scalar: U256, ) -> Self::Output

Source§

impl FusedMulScalarDiv<&FheUint<FheUint512Id>, StaticUnsignedBigInt<8>> for &FheUint512

Source§

type Output = FheUint<FheUint512Id>

Source§

fn fused_mul_scalar_div( self, mul: &FheUint512, div_scalar: U512, ) -> Self::Output

Source§

impl FusedMulScalarDiv<&FheUint<FheUint512Id>, StaticUnsignedBigInt<8>> for FheUint512

Source§

type Output = FheUint<FheUint512Id>

Source§

fn fused_mul_scalar_div( self, mul: &FheUint512, div_scalar: U512, ) -> Self::Output

Source§

impl FusedMulScalarDiv<&FheUint<FheUint1024Id>, StaticUnsignedBigInt<16>> for &FheUint1024

Source§

impl FusedMulScalarDiv<&FheUint<FheUint1024Id>, StaticUnsignedBigInt<16>> for FheUint1024

Source§

impl FusedMulScalarDiv<FheUint<FheUint2Id>, u8> for FheUint2

Source§

type Output = FheUint<FheUint2Id>

Source§

fn fused_mul_scalar_div(self, mul: FheUint2, div_scalar: u8) -> Self::Output

Source§

impl FusedMulScalarDiv<FheUint<FheUint2Id>, u8> for &FheUint2

Source§

type Output = FheUint<FheUint2Id>

Source§

fn fused_mul_scalar_div(self, mul: FheUint2, div_scalar: u8) -> Self::Output

Source§

impl FusedMulScalarDiv<FheUint<FheUint4Id>, u8> for FheUint4

Source§

type Output = FheUint<FheUint4Id>

Source§

fn fused_mul_scalar_div(self, mul: FheUint4, div_scalar: u8) -> Self::Output

Source§

impl FusedMulScalarDiv<FheUint<FheUint4Id>, u8> for &FheUint4

Source§

type Output = FheUint<FheUint4Id>

Source§

fn fused_mul_scalar_div(self, mul: FheUint4, div_scalar: u8) -> Self::Output

Source§

impl FusedMulScalarDiv<FheUint<FheUint6Id>, u8> for FheUint6

Source§

type Output = FheUint<FheUint6Id>

Source§

fn fused_mul_scalar_div(self, mul: FheUint6, div_scalar: u8) -> Self::Output

Source§

impl FusedMulScalarDiv<FheUint<FheUint6Id>, u8> for &FheUint6

Source§

type Output = FheUint<FheUint6Id>

Source§

fn fused_mul_scalar_div(self, mul: FheUint6, div_scalar: u8) -> Self::Output

Source§

impl FusedMulScalarDiv<FheUint<FheUint8Id>, u8> for FheUint8

Source§

type Output = FheUint<FheUint8Id>

Source§

fn fused_mul_scalar_div(self, mul: FheUint8, div_scalar: u8) -> Self::Output

Source§

impl FusedMulScalarDiv<FheUint<FheUint8Id>, u8> for &FheUint8

Source§

type Output = FheUint<FheUint8Id>

Source§

fn fused_mul_scalar_div(self, mul: FheUint8, div_scalar: u8) -> Self::Output

Source§

impl FusedMulScalarDiv<FheUint<FheUint10Id>, u16> for FheUint10

Source§

impl FusedMulScalarDiv<FheUint<FheUint10Id>, u16> for &FheUint10

Source§

impl FusedMulScalarDiv<FheUint<FheUint12Id>, u16> for FheUint12

Source§

impl FusedMulScalarDiv<FheUint<FheUint12Id>, u16> for &FheUint12

Source§

impl FusedMulScalarDiv<FheUint<FheUint14Id>, u16> for FheUint14

Source§

impl FusedMulScalarDiv<FheUint<FheUint14Id>, u16> for &FheUint14

Source§

impl FusedMulScalarDiv<FheUint<FheUint16Id>, u16> for FheUint16

Source§

impl FusedMulScalarDiv<FheUint<FheUint16Id>, u16> for &FheUint16

Source§

impl FusedMulScalarDiv<FheUint<FheUint24Id>, u32> for FheUint24

Source§

impl FusedMulScalarDiv<FheUint<FheUint24Id>, u32> for &FheUint24

Source§

impl FusedMulScalarDiv<FheUint<FheUint32Id>, u32> for FheUint32

Source§

impl FusedMulScalarDiv<FheUint<FheUint32Id>, u32> for &FheUint32

Source§

impl FusedMulScalarDiv<FheUint<FheUint40Id>, u64> for FheUint40

Source§

impl FusedMulScalarDiv<FheUint<FheUint40Id>, u64> for &FheUint40

Source§

impl FusedMulScalarDiv<FheUint<FheUint48Id>, u64> for FheUint48

Source§

impl FusedMulScalarDiv<FheUint<FheUint48Id>, u64> for &FheUint48

Source§

impl FusedMulScalarDiv<FheUint<FheUint56Id>, u64> for FheUint56

Source§

impl FusedMulScalarDiv<FheUint<FheUint56Id>, u64> for &FheUint56

Source§

impl FusedMulScalarDiv<FheUint<FheUint64Id>, u64> for FheUint64

Source§

impl FusedMulScalarDiv<FheUint<FheUint64Id>, u64> for &FheUint64

Source§

impl FusedMulScalarDiv<FheUint<FheUint72Id>, u128> for FheUint72

Source§

impl FusedMulScalarDiv<FheUint<FheUint72Id>, u128> for &FheUint72

Source§

impl FusedMulScalarDiv<FheUint<FheUint80Id>, u128> for FheUint80

Source§

impl FusedMulScalarDiv<FheUint<FheUint80Id>, u128> for &FheUint80

Source§

impl FusedMulScalarDiv<FheUint<FheUint88Id>, u128> for FheUint88

Source§

impl FusedMulScalarDiv<FheUint<FheUint88Id>, u128> for &FheUint88

Source§

impl FusedMulScalarDiv<FheUint<FheUint96Id>, u128> for FheUint96

Source§

impl FusedMulScalarDiv<FheUint<FheUint96Id>, u128> for &FheUint96

Source§

impl FusedMulScalarDiv<FheUint<FheUint104Id>, u128> for FheUint104

Source§

impl FusedMulScalarDiv<FheUint<FheUint104Id>, u128> for &FheUint104

Source§

impl FusedMulScalarDiv<FheUint<FheUint112Id>, u128> for FheUint112

Source§

impl FusedMulScalarDiv<FheUint<FheUint112Id>, u128> for &FheUint112

Source§

impl FusedMulScalarDiv<FheUint<FheUint120Id>, u128> for FheUint120

Source§

impl FusedMulScalarDiv<FheUint<FheUint120Id>, u128> for &FheUint120

Source§

impl FusedMulScalarDiv<FheUint<FheUint128Id>, u128> for FheUint128

Source§

impl FusedMulScalarDiv<FheUint<FheUint128Id>, u128> for &FheUint128

Source§

impl FusedMulScalarDiv<FheUint<FheUint136Id>, StaticUnsignedBigInt<4>> for FheUint136

Source§

impl FusedMulScalarDiv<FheUint<FheUint136Id>, StaticUnsignedBigInt<4>> for &FheUint136

Source§

impl FusedMulScalarDiv<FheUint<FheUint144Id>, StaticUnsignedBigInt<4>> for FheUint144

Source§

impl FusedMulScalarDiv<FheUint<FheUint144Id>, StaticUnsignedBigInt<4>> for &FheUint144

Source§

impl FusedMulScalarDiv<FheUint<FheUint152Id>, StaticUnsignedBigInt<4>> for FheUint152

Source§

impl FusedMulScalarDiv<FheUint<FheUint152Id>, StaticUnsignedBigInt<4>> for &FheUint152

Source§

impl FusedMulScalarDiv<FheUint<FheUint160Id>, StaticUnsignedBigInt<4>> for FheUint160

Source§

impl FusedMulScalarDiv<FheUint<FheUint160Id>, StaticUnsignedBigInt<4>> for &FheUint160

Source§

impl FusedMulScalarDiv<FheUint<FheUint168Id>, StaticUnsignedBigInt<4>> for FheUint168

Source§

impl FusedMulScalarDiv<FheUint<FheUint168Id>, StaticUnsignedBigInt<4>> for &FheUint168

Source§

impl FusedMulScalarDiv<FheUint<FheUint176Id>, StaticUnsignedBigInt<4>> for FheUint176

Source§

impl FusedMulScalarDiv<FheUint<FheUint176Id>, StaticUnsignedBigInt<4>> for &FheUint176

Source§

impl FusedMulScalarDiv<FheUint<FheUint184Id>, StaticUnsignedBigInt<4>> for FheUint184

Source§

impl FusedMulScalarDiv<FheUint<FheUint184Id>, StaticUnsignedBigInt<4>> for &FheUint184

Source§

impl FusedMulScalarDiv<FheUint<FheUint192Id>, StaticUnsignedBigInt<4>> for FheUint192

Source§

impl FusedMulScalarDiv<FheUint<FheUint192Id>, StaticUnsignedBigInt<4>> for &FheUint192

Source§

impl FusedMulScalarDiv<FheUint<FheUint200Id>, StaticUnsignedBigInt<4>> for FheUint200

Source§

impl FusedMulScalarDiv<FheUint<FheUint200Id>, StaticUnsignedBigInt<4>> for &FheUint200

Source§

impl FusedMulScalarDiv<FheUint<FheUint208Id>, StaticUnsignedBigInt<4>> for FheUint208

Source§

impl FusedMulScalarDiv<FheUint<FheUint208Id>, StaticUnsignedBigInt<4>> for &FheUint208

Source§

impl FusedMulScalarDiv<FheUint<FheUint216Id>, StaticUnsignedBigInt<4>> for FheUint216

Source§

impl FusedMulScalarDiv<FheUint<FheUint216Id>, StaticUnsignedBigInt<4>> for &FheUint216

Source§

impl FusedMulScalarDiv<FheUint<FheUint224Id>, StaticUnsignedBigInt<4>> for FheUint224

Source§

impl FusedMulScalarDiv<FheUint<FheUint224Id>, StaticUnsignedBigInt<4>> for &FheUint224

Source§

impl FusedMulScalarDiv<FheUint<FheUint232Id>, StaticUnsignedBigInt<4>> for FheUint232

Source§

impl FusedMulScalarDiv<FheUint<FheUint232Id>, StaticUnsignedBigInt<4>> for &FheUint232

Source§

impl FusedMulScalarDiv<FheUint<FheUint240Id>, StaticUnsignedBigInt<4>> for FheUint240

Source§

impl FusedMulScalarDiv<FheUint<FheUint240Id>, StaticUnsignedBigInt<4>> for &FheUint240

Source§

impl FusedMulScalarDiv<FheUint<FheUint248Id>, StaticUnsignedBigInt<4>> for FheUint248

Source§

impl FusedMulScalarDiv<FheUint<FheUint248Id>, StaticUnsignedBigInt<4>> for &FheUint248

Source§

impl FusedMulScalarDiv<FheUint<FheUint256Id>, StaticUnsignedBigInt<4>> for FheUint256

Source§

impl FusedMulScalarDiv<FheUint<FheUint256Id>, StaticUnsignedBigInt<4>> for &FheUint256

Source§

impl FusedMulScalarDiv<FheUint<FheUint512Id>, StaticUnsignedBigInt<8>> for FheUint512

Source§

impl FusedMulScalarDiv<FheUint<FheUint512Id>, StaticUnsignedBigInt<8>> for &FheUint512

Source§

impl FusedMulScalarDiv<FheUint<FheUint1024Id>, StaticUnsignedBigInt<16>> for FheUint1024

Source§

impl FusedMulScalarDiv<FheUint<FheUint1024Id>, StaticUnsignedBigInt<16>> for &FheUint1024

Source§

impl<Id: FheUintId> HlCompressible for FheUint<Id>

Source§

fn compress_into(self, messages: &mut Vec<(ToBeCompressed, DataKind)>)

Adds a ciphertext to be compressed. Read more
Source§

fn get_re_randomization_metadata(&self) -> ReRandomizationMetadata

Source§

impl<Id: FheUintId> HlExpandable for FheUint<Id>

Source§

impl<Id> IfThenElse<FheUint<Id>> for FheBool
where Id: FheUintId,

Source§

fn if_then_else( &self, ct_then: &FheUint<Id>, ct_else: &FheUint<Id>, ) -> FheUint<Id>

Conditional selection.

The output value returned depends on the value of self.

  • if self is true, the output will have the value of ct_then
  • if self is false, the output will have the value of ct_else
Source§

fn select( &self, ct_when_true: &Ciphertext, ct_when_false: &Ciphertext, ) -> Ciphertext

Source§

fn cmux(&self, ct_then: &Ciphertext, ct_else: &Ciphertext) -> Ciphertext

Source§

impl<Id> IfThenElseSizeOnGpu<FheUint<Id>> for FheBool
where Id: FheUintId,

Available on crate feature gpu only.
Source§

fn get_if_then_else_size_on_gpu( &self, ct_then: &FheUint<Id>, ct_else: &FheUint<Id>, ) -> u64

Source§

fn get_select_size_on_gpu( &self, ct_when_true: &Ciphertext, ct_when_false: &Ciphertext, ) -> u64

Source§

fn get_cmux_size_on_gpu( &self, ct_then: &Ciphertext, ct_else: &Ciphertext, ) -> u64

Source§

impl<Id> IfThenZero<FheUint<Id>> for FheBool
where Id: FheUintId,

Source§

fn if_then_zero(&self, ct_then: &FheUint<Id>) -> FheUint<Id>

Conditional selection.

The output value returned depends on the value of self.

  • if self is true, the output will have the value of ct_then
  • if self is false, the output will be an encryption of 0
Source§

impl Mul<&FheUint<FheUint2Id>> for u8

Source§

type Output = FheUint<FheUint2Id>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: &FheUint2) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<&FheUint<FheUint2Id>> for &u8

Source§

type Output = FheUint<FheUint2Id>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: &FheUint2) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<&FheUint<FheUint4Id>> for u8

Source§

type Output = FheUint<FheUint4Id>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: &FheUint4) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<&FheUint<FheUint4Id>> for &u8

Source§

type Output = FheUint<FheUint4Id>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: &FheUint4) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<&FheUint<FheUint6Id>> for u8

Source§

type Output = FheUint<FheUint6Id>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: &FheUint6) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<&FheUint<FheUint6Id>> for &u8

Source§

type Output = FheUint<FheUint6Id>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: &FheUint6) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<&FheUint<FheUint8Id>> for u8

Source§

type Output = FheUint<FheUint8Id>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: &FheUint8) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<&FheUint<FheUint8Id>> for &u8

Source§

type Output = FheUint<FheUint8Id>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: &FheUint8) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<&FheUint<FheUint10Id>> for u16

Source§

type Output = FheUint<FheUint10Id>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: &FheUint10) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<&FheUint<FheUint10Id>> for &u16

Source§

type Output = FheUint<FheUint10Id>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: &FheUint10) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<&FheUint<FheUint12Id>> for u16

Source§

type Output = FheUint<FheUint12Id>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: &FheUint12) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<&FheUint<FheUint12Id>> for &u16

Source§

type Output = FheUint<FheUint12Id>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: &FheUint12) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<&FheUint<FheUint14Id>> for u16

Source§

type Output = FheUint<FheUint14Id>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: &FheUint14) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<&FheUint<FheUint14Id>> for &u16

Source§

type Output = FheUint<FheUint14Id>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: &FheUint14) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<&FheUint<FheUint16Id>> for u16

Source§

type Output = FheUint<FheUint16Id>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: &FheUint16) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<&FheUint<FheUint16Id>> for &u16

Source§

type Output = FheUint<FheUint16Id>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: &FheUint16) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<&FheUint<FheUint24Id>> for u32

Source§

type Output = FheUint<FheUint24Id>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: &FheUint24) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<&FheUint<FheUint24Id>> for &u32

Source§

type Output = FheUint<FheUint24Id>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: &FheUint24) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<&FheUint<FheUint32Id>> for u32

Source§

type Output = FheUint<FheUint32Id>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: &FheUint32) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<&FheUint<FheUint32Id>> for &u32

Source§

type Output = FheUint<FheUint32Id>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: &FheUint32) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<&FheUint<FheUint40Id>> for u64

Source§

type Output = FheUint<FheUint40Id>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: &FheUint40) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<&FheUint<FheUint40Id>> for &u64

Source§

type Output = FheUint<FheUint40Id>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: &FheUint40) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<&FheUint<FheUint48Id>> for u64

Source§

type Output = FheUint<FheUint48Id>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: &FheUint48) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<&FheUint<FheUint48Id>> for &u64

Source§

type Output = FheUint<FheUint48Id>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: &FheUint48) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<&FheUint<FheUint56Id>> for u64

Source§

type Output = FheUint<FheUint56Id>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: &FheUint56) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<&FheUint<FheUint56Id>> for &u64

Source§

type Output = FheUint<FheUint56Id>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: &FheUint56) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<&FheUint<FheUint64Id>> for u64

Source§

type Output = FheUint<FheUint64Id>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: &FheUint64) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<&FheUint<FheUint64Id>> for &u64

Source§

type Output = FheUint<FheUint64Id>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: &FheUint64) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<&FheUint<FheUint72Id>> for u128

Source§

type Output = FheUint<FheUint72Id>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: &FheUint72) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<&FheUint<FheUint72Id>> for &u128

Source§

type Output = FheUint<FheUint72Id>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: &FheUint72) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<&FheUint<FheUint80Id>> for u128

Source§

type Output = FheUint<FheUint80Id>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: &FheUint80) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<&FheUint<FheUint80Id>> for &u128

Source§

type Output = FheUint<FheUint80Id>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: &FheUint80) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<&FheUint<FheUint88Id>> for u128

Source§

type Output = FheUint<FheUint88Id>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: &FheUint88) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<&FheUint<FheUint88Id>> for &u128

Source§

type Output = FheUint<FheUint88Id>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: &FheUint88) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<&FheUint<FheUint96Id>> for u128

Source§

type Output = FheUint<FheUint96Id>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: &FheUint96) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<&FheUint<FheUint96Id>> for &u128

Source§

type Output = FheUint<FheUint96Id>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: &FheUint96) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<&FheUint<FheUint104Id>> for u128

Source§

type Output = FheUint<FheUint104Id>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: &FheUint104) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<&FheUint<FheUint104Id>> for &u128

Source§

type Output = FheUint<FheUint104Id>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: &FheUint104) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<&FheUint<FheUint112Id>> for u128

Source§

type Output = FheUint<FheUint112Id>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: &FheUint112) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<&FheUint<FheUint112Id>> for &u128

Source§

type Output = FheUint<FheUint112Id>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: &FheUint112) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<&FheUint<FheUint120Id>> for u128

Source§

type Output = FheUint<FheUint120Id>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: &FheUint120) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<&FheUint<FheUint120Id>> for &u128

Source§

type Output = FheUint<FheUint120Id>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: &FheUint120) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<&FheUint<FheUint128Id>> for u128

Source§

type Output = FheUint<FheUint128Id>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: &FheUint128) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<&FheUint<FheUint128Id>> for &u128

Source§

type Output = FheUint<FheUint128Id>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: &FheUint128) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<&FheUint<FheUint136Id>> for U256

Source§

type Output = FheUint<FheUint136Id>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: &FheUint136) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<&FheUint<FheUint136Id>> for &U256

Source§

type Output = FheUint<FheUint136Id>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: &FheUint136) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<&FheUint<FheUint144Id>> for U256

Source§

type Output = FheUint<FheUint144Id>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: &FheUint144) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<&FheUint<FheUint144Id>> for &U256

Source§

type Output = FheUint<FheUint144Id>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: &FheUint144) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<&FheUint<FheUint152Id>> for U256

Source§

type Output = FheUint<FheUint152Id>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: &FheUint152) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<&FheUint<FheUint152Id>> for &U256

Source§

type Output = FheUint<FheUint152Id>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: &FheUint152) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<&FheUint<FheUint160Id>> for U256

Source§

type Output = FheUint<FheUint160Id>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: &FheUint160) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<&FheUint<FheUint160Id>> for &U256

Source§

type Output = FheUint<FheUint160Id>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: &FheUint160) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<&FheUint<FheUint168Id>> for U256

Source§

type Output = FheUint<FheUint168Id>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: &FheUint168) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<&FheUint<FheUint168Id>> for &U256

Source§

type Output = FheUint<FheUint168Id>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: &FheUint168) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<&FheUint<FheUint176Id>> for U256

Source§

type Output = FheUint<FheUint176Id>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: &FheUint176) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<&FheUint<FheUint176Id>> for &U256

Source§

type Output = FheUint<FheUint176Id>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: &FheUint176) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<&FheUint<FheUint184Id>> for U256

Source§

type Output = FheUint<FheUint184Id>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: &FheUint184) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<&FheUint<FheUint184Id>> for &U256

Source§

type Output = FheUint<FheUint184Id>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: &FheUint184) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<&FheUint<FheUint192Id>> for U256

Source§

type Output = FheUint<FheUint192Id>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: &FheUint192) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<&FheUint<FheUint192Id>> for &U256

Source§

type Output = FheUint<FheUint192Id>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: &FheUint192) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<&FheUint<FheUint200Id>> for U256

Source§

type Output = FheUint<FheUint200Id>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: &FheUint200) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<&FheUint<FheUint200Id>> for &U256

Source§

type Output = FheUint<FheUint200Id>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: &FheUint200) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<&FheUint<FheUint208Id>> for U256

Source§

type Output = FheUint<FheUint208Id>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: &FheUint208) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<&FheUint<FheUint208Id>> for &U256

Source§

type Output = FheUint<FheUint208Id>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: &FheUint208) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<&FheUint<FheUint216Id>> for U256

Source§

type Output = FheUint<FheUint216Id>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: &FheUint216) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<&FheUint<FheUint216Id>> for &U256

Source§

type Output = FheUint<FheUint216Id>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: &FheUint216) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<&FheUint<FheUint224Id>> for U256

Source§

type Output = FheUint<FheUint224Id>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: &FheUint224) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<&FheUint<FheUint224Id>> for &U256

Source§

type Output = FheUint<FheUint224Id>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: &FheUint224) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<&FheUint<FheUint232Id>> for U256

Source§

type Output = FheUint<FheUint232Id>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: &FheUint232) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<&FheUint<FheUint232Id>> for &U256

Source§

type Output = FheUint<FheUint232Id>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: &FheUint232) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<&FheUint<FheUint240Id>> for U256

Source§

type Output = FheUint<FheUint240Id>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: &FheUint240) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<&FheUint<FheUint240Id>> for &U256

Source§

type Output = FheUint<FheUint240Id>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: &FheUint240) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<&FheUint<FheUint248Id>> for U256

Source§

type Output = FheUint<FheUint248Id>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: &FheUint248) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<&FheUint<FheUint248Id>> for &U256

Source§

type Output = FheUint<FheUint248Id>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: &FheUint248) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<&FheUint<FheUint256Id>> for U256

Source§

type Output = FheUint<FheUint256Id>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: &FheUint256) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<&FheUint<FheUint256Id>> for &U256

Source§

type Output = FheUint<FheUint256Id>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: &FheUint256) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<&FheUint<FheUint512Id>> for U512

Source§

type Output = FheUint<FheUint512Id>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: &FheUint512) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<&FheUint<FheUint512Id>> for &U512

Source§

type Output = FheUint<FheUint512Id>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: &FheUint512) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<&FheUint<FheUint1024Id>> for U1024

Source§

type Output = FheUint<FheUint1024Id>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: &FheUint1024) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<&FheUint<FheUint1024Id>> for &U1024

Source§

type Output = FheUint<FheUint1024Id>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: &FheUint1024) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<&FheUint<FheUint2048Id>> for U2048

Source§

type Output = FheUint<FheUint2048Id>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: &FheUint2048) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<&FheUint<FheUint2048Id>> for &U2048

Source§

type Output = FheUint<FheUint2048Id>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: &FheUint2048) -> Self::Output

Performs the * operation. Read more
Source§

impl<Id, B> Mul<B> for FheUint<Id>
where Id: FheUintId, B: Borrow<Self>,

Source§

type Output = FheUint<Id>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: B) -> Self::Output

Performs the * operation. Read more
Source§

impl<Id, B> Mul<B> for &FheUint<Id>
where Id: FheUintId, B: Borrow<FheUint<Id>>,

Source§

fn mul(self, rhs: B) -> Self::Output

Multiplies two FheUint

The operation is modular, i.e on overflow it wraps around.

§Example
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));
Source§

type Output = FheUint<Id>

The resulting type after applying the * operator.
Source§

impl Mul<FheUint<FheUint2Id>> for u8

Source§

type Output = FheUint<FheUint2Id>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: FheUint2) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<FheUint<FheUint2Id>> for &u8

Source§

type Output = FheUint<FheUint2Id>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: FheUint2) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<FheUint<FheUint4Id>> for u8

Source§

type Output = FheUint<FheUint4Id>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: FheUint4) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<FheUint<FheUint4Id>> for &u8

Source§

type Output = FheUint<FheUint4Id>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: FheUint4) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<FheUint<FheUint6Id>> for u8

Source§

type Output = FheUint<FheUint6Id>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: FheUint6) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<FheUint<FheUint6Id>> for &u8

Source§

type Output = FheUint<FheUint6Id>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: FheUint6) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<FheUint<FheUint8Id>> for u8

Source§

type Output = FheUint<FheUint8Id>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: FheUint8) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<FheUint<FheUint8Id>> for &u8

Source§

type Output = FheUint<FheUint8Id>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: FheUint8) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<FheUint<FheUint10Id>> for u16

Source§

type Output = FheUint<FheUint10Id>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: FheUint10) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<FheUint<FheUint10Id>> for &u16

Source§

type Output = FheUint<FheUint10Id>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: FheUint10) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<FheUint<FheUint12Id>> for u16

Source§

type Output = FheUint<FheUint12Id>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: FheUint12) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<FheUint<FheUint12Id>> for &u16

Source§

type Output = FheUint<FheUint12Id>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: FheUint12) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<FheUint<FheUint14Id>> for u16

Source§

type Output = FheUint<FheUint14Id>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: FheUint14) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<FheUint<FheUint14Id>> for &u16

Source§

type Output = FheUint<FheUint14Id>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: FheUint14) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<FheUint<FheUint16Id>> for u16

Source§

type Output = FheUint<FheUint16Id>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: FheUint16) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<FheUint<FheUint16Id>> for &u16

Source§

type Output = FheUint<FheUint16Id>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: FheUint16) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<FheUint<FheUint24Id>> for u32

Source§

type Output = FheUint<FheUint24Id>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: FheUint24) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<FheUint<FheUint24Id>> for &u32

Source§

type Output = FheUint<FheUint24Id>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: FheUint24) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<FheUint<FheUint32Id>> for u32

Source§

type Output = FheUint<FheUint32Id>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: FheUint32) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<FheUint<FheUint32Id>> for &u32

Source§

type Output = FheUint<FheUint32Id>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: FheUint32) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<FheUint<FheUint40Id>> for u64

Source§

type Output = FheUint<FheUint40Id>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: FheUint40) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<FheUint<FheUint40Id>> for &u64

Source§

type Output = FheUint<FheUint40Id>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: FheUint40) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<FheUint<FheUint48Id>> for u64

Source§

type Output = FheUint<FheUint48Id>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: FheUint48) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<FheUint<FheUint48Id>> for &u64

Source§

type Output = FheUint<FheUint48Id>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: FheUint48) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<FheUint<FheUint56Id>> for u64

Source§

type Output = FheUint<FheUint56Id>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: FheUint56) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<FheUint<FheUint56Id>> for &u64

Source§

type Output = FheUint<FheUint56Id>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: FheUint56) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<FheUint<FheUint64Id>> for u64

Source§

type Output = FheUint<FheUint64Id>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: FheUint64) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<FheUint<FheUint64Id>> for &u64

Source§

type Output = FheUint<FheUint64Id>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: FheUint64) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<FheUint<FheUint72Id>> for u128

Source§

type Output = FheUint<FheUint72Id>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: FheUint72) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<FheUint<FheUint72Id>> for &u128

Source§

type Output = FheUint<FheUint72Id>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: FheUint72) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<FheUint<FheUint80Id>> for u128

Source§

type Output = FheUint<FheUint80Id>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: FheUint80) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<FheUint<FheUint80Id>> for &u128

Source§

type Output = FheUint<FheUint80Id>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: FheUint80) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<FheUint<FheUint88Id>> for u128

Source§

type Output = FheUint<FheUint88Id>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: FheUint88) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<FheUint<FheUint88Id>> for &u128

Source§

type Output = FheUint<FheUint88Id>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: FheUint88) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<FheUint<FheUint96Id>> for u128

Source§

type Output = FheUint<FheUint96Id>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: FheUint96) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<FheUint<FheUint96Id>> for &u128

Source§

type Output = FheUint<FheUint96Id>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: FheUint96) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<FheUint<FheUint104Id>> for u128

Source§

type Output = FheUint<FheUint104Id>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: FheUint104) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<FheUint<FheUint104Id>> for &u128

Source§

type Output = FheUint<FheUint104Id>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: FheUint104) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<FheUint<FheUint112Id>> for u128

Source§

type Output = FheUint<FheUint112Id>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: FheUint112) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<FheUint<FheUint112Id>> for &u128

Source§

type Output = FheUint<FheUint112Id>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: FheUint112) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<FheUint<FheUint120Id>> for u128

Source§

type Output = FheUint<FheUint120Id>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: FheUint120) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<FheUint<FheUint120Id>> for &u128

Source§

type Output = FheUint<FheUint120Id>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: FheUint120) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<FheUint<FheUint128Id>> for u128

Source§

type Output = FheUint<FheUint128Id>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: FheUint128) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<FheUint<FheUint128Id>> for &u128

Source§

type Output = FheUint<FheUint128Id>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: FheUint128) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<FheUint<FheUint136Id>> for U256

Source§

type Output = FheUint<FheUint136Id>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: FheUint136) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<FheUint<FheUint136Id>> for &U256

Source§

type Output = FheUint<FheUint136Id>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: FheUint136) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<FheUint<FheUint144Id>> for U256

Source§

type Output = FheUint<FheUint144Id>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: FheUint144) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<FheUint<FheUint144Id>> for &U256

Source§

type Output = FheUint<FheUint144Id>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: FheUint144) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<FheUint<FheUint152Id>> for U256

Source§

type Output = FheUint<FheUint152Id>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: FheUint152) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<FheUint<FheUint152Id>> for &U256

Source§

type Output = FheUint<FheUint152Id>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: FheUint152) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<FheUint<FheUint160Id>> for U256

Source§

type Output = FheUint<FheUint160Id>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: FheUint160) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<FheUint<FheUint160Id>> for &U256

Source§

type Output = FheUint<FheUint160Id>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: FheUint160) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<FheUint<FheUint168Id>> for U256

Source§

type Output = FheUint<FheUint168Id>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: FheUint168) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<FheUint<FheUint168Id>> for &U256

Source§

type Output = FheUint<FheUint168Id>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: FheUint168) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<FheUint<FheUint176Id>> for U256

Source§

type Output = FheUint<FheUint176Id>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: FheUint176) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<FheUint<FheUint176Id>> for &U256

Source§

type Output = FheUint<FheUint176Id>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: FheUint176) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<FheUint<FheUint184Id>> for U256

Source§

type Output = FheUint<FheUint184Id>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: FheUint184) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<FheUint<FheUint184Id>> for &U256

Source§

type Output = FheUint<FheUint184Id>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: FheUint184) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<FheUint<FheUint192Id>> for U256

Source§

type Output = FheUint<FheUint192Id>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: FheUint192) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<FheUint<FheUint192Id>> for &U256

Source§

type Output = FheUint<FheUint192Id>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: FheUint192) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<FheUint<FheUint200Id>> for U256

Source§

type Output = FheUint<FheUint200Id>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: FheUint200) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<FheUint<FheUint200Id>> for &U256

Source§

type Output = FheUint<FheUint200Id>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: FheUint200) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<FheUint<FheUint208Id>> for U256

Source§

type Output = FheUint<FheUint208Id>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: FheUint208) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<FheUint<FheUint208Id>> for &U256

Source§

type Output = FheUint<FheUint208Id>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: FheUint208) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<FheUint<FheUint216Id>> for U256

Source§

type Output = FheUint<FheUint216Id>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: FheUint216) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<FheUint<FheUint216Id>> for &U256

Source§

type Output = FheUint<FheUint216Id>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: FheUint216) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<FheUint<FheUint224Id>> for U256

Source§

type Output = FheUint<FheUint224Id>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: FheUint224) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<FheUint<FheUint224Id>> for &U256

Source§

type Output = FheUint<FheUint224Id>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: FheUint224) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<FheUint<FheUint232Id>> for U256

Source§

type Output = FheUint<FheUint232Id>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: FheUint232) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<FheUint<FheUint232Id>> for &U256

Source§

type Output = FheUint<FheUint232Id>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: FheUint232) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<FheUint<FheUint240Id>> for U256

Source§

type Output = FheUint<FheUint240Id>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: FheUint240) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<FheUint<FheUint240Id>> for &U256

Source§

type Output = FheUint<FheUint240Id>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: FheUint240) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<FheUint<FheUint248Id>> for U256

Source§

type Output = FheUint<FheUint248Id>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: FheUint248) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<FheUint<FheUint248Id>> for &U256

Source§

type Output = FheUint<FheUint248Id>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: FheUint248) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<FheUint<FheUint256Id>> for U256

Source§

type Output = FheUint<FheUint256Id>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: FheUint256) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<FheUint<FheUint256Id>> for &U256

Source§

type Output = FheUint<FheUint256Id>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: FheUint256) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<FheUint<FheUint512Id>> for U512

Source§

type Output = FheUint<FheUint512Id>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: FheUint512) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<FheUint<FheUint512Id>> for &U512

Source§

type Output = FheUint<FheUint512Id>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: FheUint512) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<FheUint<FheUint1024Id>> for U1024

Source§

type Output = FheUint<FheUint1024Id>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: FheUint1024) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<FheUint<FheUint1024Id>> for &U1024

Source§

type Output = FheUint<FheUint1024Id>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: FheUint1024) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<FheUint<FheUint2048Id>> for U2048

Source§

type Output = FheUint<FheUint2048Id>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: FheUint2048) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<FheUint<FheUint2048Id>> for &U2048

Source§

type Output = FheUint<FheUint2048Id>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: FheUint2048) -> Self::Output

Performs the * operation. Read more
Source§

impl<Id, I> MulAssign<I> for FheUint<Id>
where Id: FheUintId, I: Borrow<Self>,

Source§

fn mul_assign(&mut self, rhs: I)

Performs the *= operation on FheUint

The operation is modular, i.e on overflow it wraps around.

§Example
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);
let b = FheUint16::encrypt(37849u16, &client_key);

a *= &b;
let result: u16 = a.decrypt(&client_key);
assert_eq!(result, 3u16.wrapping_mul(37849u16));
Source§

impl<Id> MulSizeOnGpu<&FheUint<Id>> for FheUint<Id>
where Id: FheUintId,

Available on crate feature gpu only.
Source§

fn get_mul_size_on_gpu(&self, rhs: &Self) -> u64

Source§

impl<Id: FheUintId> Named for FheUint<Id>

Source§

const NAME: &'static str = "high_level_api::FheUint"

Default name for the type
Source§

const BACKWARD_COMPATIBILITY_ALIASES: &'static [&'static str] = _

Aliases that should also be accepted for backward compatibility when checking the name of values of this type
Source§

impl<Id> Neg for FheUint<Id>
where Id: FheUintId,

Source§

fn neg(self) -> Self::Output

Computes the negation of a FheUint.

Since FheUint are unsigned integers meaning the value they can represent is always positive, negating a FheUint will yield a positive number.

§Example
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 result = -a;
let result: u16 = result.decrypt(&client_key);
assert_eq!(result, 3u16.wrapping_neg());
Source§

type Output = FheUint<Id>

The resulting type after applying the - operator.
Source§

impl<Id> Neg for &FheUint<Id>
where Id: FheUintId,

Source§

fn neg(self) -> Self::Output

Computes the negation of a FheUint.

Since FheUint are unsigned integers meaning the value they can represent is always positive, negating a FheUint will yield a positive number.

§Example
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 result = -&a;
let result: u16 = result.decrypt(&client_key);
assert_eq!(result, 3u16.wrapping_neg());
Source§

type Output = FheUint<Id>

The resulting type after applying the - operator.
Source§

impl<Id> NegSizeOnGpu<&FheUint<Id>> for FheUint<Id>
where Id: FheUintId,

Available on crate feature gpu only.
Source§

impl<Id> Not for FheUint<Id>
where Id: FheUintId,

Source§

fn not(self) -> Self::Output

Performs a bitwise ‘not’

§Example
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 result = !a;
let result: u16 = result.decrypt(&client_key);
assert_eq!(result, !3u16);
Source§

type Output = FheUint<Id>

The resulting type after applying the ! operator.
Source§

impl<Id> Not for &FheUint<Id>
where Id: FheUintId,

Source§

fn not(self) -> Self::Output

Performs a bitwise ‘not’

§Example
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 result = !&a;
let result: u16 = result.decrypt(&client_key);
assert_eq!(result, !3u16);
Source§

type Output = FheUint<Id>

The resulting type after applying the ! operator.
Source§

impl<Id> OverflowingAdd<&FheUint<Id>> for &FheUint<Id>
where Id: FheUintId,

Source§

fn overflowing_add(self, other: Self) -> (Self::Output, FheBool)

Adds two FheUint and returns a boolean indicating overflow.

  • The operation is modular, i.e on overflow the result wraps around.
  • On overflow the FheBool is true, otherwise false
§Example
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);
let b = FheUint16::encrypt(1u16, &client_key);

let (result, overflowed) = (&a).overflowing_add(&b);
let result: u16 = result.decrypt(&client_key);
assert_eq!(result, u16::MAX.wrapping_add(1u16));
assert_eq!(
    overflowed.decrypt(&client_key),
    u16::MAX.overflowing_add(1u16).1
);
assert!(overflowed.decrypt(&client_key));
Source§

type Output = FheUint<Id>

Source§

impl<Id> OverflowingAdd<&FheUint<Id>> for FheUint<Id>
where Id: FheUintId,

Source§

fn overflowing_add(self, other: &Self) -> (Self::Output, FheBool)

Adds two FheUint and returns a boolean indicating overflow.

  • The operation is modular, i.e on overflow the result wraps around.
  • On overflow the FheBool is true, otherwise false
§Example
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);
let b = FheUint16::encrypt(1u16, &client_key);

let (result, overflowed) = a.overflowing_add(&b);
let result: u16 = result.decrypt(&client_key);
assert_eq!(result, u16::MAX.wrapping_add(1u16));
assert_eq!(
    overflowed.decrypt(&client_key),
    u16::MAX.overflowing_add(1u16).1
);
assert!(overflowed.decrypt(&client_key));
Source§

type Output = FheUint<Id>

Source§

impl<Id, Clear> OverflowingAdd<Clear> for &FheUint<Id>

Source§

fn overflowing_add(self, other: Clear) -> (Self::Output, FheBool)

Adds a FheUint with a Clear and returns a boolean indicating overflow.

  • The operation is modular, i.e on overflow the result wraps around.
  • On overflow the FheBool is true, otherwise false
§Example
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);

let (result, overflowed) = (&a).overflowing_add(1u16);
let result: u16 = result.decrypt(&client_key);
assert_eq!(result, u16::MAX.wrapping_add(1u16));
assert_eq!(
    overflowed.decrypt(&client_key),
    u16::MAX.overflowing_add(1u16).1
);
assert!(overflowed.decrypt(&client_key));
Source§

type Output = FheUint<Id>

Source§

impl<Id, Clear> OverflowingAdd<Clear> for FheUint<Id>

Source§

fn overflowing_add(self, other: Clear) -> (Self::Output, FheBool)

Adds a FheUint with a Clear and returns a boolean indicating overflow.

  • The operation is modular, i.e on overflow the result wraps around.
  • On overflow the FheBool is true, otherwise false
§Example
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);

let (result, overflowed) = a.overflowing_add(1u16);
let result: u16 = result.decrypt(&client_key);
assert_eq!(result, u16::MAX.wrapping_add(1u16));
assert_eq!(
    overflowed.decrypt(&client_key),
    u16::MAX.overflowing_add(1u16).1
);
assert!(overflowed.decrypt(&client_key));
Source§

type Output = FheUint<Id>

Source§

impl<Id> OverflowingMul<&FheUint<Id>> for &FheUint<Id>
where Id: FheUintId,

Source§

fn overflowing_mul(self, other: Self) -> (Self::Output, FheBool)

Multiplies two FheUint and returns a boolean indicating overflow.

  • The operation is modular, i.e on overflow the result wraps around.
  • On overflow the FheBool is true, otherwise false
§Example
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);
let b = FheUint16::encrypt(54u16, &client_key);

let (result, overflowed) = (&a).overflowing_mul(&b);
let (expected_result, expected_overflowed) = 3434u16.overflowing_mul(54u16);
let result: u16 = result.decrypt(&client_key);
assert_eq!(result, expected_result);
assert_eq!(overflowed.decrypt(&client_key), expected_overflowed);
assert!(overflowed.decrypt(&client_key));
Source§

type Output = FheUint<Id>

Source§

impl<Id> OverflowingMul<&FheUint<Id>> for FheUint<Id>
where Id: FheUintId,

Source§

fn overflowing_mul(self, other: &Self) -> (Self::Output, FheBool)

Multiplies two FheUint and returns a boolean indicating overflow.

  • The operation is modular, i.e on overflow the result wraps around.
  • On overflow the FheBool is true, otherwise false
§Example
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);
let b = FheUint16::encrypt(54u16, &client_key);

let (result, overflowed) = a.overflowing_mul(&b);
let (expected_result, expected_overflowed) = 3434u16.overflowing_mul(54u16);
let result: u16 = result.decrypt(&client_key);
assert_eq!(result, expected_result);
assert_eq!(overflowed.decrypt(&client_key), expected_overflowed);
assert!(overflowed.decrypt(&client_key));
Source§

type Output = FheUint<Id>

Source§

impl<Id> OverflowingNeg for &FheUint<Id>
where Id: FheUintId,

Source§

impl<Id> OverflowingNeg for FheUint<Id>
where Id: FheUintId,

Source§

impl<Id> OverflowingSub<&FheUint<Id>> for &FheUint<Id>
where Id: FheUintId,

Source§

fn overflowing_sub(self, other: Self) -> (Self::Output, FheBool)

Subtracts two FheUint and returns a boolean indicating overflow.

  • The operation is modular, i.e on overflow the result wraps around.
  • On overflow the FheBool is true, otherwise false
§Example
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);
let b = FheUint16::encrypt(1u16, &client_key);

let (result, overflowed) = (&a).overflowing_sub(&b);
let result: u16 = result.decrypt(&client_key);
assert_eq!(result, 0u16.wrapping_sub(1u16));
assert_eq!(
    overflowed.decrypt(&client_key),
    0u16.overflowing_sub(1u16).1
);
assert!(overflowed.decrypt(&client_key));
Source§

type Output = FheUint<Id>

Source§

impl<Id> OverflowingSub<&FheUint<Id>> for FheUint<Id>
where Id: FheUintId,

Source§

fn overflowing_sub(self, other: &Self) -> (Self::Output, FheBool)

Subtracts two FheUint and returns a boolean indicating overflow.

  • The operation is modular, i.e on overflow the result wraps around.
  • On overflow the FheBool is true, otherwise false
§Example
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);
let b = FheUint16::encrypt(1u16, &client_key);

let (result, overflowed) = a.overflowing_sub(&b);
let result: u16 = result.decrypt(&client_key);
assert_eq!(result, 0u16.wrapping_sub(1u16));
assert_eq!(
    overflowed.decrypt(&client_key),
    0u16.overflowing_sub(1u16).1
);
assert!(overflowed.decrypt(&client_key));
Source§

type Output = FheUint<Id>

Source§

impl<Id, Clear> OverflowingSub<Clear> for &FheUint<Id>
where Id: FheUintId, Clear: UnsignedNumeric + DecomposableInto<u8> + Not<Output = Clear> + CastInto<u64>,

Source§

fn overflowing_sub(self, other: Clear) -> (Self::Output, FheBool)

Subtracts a FheUint with a Clear and returns a boolean indicating overflow.

  • The operation is modular, i.e on overflow the result wraps around.
  • On overflow the FheBool is true, otherwise false
§Example
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);

let (result, overflowed) = (&a).overflowing_sub(1u16);
let result: u16 = result.decrypt(&client_key);
assert_eq!(result, 0u16.wrapping_sub(1u16));
assert_eq!(
    overflowed.decrypt(&client_key),
    0u16.overflowing_sub(1u16).1
);
assert!(overflowed.decrypt(&client_key));
Source§

type Output = FheUint<Id>

Source§

impl<Id, Clear> OverflowingSub<Clear> for FheUint<Id>
where Id: FheUintId, Clear: UnsignedNumeric + DecomposableInto<u8> + Not<Output = Clear> + CastInto<u64>,

Source§

fn overflowing_sub(self, other: Clear) -> (Self::Output, FheBool)

Subtracts a FheUint with a Clear and returns a boolean indicating overflow.

  • The operation is modular, i.e on overflow the result wraps around.
  • On overflow the FheBool is true, otherwise false
§Example
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);

let (result, overflowed) = a.overflowing_sub(1u16);
let result: u16 = result.decrypt(&client_key);
assert_eq!(result, 0u16.wrapping_sub(1u16));
assert_eq!(
    overflowed.decrypt(&client_key),
    0u16.overflowing_sub(1u16).1
);
assert!(overflowed.decrypt(&client_key));
Source§

type Output = FheUint<Id>

Source§

impl<Id: FheUintId> ParameterSetConformant for FheUint<Id>

Source§

type ParameterSet = FheUintConformanceParams<Id>

Source§

fn is_conformant(&self, params: &FheUintConformanceParams<Id>) -> bool

Source§

impl<Id> ReRandomize for FheUint<Id>
where Id: FheUintId,

Source§

fn re_randomize<'a, RRD: Into<ReRandomizationMode<'a>>>( &mut self, re_randomization_mode: RRD, seed: ReRandomizationSeed, ) -> Result<()>

Re-randomize the ciphertext using the provided public key and seed. Read more
Source§

impl<Id, B> Rem<B> for FheUint<Id>
where Id: FheUintId, B: Borrow<Self>,

Source§

type Output = FheUint<Id>

The resulting type after applying the % operator.
Source§

fn rem(self, rhs: B) -> Self::Output

Performs the % operation. Read more
Source§

impl<Id, B> Rem<B> for &FheUint<Id>
where Id: FheUintId, B: Borrow<FheUint<Id>>,

Source§

fn rem(self, rhs: B) -> Self::Output

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
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);
Source§

type Output = FheUint<Id>

The resulting type after applying the % operator.
Source§

impl<Id, I> RemAssign<I> for FheUint<Id>
where Id: FheUintId, I: Borrow<Self>,

Source§

fn rem_assign(&mut self, rhs: I)

Performs the %= operation on FheUint

§Note

If you need both the quotient and remainder, then prefer to use FheUint::div_rem, instead of using / and % separately.

§Example
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);
let b = FheUint16::encrypt(3u16, &client_key);

a %= &b;
let result: u16 = a.decrypt(&client_key);
assert_eq!(result, 37849u16 % 3u16);
Source§

impl<Id> RemSizeOnGpu<&FheUint<Id>> for FheUint<Id>
where Id: FheUintId,

Available on crate feature gpu only.
Source§

fn get_rem_size_on_gpu(&self, rhs: &Self) -> u64

Source§

impl<Id> RerandSizeOnGpu for FheUint<Id>
where Id: FheUintId,

Available on crate feature gpu only.
Source§

fn get_rerand_size_on_gpu<'a>( &self, re_randomization_mode: impl Into<ReRandomizationMode<'a>>, ) -> Result<u64>

Source§

impl<Id, Id2> RotateLeft<&FheUint<Id2>> for FheInt<Id>
where Id: FheIntId, Id2: FheUintId,

Source§

type Output = FheInt<Id>

Source§

fn rotate_left(self, rhs: &FheUint<Id2>) -> Self::Output

Source§

impl<Id, Id2> RotateLeft<&FheUint<Id2>> for &FheInt<Id>
where Id: FheIntId, Id2: FheUintId,

Source§

fn rotate_left(self, rhs: &FheUint<Id2>) -> Self::Output

Performs a bitwise left rotation of a FheInt by a FheUint

§Example
use tfhe::prelude::*;
use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheInt16, FheUint16};

let (client_key, server_key) = generate_keys(ConfigBuilder::default());
set_server_key(server_key);

let a = FheInt16::encrypt(7849i16, &client_key);
let b = FheUint16::encrypt(3u16, &client_key);

let result = (&a).rotate_left(&b);
let result: i16 = result.decrypt(&client_key);
assert_eq!(result, 7849i16.rotate_left(3));
Source§

type Output = FheInt<Id>

Source§

impl<Id, Id2> RotateLeft<&FheUint<Id2>> for FheUint<Id>
where Id: FheUintId, Id2: FheUintId,

Source§

type Output = FheUint<Id>

Source§

fn rotate_left(self, rhs: &FheUint<Id2>) -> Self::Output

Source§

impl<Id, Id2> RotateLeft<&FheUint<Id2>> for &FheUint<Id>
where Id: FheUintId, Id2: FheUintId,

Source§

fn rotate_left(self, rhs: &FheUint<Id2>) -> Self::Output

Performs a bitwise left rotation of a FheUint by another FheUint

§Example
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).rotate_left(&b);
let result: u16 = result.decrypt(&client_key);
assert_eq!(result, 37849u16.rotate_left(3));
Source§

type Output = FheUint<Id>

Source§

impl<Id, Id2> RotateLeft<FheUint<Id2>> for FheInt<Id>
where Id: FheIntId, Id2: FheUintId,

Source§

type Output = FheInt<Id>

Source§

fn rotate_left(self, rhs: FheUint<Id2>) -> Self::Output

Source§

impl<Id, Id2> RotateLeft<FheUint<Id2>> for &FheInt<Id>
where Id: FheIntId, Id2: FheUintId,

Source§

type Output = FheInt<Id>

Source§

fn rotate_left(self, rhs: FheUint<Id2>) -> Self::Output

Source§

impl<Id, Id2> RotateLeft<FheUint<Id2>> for FheUint<Id>
where Id: FheUintId, Id2: FheUintId,

Source§

type Output = FheUint<Id>

Source§

fn rotate_left(self, rhs: FheUint<Id2>) -> Self::Output

Source§

impl<Id, Id2> RotateLeft<FheUint<Id2>> for &FheUint<Id>
where Id: FheUintId, Id2: FheUintId,

Source§

type Output = FheUint<Id>

Source§

fn rotate_left(self, rhs: FheUint<Id2>) -> Self::Output

Source§

impl<Id, Id2> RotateLeftAssign<&FheUint<Id2>> for FheInt<Id>
where Id: FheIntId, Id2: FheUintId,

Source§

fn rotate_left_assign(&mut self, rhs: &FheUint<Id2>)

Performs a left bit rotation and assign operation on FheInt

§Example
use tfhe::prelude::*;
use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheInt16, FheUint16};

let (client_key, server_key) = generate_keys(ConfigBuilder::default());
set_server_key(server_key);

let mut a = FheInt16::encrypt(7849i16, &client_key);
let b = FheUint16::encrypt(3u16, &client_key);

a.rotate_left_assign(&b);
let result: i16 = a.decrypt(&client_key);
assert_eq!(result, 7849i16.rotate_left(3));
Source§

impl<Id, Id2> RotateLeftAssign<&FheUint<Id2>> for FheUint<Id>
where Id: FheUintId, Id2: FheUintId,

Source§

fn rotate_left_assign(&mut self, rhs: &FheUint<Id2>)

Performs a left bit rotation and assign operation on FheUint

§Example
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);
let b = FheUint16::encrypt(3u16, &client_key);

a.rotate_left_assign(&b);
let result: u16 = a.decrypt(&client_key);
assert_eq!(result, 37849u16.rotate_left(3));
Source§

impl<Id, Id2> RotateLeftAssign<FheUint<Id2>> for FheInt<Id>
where Id: FheIntId, Id2: FheUintId,

Source§

fn rotate_left_assign(&mut self, rhs: FheUint<Id2>)

Source§

impl<Id, Id2> RotateLeftAssign<FheUint<Id2>> for FheUint<Id>
where Id: FheUintId, Id2: FheUintId,

Source§

fn rotate_left_assign(&mut self, rhs: FheUint<Id2>)

Source§

impl<Id, Id2> RotateLeftSizeOnGpu<&FheUint<Id2>> for FheInt<Id>
where Id: FheIntId, Id2: FheUintId,

Available on crate feature gpu only.
Source§

impl<Id> RotateLeftSizeOnGpu<&FheUint<Id>> for FheUint<Id>
where Id: FheUintId,

Available on crate feature gpu only.
Source§

fn get_rotate_left_size_on_gpu(&self, rhs: &Self) -> u64

Source§

impl<Id, Id2> RotateRight<&FheUint<Id2>> for FheInt<Id>
where Id: FheIntId, Id2: FheUintId,

Source§

type Output = FheInt<Id>

Source§

fn rotate_right(self, rhs: &FheUint<Id2>) -> Self::Output

Source§

impl<Id, Id2> RotateRight<&FheUint<Id2>> for &FheInt<Id>
where Id: FheIntId, Id2: FheUintId,

Source§

fn rotate_right(self, rhs: &FheUint<Id2>) -> Self::Output

Performs a bitwise right rotation of a FheInt by a FheUint

§Example
use tfhe::prelude::*;
use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheInt16, FheUint16};

let (client_key, server_key) = generate_keys(ConfigBuilder::default());
set_server_key(server_key);

let a = FheInt16::encrypt(7849i16, &client_key);
let b = FheUint16::encrypt(3u16, &client_key);

let result = (&a).rotate_right(&b);
let result: i16 = result.decrypt(&client_key);
assert_eq!(result, 7849i16.rotate_right(3));
Source§

type Output = FheInt<Id>

Source§

impl<Id, Id2> RotateRight<&FheUint<Id2>> for FheUint<Id>
where Id: FheUintId, Id2: FheUintId,

Source§

type Output = FheUint<Id>

Source§

fn rotate_right(self, rhs: &FheUint<Id2>) -> Self::Output

Source§

impl<Id, Id2> RotateRight<&FheUint<Id2>> for &FheUint<Id>
where Id: FheUintId, Id2: FheUintId,

Source§

fn rotate_right(self, rhs: &FheUint<Id2>) -> Self::Output

Performs a bitwise right rotation of a FheUint by another FheUint

§Example
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).rotate_right(&b);
let result: u16 = result.decrypt(&client_key);
assert_eq!(result, 37849u16.rotate_right(3));
Source§

type Output = FheUint<Id>

Source§

impl<Id, Id2> RotateRight<FheUint<Id2>> for FheInt<Id>
where Id: FheIntId, Id2: FheUintId,

Source§

type Output = FheInt<Id>

Source§

fn rotate_right(self, rhs: FheUint<Id2>) -> Self::Output

Source§

impl<Id, Id2> RotateRight<FheUint<Id2>> for &FheInt<Id>
where Id: FheIntId, Id2: FheUintId,

Source§

type Output = FheInt<Id>

Source§

fn rotate_right(self, rhs: FheUint<Id2>) -> Self::Output

Source§

impl<Id, Id2> RotateRight<FheUint<Id2>> for FheUint<Id>
where Id: FheUintId, Id2: FheUintId,

Source§

type Output = FheUint<Id>

Source§

fn rotate_right(self, rhs: FheUint<Id2>) -> Self::Output

Source§

impl<Id, Id2> RotateRight<FheUint<Id2>> for &FheUint<Id>
where Id: FheUintId, Id2: FheUintId,

Source§

type Output = FheUint<Id>

Source§

fn rotate_right(self, rhs: FheUint<Id2>) -> Self::Output

Source§

impl<Id, Id2> RotateRightAssign<&FheUint<Id2>> for FheInt<Id>
where Id: FheIntId, Id2: FheUintId,

Source§

fn rotate_right_assign(&mut self, rhs: &FheUint<Id2>)

Performs a right bit rotation and assign operation on FheInt

§Example
use tfhe::prelude::*;
use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheInt16, FheUint16};

let (client_key, server_key) = generate_keys(ConfigBuilder::default());
set_server_key(server_key);

let mut a = FheInt16::encrypt(7849i16, &client_key);
let b = FheUint16::encrypt(3u16, &client_key);

a.rotate_right_assign(&b);
let result: i16 = a.decrypt(&client_key);
assert_eq!(result, 7849i16.rotate_right(3));
Source§

impl<Id, Id2> RotateRightAssign<&FheUint<Id2>> for FheUint<Id>
where Id: FheUintId, Id2: FheUintId,

Source§

fn rotate_right_assign(&mut self, rhs: &FheUint<Id2>)

Performs a right bit rotation and assign operation on FheUint

§Example
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);
let b = FheUint16::encrypt(3u16, &client_key);

a.rotate_right_assign(&b);
let result: u16 = a.decrypt(&client_key);
assert_eq!(result, 37849u16.rotate_right(3));
Source§

impl<Id, Id2> RotateRightAssign<FheUint<Id2>> for FheInt<Id>
where Id: FheIntId, Id2: FheUintId,

Source§

fn rotate_right_assign(&mut self, rhs: FheUint<Id2>)

Source§

impl<Id, Id2> RotateRightAssign<FheUint<Id2>> for FheUint<Id>
where Id: FheUintId, Id2: FheUintId,

Source§

fn rotate_right_assign(&mut self, rhs: FheUint<Id2>)

Source§

impl<Id, Id2> RotateRightSizeOnGpu<&FheUint<Id2>> for FheInt<Id>
where Id: FheIntId, Id2: FheUintId,

Available on crate feature gpu only.
Source§

impl<Id> RotateRightSizeOnGpu<&FheUint<Id>> for FheUint<Id>
where Id: FheUintId,

Available on crate feature gpu only.
Source§

fn get_rotate_right_size_on_gpu(&self, rhs: &Self) -> u64

Source§

impl<Id, Scalar> ScalarIfThenElse<&FheUint<Id>, Scalar> for FheBool

Source§

fn scalar_if_then_else( &self, then_value: &FheUint<Id>, else_value: Scalar, ) -> Self::Output

§Example
use tfhe::prelude::*;
use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheBool, 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 = 1u32;
let cond = FheBool::encrypt(true, &client_key);

let result = cond.scalar_if_then_else(&a, b);
let decrypted: u32 = result.decrypt(&client_key);
assert_eq!(decrypted, u32::MAX);

let result = (!cond).scalar_if_then_else(&a, b);
let decrypted: u32 = result.decrypt(&client_key);
assert_eq!(decrypted, 1);
Source§

type Output = FheUint<Id>

Source§

fn scalar_select(&self, value_true: Lhs, value_false: Rhs) -> Self::Output

Source§

fn scalar_cmux(&self, value_true: Lhs, value_false: Rhs) -> Self::Output

Source§

impl<Id, Scalar> ScalarIfThenElse<Scalar, &FheUint<Id>> for FheBool

Source§

fn scalar_if_then_else( &self, then_value: Scalar, else_value: &FheUint<Id>, ) -> Self::Output

§Example
use tfhe::prelude::*;
use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheBool, FheUint32};

let (client_key, server_key) = generate_keys(ConfigBuilder::default());
set_server_key(server_key);

let a = u32::MIN;
let b = FheUint32::encrypt(u32::MAX, &client_key);
let cond = FheBool::encrypt(true, &client_key);

let result = cond.scalar_if_then_else(a, &b);
let decrypted: u32 = result.decrypt(&client_key);
assert_eq!(decrypted, u32::MIN);

let result = (!cond).scalar_if_then_else(a, &b);
let decrypted: u32 = result.decrypt(&client_key);
assert_eq!(decrypted, u32::MAX);
Source§

type Output = FheUint<Id>

Source§

fn scalar_select(&self, value_true: Lhs, value_false: Rhs) -> Self::Output

Source§

fn scalar_cmux(&self, value_true: Lhs, value_false: Rhs) -> Self::Output

Source§

impl<Id> Serialize for FheUint<Id>
where Id: Serialize + FheUintId,

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
Source§

impl<Id, Id2> Shl<&FheUint<Id2>> for FheInt<Id>
where Id: FheIntId, Id2: FheUintId,

Source§

type Output = FheInt<Id>

The resulting type after applying the << operator.
Source§

fn shl(self, rhs: &FheUint<Id2>) -> Self::Output

Performs the << operation. Read more
Source§

impl<Id, Id2> Shl<&FheUint<Id2>> for &FheInt<Id>
where Id: FheIntId, Id2: FheUintId,

Source§

fn shl(self, rhs: &FheUint<Id2>) -> Self::Output

Performs a bitwise left shift of a FheInt by a FheUint

§Example
use tfhe::prelude::*;
use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheInt16, FheUint16};

let (client_key, server_key) = generate_keys(ConfigBuilder::default());
set_server_key(server_key);

let a = FheInt16::encrypt(7849i16, &client_key);
let b = FheUint16::encrypt(3u16, &client_key);

let result = &a << &b;
let result: i16 = result.decrypt(&client_key);
assert_eq!(result, 7849i16 << 3u16);
Source§

type Output = FheInt<Id>

The resulting type after applying the << operator.
Source§

impl<Id, Id2> Shl<&FheUint<Id2>> for FheUint<Id>
where Id: FheUintId, Id2: FheUintId,

Source§

type Output = FheUint<Id>

The resulting type after applying the << operator.
Source§

fn shl(self, rhs: &FheUint<Id2>) -> Self::Output

Performs the << operation. Read more
Source§

impl<Id, Id2> Shl<&FheUint<Id2>> for &FheUint<Id>
where Id: FheUintId, Id2: FheUintId,

Source§

fn shl(self, rhs: &FheUint<Id2>) -> Self::Output

Performs a bitwise left shift of a FheUint by another FheUint

§Example
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);
Source§

type Output = FheUint<Id>

The resulting type after applying the << operator.
Source§

impl<Id, Id2> Shl<FheUint<Id2>> for FheInt<Id>
where Id: FheIntId, Id2: FheUintId,

Source§

type Output = FheInt<Id>

The resulting type after applying the << operator.
Source§

fn shl(self, rhs: FheUint<Id2>) -> Self::Output

Performs the << operation. Read more
Source§

impl<Id, Id2> Shl<FheUint<Id2>> for &FheInt<Id>
where Id: FheIntId, Id2: FheUintId,

Source§

type Output = FheInt<Id>

The resulting type after applying the << operator.
Source§

fn shl(self, rhs: FheUint<Id2>) -> Self::Output

Performs the << operation. Read more
Source§

impl<Id, Id2> Shl<FheUint<Id2>> for FheUint<Id>
where Id: FheUintId, Id2: FheUintId,

Source§

type Output = FheUint<Id>

The resulting type after applying the << operator.
Source§

fn shl(self, rhs: FheUint<Id2>) -> Self::Output

Performs the << operation. Read more
Source§

impl<Id, Id2> Shl<FheUint<Id2>> for &FheUint<Id>
where Id: FheUintId, Id2: FheUintId,

Source§

type Output = FheUint<Id>

The resulting type after applying the << operator.
Source§

fn shl(self, rhs: FheUint<Id2>) -> Self::Output

Performs the << operation. Read more
Source§

impl<Id, Id2> ShlAssign<&FheUint<Id2>> for FheInt<Id>
where Id: FheIntId, Id2: FheUintId,

Source§

fn shl_assign(&mut self, rhs: &FheUint<Id2>)

Performs the <<= operation on FheInt

§Overshift

If the shift amount is greater than or equal to the number of bits of the type, the result is 0.

§Example
use tfhe::prelude::*;
use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheInt16, FheUint16};

let (client_key, server_key) = generate_keys(ConfigBuilder::default());
set_server_key(server_key);

let mut a = FheInt16::encrypt(7849i16, &client_key);
let b = FheUint16::encrypt(3u16, &client_key);

a <<= &b;
let result: i16 = a.decrypt(&client_key);
assert_eq!(result, 7849i16 << 3u16);
Source§

impl<Id, Id2> ShlAssign<&FheUint<Id2>> for FheUint<Id>
where Id: FheUintId, Id2: FheUintId,

Source§

fn shl_assign(&mut self, rhs: &FheUint<Id2>)

Performs the <<= operation on FheUint

§Overshift

If the shift amount is greater than or equal to the number of bits of the type, the result is 0.

§Example
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);
let b = FheUint16::encrypt(3u16, &client_key);

a <<= &b;
let result: u16 = a.decrypt(&client_key);
assert_eq!(result, 37849u16 << 3u16);
Source§

impl<Id, Id2> ShlAssign<FheUint<Id2>> for FheInt<Id>
where Id: FheIntId, Id2: FheUintId,

Source§

fn shl_assign(&mut self, rhs: FheUint<Id2>)

Performs the <<= operation. Read more
Source§

impl<Id, Id2> ShlAssign<FheUint<Id2>> for FheUint<Id>
where Id: FheUintId, Id2: FheUintId,

Source§

fn shl_assign(&mut self, rhs: FheUint<Id2>)

Performs the <<= operation. Read more
Source§

impl<Id, Id2> ShlSizeOnGpu<&FheUint<Id2>> for FheInt<Id>
where Id: FheIntId, Id2: FheUintId,

Available on crate feature gpu only.
Source§

impl<Id> ShlSizeOnGpu<&FheUint<Id>> for FheUint<Id>
where Id: FheUintId,

Available on crate feature gpu only.
Source§

fn get_left_shift_size_on_gpu(&self, rhs: &Self) -> u64

Source§

impl<Id, Id2> Shr<&FheUint<Id2>> for FheInt<Id>
where Id: FheIntId, Id2: FheUintId,

Source§

type Output = FheInt<Id>

The resulting type after applying the >> operator.
Source§

fn shr(self, rhs: &FheUint<Id2>) -> Self::Output

Performs the >> operation. Read more
Source§

impl<Id, Id2> Shr<&FheUint<Id2>> for &FheInt<Id>
where Id: FheIntId, Id2: FheUintId,

Source§

fn shr(self, rhs: &FheUint<Id2>) -> Self::Output

Performs a bitwise right shift of a FheInt by a FheUint

§Example
use tfhe::prelude::*;
use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheInt16, FheUint16};

let (client_key, server_key) = generate_keys(ConfigBuilder::default());
set_server_key(server_key);

let a = FheInt16::encrypt(7849i16, &client_key);
let b = FheUint16::encrypt(3u16, &client_key);

let result = &a >> &b;
let result: i16 = result.decrypt(&client_key);
assert_eq!(result, 7849i16 >> 3u16);
Source§

type Output = FheInt<Id>

The resulting type after applying the >> operator.
Source§

impl<Id, Id2> Shr<&FheUint<Id2>> for FheUint<Id>
where Id: FheUintId, Id2: FheUintId,

Source§

type Output = FheUint<Id>

The resulting type after applying the >> operator.
Source§

fn shr(self, rhs: &FheUint<Id2>) -> Self::Output

Performs the >> operation. Read more
Source§

impl<Id, Id2> Shr<&FheUint<Id2>> for &FheUint<Id>
where Id: FheUintId, Id2: FheUintId,

Source§

fn shr(self, rhs: &FheUint<Id2>) -> Self::Output

Performs a bitwise right shift of a FheUint by another FheUint

§Example
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);
Source§

type Output = FheUint<Id>

The resulting type after applying the >> operator.
Source§

impl<Id, Id2> Shr<FheUint<Id2>> for FheInt<Id>
where Id: FheIntId, Id2: FheUintId,

Source§

type Output = FheInt<Id>

The resulting type after applying the >> operator.
Source§

fn shr(self, rhs: FheUint<Id2>) -> Self::Output

Performs the >> operation. Read more
Source§

impl<Id, Id2> Shr<FheUint<Id2>> for &FheInt<Id>
where Id: FheIntId, Id2: FheUintId,

Source§

type Output = FheInt<Id>

The resulting type after applying the >> operator.
Source§

fn shr(self, rhs: FheUint<Id2>) -> Self::Output

Performs the >> operation. Read more
Source§

impl<Id, Id2> Shr<FheUint<Id2>> for FheUint<Id>
where Id: FheUintId, Id2: FheUintId,

Source§

type Output = FheUint<Id>

The resulting type after applying the >> operator.
Source§

fn shr(self, rhs: FheUint<Id2>) -> Self::Output

Performs the >> operation. Read more
Source§

impl<Id, Id2> Shr<FheUint<Id2>> for &FheUint<Id>
where Id: FheUintId, Id2: FheUintId,

Source§

type Output = FheUint<Id>

The resulting type after applying the >> operator.
Source§

fn shr(self, rhs: FheUint<Id2>) -> Self::Output

Performs the >> operation. Read more
Source§

impl<Id, Id2> ShrAssign<&FheUint<Id2>> for FheInt<Id>
where Id: FheIntId, Id2: FheUintId,

Source§

fn shr_assign(&mut self, rhs: &FheUint<Id2>)

Performs the >>= operation on FheInt

§Overshift

If the shift amount is greater than or equal to the number of bits of the type, the result is 0 for non-negative inputs, and -1 for negative inputs (sign-extension).

§Example
use tfhe::prelude::*;
use tfhe::{generate_keys, set_server_key, ConfigBuilder, FheInt16, FheUint16};

let (client_key, server_key) = generate_keys(ConfigBuilder::default());
set_server_key(server_key);

let mut a = FheInt16::encrypt(7849i16, &client_key);
let b = FheUint16::encrypt(3u16, &client_key);

a >>= &b;
let result: i16 = a.decrypt(&client_key);
assert_eq!(result, 7849i16 >> 3u16);
Source§

impl<Id, Id2> ShrAssign<&FheUint<Id2>> for FheUint<Id>
where Id: FheUintId, Id2: FheUintId,

Source§

fn shr_assign(&mut self, rhs: &FheUint<Id2>)

Performs the >>= operation on FheUint

§Overshift

If the shift amount is greater than or equal to the number of bits of the type, the result is 0.

§Example
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);
let b = FheUint16::encrypt(3u16, &client_key);

a >>= &b;
let result: u16 = a.decrypt(&client_key);
assert_eq!(result, 37849u16 >> 3u16);
Source§

impl<Id, Id2> ShrAssign<FheUint<Id2>> for FheInt<Id>
where Id: FheIntId, Id2: FheUintId,

Source§

fn shr_assign(&mut self, rhs: FheUint<Id2>)

Performs the >>= operation. Read more
Source§

impl<Id, Id2> ShrAssign<FheUint<Id2>> for FheUint<Id>
where Id: FheUintId, Id2: FheUintId,

Source§

fn shr_assign(&mut self, rhs: FheUint<Id2>)

Performs the >>= operation. Read more
Source§

impl<Id, Id2> ShrSizeOnGpu<&FheUint<Id2>> for FheInt<Id>
where Id: FheIntId, Id2: FheUintId,

Available on crate feature gpu only.
Source§

impl<Id> ShrSizeOnGpu<&FheUint<Id>> for FheUint<Id>
where Id: FheUintId,

Available on crate feature gpu only.
Source§

fn get_right_shift_size_on_gpu(&self, rhs: &Self) -> u64

Source§

impl<Id> SizeOnGpu for FheUint<Id>
where Id: FheUintId,

Available on crate feature gpu only.
Source§

impl<Id: FheUintId> SquashNoise for FheUint<Id>

Source§

impl Sub<&FheUint<FheUint2Id>> for u8

Source§

type Output = FheUint<FheUint2Id>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: &FheUint2) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<&FheUint<FheUint2Id>> for &u8

Source§

type Output = FheUint<FheUint2Id>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: &FheUint2) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<&FheUint<FheUint4Id>> for u8

Source§

type Output = FheUint<FheUint4Id>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: &FheUint4) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<&FheUint<FheUint4Id>> for &u8

Source§

type Output = FheUint<FheUint4Id>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: &FheUint4) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<&FheUint<FheUint6Id>> for u8

Source§

type Output = FheUint<FheUint6Id>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: &FheUint6) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<&FheUint<FheUint6Id>> for &u8

Source§

type Output = FheUint<FheUint6Id>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: &FheUint6) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<&FheUint<FheUint8Id>> for u8

Source§

type Output = FheUint<FheUint8Id>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: &FheUint8) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<&FheUint<FheUint8Id>> for &u8

Source§

type Output = FheUint<FheUint8Id>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: &FheUint8) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<&FheUint<FheUint10Id>> for u16

Source§

type Output = FheUint<FheUint10Id>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: &FheUint10) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<&FheUint<FheUint10Id>> for &u16

Source§

type Output = FheUint<FheUint10Id>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: &FheUint10) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<&FheUint<FheUint12Id>> for u16

Source§

type Output = FheUint<FheUint12Id>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: &FheUint12) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<&FheUint<FheUint12Id>> for &u16

Source§

type Output = FheUint<FheUint12Id>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: &FheUint12) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<&FheUint<FheUint14Id>> for u16

Source§

type Output = FheUint<FheUint14Id>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: &FheUint14) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<&FheUint<FheUint14Id>> for &u16

Source§

type Output = FheUint<FheUint14Id>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: &FheUint14) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<&FheUint<FheUint16Id>> for u16

Source§

type Output = FheUint<FheUint16Id>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: &FheUint16) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<&FheUint<FheUint16Id>> for &u16

Source§

type Output = FheUint<FheUint16Id>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: &FheUint16) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<&FheUint<FheUint24Id>> for u32

Source§

type Output = FheUint<FheUint24Id>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: &FheUint24) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<&FheUint<FheUint24Id>> for &u32

Source§

type Output = FheUint<FheUint24Id>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: &FheUint24) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<&FheUint<FheUint32Id>> for u32

Source§

type Output = FheUint<FheUint32Id>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: &FheUint32) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<&FheUint<FheUint32Id>> for &u32

Source§

type Output = FheUint<FheUint32Id>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: &FheUint32) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<&FheUint<FheUint40Id>> for u64

Source§

type Output = FheUint<FheUint40Id>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: &FheUint40) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<&FheUint<FheUint40Id>> for &u64

Source§

type Output = FheUint<FheUint40Id>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: &FheUint40) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<&FheUint<FheUint48Id>> for u64

Source§

type Output = FheUint<FheUint48Id>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: &FheUint48) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<&FheUint<FheUint48Id>> for &u64

Source§

type Output = FheUint<FheUint48Id>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: &FheUint48) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<&FheUint<FheUint56Id>> for u64

Source§

type Output = FheUint<FheUint56Id>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: &FheUint56) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<&FheUint<FheUint56Id>> for &u64

Source§

type Output = FheUint<FheUint56Id>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: &FheUint56) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<&FheUint<FheUint64Id>> for u64

Source§

type Output = FheUint<FheUint64Id>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: &FheUint64) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<&FheUint<FheUint64Id>> for &u64

Source§

type Output = FheUint<FheUint64Id>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: &FheUint64) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<&FheUint<FheUint72Id>> for u128

Source§

type Output = FheUint<FheUint72Id>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: &FheUint72) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<&FheUint<FheUint72Id>> for &u128

Source§

type Output = FheUint<FheUint72Id>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: &FheUint72) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<&FheUint<FheUint80Id>> for u128

Source§

type Output = FheUint<FheUint80Id>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: &FheUint80) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<&FheUint<FheUint80Id>> for &u128

Source§

type Output = FheUint<FheUint80Id>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: &FheUint80) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<&FheUint<FheUint88Id>> for u128

Source§

type Output = FheUint<FheUint88Id>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: &FheUint88) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<&FheUint<FheUint88Id>> for &u128

Source§

type Output = FheUint<FheUint88Id>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: &FheUint88) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<&FheUint<FheUint96Id>> for u128

Source§

type Output = FheUint<FheUint96Id>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: &FheUint96) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<&FheUint<FheUint96Id>> for &u128

Source§

type Output = FheUint<FheUint96Id>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: &FheUint96) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<&FheUint<FheUint104Id>> for u128

Source§

type Output = FheUint<FheUint104Id>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: &FheUint104) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<&FheUint<FheUint104Id>> for &u128

Source§

type Output = FheUint<FheUint104Id>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: &FheUint104) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<&FheUint<FheUint112Id>> for u128

Source§

type Output = FheUint<FheUint112Id>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: &FheUint112) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<&FheUint<FheUint112Id>> for &u128

Source§

type Output = FheUint<FheUint112Id>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: &FheUint112) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<&FheUint<FheUint120Id>> for u128

Source§

type Output = FheUint<FheUint120Id>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: &FheUint120) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<&FheUint<FheUint120Id>> for &u128

Source§

type Output = FheUint<FheUint120Id>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: &FheUint120) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<&FheUint<FheUint128Id>> for u128

Source§

type Output = FheUint<FheUint128Id>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: &FheUint128) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<&FheUint<FheUint128Id>> for &u128

Source§

type Output = FheUint<FheUint128Id>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: &FheUint128) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<&FheUint<FheUint136Id>> for U256

Source§

type Output = FheUint<FheUint136Id>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: &FheUint136) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<&FheUint<FheUint136Id>> for &U256

Source§

type Output = FheUint<FheUint136Id>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: &FheUint136) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<&FheUint<FheUint144Id>> for U256

Source§

type Output = FheUint<FheUint144Id>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: &FheUint144) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<&FheUint<FheUint144Id>> for &U256

Source§

type Output = FheUint<FheUint144Id>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: &FheUint144) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<&FheUint<FheUint152Id>> for U256

Source§

type Output = FheUint<FheUint152Id>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: &FheUint152) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<&FheUint<FheUint152Id>> for &U256

Source§

type Output = FheUint<FheUint152Id>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: &FheUint152) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<&FheUint<FheUint160Id>> for U256

Source§

type Output = FheUint<FheUint160Id>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: &FheUint160) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<&FheUint<FheUint160Id>> for &U256

Source§

type Output = FheUint<FheUint160Id>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: &FheUint160) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<&FheUint<FheUint168Id>> for U256

Source§

type Output = FheUint<FheUint168Id>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: &FheUint168) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<&FheUint<FheUint168Id>> for &U256

Source§

type Output = FheUint<FheUint168Id>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: &FheUint168) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<&FheUint<FheUint176Id>> for U256

Source§

type Output = FheUint<FheUint176Id>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: &FheUint176) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<&FheUint<FheUint176Id>> for &U256

Source§

type Output = FheUint<FheUint176Id>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: &FheUint176) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<&FheUint<FheUint184Id>> for U256

Source§

type Output = FheUint<FheUint184Id>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: &FheUint184) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<&FheUint<FheUint184Id>> for &U256

Source§

type Output = FheUint<FheUint184Id>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: &FheUint184) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<&FheUint<FheUint192Id>> for U256

Source§

type Output = FheUint<FheUint192Id>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: &FheUint192) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<&FheUint<FheUint192Id>> for &U256

Source§

type Output = FheUint<FheUint192Id>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: &FheUint192) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<&FheUint<FheUint200Id>> for U256

Source§

type Output = FheUint<FheUint200Id>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: &FheUint200) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<&FheUint<FheUint200Id>> for &U256

Source§

type Output = FheUint<FheUint200Id>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: &FheUint200) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<&FheUint<FheUint208Id>> for U256

Source§

type Output = FheUint<FheUint208Id>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: &FheUint208) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<&FheUint<FheUint208Id>> for &U256

Source§

type Output = FheUint<FheUint208Id>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: &FheUint208) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<&FheUint<FheUint216Id>> for U256

Source§

type Output = FheUint<FheUint216Id>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: &FheUint216) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<&FheUint<FheUint216Id>> for &U256

Source§

type Output = FheUint<FheUint216Id>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: &FheUint216) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<&FheUint<FheUint224Id>> for U256

Source§

type Output = FheUint<FheUint224Id>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: &FheUint224) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<&FheUint<FheUint224Id>> for &U256

Source§

type Output = FheUint<FheUint224Id>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: &FheUint224) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<&FheUint<FheUint232Id>> for U256

Source§

type Output = FheUint<FheUint232Id>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: &FheUint232) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<&FheUint<FheUint232Id>> for &U256

Source§

type Output = FheUint<FheUint232Id>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: &FheUint232) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<&FheUint<FheUint240Id>> for U256

Source§

type Output = FheUint<FheUint240Id>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: &FheUint240) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<&FheUint<FheUint240Id>> for &U256

Source§

type Output = FheUint<FheUint240Id>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: &FheUint240) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<&FheUint<FheUint248Id>> for U256

Source§

type Output = FheUint<FheUint248Id>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: &FheUint248) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<&FheUint<FheUint248Id>> for &U256

Source§

type Output = FheUint<FheUint248Id>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: &FheUint248) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<&FheUint<FheUint256Id>> for U256

Source§

type Output = FheUint<FheUint256Id>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: &FheUint256) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<&FheUint<FheUint256Id>> for &U256

Source§

type Output = FheUint<FheUint256Id>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: &FheUint256) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<&FheUint<FheUint512Id>> for U512

Source§

type Output = FheUint<FheUint512Id>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: &FheUint512) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<&FheUint<FheUint512Id>> for &U512

Source§

type Output = FheUint<FheUint512Id>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: &FheUint512) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<&FheUint<FheUint1024Id>> for U1024

Source§

type Output = FheUint<FheUint1024Id>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: &FheUint1024) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<&FheUint<FheUint1024Id>> for &U1024

Source§

type Output = FheUint<FheUint1024Id>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: &FheUint1024) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<&FheUint<FheUint2048Id>> for U2048

Source§

type Output = FheUint<FheUint2048Id>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: &FheUint2048) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<&FheUint<FheUint2048Id>> for &U2048

Source§

type Output = FheUint<FheUint2048Id>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: &FheUint2048) -> Self::Output

Performs the - operation. Read more
Source§

impl<Id, B> Sub<B> for FheUint<Id>
where Id: FheUintId, B: Borrow<Self>,

Source§

type Output = FheUint<Id>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: B) -> Self::Output

Performs the - operation. Read more
Source§

impl<Id, B> Sub<B> for &FheUint<Id>
where Id: FheUintId, B: Borrow<FheUint<Id>>,

Source§

fn sub(self, rhs: B) -> Self::Output

Subtracts two FheUint

The operation is modular, i.e on overflow it wraps around.

§Example
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));
Source§

type Output = FheUint<Id>

The resulting type after applying the - operator.
Source§

impl Sub<FheUint<FheUint2Id>> for u8

Source§

type Output = FheUint<FheUint2Id>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: FheUint2) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<FheUint<FheUint2Id>> for &u8

Source§

type Output = FheUint<FheUint2Id>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: FheUint2) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<FheUint<FheUint4Id>> for u8

Source§

type Output = FheUint<FheUint4Id>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: FheUint4) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<FheUint<FheUint4Id>> for &u8

Source§

type Output = FheUint<FheUint4Id>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: FheUint4) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<FheUint<FheUint6Id>> for u8

Source§

type Output = FheUint<FheUint6Id>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: FheUint6) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<FheUint<FheUint6Id>> for &u8

Source§

type Output = FheUint<FheUint6Id>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: FheUint6) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<FheUint<FheUint8Id>> for u8

Source§

type Output = FheUint<FheUint8Id>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: FheUint8) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<FheUint<FheUint8Id>> for &u8

Source§

type Output = FheUint<FheUint8Id>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: FheUint8) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<FheUint<FheUint10Id>> for u16

Source§

type Output = FheUint<FheUint10Id>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: FheUint10) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<FheUint<FheUint10Id>> for &u16

Source§

type Output = FheUint<FheUint10Id>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: FheUint10) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<FheUint<FheUint12Id>> for u16

Source§

type Output = FheUint<FheUint12Id>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: FheUint12) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<FheUint<FheUint12Id>> for &u16

Source§

type Output = FheUint<FheUint12Id>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: FheUint12) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<FheUint<FheUint14Id>> for u16

Source§

type Output = FheUint<FheUint14Id>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: FheUint14) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<FheUint<FheUint14Id>> for &u16

Source§

type Output = FheUint<FheUint14Id>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: FheUint14) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<FheUint<FheUint16Id>> for u16

Source§

type Output = FheUint<FheUint16Id>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: FheUint16) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<FheUint<FheUint16Id>> for &u16

Source§

type Output = FheUint<FheUint16Id>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: FheUint16) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<FheUint<FheUint24Id>> for u32

Source§

type Output = FheUint<FheUint24Id>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: FheUint24) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<FheUint<FheUint24Id>> for &u32

Source§

type Output = FheUint<FheUint24Id>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: FheUint24) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<FheUint<FheUint32Id>> for u32

Source§

type Output = FheUint<FheUint32Id>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: FheUint32) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<FheUint<FheUint32Id>> for &u32

Source§

type Output = FheUint<FheUint32Id>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: FheUint32) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<FheUint<FheUint40Id>> for u64

Source§

type Output = FheUint<FheUint40Id>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: FheUint40) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<FheUint<FheUint40Id>> for &u64

Source§

type Output = FheUint<FheUint40Id>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: FheUint40) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<FheUint<FheUint48Id>> for u64

Source§

type Output = FheUint<FheUint48Id>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: FheUint48) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<FheUint<FheUint48Id>> for &u64

Source§

type Output = FheUint<FheUint48Id>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: FheUint48) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<FheUint<FheUint56Id>> for u64

Source§

type Output = FheUint<FheUint56Id>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: FheUint56) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<FheUint<FheUint56Id>> for &u64

Source§

type Output = FheUint<FheUint56Id>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: FheUint56) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<FheUint<FheUint64Id>> for u64

Source§

type Output = FheUint<FheUint64Id>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: FheUint64) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<FheUint<FheUint64Id>> for &u64

Source§

type Output = FheUint<FheUint64Id>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: FheUint64) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<FheUint<FheUint72Id>> for u128

Source§

type Output = FheUint<FheUint72Id>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: FheUint72) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<FheUint<FheUint72Id>> for &u128

Source§

type Output = FheUint<FheUint72Id>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: FheUint72) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<FheUint<FheUint80Id>> for u128

Source§

type Output = FheUint<FheUint80Id>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: FheUint80) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<FheUint<FheUint80Id>> for &u128

Source§

type Output = FheUint<FheUint80Id>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: FheUint80) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<FheUint<FheUint88Id>> for u128

Source§

type Output = FheUint<FheUint88Id>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: FheUint88) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<FheUint<FheUint88Id>> for &u128

Source§

type Output = FheUint<FheUint88Id>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: FheUint88) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<FheUint<FheUint96Id>> for u128

Source§

type Output = FheUint<FheUint96Id>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: FheUint96) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<FheUint<FheUint96Id>> for &u128

Source§

type Output = FheUint<FheUint96Id>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: FheUint96) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<FheUint<FheUint104Id>> for u128

Source§

type Output = FheUint<FheUint104Id>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: FheUint104) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<FheUint<FheUint104Id>> for &u128

Source§

type Output = FheUint<FheUint104Id>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: FheUint104) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<FheUint<FheUint112Id>> for u128

Source§

type Output = FheUint<FheUint112Id>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: FheUint112) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<FheUint<FheUint112Id>> for &u128

Source§

type Output = FheUint<FheUint112Id>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: FheUint112) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<FheUint<FheUint120Id>> for u128

Source§

type Output = FheUint<FheUint120Id>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: FheUint120) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<FheUint<FheUint120Id>> for &u128

Source§

type Output = FheUint<FheUint120Id>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: FheUint120) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<FheUint<FheUint128Id>> for u128

Source§

type Output = FheUint<FheUint128Id>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: FheUint128) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<FheUint<FheUint128Id>> for &u128

Source§

type Output = FheUint<FheUint128Id>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: FheUint128) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<FheUint<FheUint136Id>> for U256

Source§

type Output = FheUint<FheUint136Id>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: FheUint136) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<FheUint<FheUint136Id>> for &U256

Source§

type Output = FheUint<FheUint136Id>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: FheUint136) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<FheUint<FheUint144Id>> for U256

Source§

type Output = FheUint<FheUint144Id>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: FheUint144) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<FheUint<FheUint144Id>> for &U256

Source§

type Output = FheUint<FheUint144Id>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: FheUint144) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<FheUint<FheUint152Id>> for U256

Source§

type Output = FheUint<FheUint152Id>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: FheUint152) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<FheUint<FheUint152Id>> for &U256

Source§

type Output = FheUint<FheUint152Id>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: FheUint152) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<FheUint<FheUint160Id>> for U256

Source§

type Output = FheUint<FheUint160Id>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: FheUint160) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<FheUint<FheUint160Id>> for &U256

Source§

type Output = FheUint<FheUint160Id>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: FheUint160) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<FheUint<FheUint168Id>> for U256

Source§

type Output = FheUint<FheUint168Id>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: FheUint168) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<FheUint<FheUint168Id>> for &U256

Source§

type Output = FheUint<FheUint168Id>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: FheUint168) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<FheUint<FheUint176Id>> for U256

Source§

type Output = FheUint<FheUint176Id>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: FheUint176) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<FheUint<FheUint176Id>> for &U256

Source§

type Output = FheUint<FheUint176Id>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: FheUint176) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<FheUint<FheUint184Id>> for U256

Source§

type Output = FheUint<FheUint184Id>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: FheUint184) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<FheUint<FheUint184Id>> for &U256

Source§

type Output = FheUint<FheUint184Id>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: FheUint184) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<FheUint<FheUint192Id>> for U256

Source§

type Output = FheUint<FheUint192Id>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: FheUint192) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<FheUint<FheUint192Id>> for &U256

Source§

type Output = FheUint<FheUint192Id>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: FheUint192) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<FheUint<FheUint200Id>> for U256

Source§

type Output = FheUint<FheUint200Id>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: FheUint200) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<FheUint<FheUint200Id>> for &U256

Source§

type Output = FheUint<FheUint200Id>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: FheUint200) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<FheUint<FheUint208Id>> for U256

Source§

type Output = FheUint<FheUint208Id>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: FheUint208) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<FheUint<FheUint208Id>> for &U256

Source§

type Output = FheUint<FheUint208Id>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: FheUint208) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<FheUint<FheUint216Id>> for U256

Source§

type Output = FheUint<FheUint216Id>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: FheUint216) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<FheUint<FheUint216Id>> for &U256

Source§

type Output = FheUint<FheUint216Id>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: FheUint216) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<FheUint<FheUint224Id>> for U256

Source§

type Output = FheUint<FheUint224Id>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: FheUint224) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<FheUint<FheUint224Id>> for &U256

Source§

type Output = FheUint<FheUint224Id>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: FheUint224) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<FheUint<FheUint232Id>> for U256

Source§

type Output = FheUint<FheUint232Id>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: FheUint232) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<FheUint<FheUint232Id>> for &U256

Source§

type Output = FheUint<FheUint232Id>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: FheUint232) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<FheUint<FheUint240Id>> for U256

Source§

type Output = FheUint<FheUint240Id>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: FheUint240) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<FheUint<FheUint240Id>> for &U256

Source§

type Output = FheUint<FheUint240Id>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: FheUint240) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<FheUint<FheUint248Id>> for U256

Source§

type Output = FheUint<FheUint248Id>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: FheUint248) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<FheUint<FheUint248Id>> for &U256

Source§

type Output = FheUint<FheUint248Id>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: FheUint248) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<FheUint<FheUint256Id>> for U256

Source§

type Output = FheUint<FheUint256Id>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: FheUint256) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<FheUint<FheUint256Id>> for &U256

Source§

type Output = FheUint<FheUint256Id>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: FheUint256) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<FheUint<FheUint512Id>> for U512

Source§

type Output = FheUint<FheUint512Id>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: FheUint512) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<FheUint<FheUint512Id>> for &U512

Source§

type Output = FheUint<FheUint512Id>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: FheUint512) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<FheUint<FheUint1024Id>> for U1024

Source§

type Output = FheUint<FheUint1024Id>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: FheUint1024) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<FheUint<FheUint1024Id>> for &U1024

Source§

type Output = FheUint<FheUint1024Id>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: FheUint1024) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<FheUint<FheUint2048Id>> for U2048

Source§

type Output = FheUint<FheUint2048Id>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: FheUint2048) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<FheUint<FheUint2048Id>> for &U2048

Source§

type Output = FheUint<FheUint2048Id>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: FheUint2048) -> Self::Output

Performs the - operation. Read more
Source§

impl<Id, I> SubAssign<I> for FheUint<Id>
where Id: FheUintId, I: Borrow<Self>,

Source§

fn sub_assign(&mut self, rhs: I)

Performs the -= operation on FheUint

The operation is modular, i.e on overflow it wraps around.

§Example
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);
let b = FheUint16::encrypt(37849u16, &client_key);

a -= &b;
let result: u16 = a.decrypt(&client_key);
assert_eq!(result, 3u16.wrapping_sub(37849u16));
Source§

impl SubSizeOnGpu<&FheUint<FheUint2Id>> for u8

Source§

impl SubSizeOnGpu<&FheUint<FheUint4Id>> for u8

Source§

impl SubSizeOnGpu<&FheUint<FheUint6Id>> for u8

Source§

impl SubSizeOnGpu<&FheUint<FheUint8Id>> for u8

Source§

impl SubSizeOnGpu<&FheUint<FheUint10Id>> for u16

Source§

impl SubSizeOnGpu<&FheUint<FheUint12Id>> for u16

Source§

impl SubSizeOnGpu<&FheUint<FheUint14Id>> for u16

Source§

impl SubSizeOnGpu<&FheUint<FheUint16Id>> for u16

Source§

impl SubSizeOnGpu<&FheUint<FheUint24Id>> for u32

Source§

impl SubSizeOnGpu<&FheUint<FheUint32Id>> for u32

Source§

impl SubSizeOnGpu<&FheUint<FheUint40Id>> for u64

Source§

impl SubSizeOnGpu<&FheUint<FheUint48Id>> for u64

Source§

impl SubSizeOnGpu<&FheUint<FheUint56Id>> for u64

Source§

impl SubSizeOnGpu<&FheUint<FheUint64Id>> for u64

Source§

impl SubSizeOnGpu<&FheUint<FheUint72Id>> for u128

Source§

impl SubSizeOnGpu<&FheUint<FheUint80Id>> for u128

Source§

impl SubSizeOnGpu<&FheUint<FheUint88Id>> for u128

Source§

impl SubSizeOnGpu<&FheUint<FheUint96Id>> for u128

Source§

impl SubSizeOnGpu<&FheUint<FheUint104Id>> for u128

Source§

impl SubSizeOnGpu<&FheUint<FheUint112Id>> for u128

Source§

impl SubSizeOnGpu<&FheUint<FheUint120Id>> for u128

Source§

impl SubSizeOnGpu<&FheUint<FheUint128Id>> for u128

Source§

impl SubSizeOnGpu<&FheUint<FheUint136Id>> for U256

Source§

impl SubSizeOnGpu<&FheUint<FheUint144Id>> for U256

Source§

impl SubSizeOnGpu<&FheUint<FheUint152Id>> for U256

Source§

impl SubSizeOnGpu<&FheUint<FheUint160Id>> for U256

Source§

impl SubSizeOnGpu<&FheUint<FheUint168Id>> for U256

Source§

impl SubSizeOnGpu<&FheUint<FheUint176Id>> for U256

Source§

impl SubSizeOnGpu<&FheUint<FheUint184Id>> for U256

Source§

impl SubSizeOnGpu<&FheUint<FheUint192Id>> for U256

Source§

impl SubSizeOnGpu<&FheUint<FheUint200Id>> for U256

Source§

impl SubSizeOnGpu<&FheUint<FheUint208Id>> for U256

Source§

impl SubSizeOnGpu<&FheUint<FheUint216Id>> for U256

Source§

impl SubSizeOnGpu<&FheUint<FheUint224Id>> for U256

Source§

impl SubSizeOnGpu<&FheUint<FheUint232Id>> for U256

Source§

impl SubSizeOnGpu<&FheUint<FheUint240Id>> for U256

Source§

impl SubSizeOnGpu<&FheUint<FheUint248Id>> for U256

Source§

impl SubSizeOnGpu<&FheUint<FheUint256Id>> for U256

Source§

impl SubSizeOnGpu<&FheUint<FheUint512Id>> for U512

Source§

impl SubSizeOnGpu<&FheUint<FheUint1024Id>> for U1024

Source§

impl SubSizeOnGpu<&FheUint<FheUint2048Id>> for U2048

Source§

impl SubSizeOnGpu<FheUint<FheUint2Id>> for u8

Source§

impl SubSizeOnGpu<FheUint<FheUint4Id>> for u8

Source§

impl SubSizeOnGpu<FheUint<FheUint6Id>> for u8

Source§

impl SubSizeOnGpu<FheUint<FheUint8Id>> for u8

Source§

impl SubSizeOnGpu<FheUint<FheUint10Id>> for u16

Source§

impl SubSizeOnGpu<FheUint<FheUint12Id>> for u16

Source§

impl SubSizeOnGpu<FheUint<FheUint14Id>> for u16

Source§

impl SubSizeOnGpu<FheUint<FheUint16Id>> for u16

Source§

impl SubSizeOnGpu<FheUint<FheUint24Id>> for u32

Source§

impl SubSizeOnGpu<FheUint<FheUint32Id>> for u32

Source§

impl SubSizeOnGpu<FheUint<FheUint40Id>> for u64

Source§

impl SubSizeOnGpu<FheUint<FheUint48Id>> for u64

Source§

impl SubSizeOnGpu<FheUint<FheUint56Id>> for u64

Source§

impl SubSizeOnGpu<FheUint<FheUint64Id>> for u64

Source§

impl SubSizeOnGpu<FheUint<FheUint72Id>> for u128

Source§

impl SubSizeOnGpu<FheUint<FheUint80Id>> for u128

Source§

impl SubSizeOnGpu<FheUint<FheUint88Id>> for u128

Source§

impl SubSizeOnGpu<FheUint<FheUint96Id>> for u128

Source§

impl SubSizeOnGpu<FheUint<FheUint104Id>> for u128

Source§

impl SubSizeOnGpu<FheUint<FheUint112Id>> for u128

Source§

impl SubSizeOnGpu<FheUint<FheUint120Id>> for u128

Source§

impl SubSizeOnGpu<FheUint<FheUint128Id>> for u128

Source§

impl SubSizeOnGpu<FheUint<FheUint136Id>> for U256

Source§

impl SubSizeOnGpu<FheUint<FheUint144Id>> for U256

Source§

impl SubSizeOnGpu<FheUint<FheUint152Id>> for U256

Source§

impl SubSizeOnGpu<FheUint<FheUint160Id>> for U256

Source§

impl SubSizeOnGpu<FheUint<FheUint168Id>> for U256

Source§

impl SubSizeOnGpu<FheUint<FheUint176Id>> for U256

Source§

impl SubSizeOnGpu<FheUint<FheUint184Id>> for U256

Source§

impl SubSizeOnGpu<FheUint<FheUint192Id>> for U256

Source§

impl SubSizeOnGpu<FheUint<FheUint200Id>> for U256

Source§

impl SubSizeOnGpu<FheUint<FheUint208Id>> for U256

Source§

impl SubSizeOnGpu<FheUint<FheUint216Id>> for U256

Source§

impl SubSizeOnGpu<FheUint<FheUint224Id>> for U256

Source§

impl SubSizeOnGpu<FheUint<FheUint232Id>> for U256

Source§

impl SubSizeOnGpu<FheUint<FheUint240Id>> for U256

Source§

impl SubSizeOnGpu<FheUint<FheUint248Id>> for U256

Source§

impl SubSizeOnGpu<FheUint<FheUint256Id>> for U256

Source§

impl SubSizeOnGpu<FheUint<FheUint512Id>> for U512

Source§

impl SubSizeOnGpu<FheUint<FheUint1024Id>> for U1024

Source§

impl SubSizeOnGpu<FheUint<FheUint2048Id>> for U2048

Source§

impl<Id, I> SubSizeOnGpu<I> for FheUint<Id>
where Id: FheUintId, I: Borrow<Self>,

Available on crate feature gpu only.
Source§

fn get_sub_size_on_gpu(&self, rhs: I) -> u64

Source§

impl<Id> Sum for FheUint<Id>
where Id: FheUintId,

Source§

fn sum<I: Iterator<Item = Self>>(iter: I) -> Self

Sums multiple ciphertexts together.

This is much more efficient than manually calling the + operator, thus using sum should always be preferred.

§Example
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 clears = [1, 2, 3, 4, 5];
let encrypted = clears
    .iter()
    .copied()
    .map(|x| FheUint16::encrypt(x, &client_key))
    .collect::<Vec<_>>();

// Iter and sum consuming (moving out) from the original Vec
let result = encrypted.into_iter().sum::<FheUint16>();

let decrypted: u16 = result.decrypt(&client_key);
assert_eq!(decrypted, clears.into_iter().sum::<u16>());
Source§

impl<'a, Id> Sum<&'a FheUint<Id>> for FheUint<Id>
where Id: FheUintId,

Source§

fn sum<I: Iterator<Item = &'a Self>>(iter: I) -> Self

Sums multiple ciphertexts together.

This is much more efficient than manually calling the + operator, thus using sum should always be preferred.

§Example
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 clears = [1, 2, 3, 4, 5];
let encrypted = clears
    .iter()
    .copied()
    .map(|x| FheUint16::encrypt(x, &client_key))
    .collect::<Vec<_>>();

// Iter and sum on references
let result = encrypted.iter().sum::<FheUint16>();

let decrypted: u16 = result.decrypt(&client_key);
assert_eq!(decrypted, clears.into_iter().sum::<u16>());
Source§

impl<Id> Tagged for FheUint<Id>
where Id: FheUintId,

Source§

fn tag(&self) -> &Tag

Source§

fn tag_mut(&mut self) -> &mut Tag

Source§

impl<Id> TryFrom<BaseRadixCiphertext<Ciphertext>> for FheUint<Id>
where Id: FheUintId,

Source§

type Error = GenericIntegerBlockError

The type returned in the event of a conversion error.
Source§

fn try_from(other: RadixCiphertext) -> Result<Self, GenericIntegerBlockError>

Performs the conversion.
Source§

impl<Id, T> TryFrom<Vec<T>> for FheUint<Id>

Source§

type Error = GenericIntegerBlockError

The type returned in the event of a conversion error.
Source§

fn try_from(blocks: Vec<T>) -> Result<Self, GenericIntegerBlockError>

Performs the conversion.
Source§

impl<Id: FheUintId> Unversionize for FheUint<Id>

Source§

fn unversionize( versioned: Self::VersionedOwned, ) -> Result<Self, UnversionizeError>

Creates an object from a versioned enum, and eventually upgrades from previous variants.
Source§

impl<Id: FheUintId> UnversionizeVec for FheUint<Id>

Source§

impl<Id: FheUintId> Upgrade<FheUint<Id>> for FheUintV1<Id>

Source§

impl<Id> Version for FheUint<Id>

Source§

type Ref<'vers> = FheUintVersion<'vers, Id> where Id: 'vers

Source§

type Owned = FheUintVersionOwned<Id>

Source§

impl<Id: FheUintId> Versionize for FheUint<Id>

Source§

type Versioned<'vers> = <FheUintVersions<Id> as VersionsDispatch<FheUint<Id>>>::Ref<'vers> where Id: 'vers

The equivalent versioned type. It should have a variant for each version. It may own the underlying data or only hold a read-only reference to it.
Source§

fn versionize(&self) -> Self::Versioned<'_>

Wraps the object into a versioned enum with a variant for each version. This will use references on the underlying types if possible.
Source§

impl<Id: FheUintId> VersionizeOwned for FheUint<Id>

Source§

type VersionedOwned = <FheUintVersions<Id> as VersionsDispatch<FheUint<Id>>>::Owned

Source§

fn versionize_owned(self) -> Self::VersionedOwned

Wraps the object into a versioned enum with a variant for each version. This will clone the underlying types.
Source§

impl<Id: FheUintId> VersionizeSlice for FheUint<Id>

Source§

type VersionedSlice<'vers> = Vec<<FheUint<Id> as Versionize>::Versioned<'vers>> where Id: 'vers

Source§

fn versionize_slice(slice: &[Self]) -> Self::VersionedSlice<'_>

Source§

impl<Id: FheUintId> VersionizeVec for FheUint<Id>

Source§

impl<Id: FheUintId> VersionsDispatch<FheUint<Id>> for FheUintVersions<Id>

Source§

type Ref<'vers> = FheUintVersionsDispatch<'vers, Id> where Id: 'vers

Source§

type Owned = FheUintVersionsDispatchOwned<Id>

Auto Trait Implementations§

§

impl<Id> !RefUnwindSafe for FheUint<Id>

§

impl<Id> !UnwindSafe for FheUint<Id>

§

impl<Id> Freeze for FheUint<Id>
where Id: Freeze,

§

impl<Id> Send for FheUint<Id>
where Id: Send,

§

impl<Id> Sync for FheUint<Id>
where Id: Sync,

§

impl<Id> Unpin for FheUint<Id>
where Id: Unpin,

§

impl<Id> UnsafeUnpin for FheUint<Id>
where Id: UnsafeUnpin,

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<Input, Output> CastInto<Output> for Input
where Output: CastFrom<Input>,

Source§

fn cast_into(self) -> Output

Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

Source§

impl<Clear, Key, T> FheEncrypt<Clear, Key> for T
where T: FheTryEncrypt<Clear, Key>,

Source§

fn encrypt(value: Clear, key: &Key) -> T

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<T, Rhs> NumAssignOps<Rhs> for T
where T: AddAssign<Rhs> + SubAssign<Rhs> + MulAssign<Rhs> + DivAssign<Rhs> + RemAssign<Rhs>,

Source§

impl<T, Rhs, Output> NumOps<Rhs, Output> for T
where T: Sub<Rhs, Output = Output> + Mul<Rhs, Output = Output> + Div<Rhs, Output = Output> + Add<Rhs, Output = Output> + Rem<Rhs, Output = Output>,

Source§

impl<Id, Clear> OverflowingAdd<&FheUint<Id>> for Clear

Source§

fn overflowing_add( self, other: &FheUint<Id>, ) -> (<Clear as OverflowingAdd<&FheUint<Id>>>::Output, FheBool)

Adds a Clear with a FheUint and returns a boolean indicating overflow.

  • The operation is modular, i.e on overflow the result wraps around.
  • On overflow the FheBool is true, otherwise false
§Example
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);

// Due to conflicts with u16::overflowing_add method
// we have to use this syntax to help the compiler
let (result, overflowed) = OverflowingAdd::overflowing_add(1u16, &a);
let result: u16 = result.decrypt(&client_key);
assert_eq!(result, u16::MAX.wrapping_add(1u16));
assert_eq!(
    overflowed.decrypt(&client_key),
    u16::MAX.overflowing_add(1u16).1
);
assert!(overflowed.decrypt(&client_key));
Source§

type Output = FheUint<Id>

Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T, Base> RefNum<Base> for T
where T: NumOps<Base, Base> + for<'r> NumOps<&'r Base, Base>,

Source§

impl<A> SafeAs for A

Source§

fn sas<T>(self) -> T
where A: TryInto<T>,

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more