pub enum NonNativeFieldMulResultVar<TargetField: PrimeField, BaseField: PrimeField> {
Constant(TargetField),
Var(AllocatedNonNativeFieldMulResultVar<TargetField, BaseField>),
}Expand description
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§
Source§impl<TargetField: PrimeField, BaseField: PrimeField> NonNativeFieldMulResultVar<TargetField, BaseField>
impl<TargetField: PrimeField, BaseField: PrimeField> NonNativeFieldMulResultVar<TargetField, BaseField>
Sourcepub fn reduce(&self) -> R1CSResult<NonNativeFieldVar<TargetField, BaseField>>
pub fn reduce(&self) -> R1CSResult<NonNativeFieldVar<TargetField, BaseField>>
Reduce the NonNativeFieldMulResultVar back to NonNativeFieldVar
Trait Implementations§
Source§impl<'a, TargetField: PrimeField, BaseField: PrimeField> Add<&'a NonNativeFieldMulResultVar<TargetField, BaseField>> for NonNativeFieldMulResultVar<TargetField, BaseField>
impl<'a, TargetField: PrimeField, BaseField: PrimeField> Add<&'a NonNativeFieldMulResultVar<TargetField, BaseField>> for NonNativeFieldMulResultVar<TargetField, BaseField>
Source§type Output = NonNativeFieldMulResultVar<TargetField, BaseField>
type Output = NonNativeFieldMulResultVar<TargetField, BaseField>
The resulting type after applying the
+ operator.Source§impl<'a, TargetField: PrimeField, BaseField: PrimeField> Add<NonNativeFieldMulResultVar<TargetField, BaseField>> for &'a NonNativeFieldMulResultVar<TargetField, BaseField>
impl<'a, TargetField: PrimeField, BaseField: PrimeField> Add<NonNativeFieldMulResultVar<TargetField, BaseField>> for &'a NonNativeFieldMulResultVar<TargetField, BaseField>
Source§type Output = NonNativeFieldMulResultVar<TargetField, BaseField>
type Output = NonNativeFieldMulResultVar<TargetField, BaseField>
The resulting type after applying the
+ operator.Source§impl<'a, TargetField: PrimeField, BaseField: PrimeField> Add<TargetField> for &'a NonNativeFieldMulResultVar<TargetField, BaseField>
impl<'a, TargetField: PrimeField, BaseField: PrimeField> Add<TargetField> for &'a NonNativeFieldMulResultVar<TargetField, BaseField>
Source§impl<TargetField: PrimeField, BaseField: PrimeField> Add<TargetField> for NonNativeFieldMulResultVar<TargetField, BaseField>
impl<TargetField: PrimeField, BaseField: PrimeField> Add<TargetField> for NonNativeFieldMulResultVar<TargetField, BaseField>
Source§impl<'a, TargetField: PrimeField, BaseField: PrimeField> Add for &'a NonNativeFieldMulResultVar<TargetField, BaseField>
impl<'a, TargetField: PrimeField, BaseField: PrimeField> Add for &'a NonNativeFieldMulResultVar<TargetField, BaseField>
Source§impl<TargetField: PrimeField, BaseField: PrimeField> Add for NonNativeFieldMulResultVar<TargetField, BaseField>
impl<TargetField: PrimeField, BaseField: PrimeField> Add for NonNativeFieldMulResultVar<TargetField, BaseField>
Source§type Output = NonNativeFieldMulResultVar<TargetField, BaseField>
type Output = NonNativeFieldMulResultVar<TargetField, BaseField>
The resulting type after applying the
+ operator.Source§impl<'a, TargetField: PrimeField, BaseField: PrimeField> AddAssign<&'a NonNativeFieldMulResultVar<TargetField, BaseField>> for NonNativeFieldMulResultVar<TargetField, BaseField>
impl<'a, TargetField: PrimeField, BaseField: PrimeField> AddAssign<&'a NonNativeFieldMulResultVar<TargetField, BaseField>> for NonNativeFieldMulResultVar<TargetField, BaseField>
Source§fn add_assign(
&mut self,
other: &'a NonNativeFieldMulResultVar<TargetField, BaseField>,
)
fn add_assign( &mut self, other: &'a NonNativeFieldMulResultVar<TargetField, BaseField>, )
Performs the
+= operation. Read moreSource§impl<TargetField: PrimeField, BaseField: PrimeField> AddAssign<TargetField> for NonNativeFieldMulResultVar<TargetField, BaseField>
impl<TargetField: PrimeField, BaseField: PrimeField> AddAssign<TargetField> for NonNativeFieldMulResultVar<TargetField, BaseField>
Source§fn add_assign(&mut self, other: TargetField)
fn add_assign(&mut self, other: TargetField)
Performs the
+= operation. Read moreSource§impl<TargetField: PrimeField, BaseField: PrimeField> AddAssign for NonNativeFieldMulResultVar<TargetField, BaseField>
impl<TargetField: PrimeField, BaseField: PrimeField> AddAssign for NonNativeFieldMulResultVar<TargetField, BaseField>
Source§fn add_assign(
&mut self,
other: NonNativeFieldMulResultVar<TargetField, BaseField>,
)
fn add_assign( &mut self, other: NonNativeFieldMulResultVar<TargetField, BaseField>, )
Performs the
+= operation. Read moreSource§impl<TargetField: Debug + PrimeField, BaseField: Debug + PrimeField> Debug for NonNativeFieldMulResultVar<TargetField, BaseField>
impl<TargetField: Debug + PrimeField, BaseField: Debug + PrimeField> Debug for NonNativeFieldMulResultVar<TargetField, BaseField>
Source§impl<TargetField: PrimeField, BaseField: PrimeField> From<&NonNativeFieldVar<TargetField, BaseField>> for NonNativeFieldMulResultVar<TargetField, BaseField>
impl<TargetField: PrimeField, BaseField: PrimeField> From<&NonNativeFieldVar<TargetField, BaseField>> for NonNativeFieldMulResultVar<TargetField, BaseField>
Source§fn from(src: &NonNativeFieldVar<TargetField, BaseField>) -> Self
fn from(src: &NonNativeFieldVar<TargetField, BaseField>) -> Self
Converts to this type from the input type.
Auto Trait Implementations§
impl<TargetField, BaseField> Freeze for NonNativeFieldMulResultVar<TargetField, BaseField>
impl<TargetField, BaseField> !RefUnwindSafe for NonNativeFieldMulResultVar<TargetField, BaseField>
impl<TargetField, BaseField> !Send for NonNativeFieldMulResultVar<TargetField, BaseField>
impl<TargetField, BaseField> !Sync for NonNativeFieldMulResultVar<TargetField, BaseField>
impl<TargetField, BaseField> Unpin for NonNativeFieldMulResultVar<TargetField, BaseField>
impl<TargetField, BaseField> !UnwindSafe for NonNativeFieldMulResultVar<TargetField, BaseField>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more