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>
impl<Id: FheUintId> FheUint<Id>
Sourcepub fn generate_oblivious_pseudo_random(seed: Seed) -> Self
Available on crate feature integer only.
pub fn generate_oblivious_pseudo_random(seed: Seed) -> Self
integer only.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);
let ct_res = FheUint8::generate_oblivious_pseudo_random(Seed(0));
let dec_result: u16 = ct_res.decrypt(&client_key);Sourcepub fn get_generate_oblivious_pseudo_random_size_on_gpu() -> u64
Available on crate features integer and gpu only.
pub fn get_generate_oblivious_pseudo_random_size_on_gpu() -> u64
integer and gpu only.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));Sourcepub fn generate_oblivious_pseudo_random_bounded(
seed: Seed,
random_bits_count: u64,
) -> Self
Available on crate feature integer only.
pub fn generate_oblivious_pseudo_random_bounded( seed: Seed, random_bits_count: u64, ) -> Self
integer only.Generates an encrypted num_block blocks 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.
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;
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));Sourcepub fn get_generate_oblivious_pseudo_random_bounded_size_on_gpu() -> u64
Available on crate features integer and gpu only.
pub fn get_generate_oblivious_pseudo_random_bounded_size_on_gpu() -> u64
integer and gpu only.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§impl<Id> FheUint<Id>where
Id: FheUintId,
impl<Id> FheUint<Id>where
Id: FheUintId,
pub fn into_raw_parts( self, ) -> (RadixCiphertext, Id, Tag, ReRandomizationMetadata)
integer only.pub fn from_raw_parts( ciphertext: RadixCiphertext, id: Id, tag: Tag, re_randomization_metadata: ReRandomizationMetadata, ) -> Self
integer only.pub fn num_bits() -> usize
integer only.Sourcepub fn current_device(&self) -> Device
Available on crate feature integer only.
pub fn current_device(&self) -> Device
integer only.Returns the device where the ciphertext is currently on
Sourcepub fn move_to_device(&mut self, device: Device)
Available on crate feature integer only.
pub fn move_to_device(&mut self, device: Device)
integer only.Moves (in-place) the ciphertext to the desired device.
Does nothing if the ciphertext is already in the desired device
Sourcepub fn move_to_current_device(&mut self)
Available on crate feature integer only.
pub fn move_to_current_device(&mut self)
integer only.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
Sourcepub fn gpu_indexes(&self) -> &[GpuIndex]
Available on crate features integer and gpu only.
pub fn gpu_indexes(&self) -> &[GpuIndex]
integer and gpu only.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
Sourcepub fn is_even(&self) -> FheBool
Available on crate feature integer only.
pub fn is_even(&self) -> FheBool
integer only.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);Sourcepub fn is_odd(&self) -> FheBool
Available on crate feature integer only.
pub fn is_odd(&self) -> FheBool
integer only.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);Sourcepub fn try_decrypt_trivial<Clear>(
&self,
) -> Result<Clear, NotTrivialCiphertextError>
Available on crate feature integer only.
pub fn try_decrypt_trivial<Clear>( &self, ) -> Result<Clear, NotTrivialCiphertextError>
integer only.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());Sourcepub fn is_trivial(&self) -> bool
Available on crate feature integer only.
pub fn is_trivial(&self) -> bool
integer only.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());Sourcepub fn sum<'a, C>(collection: C) -> Selfwhere
C: AsRef<[&'a Self]>,
Available on crate feature integer only.
pub fn sum<'a, C>(collection: C) -> Selfwhere
C: AsRef<[&'a Self]>,
integer only.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);Sourcepub fn leading_zeros(&self) -> FheUint32
Available on crate feature integer only.
pub fn leading_zeros(&self) -> FheUint32
integer only.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);Sourcepub fn leading_ones(&self) -> FheUint32
Available on crate feature integer only.
pub fn leading_ones(&self) -> FheUint32
integer only.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);Sourcepub fn trailing_zeros(&self) -> FheUint32
Available on crate feature integer only.
pub fn trailing_zeros(&self) -> FheUint32
integer only.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);Sourcepub fn trailing_ones(&self) -> FheUint32
Available on crate feature integer only.
pub fn trailing_ones(&self) -> FheUint32
integer only.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);Sourcepub fn count_ones(&self) -> FheUint32
Available on crate feature integer only.
pub fn count_ones(&self) -> FheUint32
integer only.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());Sourcepub fn count_zeros(&self) -> FheUint32
Available on crate feature integer only.
pub fn count_zeros(&self) -> FheUint32
integer only.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());Sourcepub fn ilog2(&self) -> FheUint32
Available on crate feature integer only.
pub fn ilog2(&self) -> FheUint32
integer only.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);Sourcepub fn checked_ilog2(&self) -> (FheUint32, FheBool)
Available on crate feature integer only.
pub fn checked_ilog2(&self) -> (FheUint32, FheBool)
integer only.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 meaninglessSourcepub fn match_value<Clear, OutId>(
&self,
matches: &MatchValues<Clear>,
) -> Result<(FheUint<OutId>, FheBool)>
Available on crate feature integer only.
pub fn match_value<Clear, OutId>( &self, matches: &MatchValues<Clear>, ) -> Result<(FheUint<OutId>, FheBool)>
integer only.match an input value to an output value
- Input values are not required to span all possible values that
selfcould 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)Sourcepub fn match_value_or<Clear, OutId>(
&self,
matches: &MatchValues<Clear>,
or_value: Clear,
) -> Result<FheUint<OutId>>
Available on crate feature integer only.
pub fn match_value_or<Clear, OutId>( &self, matches: &MatchValues<Clear>, or_value: Clear, ) -> Result<FheUint<OutId>>
integer only.match an input value to an output value
- Input values are not required to span all possible values that
selfcould 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)Sourcepub fn reverse_bits(&self) -> Self
Available on crate feature integer only.
pub fn reverse_bits(&self) -> Self
integer only.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());Sourcepub fn if_then_else<Clear>(
condition: &FheBool,
true_value: Clear,
false_value: Clear,
) -> Self
Available on crate feature integer only.
pub fn if_then_else<Clear>( condition: &FheBool, true_value: Clear, false_value: Clear, ) -> Self
integer only.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);Sourcepub fn select<Clear>(
condition: &FheBool,
true_value: Clear,
false_value: Clear,
) -> Self
Available on crate feature integer only.
pub fn select<Clear>( condition: &FheBool, true_value: Clear, false_value: Clear, ) -> Self
integer only.Same as Self::if_then_else but with a different name
Sourcepub fn cmux<Clear>(
condition: &FheBool,
true_value: Clear,
false_value: Clear,
) -> Self
Available on crate feature integer only.
pub fn cmux<Clear>( condition: &FheBool, true_value: Clear, false_value: Clear, ) -> Self
integer only.Same as Self::if_then_else but with a different name
pub fn re_randomization_metadata(&self) -> &ReRandomizationMetadata
integer only.pub fn re_randomization_metadata_mut(&mut self) -> &mut ReRandomizationMetadata
integer only.Trait Implementations§
Source§impl<Id, B> Add<B> for &FheUint<Id>
Available on crate feature integer only.
impl<Id, B> Add<B> for &FheUint<Id>
integer only.Source§fn add(self, rhs: B) -> Self::Output
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§impl<Id, I> AddAssign<I> for FheUint<Id>
Available on crate feature integer only.
impl<Id, I> AddAssign<I> for FheUint<Id>
integer only.Source§fn add_assign(&mut self, rhs: I)
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<FheUint1024Id>> for U1024
Available on crate feature integer only.
impl AddSizeOnGpu<&FheUint<FheUint1024Id>> for U1024
integer only.Source§fn get_add_size_on_gpu(&self, rhs: &FheUint1024) -> u64
fn get_add_size_on_gpu(&self, rhs: &FheUint1024) -> u64
gpu only.Source§impl AddSizeOnGpu<&FheUint<FheUint104Id>> for u128
Available on crate feature integer only.
impl AddSizeOnGpu<&FheUint<FheUint104Id>> for u128
integer only.Source§fn get_add_size_on_gpu(&self, rhs: &FheUint104) -> u64
fn get_add_size_on_gpu(&self, rhs: &FheUint104) -> u64
gpu only.Source§impl AddSizeOnGpu<&FheUint<FheUint10Id>> for u16
Available on crate feature integer only.
impl AddSizeOnGpu<&FheUint<FheUint10Id>> for u16
integer only.Source§fn get_add_size_on_gpu(&self, rhs: &FheUint10) -> u64
fn get_add_size_on_gpu(&self, rhs: &FheUint10) -> u64
gpu only.Source§impl AddSizeOnGpu<&FheUint<FheUint112Id>> for u128
Available on crate feature integer only.
impl AddSizeOnGpu<&FheUint<FheUint112Id>> for u128
integer only.Source§fn get_add_size_on_gpu(&self, rhs: &FheUint112) -> u64
fn get_add_size_on_gpu(&self, rhs: &FheUint112) -> u64
gpu only.Source§impl AddSizeOnGpu<&FheUint<FheUint120Id>> for u128
Available on crate feature integer only.
impl AddSizeOnGpu<&FheUint<FheUint120Id>> for u128
integer only.Source§fn get_add_size_on_gpu(&self, rhs: &FheUint120) -> u64
fn get_add_size_on_gpu(&self, rhs: &FheUint120) -> u64
gpu only.Source§impl AddSizeOnGpu<&FheUint<FheUint128Id>> for u128
Available on crate feature integer only.
impl AddSizeOnGpu<&FheUint<FheUint128Id>> for u128
integer only.Source§fn get_add_size_on_gpu(&self, rhs: &FheUint128) -> u64
fn get_add_size_on_gpu(&self, rhs: &FheUint128) -> u64
gpu only.Source§impl AddSizeOnGpu<&FheUint<FheUint12Id>> for u16
Available on crate feature integer only.
impl AddSizeOnGpu<&FheUint<FheUint12Id>> for u16
integer only.Source§fn get_add_size_on_gpu(&self, rhs: &FheUint12) -> u64
fn get_add_size_on_gpu(&self, rhs: &FheUint12) -> u64
gpu only.Source§impl AddSizeOnGpu<&FheUint<FheUint136Id>> for U256
Available on crate feature integer only.
impl AddSizeOnGpu<&FheUint<FheUint136Id>> for U256
integer only.Source§fn get_add_size_on_gpu(&self, rhs: &FheUint136) -> u64
fn get_add_size_on_gpu(&self, rhs: &FheUint136) -> u64
gpu only.Source§impl AddSizeOnGpu<&FheUint<FheUint144Id>> for U256
Available on crate feature integer only.
impl AddSizeOnGpu<&FheUint<FheUint144Id>> for U256
integer only.Source§fn get_add_size_on_gpu(&self, rhs: &FheUint144) -> u64
fn get_add_size_on_gpu(&self, rhs: &FheUint144) -> u64
gpu only.Source§impl AddSizeOnGpu<&FheUint<FheUint14Id>> for u16
Available on crate feature integer only.
impl AddSizeOnGpu<&FheUint<FheUint14Id>> for u16
integer only.Source§fn get_add_size_on_gpu(&self, rhs: &FheUint14) -> u64
fn get_add_size_on_gpu(&self, rhs: &FheUint14) -> u64
gpu only.Source§impl AddSizeOnGpu<&FheUint<FheUint152Id>> for U256
Available on crate feature integer only.
impl AddSizeOnGpu<&FheUint<FheUint152Id>> for U256
integer only.Source§fn get_add_size_on_gpu(&self, rhs: &FheUint152) -> u64
fn get_add_size_on_gpu(&self, rhs: &FheUint152) -> u64
gpu only.Source§impl AddSizeOnGpu<&FheUint<FheUint160Id>> for U256
Available on crate feature integer only.
impl AddSizeOnGpu<&FheUint<FheUint160Id>> for U256
integer only.Source§fn get_add_size_on_gpu(&self, rhs: &FheUint160) -> u64
fn get_add_size_on_gpu(&self, rhs: &FheUint160) -> u64
gpu only.Source§impl AddSizeOnGpu<&FheUint<FheUint168Id>> for U256
Available on crate feature integer only.
impl AddSizeOnGpu<&FheUint<FheUint168Id>> for U256
integer only.Source§fn get_add_size_on_gpu(&self, rhs: &FheUint168) -> u64
fn get_add_size_on_gpu(&self, rhs: &FheUint168) -> u64
gpu only.Source§impl AddSizeOnGpu<&FheUint<FheUint16Id>> for u16
Available on crate feature integer only.
impl AddSizeOnGpu<&FheUint<FheUint16Id>> for u16
integer only.Source§fn get_add_size_on_gpu(&self, rhs: &FheUint16) -> u64
fn get_add_size_on_gpu(&self, rhs: &FheUint16) -> u64
gpu only.Source§impl AddSizeOnGpu<&FheUint<FheUint176Id>> for U256
Available on crate feature integer only.
impl AddSizeOnGpu<&FheUint<FheUint176Id>> for U256
integer only.Source§fn get_add_size_on_gpu(&self, rhs: &FheUint176) -> u64
fn get_add_size_on_gpu(&self, rhs: &FheUint176) -> u64
gpu only.Source§impl AddSizeOnGpu<&FheUint<FheUint184Id>> for U256
Available on crate feature integer only.
impl AddSizeOnGpu<&FheUint<FheUint184Id>> for U256
integer only.Source§fn get_add_size_on_gpu(&self, rhs: &FheUint184) -> u64
fn get_add_size_on_gpu(&self, rhs: &FheUint184) -> u64
gpu only.Source§impl AddSizeOnGpu<&FheUint<FheUint192Id>> for U256
Available on crate feature integer only.
impl AddSizeOnGpu<&FheUint<FheUint192Id>> for U256
integer only.Source§fn get_add_size_on_gpu(&self, rhs: &FheUint192) -> u64
fn get_add_size_on_gpu(&self, rhs: &FheUint192) -> u64
gpu only.Source§impl AddSizeOnGpu<&FheUint<FheUint200Id>> for U256
Available on crate feature integer only.
impl AddSizeOnGpu<&FheUint<FheUint200Id>> for U256
integer only.Source§fn get_add_size_on_gpu(&self, rhs: &FheUint200) -> u64
fn get_add_size_on_gpu(&self, rhs: &FheUint200) -> u64
gpu only.Source§impl AddSizeOnGpu<&FheUint<FheUint2048Id>> for U2048
Available on crate feature integer only.
impl AddSizeOnGpu<&FheUint<FheUint2048Id>> for U2048
integer only.Source§fn get_add_size_on_gpu(&self, rhs: &FheUint2048) -> u64
fn get_add_size_on_gpu(&self, rhs: &FheUint2048) -> u64
gpu only.Source§impl AddSizeOnGpu<&FheUint<FheUint208Id>> for U256
Available on crate feature integer only.
impl AddSizeOnGpu<&FheUint<FheUint208Id>> for U256
integer only.Source§fn get_add_size_on_gpu(&self, rhs: &FheUint208) -> u64
fn get_add_size_on_gpu(&self, rhs: &FheUint208) -> u64
gpu only.Source§impl AddSizeOnGpu<&FheUint<FheUint216Id>> for U256
Available on crate feature integer only.
impl AddSizeOnGpu<&FheUint<FheUint216Id>> for U256
integer only.Source§fn get_add_size_on_gpu(&self, rhs: &FheUint216) -> u64
fn get_add_size_on_gpu(&self, rhs: &FheUint216) -> u64
gpu only.Source§impl AddSizeOnGpu<&FheUint<FheUint224Id>> for U256
Available on crate feature integer only.
impl AddSizeOnGpu<&FheUint<FheUint224Id>> for U256
integer only.Source§fn get_add_size_on_gpu(&self, rhs: &FheUint224) -> u64
fn get_add_size_on_gpu(&self, rhs: &FheUint224) -> u64
gpu only.Source§impl AddSizeOnGpu<&FheUint<FheUint232Id>> for U256
Available on crate feature integer only.
impl AddSizeOnGpu<&FheUint<FheUint232Id>> for U256
integer only.Source§fn get_add_size_on_gpu(&self, rhs: &FheUint232) -> u64
fn get_add_size_on_gpu(&self, rhs: &FheUint232) -> u64
gpu only.Source§impl AddSizeOnGpu<&FheUint<FheUint240Id>> for U256
Available on crate feature integer only.
impl AddSizeOnGpu<&FheUint<FheUint240Id>> for U256
integer only.Source§fn get_add_size_on_gpu(&self, rhs: &FheUint240) -> u64
fn get_add_size_on_gpu(&self, rhs: &FheUint240) -> u64
gpu only.Source§impl AddSizeOnGpu<&FheUint<FheUint248Id>> for U256
Available on crate feature integer only.
impl AddSizeOnGpu<&FheUint<FheUint248Id>> for U256
integer only.Source§fn get_add_size_on_gpu(&self, rhs: &FheUint248) -> u64
fn get_add_size_on_gpu(&self, rhs: &FheUint248) -> u64
gpu only.Source§impl AddSizeOnGpu<&FheUint<FheUint24Id>> for u32
Available on crate feature integer only.
impl AddSizeOnGpu<&FheUint<FheUint24Id>> for u32
integer only.Source§fn get_add_size_on_gpu(&self, rhs: &FheUint24) -> u64
fn get_add_size_on_gpu(&self, rhs: &FheUint24) -> u64
gpu only.Source§impl AddSizeOnGpu<&FheUint<FheUint256Id>> for U256
Available on crate feature integer only.
impl AddSizeOnGpu<&FheUint<FheUint256Id>> for U256
integer only.Source§fn get_add_size_on_gpu(&self, rhs: &FheUint256) -> u64
fn get_add_size_on_gpu(&self, rhs: &FheUint256) -> u64
gpu only.Source§impl AddSizeOnGpu<&FheUint<FheUint2Id>> for u8
Available on crate feature integer only.
impl AddSizeOnGpu<&FheUint<FheUint2Id>> for u8
integer only.Source§fn get_add_size_on_gpu(&self, rhs: &FheUint2) -> u64
fn get_add_size_on_gpu(&self, rhs: &FheUint2) -> u64
gpu only.Source§impl AddSizeOnGpu<&FheUint<FheUint32Id>> for u32
Available on crate feature integer only.
impl AddSizeOnGpu<&FheUint<FheUint32Id>> for u32
integer only.Source§fn get_add_size_on_gpu(&self, rhs: &FheUint32) -> u64
fn get_add_size_on_gpu(&self, rhs: &FheUint32) -> u64
gpu only.Source§impl AddSizeOnGpu<&FheUint<FheUint40Id>> for u64
Available on crate feature integer only.
impl AddSizeOnGpu<&FheUint<FheUint40Id>> for u64
integer only.Source§fn get_add_size_on_gpu(&self, rhs: &FheUint40) -> u64
fn get_add_size_on_gpu(&self, rhs: &FheUint40) -> u64
gpu only.Source§impl AddSizeOnGpu<&FheUint<FheUint48Id>> for u64
Available on crate feature integer only.
impl AddSizeOnGpu<&FheUint<FheUint48Id>> for u64
integer only.Source§fn get_add_size_on_gpu(&self, rhs: &FheUint48) -> u64
fn get_add_size_on_gpu(&self, rhs: &FheUint48) -> u64
gpu only.Source§impl AddSizeOnGpu<&FheUint<FheUint4Id>> for u8
Available on crate feature integer only.
impl AddSizeOnGpu<&FheUint<FheUint4Id>> for u8
integer only.Source§fn get_add_size_on_gpu(&self, rhs: &FheUint4) -> u64
fn get_add_size_on_gpu(&self, rhs: &FheUint4) -> u64
gpu only.Source§impl AddSizeOnGpu<&FheUint<FheUint512Id>> for U512
Available on crate feature integer only.
impl AddSizeOnGpu<&FheUint<FheUint512Id>> for U512
integer only.Source§fn get_add_size_on_gpu(&self, rhs: &FheUint512) -> u64
fn get_add_size_on_gpu(&self, rhs: &FheUint512) -> u64
gpu only.Source§impl AddSizeOnGpu<&FheUint<FheUint56Id>> for u64
Available on crate feature integer only.
impl AddSizeOnGpu<&FheUint<FheUint56Id>> for u64
integer only.Source§fn get_add_size_on_gpu(&self, rhs: &FheUint56) -> u64
fn get_add_size_on_gpu(&self, rhs: &FheUint56) -> u64
gpu only.Source§impl AddSizeOnGpu<&FheUint<FheUint64Id>> for u64
Available on crate feature integer only.
impl AddSizeOnGpu<&FheUint<FheUint64Id>> for u64
integer only.Source§fn get_add_size_on_gpu(&self, rhs: &FheUint64) -> u64
fn get_add_size_on_gpu(&self, rhs: &FheUint64) -> u64
gpu only.Source§impl AddSizeOnGpu<&FheUint<FheUint6Id>> for u8
Available on crate feature integer only.
impl AddSizeOnGpu<&FheUint<FheUint6Id>> for u8
integer only.Source§fn get_add_size_on_gpu(&self, rhs: &FheUint6) -> u64
fn get_add_size_on_gpu(&self, rhs: &FheUint6) -> u64
gpu only.Source§impl AddSizeOnGpu<&FheUint<FheUint72Id>> for u128
Available on crate feature integer only.
impl AddSizeOnGpu<&FheUint<FheUint72Id>> for u128
integer only.Source§fn get_add_size_on_gpu(&self, rhs: &FheUint72) -> u64
fn get_add_size_on_gpu(&self, rhs: &FheUint72) -> u64
gpu only.Source§impl AddSizeOnGpu<&FheUint<FheUint80Id>> for u128
Available on crate feature integer only.
impl AddSizeOnGpu<&FheUint<FheUint80Id>> for u128
integer only.Source§fn get_add_size_on_gpu(&self, rhs: &FheUint80) -> u64
fn get_add_size_on_gpu(&self, rhs: &FheUint80) -> u64
gpu only.Source§impl AddSizeOnGpu<&FheUint<FheUint88Id>> for u128
Available on crate feature integer only.
impl AddSizeOnGpu<&FheUint<FheUint88Id>> for u128
integer only.Source§fn get_add_size_on_gpu(&self, rhs: &FheUint88) -> u64
fn get_add_size_on_gpu(&self, rhs: &FheUint88) -> u64
gpu only.Source§impl AddSizeOnGpu<&FheUint<FheUint8Id>> for u8
Available on crate feature integer only.
impl AddSizeOnGpu<&FheUint<FheUint8Id>> for u8
integer only.Source§fn get_add_size_on_gpu(&self, rhs: &FheUint8) -> u64
fn get_add_size_on_gpu(&self, rhs: &FheUint8) -> u64
gpu only.Source§impl AddSizeOnGpu<&FheUint<FheUint96Id>> for u128
Available on crate feature integer only.
impl AddSizeOnGpu<&FheUint<FheUint96Id>> for u128
integer only.Source§fn get_add_size_on_gpu(&self, rhs: &FheUint96) -> u64
fn get_add_size_on_gpu(&self, rhs: &FheUint96) -> u64
gpu only.Source§impl AddSizeOnGpu<FheUint<FheUint1024Id>> for U1024
Available on crate feature integer only.
impl AddSizeOnGpu<FheUint<FheUint1024Id>> for U1024
integer only.Source§fn get_add_size_on_gpu(&self, rhs: FheUint1024) -> u64
fn get_add_size_on_gpu(&self, rhs: FheUint1024) -> u64
gpu only.Source§impl AddSizeOnGpu<FheUint<FheUint104Id>> for u128
Available on crate feature integer only.
impl AddSizeOnGpu<FheUint<FheUint104Id>> for u128
integer only.Source§fn get_add_size_on_gpu(&self, rhs: FheUint104) -> u64
fn get_add_size_on_gpu(&self, rhs: FheUint104) -> u64
gpu only.Source§impl AddSizeOnGpu<FheUint<FheUint10Id>> for u16
Available on crate feature integer only.
impl AddSizeOnGpu<FheUint<FheUint10Id>> for u16
integer only.Source§fn get_add_size_on_gpu(&self, rhs: FheUint10) -> u64
fn get_add_size_on_gpu(&self, rhs: FheUint10) -> u64
gpu only.Source§impl AddSizeOnGpu<FheUint<FheUint112Id>> for u128
Available on crate feature integer only.
impl AddSizeOnGpu<FheUint<FheUint112Id>> for u128
integer only.Source§fn get_add_size_on_gpu(&self, rhs: FheUint112) -> u64
fn get_add_size_on_gpu(&self, rhs: FheUint112) -> u64
gpu only.Source§impl AddSizeOnGpu<FheUint<FheUint120Id>> for u128
Available on crate feature integer only.
impl AddSizeOnGpu<FheUint<FheUint120Id>> for u128
integer only.Source§fn get_add_size_on_gpu(&self, rhs: FheUint120) -> u64
fn get_add_size_on_gpu(&self, rhs: FheUint120) -> u64
gpu only.Source§impl AddSizeOnGpu<FheUint<FheUint128Id>> for u128
Available on crate feature integer only.
impl AddSizeOnGpu<FheUint<FheUint128Id>> for u128
integer only.Source§fn get_add_size_on_gpu(&self, rhs: FheUint128) -> u64
fn get_add_size_on_gpu(&self, rhs: FheUint128) -> u64
gpu only.Source§impl AddSizeOnGpu<FheUint<FheUint12Id>> for u16
Available on crate feature integer only.
impl AddSizeOnGpu<FheUint<FheUint12Id>> for u16
integer only.Source§fn get_add_size_on_gpu(&self, rhs: FheUint12) -> u64
fn get_add_size_on_gpu(&self, rhs: FheUint12) -> u64
gpu only.Source§impl AddSizeOnGpu<FheUint<FheUint136Id>> for U256
Available on crate feature integer only.
impl AddSizeOnGpu<FheUint<FheUint136Id>> for U256
integer only.Source§fn get_add_size_on_gpu(&self, rhs: FheUint136) -> u64
fn get_add_size_on_gpu(&self, rhs: FheUint136) -> u64
gpu only.Source§impl AddSizeOnGpu<FheUint<FheUint144Id>> for U256
Available on crate feature integer only.
impl AddSizeOnGpu<FheUint<FheUint144Id>> for U256
integer only.Source§fn get_add_size_on_gpu(&self, rhs: FheUint144) -> u64
fn get_add_size_on_gpu(&self, rhs: FheUint144) -> u64
gpu only.Source§impl AddSizeOnGpu<FheUint<FheUint14Id>> for u16
Available on crate feature integer only.
impl AddSizeOnGpu<FheUint<FheUint14Id>> for u16
integer only.Source§fn get_add_size_on_gpu(&self, rhs: FheUint14) -> u64
fn get_add_size_on_gpu(&self, rhs: FheUint14) -> u64
gpu only.Source§impl AddSizeOnGpu<FheUint<FheUint152Id>> for U256
Available on crate feature integer only.
impl AddSizeOnGpu<FheUint<FheUint152Id>> for U256
integer only.Source§fn get_add_size_on_gpu(&self, rhs: FheUint152) -> u64
fn get_add_size_on_gpu(&self, rhs: FheUint152) -> u64
gpu only.Source§impl AddSizeOnGpu<FheUint<FheUint160Id>> for U256
Available on crate feature integer only.
impl AddSizeOnGpu<FheUint<FheUint160Id>> for U256
integer only.Source§fn get_add_size_on_gpu(&self, rhs: FheUint160) -> u64
fn get_add_size_on_gpu(&self, rhs: FheUint160) -> u64
gpu only.Source§impl AddSizeOnGpu<FheUint<FheUint168Id>> for U256
Available on crate feature integer only.
impl AddSizeOnGpu<FheUint<FheUint168Id>> for U256
integer only.Source§fn get_add_size_on_gpu(&self, rhs: FheUint168) -> u64
fn get_add_size_on_gpu(&self, rhs: FheUint168) -> u64
gpu only.Source§impl AddSizeOnGpu<FheUint<FheUint16Id>> for u16
Available on crate feature integer only.
impl AddSizeOnGpu<FheUint<FheUint16Id>> for u16
integer only.Source§fn get_add_size_on_gpu(&self, rhs: FheUint16) -> u64
fn get_add_size_on_gpu(&self, rhs: FheUint16) -> u64
gpu only.Source§impl AddSizeOnGpu<FheUint<FheUint176Id>> for U256
Available on crate feature integer only.
impl AddSizeOnGpu<FheUint<FheUint176Id>> for U256
integer only.Source§fn get_add_size_on_gpu(&self, rhs: FheUint176) -> u64
fn get_add_size_on_gpu(&self, rhs: FheUint176) -> u64
gpu only.Source§impl AddSizeOnGpu<FheUint<FheUint184Id>> for U256
Available on crate feature integer only.
impl AddSizeOnGpu<FheUint<FheUint184Id>> for U256
integer only.Source§fn get_add_size_on_gpu(&self, rhs: FheUint184) -> u64
fn get_add_size_on_gpu(&self, rhs: FheUint184) -> u64
gpu only.Source§impl AddSizeOnGpu<FheUint<FheUint192Id>> for U256
Available on crate feature integer only.
impl AddSizeOnGpu<FheUint<FheUint192Id>> for U256
integer only.Source§fn get_add_size_on_gpu(&self, rhs: FheUint192) -> u64
fn get_add_size_on_gpu(&self, rhs: FheUint192) -> u64
gpu only.Source§impl AddSizeOnGpu<FheUint<FheUint200Id>> for U256
Available on crate feature integer only.
impl AddSizeOnGpu<FheUint<FheUint200Id>> for U256
integer only.Source§fn get_add_size_on_gpu(&self, rhs: FheUint200) -> u64
fn get_add_size_on_gpu(&self, rhs: FheUint200) -> u64
gpu only.Source§impl AddSizeOnGpu<FheUint<FheUint2048Id>> for U2048
Available on crate feature integer only.
impl AddSizeOnGpu<FheUint<FheUint2048Id>> for U2048
integer only.Source§fn get_add_size_on_gpu(&self, rhs: FheUint2048) -> u64
fn get_add_size_on_gpu(&self, rhs: FheUint2048) -> u64
gpu only.Source§impl AddSizeOnGpu<FheUint<FheUint208Id>> for U256
Available on crate feature integer only.
impl AddSizeOnGpu<FheUint<FheUint208Id>> for U256
integer only.Source§fn get_add_size_on_gpu(&self, rhs: FheUint208) -> u64
fn get_add_size_on_gpu(&self, rhs: FheUint208) -> u64
gpu only.Source§impl AddSizeOnGpu<FheUint<FheUint216Id>> for U256
Available on crate feature integer only.
impl AddSizeOnGpu<FheUint<FheUint216Id>> for U256
integer only.Source§fn get_add_size_on_gpu(&self, rhs: FheUint216) -> u64
fn get_add_size_on_gpu(&self, rhs: FheUint216) -> u64
gpu only.Source§impl AddSizeOnGpu<FheUint<FheUint224Id>> for U256
Available on crate feature integer only.
impl AddSizeOnGpu<FheUint<FheUint224Id>> for U256
integer only.Source§fn get_add_size_on_gpu(&self, rhs: FheUint224) -> u64
fn get_add_size_on_gpu(&self, rhs: FheUint224) -> u64
gpu only.Source§impl AddSizeOnGpu<FheUint<FheUint232Id>> for U256
Available on crate feature integer only.
impl AddSizeOnGpu<FheUint<FheUint232Id>> for U256
integer only.Source§fn get_add_size_on_gpu(&self, rhs: FheUint232) -> u64
fn get_add_size_on_gpu(&self, rhs: FheUint232) -> u64
gpu only.Source§impl AddSizeOnGpu<FheUint<FheUint240Id>> for U256
Available on crate feature integer only.
impl AddSizeOnGpu<FheUint<FheUint240Id>> for U256
integer only.Source§fn get_add_size_on_gpu(&self, rhs: FheUint240) -> u64
fn get_add_size_on_gpu(&self, rhs: FheUint240) -> u64
gpu only.Source§impl AddSizeOnGpu<FheUint<FheUint248Id>> for U256
Available on crate feature integer only.
impl AddSizeOnGpu<FheUint<FheUint248Id>> for U256
integer only.Source§fn get_add_size_on_gpu(&self, rhs: FheUint248) -> u64
fn get_add_size_on_gpu(&self, rhs: FheUint248) -> u64
gpu only.Source§impl AddSizeOnGpu<FheUint<FheUint24Id>> for u32
Available on crate feature integer only.
impl AddSizeOnGpu<FheUint<FheUint24Id>> for u32
integer only.Source§fn get_add_size_on_gpu(&self, rhs: FheUint24) -> u64
fn get_add_size_on_gpu(&self, rhs: FheUint24) -> u64
gpu only.Source§impl AddSizeOnGpu<FheUint<FheUint256Id>> for U256
Available on crate feature integer only.
impl AddSizeOnGpu<FheUint<FheUint256Id>> for U256
integer only.Source§fn get_add_size_on_gpu(&self, rhs: FheUint256) -> u64
fn get_add_size_on_gpu(&self, rhs: FheUint256) -> u64
gpu only.Source§impl AddSizeOnGpu<FheUint<FheUint2Id>> for u8
Available on crate feature integer only.
impl AddSizeOnGpu<FheUint<FheUint2Id>> for u8
integer only.Source§fn get_add_size_on_gpu(&self, rhs: FheUint2) -> u64
fn get_add_size_on_gpu(&self, rhs: FheUint2) -> u64
gpu only.Source§impl AddSizeOnGpu<FheUint<FheUint32Id>> for u32
Available on crate feature integer only.
impl AddSizeOnGpu<FheUint<FheUint32Id>> for u32
integer only.Source§fn get_add_size_on_gpu(&self, rhs: FheUint32) -> u64
fn get_add_size_on_gpu(&self, rhs: FheUint32) -> u64
gpu only.Source§impl AddSizeOnGpu<FheUint<FheUint40Id>> for u64
Available on crate feature integer only.
impl AddSizeOnGpu<FheUint<FheUint40Id>> for u64
integer only.Source§fn get_add_size_on_gpu(&self, rhs: FheUint40) -> u64
fn get_add_size_on_gpu(&self, rhs: FheUint40) -> u64
gpu only.Source§impl AddSizeOnGpu<FheUint<FheUint48Id>> for u64
Available on crate feature integer only.
impl AddSizeOnGpu<FheUint<FheUint48Id>> for u64
integer only.Source§fn get_add_size_on_gpu(&self, rhs: FheUint48) -> u64
fn get_add_size_on_gpu(&self, rhs: FheUint48) -> u64
gpu only.Source§impl AddSizeOnGpu<FheUint<FheUint4Id>> for u8
Available on crate feature integer only.
impl AddSizeOnGpu<FheUint<FheUint4Id>> for u8
integer only.Source§fn get_add_size_on_gpu(&self, rhs: FheUint4) -> u64
fn get_add_size_on_gpu(&self, rhs: FheUint4) -> u64
gpu only.Source§impl AddSizeOnGpu<FheUint<FheUint512Id>> for U512
Available on crate feature integer only.
impl AddSizeOnGpu<FheUint<FheUint512Id>> for U512
integer only.Source§fn get_add_size_on_gpu(&self, rhs: FheUint512) -> u64
fn get_add_size_on_gpu(&self, rhs: FheUint512) -> u64
gpu only.Source§impl AddSizeOnGpu<FheUint<FheUint56Id>> for u64
Available on crate feature integer only.
impl AddSizeOnGpu<FheUint<FheUint56Id>> for u64
integer only.Source§fn get_add_size_on_gpu(&self, rhs: FheUint56) -> u64
fn get_add_size_on_gpu(&self, rhs: FheUint56) -> u64
gpu only.Source§impl AddSizeOnGpu<FheUint<FheUint64Id>> for u64
Available on crate feature integer only.
impl AddSizeOnGpu<FheUint<FheUint64Id>> for u64
integer only.Source§fn get_add_size_on_gpu(&self, rhs: FheUint64) -> u64
fn get_add_size_on_gpu(&self, rhs: FheUint64) -> u64
gpu only.Source§impl AddSizeOnGpu<FheUint<FheUint6Id>> for u8
Available on crate feature integer only.
impl AddSizeOnGpu<FheUint<FheUint6Id>> for u8
integer only.Source§fn get_add_size_on_gpu(&self, rhs: FheUint6) -> u64
fn get_add_size_on_gpu(&self, rhs: FheUint6) -> u64
gpu only.Source§impl AddSizeOnGpu<FheUint<FheUint72Id>> for u128
Available on crate feature integer only.
impl AddSizeOnGpu<FheUint<FheUint72Id>> for u128
integer only.Source§fn get_add_size_on_gpu(&self, rhs: FheUint72) -> u64
fn get_add_size_on_gpu(&self, rhs: FheUint72) -> u64
gpu only.Source§impl AddSizeOnGpu<FheUint<FheUint80Id>> for u128
Available on crate feature integer only.
impl AddSizeOnGpu<FheUint<FheUint80Id>> for u128
integer only.Source§fn get_add_size_on_gpu(&self, rhs: FheUint80) -> u64
fn get_add_size_on_gpu(&self, rhs: FheUint80) -> u64
gpu only.Source§impl AddSizeOnGpu<FheUint<FheUint88Id>> for u128
Available on crate feature integer only.
impl AddSizeOnGpu<FheUint<FheUint88Id>> for u128
integer only.Source§fn get_add_size_on_gpu(&self, rhs: FheUint88) -> u64
fn get_add_size_on_gpu(&self, rhs: FheUint88) -> u64
gpu only.Source§impl AddSizeOnGpu<FheUint<FheUint8Id>> for u8
Available on crate feature integer only.
impl AddSizeOnGpu<FheUint<FheUint8Id>> for u8
integer only.Source§fn get_add_size_on_gpu(&self, rhs: FheUint8) -> u64
fn get_add_size_on_gpu(&self, rhs: FheUint8) -> u64
gpu only.Source§impl AddSizeOnGpu<FheUint<FheUint96Id>> for u128
Available on crate feature integer only.
impl AddSizeOnGpu<FheUint<FheUint96Id>> for u128
integer only.Source§fn get_add_size_on_gpu(&self, rhs: FheUint96) -> u64
fn get_add_size_on_gpu(&self, rhs: FheUint96) -> u64
gpu only.Source§impl<Id, I> AddSizeOnGpu<I> for FheUint<Id>
Available on crate features integer and gpu only.
impl<Id, I> AddSizeOnGpu<I> for FheUint<Id>
integer and gpu only.fn get_add_size_on_gpu(&self, rhs: I) -> u64
Source§impl<Id, B> BitAnd<B> for &FheUint<Id>
Available on crate feature integer only.
impl<Id, B> BitAnd<B> for &FheUint<Id>
integer only.Source§fn bitand(self, rhs: B) -> Self::Output
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§impl<Id, I> BitAndAssign<I> for FheUint<Id>
Available on crate feature integer only.
impl<Id, I> BitAndAssign<I> for FheUint<Id>
integer only.Source§fn bitand_assign(&mut self, rhs: I)
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<FheUint1024Id>> for U1024
Available on crate feature integer only.
impl BitAndSizeOnGpu<&FheUint<FheUint1024Id>> for U1024
integer only.Source§fn get_bitand_size_on_gpu(&self, rhs: &FheUint1024) -> u64
fn get_bitand_size_on_gpu(&self, rhs: &FheUint1024) -> u64
gpu only.Source§impl BitAndSizeOnGpu<&FheUint<FheUint104Id>> for u128
Available on crate feature integer only.
impl BitAndSizeOnGpu<&FheUint<FheUint104Id>> for u128
integer only.Source§fn get_bitand_size_on_gpu(&self, rhs: &FheUint104) -> u64
fn get_bitand_size_on_gpu(&self, rhs: &FheUint104) -> u64
gpu only.Source§impl BitAndSizeOnGpu<&FheUint<FheUint10Id>> for u16
Available on crate feature integer only.
impl BitAndSizeOnGpu<&FheUint<FheUint10Id>> for u16
integer only.Source§fn get_bitand_size_on_gpu(&self, rhs: &FheUint10) -> u64
fn get_bitand_size_on_gpu(&self, rhs: &FheUint10) -> u64
gpu only.Source§impl BitAndSizeOnGpu<&FheUint<FheUint112Id>> for u128
Available on crate feature integer only.
impl BitAndSizeOnGpu<&FheUint<FheUint112Id>> for u128
integer only.Source§fn get_bitand_size_on_gpu(&self, rhs: &FheUint112) -> u64
fn get_bitand_size_on_gpu(&self, rhs: &FheUint112) -> u64
gpu only.Source§impl BitAndSizeOnGpu<&FheUint<FheUint120Id>> for u128
Available on crate feature integer only.
impl BitAndSizeOnGpu<&FheUint<FheUint120Id>> for u128
integer only.Source§fn get_bitand_size_on_gpu(&self, rhs: &FheUint120) -> u64
fn get_bitand_size_on_gpu(&self, rhs: &FheUint120) -> u64
gpu only.Source§impl BitAndSizeOnGpu<&FheUint<FheUint128Id>> for u128
Available on crate feature integer only.
impl BitAndSizeOnGpu<&FheUint<FheUint128Id>> for u128
integer only.Source§fn get_bitand_size_on_gpu(&self, rhs: &FheUint128) -> u64
fn get_bitand_size_on_gpu(&self, rhs: &FheUint128) -> u64
gpu only.Source§impl BitAndSizeOnGpu<&FheUint<FheUint12Id>> for u16
Available on crate feature integer only.
impl BitAndSizeOnGpu<&FheUint<FheUint12Id>> for u16
integer only.Source§fn get_bitand_size_on_gpu(&self, rhs: &FheUint12) -> u64
fn get_bitand_size_on_gpu(&self, rhs: &FheUint12) -> u64
gpu only.Source§impl BitAndSizeOnGpu<&FheUint<FheUint136Id>> for U256
Available on crate feature integer only.
impl BitAndSizeOnGpu<&FheUint<FheUint136Id>> for U256
integer only.Source§fn get_bitand_size_on_gpu(&self, rhs: &FheUint136) -> u64
fn get_bitand_size_on_gpu(&self, rhs: &FheUint136) -> u64
gpu only.Source§impl BitAndSizeOnGpu<&FheUint<FheUint144Id>> for U256
Available on crate feature integer only.
impl BitAndSizeOnGpu<&FheUint<FheUint144Id>> for U256
integer only.Source§fn get_bitand_size_on_gpu(&self, rhs: &FheUint144) -> u64
fn get_bitand_size_on_gpu(&self, rhs: &FheUint144) -> u64
gpu only.Source§impl BitAndSizeOnGpu<&FheUint<FheUint14Id>> for u16
Available on crate feature integer only.
impl BitAndSizeOnGpu<&FheUint<FheUint14Id>> for u16
integer only.Source§fn get_bitand_size_on_gpu(&self, rhs: &FheUint14) -> u64
fn get_bitand_size_on_gpu(&self, rhs: &FheUint14) -> u64
gpu only.Source§impl BitAndSizeOnGpu<&FheUint<FheUint152Id>> for U256
Available on crate feature integer only.
impl BitAndSizeOnGpu<&FheUint<FheUint152Id>> for U256
integer only.Source§fn get_bitand_size_on_gpu(&self, rhs: &FheUint152) -> u64
fn get_bitand_size_on_gpu(&self, rhs: &FheUint152) -> u64
gpu only.Source§impl BitAndSizeOnGpu<&FheUint<FheUint160Id>> for U256
Available on crate feature integer only.
impl BitAndSizeOnGpu<&FheUint<FheUint160Id>> for U256
integer only.Source§fn get_bitand_size_on_gpu(&self, rhs: &FheUint160) -> u64
fn get_bitand_size_on_gpu(&self, rhs: &FheUint160) -> u64
gpu only.Source§impl BitAndSizeOnGpu<&FheUint<FheUint168Id>> for U256
Available on crate feature integer only.
impl BitAndSizeOnGpu<&FheUint<FheUint168Id>> for U256
integer only.Source§fn get_bitand_size_on_gpu(&self, rhs: &FheUint168) -> u64
fn get_bitand_size_on_gpu(&self, rhs: &FheUint168) -> u64
gpu only.Source§impl BitAndSizeOnGpu<&FheUint<FheUint16Id>> for u16
Available on crate feature integer only.
impl BitAndSizeOnGpu<&FheUint<FheUint16Id>> for u16
integer only.Source§fn get_bitand_size_on_gpu(&self, rhs: &FheUint16) -> u64
fn get_bitand_size_on_gpu(&self, rhs: &FheUint16) -> u64
gpu only.Source§impl BitAndSizeOnGpu<&FheUint<FheUint176Id>> for U256
Available on crate feature integer only.
impl BitAndSizeOnGpu<&FheUint<FheUint176Id>> for U256
integer only.Source§fn get_bitand_size_on_gpu(&self, rhs: &FheUint176) -> u64
fn get_bitand_size_on_gpu(&self, rhs: &FheUint176) -> u64
gpu only.Source§impl BitAndSizeOnGpu<&FheUint<FheUint184Id>> for U256
Available on crate feature integer only.
impl BitAndSizeOnGpu<&FheUint<FheUint184Id>> for U256
integer only.Source§fn get_bitand_size_on_gpu(&self, rhs: &FheUint184) -> u64
fn get_bitand_size_on_gpu(&self, rhs: &FheUint184) -> u64
gpu only.Source§impl BitAndSizeOnGpu<&FheUint<FheUint192Id>> for U256
Available on crate feature integer only.
impl BitAndSizeOnGpu<&FheUint<FheUint192Id>> for U256
integer only.Source§fn get_bitand_size_on_gpu(&self, rhs: &FheUint192) -> u64
fn get_bitand_size_on_gpu(&self, rhs: &FheUint192) -> u64
gpu only.Source§impl BitAndSizeOnGpu<&FheUint<FheUint200Id>> for U256
Available on crate feature integer only.
impl BitAndSizeOnGpu<&FheUint<FheUint200Id>> for U256
integer only.Source§fn get_bitand_size_on_gpu(&self, rhs: &FheUint200) -> u64
fn get_bitand_size_on_gpu(&self, rhs: &FheUint200) -> u64
gpu only.Source§impl BitAndSizeOnGpu<&FheUint<FheUint2048Id>> for U2048
Available on crate feature integer only.
impl BitAndSizeOnGpu<&FheUint<FheUint2048Id>> for U2048
integer only.Source§fn get_bitand_size_on_gpu(&self, rhs: &FheUint2048) -> u64
fn get_bitand_size_on_gpu(&self, rhs: &FheUint2048) -> u64
gpu only.Source§impl BitAndSizeOnGpu<&FheUint<FheUint208Id>> for U256
Available on crate feature integer only.
impl BitAndSizeOnGpu<&FheUint<FheUint208Id>> for U256
integer only.Source§fn get_bitand_size_on_gpu(&self, rhs: &FheUint208) -> u64
fn get_bitand_size_on_gpu(&self, rhs: &FheUint208) -> u64
gpu only.Source§impl BitAndSizeOnGpu<&FheUint<FheUint216Id>> for U256
Available on crate feature integer only.
impl BitAndSizeOnGpu<&FheUint<FheUint216Id>> for U256
integer only.Source§fn get_bitand_size_on_gpu(&self, rhs: &FheUint216) -> u64
fn get_bitand_size_on_gpu(&self, rhs: &FheUint216) -> u64
gpu only.Source§impl BitAndSizeOnGpu<&FheUint<FheUint224Id>> for U256
Available on crate feature integer only.
impl BitAndSizeOnGpu<&FheUint<FheUint224Id>> for U256
integer only.Source§fn get_bitand_size_on_gpu(&self, rhs: &FheUint224) -> u64
fn get_bitand_size_on_gpu(&self, rhs: &FheUint224) -> u64
gpu only.Source§impl BitAndSizeOnGpu<&FheUint<FheUint232Id>> for U256
Available on crate feature integer only.
impl BitAndSizeOnGpu<&FheUint<FheUint232Id>> for U256
integer only.Source§fn get_bitand_size_on_gpu(&self, rhs: &FheUint232) -> u64
fn get_bitand_size_on_gpu(&self, rhs: &FheUint232) -> u64
gpu only.Source§impl BitAndSizeOnGpu<&FheUint<FheUint240Id>> for U256
Available on crate feature integer only.
impl BitAndSizeOnGpu<&FheUint<FheUint240Id>> for U256
integer only.Source§fn get_bitand_size_on_gpu(&self, rhs: &FheUint240) -> u64
fn get_bitand_size_on_gpu(&self, rhs: &FheUint240) -> u64
gpu only.Source§impl BitAndSizeOnGpu<&FheUint<FheUint248Id>> for U256
Available on crate feature integer only.
impl BitAndSizeOnGpu<&FheUint<FheUint248Id>> for U256
integer only.Source§fn get_bitand_size_on_gpu(&self, rhs: &FheUint248) -> u64
fn get_bitand_size_on_gpu(&self, rhs: &FheUint248) -> u64
gpu only.Source§impl BitAndSizeOnGpu<&FheUint<FheUint24Id>> for u32
Available on crate feature integer only.
impl BitAndSizeOnGpu<&FheUint<FheUint24Id>> for u32
integer only.Source§fn get_bitand_size_on_gpu(&self, rhs: &FheUint24) -> u64
fn get_bitand_size_on_gpu(&self, rhs: &FheUint24) -> u64
gpu only.Source§impl BitAndSizeOnGpu<&FheUint<FheUint256Id>> for U256
Available on crate feature integer only.
impl BitAndSizeOnGpu<&FheUint<FheUint256Id>> for U256
integer only.Source§fn get_bitand_size_on_gpu(&self, rhs: &FheUint256) -> u64
fn get_bitand_size_on_gpu(&self, rhs: &FheUint256) -> u64
gpu only.Source§impl BitAndSizeOnGpu<&FheUint<FheUint2Id>> for u8
Available on crate feature integer only.
impl BitAndSizeOnGpu<&FheUint<FheUint2Id>> for u8
integer only.Source§fn get_bitand_size_on_gpu(&self, rhs: &FheUint2) -> u64
fn get_bitand_size_on_gpu(&self, rhs: &FheUint2) -> u64
gpu only.Source§impl BitAndSizeOnGpu<&FheUint<FheUint32Id>> for u32
Available on crate feature integer only.
impl BitAndSizeOnGpu<&FheUint<FheUint32Id>> for u32
integer only.Source§fn get_bitand_size_on_gpu(&self, rhs: &FheUint32) -> u64
fn get_bitand_size_on_gpu(&self, rhs: &FheUint32) -> u64
gpu only.Source§impl BitAndSizeOnGpu<&FheUint<FheUint40Id>> for u64
Available on crate feature integer only.
impl BitAndSizeOnGpu<&FheUint<FheUint40Id>> for u64
integer only.Source§fn get_bitand_size_on_gpu(&self, rhs: &FheUint40) -> u64
fn get_bitand_size_on_gpu(&self, rhs: &FheUint40) -> u64
gpu only.Source§impl BitAndSizeOnGpu<&FheUint<FheUint48Id>> for u64
Available on crate feature integer only.
impl BitAndSizeOnGpu<&FheUint<FheUint48Id>> for u64
integer only.Source§fn get_bitand_size_on_gpu(&self, rhs: &FheUint48) -> u64
fn get_bitand_size_on_gpu(&self, rhs: &FheUint48) -> u64
gpu only.Source§impl BitAndSizeOnGpu<&FheUint<FheUint4Id>> for u8
Available on crate feature integer only.
impl BitAndSizeOnGpu<&FheUint<FheUint4Id>> for u8
integer only.Source§fn get_bitand_size_on_gpu(&self, rhs: &FheUint4) -> u64
fn get_bitand_size_on_gpu(&self, rhs: &FheUint4) -> u64
gpu only.Source§impl BitAndSizeOnGpu<&FheUint<FheUint512Id>> for U512
Available on crate feature integer only.
impl BitAndSizeOnGpu<&FheUint<FheUint512Id>> for U512
integer only.Source§fn get_bitand_size_on_gpu(&self, rhs: &FheUint512) -> u64
fn get_bitand_size_on_gpu(&self, rhs: &FheUint512) -> u64
gpu only.Source§impl BitAndSizeOnGpu<&FheUint<FheUint56Id>> for u64
Available on crate feature integer only.
impl BitAndSizeOnGpu<&FheUint<FheUint56Id>> for u64
integer only.Source§fn get_bitand_size_on_gpu(&self, rhs: &FheUint56) -> u64
fn get_bitand_size_on_gpu(&self, rhs: &FheUint56) -> u64
gpu only.Source§impl BitAndSizeOnGpu<&FheUint<FheUint64Id>> for u64
Available on crate feature integer only.
impl BitAndSizeOnGpu<&FheUint<FheUint64Id>> for u64
integer only.Source§fn get_bitand_size_on_gpu(&self, rhs: &FheUint64) -> u64
fn get_bitand_size_on_gpu(&self, rhs: &FheUint64) -> u64
gpu only.Source§impl BitAndSizeOnGpu<&FheUint<FheUint6Id>> for u8
Available on crate feature integer only.
impl BitAndSizeOnGpu<&FheUint<FheUint6Id>> for u8
integer only.Source§fn get_bitand_size_on_gpu(&self, rhs: &FheUint6) -> u64
fn get_bitand_size_on_gpu(&self, rhs: &FheUint6) -> u64
gpu only.Source§impl BitAndSizeOnGpu<&FheUint<FheUint72Id>> for u128
Available on crate feature integer only.
impl BitAndSizeOnGpu<&FheUint<FheUint72Id>> for u128
integer only.Source§fn get_bitand_size_on_gpu(&self, rhs: &FheUint72) -> u64
fn get_bitand_size_on_gpu(&self, rhs: &FheUint72) -> u64
gpu only.Source§impl BitAndSizeOnGpu<&FheUint<FheUint80Id>> for u128
Available on crate feature integer only.
impl BitAndSizeOnGpu<&FheUint<FheUint80Id>> for u128
integer only.Source§fn get_bitand_size_on_gpu(&self, rhs: &FheUint80) -> u64
fn get_bitand_size_on_gpu(&self, rhs: &FheUint80) -> u64
gpu only.Source§impl BitAndSizeOnGpu<&FheUint<FheUint88Id>> for u128
Available on crate feature integer only.
impl BitAndSizeOnGpu<&FheUint<FheUint88Id>> for u128
integer only.Source§fn get_bitand_size_on_gpu(&self, rhs: &FheUint88) -> u64
fn get_bitand_size_on_gpu(&self, rhs: &FheUint88) -> u64
gpu only.Source§impl BitAndSizeOnGpu<&FheUint<FheUint8Id>> for u8
Available on crate feature integer only.
impl BitAndSizeOnGpu<&FheUint<FheUint8Id>> for u8
integer only.Source§fn get_bitand_size_on_gpu(&self, rhs: &FheUint8) -> u64
fn get_bitand_size_on_gpu(&self, rhs: &FheUint8) -> u64
gpu only.Source§impl BitAndSizeOnGpu<&FheUint<FheUint96Id>> for u128
Available on crate feature integer only.
impl BitAndSizeOnGpu<&FheUint<FheUint96Id>> for u128
integer only.Source§fn get_bitand_size_on_gpu(&self, rhs: &FheUint96) -> u64
fn get_bitand_size_on_gpu(&self, rhs: &FheUint96) -> u64
gpu only.Source§impl BitAndSizeOnGpu<FheUint<FheUint1024Id>> for U1024
Available on crate feature integer only.
impl BitAndSizeOnGpu<FheUint<FheUint1024Id>> for U1024
integer only.Source§fn get_bitand_size_on_gpu(&self, rhs: FheUint1024) -> u64
fn get_bitand_size_on_gpu(&self, rhs: FheUint1024) -> u64
gpu only.Source§impl BitAndSizeOnGpu<FheUint<FheUint104Id>> for u128
Available on crate feature integer only.
impl BitAndSizeOnGpu<FheUint<FheUint104Id>> for u128
integer only.Source§fn get_bitand_size_on_gpu(&self, rhs: FheUint104) -> u64
fn get_bitand_size_on_gpu(&self, rhs: FheUint104) -> u64
gpu only.Source§impl BitAndSizeOnGpu<FheUint<FheUint10Id>> for u16
Available on crate feature integer only.
impl BitAndSizeOnGpu<FheUint<FheUint10Id>> for u16
integer only.Source§fn get_bitand_size_on_gpu(&self, rhs: FheUint10) -> u64
fn get_bitand_size_on_gpu(&self, rhs: FheUint10) -> u64
gpu only.Source§impl BitAndSizeOnGpu<FheUint<FheUint112Id>> for u128
Available on crate feature integer only.
impl BitAndSizeOnGpu<FheUint<FheUint112Id>> for u128
integer only.Source§fn get_bitand_size_on_gpu(&self, rhs: FheUint112) -> u64
fn get_bitand_size_on_gpu(&self, rhs: FheUint112) -> u64
gpu only.Source§impl BitAndSizeOnGpu<FheUint<FheUint120Id>> for u128
Available on crate feature integer only.
impl BitAndSizeOnGpu<FheUint<FheUint120Id>> for u128
integer only.Source§fn get_bitand_size_on_gpu(&self, rhs: FheUint120) -> u64
fn get_bitand_size_on_gpu(&self, rhs: FheUint120) -> u64
gpu only.Source§impl BitAndSizeOnGpu<FheUint<FheUint128Id>> for u128
Available on crate feature integer only.
impl BitAndSizeOnGpu<FheUint<FheUint128Id>> for u128
integer only.Source§fn get_bitand_size_on_gpu(&self, rhs: FheUint128) -> u64
fn get_bitand_size_on_gpu(&self, rhs: FheUint128) -> u64
gpu only.Source§impl BitAndSizeOnGpu<FheUint<FheUint12Id>> for u16
Available on crate feature integer only.
impl BitAndSizeOnGpu<FheUint<FheUint12Id>> for u16
integer only.Source§fn get_bitand_size_on_gpu(&self, rhs: FheUint12) -> u64
fn get_bitand_size_on_gpu(&self, rhs: FheUint12) -> u64
gpu only.Source§impl BitAndSizeOnGpu<FheUint<FheUint136Id>> for U256
Available on crate feature integer only.
impl BitAndSizeOnGpu<FheUint<FheUint136Id>> for U256
integer only.Source§fn get_bitand_size_on_gpu(&self, rhs: FheUint136) -> u64
fn get_bitand_size_on_gpu(&self, rhs: FheUint136) -> u64
gpu only.Source§impl BitAndSizeOnGpu<FheUint<FheUint144Id>> for U256
Available on crate feature integer only.
impl BitAndSizeOnGpu<FheUint<FheUint144Id>> for U256
integer only.Source§fn get_bitand_size_on_gpu(&self, rhs: FheUint144) -> u64
fn get_bitand_size_on_gpu(&self, rhs: FheUint144) -> u64
gpu only.Source§impl BitAndSizeOnGpu<FheUint<FheUint14Id>> for u16
Available on crate feature integer only.
impl BitAndSizeOnGpu<FheUint<FheUint14Id>> for u16
integer only.Source§fn get_bitand_size_on_gpu(&self, rhs: FheUint14) -> u64
fn get_bitand_size_on_gpu(&self, rhs: FheUint14) -> u64
gpu only.Source§impl BitAndSizeOnGpu<FheUint<FheUint152Id>> for U256
Available on crate feature integer only.
impl BitAndSizeOnGpu<FheUint<FheUint152Id>> for U256
integer only.Source§fn get_bitand_size_on_gpu(&self, rhs: FheUint152) -> u64
fn get_bitand_size_on_gpu(&self, rhs: FheUint152) -> u64
gpu only.Source§impl BitAndSizeOnGpu<FheUint<FheUint160Id>> for U256
Available on crate feature integer only.
impl BitAndSizeOnGpu<FheUint<FheUint160Id>> for U256
integer only.Source§fn get_bitand_size_on_gpu(&self, rhs: FheUint160) -> u64
fn get_bitand_size_on_gpu(&self, rhs: FheUint160) -> u64
gpu only.Source§impl BitAndSizeOnGpu<FheUint<FheUint168Id>> for U256
Available on crate feature integer only.
impl BitAndSizeOnGpu<FheUint<FheUint168Id>> for U256
integer only.Source§fn get_bitand_size_on_gpu(&self, rhs: FheUint168) -> u64
fn get_bitand_size_on_gpu(&self, rhs: FheUint168) -> u64
gpu only.Source§impl BitAndSizeOnGpu<FheUint<FheUint16Id>> for u16
Available on crate feature integer only.
impl BitAndSizeOnGpu<FheUint<FheUint16Id>> for u16
integer only.Source§fn get_bitand_size_on_gpu(&self, rhs: FheUint16) -> u64
fn get_bitand_size_on_gpu(&self, rhs: FheUint16) -> u64
gpu only.Source§impl BitAndSizeOnGpu<FheUint<FheUint176Id>> for U256
Available on crate feature integer only.
impl BitAndSizeOnGpu<FheUint<FheUint176Id>> for U256
integer only.Source§fn get_bitand_size_on_gpu(&self, rhs: FheUint176) -> u64
fn get_bitand_size_on_gpu(&self, rhs: FheUint176) -> u64
gpu only.Source§impl BitAndSizeOnGpu<FheUint<FheUint184Id>> for U256
Available on crate feature integer only.
impl BitAndSizeOnGpu<FheUint<FheUint184Id>> for U256
integer only.Source§fn get_bitand_size_on_gpu(&self, rhs: FheUint184) -> u64
fn get_bitand_size_on_gpu(&self, rhs: FheUint184) -> u64
gpu only.Source§impl BitAndSizeOnGpu<FheUint<FheUint192Id>> for U256
Available on crate feature integer only.
impl BitAndSizeOnGpu<FheUint<FheUint192Id>> for U256
integer only.Source§fn get_bitand_size_on_gpu(&self, rhs: FheUint192) -> u64
fn get_bitand_size_on_gpu(&self, rhs: FheUint192) -> u64
gpu only.Source§impl BitAndSizeOnGpu<FheUint<FheUint200Id>> for U256
Available on crate feature integer only.
impl BitAndSizeOnGpu<FheUint<FheUint200Id>> for U256
integer only.Source§fn get_bitand_size_on_gpu(&self, rhs: FheUint200) -> u64
fn get_bitand_size_on_gpu(&self, rhs: FheUint200) -> u64
gpu only.Source§impl BitAndSizeOnGpu<FheUint<FheUint2048Id>> for U2048
Available on crate feature integer only.
impl BitAndSizeOnGpu<FheUint<FheUint2048Id>> for U2048
integer only.Source§fn get_bitand_size_on_gpu(&self, rhs: FheUint2048) -> u64
fn get_bitand_size_on_gpu(&self, rhs: FheUint2048) -> u64
gpu only.Source§impl BitAndSizeOnGpu<FheUint<FheUint208Id>> for U256
Available on crate feature integer only.
impl BitAndSizeOnGpu<FheUint<FheUint208Id>> for U256
integer only.Source§fn get_bitand_size_on_gpu(&self, rhs: FheUint208) -> u64
fn get_bitand_size_on_gpu(&self, rhs: FheUint208) -> u64
gpu only.Source§impl BitAndSizeOnGpu<FheUint<FheUint216Id>> for U256
Available on crate feature integer only.
impl BitAndSizeOnGpu<FheUint<FheUint216Id>> for U256
integer only.Source§fn get_bitand_size_on_gpu(&self, rhs: FheUint216) -> u64
fn get_bitand_size_on_gpu(&self, rhs: FheUint216) -> u64
gpu only.Source§impl BitAndSizeOnGpu<FheUint<FheUint224Id>> for U256
Available on crate feature integer only.
impl BitAndSizeOnGpu<FheUint<FheUint224Id>> for U256
integer only.Source§fn get_bitand_size_on_gpu(&self, rhs: FheUint224) -> u64
fn get_bitand_size_on_gpu(&self, rhs: FheUint224) -> u64
gpu only.Source§impl BitAndSizeOnGpu<FheUint<FheUint232Id>> for U256
Available on crate feature integer only.
impl BitAndSizeOnGpu<FheUint<FheUint232Id>> for U256
integer only.Source§fn get_bitand_size_on_gpu(&self, rhs: FheUint232) -> u64
fn get_bitand_size_on_gpu(&self, rhs: FheUint232) -> u64
gpu only.Source§impl BitAndSizeOnGpu<FheUint<FheUint240Id>> for U256
Available on crate feature integer only.
impl BitAndSizeOnGpu<FheUint<FheUint240Id>> for U256
integer only.Source§fn get_bitand_size_on_gpu(&self, rhs: FheUint240) -> u64
fn get_bitand_size_on_gpu(&self, rhs: FheUint240) -> u64
gpu only.Source§impl BitAndSizeOnGpu<FheUint<FheUint248Id>> for U256
Available on crate feature integer only.
impl BitAndSizeOnGpu<FheUint<FheUint248Id>> for U256
integer only.Source§fn get_bitand_size_on_gpu(&self, rhs: FheUint248) -> u64
fn get_bitand_size_on_gpu(&self, rhs: FheUint248) -> u64
gpu only.Source§impl BitAndSizeOnGpu<FheUint<FheUint24Id>> for u32
Available on crate feature integer only.
impl BitAndSizeOnGpu<FheUint<FheUint24Id>> for u32
integer only.Source§fn get_bitand_size_on_gpu(&self, rhs: FheUint24) -> u64
fn get_bitand_size_on_gpu(&self, rhs: FheUint24) -> u64
gpu only.Source§impl BitAndSizeOnGpu<FheUint<FheUint256Id>> for U256
Available on crate feature integer only.
impl BitAndSizeOnGpu<FheUint<FheUint256Id>> for U256
integer only.Source§fn get_bitand_size_on_gpu(&self, rhs: FheUint256) -> u64
fn get_bitand_size_on_gpu(&self, rhs: FheUint256) -> u64
gpu only.Source§impl BitAndSizeOnGpu<FheUint<FheUint2Id>> for u8
Available on crate feature integer only.
impl BitAndSizeOnGpu<FheUint<FheUint2Id>> for u8
integer only.Source§fn get_bitand_size_on_gpu(&self, rhs: FheUint2) -> u64
fn get_bitand_size_on_gpu(&self, rhs: FheUint2) -> u64
gpu only.Source§impl BitAndSizeOnGpu<FheUint<FheUint32Id>> for u32
Available on crate feature integer only.
impl BitAndSizeOnGpu<FheUint<FheUint32Id>> for u32
integer only.Source§fn get_bitand_size_on_gpu(&self, rhs: FheUint32) -> u64
fn get_bitand_size_on_gpu(&self, rhs: FheUint32) -> u64
gpu only.Source§impl BitAndSizeOnGpu<FheUint<FheUint40Id>> for u64
Available on crate feature integer only.
impl BitAndSizeOnGpu<FheUint<FheUint40Id>> for u64
integer only.Source§fn get_bitand_size_on_gpu(&self, rhs: FheUint40) -> u64
fn get_bitand_size_on_gpu(&self, rhs: FheUint40) -> u64
gpu only.Source§impl BitAndSizeOnGpu<FheUint<FheUint48Id>> for u64
Available on crate feature integer only.
impl BitAndSizeOnGpu<FheUint<FheUint48Id>> for u64
integer only.Source§fn get_bitand_size_on_gpu(&self, rhs: FheUint48) -> u64
fn get_bitand_size_on_gpu(&self, rhs: FheUint48) -> u64
gpu only.Source§impl BitAndSizeOnGpu<FheUint<FheUint4Id>> for u8
Available on crate feature integer only.
impl BitAndSizeOnGpu<FheUint<FheUint4Id>> for u8
integer only.Source§fn get_bitand_size_on_gpu(&self, rhs: FheUint4) -> u64
fn get_bitand_size_on_gpu(&self, rhs: FheUint4) -> u64
gpu only.Source§impl BitAndSizeOnGpu<FheUint<FheUint512Id>> for U512
Available on crate feature integer only.
impl BitAndSizeOnGpu<FheUint<FheUint512Id>> for U512
integer only.Source§fn get_bitand_size_on_gpu(&self, rhs: FheUint512) -> u64
fn get_bitand_size_on_gpu(&self, rhs: FheUint512) -> u64
gpu only.Source§impl BitAndSizeOnGpu<FheUint<FheUint56Id>> for u64
Available on crate feature integer only.
impl BitAndSizeOnGpu<FheUint<FheUint56Id>> for u64
integer only.Source§fn get_bitand_size_on_gpu(&self, rhs: FheUint56) -> u64
fn get_bitand_size_on_gpu(&self, rhs: FheUint56) -> u64
gpu only.Source§impl BitAndSizeOnGpu<FheUint<FheUint64Id>> for u64
Available on crate feature integer only.
impl BitAndSizeOnGpu<FheUint<FheUint64Id>> for u64
integer only.Source§fn get_bitand_size_on_gpu(&self, rhs: FheUint64) -> u64
fn get_bitand_size_on_gpu(&self, rhs: FheUint64) -> u64
gpu only.Source§impl BitAndSizeOnGpu<FheUint<FheUint6Id>> for u8
Available on crate feature integer only.
impl BitAndSizeOnGpu<FheUint<FheUint6Id>> for u8
integer only.Source§fn get_bitand_size_on_gpu(&self, rhs: FheUint6) -> u64
fn get_bitand_size_on_gpu(&self, rhs: FheUint6) -> u64
gpu only.Source§impl BitAndSizeOnGpu<FheUint<FheUint72Id>> for u128
Available on crate feature integer only.
impl BitAndSizeOnGpu<FheUint<FheUint72Id>> for u128
integer only.Source§fn get_bitand_size_on_gpu(&self, rhs: FheUint72) -> u64
fn get_bitand_size_on_gpu(&self, rhs: FheUint72) -> u64
gpu only.Source§impl BitAndSizeOnGpu<FheUint<FheUint80Id>> for u128
Available on crate feature integer only.
impl BitAndSizeOnGpu<FheUint<FheUint80Id>> for u128
integer only.Source§fn get_bitand_size_on_gpu(&self, rhs: FheUint80) -> u64
fn get_bitand_size_on_gpu(&self, rhs: FheUint80) -> u64
gpu only.Source§impl BitAndSizeOnGpu<FheUint<FheUint88Id>> for u128
Available on crate feature integer only.
impl BitAndSizeOnGpu<FheUint<FheUint88Id>> for u128
integer only.Source§fn get_bitand_size_on_gpu(&self, rhs: FheUint88) -> u64
fn get_bitand_size_on_gpu(&self, rhs: FheUint88) -> u64
gpu only.Source§impl BitAndSizeOnGpu<FheUint<FheUint8Id>> for u8
Available on crate feature integer only.
impl BitAndSizeOnGpu<FheUint<FheUint8Id>> for u8
integer only.Source§fn get_bitand_size_on_gpu(&self, rhs: FheUint8) -> u64
fn get_bitand_size_on_gpu(&self, rhs: FheUint8) -> u64
gpu only.Source§impl BitAndSizeOnGpu<FheUint<FheUint96Id>> for u128
Available on crate feature integer only.
impl BitAndSizeOnGpu<FheUint<FheUint96Id>> for u128
integer only.Source§fn get_bitand_size_on_gpu(&self, rhs: FheUint96) -> u64
fn get_bitand_size_on_gpu(&self, rhs: FheUint96) -> u64
gpu only.Source§impl<Id, I> BitAndSizeOnGpu<I> for FheUint<Id>
Available on crate features integer and gpu only.
impl<Id, I> BitAndSizeOnGpu<I> for FheUint<Id>
integer and gpu only.fn get_bitand_size_on_gpu(&self, rhs: I) -> u64
Source§impl<Id> BitNotSizeOnGpu for FheUint<Id>where
Id: FheUintId,
Available on crate features integer and gpu only.
impl<Id> BitNotSizeOnGpu for FheUint<Id>where
Id: FheUintId,
integer and gpu only.fn get_bitnot_size_on_gpu(&self) -> u64
Source§impl<Id, B> BitOr<B> for &FheUint<Id>
Available on crate feature integer only.
impl<Id, B> BitOr<B> for &FheUint<Id>
integer only.Source§fn bitor(self, rhs: B) -> Self::Output
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§impl<Id, I> BitOrAssign<I> for FheUint<Id>
Available on crate feature integer only.
impl<Id, I> BitOrAssign<I> for FheUint<Id>
integer only.Source§fn bitor_assign(&mut self, rhs: I)
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<FheUint1024Id>> for U1024
Available on crate feature integer only.
impl BitOrSizeOnGpu<&FheUint<FheUint1024Id>> for U1024
integer only.Source§fn get_bitor_size_on_gpu(&self, rhs: &FheUint1024) -> u64
fn get_bitor_size_on_gpu(&self, rhs: &FheUint1024) -> u64
gpu only.Source§impl BitOrSizeOnGpu<&FheUint<FheUint104Id>> for u128
Available on crate feature integer only.
impl BitOrSizeOnGpu<&FheUint<FheUint104Id>> for u128
integer only.Source§fn get_bitor_size_on_gpu(&self, rhs: &FheUint104) -> u64
fn get_bitor_size_on_gpu(&self, rhs: &FheUint104) -> u64
gpu only.Source§impl BitOrSizeOnGpu<&FheUint<FheUint10Id>> for u16
Available on crate feature integer only.
impl BitOrSizeOnGpu<&FheUint<FheUint10Id>> for u16
integer only.Source§fn get_bitor_size_on_gpu(&self, rhs: &FheUint10) -> u64
fn get_bitor_size_on_gpu(&self, rhs: &FheUint10) -> u64
gpu only.Source§impl BitOrSizeOnGpu<&FheUint<FheUint112Id>> for u128
Available on crate feature integer only.
impl BitOrSizeOnGpu<&FheUint<FheUint112Id>> for u128
integer only.Source§fn get_bitor_size_on_gpu(&self, rhs: &FheUint112) -> u64
fn get_bitor_size_on_gpu(&self, rhs: &FheUint112) -> u64
gpu only.Source§impl BitOrSizeOnGpu<&FheUint<FheUint120Id>> for u128
Available on crate feature integer only.
impl BitOrSizeOnGpu<&FheUint<FheUint120Id>> for u128
integer only.Source§fn get_bitor_size_on_gpu(&self, rhs: &FheUint120) -> u64
fn get_bitor_size_on_gpu(&self, rhs: &FheUint120) -> u64
gpu only.Source§impl BitOrSizeOnGpu<&FheUint<FheUint128Id>> for u128
Available on crate feature integer only.
impl BitOrSizeOnGpu<&FheUint<FheUint128Id>> for u128
integer only.Source§fn get_bitor_size_on_gpu(&self, rhs: &FheUint128) -> u64
fn get_bitor_size_on_gpu(&self, rhs: &FheUint128) -> u64
gpu only.Source§impl BitOrSizeOnGpu<&FheUint<FheUint12Id>> for u16
Available on crate feature integer only.
impl BitOrSizeOnGpu<&FheUint<FheUint12Id>> for u16
integer only.Source§fn get_bitor_size_on_gpu(&self, rhs: &FheUint12) -> u64
fn get_bitor_size_on_gpu(&self, rhs: &FheUint12) -> u64
gpu only.Source§impl BitOrSizeOnGpu<&FheUint<FheUint136Id>> for U256
Available on crate feature integer only.
impl BitOrSizeOnGpu<&FheUint<FheUint136Id>> for U256
integer only.Source§fn get_bitor_size_on_gpu(&self, rhs: &FheUint136) -> u64
fn get_bitor_size_on_gpu(&self, rhs: &FheUint136) -> u64
gpu only.Source§impl BitOrSizeOnGpu<&FheUint<FheUint144Id>> for U256
Available on crate feature integer only.
impl BitOrSizeOnGpu<&FheUint<FheUint144Id>> for U256
integer only.Source§fn get_bitor_size_on_gpu(&self, rhs: &FheUint144) -> u64
fn get_bitor_size_on_gpu(&self, rhs: &FheUint144) -> u64
gpu only.Source§impl BitOrSizeOnGpu<&FheUint<FheUint14Id>> for u16
Available on crate feature integer only.
impl BitOrSizeOnGpu<&FheUint<FheUint14Id>> for u16
integer only.Source§fn get_bitor_size_on_gpu(&self, rhs: &FheUint14) -> u64
fn get_bitor_size_on_gpu(&self, rhs: &FheUint14) -> u64
gpu only.Source§impl BitOrSizeOnGpu<&FheUint<FheUint152Id>> for U256
Available on crate feature integer only.
impl BitOrSizeOnGpu<&FheUint<FheUint152Id>> for U256
integer only.Source§fn get_bitor_size_on_gpu(&self, rhs: &FheUint152) -> u64
fn get_bitor_size_on_gpu(&self, rhs: &FheUint152) -> u64
gpu only.Source§impl BitOrSizeOnGpu<&FheUint<FheUint160Id>> for U256
Available on crate feature integer only.
impl BitOrSizeOnGpu<&FheUint<FheUint160Id>> for U256
integer only.Source§fn get_bitor_size_on_gpu(&self, rhs: &FheUint160) -> u64
fn get_bitor_size_on_gpu(&self, rhs: &FheUint160) -> u64
gpu only.Source§impl BitOrSizeOnGpu<&FheUint<FheUint168Id>> for U256
Available on crate feature integer only.
impl BitOrSizeOnGpu<&FheUint<FheUint168Id>> for U256
integer only.Source§fn get_bitor_size_on_gpu(&self, rhs: &FheUint168) -> u64
fn get_bitor_size_on_gpu(&self, rhs: &FheUint168) -> u64
gpu only.Source§impl BitOrSizeOnGpu<&FheUint<FheUint16Id>> for u16
Available on crate feature integer only.
impl BitOrSizeOnGpu<&FheUint<FheUint16Id>> for u16
integer only.Source§fn get_bitor_size_on_gpu(&self, rhs: &FheUint16) -> u64
fn get_bitor_size_on_gpu(&self, rhs: &FheUint16) -> u64
gpu only.Source§impl BitOrSizeOnGpu<&FheUint<FheUint176Id>> for U256
Available on crate feature integer only.
impl BitOrSizeOnGpu<&FheUint<FheUint176Id>> for U256
integer only.Source§fn get_bitor_size_on_gpu(&self, rhs: &FheUint176) -> u64
fn get_bitor_size_on_gpu(&self, rhs: &FheUint176) -> u64
gpu only.Source§impl BitOrSizeOnGpu<&FheUint<FheUint184Id>> for U256
Available on crate feature integer only.
impl BitOrSizeOnGpu<&FheUint<FheUint184Id>> for U256
integer only.Source§fn get_bitor_size_on_gpu(&self, rhs: &FheUint184) -> u64
fn get_bitor_size_on_gpu(&self, rhs: &FheUint184) -> u64
gpu only.Source§impl BitOrSizeOnGpu<&FheUint<FheUint192Id>> for U256
Available on crate feature integer only.
impl BitOrSizeOnGpu<&FheUint<FheUint192Id>> for U256
integer only.Source§fn get_bitor_size_on_gpu(&self, rhs: &FheUint192) -> u64
fn get_bitor_size_on_gpu(&self, rhs: &FheUint192) -> u64
gpu only.Source§impl BitOrSizeOnGpu<&FheUint<FheUint200Id>> for U256
Available on crate feature integer only.
impl BitOrSizeOnGpu<&FheUint<FheUint200Id>> for U256
integer only.Source§fn get_bitor_size_on_gpu(&self, rhs: &FheUint200) -> u64
fn get_bitor_size_on_gpu(&self, rhs: &FheUint200) -> u64
gpu only.Source§impl BitOrSizeOnGpu<&FheUint<FheUint2048Id>> for U2048
Available on crate feature integer only.
impl BitOrSizeOnGpu<&FheUint<FheUint2048Id>> for U2048
integer only.Source§fn get_bitor_size_on_gpu(&self, rhs: &FheUint2048) -> u64
fn get_bitor_size_on_gpu(&self, rhs: &FheUint2048) -> u64
gpu only.Source§impl BitOrSizeOnGpu<&FheUint<FheUint208Id>> for U256
Available on crate feature integer only.
impl BitOrSizeOnGpu<&FheUint<FheUint208Id>> for U256
integer only.Source§fn get_bitor_size_on_gpu(&self, rhs: &FheUint208) -> u64
fn get_bitor_size_on_gpu(&self, rhs: &FheUint208) -> u64
gpu only.Source§impl BitOrSizeOnGpu<&FheUint<FheUint216Id>> for U256
Available on crate feature integer only.
impl BitOrSizeOnGpu<&FheUint<FheUint216Id>> for U256
integer only.Source§fn get_bitor_size_on_gpu(&self, rhs: &FheUint216) -> u64
fn get_bitor_size_on_gpu(&self, rhs: &FheUint216) -> u64
gpu only.Source§impl BitOrSizeOnGpu<&FheUint<FheUint224Id>> for U256
Available on crate feature integer only.
impl BitOrSizeOnGpu<&FheUint<FheUint224Id>> for U256
integer only.Source§fn get_bitor_size_on_gpu(&self, rhs: &FheUint224) -> u64
fn get_bitor_size_on_gpu(&self, rhs: &FheUint224) -> u64
gpu only.Source§impl BitOrSizeOnGpu<&FheUint<FheUint232Id>> for U256
Available on crate feature integer only.
impl BitOrSizeOnGpu<&FheUint<FheUint232Id>> for U256
integer only.Source§fn get_bitor_size_on_gpu(&self, rhs: &FheUint232) -> u64
fn get_bitor_size_on_gpu(&self, rhs: &FheUint232) -> u64
gpu only.Source§impl BitOrSizeOnGpu<&FheUint<FheUint240Id>> for U256
Available on crate feature integer only.
impl BitOrSizeOnGpu<&FheUint<FheUint240Id>> for U256
integer only.Source§fn get_bitor_size_on_gpu(&self, rhs: &FheUint240) -> u64
fn get_bitor_size_on_gpu(&self, rhs: &FheUint240) -> u64
gpu only.Source§impl BitOrSizeOnGpu<&FheUint<FheUint248Id>> for U256
Available on crate feature integer only.
impl BitOrSizeOnGpu<&FheUint<FheUint248Id>> for U256
integer only.Source§fn get_bitor_size_on_gpu(&self, rhs: &FheUint248) -> u64
fn get_bitor_size_on_gpu(&self, rhs: &FheUint248) -> u64
gpu only.Source§impl BitOrSizeOnGpu<&FheUint<FheUint24Id>> for u32
Available on crate feature integer only.
impl BitOrSizeOnGpu<&FheUint<FheUint24Id>> for u32
integer only.Source§fn get_bitor_size_on_gpu(&self, rhs: &FheUint24) -> u64
fn get_bitor_size_on_gpu(&self, rhs: &FheUint24) -> u64
gpu only.Source§impl BitOrSizeOnGpu<&FheUint<FheUint256Id>> for U256
Available on crate feature integer only.
impl BitOrSizeOnGpu<&FheUint<FheUint256Id>> for U256
integer only.Source§fn get_bitor_size_on_gpu(&self, rhs: &FheUint256) -> u64
fn get_bitor_size_on_gpu(&self, rhs: &FheUint256) -> u64
gpu only.Source§impl BitOrSizeOnGpu<&FheUint<FheUint2Id>> for u8
Available on crate feature integer only.
impl BitOrSizeOnGpu<&FheUint<FheUint2Id>> for u8
integer only.Source§fn get_bitor_size_on_gpu(&self, rhs: &FheUint2) -> u64
fn get_bitor_size_on_gpu(&self, rhs: &FheUint2) -> u64
gpu only.Source§impl BitOrSizeOnGpu<&FheUint<FheUint32Id>> for u32
Available on crate feature integer only.
impl BitOrSizeOnGpu<&FheUint<FheUint32Id>> for u32
integer only.Source§fn get_bitor_size_on_gpu(&self, rhs: &FheUint32) -> u64
fn get_bitor_size_on_gpu(&self, rhs: &FheUint32) -> u64
gpu only.Source§impl BitOrSizeOnGpu<&FheUint<FheUint40Id>> for u64
Available on crate feature integer only.
impl BitOrSizeOnGpu<&FheUint<FheUint40Id>> for u64
integer only.Source§fn get_bitor_size_on_gpu(&self, rhs: &FheUint40) -> u64
fn get_bitor_size_on_gpu(&self, rhs: &FheUint40) -> u64
gpu only.Source§impl BitOrSizeOnGpu<&FheUint<FheUint48Id>> for u64
Available on crate feature integer only.
impl BitOrSizeOnGpu<&FheUint<FheUint48Id>> for u64
integer only.Source§fn get_bitor_size_on_gpu(&self, rhs: &FheUint48) -> u64
fn get_bitor_size_on_gpu(&self, rhs: &FheUint48) -> u64
gpu only.Source§impl BitOrSizeOnGpu<&FheUint<FheUint4Id>> for u8
Available on crate feature integer only.
impl BitOrSizeOnGpu<&FheUint<FheUint4Id>> for u8
integer only.Source§fn get_bitor_size_on_gpu(&self, rhs: &FheUint4) -> u64
fn get_bitor_size_on_gpu(&self, rhs: &FheUint4) -> u64
gpu only.Source§impl BitOrSizeOnGpu<&FheUint<FheUint512Id>> for U512
Available on crate feature integer only.
impl BitOrSizeOnGpu<&FheUint<FheUint512Id>> for U512
integer only.Source§fn get_bitor_size_on_gpu(&self, rhs: &FheUint512) -> u64
fn get_bitor_size_on_gpu(&self, rhs: &FheUint512) -> u64
gpu only.Source§impl BitOrSizeOnGpu<&FheUint<FheUint56Id>> for u64
Available on crate feature integer only.
impl BitOrSizeOnGpu<&FheUint<FheUint56Id>> for u64
integer only.Source§fn get_bitor_size_on_gpu(&self, rhs: &FheUint56) -> u64
fn get_bitor_size_on_gpu(&self, rhs: &FheUint56) -> u64
gpu only.Source§impl BitOrSizeOnGpu<&FheUint<FheUint64Id>> for u64
Available on crate feature integer only.
impl BitOrSizeOnGpu<&FheUint<FheUint64Id>> for u64
integer only.Source§fn get_bitor_size_on_gpu(&self, rhs: &FheUint64) -> u64
fn get_bitor_size_on_gpu(&self, rhs: &FheUint64) -> u64
gpu only.Source§impl BitOrSizeOnGpu<&FheUint<FheUint6Id>> for u8
Available on crate feature integer only.
impl BitOrSizeOnGpu<&FheUint<FheUint6Id>> for u8
integer only.Source§fn get_bitor_size_on_gpu(&self, rhs: &FheUint6) -> u64
fn get_bitor_size_on_gpu(&self, rhs: &FheUint6) -> u64
gpu only.Source§impl BitOrSizeOnGpu<&FheUint<FheUint72Id>> for u128
Available on crate feature integer only.
impl BitOrSizeOnGpu<&FheUint<FheUint72Id>> for u128
integer only.Source§fn get_bitor_size_on_gpu(&self, rhs: &FheUint72) -> u64
fn get_bitor_size_on_gpu(&self, rhs: &FheUint72) -> u64
gpu only.Source§impl BitOrSizeOnGpu<&FheUint<FheUint80Id>> for u128
Available on crate feature integer only.
impl BitOrSizeOnGpu<&FheUint<FheUint80Id>> for u128
integer only.Source§fn get_bitor_size_on_gpu(&self, rhs: &FheUint80) -> u64
fn get_bitor_size_on_gpu(&self, rhs: &FheUint80) -> u64
gpu only.Source§impl BitOrSizeOnGpu<&FheUint<FheUint88Id>> for u128
Available on crate feature integer only.
impl BitOrSizeOnGpu<&FheUint<FheUint88Id>> for u128
integer only.Source§fn get_bitor_size_on_gpu(&self, rhs: &FheUint88) -> u64
fn get_bitor_size_on_gpu(&self, rhs: &FheUint88) -> u64
gpu only.Source§impl BitOrSizeOnGpu<&FheUint<FheUint8Id>> for u8
Available on crate feature integer only.
impl BitOrSizeOnGpu<&FheUint<FheUint8Id>> for u8
integer only.Source§fn get_bitor_size_on_gpu(&self, rhs: &FheUint8) -> u64
fn get_bitor_size_on_gpu(&self, rhs: &FheUint8) -> u64
gpu only.Source§impl BitOrSizeOnGpu<&FheUint<FheUint96Id>> for u128
Available on crate feature integer only.
impl BitOrSizeOnGpu<&FheUint<FheUint96Id>> for u128
integer only.Source§fn get_bitor_size_on_gpu(&self, rhs: &FheUint96) -> u64
fn get_bitor_size_on_gpu(&self, rhs: &FheUint96) -> u64
gpu only.Source§impl BitOrSizeOnGpu<FheUint<FheUint1024Id>> for U1024
Available on crate feature integer only.
impl BitOrSizeOnGpu<FheUint<FheUint1024Id>> for U1024
integer only.Source§fn get_bitor_size_on_gpu(&self, rhs: FheUint1024) -> u64
fn get_bitor_size_on_gpu(&self, rhs: FheUint1024) -> u64
gpu only.Source§impl BitOrSizeOnGpu<FheUint<FheUint104Id>> for u128
Available on crate feature integer only.
impl BitOrSizeOnGpu<FheUint<FheUint104Id>> for u128
integer only.Source§fn get_bitor_size_on_gpu(&self, rhs: FheUint104) -> u64
fn get_bitor_size_on_gpu(&self, rhs: FheUint104) -> u64
gpu only.Source§impl BitOrSizeOnGpu<FheUint<FheUint10Id>> for u16
Available on crate feature integer only.
impl BitOrSizeOnGpu<FheUint<FheUint10Id>> for u16
integer only.Source§fn get_bitor_size_on_gpu(&self, rhs: FheUint10) -> u64
fn get_bitor_size_on_gpu(&self, rhs: FheUint10) -> u64
gpu only.Source§impl BitOrSizeOnGpu<FheUint<FheUint112Id>> for u128
Available on crate feature integer only.
impl BitOrSizeOnGpu<FheUint<FheUint112Id>> for u128
integer only.Source§fn get_bitor_size_on_gpu(&self, rhs: FheUint112) -> u64
fn get_bitor_size_on_gpu(&self, rhs: FheUint112) -> u64
gpu only.Source§impl BitOrSizeOnGpu<FheUint<FheUint120Id>> for u128
Available on crate feature integer only.
impl BitOrSizeOnGpu<FheUint<FheUint120Id>> for u128
integer only.Source§fn get_bitor_size_on_gpu(&self, rhs: FheUint120) -> u64
fn get_bitor_size_on_gpu(&self, rhs: FheUint120) -> u64
gpu only.Source§impl BitOrSizeOnGpu<FheUint<FheUint128Id>> for u128
Available on crate feature integer only.
impl BitOrSizeOnGpu<FheUint<FheUint128Id>> for u128
integer only.Source§fn get_bitor_size_on_gpu(&self, rhs: FheUint128) -> u64
fn get_bitor_size_on_gpu(&self, rhs: FheUint128) -> u64
gpu only.Source§impl BitOrSizeOnGpu<FheUint<FheUint12Id>> for u16
Available on crate feature integer only.
impl BitOrSizeOnGpu<FheUint<FheUint12Id>> for u16
integer only.Source§fn get_bitor_size_on_gpu(&self, rhs: FheUint12) -> u64
fn get_bitor_size_on_gpu(&self, rhs: FheUint12) -> u64
gpu only.Source§impl BitOrSizeOnGpu<FheUint<FheUint136Id>> for U256
Available on crate feature integer only.
impl BitOrSizeOnGpu<FheUint<FheUint136Id>> for U256
integer only.Source§fn get_bitor_size_on_gpu(&self, rhs: FheUint136) -> u64
fn get_bitor_size_on_gpu(&self, rhs: FheUint136) -> u64
gpu only.Source§impl BitOrSizeOnGpu<FheUint<FheUint144Id>> for U256
Available on crate feature integer only.
impl BitOrSizeOnGpu<FheUint<FheUint144Id>> for U256
integer only.Source§fn get_bitor_size_on_gpu(&self, rhs: FheUint144) -> u64
fn get_bitor_size_on_gpu(&self, rhs: FheUint144) -> u64
gpu only.Source§impl BitOrSizeOnGpu<FheUint<FheUint14Id>> for u16
Available on crate feature integer only.
impl BitOrSizeOnGpu<FheUint<FheUint14Id>> for u16
integer only.Source§fn get_bitor_size_on_gpu(&self, rhs: FheUint14) -> u64
fn get_bitor_size_on_gpu(&self, rhs: FheUint14) -> u64
gpu only.Source§impl BitOrSizeOnGpu<FheUint<FheUint152Id>> for U256
Available on crate feature integer only.
impl BitOrSizeOnGpu<FheUint<FheUint152Id>> for U256
integer only.Source§fn get_bitor_size_on_gpu(&self, rhs: FheUint152) -> u64
fn get_bitor_size_on_gpu(&self, rhs: FheUint152) -> u64
gpu only.Source§impl BitOrSizeOnGpu<FheUint<FheUint160Id>> for U256
Available on crate feature integer only.
impl BitOrSizeOnGpu<FheUint<FheUint160Id>> for U256
integer only.Source§fn get_bitor_size_on_gpu(&self, rhs: FheUint160) -> u64
fn get_bitor_size_on_gpu(&self, rhs: FheUint160) -> u64
gpu only.Source§impl BitOrSizeOnGpu<FheUint<FheUint168Id>> for U256
Available on crate feature integer only.
impl BitOrSizeOnGpu<FheUint<FheUint168Id>> for U256
integer only.Source§fn get_bitor_size_on_gpu(&self, rhs: FheUint168) -> u64
fn get_bitor_size_on_gpu(&self, rhs: FheUint168) -> u64
gpu only.Source§impl BitOrSizeOnGpu<FheUint<FheUint16Id>> for u16
Available on crate feature integer only.
impl BitOrSizeOnGpu<FheUint<FheUint16Id>> for u16
integer only.Source§fn get_bitor_size_on_gpu(&self, rhs: FheUint16) -> u64
fn get_bitor_size_on_gpu(&self, rhs: FheUint16) -> u64
gpu only.Source§impl BitOrSizeOnGpu<FheUint<FheUint176Id>> for U256
Available on crate feature integer only.
impl BitOrSizeOnGpu<FheUint<FheUint176Id>> for U256
integer only.Source§fn get_bitor_size_on_gpu(&self, rhs: FheUint176) -> u64
fn get_bitor_size_on_gpu(&self, rhs: FheUint176) -> u64
gpu only.Source§impl BitOrSizeOnGpu<FheUint<FheUint184Id>> for U256
Available on crate feature integer only.
impl BitOrSizeOnGpu<FheUint<FheUint184Id>> for U256
integer only.Source§fn get_bitor_size_on_gpu(&self, rhs: FheUint184) -> u64
fn get_bitor_size_on_gpu(&self, rhs: FheUint184) -> u64
gpu only.Source§impl BitOrSizeOnGpu<FheUint<FheUint192Id>> for U256
Available on crate feature integer only.
impl BitOrSizeOnGpu<FheUint<FheUint192Id>> for U256
integer only.Source§fn get_bitor_size_on_gpu(&self, rhs: FheUint192) -> u64
fn get_bitor_size_on_gpu(&self, rhs: FheUint192) -> u64
gpu only.Source§impl BitOrSizeOnGpu<FheUint<FheUint200Id>> for U256
Available on crate feature integer only.
impl BitOrSizeOnGpu<FheUint<FheUint200Id>> for U256
integer only.Source§fn get_bitor_size_on_gpu(&self, rhs: FheUint200) -> u64
fn get_bitor_size_on_gpu(&self, rhs: FheUint200) -> u64
gpu only.Source§impl BitOrSizeOnGpu<FheUint<FheUint2048Id>> for U2048
Available on crate feature integer only.
impl BitOrSizeOnGpu<FheUint<FheUint2048Id>> for U2048
integer only.Source§fn get_bitor_size_on_gpu(&self, rhs: FheUint2048) -> u64
fn get_bitor_size_on_gpu(&self, rhs: FheUint2048) -> u64
gpu only.Source§impl BitOrSizeOnGpu<FheUint<FheUint208Id>> for U256
Available on crate feature integer only.
impl BitOrSizeOnGpu<FheUint<FheUint208Id>> for U256
integer only.Source§fn get_bitor_size_on_gpu(&self, rhs: FheUint208) -> u64
fn get_bitor_size_on_gpu(&self, rhs: FheUint208) -> u64
gpu only.Source§impl BitOrSizeOnGpu<FheUint<FheUint216Id>> for U256
Available on crate feature integer only.
impl BitOrSizeOnGpu<FheUint<FheUint216Id>> for U256
integer only.Source§fn get_bitor_size_on_gpu(&self, rhs: FheUint216) -> u64
fn get_bitor_size_on_gpu(&self, rhs: FheUint216) -> u64
gpu only.Source§impl BitOrSizeOnGpu<FheUint<FheUint224Id>> for U256
Available on crate feature integer only.
impl BitOrSizeOnGpu<FheUint<FheUint224Id>> for U256
integer only.Source§fn get_bitor_size_on_gpu(&self, rhs: FheUint224) -> u64
fn get_bitor_size_on_gpu(&self, rhs: FheUint224) -> u64
gpu only.Source§impl BitOrSizeOnGpu<FheUint<FheUint232Id>> for U256
Available on crate feature integer only.
impl BitOrSizeOnGpu<FheUint<FheUint232Id>> for U256
integer only.Source§fn get_bitor_size_on_gpu(&self, rhs: FheUint232) -> u64
fn get_bitor_size_on_gpu(&self, rhs: FheUint232) -> u64
gpu only.Source§impl BitOrSizeOnGpu<FheUint<FheUint240Id>> for U256
Available on crate feature integer only.
impl BitOrSizeOnGpu<FheUint<FheUint240Id>> for U256
integer only.Source§fn get_bitor_size_on_gpu(&self, rhs: FheUint240) -> u64
fn get_bitor_size_on_gpu(&self, rhs: FheUint240) -> u64
gpu only.Source§impl BitOrSizeOnGpu<FheUint<FheUint248Id>> for U256
Available on crate feature integer only.
impl BitOrSizeOnGpu<FheUint<FheUint248Id>> for U256
integer only.Source§fn get_bitor_size_on_gpu(&self, rhs: FheUint248) -> u64
fn get_bitor_size_on_gpu(&self, rhs: FheUint248) -> u64
gpu only.Source§impl BitOrSizeOnGpu<FheUint<FheUint24Id>> for u32
Available on crate feature integer only.
impl BitOrSizeOnGpu<FheUint<FheUint24Id>> for u32
integer only.Source§fn get_bitor_size_on_gpu(&self, rhs: FheUint24) -> u64
fn get_bitor_size_on_gpu(&self, rhs: FheUint24) -> u64
gpu only.Source§impl BitOrSizeOnGpu<FheUint<FheUint256Id>> for U256
Available on crate feature integer only.
impl BitOrSizeOnGpu<FheUint<FheUint256Id>> for U256
integer only.Source§fn get_bitor_size_on_gpu(&self, rhs: FheUint256) -> u64
fn get_bitor_size_on_gpu(&self, rhs: FheUint256) -> u64
gpu only.Source§impl BitOrSizeOnGpu<FheUint<FheUint2Id>> for u8
Available on crate feature integer only.
impl BitOrSizeOnGpu<FheUint<FheUint2Id>> for u8
integer only.Source§fn get_bitor_size_on_gpu(&self, rhs: FheUint2) -> u64
fn get_bitor_size_on_gpu(&self, rhs: FheUint2) -> u64
gpu only.Source§impl BitOrSizeOnGpu<FheUint<FheUint32Id>> for u32
Available on crate feature integer only.
impl BitOrSizeOnGpu<FheUint<FheUint32Id>> for u32
integer only.Source§fn get_bitor_size_on_gpu(&self, rhs: FheUint32) -> u64
fn get_bitor_size_on_gpu(&self, rhs: FheUint32) -> u64
gpu only.Source§impl BitOrSizeOnGpu<FheUint<FheUint40Id>> for u64
Available on crate feature integer only.
impl BitOrSizeOnGpu<FheUint<FheUint40Id>> for u64
integer only.Source§fn get_bitor_size_on_gpu(&self, rhs: FheUint40) -> u64
fn get_bitor_size_on_gpu(&self, rhs: FheUint40) -> u64
gpu only.Source§impl BitOrSizeOnGpu<FheUint<FheUint48Id>> for u64
Available on crate feature integer only.
impl BitOrSizeOnGpu<FheUint<FheUint48Id>> for u64
integer only.Source§fn get_bitor_size_on_gpu(&self, rhs: FheUint48) -> u64
fn get_bitor_size_on_gpu(&self, rhs: FheUint48) -> u64
gpu only.Source§impl BitOrSizeOnGpu<FheUint<FheUint4Id>> for u8
Available on crate feature integer only.
impl BitOrSizeOnGpu<FheUint<FheUint4Id>> for u8
integer only.Source§fn get_bitor_size_on_gpu(&self, rhs: FheUint4) -> u64
fn get_bitor_size_on_gpu(&self, rhs: FheUint4) -> u64
gpu only.Source§impl BitOrSizeOnGpu<FheUint<FheUint512Id>> for U512
Available on crate feature integer only.
impl BitOrSizeOnGpu<FheUint<FheUint512Id>> for U512
integer only.Source§fn get_bitor_size_on_gpu(&self, rhs: FheUint512) -> u64
fn get_bitor_size_on_gpu(&self, rhs: FheUint512) -> u64
gpu only.Source§impl BitOrSizeOnGpu<FheUint<FheUint56Id>> for u64
Available on crate feature integer only.
impl BitOrSizeOnGpu<FheUint<FheUint56Id>> for u64
integer only.Source§fn get_bitor_size_on_gpu(&self, rhs: FheUint56) -> u64
fn get_bitor_size_on_gpu(&self, rhs: FheUint56) -> u64
gpu only.Source§impl BitOrSizeOnGpu<FheUint<FheUint64Id>> for u64
Available on crate feature integer only.
impl BitOrSizeOnGpu<FheUint<FheUint64Id>> for u64
integer only.Source§fn get_bitor_size_on_gpu(&self, rhs: FheUint64) -> u64
fn get_bitor_size_on_gpu(&self, rhs: FheUint64) -> u64
gpu only.Source§impl BitOrSizeOnGpu<FheUint<FheUint6Id>> for u8
Available on crate feature integer only.
impl BitOrSizeOnGpu<FheUint<FheUint6Id>> for u8
integer only.Source§fn get_bitor_size_on_gpu(&self, rhs: FheUint6) -> u64
fn get_bitor_size_on_gpu(&self, rhs: FheUint6) -> u64
gpu only.Source§impl BitOrSizeOnGpu<FheUint<FheUint72Id>> for u128
Available on crate feature integer only.
impl BitOrSizeOnGpu<FheUint<FheUint72Id>> for u128
integer only.Source§fn get_bitor_size_on_gpu(&self, rhs: FheUint72) -> u64
fn get_bitor_size_on_gpu(&self, rhs: FheUint72) -> u64
gpu only.Source§impl BitOrSizeOnGpu<FheUint<FheUint80Id>> for u128
Available on crate feature integer only.
impl BitOrSizeOnGpu<FheUint<FheUint80Id>> for u128
integer only.Source§fn get_bitor_size_on_gpu(&self, rhs: FheUint80) -> u64
fn get_bitor_size_on_gpu(&self, rhs: FheUint80) -> u64
gpu only.Source§impl BitOrSizeOnGpu<FheUint<FheUint88Id>> for u128
Available on crate feature integer only.
impl BitOrSizeOnGpu<FheUint<FheUint88Id>> for u128
integer only.Source§fn get_bitor_size_on_gpu(&self, rhs: FheUint88) -> u64
fn get_bitor_size_on_gpu(&self, rhs: FheUint88) -> u64
gpu only.Source§impl BitOrSizeOnGpu<FheUint<FheUint8Id>> for u8
Available on crate feature integer only.
impl BitOrSizeOnGpu<FheUint<FheUint8Id>> for u8
integer only.Source§fn get_bitor_size_on_gpu(&self, rhs: FheUint8) -> u64
fn get_bitor_size_on_gpu(&self, rhs: FheUint8) -> u64
gpu only.Source§impl BitOrSizeOnGpu<FheUint<FheUint96Id>> for u128
Available on crate feature integer only.
impl BitOrSizeOnGpu<FheUint<FheUint96Id>> for u128
integer only.Source§fn get_bitor_size_on_gpu(&self, rhs: FheUint96) -> u64
fn get_bitor_size_on_gpu(&self, rhs: FheUint96) -> u64
gpu only.Source§impl<Id, I> BitOrSizeOnGpu<I> for FheUint<Id>
Available on crate features integer and gpu only.
impl<Id, I> BitOrSizeOnGpu<I> for FheUint<Id>
integer and gpu only.fn get_bitor_size_on_gpu(&self, rhs: I) -> u64
Source§impl<Id, Clear> BitSlice<Clear> for &FheUint<Id>
Available on crate feature integer only.
impl<Id, Clear> BitSlice<Clear> for &FheUint<Id>
integer only.Source§fn bitslice<R>(self, range: R) -> Result<Self::Output, InvalidRangeError>where
R: RangeBounds<Clear>,
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);type Output = FheUint<Id>
Source§impl<Id, Clear> BitSlice<Clear> for FheUint<Id>
Available on crate feature integer only.
impl<Id, Clear> BitSlice<Clear> for FheUint<Id>
integer only.Source§fn bitslice<R>(self, range: R) -> Result<Self::Output, InvalidRangeError>where
R: RangeBounds<Clear>,
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);type Output = FheUint<Id>
Source§impl<Id, B> BitXor<B> for &FheUint<Id>
Available on crate feature integer only.
impl<Id, B> BitXor<B> for &FheUint<Id>
integer only.Source§fn bitxor(self, rhs: B) -> Self::Output
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§impl<Id, I> BitXorAssign<I> for FheUint<Id>
Available on crate feature integer only.
impl<Id, I> BitXorAssign<I> for FheUint<Id>
integer only.Source§fn bitxor_assign(&mut self, rhs: I)
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<FheUint1024Id>> for U1024
Available on crate feature integer only.
impl BitXorSizeOnGpu<&FheUint<FheUint1024Id>> for U1024
integer only.Source§fn get_bitxor_size_on_gpu(&self, rhs: &FheUint1024) -> u64
fn get_bitxor_size_on_gpu(&self, rhs: &FheUint1024) -> u64
gpu only.Source§impl BitXorSizeOnGpu<&FheUint<FheUint104Id>> for u128
Available on crate feature integer only.
impl BitXorSizeOnGpu<&FheUint<FheUint104Id>> for u128
integer only.Source§fn get_bitxor_size_on_gpu(&self, rhs: &FheUint104) -> u64
fn get_bitxor_size_on_gpu(&self, rhs: &FheUint104) -> u64
gpu only.Source§impl BitXorSizeOnGpu<&FheUint<FheUint10Id>> for u16
Available on crate feature integer only.
impl BitXorSizeOnGpu<&FheUint<FheUint10Id>> for u16
integer only.Source§fn get_bitxor_size_on_gpu(&self, rhs: &FheUint10) -> u64
fn get_bitxor_size_on_gpu(&self, rhs: &FheUint10) -> u64
gpu only.Source§impl BitXorSizeOnGpu<&FheUint<FheUint112Id>> for u128
Available on crate feature integer only.
impl BitXorSizeOnGpu<&FheUint<FheUint112Id>> for u128
integer only.Source§fn get_bitxor_size_on_gpu(&self, rhs: &FheUint112) -> u64
fn get_bitxor_size_on_gpu(&self, rhs: &FheUint112) -> u64
gpu only.Source§impl BitXorSizeOnGpu<&FheUint<FheUint120Id>> for u128
Available on crate feature integer only.
impl BitXorSizeOnGpu<&FheUint<FheUint120Id>> for u128
integer only.Source§fn get_bitxor_size_on_gpu(&self, rhs: &FheUint120) -> u64
fn get_bitxor_size_on_gpu(&self, rhs: &FheUint120) -> u64
gpu only.Source§impl BitXorSizeOnGpu<&FheUint<FheUint128Id>> for u128
Available on crate feature integer only.
impl BitXorSizeOnGpu<&FheUint<FheUint128Id>> for u128
integer only.Source§fn get_bitxor_size_on_gpu(&self, rhs: &FheUint128) -> u64
fn get_bitxor_size_on_gpu(&self, rhs: &FheUint128) -> u64
gpu only.Source§impl BitXorSizeOnGpu<&FheUint<FheUint12Id>> for u16
Available on crate feature integer only.
impl BitXorSizeOnGpu<&FheUint<FheUint12Id>> for u16
integer only.Source§fn get_bitxor_size_on_gpu(&self, rhs: &FheUint12) -> u64
fn get_bitxor_size_on_gpu(&self, rhs: &FheUint12) -> u64
gpu only.Source§impl BitXorSizeOnGpu<&FheUint<FheUint136Id>> for U256
Available on crate feature integer only.
impl BitXorSizeOnGpu<&FheUint<FheUint136Id>> for U256
integer only.Source§fn get_bitxor_size_on_gpu(&self, rhs: &FheUint136) -> u64
fn get_bitxor_size_on_gpu(&self, rhs: &FheUint136) -> u64
gpu only.Source§impl BitXorSizeOnGpu<&FheUint<FheUint144Id>> for U256
Available on crate feature integer only.
impl BitXorSizeOnGpu<&FheUint<FheUint144Id>> for U256
integer only.Source§fn get_bitxor_size_on_gpu(&self, rhs: &FheUint144) -> u64
fn get_bitxor_size_on_gpu(&self, rhs: &FheUint144) -> u64
gpu only.Source§impl BitXorSizeOnGpu<&FheUint<FheUint14Id>> for u16
Available on crate feature integer only.
impl BitXorSizeOnGpu<&FheUint<FheUint14Id>> for u16
integer only.Source§fn get_bitxor_size_on_gpu(&self, rhs: &FheUint14) -> u64
fn get_bitxor_size_on_gpu(&self, rhs: &FheUint14) -> u64
gpu only.Source§impl BitXorSizeOnGpu<&FheUint<FheUint152Id>> for U256
Available on crate feature integer only.
impl BitXorSizeOnGpu<&FheUint<FheUint152Id>> for U256
integer only.Source§fn get_bitxor_size_on_gpu(&self, rhs: &FheUint152) -> u64
fn get_bitxor_size_on_gpu(&self, rhs: &FheUint152) -> u64
gpu only.Source§impl BitXorSizeOnGpu<&FheUint<FheUint160Id>> for U256
Available on crate feature integer only.
impl BitXorSizeOnGpu<&FheUint<FheUint160Id>> for U256
integer only.Source§fn get_bitxor_size_on_gpu(&self, rhs: &FheUint160) -> u64
fn get_bitxor_size_on_gpu(&self, rhs: &FheUint160) -> u64
gpu only.Source§impl BitXorSizeOnGpu<&FheUint<FheUint168Id>> for U256
Available on crate feature integer only.
impl BitXorSizeOnGpu<&FheUint<FheUint168Id>> for U256
integer only.Source§fn get_bitxor_size_on_gpu(&self, rhs: &FheUint168) -> u64
fn get_bitxor_size_on_gpu(&self, rhs: &FheUint168) -> u64
gpu only.Source§impl BitXorSizeOnGpu<&FheUint<FheUint16Id>> for u16
Available on crate feature integer only.
impl BitXorSizeOnGpu<&FheUint<FheUint16Id>> for u16
integer only.Source§fn get_bitxor_size_on_gpu(&self, rhs: &FheUint16) -> u64
fn get_bitxor_size_on_gpu(&self, rhs: &FheUint16) -> u64
gpu only.Source§impl BitXorSizeOnGpu<&FheUint<FheUint176Id>> for U256
Available on crate feature integer only.
impl BitXorSizeOnGpu<&FheUint<FheUint176Id>> for U256
integer only.Source§fn get_bitxor_size_on_gpu(&self, rhs: &FheUint176) -> u64
fn get_bitxor_size_on_gpu(&self, rhs: &FheUint176) -> u64
gpu only.Source§impl BitXorSizeOnGpu<&FheUint<FheUint184Id>> for U256
Available on crate feature integer only.
impl BitXorSizeOnGpu<&FheUint<FheUint184Id>> for U256
integer only.Source§fn get_bitxor_size_on_gpu(&self, rhs: &FheUint184) -> u64
fn get_bitxor_size_on_gpu(&self, rhs: &FheUint184) -> u64
gpu only.Source§impl BitXorSizeOnGpu<&FheUint<FheUint192Id>> for U256
Available on crate feature integer only.
impl BitXorSizeOnGpu<&FheUint<FheUint192Id>> for U256
integer only.Source§fn get_bitxor_size_on_gpu(&self, rhs: &FheUint192) -> u64
fn get_bitxor_size_on_gpu(&self, rhs: &FheUint192) -> u64
gpu only.Source§impl BitXorSizeOnGpu<&FheUint<FheUint200Id>> for U256
Available on crate feature integer only.
impl BitXorSizeOnGpu<&FheUint<FheUint200Id>> for U256
integer only.Source§fn get_bitxor_size_on_gpu(&self, rhs: &FheUint200) -> u64
fn get_bitxor_size_on_gpu(&self, rhs: &FheUint200) -> u64
gpu only.Source§impl BitXorSizeOnGpu<&FheUint<FheUint2048Id>> for U2048
Available on crate feature integer only.
impl BitXorSizeOnGpu<&FheUint<FheUint2048Id>> for U2048
integer only.Source§fn get_bitxor_size_on_gpu(&self, rhs: &FheUint2048) -> u64
fn get_bitxor_size_on_gpu(&self, rhs: &FheUint2048) -> u64
gpu only.Source§impl BitXorSizeOnGpu<&FheUint<FheUint208Id>> for U256
Available on crate feature integer only.
impl BitXorSizeOnGpu<&FheUint<FheUint208Id>> for U256
integer only.Source§fn get_bitxor_size_on_gpu(&self, rhs: &FheUint208) -> u64
fn get_bitxor_size_on_gpu(&self, rhs: &FheUint208) -> u64
gpu only.Source§impl BitXorSizeOnGpu<&FheUint<FheUint216Id>> for U256
Available on crate feature integer only.
impl BitXorSizeOnGpu<&FheUint<FheUint216Id>> for U256
integer only.Source§fn get_bitxor_size_on_gpu(&self, rhs: &FheUint216) -> u64
fn get_bitxor_size_on_gpu(&self, rhs: &FheUint216) -> u64
gpu only.Source§impl BitXorSizeOnGpu<&FheUint<FheUint224Id>> for U256
Available on crate feature integer only.
impl BitXorSizeOnGpu<&FheUint<FheUint224Id>> for U256
integer only.Source§fn get_bitxor_size_on_gpu(&self, rhs: &FheUint224) -> u64
fn get_bitxor_size_on_gpu(&self, rhs: &FheUint224) -> u64
gpu only.Source§impl BitXorSizeOnGpu<&FheUint<FheUint232Id>> for U256
Available on crate feature integer only.
impl BitXorSizeOnGpu<&FheUint<FheUint232Id>> for U256
integer only.Source§fn get_bitxor_size_on_gpu(&self, rhs: &FheUint232) -> u64
fn get_bitxor_size_on_gpu(&self, rhs: &FheUint232) -> u64
gpu only.Source§impl BitXorSizeOnGpu<&FheUint<FheUint240Id>> for U256
Available on crate feature integer only.
impl BitXorSizeOnGpu<&FheUint<FheUint240Id>> for U256
integer only.Source§fn get_bitxor_size_on_gpu(&self, rhs: &FheUint240) -> u64
fn get_bitxor_size_on_gpu(&self, rhs: &FheUint240) -> u64
gpu only.Source§impl BitXorSizeOnGpu<&FheUint<FheUint248Id>> for U256
Available on crate feature integer only.
impl BitXorSizeOnGpu<&FheUint<FheUint248Id>> for U256
integer only.Source§fn get_bitxor_size_on_gpu(&self, rhs: &FheUint248) -> u64
fn get_bitxor_size_on_gpu(&self, rhs: &FheUint248) -> u64
gpu only.Source§impl BitXorSizeOnGpu<&FheUint<FheUint24Id>> for u32
Available on crate feature integer only.
impl BitXorSizeOnGpu<&FheUint<FheUint24Id>> for u32
integer only.Source§fn get_bitxor_size_on_gpu(&self, rhs: &FheUint24) -> u64
fn get_bitxor_size_on_gpu(&self, rhs: &FheUint24) -> u64
gpu only.Source§impl BitXorSizeOnGpu<&FheUint<FheUint256Id>> for U256
Available on crate feature integer only.
impl BitXorSizeOnGpu<&FheUint<FheUint256Id>> for U256
integer only.Source§fn get_bitxor_size_on_gpu(&self, rhs: &FheUint256) -> u64
fn get_bitxor_size_on_gpu(&self, rhs: &FheUint256) -> u64
gpu only.Source§impl BitXorSizeOnGpu<&FheUint<FheUint2Id>> for u8
Available on crate feature integer only.
impl BitXorSizeOnGpu<&FheUint<FheUint2Id>> for u8
integer only.Source§fn get_bitxor_size_on_gpu(&self, rhs: &FheUint2) -> u64
fn get_bitxor_size_on_gpu(&self, rhs: &FheUint2) -> u64
gpu only.Source§impl BitXorSizeOnGpu<&FheUint<FheUint32Id>> for u32
Available on crate feature integer only.
impl BitXorSizeOnGpu<&FheUint<FheUint32Id>> for u32
integer only.Source§fn get_bitxor_size_on_gpu(&self, rhs: &FheUint32) -> u64
fn get_bitxor_size_on_gpu(&self, rhs: &FheUint32) -> u64
gpu only.Source§impl BitXorSizeOnGpu<&FheUint<FheUint40Id>> for u64
Available on crate feature integer only.
impl BitXorSizeOnGpu<&FheUint<FheUint40Id>> for u64
integer only.Source§fn get_bitxor_size_on_gpu(&self, rhs: &FheUint40) -> u64
fn get_bitxor_size_on_gpu(&self, rhs: &FheUint40) -> u64
gpu only.Source§impl BitXorSizeOnGpu<&FheUint<FheUint48Id>> for u64
Available on crate feature integer only.
impl BitXorSizeOnGpu<&FheUint<FheUint48Id>> for u64
integer only.Source§fn get_bitxor_size_on_gpu(&self, rhs: &FheUint48) -> u64
fn get_bitxor_size_on_gpu(&self, rhs: &FheUint48) -> u64
gpu only.Source§impl BitXorSizeOnGpu<&FheUint<FheUint4Id>> for u8
Available on crate feature integer only.
impl BitXorSizeOnGpu<&FheUint<FheUint4Id>> for u8
integer only.Source§fn get_bitxor_size_on_gpu(&self, rhs: &FheUint4) -> u64
fn get_bitxor_size_on_gpu(&self, rhs: &FheUint4) -> u64
gpu only.Source§impl BitXorSizeOnGpu<&FheUint<FheUint512Id>> for U512
Available on crate feature integer only.
impl BitXorSizeOnGpu<&FheUint<FheUint512Id>> for U512
integer only.Source§fn get_bitxor_size_on_gpu(&self, rhs: &FheUint512) -> u64
fn get_bitxor_size_on_gpu(&self, rhs: &FheUint512) -> u64
gpu only.Source§impl BitXorSizeOnGpu<&FheUint<FheUint56Id>> for u64
Available on crate feature integer only.
impl BitXorSizeOnGpu<&FheUint<FheUint56Id>> for u64
integer only.Source§fn get_bitxor_size_on_gpu(&self, rhs: &FheUint56) -> u64
fn get_bitxor_size_on_gpu(&self, rhs: &FheUint56) -> u64
gpu only.Source§impl BitXorSizeOnGpu<&FheUint<FheUint64Id>> for u64
Available on crate feature integer only.
impl BitXorSizeOnGpu<&FheUint<FheUint64Id>> for u64
integer only.Source§fn get_bitxor_size_on_gpu(&self, rhs: &FheUint64) -> u64
fn get_bitxor_size_on_gpu(&self, rhs: &FheUint64) -> u64
gpu only.Source§impl BitXorSizeOnGpu<&FheUint<FheUint6Id>> for u8
Available on crate feature integer only.
impl BitXorSizeOnGpu<&FheUint<FheUint6Id>> for u8
integer only.Source§fn get_bitxor_size_on_gpu(&self, rhs: &FheUint6) -> u64
fn get_bitxor_size_on_gpu(&self, rhs: &FheUint6) -> u64
gpu only.Source§impl BitXorSizeOnGpu<&FheUint<FheUint72Id>> for u128
Available on crate feature integer only.
impl BitXorSizeOnGpu<&FheUint<FheUint72Id>> for u128
integer only.Source§fn get_bitxor_size_on_gpu(&self, rhs: &FheUint72) -> u64
fn get_bitxor_size_on_gpu(&self, rhs: &FheUint72) -> u64
gpu only.Source§impl BitXorSizeOnGpu<&FheUint<FheUint80Id>> for u128
Available on crate feature integer only.
impl BitXorSizeOnGpu<&FheUint<FheUint80Id>> for u128
integer only.Source§fn get_bitxor_size_on_gpu(&self, rhs: &FheUint80) -> u64
fn get_bitxor_size_on_gpu(&self, rhs: &FheUint80) -> u64
gpu only.Source§impl BitXorSizeOnGpu<&FheUint<FheUint88Id>> for u128
Available on crate feature integer only.
impl BitXorSizeOnGpu<&FheUint<FheUint88Id>> for u128
integer only.Source§fn get_bitxor_size_on_gpu(&self, rhs: &FheUint88) -> u64
fn get_bitxor_size_on_gpu(&self, rhs: &FheUint88) -> u64
gpu only.Source§impl BitXorSizeOnGpu<&FheUint<FheUint8Id>> for u8
Available on crate feature integer only.
impl BitXorSizeOnGpu<&FheUint<FheUint8Id>> for u8
integer only.Source§fn get_bitxor_size_on_gpu(&self, rhs: &FheUint8) -> u64
fn get_bitxor_size_on_gpu(&self, rhs: &FheUint8) -> u64
gpu only.Source§impl BitXorSizeOnGpu<&FheUint<FheUint96Id>> for u128
Available on crate feature integer only.
impl BitXorSizeOnGpu<&FheUint<FheUint96Id>> for u128
integer only.Source§fn get_bitxor_size_on_gpu(&self, rhs: &FheUint96) -> u64
fn get_bitxor_size_on_gpu(&self, rhs: &FheUint96) -> u64
gpu only.Source§impl BitXorSizeOnGpu<FheUint<FheUint1024Id>> for U1024
Available on crate feature integer only.
impl BitXorSizeOnGpu<FheUint<FheUint1024Id>> for U1024
integer only.Source§fn get_bitxor_size_on_gpu(&self, rhs: FheUint1024) -> u64
fn get_bitxor_size_on_gpu(&self, rhs: FheUint1024) -> u64
gpu only.Source§impl BitXorSizeOnGpu<FheUint<FheUint104Id>> for u128
Available on crate feature integer only.
impl BitXorSizeOnGpu<FheUint<FheUint104Id>> for u128
integer only.Source§fn get_bitxor_size_on_gpu(&self, rhs: FheUint104) -> u64
fn get_bitxor_size_on_gpu(&self, rhs: FheUint104) -> u64
gpu only.Source§impl BitXorSizeOnGpu<FheUint<FheUint10Id>> for u16
Available on crate feature integer only.
impl BitXorSizeOnGpu<FheUint<FheUint10Id>> for u16
integer only.Source§fn get_bitxor_size_on_gpu(&self, rhs: FheUint10) -> u64
fn get_bitxor_size_on_gpu(&self, rhs: FheUint10) -> u64
gpu only.Source§impl BitXorSizeOnGpu<FheUint<FheUint112Id>> for u128
Available on crate feature integer only.
impl BitXorSizeOnGpu<FheUint<FheUint112Id>> for u128
integer only.Source§fn get_bitxor_size_on_gpu(&self, rhs: FheUint112) -> u64
fn get_bitxor_size_on_gpu(&self, rhs: FheUint112) -> u64
gpu only.Source§impl BitXorSizeOnGpu<FheUint<FheUint120Id>> for u128
Available on crate feature integer only.
impl BitXorSizeOnGpu<FheUint<FheUint120Id>> for u128
integer only.Source§fn get_bitxor_size_on_gpu(&self, rhs: FheUint120) -> u64
fn get_bitxor_size_on_gpu(&self, rhs: FheUint120) -> u64
gpu only.Source§impl BitXorSizeOnGpu<FheUint<FheUint128Id>> for u128
Available on crate feature integer only.
impl BitXorSizeOnGpu<FheUint<FheUint128Id>> for u128
integer only.Source§fn get_bitxor_size_on_gpu(&self, rhs: FheUint128) -> u64
fn get_bitxor_size_on_gpu(&self, rhs: FheUint128) -> u64
gpu only.Source§impl BitXorSizeOnGpu<FheUint<FheUint12Id>> for u16
Available on crate feature integer only.
impl BitXorSizeOnGpu<FheUint<FheUint12Id>> for u16
integer only.Source§fn get_bitxor_size_on_gpu(&self, rhs: FheUint12) -> u64
fn get_bitxor_size_on_gpu(&self, rhs: FheUint12) -> u64
gpu only.Source§impl BitXorSizeOnGpu<FheUint<FheUint136Id>> for U256
Available on crate feature integer only.
impl BitXorSizeOnGpu<FheUint<FheUint136Id>> for U256
integer only.Source§fn get_bitxor_size_on_gpu(&self, rhs: FheUint136) -> u64
fn get_bitxor_size_on_gpu(&self, rhs: FheUint136) -> u64
gpu only.Source§impl BitXorSizeOnGpu<FheUint<FheUint144Id>> for U256
Available on crate feature integer only.
impl BitXorSizeOnGpu<FheUint<FheUint144Id>> for U256
integer only.Source§fn get_bitxor_size_on_gpu(&self, rhs: FheUint144) -> u64
fn get_bitxor_size_on_gpu(&self, rhs: FheUint144) -> u64
gpu only.Source§impl BitXorSizeOnGpu<FheUint<FheUint14Id>> for u16
Available on crate feature integer only.
impl BitXorSizeOnGpu<FheUint<FheUint14Id>> for u16
integer only.Source§fn get_bitxor_size_on_gpu(&self, rhs: FheUint14) -> u64
fn get_bitxor_size_on_gpu(&self, rhs: FheUint14) -> u64
gpu only.Source§impl BitXorSizeOnGpu<FheUint<FheUint152Id>> for U256
Available on crate feature integer only.
impl BitXorSizeOnGpu<FheUint<FheUint152Id>> for U256
integer only.Source§fn get_bitxor_size_on_gpu(&self, rhs: FheUint152) -> u64
fn get_bitxor_size_on_gpu(&self, rhs: FheUint152) -> u64
gpu only.Source§impl BitXorSizeOnGpu<FheUint<FheUint160Id>> for U256
Available on crate feature integer only.
impl BitXorSizeOnGpu<FheUint<FheUint160Id>> for U256
integer only.Source§fn get_bitxor_size_on_gpu(&self, rhs: FheUint160) -> u64
fn get_bitxor_size_on_gpu(&self, rhs: FheUint160) -> u64
gpu only.Source§impl BitXorSizeOnGpu<FheUint<FheUint168Id>> for U256
Available on crate feature integer only.
impl BitXorSizeOnGpu<FheUint<FheUint168Id>> for U256
integer only.Source§fn get_bitxor_size_on_gpu(&self, rhs: FheUint168) -> u64
fn get_bitxor_size_on_gpu(&self, rhs: FheUint168) -> u64
gpu only.Source§impl BitXorSizeOnGpu<FheUint<FheUint16Id>> for u16
Available on crate feature integer only.
impl BitXorSizeOnGpu<FheUint<FheUint16Id>> for u16
integer only.Source§fn get_bitxor_size_on_gpu(&self, rhs: FheUint16) -> u64
fn get_bitxor_size_on_gpu(&self, rhs: FheUint16) -> u64
gpu only.Source§impl BitXorSizeOnGpu<FheUint<FheUint176Id>> for U256
Available on crate feature integer only.
impl BitXorSizeOnGpu<FheUint<FheUint176Id>> for U256
integer only.Source§fn get_bitxor_size_on_gpu(&self, rhs: FheUint176) -> u64
fn get_bitxor_size_on_gpu(&self, rhs: FheUint176) -> u64
gpu only.Source§impl BitXorSizeOnGpu<FheUint<FheUint184Id>> for U256
Available on crate feature integer only.
impl BitXorSizeOnGpu<FheUint<FheUint184Id>> for U256
integer only.Source§fn get_bitxor_size_on_gpu(&self, rhs: FheUint184) -> u64
fn get_bitxor_size_on_gpu(&self, rhs: FheUint184) -> u64
gpu only.Source§impl BitXorSizeOnGpu<FheUint<FheUint192Id>> for U256
Available on crate feature integer only.
impl BitXorSizeOnGpu<FheUint<FheUint192Id>> for U256
integer only.Source§fn get_bitxor_size_on_gpu(&self, rhs: FheUint192) -> u64
fn get_bitxor_size_on_gpu(&self, rhs: FheUint192) -> u64
gpu only.Source§impl BitXorSizeOnGpu<FheUint<FheUint200Id>> for U256
Available on crate feature integer only.
impl BitXorSizeOnGpu<FheUint<FheUint200Id>> for U256
integer only.Source§fn get_bitxor_size_on_gpu(&self, rhs: FheUint200) -> u64
fn get_bitxor_size_on_gpu(&self, rhs: FheUint200) -> u64
gpu only.Source§impl BitXorSizeOnGpu<FheUint<FheUint2048Id>> for U2048
Available on crate feature integer only.
impl BitXorSizeOnGpu<FheUint<FheUint2048Id>> for U2048
integer only.Source§fn get_bitxor_size_on_gpu(&self, rhs: FheUint2048) -> u64
fn get_bitxor_size_on_gpu(&self, rhs: FheUint2048) -> u64
gpu only.Source§impl BitXorSizeOnGpu<FheUint<FheUint208Id>> for U256
Available on crate feature integer only.
impl BitXorSizeOnGpu<FheUint<FheUint208Id>> for U256
integer only.Source§fn get_bitxor_size_on_gpu(&self, rhs: FheUint208) -> u64
fn get_bitxor_size_on_gpu(&self, rhs: FheUint208) -> u64
gpu only.Source§impl BitXorSizeOnGpu<FheUint<FheUint216Id>> for U256
Available on crate feature integer only.
impl BitXorSizeOnGpu<FheUint<FheUint216Id>> for U256
integer only.Source§fn get_bitxor_size_on_gpu(&self, rhs: FheUint216) -> u64
fn get_bitxor_size_on_gpu(&self, rhs: FheUint216) -> u64
gpu only.Source§impl BitXorSizeOnGpu<FheUint<FheUint224Id>> for U256
Available on crate feature integer only.
impl BitXorSizeOnGpu<FheUint<FheUint224Id>> for U256
integer only.Source§fn get_bitxor_size_on_gpu(&self, rhs: FheUint224) -> u64
fn get_bitxor_size_on_gpu(&self, rhs: FheUint224) -> u64
gpu only.Source§impl BitXorSizeOnGpu<FheUint<FheUint232Id>> for U256
Available on crate feature integer only.
impl BitXorSizeOnGpu<FheUint<FheUint232Id>> for U256
integer only.Source§fn get_bitxor_size_on_gpu(&self, rhs: FheUint232) -> u64
fn get_bitxor_size_on_gpu(&self, rhs: FheUint232) -> u64
gpu only.Source§impl BitXorSizeOnGpu<FheUint<FheUint240Id>> for U256
Available on crate feature integer only.
impl BitXorSizeOnGpu<FheUint<FheUint240Id>> for U256
integer only.Source§fn get_bitxor_size_on_gpu(&self, rhs: FheUint240) -> u64
fn get_bitxor_size_on_gpu(&self, rhs: FheUint240) -> u64
gpu only.Source§impl BitXorSizeOnGpu<FheUint<FheUint248Id>> for U256
Available on crate feature integer only.
impl BitXorSizeOnGpu<FheUint<FheUint248Id>> for U256
integer only.Source§fn get_bitxor_size_on_gpu(&self, rhs: FheUint248) -> u64
fn get_bitxor_size_on_gpu(&self, rhs: FheUint248) -> u64
gpu only.Source§impl BitXorSizeOnGpu<FheUint<FheUint24Id>> for u32
Available on crate feature integer only.
impl BitXorSizeOnGpu<FheUint<FheUint24Id>> for u32
integer only.Source§fn get_bitxor_size_on_gpu(&self, rhs: FheUint24) -> u64
fn get_bitxor_size_on_gpu(&self, rhs: FheUint24) -> u64
gpu only.Source§impl BitXorSizeOnGpu<FheUint<FheUint256Id>> for U256
Available on crate feature integer only.
impl BitXorSizeOnGpu<FheUint<FheUint256Id>> for U256
integer only.Source§fn get_bitxor_size_on_gpu(&self, rhs: FheUint256) -> u64
fn get_bitxor_size_on_gpu(&self, rhs: FheUint256) -> u64
gpu only.Source§impl BitXorSizeOnGpu<FheUint<FheUint2Id>> for u8
Available on crate feature integer only.
impl BitXorSizeOnGpu<FheUint<FheUint2Id>> for u8
integer only.Source§fn get_bitxor_size_on_gpu(&self, rhs: FheUint2) -> u64
fn get_bitxor_size_on_gpu(&self, rhs: FheUint2) -> u64
gpu only.Source§impl BitXorSizeOnGpu<FheUint<FheUint32Id>> for u32
Available on crate feature integer only.
impl BitXorSizeOnGpu<FheUint<FheUint32Id>> for u32
integer only.Source§fn get_bitxor_size_on_gpu(&self, rhs: FheUint32) -> u64
fn get_bitxor_size_on_gpu(&self, rhs: FheUint32) -> u64
gpu only.Source§impl BitXorSizeOnGpu<FheUint<FheUint40Id>> for u64
Available on crate feature integer only.
impl BitXorSizeOnGpu<FheUint<FheUint40Id>> for u64
integer only.Source§fn get_bitxor_size_on_gpu(&self, rhs: FheUint40) -> u64
fn get_bitxor_size_on_gpu(&self, rhs: FheUint40) -> u64
gpu only.Source§impl BitXorSizeOnGpu<FheUint<FheUint48Id>> for u64
Available on crate feature integer only.
impl BitXorSizeOnGpu<FheUint<FheUint48Id>> for u64
integer only.Source§fn get_bitxor_size_on_gpu(&self, rhs: FheUint48) -> u64
fn get_bitxor_size_on_gpu(&self, rhs: FheUint48) -> u64
gpu only.Source§impl BitXorSizeOnGpu<FheUint<FheUint4Id>> for u8
Available on crate feature integer only.
impl BitXorSizeOnGpu<FheUint<FheUint4Id>> for u8
integer only.Source§fn get_bitxor_size_on_gpu(&self, rhs: FheUint4) -> u64
fn get_bitxor_size_on_gpu(&self, rhs: FheUint4) -> u64
gpu only.Source§impl BitXorSizeOnGpu<FheUint<FheUint512Id>> for U512
Available on crate feature integer only.
impl BitXorSizeOnGpu<FheUint<FheUint512Id>> for U512
integer only.Source§fn get_bitxor_size_on_gpu(&self, rhs: FheUint512) -> u64
fn get_bitxor_size_on_gpu(&self, rhs: FheUint512) -> u64
gpu only.Source§impl BitXorSizeOnGpu<FheUint<FheUint56Id>> for u64
Available on crate feature integer only.
impl BitXorSizeOnGpu<FheUint<FheUint56Id>> for u64
integer only.Source§fn get_bitxor_size_on_gpu(&self, rhs: FheUint56) -> u64
fn get_bitxor_size_on_gpu(&self, rhs: FheUint56) -> u64
gpu only.Source§impl BitXorSizeOnGpu<FheUint<FheUint64Id>> for u64
Available on crate feature integer only.
impl BitXorSizeOnGpu<FheUint<FheUint64Id>> for u64
integer only.Source§fn get_bitxor_size_on_gpu(&self, rhs: FheUint64) -> u64
fn get_bitxor_size_on_gpu(&self, rhs: FheUint64) -> u64
gpu only.Source§impl BitXorSizeOnGpu<FheUint<FheUint6Id>> for u8
Available on crate feature integer only.
impl BitXorSizeOnGpu<FheUint<FheUint6Id>> for u8
integer only.Source§fn get_bitxor_size_on_gpu(&self, rhs: FheUint6) -> u64
fn get_bitxor_size_on_gpu(&self, rhs: FheUint6) -> u64
gpu only.Source§impl BitXorSizeOnGpu<FheUint<FheUint72Id>> for u128
Available on crate feature integer only.
impl BitXorSizeOnGpu<FheUint<FheUint72Id>> for u128
integer only.Source§fn get_bitxor_size_on_gpu(&self, rhs: FheUint72) -> u64
fn get_bitxor_size_on_gpu(&self, rhs: FheUint72) -> u64
gpu only.Source§impl BitXorSizeOnGpu<FheUint<FheUint80Id>> for u128
Available on crate feature integer only.
impl BitXorSizeOnGpu<FheUint<FheUint80Id>> for u128
integer only.Source§fn get_bitxor_size_on_gpu(&self, rhs: FheUint80) -> u64
fn get_bitxor_size_on_gpu(&self, rhs: FheUint80) -> u64
gpu only.Source§impl BitXorSizeOnGpu<FheUint<FheUint88Id>> for u128
Available on crate feature integer only.
impl BitXorSizeOnGpu<FheUint<FheUint88Id>> for u128
integer only.Source§fn get_bitxor_size_on_gpu(&self, rhs: FheUint88) -> u64
fn get_bitxor_size_on_gpu(&self, rhs: FheUint88) -> u64
gpu only.Source§impl BitXorSizeOnGpu<FheUint<FheUint8Id>> for u8
Available on crate feature integer only.
impl BitXorSizeOnGpu<FheUint<FheUint8Id>> for u8
integer only.Source§fn get_bitxor_size_on_gpu(&self, rhs: FheUint8) -> u64
fn get_bitxor_size_on_gpu(&self, rhs: FheUint8) -> u64
gpu only.Source§impl BitXorSizeOnGpu<FheUint<FheUint96Id>> for u128
Available on crate feature integer only.
impl BitXorSizeOnGpu<FheUint<FheUint96Id>> for u128
integer only.Source§fn get_bitxor_size_on_gpu(&self, rhs: FheUint96) -> u64
fn get_bitxor_size_on_gpu(&self, rhs: FheUint96) -> u64
gpu only.Source§impl<Id, I> BitXorSizeOnGpu<I> for FheUint<Id>
Available on crate features integer and gpu only.
impl<Id, I> BitXorSizeOnGpu<I> for FheUint<Id>
integer and gpu only.fn get_bitxor_size_on_gpu(&self, rhs: I) -> u64
Source§impl<Id> CastFrom<FheBool> for FheUint<Id>where
Id: FheUintId,
Available on crate feature integer only.
impl<Id> CastFrom<FheBool> for FheUint<Id>where
Id: FheUintId,
integer only.Source§fn cast_from(input: FheBool) -> Self
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>
Available on crate feature integer only.
impl<FromId, IntoId> CastFrom<FheInt<FromId>> for FheUint<IntoId>
integer only.Source§fn cast_from(input: FheInt<FromId>) -> Self
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>
Available on crate feature integer only.
impl<FromId, IntoId> CastFrom<FheUint<FromId>> for FheInt<IntoId>
integer only.Source§fn cast_from(input: FheUint<FromId>) -> Self
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>
Available on crate feature integer only.
impl<FromId, IntoId> CastFrom<FheUint<FromId>> for FheUint<IntoId>
integer only.Source§fn cast_from(input: FheUint<FromId>) -> Self
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: FheUintId> CudaCompressible for FheUint<Id>
Available on crate features gpu and integer only.
impl<Id: FheUintId> CudaCompressible for FheUint<Id>
gpu and integer only.fn compress_into( self, messages: &mut Vec<CudaRadixCiphertext>, streams: &CudaStreams, ) -> Option<DataKind>
Source§impl<Id: FheUintId> CudaExpandable for FheUint<Id>
Available on crate features gpu and integer only.
impl<Id: FheUintId> CudaExpandable for FheUint<Id>
gpu and integer only.fn from_expanded_blocks( blocks: CudaRadixCiphertext, kind: DataKind, ) -> Result<Self>
Source§impl<'de, Id> Deserialize<'de> for FheUint<Id>where
Id: Deserialize<'de> + FheUintId,
Available on crate feature integer only.
impl<'de, Id> Deserialize<'de> for FheUint<Id>where
Id: Deserialize<'de> + FheUintId,
integer only.Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl<Id, B> Div<B> for &FheUint<Id>
Available on crate feature integer only.
impl<Id, B> Div<B> for &FheUint<Id>
integer only.Source§fn div(self, rhs: B) -> Self::Output
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§impl<Id, I> DivAssign<I> for FheUint<Id>
Available on crate feature integer only.
impl<Id, I> DivAssign<I> for FheUint<Id>
integer only.Source§fn div_assign(&mut self, rhs: I)
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<&FheUint<Id>> for FheUint<Id>where
Id: FheUintId,
Available on crate feature integer only.
impl<Id> DivRem<&FheUint<Id>> for FheUint<Id>where
Id: FheUintId,
integer only.Source§impl<Id> DivRem for &FheUint<Id>where
Id: FheUintId,
Available on crate feature integer only.
impl<Id> DivRem for &FheUint<Id>where
Id: FheUintId,
integer only.Source§fn div_rem(self, rhs: Self) -> Self::Output
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);type Output = (FheUint<Id>, FheUint<Id>)
Source§impl<Id> DivRemSizeOnGpu<&FheUint<Id>> for FheUint<Id>where
Id: FheUintId,
Available on crate features integer and gpu only.
impl<Id> DivRemSizeOnGpu<&FheUint<Id>> for FheUint<Id>where
Id: FheUintId,
integer and gpu only.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 features integer and gpu only.
impl<Id> DivSizeOnGpu<&FheUint<Id>> for FheUint<Id>where
Id: FheUintId,
integer and gpu only.fn get_div_size_on_gpu(&self, rhs: &Self) -> u64
Source§impl<Id: FheUintId> Expandable for FheUint<Id>
Available on crate feature integer only.
impl<Id: FheUintId> Expandable for FheUint<Id>
integer only.fn from_expanded_blocks(blocks: Vec<Ciphertext>, kind: DataKind) -> Result<Self>
Source§impl<Id, ClearType> FheDecrypt<ClearType> for FheUint<Id>
Available on crate feature integer only.
impl<Id, ClearType> FheDecrypt<ClearType> for FheUint<Id>
integer only.Source§fn decrypt(&self, key: &ClientKey) -> ClearType
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<&FheUint<Id>> for FheUint<Id>where
Id: FheUintId,
Available on crate feature integer only.
impl<Id> FheEq<&FheUint<Id>> for FheUint<Id>where
Id: FheUintId,
integer only.Source§fn eq(&self, rhs: &Self) -> FheBool
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
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>
Available on crate feature integer only.
impl<Id, Clear> FheEq<Clear> for FheUint<Id>
integer only.Source§fn eq(&self, rhs: Clear) -> FheBool
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
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 features integer and gpu only.
impl<Id> FheEqSizeOnGpu<&FheUint<Id>> for FheUint<Id>where
Id: FheUintId,
integer and gpu only.fn get_eq_size_on_gpu(&self, rhs: &Self) -> u64
fn get_ne_size_on_gpu(&self, rhs: &Self) -> u64
Source§impl<Id, Clear> FheEqSizeOnGpu<Clear> for FheUint<Id>
Available on crate features integer and gpu only.
impl<Id, Clear> FheEqSizeOnGpu<Clear> for FheUint<Id>
integer and gpu only.fn get_eq_size_on_gpu(&self, _rhs: Clear) -> u64
fn get_ne_size_on_gpu(&self, _rhs: Clear) -> u64
Source§impl<Id> FheHpu for FheUint<Id>where
Id: FheUintId,
Available on crate features integer and hpu only.
impl<Id> FheHpu for FheUint<Id>where
Id: FheUintId,
integer and hpu only.Source§impl<Id> FheIntegerType for FheUint<Id>where
Id: FheUintId,
Available on crate feature integer only.
impl<Id> FheIntegerType for FheUint<Id>where
Id: FheUintId,
integer only.Source§impl<Id> FheKeyswitch<FheUint<Id>> for KeySwitchingKeywhere
Id: FheUintId,
Available on crate feature integer only.
impl<Id> FheKeyswitch<FheUint<Id>> for KeySwitchingKeywhere
Id: FheUintId,
integer only.Source§impl<Id> FheMax<&FheUint<Id>> for FheUint<Id>where
Id: FheUintId,
Available on crate feature integer only.
impl<Id> FheMax<&FheUint<Id>> for FheUint<Id>where
Id: FheUintId,
integer only.Source§fn max(&self, rhs: &Self) -> Self::Output
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);type Output = FheUint<Id>
Source§impl<Id, Clear> FheMax<Clear> for FheUint<Id>
Available on crate feature integer only.
impl<Id, Clear> FheMax<Clear> for FheUint<Id>
integer only.Source§fn max(&self, rhs: Clear) -> Self::Output
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);type Output = FheUint<Id>
Source§impl<Id> FheMaxSizeOnGpu<&FheUint<Id>> for FheUint<Id>where
Id: FheUintId,
Available on crate features integer and gpu only.
impl<Id> FheMaxSizeOnGpu<&FheUint<Id>> for FheUint<Id>where
Id: FheUintId,
integer and gpu only.fn get_max_size_on_gpu(&self, rhs: &Self) -> u64
Source§impl<Id, Clear> FheMaxSizeOnGpu<Clear> for FheUint<Id>
Available on crate features integer and gpu only.
impl<Id, Clear> FheMaxSizeOnGpu<Clear> for FheUint<Id>
integer and gpu only.fn get_max_size_on_gpu(&self, _rhs: Clear) -> u64
Source§impl<Id> FheMin<&FheUint<Id>> for FheUint<Id>where
Id: FheUintId,
Available on crate feature integer only.
impl<Id> FheMin<&FheUint<Id>> for FheUint<Id>where
Id: FheUintId,
integer only.Source§fn min(&self, rhs: &Self) -> Self::Output
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);type Output = FheUint<Id>
Source§impl<Id, Clear> FheMin<Clear> for FheUint<Id>
Available on crate feature integer only.
impl<Id, Clear> FheMin<Clear> for FheUint<Id>
integer only.Source§fn min(&self, rhs: Clear) -> Self::Output
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);type Output = FheUint<Id>
Source§impl<Id> FheMinSizeOnGpu<&FheUint<Id>> for FheUint<Id>where
Id: FheUintId,
Available on crate features integer and gpu only.
impl<Id> FheMinSizeOnGpu<&FheUint<Id>> for FheUint<Id>where
Id: FheUintId,
integer and gpu only.fn get_min_size_on_gpu(&self, rhs: &Self) -> u64
Source§impl<Id, Clear> FheMinSizeOnGpu<Clear> for FheUint<Id>
Available on crate features integer and gpu only.
impl<Id, Clear> FheMinSizeOnGpu<Clear> for FheUint<Id>
integer and gpu only.fn get_min_size_on_gpu(&self, _rhs: Clear) -> u64
Source§impl<Id> FheOrd<&FheUint<Id>> for FheUint<Id>where
Id: FheUintId,
Available on crate feature integer only.
impl<Id> FheOrd<&FheUint<Id>> for FheUint<Id>where
Id: FheUintId,
integer only.Source§fn lt(&self, rhs: &Self) -> FheBool
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
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
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
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>
Available on crate feature integer only.
impl<Id, Clear> FheOrd<Clear> for FheUint<Id>
integer only.Source§fn lt(&self, rhs: Clear) -> FheBool
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
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
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
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 features integer and gpu only.
impl<Id> FheOrdSizeOnGpu<&FheUint<Id>> for FheUint<Id>where
Id: FheUintId,
integer and gpu only.fn get_gt_size_on_gpu(&self, rhs: &Self) -> u64
fn get_ge_size_on_gpu(&self, rhs: &Self) -> u64
fn get_lt_size_on_gpu(&self, rhs: &Self) -> u64
fn get_le_size_on_gpu(&self, rhs: &Self) -> u64
Source§impl<Id, Clear> FheOrdSizeOnGpu<Clear> for FheUint<Id>
Available on crate features integer and gpu only.
impl<Id, Clear> FheOrdSizeOnGpu<Clear> for FheUint<Id>
integer and gpu only.fn get_gt_size_on_gpu(&self, _rhs: Clear) -> u64
fn get_ge_size_on_gpu(&self, _rhs: Clear) -> u64
fn get_lt_size_on_gpu(&self, _rhs: Clear) -> u64
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,
Available on crate feature integer only.
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,
integer only.Source§fn dot_product(bools: &[FheBool], clears: &[Clear]) -> Self
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>
Available on crate feature integer only.
impl<Id, T> FheTrivialEncrypt<T> for FheUint<Id>
integer only.Source§fn encrypt_trivial(value: T) -> Self
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>
Available on crate feature integer only.
impl<Id, T> FheTryEncrypt<T, ClientKey> for FheUint<Id>
integer only.Source§impl<Id, T> FheTryEncrypt<T, CompressedPublicKey> for FheUint<Id>
Available on crate feature integer only.
impl<Id, T> FheTryEncrypt<T, CompressedPublicKey> for FheUint<Id>
integer only.type Error = Error
fn try_encrypt(value: T, key: &CompressedPublicKey) -> Result<Self, Self::Error>
Source§impl<Id, T> FheTryEncrypt<T, PublicKey> for FheUint<Id>
Available on crate feature integer only.
impl<Id, T> FheTryEncrypt<T, PublicKey> for FheUint<Id>
integer only.Source§impl<Id, T> FheTryTrivialEncrypt<T> for FheUint<Id>
Available on crate feature integer only.
impl<Id, T> FheTryTrivialEncrypt<T> for FheUint<Id>
integer only.Source§impl<Id> Flip<&FheUint<Id>, &FheUint<Id>> for FheBool
Available on crate feature integer only.
impl<Id> Flip<&FheUint<Id>, &FheUint<Id>> for FheBool
integer only.Source§fn flip(
&self,
lhs: &FheUint<Id>,
rhs: &FheUint<Id>,
) -> (Self::Output, Self::Output)
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));type Output = FheUint<Id>
Source§impl<Id: FheUintId> HlCompressible for FheUint<Id>
Available on crate feature integer only.
impl<Id: FheUintId> HlCompressible for FheUint<Id>
integer only.Source§fn compress_into(self, messages: &mut Vec<(ToBeCompressed, DataKind)>)
fn compress_into(self, messages: &mut Vec<(ToBeCompressed, DataKind)>)
fn get_re_randomization_metadata(&self) -> ReRandomizationMetadata
Source§impl<Id: FheUintId> HlExpandable for FheUint<Id>
Available on crate feature integer only.
impl<Id: FheUintId> HlExpandable for FheUint<Id>
integer only.Source§fn set_re_randomization_metadata(&mut self, meta: ReRandomizationMetadata)
fn set_re_randomization_metadata(&mut self, meta: ReRandomizationMetadata)
gpu only.Source§impl<Id> IfThenElse<FheUint<Id>> for FheBoolwhere
Id: FheUintId,
Available on crate feature integer only.
impl<Id> IfThenElse<FheUint<Id>> for FheBoolwhere
Id: FheUintId,
integer only.Source§fn if_then_else(
&self,
ct_then: &FheUint<Id>,
ct_else: &FheUint<Id>,
) -> FheUint<Id>
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
selfis true, the output will have the value ofct_then - if
selfis false, the output will have the value ofct_else
fn select( &self, ct_when_true: &Ciphertext, ct_when_false: &Ciphertext, ) -> Ciphertext
fn cmux(&self, ct_then: &Ciphertext, ct_else: &Ciphertext) -> Ciphertext
Source§impl<Id> IfThenElseSizeOnGpu<FheUint<Id>> for FheBoolwhere
Id: FheUintId,
Available on crate features integer and gpu only.
impl<Id> IfThenElseSizeOnGpu<FheUint<Id>> for FheBoolwhere
Id: FheUintId,
integer and gpu only.fn get_if_then_else_size_on_gpu( &self, ct_then: &FheUint<Id>, ct_else: &FheUint<Id>, ) -> u64
fn get_select_size_on_gpu( &self, ct_when_true: &Ciphertext, ct_when_false: &Ciphertext, ) -> u64
fn get_cmux_size_on_gpu( &self, ct_then: &Ciphertext, ct_else: &Ciphertext, ) -> u64
Source§impl<Id, B> Mul<B> for &FheUint<Id>
Available on crate feature integer only.
impl<Id, B> Mul<B> for &FheUint<Id>
integer only.Source§fn mul(self, rhs: B) -> Self::Output
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§impl<Id, I> MulAssign<I> for FheUint<Id>
Available on crate feature integer only.
impl<Id, I> MulAssign<I> for FheUint<Id>
integer only.Source§fn mul_assign(&mut self, rhs: I)
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 features integer and gpu only.
impl<Id> MulSizeOnGpu<&FheUint<Id>> for FheUint<Id>where
Id: FheUintId,
integer and gpu only.fn get_mul_size_on_gpu(&self, rhs: &Self) -> u64
Source§impl<Id> Neg for &FheUint<Id>where
Id: FheUintId,
Available on crate feature integer only.
impl<Id> Neg for &FheUint<Id>where
Id: FheUintId,
integer only.Source§fn neg(self) -> Self::Output
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§impl<Id> Neg for FheUint<Id>where
Id: FheUintId,
Available on crate feature integer only.
impl<Id> Neg for FheUint<Id>where
Id: FheUintId,
integer only.Source§fn neg(self) -> Self::Output
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§impl<Id> NegSizeOnGpu<&FheUint<Id>> for FheUint<Id>where
Id: FheUintId,
Available on crate features integer and gpu only.
impl<Id> NegSizeOnGpu<&FheUint<Id>> for FheUint<Id>where
Id: FheUintId,
integer and gpu only.fn get_neg_size_on_gpu(&self) -> u64
Source§impl<Id> Not for &FheUint<Id>where
Id: FheUintId,
Available on crate feature integer only.
impl<Id> Not for &FheUint<Id>where
Id: FheUintId,
integer only.Source§fn not(self) -> Self::Output
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§impl<Id> Not for FheUint<Id>where
Id: FheUintId,
Available on crate feature integer only.
impl<Id> Not for FheUint<Id>where
Id: FheUintId,
integer only.Source§fn not(self) -> Self::Output
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§impl<Id> OverflowingAdd<&FheUint<Id>> for &FheUint<Id>where
Id: FheUintId,
Available on crate feature integer only.
impl<Id> OverflowingAdd<&FheUint<Id>> for &FheUint<Id>where
Id: FheUintId,
integer only.Source§fn overflowing_add(self, other: Self) -> (Self::Output, FheBool)
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));type Output = FheUint<Id>
Source§impl<Id> OverflowingAdd<&FheUint<Id>> for FheUint<Id>where
Id: FheUintId,
Available on crate feature integer only.
impl<Id> OverflowingAdd<&FheUint<Id>> for FheUint<Id>where
Id: FheUintId,
integer only.Source§fn overflowing_add(self, other: &Self) -> (Self::Output, FheBool)
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));type Output = FheUint<Id>
Source§impl<Id, Clear> OverflowingAdd<Clear> for &FheUint<Id>
Available on crate feature integer only.
impl<Id, Clear> OverflowingAdd<Clear> for &FheUint<Id>
integer only.Source§fn overflowing_add(self, other: Clear) -> (Self::Output, FheBool)
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));type Output = FheUint<Id>
Source§impl<Id, Clear> OverflowingAdd<Clear> for FheUint<Id>
Available on crate feature integer only.
impl<Id, Clear> OverflowingAdd<Clear> for FheUint<Id>
integer only.Source§fn overflowing_add(self, other: Clear) -> (Self::Output, FheBool)
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));type Output = FheUint<Id>
Source§impl<Id> OverflowingMul<&FheUint<Id>> for &FheUint<Id>where
Id: FheUintId,
Available on crate feature integer only.
impl<Id> OverflowingMul<&FheUint<Id>> for &FheUint<Id>where
Id: FheUintId,
integer only.Source§fn overflowing_mul(self, other: Self) -> (Self::Output, FheBool)
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));type Output = FheUint<Id>
Source§impl<Id> OverflowingMul<&FheUint<Id>> for FheUint<Id>where
Id: FheUintId,
Available on crate feature integer only.
impl<Id> OverflowingMul<&FheUint<Id>> for FheUint<Id>where
Id: FheUintId,
integer only.Source§fn overflowing_mul(self, other: &Self) -> (Self::Output, FheBool)
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));type Output = FheUint<Id>
Source§impl<Id> OverflowingNeg for &FheUint<Id>where
Id: FheUintId,
Available on crate feature integer only.
impl<Id> OverflowingNeg for &FheUint<Id>where
Id: FheUintId,
integer only.Source§impl<Id> OverflowingNeg for FheUint<Id>where
Id: FheUintId,
Available on crate feature integer only.
impl<Id> OverflowingNeg for FheUint<Id>where
Id: FheUintId,
integer only.Source§impl<Id> OverflowingSub<&FheUint<Id>> for &FheUint<Id>where
Id: FheUintId,
Available on crate feature integer only.
impl<Id> OverflowingSub<&FheUint<Id>> for &FheUint<Id>where
Id: FheUintId,
integer only.Source§fn overflowing_sub(self, other: Self) -> (Self::Output, FheBool)
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));type Output = FheUint<Id>
Source§impl<Id> OverflowingSub<&FheUint<Id>> for FheUint<Id>where
Id: FheUintId,
Available on crate feature integer only.
impl<Id> OverflowingSub<&FheUint<Id>> for FheUint<Id>where
Id: FheUintId,
integer only.Source§fn overflowing_sub(self, other: &Self) -> (Self::Output, FheBool)
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));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>,
Available on crate feature integer only.
impl<Id, Clear> OverflowingSub<Clear> for &FheUint<Id>where
Id: FheUintId,
Clear: UnsignedNumeric + DecomposableInto<u8> + Not<Output = Clear> + CastInto<u64>,
integer only.Source§fn overflowing_sub(self, other: Clear) -> (Self::Output, FheBool)
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));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>,
Available on crate feature integer only.
impl<Id, Clear> OverflowingSub<Clear> for FheUint<Id>where
Id: FheUintId,
Clear: UnsignedNumeric + DecomposableInto<u8> + Not<Output = Clear> + CastInto<u64>,
integer only.Source§fn overflowing_sub(self, other: Clear) -> (Self::Output, FheBool)
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));type Output = FheUint<Id>
Source§impl<Id: FheUintId> ParameterSetConformant for FheUint<Id>
Available on crate feature integer only.
impl<Id: FheUintId> ParameterSetConformant for FheUint<Id>
integer only.type ParameterSet = FheUintConformanceParams<Id>
fn is_conformant(&self, params: &FheUintConformanceParams<Id>) -> bool
Source§impl<Id> ReRandomize for FheUint<Id>where
Id: FheUintId,
Available on crate feature integer only.
impl<Id> ReRandomize for FheUint<Id>where
Id: FheUintId,
integer only.fn add_to_re_randomization_context(&self, context: &mut ReRandomizationContext)
Source§fn re_randomize(
&mut self,
compact_public_key: &CompactPublicKey,
seed: ReRandomizationSeed,
) -> Result<()>
fn re_randomize( &mut self, compact_public_key: &CompactPublicKey, seed: ReRandomizationSeed, ) -> Result<()>
Source§impl<Id, B> Rem<B> for &FheUint<Id>
Available on crate feature integer only.
impl<Id, B> Rem<B> for &FheUint<Id>
integer only.Source§fn rem(self, rhs: B) -> Self::Output
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§impl<Id, I> RemAssign<I> for FheUint<Id>
Available on crate feature integer only.
impl<Id, I> RemAssign<I> for FheUint<Id>
integer only.Source§fn rem_assign(&mut self, rhs: I)
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 features integer and gpu only.
impl<Id> RemSizeOnGpu<&FheUint<Id>> for FheUint<Id>where
Id: FheUintId,
integer and gpu only.fn get_rem_size_on_gpu(&self, rhs: &Self) -> u64
Source§impl<Id, Id2> RotateLeft<&FheUint<Id2>> for &FheInt<Id>
Available on crate feature integer only.
impl<Id, Id2> RotateLeft<&FheUint<Id2>> for &FheInt<Id>
integer only.Source§fn rotate_left(self, rhs: &FheUint<Id2>) -> Self::Output
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));type Output = FheInt<Id>
Source§impl<Id, Id2> RotateLeft<&FheUint<Id2>> for &FheUint<Id>
Available on crate feature integer only.
impl<Id, Id2> RotateLeft<&FheUint<Id2>> for &FheUint<Id>
integer only.Source§fn rotate_left(self, rhs: &FheUint<Id2>) -> Self::Output
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));type Output = FheUint<Id>
Source§impl<Id, Id2> RotateLeft<&FheUint<Id2>> for FheInt<Id>
Available on crate feature integer only.
impl<Id, Id2> RotateLeft<&FheUint<Id2>> for FheInt<Id>
integer only.Source§impl<Id, Id2> RotateLeft<&FheUint<Id2>> for FheUint<Id>
Available on crate feature integer only.
impl<Id, Id2> RotateLeft<&FheUint<Id2>> for FheUint<Id>
integer only.Source§impl<Id, Id2> RotateLeft<FheUint<Id2>> for &FheInt<Id>
Available on crate feature integer only.
impl<Id, Id2> RotateLeft<FheUint<Id2>> for &FheInt<Id>
integer only.Source§impl<Id, Id2> RotateLeft<FheUint<Id2>> for &FheUint<Id>
Available on crate feature integer only.
impl<Id, Id2> RotateLeft<FheUint<Id2>> for &FheUint<Id>
integer only.Source§impl<Id, Id2> RotateLeft<FheUint<Id2>> for FheInt<Id>
Available on crate feature integer only.
impl<Id, Id2> RotateLeft<FheUint<Id2>> for FheInt<Id>
integer only.Source§impl<Id, Id2> RotateLeft<FheUint<Id2>> for FheUint<Id>
Available on crate feature integer only.
impl<Id, Id2> RotateLeft<FheUint<Id2>> for FheUint<Id>
integer only.Source§impl<Id, Id2> RotateLeftAssign<&FheUint<Id2>> for FheInt<Id>
Available on crate feature integer only.
impl<Id, Id2> RotateLeftAssign<&FheUint<Id2>> for FheInt<Id>
integer only.Source§fn rotate_left_assign(&mut self, rhs: &FheUint<Id2>)
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>
Available on crate feature integer only.
impl<Id, Id2> RotateLeftAssign<&FheUint<Id2>> for FheUint<Id>
integer only.Source§fn rotate_left_assign(&mut self, rhs: &FheUint<Id2>)
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>
Available on crate feature integer only.
impl<Id, Id2> RotateLeftAssign<FheUint<Id2>> for FheInt<Id>
integer only.fn rotate_left_assign(&mut self, rhs: FheUint<Id2>)
Source§impl<Id, Id2> RotateLeftAssign<FheUint<Id2>> for FheUint<Id>
Available on crate feature integer only.
impl<Id, Id2> RotateLeftAssign<FheUint<Id2>> for FheUint<Id>
integer only.fn rotate_left_assign(&mut self, rhs: FheUint<Id2>)
Source§impl<Id> RotateLeftSizeOnGpu<&FheUint<Id>> for FheUint<Id>where
Id: FheUintId,
Available on crate features integer and gpu only.
impl<Id> RotateLeftSizeOnGpu<&FheUint<Id>> for FheUint<Id>where
Id: FheUintId,
integer and gpu only.fn get_rotate_left_size_on_gpu(&self, rhs: &Self) -> u64
Source§impl<Id, Id2> RotateLeftSizeOnGpu<&FheUint<Id2>> for FheInt<Id>
Available on crate features integer and gpu only.
impl<Id, Id2> RotateLeftSizeOnGpu<&FheUint<Id2>> for FheInt<Id>
integer and gpu only.fn get_rotate_left_size_on_gpu(&self, rhs: &FheUint<Id2>) -> u64
Source§impl<Id, Id2> RotateRight<&FheUint<Id2>> for &FheInt<Id>
Available on crate feature integer only.
impl<Id, Id2> RotateRight<&FheUint<Id2>> for &FheInt<Id>
integer only.Source§fn rotate_right(self, rhs: &FheUint<Id2>) -> Self::Output
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));type Output = FheInt<Id>
Source§impl<Id, Id2> RotateRight<&FheUint<Id2>> for &FheUint<Id>
Available on crate feature integer only.
impl<Id, Id2> RotateRight<&FheUint<Id2>> for &FheUint<Id>
integer only.Source§fn rotate_right(self, rhs: &FheUint<Id2>) -> Self::Output
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));type Output = FheUint<Id>
Source§impl<Id, Id2> RotateRight<&FheUint<Id2>> for FheInt<Id>
Available on crate feature integer only.
impl<Id, Id2> RotateRight<&FheUint<Id2>> for FheInt<Id>
integer only.Source§impl<Id, Id2> RotateRight<&FheUint<Id2>> for FheUint<Id>
Available on crate feature integer only.
impl<Id, Id2> RotateRight<&FheUint<Id2>> for FheUint<Id>
integer only.Source§impl<Id, Id2> RotateRight<FheUint<Id2>> for &FheInt<Id>
Available on crate feature integer only.
impl<Id, Id2> RotateRight<FheUint<Id2>> for &FheInt<Id>
integer only.Source§impl<Id, Id2> RotateRight<FheUint<Id2>> for &FheUint<Id>
Available on crate feature integer only.
impl<Id, Id2> RotateRight<FheUint<Id2>> for &FheUint<Id>
integer only.Source§impl<Id, Id2> RotateRight<FheUint<Id2>> for FheInt<Id>
Available on crate feature integer only.
impl<Id, Id2> RotateRight<FheUint<Id2>> for FheInt<Id>
integer only.Source§impl<Id, Id2> RotateRight<FheUint<Id2>> for FheUint<Id>
Available on crate feature integer only.
impl<Id, Id2> RotateRight<FheUint<Id2>> for FheUint<Id>
integer only.Source§impl<Id, Id2> RotateRightAssign<&FheUint<Id2>> for FheInt<Id>
Available on crate feature integer only.
impl<Id, Id2> RotateRightAssign<&FheUint<Id2>> for FheInt<Id>
integer only.Source§fn rotate_right_assign(&mut self, rhs: &FheUint<Id2>)
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>
Available on crate feature integer only.
impl<Id, Id2> RotateRightAssign<&FheUint<Id2>> for FheUint<Id>
integer only.Source§fn rotate_right_assign(&mut self, rhs: &FheUint<Id2>)
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>
Available on crate feature integer only.
impl<Id, Id2> RotateRightAssign<FheUint<Id2>> for FheInt<Id>
integer only.fn rotate_right_assign(&mut self, rhs: FheUint<Id2>)
Source§impl<Id, Id2> RotateRightAssign<FheUint<Id2>> for FheUint<Id>
Available on crate feature integer only.
impl<Id, Id2> RotateRightAssign<FheUint<Id2>> for FheUint<Id>
integer only.fn rotate_right_assign(&mut self, rhs: FheUint<Id2>)
Source§impl<Id> RotateRightSizeOnGpu<&FheUint<Id>> for FheUint<Id>where
Id: FheUintId,
Available on crate features integer and gpu only.
impl<Id> RotateRightSizeOnGpu<&FheUint<Id>> for FheUint<Id>where
Id: FheUintId,
integer and gpu only.fn get_rotate_right_size_on_gpu(&self, rhs: &Self) -> u64
Source§impl<Id, Id2> RotateRightSizeOnGpu<&FheUint<Id2>> for FheInt<Id>
Available on crate features integer and gpu only.
impl<Id, Id2> RotateRightSizeOnGpu<&FheUint<Id2>> for FheInt<Id>
integer and gpu only.fn get_rotate_right_size_on_gpu(&self, rhs: &FheUint<Id2>) -> u64
Source§impl<Id, Scalar> ScalarIfThenElse<&FheUint<Id>, Scalar> for FheBool
Available on crate feature integer only.
impl<Id, Scalar> ScalarIfThenElse<&FheUint<Id>, Scalar> for FheBool
integer only.Source§fn scalar_if_then_else(
&self,
then_value: &FheUint<Id>,
else_value: Scalar,
) -> Self::Output
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);type Output = FheUint<Id>
fn scalar_select(&self, value_true: Lhs, value_false: Rhs) -> Self::Output
fn scalar_cmux(&self, value_true: Lhs, value_false: Rhs) -> Self::Output
Source§impl<Id, Scalar> ScalarIfThenElse<Scalar, &FheUint<Id>> for FheBool
Available on crate feature integer only.
impl<Id, Scalar> ScalarIfThenElse<Scalar, &FheUint<Id>> for FheBool
integer only.Source§fn scalar_if_then_else(
&self,
then_value: Scalar,
else_value: &FheUint<Id>,
) -> Self::Output
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);type Output = FheUint<Id>
fn scalar_select(&self, value_true: Lhs, value_false: Rhs) -> Self::Output
fn scalar_cmux(&self, value_true: Lhs, value_false: Rhs) -> Self::Output
Source§impl<Id, Id2> Shl<&FheUint<Id2>> for &FheInt<Id>
Available on crate feature integer only.
impl<Id, Id2> Shl<&FheUint<Id2>> for &FheInt<Id>
integer only.Source§fn shl(self, rhs: &FheUint<Id2>) -> Self::Output
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§impl<Id, Id2> Shl<&FheUint<Id2>> for &FheUint<Id>
Available on crate feature integer only.
impl<Id, Id2> Shl<&FheUint<Id2>> for &FheUint<Id>
integer only.Source§fn shl(self, rhs: &FheUint<Id2>) -> Self::Output
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§impl<Id, Id2> ShlAssign<&FheUint<Id2>> for FheInt<Id>
Available on crate feature integer only.
impl<Id, Id2> ShlAssign<&FheUint<Id2>> for FheInt<Id>
integer only.Source§fn shl_assign(&mut self, rhs: &FheUint<Id2>)
fn shl_assign(&mut self, rhs: &FheUint<Id2>)
Performs the <<= 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 <<= &b;
let result: i16 = a.decrypt(&client_key);
assert_eq!(result, 7849i16 << 3u16);Source§impl<Id, Id2> ShlAssign<&FheUint<Id2>> for FheUint<Id>
Available on crate feature integer only.
impl<Id, Id2> ShlAssign<&FheUint<Id2>> for FheUint<Id>
integer only.Source§fn shl_assign(&mut self, rhs: &FheUint<Id2>)
fn shl_assign(&mut self, rhs: &FheUint<Id2>)
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(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>
Available on crate feature integer only.
impl<Id, Id2> ShlAssign<FheUint<Id2>> for FheInt<Id>
integer only.Source§fn shl_assign(&mut self, rhs: FheUint<Id2>)
fn shl_assign(&mut self, rhs: FheUint<Id2>)
<<= operation. Read moreSource§impl<Id, Id2> ShlAssign<FheUint<Id2>> for FheUint<Id>
Available on crate feature integer only.
impl<Id, Id2> ShlAssign<FheUint<Id2>> for FheUint<Id>
integer only.Source§fn shl_assign(&mut self, rhs: FheUint<Id2>)
fn shl_assign(&mut self, rhs: FheUint<Id2>)
<<= operation. Read moreSource§impl<Id> ShlSizeOnGpu<&FheUint<Id>> for FheUint<Id>where
Id: FheUintId,
Available on crate features integer and gpu only.
impl<Id> ShlSizeOnGpu<&FheUint<Id>> for FheUint<Id>where
Id: FheUintId,
integer and gpu only.fn get_left_shift_size_on_gpu(&self, rhs: &Self) -> u64
Source§impl<Id, Id2> ShlSizeOnGpu<&FheUint<Id2>> for FheInt<Id>
Available on crate features integer and gpu only.
impl<Id, Id2> ShlSizeOnGpu<&FheUint<Id2>> for FheInt<Id>
integer and gpu only.fn get_left_shift_size_on_gpu(&self, rhs: &FheUint<Id2>) -> u64
Source§impl<Id, Id2> Shr<&FheUint<Id2>> for &FheInt<Id>
Available on crate feature integer only.
impl<Id, Id2> Shr<&FheUint<Id2>> for &FheInt<Id>
integer only.Source§fn shr(self, rhs: &FheUint<Id2>) -> Self::Output
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§impl<Id, Id2> Shr<&FheUint<Id2>> for &FheUint<Id>
Available on crate feature integer only.
impl<Id, Id2> Shr<&FheUint<Id2>> for &FheUint<Id>
integer only.Source§fn shr(self, rhs: &FheUint<Id2>) -> Self::Output
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§impl<Id, Id2> ShrAssign<&FheUint<Id2>> for FheInt<Id>
Available on crate feature integer only.
impl<Id, Id2> ShrAssign<&FheUint<Id2>> for FheInt<Id>
integer only.Source§fn shr_assign(&mut self, rhs: &FheUint<Id2>)
fn shr_assign(&mut self, rhs: &FheUint<Id2>)
Performs the >>= 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 >>= &b;
let result: i16 = a.decrypt(&client_key);
assert_eq!(result, 7849i16 >> 3u16);Source§impl<Id, Id2> ShrAssign<&FheUint<Id2>> for FheUint<Id>
Available on crate feature integer only.
impl<Id, Id2> ShrAssign<&FheUint<Id2>> for FheUint<Id>
integer only.Source§fn shr_assign(&mut self, rhs: &FheUint<Id2>)
fn shr_assign(&mut self, rhs: &FheUint<Id2>)
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(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>
Available on crate feature integer only.
impl<Id, Id2> ShrAssign<FheUint<Id2>> for FheInt<Id>
integer only.Source§fn shr_assign(&mut self, rhs: FheUint<Id2>)
fn shr_assign(&mut self, rhs: FheUint<Id2>)
>>= operation. Read moreSource§impl<Id, Id2> ShrAssign<FheUint<Id2>> for FheUint<Id>
Available on crate feature integer only.
impl<Id, Id2> ShrAssign<FheUint<Id2>> for FheUint<Id>
integer only.Source§fn shr_assign(&mut self, rhs: FheUint<Id2>)
fn shr_assign(&mut self, rhs: FheUint<Id2>)
>>= operation. Read moreSource§impl<Id> ShrSizeOnGpu<&FheUint<Id>> for FheUint<Id>where
Id: FheUintId,
Available on crate features integer and gpu only.
impl<Id> ShrSizeOnGpu<&FheUint<Id>> for FheUint<Id>where
Id: FheUintId,
integer and gpu only.fn get_right_shift_size_on_gpu(&self, rhs: &Self) -> u64
Source§impl<Id, Id2> ShrSizeOnGpu<&FheUint<Id2>> for FheInt<Id>
Available on crate features integer and gpu only.
impl<Id, Id2> ShrSizeOnGpu<&FheUint<Id2>> for FheInt<Id>
integer and gpu only.fn get_right_shift_size_on_gpu(&self, rhs: &FheUint<Id2>) -> u64
Source§impl<Id> SizeOnGpu for FheUint<Id>where
Id: FheUintId,
Available on crate features integer and gpu only.
impl<Id> SizeOnGpu for FheUint<Id>where
Id: FheUintId,
integer and gpu only.fn get_size_on_gpu(&self) -> u64
Source§impl<Id: FheUintId> SquashNoise for FheUint<Id>
Available on crate feature integer only.
impl<Id: FheUintId> SquashNoise for FheUint<Id>
integer only.type Output = SquashedNoiseFheUint
fn squash_noise(&self) -> Result<Self::Output>
Source§impl<Id, B> Sub<B> for &FheUint<Id>
Available on crate feature integer only.
impl<Id, B> Sub<B> for &FheUint<Id>
integer only.Source§fn sub(self, rhs: B) -> Self::Output
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§impl<Id, I> SubAssign<I> for FheUint<Id>
Available on crate feature integer only.
impl<Id, I> SubAssign<I> for FheUint<Id>
integer only.Source§fn sub_assign(&mut self, rhs: I)
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<FheUint1024Id>> for U1024
Available on crate feature integer only.
impl SubSizeOnGpu<&FheUint<FheUint1024Id>> for U1024
integer only.Source§fn get_sub_size_on_gpu(&self, rhs: &FheUint1024) -> u64
fn get_sub_size_on_gpu(&self, rhs: &FheUint1024) -> u64
gpu only.Source§impl SubSizeOnGpu<&FheUint<FheUint104Id>> for u128
Available on crate feature integer only.
impl SubSizeOnGpu<&FheUint<FheUint104Id>> for u128
integer only.Source§fn get_sub_size_on_gpu(&self, rhs: &FheUint104) -> u64
fn get_sub_size_on_gpu(&self, rhs: &FheUint104) -> u64
gpu only.Source§impl SubSizeOnGpu<&FheUint<FheUint10Id>> for u16
Available on crate feature integer only.
impl SubSizeOnGpu<&FheUint<FheUint10Id>> for u16
integer only.Source§fn get_sub_size_on_gpu(&self, rhs: &FheUint10) -> u64
fn get_sub_size_on_gpu(&self, rhs: &FheUint10) -> u64
gpu only.Source§impl SubSizeOnGpu<&FheUint<FheUint112Id>> for u128
Available on crate feature integer only.
impl SubSizeOnGpu<&FheUint<FheUint112Id>> for u128
integer only.Source§fn get_sub_size_on_gpu(&self, rhs: &FheUint112) -> u64
fn get_sub_size_on_gpu(&self, rhs: &FheUint112) -> u64
gpu only.Source§impl SubSizeOnGpu<&FheUint<FheUint120Id>> for u128
Available on crate feature integer only.
impl SubSizeOnGpu<&FheUint<FheUint120Id>> for u128
integer only.Source§fn get_sub_size_on_gpu(&self, rhs: &FheUint120) -> u64
fn get_sub_size_on_gpu(&self, rhs: &FheUint120) -> u64
gpu only.Source§impl SubSizeOnGpu<&FheUint<FheUint128Id>> for u128
Available on crate feature integer only.
impl SubSizeOnGpu<&FheUint<FheUint128Id>> for u128
integer only.Source§fn get_sub_size_on_gpu(&self, rhs: &FheUint128) -> u64
fn get_sub_size_on_gpu(&self, rhs: &FheUint128) -> u64
gpu only.Source§impl SubSizeOnGpu<&FheUint<FheUint12Id>> for u16
Available on crate feature integer only.
impl SubSizeOnGpu<&FheUint<FheUint12Id>> for u16
integer only.Source§fn get_sub_size_on_gpu(&self, rhs: &FheUint12) -> u64
fn get_sub_size_on_gpu(&self, rhs: &FheUint12) -> u64
gpu only.Source§impl SubSizeOnGpu<&FheUint<FheUint136Id>> for U256
Available on crate feature integer only.
impl SubSizeOnGpu<&FheUint<FheUint136Id>> for U256
integer only.Source§fn get_sub_size_on_gpu(&self, rhs: &FheUint136) -> u64
fn get_sub_size_on_gpu(&self, rhs: &FheUint136) -> u64
gpu only.Source§impl SubSizeOnGpu<&FheUint<FheUint144Id>> for U256
Available on crate feature integer only.
impl SubSizeOnGpu<&FheUint<FheUint144Id>> for U256
integer only.Source§fn get_sub_size_on_gpu(&self, rhs: &FheUint144) -> u64
fn get_sub_size_on_gpu(&self, rhs: &FheUint144) -> u64
gpu only.Source§impl SubSizeOnGpu<&FheUint<FheUint14Id>> for u16
Available on crate feature integer only.
impl SubSizeOnGpu<&FheUint<FheUint14Id>> for u16
integer only.Source§fn get_sub_size_on_gpu(&self, rhs: &FheUint14) -> u64
fn get_sub_size_on_gpu(&self, rhs: &FheUint14) -> u64
gpu only.Source§impl SubSizeOnGpu<&FheUint<FheUint152Id>> for U256
Available on crate feature integer only.
impl SubSizeOnGpu<&FheUint<FheUint152Id>> for U256
integer only.Source§fn get_sub_size_on_gpu(&self, rhs: &FheUint152) -> u64
fn get_sub_size_on_gpu(&self, rhs: &FheUint152) -> u64
gpu only.Source§impl SubSizeOnGpu<&FheUint<FheUint160Id>> for U256
Available on crate feature integer only.
impl SubSizeOnGpu<&FheUint<FheUint160Id>> for U256
integer only.Source§fn get_sub_size_on_gpu(&self, rhs: &FheUint160) -> u64
fn get_sub_size_on_gpu(&self, rhs: &FheUint160) -> u64
gpu only.Source§impl SubSizeOnGpu<&FheUint<FheUint168Id>> for U256
Available on crate feature integer only.
impl SubSizeOnGpu<&FheUint<FheUint168Id>> for U256
integer only.Source§fn get_sub_size_on_gpu(&self, rhs: &FheUint168) -> u64
fn get_sub_size_on_gpu(&self, rhs: &FheUint168) -> u64
gpu only.Source§impl SubSizeOnGpu<&FheUint<FheUint16Id>> for u16
Available on crate feature integer only.
impl SubSizeOnGpu<&FheUint<FheUint16Id>> for u16
integer only.Source§fn get_sub_size_on_gpu(&self, rhs: &FheUint16) -> u64
fn get_sub_size_on_gpu(&self, rhs: &FheUint16) -> u64
gpu only.Source§impl SubSizeOnGpu<&FheUint<FheUint176Id>> for U256
Available on crate feature integer only.
impl SubSizeOnGpu<&FheUint<FheUint176Id>> for U256
integer only.Source§fn get_sub_size_on_gpu(&self, rhs: &FheUint176) -> u64
fn get_sub_size_on_gpu(&self, rhs: &FheUint176) -> u64
gpu only.Source§impl SubSizeOnGpu<&FheUint<FheUint184Id>> for U256
Available on crate feature integer only.
impl SubSizeOnGpu<&FheUint<FheUint184Id>> for U256
integer only.Source§fn get_sub_size_on_gpu(&self, rhs: &FheUint184) -> u64
fn get_sub_size_on_gpu(&self, rhs: &FheUint184) -> u64
gpu only.Source§impl SubSizeOnGpu<&FheUint<FheUint192Id>> for U256
Available on crate feature integer only.
impl SubSizeOnGpu<&FheUint<FheUint192Id>> for U256
integer only.Source§fn get_sub_size_on_gpu(&self, rhs: &FheUint192) -> u64
fn get_sub_size_on_gpu(&self, rhs: &FheUint192) -> u64
gpu only.Source§impl SubSizeOnGpu<&FheUint<FheUint200Id>> for U256
Available on crate feature integer only.
impl SubSizeOnGpu<&FheUint<FheUint200Id>> for U256
integer only.Source§fn get_sub_size_on_gpu(&self, rhs: &FheUint200) -> u64
fn get_sub_size_on_gpu(&self, rhs: &FheUint200) -> u64
gpu only.Source§impl SubSizeOnGpu<&FheUint<FheUint2048Id>> for U2048
Available on crate feature integer only.
impl SubSizeOnGpu<&FheUint<FheUint2048Id>> for U2048
integer only.Source§fn get_sub_size_on_gpu(&self, rhs: &FheUint2048) -> u64
fn get_sub_size_on_gpu(&self, rhs: &FheUint2048) -> u64
gpu only.Source§impl SubSizeOnGpu<&FheUint<FheUint208Id>> for U256
Available on crate feature integer only.
impl SubSizeOnGpu<&FheUint<FheUint208Id>> for U256
integer only.Source§fn get_sub_size_on_gpu(&self, rhs: &FheUint208) -> u64
fn get_sub_size_on_gpu(&self, rhs: &FheUint208) -> u64
gpu only.Source§impl SubSizeOnGpu<&FheUint<FheUint216Id>> for U256
Available on crate feature integer only.
impl SubSizeOnGpu<&FheUint<FheUint216Id>> for U256
integer only.Source§fn get_sub_size_on_gpu(&self, rhs: &FheUint216) -> u64
fn get_sub_size_on_gpu(&self, rhs: &FheUint216) -> u64
gpu only.Source§impl SubSizeOnGpu<&FheUint<FheUint224Id>> for U256
Available on crate feature integer only.
impl SubSizeOnGpu<&FheUint<FheUint224Id>> for U256
integer only.Source§fn get_sub_size_on_gpu(&self, rhs: &FheUint224) -> u64
fn get_sub_size_on_gpu(&self, rhs: &FheUint224) -> u64
gpu only.Source§impl SubSizeOnGpu<&FheUint<FheUint232Id>> for U256
Available on crate feature integer only.
impl SubSizeOnGpu<&FheUint<FheUint232Id>> for U256
integer only.Source§fn get_sub_size_on_gpu(&self, rhs: &FheUint232) -> u64
fn get_sub_size_on_gpu(&self, rhs: &FheUint232) -> u64
gpu only.Source§impl SubSizeOnGpu<&FheUint<FheUint240Id>> for U256
Available on crate feature integer only.
impl SubSizeOnGpu<&FheUint<FheUint240Id>> for U256
integer only.Source§fn get_sub_size_on_gpu(&self, rhs: &FheUint240) -> u64
fn get_sub_size_on_gpu(&self, rhs: &FheUint240) -> u64
gpu only.Source§impl SubSizeOnGpu<&FheUint<FheUint248Id>> for U256
Available on crate feature integer only.
impl SubSizeOnGpu<&FheUint<FheUint248Id>> for U256
integer only.Source§fn get_sub_size_on_gpu(&self, rhs: &FheUint248) -> u64
fn get_sub_size_on_gpu(&self, rhs: &FheUint248) -> u64
gpu only.Source§impl SubSizeOnGpu<&FheUint<FheUint24Id>> for u32
Available on crate feature integer only.
impl SubSizeOnGpu<&FheUint<FheUint24Id>> for u32
integer only.Source§fn get_sub_size_on_gpu(&self, rhs: &FheUint24) -> u64
fn get_sub_size_on_gpu(&self, rhs: &FheUint24) -> u64
gpu only.Source§impl SubSizeOnGpu<&FheUint<FheUint256Id>> for U256
Available on crate feature integer only.
impl SubSizeOnGpu<&FheUint<FheUint256Id>> for U256
integer only.Source§fn get_sub_size_on_gpu(&self, rhs: &FheUint256) -> u64
fn get_sub_size_on_gpu(&self, rhs: &FheUint256) -> u64
gpu only.Source§impl SubSizeOnGpu<&FheUint<FheUint2Id>> for u8
Available on crate feature integer only.
impl SubSizeOnGpu<&FheUint<FheUint2Id>> for u8
integer only.Source§fn get_sub_size_on_gpu(&self, rhs: &FheUint2) -> u64
fn get_sub_size_on_gpu(&self, rhs: &FheUint2) -> u64
gpu only.Source§impl SubSizeOnGpu<&FheUint<FheUint32Id>> for u32
Available on crate feature integer only.
impl SubSizeOnGpu<&FheUint<FheUint32Id>> for u32
integer only.Source§fn get_sub_size_on_gpu(&self, rhs: &FheUint32) -> u64
fn get_sub_size_on_gpu(&self, rhs: &FheUint32) -> u64
gpu only.Source§impl SubSizeOnGpu<&FheUint<FheUint40Id>> for u64
Available on crate feature integer only.
impl SubSizeOnGpu<&FheUint<FheUint40Id>> for u64
integer only.Source§fn get_sub_size_on_gpu(&self, rhs: &FheUint40) -> u64
fn get_sub_size_on_gpu(&self, rhs: &FheUint40) -> u64
gpu only.Source§impl SubSizeOnGpu<&FheUint<FheUint48Id>> for u64
Available on crate feature integer only.
impl SubSizeOnGpu<&FheUint<FheUint48Id>> for u64
integer only.Source§fn get_sub_size_on_gpu(&self, rhs: &FheUint48) -> u64
fn get_sub_size_on_gpu(&self, rhs: &FheUint48) -> u64
gpu only.Source§impl SubSizeOnGpu<&FheUint<FheUint4Id>> for u8
Available on crate feature integer only.
impl SubSizeOnGpu<&FheUint<FheUint4Id>> for u8
integer only.Source§fn get_sub_size_on_gpu(&self, rhs: &FheUint4) -> u64
fn get_sub_size_on_gpu(&self, rhs: &FheUint4) -> u64
gpu only.Source§impl SubSizeOnGpu<&FheUint<FheUint512Id>> for U512
Available on crate feature integer only.
impl SubSizeOnGpu<&FheUint<FheUint512Id>> for U512
integer only.Source§fn get_sub_size_on_gpu(&self, rhs: &FheUint512) -> u64
fn get_sub_size_on_gpu(&self, rhs: &FheUint512) -> u64
gpu only.Source§impl SubSizeOnGpu<&FheUint<FheUint56Id>> for u64
Available on crate feature integer only.
impl SubSizeOnGpu<&FheUint<FheUint56Id>> for u64
integer only.Source§fn get_sub_size_on_gpu(&self, rhs: &FheUint56) -> u64
fn get_sub_size_on_gpu(&self, rhs: &FheUint56) -> u64
gpu only.Source§impl SubSizeOnGpu<&FheUint<FheUint64Id>> for u64
Available on crate feature integer only.
impl SubSizeOnGpu<&FheUint<FheUint64Id>> for u64
integer only.Source§fn get_sub_size_on_gpu(&self, rhs: &FheUint64) -> u64
fn get_sub_size_on_gpu(&self, rhs: &FheUint64) -> u64
gpu only.Source§impl SubSizeOnGpu<&FheUint<FheUint6Id>> for u8
Available on crate feature integer only.
impl SubSizeOnGpu<&FheUint<FheUint6Id>> for u8
integer only.Source§fn get_sub_size_on_gpu(&self, rhs: &FheUint6) -> u64
fn get_sub_size_on_gpu(&self, rhs: &FheUint6) -> u64
gpu only.Source§impl SubSizeOnGpu<&FheUint<FheUint72Id>> for u128
Available on crate feature integer only.
impl SubSizeOnGpu<&FheUint<FheUint72Id>> for u128
integer only.Source§fn get_sub_size_on_gpu(&self, rhs: &FheUint72) -> u64
fn get_sub_size_on_gpu(&self, rhs: &FheUint72) -> u64
gpu only.Source§impl SubSizeOnGpu<&FheUint<FheUint80Id>> for u128
Available on crate feature integer only.
impl SubSizeOnGpu<&FheUint<FheUint80Id>> for u128
integer only.Source§fn get_sub_size_on_gpu(&self, rhs: &FheUint80) -> u64
fn get_sub_size_on_gpu(&self, rhs: &FheUint80) -> u64
gpu only.Source§impl SubSizeOnGpu<&FheUint<FheUint88Id>> for u128
Available on crate feature integer only.
impl SubSizeOnGpu<&FheUint<FheUint88Id>> for u128
integer only.Source§fn get_sub_size_on_gpu(&self, rhs: &FheUint88) -> u64
fn get_sub_size_on_gpu(&self, rhs: &FheUint88) -> u64
gpu only.Source§impl SubSizeOnGpu<&FheUint<FheUint8Id>> for u8
Available on crate feature integer only.
impl SubSizeOnGpu<&FheUint<FheUint8Id>> for u8
integer only.Source§fn get_sub_size_on_gpu(&self, rhs: &FheUint8) -> u64
fn get_sub_size_on_gpu(&self, rhs: &FheUint8) -> u64
gpu only.Source§impl SubSizeOnGpu<&FheUint<FheUint96Id>> for u128
Available on crate feature integer only.
impl SubSizeOnGpu<&FheUint<FheUint96Id>> for u128
integer only.Source§fn get_sub_size_on_gpu(&self, rhs: &FheUint96) -> u64
fn get_sub_size_on_gpu(&self, rhs: &FheUint96) -> u64
gpu only.Source§impl SubSizeOnGpu<FheUint<FheUint1024Id>> for U1024
Available on crate feature integer only.
impl SubSizeOnGpu<FheUint<FheUint1024Id>> for U1024
integer only.Source§fn get_sub_size_on_gpu(&self, rhs: FheUint1024) -> u64
fn get_sub_size_on_gpu(&self, rhs: FheUint1024) -> u64
gpu only.Source§impl SubSizeOnGpu<FheUint<FheUint104Id>> for u128
Available on crate feature integer only.
impl SubSizeOnGpu<FheUint<FheUint104Id>> for u128
integer only.Source§fn get_sub_size_on_gpu(&self, rhs: FheUint104) -> u64
fn get_sub_size_on_gpu(&self, rhs: FheUint104) -> u64
gpu only.Source§impl SubSizeOnGpu<FheUint<FheUint10Id>> for u16
Available on crate feature integer only.
impl SubSizeOnGpu<FheUint<FheUint10Id>> for u16
integer only.Source§fn get_sub_size_on_gpu(&self, rhs: FheUint10) -> u64
fn get_sub_size_on_gpu(&self, rhs: FheUint10) -> u64
gpu only.Source§impl SubSizeOnGpu<FheUint<FheUint112Id>> for u128
Available on crate feature integer only.
impl SubSizeOnGpu<FheUint<FheUint112Id>> for u128
integer only.Source§fn get_sub_size_on_gpu(&self, rhs: FheUint112) -> u64
fn get_sub_size_on_gpu(&self, rhs: FheUint112) -> u64
gpu only.Source§impl SubSizeOnGpu<FheUint<FheUint120Id>> for u128
Available on crate feature integer only.
impl SubSizeOnGpu<FheUint<FheUint120Id>> for u128
integer only.Source§fn get_sub_size_on_gpu(&self, rhs: FheUint120) -> u64
fn get_sub_size_on_gpu(&self, rhs: FheUint120) -> u64
gpu only.Source§impl SubSizeOnGpu<FheUint<FheUint128Id>> for u128
Available on crate feature integer only.
impl SubSizeOnGpu<FheUint<FheUint128Id>> for u128
integer only.Source§fn get_sub_size_on_gpu(&self, rhs: FheUint128) -> u64
fn get_sub_size_on_gpu(&self, rhs: FheUint128) -> u64
gpu only.Source§impl SubSizeOnGpu<FheUint<FheUint12Id>> for u16
Available on crate feature integer only.
impl SubSizeOnGpu<FheUint<FheUint12Id>> for u16
integer only.Source§fn get_sub_size_on_gpu(&self, rhs: FheUint12) -> u64
fn get_sub_size_on_gpu(&self, rhs: FheUint12) -> u64
gpu only.Source§impl SubSizeOnGpu<FheUint<FheUint136Id>> for U256
Available on crate feature integer only.
impl SubSizeOnGpu<FheUint<FheUint136Id>> for U256
integer only.Source§fn get_sub_size_on_gpu(&self, rhs: FheUint136) -> u64
fn get_sub_size_on_gpu(&self, rhs: FheUint136) -> u64
gpu only.Source§impl SubSizeOnGpu<FheUint<FheUint144Id>> for U256
Available on crate feature integer only.
impl SubSizeOnGpu<FheUint<FheUint144Id>> for U256
integer only.Source§fn get_sub_size_on_gpu(&self, rhs: FheUint144) -> u64
fn get_sub_size_on_gpu(&self, rhs: FheUint144) -> u64
gpu only.Source§impl SubSizeOnGpu<FheUint<FheUint14Id>> for u16
Available on crate feature integer only.
impl SubSizeOnGpu<FheUint<FheUint14Id>> for u16
integer only.Source§fn get_sub_size_on_gpu(&self, rhs: FheUint14) -> u64
fn get_sub_size_on_gpu(&self, rhs: FheUint14) -> u64
gpu only.Source§impl SubSizeOnGpu<FheUint<FheUint152Id>> for U256
Available on crate feature integer only.
impl SubSizeOnGpu<FheUint<FheUint152Id>> for U256
integer only.Source§fn get_sub_size_on_gpu(&self, rhs: FheUint152) -> u64
fn get_sub_size_on_gpu(&self, rhs: FheUint152) -> u64
gpu only.Source§impl SubSizeOnGpu<FheUint<FheUint160Id>> for U256
Available on crate feature integer only.
impl SubSizeOnGpu<FheUint<FheUint160Id>> for U256
integer only.Source§fn get_sub_size_on_gpu(&self, rhs: FheUint160) -> u64
fn get_sub_size_on_gpu(&self, rhs: FheUint160) -> u64
gpu only.Source§impl SubSizeOnGpu<FheUint<FheUint168Id>> for U256
Available on crate feature integer only.
impl SubSizeOnGpu<FheUint<FheUint168Id>> for U256
integer only.Source§fn get_sub_size_on_gpu(&self, rhs: FheUint168) -> u64
fn get_sub_size_on_gpu(&self, rhs: FheUint168) -> u64
gpu only.Source§impl SubSizeOnGpu<FheUint<FheUint16Id>> for u16
Available on crate feature integer only.
impl SubSizeOnGpu<FheUint<FheUint16Id>> for u16
integer only.Source§fn get_sub_size_on_gpu(&self, rhs: FheUint16) -> u64
fn get_sub_size_on_gpu(&self, rhs: FheUint16) -> u64
gpu only.Source§impl SubSizeOnGpu<FheUint<FheUint176Id>> for U256
Available on crate feature integer only.
impl SubSizeOnGpu<FheUint<FheUint176Id>> for U256
integer only.Source§fn get_sub_size_on_gpu(&self, rhs: FheUint176) -> u64
fn get_sub_size_on_gpu(&self, rhs: FheUint176) -> u64
gpu only.Source§impl SubSizeOnGpu<FheUint<FheUint184Id>> for U256
Available on crate feature integer only.
impl SubSizeOnGpu<FheUint<FheUint184Id>> for U256
integer only.Source§fn get_sub_size_on_gpu(&self, rhs: FheUint184) -> u64
fn get_sub_size_on_gpu(&self, rhs: FheUint184) -> u64
gpu only.Source§impl SubSizeOnGpu<FheUint<FheUint192Id>> for U256
Available on crate feature integer only.
impl SubSizeOnGpu<FheUint<FheUint192Id>> for U256
integer only.Source§fn get_sub_size_on_gpu(&self, rhs: FheUint192) -> u64
fn get_sub_size_on_gpu(&self, rhs: FheUint192) -> u64
gpu only.Source§impl SubSizeOnGpu<FheUint<FheUint200Id>> for U256
Available on crate feature integer only.
impl SubSizeOnGpu<FheUint<FheUint200Id>> for U256
integer only.Source§fn get_sub_size_on_gpu(&self, rhs: FheUint200) -> u64
fn get_sub_size_on_gpu(&self, rhs: FheUint200) -> u64
gpu only.Source§impl SubSizeOnGpu<FheUint<FheUint2048Id>> for U2048
Available on crate feature integer only.
impl SubSizeOnGpu<FheUint<FheUint2048Id>> for U2048
integer only.Source§fn get_sub_size_on_gpu(&self, rhs: FheUint2048) -> u64
fn get_sub_size_on_gpu(&self, rhs: FheUint2048) -> u64
gpu only.Source§impl SubSizeOnGpu<FheUint<FheUint208Id>> for U256
Available on crate feature integer only.
impl SubSizeOnGpu<FheUint<FheUint208Id>> for U256
integer only.Source§fn get_sub_size_on_gpu(&self, rhs: FheUint208) -> u64
fn get_sub_size_on_gpu(&self, rhs: FheUint208) -> u64
gpu only.Source§impl SubSizeOnGpu<FheUint<FheUint216Id>> for U256
Available on crate feature integer only.
impl SubSizeOnGpu<FheUint<FheUint216Id>> for U256
integer only.Source§fn get_sub_size_on_gpu(&self, rhs: FheUint216) -> u64
fn get_sub_size_on_gpu(&self, rhs: FheUint216) -> u64
gpu only.Source§impl SubSizeOnGpu<FheUint<FheUint224Id>> for U256
Available on crate feature integer only.
impl SubSizeOnGpu<FheUint<FheUint224Id>> for U256
integer only.Source§fn get_sub_size_on_gpu(&self, rhs: FheUint224) -> u64
fn get_sub_size_on_gpu(&self, rhs: FheUint224) -> u64
gpu only.Source§impl SubSizeOnGpu<FheUint<FheUint232Id>> for U256
Available on crate feature integer only.
impl SubSizeOnGpu<FheUint<FheUint232Id>> for U256
integer only.Source§fn get_sub_size_on_gpu(&self, rhs: FheUint232) -> u64
fn get_sub_size_on_gpu(&self, rhs: FheUint232) -> u64
gpu only.Source§impl SubSizeOnGpu<FheUint<FheUint240Id>> for U256
Available on crate feature integer only.
impl SubSizeOnGpu<FheUint<FheUint240Id>> for U256
integer only.Source§fn get_sub_size_on_gpu(&self, rhs: FheUint240) -> u64
fn get_sub_size_on_gpu(&self, rhs: FheUint240) -> u64
gpu only.Source§impl SubSizeOnGpu<FheUint<FheUint248Id>> for U256
Available on crate feature integer only.
impl SubSizeOnGpu<FheUint<FheUint248Id>> for U256
integer only.Source§fn get_sub_size_on_gpu(&self, rhs: FheUint248) -> u64
fn get_sub_size_on_gpu(&self, rhs: FheUint248) -> u64
gpu only.Source§impl SubSizeOnGpu<FheUint<FheUint24Id>> for u32
Available on crate feature integer only.
impl SubSizeOnGpu<FheUint<FheUint24Id>> for u32
integer only.Source§fn get_sub_size_on_gpu(&self, rhs: FheUint24) -> u64
fn get_sub_size_on_gpu(&self, rhs: FheUint24) -> u64
gpu only.Source§impl SubSizeOnGpu<FheUint<FheUint256Id>> for U256
Available on crate feature integer only.
impl SubSizeOnGpu<FheUint<FheUint256Id>> for U256
integer only.Source§fn get_sub_size_on_gpu(&self, rhs: FheUint256) -> u64
fn get_sub_size_on_gpu(&self, rhs: FheUint256) -> u64
gpu only.Source§impl SubSizeOnGpu<FheUint<FheUint2Id>> for u8
Available on crate feature integer only.
impl SubSizeOnGpu<FheUint<FheUint2Id>> for u8
integer only.Source§fn get_sub_size_on_gpu(&self, rhs: FheUint2) -> u64
fn get_sub_size_on_gpu(&self, rhs: FheUint2) -> u64
gpu only.Source§impl SubSizeOnGpu<FheUint<FheUint32Id>> for u32
Available on crate feature integer only.
impl SubSizeOnGpu<FheUint<FheUint32Id>> for u32
integer only.Source§fn get_sub_size_on_gpu(&self, rhs: FheUint32) -> u64
fn get_sub_size_on_gpu(&self, rhs: FheUint32) -> u64
gpu only.Source§impl SubSizeOnGpu<FheUint<FheUint40Id>> for u64
Available on crate feature integer only.
impl SubSizeOnGpu<FheUint<FheUint40Id>> for u64
integer only.Source§fn get_sub_size_on_gpu(&self, rhs: FheUint40) -> u64
fn get_sub_size_on_gpu(&self, rhs: FheUint40) -> u64
gpu only.Source§impl SubSizeOnGpu<FheUint<FheUint48Id>> for u64
Available on crate feature integer only.
impl SubSizeOnGpu<FheUint<FheUint48Id>> for u64
integer only.Source§fn get_sub_size_on_gpu(&self, rhs: FheUint48) -> u64
fn get_sub_size_on_gpu(&self, rhs: FheUint48) -> u64
gpu only.Source§impl SubSizeOnGpu<FheUint<FheUint4Id>> for u8
Available on crate feature integer only.
impl SubSizeOnGpu<FheUint<FheUint4Id>> for u8
integer only.Source§fn get_sub_size_on_gpu(&self, rhs: FheUint4) -> u64
fn get_sub_size_on_gpu(&self, rhs: FheUint4) -> u64
gpu only.Source§impl SubSizeOnGpu<FheUint<FheUint512Id>> for U512
Available on crate feature integer only.
impl SubSizeOnGpu<FheUint<FheUint512Id>> for U512
integer only.Source§fn get_sub_size_on_gpu(&self, rhs: FheUint512) -> u64
fn get_sub_size_on_gpu(&self, rhs: FheUint512) -> u64
gpu only.Source§impl SubSizeOnGpu<FheUint<FheUint56Id>> for u64
Available on crate feature integer only.
impl SubSizeOnGpu<FheUint<FheUint56Id>> for u64
integer only.Source§fn get_sub_size_on_gpu(&self, rhs: FheUint56) -> u64
fn get_sub_size_on_gpu(&self, rhs: FheUint56) -> u64
gpu only.Source§impl SubSizeOnGpu<FheUint<FheUint64Id>> for u64
Available on crate feature integer only.
impl SubSizeOnGpu<FheUint<FheUint64Id>> for u64
integer only.Source§fn get_sub_size_on_gpu(&self, rhs: FheUint64) -> u64
fn get_sub_size_on_gpu(&self, rhs: FheUint64) -> u64
gpu only.Source§impl SubSizeOnGpu<FheUint<FheUint6Id>> for u8
Available on crate feature integer only.
impl SubSizeOnGpu<FheUint<FheUint6Id>> for u8
integer only.Source§fn get_sub_size_on_gpu(&self, rhs: FheUint6) -> u64
fn get_sub_size_on_gpu(&self, rhs: FheUint6) -> u64
gpu only.Source§impl SubSizeOnGpu<FheUint<FheUint72Id>> for u128
Available on crate feature integer only.
impl SubSizeOnGpu<FheUint<FheUint72Id>> for u128
integer only.Source§fn get_sub_size_on_gpu(&self, rhs: FheUint72) -> u64
fn get_sub_size_on_gpu(&self, rhs: FheUint72) -> u64
gpu only.Source§impl SubSizeOnGpu<FheUint<FheUint80Id>> for u128
Available on crate feature integer only.
impl SubSizeOnGpu<FheUint<FheUint80Id>> for u128
integer only.Source§fn get_sub_size_on_gpu(&self, rhs: FheUint80) -> u64
fn get_sub_size_on_gpu(&self, rhs: FheUint80) -> u64
gpu only.Source§impl SubSizeOnGpu<FheUint<FheUint88Id>> for u128
Available on crate feature integer only.
impl SubSizeOnGpu<FheUint<FheUint88Id>> for u128
integer only.Source§fn get_sub_size_on_gpu(&self, rhs: FheUint88) -> u64
fn get_sub_size_on_gpu(&self, rhs: FheUint88) -> u64
gpu only.Source§impl SubSizeOnGpu<FheUint<FheUint8Id>> for u8
Available on crate feature integer only.
impl SubSizeOnGpu<FheUint<FheUint8Id>> for u8
integer only.Source§fn get_sub_size_on_gpu(&self, rhs: FheUint8) -> u64
fn get_sub_size_on_gpu(&self, rhs: FheUint8) -> u64
gpu only.Source§impl SubSizeOnGpu<FheUint<FheUint96Id>> for u128
Available on crate feature integer only.
impl SubSizeOnGpu<FheUint<FheUint96Id>> for u128
integer only.Source§fn get_sub_size_on_gpu(&self, rhs: FheUint96) -> u64
fn get_sub_size_on_gpu(&self, rhs: FheUint96) -> u64
gpu only.Source§impl<Id, I> SubSizeOnGpu<I> for FheUint<Id>
Available on crate features integer and gpu only.
impl<Id, I> SubSizeOnGpu<I> for FheUint<Id>
integer and gpu only.fn get_sub_size_on_gpu(&self, rhs: I) -> u64
Source§impl<'a, Id> Sum<&'a FheUint<Id>> for FheUint<Id>where
Id: FheUintId,
Available on crate feature integer only.
impl<'a, Id> Sum<&'a FheUint<Id>> for FheUint<Id>where
Id: FheUintId,
integer only.Source§fn sum<I: Iterator<Item = &'a Self>>(iter: I) -> Self
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> Sum for FheUint<Id>where
Id: FheUintId,
Available on crate feature integer only.
impl<Id> Sum for FheUint<Id>where
Id: FheUintId,
integer only.Source§fn sum<I: Iterator<Item = Self>>(iter: I) -> Self
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<Id> TryFrom<BaseRadixCiphertext<Ciphertext>> for FheUint<Id>where
Id: FheUintId,
Available on crate feature integer only.
impl<Id> TryFrom<BaseRadixCiphertext<Ciphertext>> for FheUint<Id>where
Id: FheUintId,
integer only.Source§impl<Id: FheUintId> Unversionize for FheUint<Id>where
FheUintVersions<Id>: VersionsDispatch<Self>,
Available on crate feature integer only.
impl<Id: FheUintId> Unversionize for FheUint<Id>where
FheUintVersions<Id>: VersionsDispatch<Self>,
integer only.Source§fn unversionize(
versioned: Self::VersionedOwned,
) -> Result<Self, UnversionizeError>
fn unversionize( versioned: Self::VersionedOwned, ) -> Result<Self, UnversionizeError>
Source§impl<Id: FheUintId> UnversionizeVec for FheUint<Id>where
FheUintVersions<Id>: VersionsDispatch<Self>,
Available on crate feature integer only.
impl<Id: FheUintId> UnversionizeVec for FheUint<Id>where
FheUintVersions<Id>: VersionsDispatch<Self>,
integer only.fn unversionize_vec( versioned: Self::VersionedVec, ) -> Result<Vec<Self>, UnversionizeError>
Source§impl<Id: FheUintId> Upgrade<FheUint<Id>> for FheUintV1<Id>
Available on crate feature integer only.
impl<Id: FheUintId> Upgrade<FheUint<Id>> for FheUintV1<Id>
integer only.Source§impl<Id> Version for FheUint<Id>where
RadixCiphertext: VersionizeOwned + Unversionize + Versionize,
Id: VersionizeOwned + Unversionize + Versionize + FheUintId,
Tag: VersionizeOwned + Unversionize + Versionize,
ReRandomizationMetadata: VersionizeOwned + Unversionize + Versionize,
Available on crate feature integer only.
impl<Id> Version for FheUint<Id>where
RadixCiphertext: VersionizeOwned + Unversionize + Versionize,
Id: VersionizeOwned + Unversionize + Versionize + FheUintId,
Tag: VersionizeOwned + Unversionize + Versionize,
ReRandomizationMetadata: VersionizeOwned + Unversionize + Versionize,
integer only.Source§impl<Id: FheUintId> Versionize for FheUint<Id>where
FheUintVersions<Id>: VersionsDispatch<Self>,
Available on crate feature integer only.
impl<Id: FheUintId> Versionize for FheUint<Id>where
FheUintVersions<Id>: VersionsDispatch<Self>,
integer only.Source§type Versioned<'vers> = <FheUintVersions<Id> as VersionsDispatch<FheUint<Id>>>::Ref<'vers>
where
Id: 'vers
type Versioned<'vers> = <FheUintVersions<Id> as VersionsDispatch<FheUint<Id>>>::Ref<'vers> where Id: 'vers
Source§fn versionize(&self) -> Self::Versioned<'_>
fn versionize(&self) -> Self::Versioned<'_>
Source§impl<Id: FheUintId> VersionizeOwned for FheUint<Id>where
FheUintVersions<Id>: VersionsDispatch<Self>,
Available on crate feature integer only.
impl<Id: FheUintId> VersionizeOwned for FheUint<Id>where
FheUintVersions<Id>: VersionsDispatch<Self>,
integer only.type VersionedOwned = <FheUintVersions<Id> as VersionsDispatch<FheUint<Id>>>::Owned
Source§fn versionize_owned(self) -> Self::VersionedOwned
fn versionize_owned(self) -> Self::VersionedOwned
Source§impl<Id: FheUintId> VersionizeSlice for FheUint<Id>where
FheUintVersions<Id>: VersionsDispatch<Self>,
Available on crate feature integer only.
impl<Id: FheUintId> VersionizeSlice for FheUint<Id>where
FheUintVersions<Id>: VersionsDispatch<Self>,
integer only.type VersionedSlice<'vers> = Vec<<FheUint<Id> as Versionize>::Versioned<'vers>> where Id: 'vers
fn versionize_slice(slice: &[Self]) -> Self::VersionedSlice<'_>
Source§impl<Id: FheUintId> VersionizeVec for FheUint<Id>where
FheUintVersions<Id>: VersionsDispatch<Self>,
Available on crate feature integer only.
impl<Id: FheUintId> VersionizeVec for FheUint<Id>where
FheUintVersions<Id>: VersionsDispatch<Self>,
integer only.type VersionedVec = Vec<<FheUint<Id> as VersionizeOwned>::VersionedOwned>
fn versionize_vec(vec: Vec<Self>) -> Self::VersionedVec
Source§impl<Id: FheUintId> VersionsDispatch<FheUint<Id>> for FheUintVersions<Id>
Available on crate feature integer only.
impl<Id: FheUintId> VersionsDispatch<FheUint<Id>> for FheUintVersions<Id>
integer only.Auto Trait Implementations§
impl<Id> Freeze for FheUint<Id>where
Id: Freeze,
impl<Id> RefUnwindSafe for FheUint<Id>where
Id: RefUnwindSafe,
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> UnwindSafe for FheUint<Id>where
Id: UnwindSafe,
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Clear, Key, T> FheEncrypt<Clear, Key> for Twhere
T: FheTryEncrypt<Clear, Key>,
impl<Clear, Key, T> FheEncrypt<Clear, Key> for Twhere
T: FheTryEncrypt<Clear, Key>,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
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 moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
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 moreSource§impl<Id, Clear> OverflowingAdd<&FheUint<Id>> for Clear
impl<Id, Clear> OverflowingAdd<&FheUint<Id>> for Clear
Source§fn overflowing_add(
self,
other: &FheUint<Id>,
) -> (<Clear as OverflowingAdd<&FheUint<Id>>>::Output, FheBool)
Available on crate feature integer only.
fn overflowing_add( self, other: &FheUint<Id>, ) -> (<Clear as OverflowingAdd<&FheUint<Id>>>::Output, FheBool)
integer only.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));