Enum ark_nonnative_field::NonNativeFieldMulResultVar[][src]

#[must_use]pub enum NonNativeFieldMulResultVar<TargetField: PrimeField, BaseField: PrimeField> {
    Constant(TargetField),
    Var(AllocatedNonNativeFieldMulResultVar<TargetField, BaseField>),
}

An intermediate representation especially for the result of a multiplication, containing more limbs. It is intended for advanced usage to improve the efficiency.

That is, instead of calling mul, one can call mul_without_reduce to obtain this intermediate representation, which can still be added. Then, one can call reduce to reduce it back to NonNativeFieldVar. This may help cut the number of reduce operations.

Variants

Constant(TargetField)

as a constant

Var(AllocatedNonNativeFieldMulResultVar<TargetField, BaseField>)

as an allocated gadget

Implementations

impl<TargetField: PrimeField, BaseField: PrimeField> NonNativeFieldMulResultVar<TargetField, BaseField>[src]

pub fn zero() -> Self[src]

Create a zero NonNativeFieldMulResultVar (used for additions)

pub fn constant(v: TargetField) -> Self[src]

Create an NonNativeFieldMulResultVar from a constant

pub fn reduce(&self) -> R1CSResult<NonNativeFieldVar<TargetField, BaseField>>[src]

Reduce the NonNativeFieldMulResultVar back to NonNativeFieldVar

Trait Implementations

impl<'a, TargetField: PrimeField, BaseField: PrimeField> Add<&'a NonNativeFieldMulResultVar<TargetField, BaseField>> for &'a NonNativeFieldMulResultVar<TargetField, BaseField>[src]

type Output = NonNativeFieldMulResultVar<TargetField, BaseField>

The resulting type after applying the + operator.

impl<'a, TargetField: PrimeField, BaseField: PrimeField> Add<&'a NonNativeFieldMulResultVar<TargetField, BaseField>> for NonNativeFieldMulResultVar<TargetField, BaseField>[src]

type Output = NonNativeFieldMulResultVar<TargetField, BaseField>

The resulting type after applying the + operator.

impl<'a, TargetField: PrimeField, BaseField: PrimeField> Add<NonNativeFieldMulResultVar<TargetField, BaseField>> for &'a NonNativeFieldMulResultVar<TargetField, BaseField>[src]

type Output = NonNativeFieldMulResultVar<TargetField, BaseField>

The resulting type after applying the + operator.

impl<TargetField: PrimeField, BaseField: PrimeField> Add<NonNativeFieldMulResultVar<TargetField, BaseField>> for NonNativeFieldMulResultVar<TargetField, BaseField>[src]

type Output = NonNativeFieldMulResultVar<TargetField, BaseField>

The resulting type after applying the + operator.

impl<'a, TargetField: PrimeField, BaseField: PrimeField> Add<TargetField> for &'a NonNativeFieldMulResultVar<TargetField, BaseField>[src]

type Output = NonNativeFieldMulResultVar<TargetField, BaseField>

The resulting type after applying the + operator.

impl<TargetField: PrimeField, BaseField: PrimeField> Add<TargetField> for NonNativeFieldMulResultVar<TargetField, BaseField>[src]

type Output = NonNativeFieldMulResultVar<TargetField, BaseField>

The resulting type after applying the + operator.

impl<'a, TargetField: PrimeField, BaseField: PrimeField> AddAssign<&'a NonNativeFieldMulResultVar<TargetField, BaseField>> for NonNativeFieldMulResultVar<TargetField, BaseField>[src]

impl<TargetField: PrimeField, BaseField: PrimeField> AddAssign<NonNativeFieldMulResultVar<TargetField, BaseField>> for NonNativeFieldMulResultVar<TargetField, BaseField>[src]

impl<TargetField: PrimeField, BaseField: PrimeField> AddAssign<TargetField> for NonNativeFieldMulResultVar<TargetField, BaseField>[src]

impl<TargetField: Debug + PrimeField, BaseField: Debug + PrimeField> Debug for NonNativeFieldMulResultVar<TargetField, BaseField>[src]

impl<TargetField: PrimeField, BaseField: PrimeField> From<&'_ NonNativeFieldVar<TargetField, BaseField>> for NonNativeFieldMulResultVar<TargetField, BaseField>[src]

Auto Trait Implementations

impl<TargetField, BaseField> !Send for NonNativeFieldMulResultVar<TargetField, BaseField>

impl<TargetField, BaseField> !Sync for NonNativeFieldMulResultVar<TargetField, BaseField>

impl<TargetField, BaseField> Unpin for NonNativeFieldMulResultVar<TargetField, BaseField> where
    BaseField: Unpin,
    TargetField: Unpin

Blanket Implementations

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

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

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

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

impl<T> Instrument for T[src]

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

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<V, T> VZip<V> for T where
    V: MultiLane<T>,