From 350b9029989a433480152efb00fa3300235fa578 Mon Sep 17 00:00:00 2001 From: Sladuca Date: Wed, 28 Dec 2022 11:30:24 -0500 Subject: [PATCH 1/2] add or gadget --- plonky2/src/gadgets/arithmetic.rs | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/plonky2/src/gadgets/arithmetic.rs b/plonky2/src/gadgets/arithmetic.rs index 39755bd4..e7b124b9 100644 --- a/plonky2/src/gadgets/arithmetic.rs +++ b/plonky2/src/gadgets/arithmetic.rs @@ -337,6 +337,12 @@ impl, const D: usize> CircuitBuilder { BoolTarget::new_unsafe(self.mul(b1.target, b2.target)) } + // computes the arithmetic extension of logical "or": `b1 + b2 - b1 * b2` + pub fn or(&mut self, b1: BoolTarget, b2: BoolTarget) -> BoolTarget { + let res_minus_b2 = self.arithmetic(-F::ONE, F::ONE, b1.target, b2.target, b1.target); + BoolTarget::new_unsafe(self.add(res_minus_b2, b2.target)) + } + pub fn _if(&mut self, b: BoolTarget, x: Target, y: Target) -> Target { let not_b = self.not(b); let maybe_x = self.mul(b.target, x); From 403e239250e36eb86dae04f84dccb20fd8f6e5f8 Mon Sep 17 00:00:00 2001 From: Sladuca Date: Wed, 28 Dec 2022 12:20:08 -0500 Subject: [PATCH 2/2] use doc comment --- plonky2/src/gadgets/arithmetic.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plonky2/src/gadgets/arithmetic.rs b/plonky2/src/gadgets/arithmetic.rs index e7b124b9..6bff79d1 100644 --- a/plonky2/src/gadgets/arithmetic.rs +++ b/plonky2/src/gadgets/arithmetic.rs @@ -337,7 +337,7 @@ impl, const D: usize> CircuitBuilder { BoolTarget::new_unsafe(self.mul(b1.target, b2.target)) } - // computes the arithmetic extension of logical "or": `b1 + b2 - b1 * b2` + /// computes the arithmetic extension of logical "or": `b1 + b2 - b1 * b2` pub fn or(&mut self, b1: BoolTarget, b2: BoolTarget) -> BoolTarget { let res_minus_b2 = self.arithmetic(-F::ONE, F::ONE, b1.target, b2.target, b1.target); BoolTarget::new_unsafe(self.add(res_minus_b2, b2.target))