@@ -311,8 +311,6 @@ pub struct PackedCodeword<C: Config> {
311311#[ derive( DslVariable , Clone ) ]
312312pub struct RoundContextVariable < C : Config > {
313313 pub ( crate ) opened_values_buffer : Array < C , Array < C , Felt < C :: F > > > ,
314- pub ( crate ) low_values_buffer : Array < C , Array < C , Felt < C :: F > > > ,
315- pub ( crate ) high_values_buffer : Array < C , Array < C , Felt < C :: F > > > ,
316314 pub ( crate ) log2_heights : Array < C , Var < C :: N > > ,
317315 pub ( crate ) minus_alpha_offsets : Array < C , Ext < C :: F , C :: EF > > ,
318316 pub ( crate ) all_zero_slices : Array < C , Array < C , Ext < C :: F , C :: EF > > > ,
@@ -400,10 +398,6 @@ pub(crate) fn batch_verifier_query_phase<C: Config>(
400398 let round = builder. iter_ptr_get ( & input. rounds , ptr_vec[ 0 ] ) ;
401399 let opened_values_buffer: Array < C , Array < C , Felt < C :: F > > > =
402400 builder. dyn_array ( round. openings . len ( ) ) ;
403- let low_values_buffer: Array < C , Array < C , Felt < C :: F > > > =
404- builder. dyn_array ( round. openings . len ( ) ) ;
405- let high_values_buffer: Array < C , Array < C , Felt < C :: F > > > =
406- builder. dyn_array ( round. openings . len ( ) ) ;
407401 let log2_heights = builder. dyn_array ( round. openings . len ( ) ) ;
408402 let minus_alpha_offsets = builder. dyn_array ( round. openings . len ( ) ) ;
409403 let all_zero_slices = builder. dyn_array ( round. openings . len ( ) ) ;
@@ -414,8 +408,6 @@ pub(crate) fn batch_verifier_query_phase<C: Config>(
414408 opened_values_buffer,
415409 log2_heights,
416410 round. openings,
417- low_values_buffer,
418- high_values_buffer,
419411 minus_alpha_offsets,
420412 all_zero_slices,
421413 dimensions,
@@ -434,11 +426,6 @@ pub(crate) fn batch_verifier_query_phase<C: Config>(
434426 ptr_vec[ 0 ] ,
435427 opened_value_buffer. clone ( ) ,
436428 ) ;
437- let low_values = opened_value_buffer. slice ( builder, 0 , width. clone ( ) ) ;
438- let high_values =
439- opened_value_buffer. slice ( builder, width. clone ( ) , opened_value_buffer. len ( ) ) ;
440- builder. iter_ptr_set ( & low_values_buffer, ptr_vec[ 3 ] , low_values. clone ( ) ) ;
441- builder. iter_ptr_set ( & high_values_buffer, ptr_vec[ 4 ] , high_values. clone ( ) ) ;
442429
443430 let alpha_offset = builder. get ( & input. batch_coeffs , batch_coeffs_offset. clone ( ) ) ;
444431 // Will need to negate the values of low and high
@@ -447,11 +434,11 @@ pub(crate) fn batch_verifier_query_phase<C: Config>(
447434 // We want \sum_i alpha^(i + offset) opened_value[i]
448435 // Let's negate it here.
449436 builder. assign ( & alpha_offset, -alpha_offset) ;
450- builder. iter_ptr_set ( & minus_alpha_offsets, ptr_vec[ 5 ] , alpha_offset) ;
437+ builder. iter_ptr_set ( & minus_alpha_offsets, ptr_vec[ 3 ] , alpha_offset) ;
451438 builder. assign ( & batch_coeffs_offset, batch_coeffs_offset + width. clone ( ) ) ;
452439
453440 let all_zero_slice = all_zeros. slice ( builder, 0 , width) ;
454- builder. iter_ptr_set ( & all_zero_slices, ptr_vec[ 6 ] , all_zero_slice) ;
441+ builder. iter_ptr_set ( & all_zero_slices, ptr_vec[ 4 ] , all_zero_slice) ;
455442 } ) ;
456443
457444 // TODO: ensure that perm is indeed a permutation of 0, ..., opened_values.len()-1
@@ -471,8 +458,6 @@ pub(crate) fn batch_verifier_query_phase<C: Config>(
471458
472459 let round_context = RoundContextVariable {
473460 opened_values_buffer,
474- low_values_buffer,
475- high_values_buffer,
476461 log2_heights,
477462 minus_alpha_offsets,
478463 all_zero_slices,
@@ -526,27 +511,29 @@ pub(crate) fn batch_verifier_query_phase<C: Config>(
526511 // TODO: optimize this procedure
527512 iter_zip ! (
528513 builder,
529- round_context. low_values_buffer,
530- round_context. high_values_buffer,
531514 round_context. log2_heights,
532515 round_context. minus_alpha_offsets,
533516 round_context. all_zero_slices,
534517 round_context. opened_values_buffer,
535518 round. perm,
519+ round. openings,
536520 )
537521 . for_each ( |ptr_vec, builder| {
538- let low_values =
539- builder. iter_ptr_get ( & round_context. low_values_buffer , ptr_vec[ 0 ] ) ;
540- let high_values =
541- builder. iter_ptr_get ( & round_context. high_values_buffer , ptr_vec[ 1 ] ) ;
522+ let opened_values_buffer =
523+ builder. iter_ptr_get ( & round_context. opened_values_buffer , ptr_vec[ 3 ] ) ;
542524 let log2_height: Var < C :: N > =
543- builder. iter_ptr_get ( & round_context. log2_heights , ptr_vec[ 2 ] ) ;
525+ builder. iter_ptr_get ( & round_context. log2_heights , ptr_vec[ 0 ] ) ;
544526 // The linear combination is by (alpha^offset, ..., alpha^(offset+width-1)), which is equal to
545527 // alpha^offset * (1, ..., alpha^(width-1))
546528 let minus_alpha_offset =
547- builder. iter_ptr_get ( & round_context. minus_alpha_offsets , ptr_vec[ 3 ] ) ;
529+ builder. iter_ptr_get ( & round_context. minus_alpha_offsets , ptr_vec[ 1 ] ) ;
548530 let all_zeros_slice =
549- builder. iter_ptr_get ( & round_context. all_zero_slices , ptr_vec[ 4 ] ) ;
531+ builder. iter_ptr_get ( & round_context. all_zero_slices , ptr_vec[ 2 ] ) ;
532+ let opening = builder. iter_ptr_get ( & round. openings , ptr_vec[ 5 ] ) ;
533+ let width = opening. point_and_evals . evals . len ( ) ;
534+ let low_values = opened_values_buffer. slice ( builder, 0 , width. clone ( ) ) ;
535+ let high_values =
536+ opened_values_buffer. slice ( builder, width, opened_values_buffer. len ( ) ) ;
550537
551538 let low = builder. fri_single_reduced_opening_eval (
552539 alpha,
@@ -576,8 +563,8 @@ pub(crate) fn batch_verifier_query_phase<C: Config>(
576563
577564 // reorder opened values according to the permutation
578565 let mat_j =
579- builder. iter_ptr_get ( & round_context. opened_values_buffer , ptr_vec[ 5 ] ) ;
580- let permuted_j = builder. iter_ptr_get ( & round. perm , ptr_vec[ 6 ] ) ;
566+ builder. iter_ptr_get ( & round_context. opened_values_buffer , ptr_vec[ 3 ] ) ;
567+ let permuted_j = builder. iter_ptr_get ( & round. perm , ptr_vec[ 4 ] ) ;
581568 // let permuted_j = j;
582569 builder. set_value ( & perm_opened_values, permuted_j, mat_j) ;
583570 } ) ;
0 commit comments