Enum ark_nonnative_field::NonNativeFieldVar [−][src]
A gadget for representing non-native (TargetField
) field elements over the constraint field (BaseField
).
Variants
Constant
Var(AllocatedNonNativeFieldVar<TargetField, BaseField>)
Allocated gadget
Implementations
impl<TargetField: PrimeField, BaseField: PrimeField> NonNativeFieldVar<TargetField, BaseField>
[src]
pub fn mul_without_reduce(
&self,
other: &Self
) -> R1CSResult<NonNativeFieldMulResultVar<TargetField, BaseField>>
[src]
&self,
other: &Self
) -> R1CSResult<NonNativeFieldMulResultVar<TargetField, BaseField>>
The mul_without_reduce
for NonNativeFieldVar
Trait Implementations
impl<'a, TargetField: PrimeField, BaseField: PrimeField> Add<&'a NonNativeFieldVar<TargetField, BaseField>> for &'a NonNativeFieldVar<TargetField, BaseField>
[src]
type Output = NonNativeFieldVar<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 NonNativeFieldVar<TargetField, BaseField>> for NonNativeFieldVar<TargetField, BaseField>
[src]
type Output = NonNativeFieldVar<TargetField, BaseField>
The resulting type after applying the +
operator.
fn add(
self,
other: &'a NonNativeFieldVar<TargetField, BaseField>
) -> Self::Output
[src]
self,
other: &'a NonNativeFieldVar<TargetField, BaseField>
) -> Self::Output
impl<'a, TargetField: PrimeField, BaseField: PrimeField> Add<NonNativeFieldVar<TargetField, BaseField>> for &'a NonNativeFieldVar<TargetField, BaseField>
[src]
type Output = NonNativeFieldVar<TargetField, BaseField>
The resulting type after applying the +
operator.
fn add(self, other: NonNativeFieldVar<TargetField, BaseField>) -> Self::Output
[src]
impl<TargetField: PrimeField, BaseField: PrimeField> Add<NonNativeFieldVar<TargetField, BaseField>> for NonNativeFieldVar<TargetField, BaseField>
[src]
type Output = NonNativeFieldVar<TargetField, BaseField>
The resulting type after applying the +
operator.
fn add(self, other: NonNativeFieldVar<TargetField, BaseField>) -> Self::Output
[src]
impl<'a, TargetField: PrimeField, BaseField: PrimeField> Add<TargetField> for &'a NonNativeFieldVar<TargetField, BaseField>
[src]
type Output = NonNativeFieldVar<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 NonNativeFieldVar<TargetField, BaseField>
[src]
type Output = NonNativeFieldVar<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 NonNativeFieldVar<TargetField, BaseField>> for NonNativeFieldVar<TargetField, BaseField>
[src]
fn add_assign(&mut self, other: &'a NonNativeFieldVar<TargetField, BaseField>)
[src]
impl<TargetField: PrimeField, BaseField: PrimeField> AddAssign<NonNativeFieldVar<TargetField, BaseField>> for NonNativeFieldVar<TargetField, BaseField>
[src]
fn add_assign(&mut self, other: NonNativeFieldVar<TargetField, BaseField>)
[src]
impl<TargetField: PrimeField, BaseField: PrimeField> AddAssign<TargetField> for NonNativeFieldVar<TargetField, BaseField>
[src]
fn add_assign(&mut self, other: TargetField)
[src]
impl<TargetField: PrimeField, BaseField: PrimeField> AllocVar<TargetField, BaseField> for NonNativeFieldVar<TargetField, BaseField>
[src]
fn new_variable<T: Borrow<TargetField>>(
cs: impl Into<Namespace<BaseField>>,
f: impl FnOnce() -> Result<T, SynthesisError>,
mode: AllocationMode
) -> R1CSResult<Self>
[src]
cs: impl Into<Namespace<BaseField>>,
f: impl FnOnce() -> Result<T, SynthesisError>,
mode: AllocationMode
) -> R1CSResult<Self>
pub fn new_constant(
cs: impl Into<Namespace<F>>,
t: impl Borrow<V>
) -> Result<Self, SynthesisError>
[src]
cs: impl Into<Namespace<F>>,
t: impl Borrow<V>
) -> Result<Self, SynthesisError>
pub fn new_input<T>(
cs: impl Into<Namespace<F>>,
f: impl FnOnce() -> Result<T, SynthesisError>
) -> Result<Self, SynthesisError> where
T: Borrow<V>,
[src]
cs: impl Into<Namespace<F>>,
f: impl FnOnce() -> Result<T, SynthesisError>
) -> Result<Self, SynthesisError> where
T: Borrow<V>,
pub fn new_witness<T>(
cs: impl Into<Namespace<F>>,
f: impl FnOnce() -> Result<T, SynthesisError>
) -> Result<Self, SynthesisError> where
T: Borrow<V>,
[src]
cs: impl Into<Namespace<F>>,
f: impl FnOnce() -> Result<T, SynthesisError>
) -> Result<Self, SynthesisError> where
T: Borrow<V>,
impl<TargetField: Clone + PrimeField, BaseField: Clone + PrimeField> Clone for NonNativeFieldVar<TargetField, BaseField>
[src]
fn clone(&self) -> NonNativeFieldVar<TargetField, BaseField>
[src]
pub fn clone_from(&mut self, source: &Self)
1.0.0[src]
impl<TargetField: PrimeField, BaseField: PrimeField> CondSelectGadget<BaseField> for NonNativeFieldVar<TargetField, BaseField>
[src]
fn conditionally_select(
cond: &Boolean<BaseField>,
true_value: &Self,
false_value: &Self
) -> R1CSResult<Self>
[src]
cond: &Boolean<BaseField>,
true_value: &Self,
false_value: &Self
) -> R1CSResult<Self>
pub fn conditionally_select_power_of_two_vector(
position: &[Boolean<ConstraintF>],
values: &[Self]
) -> Result<Self, SynthesisError>
[src]
position: &[Boolean<ConstraintF>],
values: &[Self]
) -> Result<Self, SynthesisError>
impl<TargetField: Debug + PrimeField, BaseField: Debug + PrimeField> Debug for NonNativeFieldVar<TargetField, BaseField>
[src]
impl<TargetField: PrimeField, BaseField: PrimeField> Eq for NonNativeFieldVar<TargetField, BaseField>
[src]
impl<TargetField: PrimeField, BaseField: PrimeField> EqGadget<BaseField> for NonNativeFieldVar<TargetField, BaseField>
[src]
fn is_eq(&self, other: &Self) -> R1CSResult<Boolean<BaseField>>
[src]
fn conditional_enforce_equal(
&self,
other: &Self,
should_enforce: &Boolean<BaseField>
) -> R1CSResult<()>
[src]
&self,
other: &Self,
should_enforce: &Boolean<BaseField>
) -> R1CSResult<()>
fn conditional_enforce_not_equal(
&self,
other: &Self,
should_enforce: &Boolean<BaseField>
) -> R1CSResult<()>
[src]
&self,
other: &Self,
should_enforce: &Boolean<BaseField>
) -> R1CSResult<()>
pub fn is_neq(&self, other: &Self) -> Result<Boolean<F>, SynthesisError>
[src]
pub fn enforce_equal(&self, other: &Self) -> Result<(), SynthesisError>
[src]
pub fn enforce_not_equal(&self, other: &Self) -> Result<(), SynthesisError>
[src]
impl<'a, TargetField: PrimeField, BaseField: PrimeField> FieldOpsBounds<'a, TargetField, NonNativeFieldVar<TargetField, BaseField>> for NonNativeFieldVar<TargetField, BaseField>
[src]
impl<'a, TargetField: PrimeField, BaseField: PrimeField> FieldOpsBounds<'a, TargetField, NonNativeFieldVar<TargetField, BaseField>> for &'a NonNativeFieldVar<TargetField, BaseField>
[src]
impl<TargetField: PrimeField, BaseField: PrimeField> FieldVar<TargetField, BaseField> for NonNativeFieldVar<TargetField, BaseField>
[src]
fn zero() -> Self
[src]
fn one() -> Self
[src]
fn constant(v: TargetField) -> Self
[src]
fn negate(&self) -> R1CSResult<Self>
[src]
fn inverse(&self) -> R1CSResult<Self>
[src]
fn frobenius_map(&self, power: usize) -> R1CSResult<Self>
[src]
pub fn is_zero(&self) -> Result<Boolean<ConstraintF>, SynthesisError>
[src]
pub fn is_one(&self) -> Result<Boolean<ConstraintF>, SynthesisError>
[src]
pub fn double(&self) -> Result<Self, SynthesisError>
[src]
pub fn double_in_place(&mut self) -> Result<&mut Self, SynthesisError>
[src]
pub fn negate_in_place(&mut self) -> Result<&mut Self, SynthesisError>
[src]
pub fn square(&self) -> Result<Self, SynthesisError>
[src]
pub fn square_in_place(&mut self) -> Result<&mut Self, SynthesisError>
[src]
pub fn mul_equals(
&self,
other: &Self,
result: &Self
) -> Result<(), SynthesisError>
[src]
&self,
other: &Self,
result: &Self
) -> Result<(), SynthesisError>
pub fn square_equals(&self, result: &Self) -> Result<(), SynthesisError>
[src]
pub fn mul_by_inverse(&self, d: &Self) -> Result<Self, SynthesisError>
[src]
pub fn frobenius_map_in_place(
&mut self,
power: usize
) -> Result<&mut Self, SynthesisError>
[src]
&mut self,
power: usize
) -> Result<&mut Self, SynthesisError>
pub fn pow_le(
&self,
bits: &[Boolean<ConstraintF>]
) -> Result<Self, SynthesisError>
[src]
&self,
bits: &[Boolean<ConstraintF>]
) -> Result<Self, SynthesisError>
pub fn pow_by_constant<S>(&self, exp: S) -> Result<Self, SynthesisError> where
S: AsRef<[u64]>,
[src]
S: AsRef<[u64]>,
impl<TargetField: PrimeField, BaseField: PrimeField> From<&'_ NonNativeFieldVar<TargetField, BaseField>> for NonNativeFieldMulResultVar<TargetField, BaseField>
[src]
fn from(src: &NonNativeFieldVar<TargetField, BaseField>) -> Self
[src]
impl<TargetField: PrimeField, BaseField: PrimeField> From<AllocatedNonNativeFieldVar<TargetField, BaseField>> for NonNativeFieldVar<TargetField, BaseField>
[src]
fn from(other: AllocatedNonNativeFieldVar<TargetField, BaseField>) -> Self
[src]
impl<TargetField: PrimeField, BaseField: PrimeField> From<Boolean<BaseField>> for NonNativeFieldVar<TargetField, BaseField>
[src]
impl<TargetField: PrimeField, BaseField: PrimeField> Hash for NonNativeFieldVar<TargetField, BaseField>
[src]
fn hash<H: Hasher>(&self, state: &mut H)
[src]
pub fn hash_slice<H>(data: &[Self], state: &mut H) where
H: Hasher,
1.3.0[src]
H: Hasher,
impl<'a, TargetField: PrimeField, BaseField: PrimeField> Mul<&'a NonNativeFieldVar<TargetField, BaseField>> for &'a NonNativeFieldVar<TargetField, BaseField>
[src]
type Output = NonNativeFieldVar<TargetField, BaseField>
The resulting type after applying the *
operator.
fn mul(self, other: Self) -> Self::Output
[src]
impl<'a, TargetField: PrimeField, BaseField: PrimeField> Mul<&'a NonNativeFieldVar<TargetField, BaseField>> for NonNativeFieldVar<TargetField, BaseField>
[src]
type Output = NonNativeFieldVar<TargetField, BaseField>
The resulting type after applying the *
operator.
fn mul(
self,
other: &'a NonNativeFieldVar<TargetField, BaseField>
) -> Self::Output
[src]
self,
other: &'a NonNativeFieldVar<TargetField, BaseField>
) -> Self::Output
impl<'a, TargetField: PrimeField, BaseField: PrimeField> Mul<NonNativeFieldVar<TargetField, BaseField>> for &'a NonNativeFieldVar<TargetField, BaseField>
[src]
type Output = NonNativeFieldVar<TargetField, BaseField>
The resulting type after applying the *
operator.
fn mul(self, other: NonNativeFieldVar<TargetField, BaseField>) -> Self::Output
[src]
impl<TargetField: PrimeField, BaseField: PrimeField> Mul<NonNativeFieldVar<TargetField, BaseField>> for NonNativeFieldVar<TargetField, BaseField>
[src]
type Output = NonNativeFieldVar<TargetField, BaseField>
The resulting type after applying the *
operator.
fn mul(self, other: NonNativeFieldVar<TargetField, BaseField>) -> Self::Output
[src]
impl<'a, TargetField: PrimeField, BaseField: PrimeField> Mul<TargetField> for &'a NonNativeFieldVar<TargetField, BaseField>
[src]
type Output = NonNativeFieldVar<TargetField, BaseField>
The resulting type after applying the *
operator.
fn mul(self, other: TargetField) -> Self::Output
[src]
impl<TargetField: PrimeField, BaseField: PrimeField> Mul<TargetField> for NonNativeFieldVar<TargetField, BaseField>
[src]
type Output = NonNativeFieldVar<TargetField, BaseField>
The resulting type after applying the *
operator.
fn mul(self, other: TargetField) -> Self::Output
[src]
impl<'a, TargetField: PrimeField, BaseField: PrimeField> MulAssign<&'a NonNativeFieldVar<TargetField, BaseField>> for NonNativeFieldVar<TargetField, BaseField>
[src]
fn mul_assign(&mut self, other: &'a NonNativeFieldVar<TargetField, BaseField>)
[src]
impl<TargetField: PrimeField, BaseField: PrimeField> MulAssign<NonNativeFieldVar<TargetField, BaseField>> for NonNativeFieldVar<TargetField, BaseField>
[src]
fn mul_assign(&mut self, other: NonNativeFieldVar<TargetField, BaseField>)
[src]
impl<TargetField: PrimeField, BaseField: PrimeField> MulAssign<TargetField> for NonNativeFieldVar<TargetField, BaseField>
[src]
fn mul_assign(&mut self, other: TargetField)
[src]
impl<TargetField: PrimeField, BaseField: PrimeField> PartialEq<NonNativeFieldVar<TargetField, BaseField>> for NonNativeFieldVar<TargetField, BaseField>
[src]
impl<TargetField: PrimeField, BaseField: PrimeField> R1CSVar<BaseField> for NonNativeFieldVar<TargetField, BaseField>
[src]
type Value = TargetField
The type of the “native” value that Self
represents in the constraint
system. Read more
fn cs(&self) -> ConstraintSystemRef<BaseField>
[src]
fn value(&self) -> R1CSResult<Self::Value>
[src]
pub fn is_constant(&self) -> bool
[src]
impl<'a, TargetField: PrimeField, BaseField: PrimeField> Sub<&'a NonNativeFieldVar<TargetField, BaseField>> for &'a NonNativeFieldVar<TargetField, BaseField>
[src]
type Output = NonNativeFieldVar<TargetField, BaseField>
The resulting type after applying the -
operator.
fn sub(self, other: Self) -> Self::Output
[src]
impl<'a, TargetField: PrimeField, BaseField: PrimeField> Sub<&'a NonNativeFieldVar<TargetField, BaseField>> for NonNativeFieldVar<TargetField, BaseField>
[src]
type Output = NonNativeFieldVar<TargetField, BaseField>
The resulting type after applying the -
operator.
fn sub(
self,
other: &'a NonNativeFieldVar<TargetField, BaseField>
) -> Self::Output
[src]
self,
other: &'a NonNativeFieldVar<TargetField, BaseField>
) -> Self::Output
impl<'a, TargetField: PrimeField, BaseField: PrimeField> Sub<NonNativeFieldVar<TargetField, BaseField>> for &'a NonNativeFieldVar<TargetField, BaseField>
[src]
type Output = NonNativeFieldVar<TargetField, BaseField>
The resulting type after applying the -
operator.
fn sub(self, other: NonNativeFieldVar<TargetField, BaseField>) -> Self::Output
[src]
impl<TargetField: PrimeField, BaseField: PrimeField> Sub<NonNativeFieldVar<TargetField, BaseField>> for NonNativeFieldVar<TargetField, BaseField>
[src]
type Output = NonNativeFieldVar<TargetField, BaseField>
The resulting type after applying the -
operator.
fn sub(self, other: NonNativeFieldVar<TargetField, BaseField>) -> Self::Output
[src]
impl<'a, TargetField: PrimeField, BaseField: PrimeField> Sub<TargetField> for &'a NonNativeFieldVar<TargetField, BaseField>
[src]
type Output = NonNativeFieldVar<TargetField, BaseField>
The resulting type after applying the -
operator.
fn sub(self, other: TargetField) -> Self::Output
[src]
impl<TargetField: PrimeField, BaseField: PrimeField> Sub<TargetField> for NonNativeFieldVar<TargetField, BaseField>
[src]
type Output = NonNativeFieldVar<TargetField, BaseField>
The resulting type after applying the -
operator.
fn sub(self, other: TargetField) -> Self::Output
[src]
impl<'a, TargetField: PrimeField, BaseField: PrimeField> SubAssign<&'a NonNativeFieldVar<TargetField, BaseField>> for NonNativeFieldVar<TargetField, BaseField>
[src]
fn sub_assign(&mut self, other: &'a NonNativeFieldVar<TargetField, BaseField>)
[src]
impl<TargetField: PrimeField, BaseField: PrimeField> SubAssign<NonNativeFieldVar<TargetField, BaseField>> for NonNativeFieldVar<TargetField, BaseField>
[src]
fn sub_assign(&mut self, other: NonNativeFieldVar<TargetField, BaseField>)
[src]
impl<TargetField: PrimeField, BaseField: PrimeField> SubAssign<TargetField> for NonNativeFieldVar<TargetField, BaseField>
[src]
fn sub_assign(&mut self, other: TargetField)
[src]
impl<TargetField: PrimeField, BaseField: PrimeField> ThreeBitCondNegLookupGadget<BaseField> for NonNativeFieldVar<TargetField, BaseField>
[src]
type TableConstant = TargetField
The type of values being looked up.
fn three_bit_cond_neg_lookup(
b: &[Boolean<BaseField>],
b0b1: &Boolean<BaseField>,
c: &[Self::TableConstant]
) -> R1CSResult<Self>
[src]
b: &[Boolean<BaseField>],
b0b1: &Boolean<BaseField>,
c: &[Self::TableConstant]
) -> R1CSResult<Self>
impl<TargetField: PrimeField, BaseField: PrimeField> ToBitsGadget<BaseField> for NonNativeFieldVar<TargetField, BaseField>
[src]
fn to_bits_le(&self) -> R1CSResult<Vec<Boolean<BaseField>>>
[src]
fn to_non_unique_bits_le(&self) -> R1CSResult<Vec<Boolean<BaseField>>>
[src]
pub fn to_bits_be(&self) -> Result<Vec<Boolean<F>, Global>, SynthesisError>
[src]
pub fn to_non_unique_bits_be(
&self
) -> Result<Vec<Boolean<F>, Global>, SynthesisError>
[src]
&self
) -> Result<Vec<Boolean<F>, Global>, SynthesisError>
impl<TargetField: PrimeField, BaseField: PrimeField> ToBytesGadget<BaseField> for NonNativeFieldVar<TargetField, BaseField>
[src]
fn to_bytes(&self) -> R1CSResult<Vec<UInt8<BaseField>>>
[src]
Outputs the unique byte decomposition of self
in little-endian
form.
fn to_non_unique_bytes(&self) -> R1CSResult<Vec<UInt8<BaseField>>>
[src]
impl<TargetField: PrimeField, BaseField: PrimeField> ToConstraintFieldGadget<BaseField> for NonNativeFieldVar<TargetField, BaseField>
[src]
fn to_constraint_field(&self) -> R1CSResult<Vec<FpVar<BaseField>>>
[src]
impl<TargetField: PrimeField, BaseField: PrimeField> TwoBitLookupGadget<BaseField> for NonNativeFieldVar<TargetField, BaseField>
[src]
Uses two bits to perform a lookup into a table
b
is little-endian: b[0]
is LSB.
type TableConstant = TargetField
The type of values being looked up.
fn two_bit_lookup(
b: &[Boolean<BaseField>],
c: &[Self::TableConstant]
) -> R1CSResult<Self>
[src]
b: &[Boolean<BaseField>],
c: &[Self::TableConstant]
) -> R1CSResult<Self>
Auto Trait Implementations
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,
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> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
pub fn to_owned(&self) -> T
[src]
pub fn clone_into(&self, target: &mut T)
[src]
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>,