From cad7dc6904b05d53e9e9ce72aea47fb411d8b3aa Mon Sep 17 00:00:00 2001 From: Nicholas Ward Date: Wed, 30 Jun 2021 21:31:17 -0700 Subject: [PATCH] some progress --- src/gadgets/insert.rs | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/src/gadgets/insert.rs b/src/gadgets/insert.rs index b7f7e331..4b6a15b1 100644 --- a/src/gadgets/insert.rs +++ b/src/gadgets/insert.rs @@ -2,11 +2,26 @@ use crate::circuit_builder::CircuitBuilder; use crate::field::extension_field::target::ExtensionTarget; use crate::field::extension_field::Extendable; use crate::target::Target; +use crate::generator::EqualityGenerator; impl, const D: usize> CircuitBuilder { + /// Evaluates to 1 if `x` equals zero, 0 otherwise. + pub fn is_zero(&mut self, x: Target) -> Target { + let m = todo!(); + let y = todo!(); + + self.add_generator(EqualityGenerator { + x, + m, + y, + }); + + y + } + /// Evaluates to 1 if `x` and `y` are equal, 0 otherwise. - pub fn is_equal(&mut self, _x: Target, _y: Target) -> Target { - todo!() + pub fn is_equal(&mut self, x: Target, y: Target) -> Target { + self.is_zero(self.sub(x, y)) } /// Inserts a `Target` in a vector at a non-deterministic index. This is done by rotating to the