[−][src]Struct sapling_crypto_ce::circuit::num::AllocatedNum
Methods
impl<E: Engine> AllocatedNum<E>
[src]
pub fn alloc<CS, F>(cs: CS, value: F) -> Result<Self, SynthesisError> where
CS: ConstraintSystem<E>,
F: FnOnce() -> Result<E::Fr, SynthesisError>,
[src]
CS: ConstraintSystem<E>,
F: FnOnce() -> Result<E::Fr, SynthesisError>,
pub fn inputize<CS>(&self, cs: CS) -> Result<(), SynthesisError> where
CS: ConstraintSystem<E>,
[src]
CS: ConstraintSystem<E>,
pub fn into_bits_le_strict<CS>(
&self,
cs: CS
) -> Result<Vec<Boolean>, SynthesisError> where
CS: ConstraintSystem<E>,
[src]
&self,
cs: CS
) -> Result<Vec<Boolean>, SynthesisError> where
CS: ConstraintSystem<E>,
Deconstructs this allocated number into its boolean representation in little-endian bit order, requiring that the representation strictly exists "in the field" (i.e., a congruency is not allowed.)
pub fn into_bits_le<CS>(&self, cs: CS) -> Result<Vec<Boolean>, SynthesisError> where
CS: ConstraintSystem<E>,
[src]
CS: ConstraintSystem<E>,
Convert the allocated number into its little-endian representation. Note that this does not strongly enforce that the commitment is "in the field."
pub fn mul<CS>(&self, cs: CS, other: &Self) -> Result<Self, SynthesisError> where
CS: ConstraintSystem<E>,
[src]
CS: ConstraintSystem<E>,
pub fn square<CS>(&self, cs: CS) -> Result<Self, SynthesisError> where
CS: ConstraintSystem<E>,
[src]
CS: ConstraintSystem<E>,
pub fn assert_nonzero<CS>(&self, cs: CS) -> Result<(), SynthesisError> where
CS: ConstraintSystem<E>,
[src]
CS: ConstraintSystem<E>,
pub fn assert_zero<CS>(&self, cs: CS) -> Result<(), SynthesisError> where
CS: ConstraintSystem<E>,
[src]
CS: ConstraintSystem<E>,
pub fn conditionally_reverse<CS>(
cs: CS,
a: &Self,
b: &Self,
condition: &Boolean
) -> Result<(Self, Self), SynthesisError> where
CS: ConstraintSystem<E>,
[src]
cs: CS,
a: &Self,
b: &Self,
condition: &Boolean
) -> Result<(Self, Self), SynthesisError> where
CS: ConstraintSystem<E>,
Takes two allocated numbers (a, b) and returns (b, a) if the condition is true, and (a, b) otherwise.
pub fn conditionally_select<CS>(
cs: CS,
a: &Self,
b: &Self,
condition: &Boolean
) -> Result<Self, SynthesisError> where
CS: ConstraintSystem<E>,
[src]
cs: CS,
a: &Self,
b: &Self,
condition: &Boolean
) -> Result<Self, SynthesisError> where
CS: ConstraintSystem<E>,
Takes two allocated numbers (a, b) and returns a if the condition is true, and b otherwise. Most often to be used with b = 0
pub fn limit_number_of_bits<CS>(
&self,
cs: CS,
number_of_bits: usize
) -> Result<(), SynthesisError> where
CS: ConstraintSystem<E>,
[src]
&self,
cs: CS,
number_of_bits: usize
) -> Result<(), SynthesisError> where
CS: ConstraintSystem<E>,
Limits number of bits. The easiest example when required is to add or subtract two "small" (with bit length smaller than one of the field) numbers and check for overflow
pub fn equals<CS>(cs: CS, a: &Self, b: &Self) -> Result<Boolean, SynthesisError> where
E: Engine,
CS: ConstraintSystem<E>,
[src]
E: Engine,
CS: ConstraintSystem<E>,
Takes two allocated numbers (a, b) and returns
allocated boolean variable with value true
if the a
and b
are equal, false
otherwise.
pub fn get_value(&self) -> Option<E::Fr>
[src]
pub fn get_variable(&self) -> Variable
[src]
Trait Implementations
impl<E: Engine> From<AllocatedNum<E>> for Num<E>
[src]
fn from(num: AllocatedNum<E>) -> Num<E>
[src]
impl<E: Engine> Clone for AllocatedNum<E>
[src]
fn clone(&self) -> Self
[src]
fn clone_from(&mut self, source: &Self)
1.0.0[src]
Auto Trait Implementations
impl<E> Send for AllocatedNum<E> where
<E as ScalarEngine>::Fr: Send,
<E as ScalarEngine>::Fr: Send,
impl<E> Sync for AllocatedNum<E> where
<E as ScalarEngine>::Fr: Sync,
<E as ScalarEngine>::Fr: Sync,
impl<E> Unpin for AllocatedNum<E> where
<E as ScalarEngine>::Fr: Unpin,
<E as ScalarEngine>::Fr: Unpin,
impl<E> UnwindSafe for AllocatedNum<E> where
<E as ScalarEngine>::Fr: UnwindSafe,
<E as ScalarEngine>::Fr: UnwindSafe,
impl<E> RefUnwindSafe for AllocatedNum<E> where
<E as ScalarEngine>::Fr: RefUnwindSafe,
<E as ScalarEngine>::Fr: RefUnwindSafe,
Blanket Implementations
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> From<T> for T
[src]
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
fn to_owned(&self) -> T
[src]
fn clone_into(&self, target: &mut T)
[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Same<T> for T
type Output = T
Should always be Self