pub struct Circuit;
Trait Implementations§
Source§impl ConstraintSynthesizer<Fp256<FrParameters>> for Circuit
impl ConstraintSynthesizer<Fp256<FrParameters>> for Circuit
Source§fn generate_constraints<CS: ConstraintSystem<Fq>>(
&self,
cs: &mut CS,
) -> Result<(), SynthesisError>
fn generate_constraints<CS: ConstraintSystem<Fq>>( &self, cs: &mut CS, ) -> Result<(), SynthesisError>
Synthesizes the constraints from the environment into a snarkvm_algorithms::r1cs
-compliant constraint system.
Source§impl Environment for Circuit
impl Environment for Circuit
Source§fn zero() -> LinearCombination<Self::BaseField>
fn zero() -> LinearCombination<Self::BaseField>
Returns the zero
constant.
Source§fn one() -> LinearCombination<Self::BaseField>
fn one() -> LinearCombination<Self::BaseField>
Returns the one
constant.
Source§fn new_variable(mode: Mode, value: Self::BaseField) -> Variable<Self::BaseField>
fn new_variable(mode: Mode, value: Self::BaseField) -> Variable<Self::BaseField>
Returns a new variable of the given mode and value.
Source§fn new_witness<Fn: FnOnce() -> Output::Primitive, Output: Inject>(
mode: Mode,
logic: Fn,
) -> Output
fn new_witness<Fn: FnOnce() -> Output::Primitive, Output: Inject>( mode: Mode, logic: Fn, ) -> Output
Returns a new witness of the given mode and value.
Source§fn scope<S: Into<String>, Fn, Output>(name: S, logic: Fn) -> Outputwhere
Fn: FnOnce() -> Output,
fn scope<S: Into<String>, Fn, Output>(name: S, logic: Fn) -> Outputwhere
Fn: FnOnce() -> Output,
Enters a new scope for the environment.
Source§fn enforce<Fn, A, B, C>(constraint: Fn)where
Fn: FnOnce() -> (A, B, C),
A: Into<LinearCombination<Self::BaseField>>,
B: Into<LinearCombination<Self::BaseField>>,
C: Into<LinearCombination<Self::BaseField>>,
fn enforce<Fn, A, B, C>(constraint: Fn)where
Fn: FnOnce() -> (A, B, C),
A: Into<LinearCombination<Self::BaseField>>,
B: Into<LinearCombination<Self::BaseField>>,
C: Into<LinearCombination<Self::BaseField>>,
Adds one constraint enforcing that (A * B) == C
.
Source§fn is_satisfied() -> bool
fn is_satisfied() -> bool
Returns true
if all constraints in the environment are satisfied.
Source§fn is_satisfied_in_scope() -> bool
fn is_satisfied_in_scope() -> bool
Returns true
if all constraints in the current scope are satisfied.
Source§fn num_constants() -> u64
fn num_constants() -> u64
Returns the number of constants in the entire circuit.
Source§fn num_public() -> u64
fn num_public() -> u64
Returns the number of public variables in the entire circuit.
Source§fn num_private() -> u64
fn num_private() -> u64
Returns the number of private variables in the entire circuit.
Source§fn num_variables() -> u64
fn num_variables() -> u64
Returns the number of constant, public, and private variables in the entire circuit.
Source§fn num_constraints() -> u64
fn num_constraints() -> u64
Returns the number of constraints in the entire circuit.
Source§fn num_constants_in_scope() -> u64
fn num_constants_in_scope() -> u64
Returns the number of constants for the current scope.
Source§fn num_public_in_scope() -> u64
fn num_public_in_scope() -> u64
Returns the number of public variables for the current scope.
Source§fn num_private_in_scope() -> u64
fn num_private_in_scope() -> u64
Returns the number of private variables for the current scope.
Source§fn num_constraints_in_scope() -> u64
fn num_constraints_in_scope() -> u64
Returns the number of constraints for the current scope.
Source§fn num_nonzeros_in_scope() -> (u64, u64, u64)
fn num_nonzeros_in_scope() -> (u64, u64, u64)
Returns the number of nonzeros for the current scope.
Source§fn get_variable_limit() -> Option<u64>
fn get_variable_limit() -> Option<u64>
Returns the variable limit for the circuit, if one exists.
Source§fn set_variable_limit(limit: Option<u64>)
fn set_variable_limit(limit: Option<u64>)
Sets the variable limit for the circuit.
Source§fn get_constraint_limit() -> Option<u64>
fn get_constraint_limit() -> Option<u64>
Returns the constraint limit for the circuit, if one exists.
Source§fn set_constraint_limit(limit: Option<u64>)
fn set_constraint_limit(limit: Option<u64>)
Sets the constraint limit for the circuit.
Source§fn halt<S: Into<String>, T>(message: S) -> T
fn halt<S: Into<String>, T>(message: S) -> T
Halts the program from further synthesis, evaluation, and execution in the current environment.
Source§fn inject_r1cs(r1cs: R1CS<Self::BaseField>)
fn inject_r1cs(r1cs: R1CS<Self::BaseField>)
Returns the R1CS circuit, resetting the circuit.
Source§fn eject_r1cs_and_reset() -> R1CS<Self::BaseField>
fn eject_r1cs_and_reset() -> R1CS<Self::BaseField>
Returns the R1CS circuit, resetting the circuit.
Source§fn eject_assignment_and_reset() -> Assignment<<Self::Network as Environment>::Field>
fn eject_assignment_and_reset() -> Assignment<<Self::Network as Environment>::Field>
Returns the R1CS assignment of the circuit, resetting the circuit.
type Affine = <MainnetV0 as Environment>::Affine
type BaseField = <MainnetV0 as Environment>::Field
type Network = MainnetV0
type ScalarField = <MainnetV0 as Environment>::Scalar
Source§const EDWARDS_A: Self::BaseField = <Self::Network as console::Environment>::EDWARDS_A
const EDWARDS_A: Self::BaseField = <Self::Network as console::Environment>::EDWARDS_A
A
of the twisted Edwards curve.Source§const EDWARDS_D: Self::BaseField = <Self::Network as console::Environment>::EDWARDS_D
const EDWARDS_D: Self::BaseField = <Self::Network as console::Environment>::EDWARDS_D
D
of the twisted Edwards curve.Source§const MONTGOMERY_A: Self::BaseField = <Self::Network as console::Environment>::MONTGOMERY_A
const MONTGOMERY_A: Self::BaseField = <Self::Network as console::Environment>::MONTGOMERY_A
A
of the Montgomery curve.Source§const MONTGOMERY_B: Self::BaseField = <Self::Network as console::Environment>::MONTGOMERY_B
const MONTGOMERY_B: Self::BaseField = <Self::Network as console::Environment>::MONTGOMERY_B
B
of the Montgomery curve.Source§const MAX_STRING_BYTES: u32 = <Self::Network as console::Environment>::MAX_STRING_BYTES
const MAX_STRING_BYTES: u32 = <Self::Network as console::Environment>::MAX_STRING_BYTES
Source§fn assert<Boolean: Into<LinearCombination<Self::BaseField>>>(boolean: Boolean)
fn assert<Boolean: Into<LinearCombination<Self::BaseField>>>(boolean: Boolean)
true
.Source§fn assert_neq<A, B>(a: A, b: B)
fn assert_neq<A, B>(a: A, b: B)
A != B
.impl Copy for Circuit
impl Eq for Circuit
impl StructuralPartialEq for Circuit
Auto Trait Implementations§
impl Freeze for Circuit
impl RefUnwindSafe for Circuit
impl Send for Circuit
impl Sync for Circuit
impl Unpin for Circuit
impl UnwindSafe for Circuit
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key
and return true
if they are equal.Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more