Struct AllocatedNum

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

Implementations§

Source§

impl<E: Engine> AllocatedNum<E>

Source

pub fn alloc<CS, F>(cs: CS, value: F) -> Result<Self, SynthesisError>
where CS: ConstraintSystem<E>, F: FnOnce() -> Result<E::Fr, SynthesisError>,

Source

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

Source

pub fn into_bits_le_strict<CS>( &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.)

Source

pub fn into_bits_le<CS>(&self, cs: CS) -> Result<Vec<Boolean>, SynthesisError>
where 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.”

Source

pub fn mul<CS>(&self, cs: CS, other: &Self) -> Result<Self, SynthesisError>
where CS: ConstraintSystem<E>,

Source

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

Source

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

Source

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

Source

pub fn conditionally_reverse<CS>( 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.

Source

pub fn conditionally_select<CS>( 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

Source

pub fn limit_number_of_bits<CS>( &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

Source

pub fn equals<CS>(cs: CS, a: &Self, b: &Self) -> Result<Boolean, SynthesisError>
where 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.

Source

pub fn get_value(&self) -> Option<E::Fr>

Source

pub fn get_variable(&self) -> Variable

Trait Implementations§

Source§

impl<E: Engine> Clone for AllocatedNum<E>

Source§

fn clone(&self) -> Self

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl<E: Engine> From<AllocatedNum<E>> for Num<E>

Source§

fn from(num: AllocatedNum<E>) -> Num<E>

Converts to this type from the input type.

Auto Trait Implementations§

§

impl<E> Freeze for AllocatedNum<E>
where <E as ScalarEngine>::Fr: Freeze,

§

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

§

impl<E> Send for AllocatedNum<E>

§

impl<E> Sync for AllocatedNum<E>

§

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

§

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

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

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

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.