Enum ark_r1cs_std::fields::fp::FpVar [−][src]
pub enum FpVar<F: PrimeField> { Constant(F), Var(AllocatedFp<F>), }
Expand description
Represent variables corresponding to a field element in F.
Variants
Represents a constant in the constraint system, which means that it does not have a corresponding variable.
Var(AllocatedFp<F>)Represents an allocated variable constant in the constraint system.
Implementations
pub fn enforce_cmp(
&self,
other: &FpVar<F>,
ordering: Ordering,
should_also_check_equality: bool
) -> Result<(), SynthesisError>
pub fn enforce_cmp(
&self,
other: &FpVar<F>,
ordering: Ordering,
should_also_check_equality: bool
) -> Result<(), SynthesisError>This function enforces the ordering between self and other. The
constraint system will not be satisfied otherwise. If self should
also be checked for equality, e.g. self <= other instead of self < other, set should_also_check_quality to true. This variant
verifies self and other are <= (p-1)/2.
pub fn enforce_cmp_unchecked(
&self,
other: &FpVar<F>,
ordering: Ordering,
should_also_check_equality: bool
) -> Result<(), SynthesisError>
pub fn enforce_cmp_unchecked(
&self,
other: &FpVar<F>,
ordering: Ordering,
should_also_check_equality: bool
) -> Result<(), SynthesisError>This function enforces the ordering between self and other. The
constraint system will not be satisfied otherwise. If self should
also be checked for equality, e.g. self <= other instead of self < other, set should_also_check_quality to true. This variant
assumes self and other are <= (p-1)/2 and does not generate
constraints to verify that.
This function checks the ordering between self and other. It outputs
self Boolean that contains the result - 1 if true, 0
otherwise. The constraint system will be satisfied in any case. If
self should also be checked for equality, e.g. self <= other
instead of self < other, set should_also_check_quality to
true. This variant verifies self and other are <= (p-1)/2.
pub fn is_cmp_unchecked(
&self,
other: &FpVar<F>,
ordering: Ordering,
should_also_check_equality: bool
) -> Result<Boolean<F>, SynthesisError>
pub fn is_cmp_unchecked(
&self,
other: &FpVar<F>,
ordering: Ordering,
should_also_check_equality: bool
) -> Result<Boolean<F>, SynthesisError>This function checks the ordering between self and other. It outputs
a Boolean that contains the result - 1 if true, 0 otherwise.
The constraint system will be satisfied in any case. If self
should also be checked for equality, e.g. self <= other instead of
self < other, set should_also_check_quality to true. This
variant assumes self and other are <= (p-1)/2 and does not
generate constraints to verify that.
pub fn enforce_smaller_or_equal_than_mod_minus_one_div_two(
&self
) -> Result<(), SynthesisError>
pub fn enforce_smaller_or_equal_than_mod_minus_one_div_two(
&self
) -> Result<(), SynthesisError>Helper function to enforce that self <= (p-1)/2.
Trait Implementations
Performs the += operation. Read more
Performs the += operation. Read more
Performs the += operation. Read more
fn new_variable<T: Borrow<F>>(
cs: impl Into<Namespace<F>>,
f: impl FnOnce() -> Result<T, SynthesisError>,
mode: AllocationMode
) -> Result<Self, SynthesisError>
fn new_variable<T: Borrow<F>>(
cs: impl Into<Namespace<F>>,
f: impl FnOnce() -> Result<T, SynthesisError>,
mode: AllocationMode
) -> Result<Self, SynthesisError>Allocates a new variable of type Self in the ConstraintSystem cs.
The mode of allocation is decided by mode. Read more
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>Allocates a new constant of type Self in the ConstraintSystem cs. Read more
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. Read more
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. Read more
fn conditionally_select(
cond: &Boolean<F>,
true_value: &Self,
false_value: &Self
) -> Result<Self, SynthesisError>
fn conditionally_select(
cond: &Boolean<F>,
true_value: &Self,
false_value: &Self
) -> Result<Self, SynthesisError>If cond == &Boolean::TRUE, then this returns true_value; else,
returns false_value. Read more
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 more
impl<P: Fp3Parameters> CubicExtVarParams<FpVar<<P as Fp3Parameters>::Fp>> for Fp3ParamsWrapper<P>
impl<P: Fp3Parameters> CubicExtVarParams<FpVar<<P as Fp3Parameters>::Fp>> for Fp3ParamsWrapper<P>Output a Boolean value representing whether self.value() == other.value(). Read more
fn conditional_enforce_equal(
&self,
other: &Self,
should_enforce: &Boolean<F>
) -> Result<(), SynthesisError>
fn conditional_enforce_equal(
&self,
other: &Self,
should_enforce: &Boolean<F>
) -> Result<(), SynthesisError>If should_enforce == true, enforce that self and other are equal;
else, enforce a vacuously true statement. Read more
fn conditional_enforce_not_equal(
&self,
other: &Self,
should_enforce: &Boolean<F>
) -> Result<(), SynthesisError>
fn conditional_enforce_not_equal(
&self,
other: &Self,
should_enforce: &Boolean<F>
) -> Result<(), SynthesisError>If should_enforce == true, enforce that self and other are not
equal; else, enforce a vacuously true statement. Read more
Output a Boolean value representing whether self.value() != other.value(). Read more
Enforce that self and other are equal. Read more
Enforce that self and other are not equal. Read more
Enforce that self * other == result.
Enforce that self * self == result.
Computes self + self.
Coputes -self.
Computes self * self. Read more
Computes result such that self * result == Self::one().
Computes the frobenius map over self.
Sets self = self.frobenius_map().
Returns a Boolean representing whether self == Self::zero().
Returns a Boolean representing whether self == Self::one().
Sets self = self + self.
Sets self = -self.
Sets self = self.square().
Returns (self / d).
The constraint system will be unsatisfiable when d = 0. Read more
Comptues self^bits, where bits is a little-endian bit-wise
decomposition of the exponent. Read more
Computes self^S, where S is interpreted as an little-endian
u64-decomposition of an integer. Read more
Performs the conversion.
Performs the *= operation. Read more
Performs the *= operation. Read more
Performs the *= operation. Read more
impl<P: Fp2Parameters> QuadExtVarParams<FpVar<<P as Fp2Parameters>::Fp>> for Fp2ParamsWrapper<P>
impl<P: Fp2Parameters> QuadExtVarParams<FpVar<<P as Fp2Parameters>::Fp>> for Fp2ParamsWrapper<P>type Value = F
type Value = FThe type of the “native” value that Self represents in the constraint
system. Read more
Returns the underlying ConstraintSystemRef. Read more
Returns the value that is assigned to self in the underlying
ConstraintSystem. Read more
Returns true if self is a circuit-generation-time constant.
Performs the -= operation. Read more
Performs the -= operation. Read more
Performs the -= operation. Read more
type TableConstant = F
type TableConstant = FThe type of values being looked up.
fn three_bit_cond_neg_lookup(
b: &[Boolean<F>],
b0b1: &Boolean<F>,
c: &[Self::TableConstant]
) -> Result<Self, SynthesisError>
fn three_bit_cond_neg_lookup(
b: &[Boolean<F>],
b0b1: &Boolean<F>,
c: &[Self::TableConstant]
) -> Result<Self, SynthesisError>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 more
Outputs the canonical little-endian bit-wise representation of self. Read more
Outputs a possibly non-unique little-endian bit-wise representation of
self. Read more
Outputs the canonical big-endian bit-wise representation of self.
Outputs a possibly non-unique big-endian bit-wise representation of
self. Read more
Outputs the unique byte decomposition of self in little-endian
form.
Outputs a possibly non-unique byte decomposition of self. Read more
Converts self to FpVar<ConstraintF> variables.
Uses two bits to perform a lookup into a table
b is little-endian: b[0] is LSB.
type TableConstant = F
type TableConstant = FThe type of values being looked up.
fn two_bit_lookup(
b: &[Boolean<F>],
c: &[Self::TableConstant]
) -> Result<Self, SynthesisError>
fn two_bit_lookup(
b: &[Boolean<F>],
c: &[Self::TableConstant]
) -> Result<Self, SynthesisError>Interprets the slice bits as a two-bit integer b = bits[0] + (bits[1] << 1), and then outputs constants[b]. Read more
Auto Trait Implementations
impl<F> !RefUnwindSafe for FpVar<F>impl<F> !UnwindSafe for FpVar<F>Blanket Implementations
Mutably borrows from an owned value. Read more
Instruments this type with the provided Span, returning an
Instrumented wrapper. Read more
type Output = T
type Output = TShould always be Self
pub fn vzip(self) -> V