Enum ark_nonnative_field::NonNativeFieldMulResultVar [−][src]
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
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.
fn add(self, other: Self) -> Self::Output
[src]
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.
fn add(
self,
other: &'a NonNativeFieldMulResultVar<TargetField, BaseField>
) -> Self::Output
[src]
self,
other: &'a NonNativeFieldMulResultVar<TargetField, BaseField>
) -> Self::Output
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.
fn add(
self,
other: NonNativeFieldMulResultVar<TargetField, BaseField>
) -> Self::Output
[src]
self,
other: NonNativeFieldMulResultVar<TargetField, BaseField>
) -> Self::Output
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.
fn add(
self,
other: NonNativeFieldMulResultVar<TargetField, BaseField>
) -> Self::Output
[src]
self,
other: NonNativeFieldMulResultVar<TargetField, BaseField>
) -> Self::Output
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.
fn add(self, other: TargetField) -> Self::Output
[src]
impl<TargetField: PrimeField, BaseField: PrimeField> Add<TargetField> for NonNativeFieldMulResultVar<TargetField, BaseField>
[src]
type Output = NonNativeFieldMulResultVar<TargetField, BaseField>
The resulting type after applying the +
operator.
fn add(self, other: TargetField) -> Self::Output
[src]
impl<'a, TargetField: PrimeField, BaseField: PrimeField> AddAssign<&'a NonNativeFieldMulResultVar<TargetField, BaseField>> for NonNativeFieldMulResultVar<TargetField, BaseField>
[src]
fn add_assign(
&mut self,
other: &'a NonNativeFieldMulResultVar<TargetField, BaseField>
)
[src]
&mut self,
other: &'a NonNativeFieldMulResultVar<TargetField, BaseField>
)
impl<TargetField: PrimeField, BaseField: PrimeField> AddAssign<NonNativeFieldMulResultVar<TargetField, BaseField>> for NonNativeFieldMulResultVar<TargetField, BaseField>
[src]
fn add_assign(
&mut self,
other: NonNativeFieldMulResultVar<TargetField, BaseField>
)
[src]
&mut self,
other: NonNativeFieldMulResultVar<TargetField, BaseField>
)
impl<TargetField: PrimeField, BaseField: PrimeField> AddAssign<TargetField> for NonNativeFieldMulResultVar<TargetField, BaseField>
[src]
fn add_assign(&mut self, other: TargetField)
[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]
fn from(src: &NonNativeFieldVar<TargetField, BaseField>) -> Self
[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,
BaseField: Unpin,
TargetField: Unpin,
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T> Instrument for T
[src]
pub fn instrument(self, span: Span) -> Instrumented<Self>
[src]
pub fn in_current_span(self) -> Instrumented<Self>
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
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.
pub 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.
pub fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
V: MultiLane<T>,