pub struct CompleteAdd<F>(/* private fields */);
Expand description
Implementation of the CompleteAdd
gate
It uses the constraints
(x2 - x1) * s = y2 - y1 s^2 = x1 + x2 + x3 y3 = s (x1 - x3) - y1
for addition and
2 * s * y1 = 3 * x1^2 s^2 = 2 x1 + x3 y3 = s (x1 - x3) - y1
for doubling.
See here for the formulas used.
Trait Implementations§
Source§impl<F> Argument<F> for CompleteAdd<F>where
F: PrimeField,
impl<F> Argument<F> for CompleteAdd<F>where
F: PrimeField,
Source§const ARGUMENT_TYPE: ArgumentType
const ARGUMENT_TYPE: ArgumentType
The type of constraints that this will produce.
This is important to enforce that we don’t combine the constraints
with powers of alpha that collide with other mutually inclusive arguments.
Source§const CONSTRAINTS: u32 = 7u32
const CONSTRAINTS: u32 = 7u32
The number of constraints created by the argument.
Source§fn constraint_checks<T: ExprOps<F, BerkeleyChallengeTerm>>(
env: &ArgumentEnv<F, T>,
cache: &mut Cache,
) -> Vec<T>
fn constraint_checks<T: ExprOps<F, BerkeleyChallengeTerm>>( env: &ArgumentEnv<F, T>, cache: &mut Cache, ) -> Vec<T>
Constraints for this argument
Source§impl<F: Default> Default for CompleteAdd<F>
impl<F: Default> Default for CompleteAdd<F>
Source§fn default() -> CompleteAdd<F>
fn default() -> CompleteAdd<F>
Returns the “default value” for a type. Read more
Auto Trait Implementations§
impl<F> Freeze for CompleteAdd<F>
impl<F> RefUnwindSafe for CompleteAdd<F>where
F: RefUnwindSafe,
impl<F> Send for CompleteAdd<F>where
F: Send,
impl<F> Sync for CompleteAdd<F>where
F: Sync,
impl<F> Unpin for CompleteAdd<F>where
F: Unpin,
impl<F> UnwindSafe for CompleteAdd<F>where
F: UnwindSafe,
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
Mutably borrows from an owned value. Read more