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 = F
The 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 = F
The 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 = F
The 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 = T
Should always be Self
pub fn vzip(self) -> V