pub enum AtomicPatternKind {
Standard(PBSOrder),
KeySwitch32,
}Available on crate feature
shortint only.Expand description
A choice of atomic pattern
Variants§
Standard(PBSOrder)
The Standard TFHE Atomic Pattern, that correspond to what was done before TFHE-rs 1.2.
This is actually a “meta” atomic pattern, that can be configured in several ways:
- PBS order (KS -> Bootstrap or Bootstrap -> Keyswitch)
- PBS kind (classic or multibit)
KeySwitch32
Similar to the standard AP, but the KeySwitch also changes the scalar type to u32, supporting modulus smaller or equal to $$2^{32}$$.
This allows to reduce the size of the keyswitching key. This AP only supports the KS -> PBS order.
Trait Implementations§
Source§impl Clone for AtomicPatternKind
impl Clone for AtomicPatternKind
Source§fn clone(&self) -> AtomicPatternKind
fn clone(&self) -> AtomicPatternKind
Returns a copy of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for AtomicPatternKind
impl Debug for AtomicPatternKind
Source§impl<'de> Deserialize<'de> for AtomicPatternKind
impl<'de> Deserialize<'de> for AtomicPatternKind
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>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl From<AtomicPatternKind> for CompactCiphertextListExpansionKind
impl From<AtomicPatternKind> for CompactCiphertextListExpansionKind
Source§fn from(value: AtomicPatternKind) -> Self
fn from(value: AtomicPatternKind) -> Self
Converts to this type from the input type.
Source§impl PartialEq for AtomicPatternKind
impl PartialEq for AtomicPatternKind
Source§impl Serialize for AtomicPatternKind
impl Serialize for AtomicPatternKind
Source§impl Unversionize for AtomicPatternKindwhere
AtomicPatternKindVersions: VersionsDispatch<Self>,
impl Unversionize for AtomicPatternKindwhere
AtomicPatternKindVersions: VersionsDispatch<Self>,
Source§fn unversionize(
versioned: Self::VersionedOwned,
) -> Result<Self, UnversionizeError>
fn unversionize( versioned: Self::VersionedOwned, ) -> Result<Self, UnversionizeError>
Creates an object from a versioned enum, and eventually upgrades from previous
variants.
Source§impl UnversionizeVec for AtomicPatternKindwhere
AtomicPatternKindVersions: VersionsDispatch<Self>,
impl UnversionizeVec for AtomicPatternKindwhere
AtomicPatternKindVersions: VersionsDispatch<Self>,
fn unversionize_vec( versioned: Self::VersionedVec, ) -> Result<Vec<Self>, UnversionizeError>
Source§impl Version for AtomicPatternKind
impl Version for AtomicPatternKind
Source§impl Versionize for AtomicPatternKindwhere
AtomicPatternKindVersions: VersionsDispatch<Self>,
impl Versionize for AtomicPatternKindwhere
AtomicPatternKindVersions: VersionsDispatch<Self>,
Source§type Versioned<'vers> = <AtomicPatternKindVersions as VersionsDispatch<AtomicPatternKind>>::Ref<'vers>
type Versioned<'vers> = <AtomicPatternKindVersions as VersionsDispatch<AtomicPatternKind>>::Ref<'vers>
The equivalent versioned type. It should have a variant for each version.
It may own the underlying data or only hold a read-only reference to it.
Source§fn versionize(&self) -> Self::Versioned<'_>
fn versionize(&self) -> Self::Versioned<'_>
Wraps the object into a versioned enum with a variant for each version. This will
use references on the underlying types if possible.
Source§impl VersionizeOwned for AtomicPatternKindwhere
AtomicPatternKindVersions: VersionsDispatch<Self>,
impl VersionizeOwned for AtomicPatternKindwhere
AtomicPatternKindVersions: VersionsDispatch<Self>,
type VersionedOwned = <AtomicPatternKindVersions as VersionsDispatch<AtomicPatternKind>>::Owned
Source§fn versionize_owned(self) -> Self::VersionedOwned
fn versionize_owned(self) -> Self::VersionedOwned
Wraps the object into a versioned enum with a variant for each version. This will
clone the underlying types.
Source§impl VersionizeSlice for AtomicPatternKindwhere
AtomicPatternKindVersions: VersionsDispatch<Self>,
impl VersionizeSlice for AtomicPatternKindwhere
AtomicPatternKindVersions: VersionsDispatch<Self>,
type VersionedSlice<'vers> = Vec<<AtomicPatternKind as Versionize>::Versioned<'vers>>
fn versionize_slice(slice: &[Self]) -> Self::VersionedSlice<'_>
Source§impl VersionizeVec for AtomicPatternKindwhere
AtomicPatternKindVersions: VersionsDispatch<Self>,
impl VersionizeVec for AtomicPatternKindwhere
AtomicPatternKindVersions: VersionsDispatch<Self>,
type VersionedVec = Vec<<AtomicPatternKind as VersionizeOwned>::VersionedOwned>
fn versionize_vec(vec: Vec<Self>) -> Self::VersionedVec
Source§impl VersionsDispatch<AtomicPatternKind> for AtomicPatternKindVersionswhere
AtomicPatternKind: Version,
impl VersionsDispatch<AtomicPatternKind> for AtomicPatternKindVersionswhere
AtomicPatternKind: Version,
impl Copy for AtomicPatternKind
impl Eq for AtomicPatternKind
impl StructuralPartialEq for AtomicPatternKind
Auto Trait Implementations§
impl Freeze for AtomicPatternKind
impl RefUnwindSafe for AtomicPatternKind
impl Send for AtomicPatternKind
impl Sync for AtomicPatternKind
impl Unpin for AtomicPatternKind
impl UnwindSafe for AtomicPatternKind
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
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.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>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read 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>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more