Struct ark_r1cs_std::fields::fp::AllocatedFp [−][src]
pub struct AllocatedFp<F: PrimeField> { pub variable: Variable, pub cs: ConstraintSystemRef<F>, // some fields omitted }
Expand description
Represents a variable in the constraint system whose value can be an arbitrary field element.
Fields
variable: VariableThe allocated variable corresponding to self in self.cs.
cs: ConstraintSystemRef<F>The constraint system that self was allocated in.
Implementations
Constructs a new AllocatedFp from a (optional) value, a low-level
Variable, and a ConstraintSystemRef.
Constructs Self from a Boolean: if other is false, this outputs
zero, else it outputs one.
Returns the value assigned to self in the underlying constraint system
(if a value was assigned).
Outputs self + other.
This does not create any constraints.
Add many allocated Fp elements together.
This does not create any constraints and only creates one linear combination.
Outputs self - other.
This does not create any constraints.
Output self + other
This does not create any constraints.
Output self - other
This does not create any constraints.
Output self * other
This does not create any constraints.
Output self + self
This does not create any constraints.
Sets self = -self
This does not create any constraints.
Outputs self * self
This requires one constraint.
Outputs result such that result * self = 1.
This requires one constraint.
This is a no-op for prime fields.
Enforces that self * other = result.
This requires one constraint.
Enforces that self * self = result.
This requires one constraint.
Outputs the bit self == other.
This requires three constraints.
Outputs the bit self != other.
This requires three constraints.
pub fn conditional_enforce_equal(
&self,
other: &Self,
should_enforce: &Boolean<F>
) -> Result<(), SynthesisError>
pub fn conditional_enforce_equal(
&self,
other: &Self,
should_enforce: &Boolean<F>
) -> Result<(), SynthesisError>Enforces that self == other if should_enforce.is_eq(&Boolean::TRUE).
This requires one constraint.
pub fn conditional_enforce_not_equal(
&self,
other: &Self,
should_enforce: &Boolean<F>
) -> Result<(), SynthesisError>
pub fn conditional_enforce_not_equal(
&self,
other: &Self,
should_enforce: &Boolean<F>
) -> Result<(), SynthesisError>Enforces that self != other if should_enforce.is_eq(&Boolean::TRUE).
This requires one constraint.
Trait Implementations
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_val: &Self,
false_val: &Self
) -> Result<Self, SynthesisError>
fn conditionally_select(
cond: &Boolean<F>,
true_val: &Self,
false_val: &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
Performs the conversion.
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 unique bit-wise decomposition of self in little-endian
form.
This method enforces that the output is in the field, i.e.
it invokes Boolean::enforce_in_field_le on the bit decomposition.
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.
This method enforces that the decomposition represents
an integer that is less than F::MODULUS.
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 AllocatedFp<F>impl<F> !Send for AllocatedFp<F>impl<F> !Sync for AllocatedFp<F>impl<F> Unpin for AllocatedFp<F> where
F: Unpin, impl<F> !UnwindSafe for AllocatedFp<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