Struct fancy_garbling::depth_informer::DepthInformer
source · [−]pub struct DepthInformer { /* private fields */ }
Expand description
Fancy Object which computes information about the circuit of interest to FHE.
Implementations
sourceimpl DepthInformer
impl DepthInformer
sourcepub fn new() -> DepthInformer
pub fn new() -> DepthInformer
Create a new DepthInformer
Trait Implementations
sourceimpl Clone for DepthInformer
impl Clone for DepthInformer
sourcefn clone(&self) -> DepthInformer
fn clone(&self) -> DepthInformer
Returns a copy of the value. Read more
1.0.0 · sourcefn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moresourceimpl Debug for DepthInformer
impl Debug for DepthInformer
sourceimpl Display for DepthInformer
impl Display for DepthInformer
sourceimpl Fancy for DepthInformer
impl Fancy for DepthInformer
type Error = DepthError
type Error = DepthError
Errors which may be thrown by the users of Fancy.
sourcefn constant(&mut self, _val: u16, q: u16) -> Result<Self::Item, Self::Error>
fn constant(&mut self, _val: u16, q: u16) -> Result<Self::Item, Self::Error>
Create a constant
x
with modulus q
.sourceimpl FancyArithmetic for DepthInformer
impl FancyArithmetic for DepthInformer
sourcefn add(
&mut self,
x: &Self::Item,
y: &Self::Item
) -> Result<Self::Item, Self::Error>
fn add(
&mut self,
x: &Self::Item,
y: &Self::Item
) -> Result<Self::Item, Self::Error>
Add
x
and y
.sourcefn sub(
&mut self,
x: &Self::Item,
y: &Self::Item
) -> Result<Self::Item, Self::Error>
fn sub(
&mut self,
x: &Self::Item,
y: &Self::Item
) -> Result<Self::Item, Self::Error>
Subtract
x
and y
.sourcefn cmul(&mut self, x: &Self::Item, _y: u16) -> Result<Self::Item, Self::Error>
fn cmul(&mut self, x: &Self::Item, _y: u16) -> Result<Self::Item, Self::Error>
Multiply
x
times the constant c
.sourcefn mul(
&mut self,
x: &Self::Item,
y: &Self::Item
) -> Result<Self::Item, Self::Error>
fn mul(
&mut self,
x: &Self::Item,
y: &Self::Item
) -> Result<Self::Item, Self::Error>
Multiply
x
and y
.sourcefn proj(
&mut self,
_x: &Self::Item,
_q: u16,
_tt: Option<Vec<u16>>
) -> Result<Self::Item, Self::Error>
fn proj(
&mut self,
_x: &Self::Item,
_q: u16,
_tt: Option<Vec<u16>>
) -> Result<Self::Item, Self::Error>
sourceimpl FancyBinary for DepthInformer
impl FancyBinary for DepthInformer
sourcefn xor(
&mut self,
x: &Self::Item,
y: &Self::Item
) -> Result<Self::Item, Self::Error>
fn xor(
&mut self,
x: &Self::Item,
y: &Self::Item
) -> Result<Self::Item, Self::Error>
Binary Xor
sourcefn and(
&mut self,
x: &Self::Item,
y: &Self::Item
) -> Result<Self::Item, Self::Error>
fn and(
&mut self,
x: &Self::Item,
y: &Self::Item
) -> Result<Self::Item, Self::Error>
Binary And
sourcefn or(
&mut self,
x: &Self::Item,
y: &Self::Item
) -> Result<Self::Item, Self::Error>
fn or(
&mut self,
x: &Self::Item,
y: &Self::Item
) -> Result<Self::Item, Self::Error>
Uses Demorgan’s Rule implemented with an and gate and negation.
sourcefn adder(
&mut self,
x: &Self::Item,
y: &Self::Item,
carry_in: Option<&Self::Item>
) -> Result<(Self::Item, Self::Item), Self::Error>
fn adder(
&mut self,
x: &Self::Item,
y: &Self::Item,
carry_in: Option<&Self::Item>
) -> Result<(Self::Item, Self::Item), Self::Error>
Binary adder. Returns the result and the carry.
sourcefn and_many(&mut self, args: &[Self::Item]) -> Result<Self::Item, Self::Error>
fn and_many(&mut self, args: &[Self::Item]) -> Result<Self::Item, Self::Error>
Returns 1 if all wires equal 1.
sourcefn or_many(&mut self, args: &[Self::Item]) -> Result<Self::Item, Self::Error>
fn or_many(&mut self, args: &[Self::Item]) -> Result<Self::Item, Self::Error>
Returns 1 if any wire equals 1.
sourcefn xor_many(&mut self, args: &[Self::Item]) -> Result<Self::Item, Self::Error>
fn xor_many(&mut self, args: &[Self::Item]) -> Result<Self::Item, Self::Error>
XOR many wires together
sourceimpl FancyInput for DepthInformer
impl FancyInput for DepthInformer
type Error = DepthError
type Error = DepthError
The type of error that this Fancy object emits.
sourcefn receive_many(
&mut self,
moduli: &[u16]
) -> Result<Vec<Self::Item>, Self::Error>
fn receive_many(
&mut self,
moduli: &[u16]
) -> Result<Vec<Self::Item>, Self::Error>
Receive many values where the input is not known.
sourcefn encode_many(
&mut self,
_values: &[u16],
moduli: &[u16]
) -> Result<Vec<Self::Item>, Self::Error>
fn encode_many(
&mut self,
_values: &[u16],
moduli: &[u16]
) -> Result<Vec<Self::Item>, Self::Error>
Encode many values where the actual input is known. Read more
sourcefn encode(&mut self, value: u16, modulus: u16) -> Result<Self::Item, Self::Error>
fn encode(&mut self, value: u16, modulus: u16) -> Result<Self::Item, Self::Error>
Encode a single value. Read more
sourcefn encode_bundle(
&mut self,
values: &[u16],
moduli: &[u16]
) -> Result<Bundle<Self::Item>, Self::Error>
fn encode_bundle(
&mut self,
values: &[u16],
moduli: &[u16]
) -> Result<Bundle<Self::Item>, Self::Error>
Encode a bundle.
sourcefn receive_bundle(
&mut self,
moduli: &[u16]
) -> Result<Bundle<Self::Item>, Self::Error>
fn receive_bundle(
&mut self,
moduli: &[u16]
) -> Result<Bundle<Self::Item>, Self::Error>
Receive a bundle.
sourcefn encode_bundles(
&mut self,
values: &[Vec<u16>],
moduli: &[Vec<u16>]
) -> Result<Vec<Bundle<Self::Item>>, Self::Error>
fn encode_bundles(
&mut self,
values: &[Vec<u16>],
moduli: &[Vec<u16>]
) -> Result<Vec<Bundle<Self::Item>>, Self::Error>
Encode many input bundles.
sourcefn receive_many_bundles(
&mut self,
moduli: &[Vec<u16>]
) -> Result<Vec<Bundle<Self::Item>>, Self::Error>
fn receive_many_bundles(
&mut self,
moduli: &[Vec<u16>]
) -> Result<Vec<Bundle<Self::Item>>, Self::Error>
Receive many input bundles.
sourcefn crt_encode(
&mut self,
value: u128,
modulus: u128
) -> Result<CrtBundle<Self::Item>, Self::Error>
fn crt_encode(
&mut self,
value: u128,
modulus: u128
) -> Result<CrtBundle<Self::Item>, Self::Error>
Encode a CRT input bundle.
sourcefn crt_receive(
&mut self,
modulus: u128
) -> Result<CrtBundle<Self::Item>, Self::Error>
fn crt_receive(
&mut self,
modulus: u128
) -> Result<CrtBundle<Self::Item>, Self::Error>
Receive an CRT input bundle.
sourcefn crt_encode_many(
&mut self,
values: &[u128],
modulus: u128
) -> Result<Vec<CrtBundle<Self::Item>>, Self::Error>
fn crt_encode_many(
&mut self,
values: &[u128],
modulus: u128
) -> Result<Vec<CrtBundle<Self::Item>>, Self::Error>
Encode many CRT input bundles.
sourcefn crt_receive_many(
&mut self,
n: usize,
modulus: u128
) -> Result<Vec<CrtBundle<Self::Item>>, Self::Error>
fn crt_receive_many(
&mut self,
n: usize,
modulus: u128
) -> Result<Vec<CrtBundle<Self::Item>>, Self::Error>
Receive many CRT input bundles.
sourcefn bin_encode(
&mut self,
value: u128,
nbits: usize
) -> Result<BinaryBundle<Self::Item>, Self::Error>
fn bin_encode(
&mut self,
value: u128,
nbits: usize
) -> Result<BinaryBundle<Self::Item>, Self::Error>
Encode a binary input bundle.
sourcefn bin_receive(
&mut self,
nbits: usize
) -> Result<BinaryBundle<Self::Item>, Self::Error>
fn bin_receive(
&mut self,
nbits: usize
) -> Result<BinaryBundle<Self::Item>, Self::Error>
Receive an binary input bundle.
sourcefn bin_encode_many(
&mut self,
values: &[u128],
nbits: usize
) -> Result<Vec<BinaryBundle<Self::Item>>, Self::Error>
fn bin_encode_many(
&mut self,
values: &[u128],
nbits: usize
) -> Result<Vec<BinaryBundle<Self::Item>>, Self::Error>
Encode many binary input bundles.
sourcefn bin_receive_many(
&mut self,
ninputs: usize,
nbits: usize
) -> Result<Vec<BinaryBundle<Self::Item>>, Self::Error>
fn bin_receive_many(
&mut self,
ninputs: usize,
nbits: usize
) -> Result<Vec<BinaryBundle<Self::Item>>, Self::Error>
Receive many binary input bundles.
sourceimpl FancyReveal for DepthInformer
impl FancyReveal for DepthInformer
sourcefn reveal(&mut self, _x: &Self::Item) -> Result<u16, Self::Error>
fn reveal(&mut self, _x: &Self::Item) -> Result<u16, Self::Error>
Reveal the contents of
x
to all parties.sourcefn reveal_many(&mut self, xs: &[Self::Item]) -> Result<Vec<u16>, Self::Error>
fn reveal_many(&mut self, xs: &[Self::Item]) -> Result<Vec<u16>, Self::Error>
Reveal a slice of items to all parties.
sourcefn reveal_bundle(
&mut self,
x: &Bundle<Self::Item>
) -> Result<Vec<u16>, Self::Error>
fn reveal_bundle(
&mut self,
x: &Bundle<Self::Item>
) -> Result<Vec<u16>, Self::Error>
Reveal a bundle to all parties.
sourcefn reveal_many_bundles(
&mut self,
xs: &[Bundle<Self::Item>]
) -> Result<Vec<Vec<u16>>, Self::Error>
fn reveal_many_bundles(
&mut self,
xs: &[Bundle<Self::Item>]
) -> Result<Vec<Vec<u16>>, Self::Error>
Reveal many bundles to all parties.
sourcefn crt_reveal(&mut self, x: &CrtBundle<Self::Item>) -> Result<u128, Self::Error>
fn crt_reveal(&mut self, x: &CrtBundle<Self::Item>) -> Result<u128, Self::Error>
Reveal a CRT bundle to all parties.
sourcefn crt_reveal_many(
&mut self,
xs: &[CrtBundle<Self::Item>]
) -> Result<Vec<u128>, Self::Error>
fn crt_reveal_many(
&mut self,
xs: &[CrtBundle<Self::Item>]
) -> Result<Vec<u128>, Self::Error>
Reveal many CRT bundles to all parties.
sourcefn bin_reveal(
&mut self,
x: &BinaryBundle<Self::Item>
) -> Result<u128, Self::Error>
fn bin_reveal(
&mut self,
x: &BinaryBundle<Self::Item>
) -> Result<u128, Self::Error>
Reveal a binary bundle to all parties.
sourcefn bin_reveal_many(
&mut self,
xs: &[BinaryBundle<Self::Item>]
) -> Result<Vec<u128>, Self::Error>
fn bin_reveal_many(
&mut self,
xs: &[BinaryBundle<Self::Item>]
) -> Result<Vec<u128>, Self::Error>
Reveal many binary bundles to all parties.
Auto Trait Implementations
impl RefUnwindSafe for DepthInformer
impl Send for DepthInformer
impl Sync for DepthInformer
impl Unpin for DepthInformer
impl UnwindSafe for DepthInformer
Blanket Implementations
sourceimpl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
impl<T> FmtForward for T
impl<T> FmtForward for T
fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
Causes
self
to use its Binary
implementation when Debug
-formatted.fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
Causes
self
to use its Octal
implementation when Debug
-formatted.fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
Formats each item in a sequence. Read more
impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
Pipes by value. This is generally the method you want to use. Read more
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
Borrows
self
and passes that borrow into the pipe function. Read morefn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
Mutably borrows
self
and passes that borrow into the pipe function. Read morefn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> Rwhere
Self: Borrow<B>,
B: 'a + ?Sized,
R: 'a,
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> Rwhere
Self: Borrow<B>,
B: 'a + ?Sized,
R: 'a,
fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R
) -> Rwhere
Self: BorrowMut<B>,
B: 'a + ?Sized,
R: 'a,
fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R
) -> Rwhere
Self: BorrowMut<B>,
B: 'a + ?Sized,
R: 'a,
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> Rwhere
Self: AsRef<U>,
U: 'a + ?Sized,
R: 'a,
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> Rwhere
Self: AsRef<U>,
U: 'a + ?Sized,
R: 'a,
Borrows
self
, then passes self.as_ref()
into the pipe function.fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> Rwhere
Self: AsMut<U>,
U: 'a + ?Sized,
R: 'a,
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> Rwhere
Self: AsMut<U>,
U: 'a + ?Sized,
R: 'a,
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> Rwhere
Self: Deref<Target = T>,
T: 'a + ?Sized,
R: 'a,
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> Rwhere
Self: Deref<Target = T>,
T: 'a + ?Sized,
R: 'a,
Borrows
self
, then passes self.deref()
into the pipe function.impl<T> Tap for T
impl<T> Tap for T
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Selfwhere
Self: Borrow<B>,
B: ?Sized,
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Selfwhere
Self: Borrow<B>,
B: ?Sized,
Immutable access to the
Borrow<B>
of a value. Read morefn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Selfwhere
Self: BorrowMut<B>,
B: ?Sized,
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Selfwhere
Self: BorrowMut<B>,
B: ?Sized,
Mutable access to the
BorrowMut<B>
of a value. Read morefn tap_ref<R>(self, func: impl FnOnce(&R)) -> Selfwhere
Self: AsRef<R>,
R: ?Sized,
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Selfwhere
Self: AsRef<R>,
R: ?Sized,
Immutable access to the
AsRef<R>
view of a value. Read morefn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Selfwhere
Self: AsMut<R>,
R: ?Sized,
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Selfwhere
Self: AsMut<R>,
R: ?Sized,
Mutable access to the
AsMut<R>
view of a value. Read morefn tap_deref<T>(self, func: impl FnOnce(&T)) -> Selfwhere
Self: Deref<Target = T>,
T: ?Sized,
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Selfwhere
Self: Deref<Target = T>,
T: ?Sized,
Immutable access to the
Deref::Target
of a value. Read morefn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Selfwhere
Self: DerefMut<Target = T> + Deref,
T: ?Sized,
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Selfwhere
Self: DerefMut<Target = T> + Deref,
T: ?Sized,
Mutable access to the
Deref::Target
of a value. Read morefn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
Calls
.tap()
only in debug builds, and is erased in release builds.fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
Calls
.tap_mut()
only in debug builds, and is erased in release
builds. Read morefn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Selfwhere
Self: Borrow<B>,
B: ?Sized,
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Selfwhere
Self: Borrow<B>,
B: ?Sized,
Calls
.tap_borrow()
only in debug builds, and is erased in release
builds. Read morefn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Selfwhere
Self: BorrowMut<B>,
B: ?Sized,
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Selfwhere
Self: BorrowMut<B>,
B: ?Sized,
Calls
.tap_borrow_mut()
only in debug builds, and is erased in release
builds. Read morefn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Selfwhere
Self: AsRef<R>,
R: ?Sized,
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Selfwhere
Self: AsRef<R>,
R: ?Sized,
Calls
.tap_ref()
only in debug builds, and is erased in release
builds. Read morefn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Selfwhere
Self: AsMut<R>,
R: ?Sized,
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Selfwhere
Self: AsMut<R>,
R: ?Sized,
Calls
.tap_ref_mut()
only in debug builds, and is erased in release
builds. Read more