pub enum NonNativeFieldVar<TargetField: PrimeField, BaseField: PrimeField> {
Constant(TargetField),
Var(AllocatedNonNativeFieldVar<TargetField, BaseField>),
}Expand description
A gadget for representing non-native (TargetField) field elements over the constraint field (BaseField).
Variants§
Constant(TargetField)
Constant
Var(AllocatedNonNativeFieldVar<TargetField, BaseField>)
Allocated gadget
Implementations§
Source§impl<TargetField: PrimeField, BaseField: PrimeField> NonNativeFieldVar<TargetField, BaseField>
impl<TargetField: PrimeField, BaseField: PrimeField> NonNativeFieldVar<TargetField, BaseField>
Sourcepub fn mul_without_reduce(
&self,
other: &Self,
) -> R1CSResult<NonNativeFieldMulResultVar<TargetField, BaseField>>
pub fn mul_without_reduce( &self, other: &Self, ) -> R1CSResult<NonNativeFieldMulResultVar<TargetField, BaseField>>
The mul_without_reduce for NonNativeFieldVar
Trait Implementations§
Source§impl<'a, TargetField: PrimeField, BaseField: PrimeField> Add<&'a NonNativeFieldVar<TargetField, BaseField>> for NonNativeFieldVar<TargetField, BaseField>
impl<'a, TargetField: PrimeField, BaseField: PrimeField> Add<&'a NonNativeFieldVar<TargetField, BaseField>> for NonNativeFieldVar<TargetField, BaseField>
Source§type Output = NonNativeFieldVar<TargetField, BaseField>
type Output = NonNativeFieldVar<TargetField, BaseField>
The resulting type after applying the
+ operator.Source§impl<'a, TargetField: PrimeField, BaseField: PrimeField> Add<NonNativeFieldVar<TargetField, BaseField>> for &'a NonNativeFieldVar<TargetField, BaseField>
impl<'a, TargetField: PrimeField, BaseField: PrimeField> Add<NonNativeFieldVar<TargetField, BaseField>> for &'a NonNativeFieldVar<TargetField, BaseField>
Source§type Output = NonNativeFieldVar<TargetField, BaseField>
type Output = NonNativeFieldVar<TargetField, BaseField>
The resulting type after applying the
+ operator.Source§impl<'a, TargetField: PrimeField, BaseField: PrimeField> Add<TargetField> for &'a NonNativeFieldVar<TargetField, BaseField>
impl<'a, TargetField: PrimeField, BaseField: PrimeField> Add<TargetField> for &'a NonNativeFieldVar<TargetField, BaseField>
Source§impl<TargetField: PrimeField, BaseField: PrimeField> Add<TargetField> for NonNativeFieldVar<TargetField, BaseField>
impl<TargetField: PrimeField, BaseField: PrimeField> Add<TargetField> for NonNativeFieldVar<TargetField, BaseField>
Source§impl<'a, TargetField: PrimeField, BaseField: PrimeField> Add for &'a NonNativeFieldVar<TargetField, BaseField>
impl<'a, TargetField: PrimeField, BaseField: PrimeField> Add for &'a NonNativeFieldVar<TargetField, BaseField>
Source§impl<TargetField: PrimeField, BaseField: PrimeField> Add for NonNativeFieldVar<TargetField, BaseField>
impl<TargetField: PrimeField, BaseField: PrimeField> Add for NonNativeFieldVar<TargetField, BaseField>
Source§type Output = NonNativeFieldVar<TargetField, BaseField>
type Output = NonNativeFieldVar<TargetField, BaseField>
The resulting type after applying the
+ operator.Source§impl<'a, TargetField: PrimeField, BaseField: PrimeField> AddAssign<&'a NonNativeFieldVar<TargetField, BaseField>> for NonNativeFieldVar<TargetField, BaseField>
impl<'a, TargetField: PrimeField, BaseField: PrimeField> AddAssign<&'a NonNativeFieldVar<TargetField, BaseField>> for NonNativeFieldVar<TargetField, BaseField>
Source§fn add_assign(&mut self, other: &'a NonNativeFieldVar<TargetField, BaseField>)
fn add_assign(&mut self, other: &'a NonNativeFieldVar<TargetField, BaseField>)
Performs the
+= operation. Read moreSource§impl<TargetField: PrimeField, BaseField: PrimeField> AddAssign<TargetField> for NonNativeFieldVar<TargetField, BaseField>
impl<TargetField: PrimeField, BaseField: PrimeField> AddAssign<TargetField> for NonNativeFieldVar<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 NonNativeFieldVar<TargetField, BaseField>
impl<TargetField: PrimeField, BaseField: PrimeField> AddAssign for NonNativeFieldVar<TargetField, BaseField>
Source§fn add_assign(&mut self, other: NonNativeFieldVar<TargetField, BaseField>)
fn add_assign(&mut self, other: NonNativeFieldVar<TargetField, BaseField>)
Performs the
+= operation. Read moreSource§impl<TargetField: PrimeField, BaseField: PrimeField> AllocVar<TargetField, BaseField> for NonNativeFieldVar<TargetField, BaseField>
impl<TargetField: PrimeField, BaseField: PrimeField> AllocVar<TargetField, BaseField> for NonNativeFieldVar<TargetField, BaseField>
Source§fn new_variable<T: Borrow<TargetField>>(
cs: impl Into<Namespace<BaseField>>,
f: impl FnOnce() -> Result<T, SynthesisError>,
mode: AllocationMode,
) -> R1CSResult<Self>
fn new_variable<T: Borrow<TargetField>>( cs: impl Into<Namespace<BaseField>>, f: impl FnOnce() -> Result<T, SynthesisError>, mode: AllocationMode, ) -> R1CSResult<Self>
Allocates a new variable of type
Self in the ConstraintSystem cs.
The mode of allocation is decided by mode.Source§fn new_constant(
cs: impl Into<Namespace<F>>,
t: impl Borrow<V>,
) -> Result<Self, SynthesisError>
fn new_constant( cs: impl Into<Namespace<F>>, t: impl Borrow<V>, ) -> Result<Self, SynthesisError>
Source§fn new_input<T>(
cs: impl Into<Namespace<F>>,
f: impl FnOnce() -> Result<T, SynthesisError>,
) -> Result<Self, SynthesisError>where
T: Borrow<V>,
fn new_input<T>(
cs: impl Into<Namespace<F>>,
f: impl FnOnce() -> Result<T, SynthesisError>,
) -> Result<Self, SynthesisError>where
T: Borrow<V>,
Allocates a new public input of type
Self in the ConstraintSystem
cs.Source§fn new_witness<T>(
cs: impl Into<Namespace<F>>,
f: impl FnOnce() -> Result<T, SynthesisError>,
) -> Result<Self, SynthesisError>where
T: Borrow<V>,
fn new_witness<T>(
cs: impl Into<Namespace<F>>,
f: impl FnOnce() -> Result<T, SynthesisError>,
) -> Result<Self, SynthesisError>where
T: Borrow<V>,
Allocates a new private witness of type
Self in the ConstraintSystem
cs.Source§impl<TargetField: Clone + PrimeField, BaseField: Clone + PrimeField> Clone for NonNativeFieldVar<TargetField, BaseField>
impl<TargetField: Clone + PrimeField, BaseField: Clone + PrimeField> Clone for NonNativeFieldVar<TargetField, BaseField>
Source§fn clone(&self) -> NonNativeFieldVar<TargetField, BaseField>
fn clone(&self) -> NonNativeFieldVar<TargetField, BaseField>
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl<TargetField: PrimeField, BaseField: PrimeField> CondSelectGadget<BaseField> for NonNativeFieldVar<TargetField, BaseField>
impl<TargetField: PrimeField, BaseField: PrimeField> CondSelectGadget<BaseField> for NonNativeFieldVar<TargetField, BaseField>
Source§fn conditionally_select(
cond: &Boolean<BaseField>,
true_value: &Self,
false_value: &Self,
) -> R1CSResult<Self>
fn conditionally_select( cond: &Boolean<BaseField>, true_value: &Self, false_value: &Self, ) -> R1CSResult<Self>
Source§fn conditionally_select_power_of_two_vector(
position: &[Boolean<ConstraintF>],
values: &[Self],
) -> Result<Self, SynthesisError>
fn conditionally_select_power_of_two_vector( position: &[Boolean<ConstraintF>], values: &[Self], ) -> Result<Self, SynthesisError>
Returns an element of
values whose index in represented by position.
position is an array of boolean that represents an unsigned integer in big endian order. Read moreSource§impl<TargetField: Debug + PrimeField, BaseField: Debug + PrimeField> Debug for NonNativeFieldVar<TargetField, BaseField>
impl<TargetField: Debug + PrimeField, BaseField: Debug + PrimeField> Debug for NonNativeFieldVar<TargetField, BaseField>
Source§impl<TargetField: PrimeField, BaseField: PrimeField> EqGadget<BaseField> for NonNativeFieldVar<TargetField, BaseField>
impl<TargetField: PrimeField, BaseField: PrimeField> EqGadget<BaseField> for NonNativeFieldVar<TargetField, BaseField>
Source§fn is_eq(&self, other: &Self) -> R1CSResult<Boolean<BaseField>>
fn is_eq(&self, other: &Self) -> R1CSResult<Boolean<BaseField>>
Output a
Boolean value representing whether self.value() == other.value().Source§fn conditional_enforce_equal(
&self,
other: &Self,
should_enforce: &Boolean<BaseField>,
) -> R1CSResult<()>
fn conditional_enforce_equal( &self, other: &Self, should_enforce: &Boolean<BaseField>, ) -> R1CSResult<()>
If
should_enforce == true, enforce that self and other are equal;
else, enforce a vacuously true statement. Read moreSource§fn conditional_enforce_not_equal(
&self,
other: &Self,
should_enforce: &Boolean<BaseField>,
) -> R1CSResult<()>
fn conditional_enforce_not_equal( &self, other: &Self, should_enforce: &Boolean<BaseField>, ) -> R1CSResult<()>
If
should_enforce == true, enforce that self and other are not
equal; else, enforce a vacuously true statement. Read moreSource§fn enforce_equal(&self, other: &Self) -> Result<(), SynthesisError>
fn enforce_equal(&self, other: &Self) -> Result<(), SynthesisError>
Source§fn enforce_not_equal(&self, other: &Self) -> Result<(), SynthesisError>
fn enforce_not_equal(&self, other: &Self) -> Result<(), SynthesisError>
Source§impl<TargetField: PrimeField, BaseField: PrimeField> FieldVar<TargetField, BaseField> for NonNativeFieldVar<TargetField, BaseField>
impl<TargetField: PrimeField, BaseField: PrimeField> FieldVar<TargetField, BaseField> for NonNativeFieldVar<TargetField, BaseField>
Source§fn negate(&self) -> R1CSResult<Self>
fn negate(&self) -> R1CSResult<Self>
Coputes
-self.Source§fn inverse(&self) -> R1CSResult<Self>
fn inverse(&self) -> R1CSResult<Self>
Computes
result such that self * result == Self::one().Source§fn frobenius_map(&self, power: usize) -> R1CSResult<Self>
fn frobenius_map(&self, power: usize) -> R1CSResult<Self>
Computes the frobenius map over
self.Source§fn is_zero(&self) -> Result<Boolean<ConstraintF>, SynthesisError>
fn is_zero(&self) -> Result<Boolean<ConstraintF>, SynthesisError>
Returns a
Boolean representing whether self == Self::zero().Source§fn is_one(&self) -> Result<Boolean<ConstraintF>, SynthesisError>
fn is_one(&self) -> Result<Boolean<ConstraintF>, SynthesisError>
Returns a
Boolean representing whether self == Self::one().Source§fn double(&self) -> Result<Self, SynthesisError>
fn double(&self) -> Result<Self, SynthesisError>
Computes
self + self.Source§fn double_in_place(&mut self) -> Result<&mut Self, SynthesisError>
fn double_in_place(&mut self) -> Result<&mut Self, SynthesisError>
Sets
self = self + self.Source§fn negate_in_place(&mut self) -> Result<&mut Self, SynthesisError>
fn negate_in_place(&mut self) -> Result<&mut Self, SynthesisError>
Sets
self = -self.Source§fn square_in_place(&mut self) -> Result<&mut Self, SynthesisError>
fn square_in_place(&mut self) -> Result<&mut Self, SynthesisError>
Sets
self = self.square().Source§fn mul_equals(&self, other: &Self, result: &Self) -> Result<(), SynthesisError>
fn mul_equals(&self, other: &Self, result: &Self) -> Result<(), SynthesisError>
Enforces that
self * other == result.Source§fn square_equals(&self, result: &Self) -> Result<(), SynthesisError>
fn square_equals(&self, result: &Self) -> Result<(), SynthesisError>
Enforces that
self * self == result.Source§fn mul_by_inverse(&self, d: &Self) -> Result<Self, SynthesisError>
fn mul_by_inverse(&self, d: &Self) -> Result<Self, SynthesisError>
Returns
(self / d).
The constraint system will be unsatisfiable when d = 0.Source§fn frobenius_map_in_place(
&mut self,
power: usize,
) -> Result<&mut Self, SynthesisError>
fn frobenius_map_in_place( &mut self, power: usize, ) -> Result<&mut Self, SynthesisError>
Sets
self = self.frobenius_map().Source§fn pow_le(&self, bits: &[Boolean<ConstraintF>]) -> Result<Self, SynthesisError>
fn pow_le(&self, bits: &[Boolean<ConstraintF>]) -> Result<Self, SynthesisError>
Comptues
self^bits, where bits is a little-endian bit-wise
decomposition of the exponent.Source§fn pow_by_constant<S>(&self, exp: S) -> Result<Self, SynthesisError>
fn pow_by_constant<S>(&self, exp: S) -> Result<Self, SynthesisError>
Computes
self^S, where S is interpreted as an little-endian
u64-decomposition of an integer.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.
Source§impl<TargetField: PrimeField, BaseField: PrimeField> From<AllocatedNonNativeFieldVar<TargetField, BaseField>> for NonNativeFieldVar<TargetField, BaseField>
impl<TargetField: PrimeField, BaseField: PrimeField> From<AllocatedNonNativeFieldVar<TargetField, BaseField>> for NonNativeFieldVar<TargetField, BaseField>
Source§fn from(other: AllocatedNonNativeFieldVar<TargetField, BaseField>) -> Self
fn from(other: AllocatedNonNativeFieldVar<TargetField, BaseField>) -> Self
Converts to this type from the input type.
Source§impl<TargetField: PrimeField, BaseField: PrimeField> From<Boolean<BaseField>> for NonNativeFieldVar<TargetField, BaseField>
impl<TargetField: PrimeField, BaseField: PrimeField> From<Boolean<BaseField>> for NonNativeFieldVar<TargetField, BaseField>
Source§impl<TargetField: PrimeField, BaseField: PrimeField> Hash for NonNativeFieldVar<TargetField, BaseField>
impl<TargetField: PrimeField, BaseField: PrimeField> Hash for NonNativeFieldVar<TargetField, BaseField>
Source§impl<'a, TargetField: PrimeField, BaseField: PrimeField> Mul<&'a NonNativeFieldVar<TargetField, BaseField>> for NonNativeFieldVar<TargetField, BaseField>
impl<'a, TargetField: PrimeField, BaseField: PrimeField> Mul<&'a NonNativeFieldVar<TargetField, BaseField>> for NonNativeFieldVar<TargetField, BaseField>
Source§type Output = NonNativeFieldVar<TargetField, BaseField>
type Output = NonNativeFieldVar<TargetField, BaseField>
The resulting type after applying the
* operator.Source§impl<'a, TargetField: PrimeField, BaseField: PrimeField> Mul<NonNativeFieldVar<TargetField, BaseField>> for &'a NonNativeFieldVar<TargetField, BaseField>
impl<'a, TargetField: PrimeField, BaseField: PrimeField> Mul<NonNativeFieldVar<TargetField, BaseField>> for &'a NonNativeFieldVar<TargetField, BaseField>
Source§type Output = NonNativeFieldVar<TargetField, BaseField>
type Output = NonNativeFieldVar<TargetField, BaseField>
The resulting type after applying the
* operator.Source§impl<'a, TargetField: PrimeField, BaseField: PrimeField> Mul<TargetField> for &'a NonNativeFieldVar<TargetField, BaseField>
impl<'a, TargetField: PrimeField, BaseField: PrimeField> Mul<TargetField> for &'a NonNativeFieldVar<TargetField, BaseField>
Source§impl<TargetField: PrimeField, BaseField: PrimeField> Mul<TargetField> for NonNativeFieldVar<TargetField, BaseField>
impl<TargetField: PrimeField, BaseField: PrimeField> Mul<TargetField> for NonNativeFieldVar<TargetField, BaseField>
Source§impl<'a, TargetField: PrimeField, BaseField: PrimeField> Mul for &'a NonNativeFieldVar<TargetField, BaseField>
impl<'a, TargetField: PrimeField, BaseField: PrimeField> Mul for &'a NonNativeFieldVar<TargetField, BaseField>
Source§impl<TargetField: PrimeField, BaseField: PrimeField> Mul for NonNativeFieldVar<TargetField, BaseField>
impl<TargetField: PrimeField, BaseField: PrimeField> Mul for NonNativeFieldVar<TargetField, BaseField>
Source§type Output = NonNativeFieldVar<TargetField, BaseField>
type Output = NonNativeFieldVar<TargetField, BaseField>
The resulting type after applying the
* operator.Source§impl<'a, TargetField: PrimeField, BaseField: PrimeField> MulAssign<&'a NonNativeFieldVar<TargetField, BaseField>> for NonNativeFieldVar<TargetField, BaseField>
impl<'a, TargetField: PrimeField, BaseField: PrimeField> MulAssign<&'a NonNativeFieldVar<TargetField, BaseField>> for NonNativeFieldVar<TargetField, BaseField>
Source§fn mul_assign(&mut self, other: &'a NonNativeFieldVar<TargetField, BaseField>)
fn mul_assign(&mut self, other: &'a NonNativeFieldVar<TargetField, BaseField>)
Performs the
*= operation. Read moreSource§impl<TargetField: PrimeField, BaseField: PrimeField> MulAssign<TargetField> for NonNativeFieldVar<TargetField, BaseField>
impl<TargetField: PrimeField, BaseField: PrimeField> MulAssign<TargetField> for NonNativeFieldVar<TargetField, BaseField>
Source§fn mul_assign(&mut self, other: TargetField)
fn mul_assign(&mut self, other: TargetField)
Performs the
*= operation. Read moreSource§impl<TargetField: PrimeField, BaseField: PrimeField> MulAssign for NonNativeFieldVar<TargetField, BaseField>
impl<TargetField: PrimeField, BaseField: PrimeField> MulAssign for NonNativeFieldVar<TargetField, BaseField>
Source§fn mul_assign(&mut self, other: NonNativeFieldVar<TargetField, BaseField>)
fn mul_assign(&mut self, other: NonNativeFieldVar<TargetField, BaseField>)
Performs the
*= operation. Read moreSource§impl<TargetField: PrimeField, BaseField: PrimeField> PartialEq for NonNativeFieldVar<TargetField, BaseField>
impl<TargetField: PrimeField, BaseField: PrimeField> PartialEq for NonNativeFieldVar<TargetField, BaseField>
Source§impl<TargetField: PrimeField, BaseField: PrimeField> R1CSVar<BaseField> for NonNativeFieldVar<TargetField, BaseField>
impl<TargetField: PrimeField, BaseField: PrimeField> R1CSVar<BaseField> for NonNativeFieldVar<TargetField, BaseField>
Source§type Value = TargetField
type Value = TargetField
The type of the “native” value that
Self represents in the constraint
system.Source§fn cs(&self) -> ConstraintSystemRef<BaseField>
fn cs(&self) -> ConstraintSystemRef<BaseField>
Returns the underlying
ConstraintSystemRef. Read moreSource§fn value(&self) -> R1CSResult<Self::Value>
fn value(&self) -> R1CSResult<Self::Value>
Returns the value that is assigned to
self in the underlying
ConstraintSystem.Source§fn is_constant(&self) -> bool
fn is_constant(&self) -> bool
Returns
true if self is a circuit-generation-time constant.Source§impl<'a, TargetField: PrimeField, BaseField: PrimeField> Sub<&'a NonNativeFieldVar<TargetField, BaseField>> for NonNativeFieldVar<TargetField, BaseField>
impl<'a, TargetField: PrimeField, BaseField: PrimeField> Sub<&'a NonNativeFieldVar<TargetField, BaseField>> for NonNativeFieldVar<TargetField, BaseField>
Source§type Output = NonNativeFieldVar<TargetField, BaseField>
type Output = NonNativeFieldVar<TargetField, BaseField>
The resulting type after applying the
- operator.Source§impl<'a, TargetField: PrimeField, BaseField: PrimeField> Sub<NonNativeFieldVar<TargetField, BaseField>> for &'a NonNativeFieldVar<TargetField, BaseField>
impl<'a, TargetField: PrimeField, BaseField: PrimeField> Sub<NonNativeFieldVar<TargetField, BaseField>> for &'a NonNativeFieldVar<TargetField, BaseField>
Source§type Output = NonNativeFieldVar<TargetField, BaseField>
type Output = NonNativeFieldVar<TargetField, BaseField>
The resulting type after applying the
- operator.Source§impl<'a, TargetField: PrimeField, BaseField: PrimeField> Sub<TargetField> for &'a NonNativeFieldVar<TargetField, BaseField>
impl<'a, TargetField: PrimeField, BaseField: PrimeField> Sub<TargetField> for &'a NonNativeFieldVar<TargetField, BaseField>
Source§impl<TargetField: PrimeField, BaseField: PrimeField> Sub<TargetField> for NonNativeFieldVar<TargetField, BaseField>
impl<TargetField: PrimeField, BaseField: PrimeField> Sub<TargetField> for NonNativeFieldVar<TargetField, BaseField>
Source§impl<'a, TargetField: PrimeField, BaseField: PrimeField> Sub for &'a NonNativeFieldVar<TargetField, BaseField>
impl<'a, TargetField: PrimeField, BaseField: PrimeField> Sub for &'a NonNativeFieldVar<TargetField, BaseField>
Source§impl<TargetField: PrimeField, BaseField: PrimeField> Sub for NonNativeFieldVar<TargetField, BaseField>
impl<TargetField: PrimeField, BaseField: PrimeField> Sub for NonNativeFieldVar<TargetField, BaseField>
Source§type Output = NonNativeFieldVar<TargetField, BaseField>
type Output = NonNativeFieldVar<TargetField, BaseField>
The resulting type after applying the
- operator.Source§impl<'a, TargetField: PrimeField, BaseField: PrimeField> SubAssign<&'a NonNativeFieldVar<TargetField, BaseField>> for NonNativeFieldVar<TargetField, BaseField>
impl<'a, TargetField: PrimeField, BaseField: PrimeField> SubAssign<&'a NonNativeFieldVar<TargetField, BaseField>> for NonNativeFieldVar<TargetField, BaseField>
Source§fn sub_assign(&mut self, other: &'a NonNativeFieldVar<TargetField, BaseField>)
fn sub_assign(&mut self, other: &'a NonNativeFieldVar<TargetField, BaseField>)
Performs the
-= operation. Read moreSource§impl<TargetField: PrimeField, BaseField: PrimeField> SubAssign<TargetField> for NonNativeFieldVar<TargetField, BaseField>
impl<TargetField: PrimeField, BaseField: PrimeField> SubAssign<TargetField> for NonNativeFieldVar<TargetField, BaseField>
Source§fn sub_assign(&mut self, other: TargetField)
fn sub_assign(&mut self, other: TargetField)
Performs the
-= operation. Read moreSource§impl<TargetField: PrimeField, BaseField: PrimeField> SubAssign for NonNativeFieldVar<TargetField, BaseField>
impl<TargetField: PrimeField, BaseField: PrimeField> SubAssign for NonNativeFieldVar<TargetField, BaseField>
Source§fn sub_assign(&mut self, other: NonNativeFieldVar<TargetField, BaseField>)
fn sub_assign(&mut self, other: NonNativeFieldVar<TargetField, BaseField>)
Performs the
-= operation. Read moreSource§impl<TargetField: PrimeField, BaseField: PrimeField> ThreeBitCondNegLookupGadget<BaseField> for NonNativeFieldVar<TargetField, BaseField>
impl<TargetField: PrimeField, BaseField: PrimeField> ThreeBitCondNegLookupGadget<BaseField> for NonNativeFieldVar<TargetField, BaseField>
Source§type TableConstant = TargetField
type TableConstant = TargetField
The type of values being looked up.
Source§fn three_bit_cond_neg_lookup(
b: &[Boolean<BaseField>],
b0b1: &Boolean<BaseField>,
c: &[Self::TableConstant],
) -> R1CSResult<Self>
fn three_bit_cond_neg_lookup( b: &[Boolean<BaseField>], b0b1: &Boolean<BaseField>, c: &[Self::TableConstant], ) -> R1CSResult<Self>
Interprets the slice
bits as a two-bit integer b = bits[0] + (bits[1] << 1), and then outputs constants[b] * c, where c = if bits[2] { -1 } else { 1 };. Read moreSource§impl<TargetField: PrimeField, BaseField: PrimeField> ToBitsGadget<BaseField> for NonNativeFieldVar<TargetField, BaseField>
impl<TargetField: PrimeField, BaseField: PrimeField> ToBitsGadget<BaseField> for NonNativeFieldVar<TargetField, BaseField>
Source§fn to_bits_le(&self) -> R1CSResult<Vec<Boolean<BaseField>>>
fn to_bits_le(&self) -> R1CSResult<Vec<Boolean<BaseField>>>
Outputs the canonical little-endian bit-wise representation of
self. Read moreSource§fn to_non_unique_bits_le(&self) -> R1CSResult<Vec<Boolean<BaseField>>>
fn to_non_unique_bits_le(&self) -> R1CSResult<Vec<Boolean<BaseField>>>
Outputs a possibly non-unique little-endian bit-wise representation of
self. Read moreSource§fn to_bits_be(&self) -> Result<Vec<Boolean<F>>, SynthesisError>
fn to_bits_be(&self) -> Result<Vec<Boolean<F>>, SynthesisError>
Outputs the canonical big-endian bit-wise representation of
self.Source§fn to_non_unique_bits_be(&self) -> Result<Vec<Boolean<F>>, SynthesisError>
fn to_non_unique_bits_be(&self) -> Result<Vec<Boolean<F>>, SynthesisError>
Outputs a possibly non-unique big-endian bit-wise representation of
self.Source§impl<TargetField: PrimeField, BaseField: PrimeField> ToBytesGadget<BaseField> for NonNativeFieldVar<TargetField, BaseField>
impl<TargetField: PrimeField, BaseField: PrimeField> ToBytesGadget<BaseField> for NonNativeFieldVar<TargetField, BaseField>
Source§fn to_bytes(&self) -> R1CSResult<Vec<UInt8<BaseField>>>
fn to_bytes(&self) -> R1CSResult<Vec<UInt8<BaseField>>>
Outputs the unique byte decomposition of self in little-endian
form.
Source§fn to_non_unique_bytes(&self) -> R1CSResult<Vec<UInt8<BaseField>>>
fn to_non_unique_bytes(&self) -> R1CSResult<Vec<UInt8<BaseField>>>
Outputs a possibly non-unique byte decomposition of
self. Read moreSource§impl<TargetField: PrimeField, BaseField: PrimeField> ToConstraintFieldGadget<BaseField> for NonNativeFieldVar<TargetField, BaseField>
impl<TargetField: PrimeField, BaseField: PrimeField> ToConstraintFieldGadget<BaseField> for NonNativeFieldVar<TargetField, BaseField>
Source§fn to_constraint_field(&self) -> R1CSResult<Vec<FpVar<BaseField>>>
fn to_constraint_field(&self) -> R1CSResult<Vec<FpVar<BaseField>>>
Converts
self to FpVar<ConstraintF> variables.Source§impl<TargetField: PrimeField, BaseField: PrimeField> TwoBitLookupGadget<BaseField> for NonNativeFieldVar<TargetField, BaseField>
Uses two bits to perform a lookup into a table
b is little-endian: b[0] is LSB.
impl<TargetField: PrimeField, BaseField: PrimeField> TwoBitLookupGadget<BaseField> for NonNativeFieldVar<TargetField, BaseField>
Uses two bits to perform a lookup into a table
b is little-endian: b[0] is LSB.
Source§type TableConstant = TargetField
type TableConstant = TargetField
The type of values being looked up.
Source§fn two_bit_lookup(
b: &[Boolean<BaseField>],
c: &[Self::TableConstant],
) -> R1CSResult<Self>
fn two_bit_lookup( b: &[Boolean<BaseField>], c: &[Self::TableConstant], ) -> R1CSResult<Self>
Interprets the slice
bits as a two-bit integer b = bits[0] + (bits[1] << 1), and then outputs constants[b]. Read moreimpl<TargetField: PrimeField, BaseField: PrimeField> Eq for NonNativeFieldVar<TargetField, BaseField>
impl<'a, TargetField: PrimeField, BaseField: PrimeField> FieldOpsBounds<'a, TargetField, NonNativeFieldVar<TargetField, BaseField>> for &'a NonNativeFieldVar<TargetField, BaseField>
impl<'a, TargetField: PrimeField, BaseField: PrimeField> FieldOpsBounds<'a, TargetField, NonNativeFieldVar<TargetField, BaseField>> for NonNativeFieldVar<TargetField, BaseField>
Auto Trait Implementations§
impl<TargetField, BaseField> Freeze for NonNativeFieldVar<TargetField, BaseField>
impl<TargetField, BaseField> !RefUnwindSafe for NonNativeFieldVar<TargetField, BaseField>
impl<TargetField, BaseField> !Send for NonNativeFieldVar<TargetField, BaseField>
impl<TargetField, BaseField> !Sync for NonNativeFieldVar<TargetField, BaseField>
impl<TargetField, BaseField> Unpin for NonNativeFieldVar<TargetField, BaseField>
impl<TargetField, BaseField> !UnwindSafe for NonNativeFieldVar<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