pub enum ShortintBootstrappingKey<InputScalar>where
InputScalar: UnsignedInteger,{
Classic {
bsk: FourierLweBootstrapKeyOwned,
modulus_switch_noise_reduction_key: ModulusSwitchConfiguration<InputScalar>,
},
MultiBit {
fourier_bsk: FourierLweMultiBitBootstrapKeyOwned,
thread_count: ThreadCount,
deterministic_execution: bool,
},
}Variants§
Classic
Fields
§
modulus_switch_noise_reduction_key: ModulusSwitchConfiguration<InputScalar>MultiBit
Implementations§
Source§impl<InputScalar> ShortintBootstrappingKey<InputScalar>where
InputScalar: UnsignedInteger,
impl<InputScalar> ShortintBootstrappingKey<InputScalar>where
InputScalar: UnsignedInteger,
pub fn input_lwe_dimension(&self) -> LweDimension
pub fn polynomial_size(&self) -> PolynomialSize
pub fn glwe_size(&self) -> GlweSize
pub fn decomposition_base_log(&self) -> DecompositionBaseLog
pub fn decomposition_level_count(&self) -> DecompositionLevelCount
pub fn output_lwe_dimension(&self) -> LweDimension
pub fn bootstrapping_key_size_elements(&self) -> usize
pub fn bootstrapping_key_size_bytes(&self) -> usize
Sourcepub fn deterministic_pbs_execution(&self) -> bool
pub fn deterministic_pbs_execution(&self) -> bool
Indicate whether the PBS algorithm is deterministic, i.e. will produce the same bit-exact output when run twice on the same bit-exact input.
Note: the classic PBS algorithm is always deterministic.
Sourcepub fn set_deterministic_pbs_execution(
&mut self,
new_deterministic_execution: bool,
)
pub fn set_deterministic_pbs_execution( &mut self, new_deterministic_execution: bool, )
Set the choice of PBS algorithm to have the new_deterministic_execution behavior.
Note: the classic PBS algorithm is always deterministic and calling this function on a
ServerKey made from super::ClassicPBSParameters is a no-op.
Sourcepub fn recompute_thread_count(&mut self)
pub fn recompute_thread_count(&mut self)
Recomputes the number of threads required for the multi bit PBS.
It may be useful to call this function when the CPU usage is low and predictable to have a better value for the number of threads to use for the multi bit PBS.
Has not effects for other keys.
pub fn modulus_switch_configuration( &self, ) -> Option<&ModulusSwitchConfiguration<InputScalar>>
Trait Implementations§
Source§impl<InputScalar> Clone for ShortintBootstrappingKey<InputScalar>where
InputScalar: UnsignedInteger + Clone,
impl<InputScalar> Clone for ShortintBootstrappingKey<InputScalar>where
InputScalar: UnsignedInteger + Clone,
Source§fn clone(&self) -> ShortintBootstrappingKey<InputScalar>
fn clone(&self) -> ShortintBootstrappingKey<InputScalar>
Returns a duplicate 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<InputScalar> Debug for ShortintBootstrappingKey<InputScalar>where
InputScalar: UnsignedInteger + Debug,
impl<InputScalar> Debug for ShortintBootstrappingKey<InputScalar>where
InputScalar: UnsignedInteger + Debug,
Source§impl<'de, InputScalar> Deserialize<'de> for ShortintBootstrappingKey<InputScalar>where
InputScalar: UnsignedInteger + for<'a> Deserialize<'a>,
impl<'de, InputScalar> Deserialize<'de> for ShortintBootstrappingKey<InputScalar>where
InputScalar: UnsignedInteger + for<'a> Deserialize<'a>,
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<'a, InputScalar> From<&'a ShortintBootstrappingKey<InputScalar>> for SerializableShortintBootstrappingKey<InputScalar, &'a [c64]>where
InputScalar: UnsignedInteger,
impl<'a, InputScalar> From<&'a ShortintBootstrappingKey<InputScalar>> for SerializableShortintBootstrappingKey<InputScalar, &'a [c64]>where
InputScalar: UnsignedInteger,
Source§fn from(value: &'a ShortintBootstrappingKey<InputScalar>) -> Self
fn from(value: &'a ShortintBootstrappingKey<InputScalar>) -> Self
Converts to this type from the input type.
Source§impl<InputScalar> From<SerializableShortintBootstrappingKey<InputScalar, ABox<[Complex<f64>]>>> for ShortintBootstrappingKey<InputScalar>where
InputScalar: UnsignedInteger,
impl<InputScalar> From<SerializableShortintBootstrappingKey<InputScalar, ABox<[Complex<f64>]>>> for ShortintBootstrappingKey<InputScalar>where
InputScalar: UnsignedInteger,
Source§impl<InputScalar> From<ShortintBootstrappingKey<InputScalar>> for SerializableShortintBootstrappingKey<InputScalar, ABox<[c64]>>where
InputScalar: UnsignedInteger,
impl<InputScalar> From<ShortintBootstrappingKey<InputScalar>> for SerializableShortintBootstrappingKey<InputScalar, ABox<[c64]>>where
InputScalar: UnsignedInteger,
Source§fn from(value: ShortintBootstrappingKey<InputScalar>) -> Self
fn from(value: ShortintBootstrappingKey<InputScalar>) -> Self
Converts to this type from the input type.
Source§impl<InputScalar> ParameterSetConformant for ShortintBootstrappingKey<InputScalar>where
InputScalar: UnsignedInteger,
impl<InputScalar> ParameterSetConformant for ShortintBootstrappingKey<InputScalar>where
InputScalar: UnsignedInteger,
type ParameterSet = PBSConformanceParams
fn is_conformant(&self, parameter_set: &Self::ParameterSet) -> bool
Source§impl<InputScalar> PartialEq for ShortintBootstrappingKey<InputScalar>where
InputScalar: UnsignedInteger + PartialEq,
impl<InputScalar> PartialEq for ShortintBootstrappingKey<InputScalar>where
InputScalar: UnsignedInteger + PartialEq,
Source§fn eq(&self, other: &ShortintBootstrappingKey<InputScalar>) -> bool
fn eq(&self, other: &ShortintBootstrappingKey<InputScalar>) -> bool
Tests for
self and other values to be equal, and is used by ==.Source§impl<InputScalar> Serialize for ShortintBootstrappingKey<InputScalar>where
InputScalar: UnsignedInteger + Serialize,
impl<InputScalar> Serialize for ShortintBootstrappingKey<InputScalar>where
InputScalar: UnsignedInteger + Serialize,
Source§impl<InputScalar> Unversionize for ShortintBootstrappingKey<InputScalar>where
InputScalar: UnsignedInteger,
SerializableShortintBootstrappingKey<InputScalar, ABox<[c64]>>: Unversionize + From<Self> + Into<Self>,
impl<InputScalar> Unversionize for ShortintBootstrappingKey<InputScalar>where
InputScalar: UnsignedInteger,
SerializableShortintBootstrappingKey<InputScalar, ABox<[c64]>>: Unversionize + From<Self> + Into<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<InputScalar> UnversionizeVec for ShortintBootstrappingKey<InputScalar>where
InputScalar: UnsignedInteger,
SerializableShortintBootstrappingKey<InputScalar, ABox<[c64]>>: Unversionize + From<Self> + Into<Self>,
impl<InputScalar> UnversionizeVec for ShortintBootstrappingKey<InputScalar>where
InputScalar: UnsignedInteger,
SerializableShortintBootstrappingKey<InputScalar, ABox<[c64]>>: Unversionize + From<Self> + Into<Self>,
fn unversionize_vec( versioned: Self::VersionedVec, ) -> Result<Vec<Self>, UnversionizeError>
Source§impl<InputScalar> Versionize for ShortintBootstrappingKey<InputScalar>where
InputScalar: UnsignedInteger,
Self: Clone,
SerializableShortintBootstrappingKey<InputScalar, ABox<[c64]>>: VersionizeOwned + From<Self>,
impl<InputScalar> Versionize for ShortintBootstrappingKey<InputScalar>where
InputScalar: UnsignedInteger,
Self: Clone,
SerializableShortintBootstrappingKey<InputScalar, ABox<[c64]>>: VersionizeOwned + From<Self>,
Source§type Versioned<'vers> = <SerializableShortintBootstrappingKey<InputScalar, ABox<[Complex<f64>]>> as VersionizeOwned>::VersionedOwned
where
InputScalar: UnsignedInteger + 'vers
type Versioned<'vers> = <SerializableShortintBootstrappingKey<InputScalar, ABox<[Complex<f64>]>> as VersionizeOwned>::VersionedOwned where InputScalar: UnsignedInteger + '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<InputScalar> VersionizeOwned for ShortintBootstrappingKey<InputScalar>where
InputScalar: UnsignedInteger,
SerializableShortintBootstrappingKey<InputScalar, ABox<[c64]>>: VersionizeOwned + From<Self>,
impl<InputScalar> VersionizeOwned for ShortintBootstrappingKey<InputScalar>where
InputScalar: UnsignedInteger,
SerializableShortintBootstrappingKey<InputScalar, ABox<[c64]>>: VersionizeOwned + From<Self>,
type VersionedOwned = <SerializableShortintBootstrappingKey<InputScalar, ABox<[Complex<f64>]>> as VersionizeOwned>::VersionedOwned
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<InputScalar> VersionizeSlice for ShortintBootstrappingKey<InputScalar>where
InputScalar: UnsignedInteger,
Self: Clone,
SerializableShortintBootstrappingKey<InputScalar, ABox<[c64]>>: VersionizeOwned + From<Self>,
impl<InputScalar> VersionizeSlice for ShortintBootstrappingKey<InputScalar>where
InputScalar: UnsignedInteger,
Self: Clone,
SerializableShortintBootstrappingKey<InputScalar, ABox<[c64]>>: VersionizeOwned + From<Self>,
type VersionedSlice<'vers> = Vec<<ShortintBootstrappingKey<InputScalar> as Versionize>::Versioned<'vers>> where InputScalar: UnsignedInteger + 'vers
fn versionize_slice(slice: &[Self]) -> Self::VersionedSlice<'_>
Source§impl<InputScalar> VersionizeVec for ShortintBootstrappingKey<InputScalar>where
InputScalar: UnsignedInteger,
SerializableShortintBootstrappingKey<InputScalar, ABox<[c64]>>: VersionizeOwned + From<Self>,
impl<InputScalar> VersionizeVec for ShortintBootstrappingKey<InputScalar>where
InputScalar: UnsignedInteger,
SerializableShortintBootstrappingKey<InputScalar, ABox<[c64]>>: VersionizeOwned + From<Self>,
type VersionedVec = Vec<<ShortintBootstrappingKey<InputScalar> as VersionizeOwned>::VersionedOwned>
fn versionize_vec(vec: Vec<Self>) -> Self::VersionedVec
impl<InputScalar> StructuralPartialEq for ShortintBootstrappingKey<InputScalar>where
InputScalar: UnsignedInteger,
Auto Trait Implementations§
impl<InputScalar> Freeze for ShortintBootstrappingKey<InputScalar>
impl<InputScalar> RefUnwindSafe for ShortintBootstrappingKey<InputScalar>where
InputScalar: RefUnwindSafe,
impl<InputScalar> Send for ShortintBootstrappingKey<InputScalar>
impl<InputScalar> Sync for ShortintBootstrappingKey<InputScalar>
impl<InputScalar> Unpin for ShortintBootstrappingKey<InputScalar>where
InputScalar: Unpin,
impl<InputScalar> UnwindSafe for ShortintBootstrappingKey<InputScalar>where
InputScalar: 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
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<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