@@ -3,6 +3,7 @@ use rayon::prelude::*;
33use std:: cmp:: { max, min} ;
44use std:: collections:: HashMap ;
55
6+ use crate :: custom_dense_mlpoly:: rev_bits;
67use crate :: scalar:: SpartanExtensionField ;
78use crate :: transcript:: AppendToTranscript ;
89
@@ -250,8 +251,13 @@ impl<S: SpartanExtensionField + Send + Sync> R1CSInstance<S> {
250251
251252 Az [ p] = ( 0 ..num_proofs[ p] )
252253 . into_par_iter ( )
253- . map ( |q| {
254+ . map ( |q_rev| {
255+ // Reverse the bits of q
256+ let q_step = max_num_proofs / num_proofs[ p] ;
257+ let q = rev_bits ( q_rev * q_step, max_num_proofs) ;
258+
254259 vec ! [ self . A_list [ p_inst] . multiply_vec_disjoint_rounds(
260+ max_num_cons,
255261 num_cons[ p_inst] . clone( ) ,
256262 max_num_inputs,
257263 num_inputs[ p] ,
@@ -261,8 +267,13 @@ impl<S: SpartanExtensionField + Send + Sync> R1CSInstance<S> {
261267 . collect ( ) ;
262268 Bz [ p] = ( 0 ..num_proofs[ p] )
263269 . into_par_iter ( )
264- . map ( |q| {
270+ . map ( |q_rev| {
271+ // Reverse the bits of q
272+ let q_step = max_num_proofs / num_proofs[ p] ;
273+ let q = rev_bits ( q_rev * q_step, max_num_proofs) ;
274+
265275 vec ! [ self . B_list [ p_inst] . multiply_vec_disjoint_rounds(
276+ max_num_cons,
266277 num_cons[ p_inst] . clone( ) ,
267278 max_num_inputs,
268279 num_inputs[ p] ,
@@ -272,8 +283,13 @@ impl<S: SpartanExtensionField + Send + Sync> R1CSInstance<S> {
272283 . collect ( ) ;
273284 Cz [ p] = ( 0 ..num_proofs[ p] )
274285 . into_par_iter ( )
275- . map ( |q| {
286+ . map ( |q_rev| {
287+ // Reverse the bits of q
288+ let q_step = max_num_proofs / num_proofs[ p] ;
289+ let q = rev_bits ( q_rev * q_step, max_num_proofs) ;
290+
276291 vec ! [ self . C_list [ p_inst] . multiply_vec_disjoint_rounds(
292+ max_num_cons,
277293 num_cons[ p_inst] . clone( ) ,
278294 max_num_inputs,
279295 num_inputs[ p] ,
@@ -284,22 +300,22 @@ impl<S: SpartanExtensionField + Send + Sync> R1CSInstance<S> {
284300 }
285301
286302 (
287- DensePolynomialPqx :: new_rev (
288- & Az ,
303+ DensePolynomialPqx :: new (
304+ Az ,
289305 num_proofs. clone ( ) ,
290306 max_num_proofs,
291307 num_cons. clone ( ) ,
292308 max_num_cons,
293309 ) ,
294- DensePolynomialPqx :: new_rev (
295- & Bz ,
310+ DensePolynomialPqx :: new (
311+ Bz ,
296312 num_proofs. clone ( ) ,
297313 max_num_proofs,
298314 num_cons. clone ( ) ,
299315 max_num_cons,
300316 ) ,
301- DensePolynomialPqx :: new_rev (
302- & Cz ,
317+ DensePolynomialPqx :: new (
318+ Cz ,
303319 num_proofs,
304320 max_num_proofs,
305321 num_cons. clone ( ) ,
0 commit comments