[][src]Struct sapling_crypto_ce::circuit::num::AllocatedNum

pub struct AllocatedNum<E: Engine> { /* fields omitted */ }

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]

pub fn inputize<CS>(&self, cs: CS) -> Result<(), SynthesisError> where
    CS: ConstraintSystem<E>, 
[src]

pub fn into_bits_le_strict<CS>(
    &self,
    cs: CS
) -> Result<Vec<Boolean>, SynthesisError> where
    CS: ConstraintSystem<E>, 
[src]

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]

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]

pub fn square<CS>(&self, cs: CS) -> Result<Self, SynthesisError> where
    CS: ConstraintSystem<E>, 
[src]

pub fn assert_nonzero<CS>(&self, cs: CS) -> Result<(), SynthesisError> where
    CS: ConstraintSystem<E>, 
[src]

pub fn assert_zero<CS>(&self, cs: CS) -> Result<(), SynthesisError> where
    CS: ConstraintSystem<E>, 
[src]

pub fn conditionally_reverse<CS>(
    cs: CS,
    a: &Self,
    b: &Self,
    condition: &Boolean
) -> Result<(Self, Self), SynthesisError> where
    CS: ConstraintSystem<E>, 
[src]

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]

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]

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]

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]

impl<E: Engine> Clone for AllocatedNum<E>[src]

Auto Trait Implementations

impl<E> Send for AllocatedNum<E> where
    <E as ScalarEngine>::Fr: Send

impl<E> Sync for AllocatedNum<E> where
    <E as ScalarEngine>::Fr: Sync

impl<E> Unpin for AllocatedNum<E> where
    <E as ScalarEngine>::Fr: Unpin

impl<E> UnwindSafe for AllocatedNum<E> where
    <E as ScalarEngine>::Fr: UnwindSafe

impl<E> RefUnwindSafe for AllocatedNum<E> where
    <E as ScalarEngine>::Fr: RefUnwindSafe

Blanket Implementations

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> From<T> for T[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Same<T> for T

type Output = T

Should always be Self