Fix padding for LookupTableGate (#1661)

This commit is contained in:
Linda Guiga 2025-01-30 21:02:20 +01:00 committed by GitHub
parent 6eb63f0200
commit 753389a2ca
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 4 additions and 5 deletions

View File

@ -94,7 +94,6 @@ pub fn set_lookup_wires<
multiplicities[0] += 1;
}
// We don't need to pad the last `LookupTableGate`; extra wires are set to 0 by default, which satisfies the constraints.
for lut_entry in 0..lut_len {
let row = first_lut_gate - lut_entry / num_lut_entries;
let col = lut_entry % num_lut_entries;

View File

@ -36,8 +36,8 @@ pub(crate) fn get_lut_poly<F: RichField + Extendable<D>, const D: usize>(
let b = deltas[LookupChallenges::ChallengeB as usize];
let mut coeffs = Vec::with_capacity(common_data.luts[lut_index].len());
let n = common_data.luts[lut_index].len();
let nb_padded_elts = LookupTableGate::num_slots(&common_data.config)
- n % LookupTableGate::num_slots(&common_data.config);
let nb_slots = LookupTableGate::num_slots(&common_data.config);
let nb_padded_elts = (nb_slots - n % nb_slots) % nb_slots;
let (padding_inp, padding_out) = common_data.luts[lut_index][0];
for (input, output) in common_data.luts[lut_index].iter() {
coeffs.push(F::from_canonical_u16(*input) + b * F::from_canonical_u16(*output));
@ -763,8 +763,8 @@ pub(crate) fn get_lut_poly_circuit<F: RichField + Extendable<D>, const D: usize>
let b = deltas[LookupChallenges::ChallengeB as usize];
let delta = deltas[LookupChallenges::ChallengeDelta as usize];
let n = common_data.luts[lut_index].len();
let nb_padded_elts = LookupTableGate::num_slots(&common_data.config)
- n % LookupTableGate::num_slots(&common_data.config);
let nb_slots = LookupTableGate::num_slots(&common_data.config);
let nb_padded_elts = (nb_slots - n % nb_slots) % nb_slots;
let (padding_inp, padding_out) = common_data.luts[lut_index][0];
let mut coeffs: Vec<Target> = common_data.luts[lut_index]
.iter()