From ce0a4f448014c0b6e5c5a6c64538f700514dd6b5 Mon Sep 17 00:00:00 2001 From: wborgeaud Date: Wed, 5 Oct 2022 16:42:55 +0200 Subject: [PATCH] Use `ArithmeticGate` for `select` --- plonky2/src/gadgets/select.rs | 5 ++--- plonky2/src/plonk/conditional_recursive_verifier.rs | 4 ++-- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/plonky2/src/gadgets/select.rs b/plonky2/src/gadgets/select.rs index db9be843..d234a003 100644 --- a/plonky2/src/gadgets/select.rs +++ b/plonky2/src/gadgets/select.rs @@ -32,9 +32,8 @@ impl, const D: usize> CircuitBuilder { /// See `select_ext`. pub fn select(&mut self, b: BoolTarget, x: Target, y: Target) -> Target { - let x_ext = self.convert_to_ext(x); - let y_ext = self.convert_to_ext(y); - self.select_ext(b, x_ext, y_ext).to_target_array()[0] + let tmp = self.mul_sub(b.target, y, y); + self.mul_sub(b.target, x, tmp) } } diff --git a/plonky2/src/plonk/conditional_recursive_verifier.rs b/plonky2/src/plonk/conditional_recursive_verifier.rs index 4fe79b4c..1a006e07 100644 --- a/plonky2/src/plonk/conditional_recursive_verifier.rs +++ b/plonky2/src/plonk/conditional_recursive_verifier.rs @@ -24,7 +24,7 @@ impl, const D: usize> CircuitBuilder { proof_with_pis0: ProofWithPublicInputsTarget, inner_verifier_data0: &VerifierCircuitTarget, proof_with_pis1: ProofWithPublicInputsTarget, - verifier_data1: &VerifierCircuitTarget, + inner_verifier_data1: &VerifierCircuitTarget, inner_common_data: &CommonCircuitData, ) where C::Hasher: AlgebraicHasher, @@ -82,7 +82,7 @@ impl, const D: usize> CircuitBuilder { constants_sigmas_cap: self.select_cap( condition, inner_verifier_data0.constants_sigmas_cap.clone(), - verifier_data1.constants_sigmas_cap.clone(), + inner_verifier_data1.constants_sigmas_cap.clone(), ), };