Enum ark_r1cs_std::fields::nonnative::NonNativeFieldVar
source · 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 &'a NonNativeFieldVar<TargetField, BaseField>
impl<'a, TargetField: PrimeField, BaseField: PrimeField> Add<&'a NonNativeFieldVar<TargetField, BaseField>> for &'a NonNativeFieldVar<TargetField, BaseField>
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>
§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>
§type Output = NonNativeFieldVar<TargetField, BaseField>
type Output = NonNativeFieldVar<TargetField, BaseField>
The resulting type after applying the
+
operator.source§impl<TargetField: PrimeField, BaseField: PrimeField> Add<NonNativeFieldVar<TargetField, BaseField>> for NonNativeFieldVar<TargetField, BaseField>
impl<TargetField: PrimeField, BaseField: PrimeField> Add<NonNativeFieldVar<TargetField, BaseField>> for NonNativeFieldVar<TargetField, BaseField>
§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> 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<NonNativeFieldVar<TargetField, BaseField>> for NonNativeFieldVar<TargetField, BaseField>
impl<TargetField: PrimeField, BaseField: PrimeField> AddAssign<NonNativeFieldVar<TargetField, BaseField>> 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> 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> 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: Borrow<V>>(
cs: impl Into<Namespace<F>>,
f: impl FnOnce() -> Result<T, SynthesisError>
) -> Result<Self, SynthesisError>
fn new_input<T: Borrow<V>>(
cs: impl Into<Namespace<F>>,
f: impl FnOnce() -> Result<T, SynthesisError>
) -> Result<Self, SynthesisError>
Allocates a new public input of type
Self
in the ConstraintSystem
cs
.source§fn new_witness<T: Borrow<V>>(
cs: impl Into<Namespace<F>>,
f: impl FnOnce() -> Result<T, SynthesisError>
) -> Result<Self, SynthesisError>
fn new_witness<T: Borrow<V>>(
cs: impl Into<Namespace<F>>,
f: impl FnOnce() -> Result<T, SynthesisError>
) -> Result<Self, SynthesisError>
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 copy 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 mul_by_inverse_unchecked(&self, d: &Self) -> Result<Self, SynthesisError>
fn mul_by_inverse_unchecked(&self, d: &Self) -> Result<Self, SynthesisError>
Returns
(self / d)
. Read moresource§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: AsRef<[u64]>>(
&self,
exp: S
) -> Result<Self, SynthesisError>
fn pow_by_constant<S: AsRef<[u64]>>(
&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 &'a NonNativeFieldVar<TargetField, BaseField>
impl<'a, TargetField: PrimeField, BaseField: PrimeField> Mul<&'a NonNativeFieldVar<TargetField, BaseField>> for &'a 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>
§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>
§type Output = NonNativeFieldVar<TargetField, BaseField>
type Output = NonNativeFieldVar<TargetField, BaseField>
The resulting type after applying the
*
operator.source§impl<TargetField: PrimeField, BaseField: PrimeField> Mul<NonNativeFieldVar<TargetField, BaseField>> for NonNativeFieldVar<TargetField, BaseField>
impl<TargetField: PrimeField, BaseField: PrimeField> Mul<NonNativeFieldVar<TargetField, BaseField>> for NonNativeFieldVar<TargetField, BaseField>
§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> 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<NonNativeFieldVar<TargetField, BaseField>> for NonNativeFieldVar<TargetField, BaseField>
impl<TargetField: PrimeField, BaseField: PrimeField> MulAssign<NonNativeFieldVar<TargetField, BaseField>> 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> 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> PartialEq<NonNativeFieldVar<TargetField, BaseField>> for NonNativeFieldVar<TargetField, BaseField>
impl<TargetField: PrimeField, BaseField: PrimeField> PartialEq<NonNativeFieldVar<TargetField, BaseField>> 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>
§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 &'a NonNativeFieldVar<TargetField, BaseField>
impl<'a, TargetField: PrimeField, BaseField: PrimeField> Sub<&'a NonNativeFieldVar<TargetField, BaseField>> for &'a NonNativeFieldVar<TargetField, BaseField>
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>
§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>
§type Output = NonNativeFieldVar<TargetField, BaseField>
type Output = NonNativeFieldVar<TargetField, BaseField>
The resulting type after applying the
-
operator.source§impl<TargetField: PrimeField, BaseField: PrimeField> Sub<NonNativeFieldVar<TargetField, BaseField>> for NonNativeFieldVar<TargetField, BaseField>
impl<TargetField: PrimeField, BaseField: PrimeField> Sub<NonNativeFieldVar<TargetField, BaseField>> for NonNativeFieldVar<TargetField, BaseField>
§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> 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<NonNativeFieldVar<TargetField, BaseField>> for NonNativeFieldVar<TargetField, BaseField>
impl<TargetField: PrimeField, BaseField: PrimeField> SubAssign<NonNativeFieldVar<TargetField, BaseField>> 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> 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> ThreeBitCondNegLookupGadget<BaseField> for NonNativeFieldVar<TargetField, BaseField>
impl<TargetField: PrimeField, BaseField: PrimeField> ThreeBitCondNegLookupGadget<BaseField> for NonNativeFieldVar<TargetField, BaseField>
§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>
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.
§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> !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>where
BaseField: Unpin,
TargetField: Unpin,
impl<TargetField, BaseField> !UnwindSafe for NonNativeFieldVar<TargetField, BaseField>
Blanket Implementations§
§impl<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
impl<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Checks if this value is equivalent to the given key. Read more