pub struct FloatEncoderVector(/* private fields */);Expand description
An encoder for 64 bits floating point numbers.
Trait Implementations§
Source§impl AbstractEntity for FloatEncoderVector
impl AbstractEntity for FloatEncoderVector
Source§type Kind = EncoderVectorKind
type Kind = EncoderVectorKind
Source§impl CleartextVectorEncodingEngine<FloatEncoderVector, CleartextVectorF64, PlaintextVector32> for DefaultEngine
§Description:
Implementation of CleartextVectorEncodingEngine for DefaultEngine that encodes 64 bits
floating point numbers to 32 bits integers.
impl CleartextVectorEncodingEngine<FloatEncoderVector, CleartextVectorF64, PlaintextVector32> for DefaultEngine
§Description:
Implementation of CleartextVectorEncodingEngine for DefaultEngine that encodes 64 bits
floating point numbers to 32 bits integers.
Source§fn encode_cleartext_vector(
&mut self,
encoder_vector: &FloatEncoderVector,
cleartext_vector: &CleartextVectorF64,
) -> Result<PlaintextVector32, CleartextVectorEncodingError<Self::EngineError>>
fn encode_cleartext_vector( &mut self, encoder_vector: &FloatEncoderVector, cleartext_vector: &CleartextVectorF64, ) -> Result<PlaintextVector32, CleartextVectorEncodingError<Self::EngineError>>
§Example:
use concrete_core::prelude::*;
// Unix seeder must be given a secret input.
// Here we just give it 0, which is totally unsafe.
const UNSAFE_SECRET: u128 = 0;
let mut engine = DefaultEngine::new(Box::new(UnixSeeder::new(UNSAFE_SECRET)))?;
let encoder_vector = engine.create_encoder_vector_from(&vec![
FloatEncoderMinMaxConfig {
min: 0.,
max: 10.,
nb_bit_precision: 8,
nb_bit_padding: 1,
};
100
])?;
let cleartext_vector: CleartextVectorF64 =
engine.create_cleartext_vector_from(&vec![5.; 100])?;
let plaintext_vector: PlaintextVector32 =
engine.encode_cleartext_vector(&encoder_vector, &cleartext_vector)?;
assert_eq!(
cleartext_vector.cleartext_count().0,
plaintext_vector.plaintext_count().0
);Source§unsafe fn encode_cleartext_vector_unchecked(
&mut self,
encoder_vector: &FloatEncoderVector,
cleartext_vector: &CleartextVectorF64,
) -> PlaintextVector32
unsafe fn encode_cleartext_vector_unchecked( &mut self, encoder_vector: &FloatEncoderVector, cleartext_vector: &CleartextVectorF64, ) -> PlaintextVector32
Source§impl CleartextVectorEncodingEngine<FloatEncoderVector, CleartextVectorF64, PlaintextVector64> for DefaultEngine
§Description:
Implementation of CleartextVectorEncodingEngine for DefaultEngine that encodes 64 bits
floating point numbers to 64 bits integers.
impl CleartextVectorEncodingEngine<FloatEncoderVector, CleartextVectorF64, PlaintextVector64> for DefaultEngine
§Description:
Implementation of CleartextVectorEncodingEngine for DefaultEngine that encodes 64 bits
floating point numbers to 64 bits integers.
Source§fn encode_cleartext_vector(
&mut self,
encoder_vector: &FloatEncoderVector,
cleartext_vector: &CleartextVectorF64,
) -> Result<PlaintextVector64, CleartextVectorEncodingError<Self::EngineError>>
fn encode_cleartext_vector( &mut self, encoder_vector: &FloatEncoderVector, cleartext_vector: &CleartextVectorF64, ) -> Result<PlaintextVector64, CleartextVectorEncodingError<Self::EngineError>>
§Example:
use concrete_core::prelude::*;
// Unix seeder must be given a secret input.
// Here we just give it 0, which is totally unsafe.
const UNSAFE_SECRET: u128 = 0;
let mut engine = DefaultEngine::new(Box::new(UnixSeeder::new(UNSAFE_SECRET)))?;
let encoder_vector = engine.create_encoder_vector_from(&vec![
FloatEncoderMinMaxConfig {
min: 0.,
max: 10.,
nb_bit_precision: 8,
nb_bit_padding: 1,
};
100
])?;
let cleartext_vector: CleartextVectorF64 =
engine.create_cleartext_vector_from(&vec![5.; 100])?;
let plaintext_vector: PlaintextVector64 =
engine.encode_cleartext_vector(&encoder_vector, &cleartext_vector)?;
assert_eq!(
cleartext_vector.cleartext_count().0,
plaintext_vector.plaintext_count().0
);Source§unsafe fn encode_cleartext_vector_unchecked(
&mut self,
encoder_vector: &FloatEncoderVector,
cleartext_vector: &CleartextVectorF64,
) -> PlaintextVector64
unsafe fn encode_cleartext_vector_unchecked( &mut self, encoder_vector: &FloatEncoderVector, cleartext_vector: &CleartextVectorF64, ) -> PlaintextVector64
Source§impl Debug for FloatEncoderVector
impl Debug for FloatEncoderVector
Source§impl EncoderVectorCreationEngine<FloatEncoderCenterRadiusConfig, FloatEncoderVector> for DefaultEngine
§Description:
Implementation of EncoderVectorCreationEngine for DefaultEngine that creates an encoder
vector to encode vectors of 64 bits floating point numbers.
impl EncoderVectorCreationEngine<FloatEncoderCenterRadiusConfig, FloatEncoderVector> for DefaultEngine
§Description:
Implementation of EncoderVectorCreationEngine for DefaultEngine that creates an encoder
vector to encode vectors of 64 bits floating point numbers.
Source§fn create_encoder_vector_from(
&mut self,
config: &[FloatEncoderCenterRadiusConfig],
) -> Result<FloatEncoderVector, EncoderVectorCreationError<Self::EngineError>>
fn create_encoder_vector_from( &mut self, config: &[FloatEncoderCenterRadiusConfig], ) -> Result<FloatEncoderVector, EncoderVectorCreationError<Self::EngineError>>
§Example:
use concrete_core::prelude::*;
// Unix seeder must be given a secret input.
// Here we just give it 0, which is totally unsafe.
const UNSAFE_SECRET: u128 = 0;
let mut engine = DefaultEngine::new(Box::new(UnixSeeder::new(UNSAFE_SECRET)))?;
let encoder_vector = engine.create_encoder_vector_from(&vec![
FloatEncoderCenterRadiusConfig {
center: 10.,
radius: 5.,
nb_bit_precision: 8,
nb_bit_padding: 1,
};
1
])?;Source§unsafe fn create_encoder_vector_from_unchecked(
&mut self,
config: &[FloatEncoderCenterRadiusConfig],
) -> FloatEncoderVector
unsafe fn create_encoder_vector_from_unchecked( &mut self, config: &[FloatEncoderCenterRadiusConfig], ) -> FloatEncoderVector
Source§impl EncoderVectorCreationEngine<FloatEncoderMinMaxConfig, FloatEncoderVector> for DefaultEngine
§Description:
Implementation of EncoderVectorCreationEngine for DefaultEngine that creates an encoder
vector to encode vectors of 64 bits floating point numbers.
impl EncoderVectorCreationEngine<FloatEncoderMinMaxConfig, FloatEncoderVector> for DefaultEngine
§Description:
Implementation of EncoderVectorCreationEngine for DefaultEngine that creates an encoder
vector to encode vectors of 64 bits floating point numbers.
Source§fn create_encoder_vector_from(
&mut self,
config: &[FloatEncoderMinMaxConfig],
) -> Result<FloatEncoderVector, EncoderVectorCreationError<Self::EngineError>>
fn create_encoder_vector_from( &mut self, config: &[FloatEncoderMinMaxConfig], ) -> Result<FloatEncoderVector, EncoderVectorCreationError<Self::EngineError>>
§Example:
use concrete_core::prelude::*;
// Unix seeder must be given a secret input.
// Here we just give it 0, which is totally unsafe.
const UNSAFE_SECRET: u128 = 0;
let mut engine = DefaultEngine::new(Box::new(UnixSeeder::new(UNSAFE_SECRET)))?;
let encoder_vector = engine.create_encoder_vector_from(
vec![
FloatEncoderMinMaxConfig {
min: 0.,
max: 10.,
nb_bit_precision: 8,
nb_bit_padding: 1,
};
1
]
.as_slice(),
)?;Source§unsafe fn create_encoder_vector_from_unchecked(
&mut self,
config: &[FloatEncoderMinMaxConfig],
) -> FloatEncoderVector
unsafe fn create_encoder_vector_from_unchecked( &mut self, config: &[FloatEncoderMinMaxConfig], ) -> FloatEncoderVector
Source§impl EncoderVectorEntity for FloatEncoderVector
impl EncoderVectorEntity for FloatEncoderVector
Source§fn encoder_count(&self) -> EncoderCount
fn encoder_count(&self) -> EncoderCount
Source§impl EntityDeserializationEngine<&[u8], FloatEncoderVector> for DefaultSerializationEngine
§Description:
Implementation of EntityDeserializationEngine for DefaultSerializationEngine that
operates on 64 bits integers. It deserializes a float encoder vector entity.
impl EntityDeserializationEngine<&[u8], FloatEncoderVector> for DefaultSerializationEngine
§Description:
Implementation of EntityDeserializationEngine for DefaultSerializationEngine that
operates on 64 bits integers. It deserializes a float encoder vector entity.
Source§fn deserialize(
&mut self,
serialized: &[u8],
) -> Result<FloatEncoderVector, EntityDeserializationError<Self::EngineError>>
fn deserialize( &mut self, serialized: &[u8], ) -> Result<FloatEncoderVector, EntityDeserializationError<Self::EngineError>>
§Example:
use concrete_core::prelude::PlaintextCount;
use concrete_core::prelude::*;
// Unix seeder must be given a secret input.
// Here we just give it 0, which is totally unsafe.
const UNSAFE_SECRET: u128 = 0;
let mut engine = DefaultEngine::new(Box::new(UnixSeeder::new(UNSAFE_SECRET)))?;
let encoder_vector = engine.create_encoder_vector_from(&vec![
FloatEncoderCenterRadiusConfig {
center: 10.,
radius: 5.,
nb_bit_precision: 8,
nb_bit_padding: 1,
};
1
])?;
let mut serialization_engine = DefaultSerializationEngine::new(())?;
let serialized = serialization_engine.serialize(&encoder_vector)?;
let recovered = serialization_engine.deserialize(serialized.as_slice())?;
assert_eq!(encoder_vector, recovered);
Source§unsafe fn deserialize_unchecked(
&mut self,
serialized: &[u8],
) -> FloatEncoderVector
unsafe fn deserialize_unchecked( &mut self, serialized: &[u8], ) -> FloatEncoderVector
Source§impl EntitySerializationEngine<FloatEncoderVector, Vec<u8>> for DefaultSerializationEngine
§Description:
Implementation of EntitySerializationEngine for DefaultSerializationEngine that operates
on 64 bits integers. It serializes a float encoder vector entity.
impl EntitySerializationEngine<FloatEncoderVector, Vec<u8>> for DefaultSerializationEngine
§Description:
Implementation of EntitySerializationEngine for DefaultSerializationEngine that operates
on 64 bits integers. It serializes a float encoder vector entity.
Source§fn serialize(
&mut self,
entity: &FloatEncoderVector,
) -> Result<Vec<u8>, EntitySerializationError<Self::EngineError>>
fn serialize( &mut self, entity: &FloatEncoderVector, ) -> Result<Vec<u8>, EntitySerializationError<Self::EngineError>>
§Example:
use concrete_core::prelude::PlaintextCount;
use concrete_core::prelude::*;
// Unix seeder must be given a secret input.
// Here we just give it 0, which is totally unsafe.
const UNSAFE_SECRET: u128 = 0;
let mut engine = DefaultEngine::new(Box::new(UnixSeeder::new(UNSAFE_SECRET)))?;
let encoder_vector = engine.create_encoder_vector_from(&vec![
FloatEncoderCenterRadiusConfig {
center: 10.,
radius: 5.,
nb_bit_precision: 8,
nb_bit_padding: 1,
};
1
])?;
let mut serialization_engine = DefaultSerializationEngine::new(())?;
let serialized = serialization_engine.serialize(&encoder_vector)?;
let recovered = serialization_engine.deserialize(serialized.as_slice())?;
assert_eq!(encoder_vector, recovered);
Source§unsafe fn serialize_unchecked(&mut self, entity: &FloatEncoderVector) -> Vec<u8> ⓘ
unsafe fn serialize_unchecked(&mut self, entity: &FloatEncoderVector) -> Vec<u8> ⓘ
Source§impl PartialEq for FloatEncoderVector
impl PartialEq for FloatEncoderVector
Source§impl PlaintextVectorDecodingEngine<FloatEncoderVector, PlaintextVector32, CleartextVectorF64> for DefaultEngine
§Description:
Implementation of PlaintextVectorDecodingEngine for DefaultEngine that decodes 32 bits
integers to 64 bits floating point numbers.
impl PlaintextVectorDecodingEngine<FloatEncoderVector, PlaintextVector32, CleartextVectorF64> for DefaultEngine
§Description:
Implementation of PlaintextVectorDecodingEngine for DefaultEngine that decodes 32 bits
integers to 64 bits floating point numbers.
Source§fn decode_plaintext_vector(
&mut self,
encoder: &FloatEncoderVector,
input: &PlaintextVector32,
) -> Result<CleartextVectorF64, PlaintextVectorDecodingError<Self::EngineError>>
fn decode_plaintext_vector( &mut self, encoder: &FloatEncoderVector, input: &PlaintextVector32, ) -> Result<CleartextVectorF64, PlaintextVectorDecodingError<Self::EngineError>>
§Example:
use concrete_core::prelude::*;
// Unix seeder must be given a secret input.
// Here we just give it 0, which is totally unsafe.
const UNSAFE_SECRET: u128 = 0;
let mut engine = DefaultEngine::new(Box::new(UnixSeeder::new(UNSAFE_SECRET)))?;
let encoder_vector = engine.create_encoder_vector_from(&vec![
FloatEncoderMinMaxConfig {
min: 0.,
max: 10.,
nb_bit_precision: 8,
nb_bit_padding: 1,
};
100
])?;
let cleartext_vector: CleartextVectorF64 =
engine.create_cleartext_vector_from(&vec![5.; 100])?;
let plaintext_vector: PlaintextVector32 =
engine.encode_cleartext_vector(&encoder_vector, &cleartext_vector)?;
let recovered_cleartext_vector: CleartextVectorF64 =
engine.decode_plaintext_vector(&encoder_vector, &plaintext_vector)?;
assert_eq!(
recovered_cleartext_vector.cleartext_count().0,
plaintext_vector.plaintext_count().0
);Source§unsafe fn decode_plaintext_vector_unchecked(
&mut self,
encoder: &FloatEncoderVector,
input: &PlaintextVector32,
) -> CleartextVectorF64
unsafe fn decode_plaintext_vector_unchecked( &mut self, encoder: &FloatEncoderVector, input: &PlaintextVector32, ) -> CleartextVectorF64
Source§impl PlaintextVectorDecodingEngine<FloatEncoderVector, PlaintextVector64, CleartextVectorF64> for DefaultEngine
§Description:
Implementation of PlaintextVectorDecodingEngine for DefaultEngine that decodes 64 bits
integers to 64 bits floating point numbers.
impl PlaintextVectorDecodingEngine<FloatEncoderVector, PlaintextVector64, CleartextVectorF64> for DefaultEngine
§Description:
Implementation of PlaintextVectorDecodingEngine for DefaultEngine that decodes 64 bits
integers to 64 bits floating point numbers.
Source§fn decode_plaintext_vector(
&mut self,
encoder: &FloatEncoderVector,
input: &PlaintextVector64,
) -> Result<CleartextVectorF64, PlaintextVectorDecodingError<Self::EngineError>>
fn decode_plaintext_vector( &mut self, encoder: &FloatEncoderVector, input: &PlaintextVector64, ) -> Result<CleartextVectorF64, PlaintextVectorDecodingError<Self::EngineError>>
§Example:
use concrete_core::prelude::*;
// Unix seeder must be given a secret input.
// Here we just give it 0, which is totally unsafe.
const UNSAFE_SECRET: u128 = 0;
let mut engine = DefaultEngine::new(Box::new(UnixSeeder::new(UNSAFE_SECRET)))?;
let encoder_vector = engine.create_encoder_vector_from(&vec![
FloatEncoderMinMaxConfig {
min: 0.,
max: 10.,
nb_bit_precision: 8,
nb_bit_padding: 1,
};
100
])?;
let cleartext_vector: CleartextVectorF64 =
engine.create_cleartext_vector_from(&vec![5.; 100])?;
let plaintext_vector: PlaintextVector32 =
engine.encode_cleartext_vector(&encoder_vector, &cleartext_vector)?;
let recovered_cleartext_vector: CleartextVectorF64 =
engine.decode_plaintext_vector(&encoder_vector, &plaintext_vector)?;
assert_eq!(
recovered_cleartext_vector.cleartext_count().0,
plaintext_vector.plaintext_count().0
);Source§unsafe fn decode_plaintext_vector_unchecked(
&mut self,
encoder: &FloatEncoderVector,
input: &PlaintextVector64,
) -> CleartextVectorF64
unsafe fn decode_plaintext_vector_unchecked( &mut self, encoder: &FloatEncoderVector, input: &PlaintextVector64, ) -> CleartextVectorF64
impl StructuralPartialEq for FloatEncoderVector
Auto Trait Implementations§
impl Freeze for FloatEncoderVector
impl RefUnwindSafe for FloatEncoderVector
impl Send for FloatEncoderVector
impl Sync for FloatEncoderVector
impl Unpin for FloatEncoderVector
impl UnwindSafe for FloatEncoderVector
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> 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 more