@@ -136,7 +136,7 @@ where
136136
137137 let ( quotients, remainder) = quotients ( poly, point, |_, q| UnivariatePolynomial :: new ( q) ) ;
138138 let quotients_rscoded: Vec < _ > = quotients
139- . iter ( )
139+ . par_iter ( )
140140 . map ( |q| {
141141 let q_coeffs = q. coeffs ( ) . to_vec ( ) ;
142142 let mut new_coeffs = vec ! [ <F as ff:: Field >:: ZERO ; 1 << num_vars] ;
@@ -256,10 +256,9 @@ where
256256 . chunks ( vp. vp . num_rounds * 2 )
257257 . map ( |chunk| {
258258 chunk
259- . iter ( )
260- . collect_vec ( )
259+ . to_vec ( )
261260 . chunks ( 2 )
262- . map ( |chunk| chunk. iter ( ) . map ( |x| * * x ) . collect ( ) )
261+ . map ( |chunk| chunk. to_vec ( ) )
263262 . collect ( )
264263 } )
265264 . collect ( ) ;
@@ -288,10 +287,9 @@ where
288287 . chunks ( ( q_comms. len ( ) + 1 ) * 2 )
289288 . map ( |chunk| {
290289 chunk
291- . iter ( )
292- . collect_vec ( )
290+ . to_vec ( )
293291 . chunks ( 2 )
294- . map ( |chunk| chunk. iter ( ) . map ( |x| * * x ) . collect ( ) )
292+ . map ( |chunk| chunk. to_vec ( ) )
295293 . collect ( )
296294 } )
297295 . collect ( ) ;
@@ -306,15 +304,13 @@ where
306304 . chunks ( ( q_comms. len ( ) + 1 ) * ( vp. vp . num_rounds + vp. vp . log_rate ) * 2 )
307305 . map ( |chunk| {
308306 chunk
309- . iter ( )
310- . collect_vec ( )
307+ . to_vec ( )
311308 . chunks ( ( vp. vp . num_rounds + vp. vp . log_rate ) * 2 )
312309 . map ( |chunk| {
313310 chunk
314- . iter ( )
315- . collect_vec ( )
311+ . to_vec ( )
316312 . chunks ( 2 )
317- . map ( |chunk| chunk. iter ( ) . map ( |x| ( * * x ) . clone ( ) ) . collect ( ) )
313+ . map ( |chunk| chunk. to_vec ( ) )
318314 . collect ( )
319315 } )
320316 . collect ( )
@@ -693,8 +689,8 @@ pub fn open_helper<H: Hash>(
693689 //construct evaluation codeword
694690 let num_vars = pp. num_vars ;
695691 assert_eq ! ( num_vars, qs. len( ) ) ;
696- let mut denominator = Vec :: new ( ) ;
697- let mut numerator = Vec :: new ( ) ;
692+ let mut denominator = vec ! [ < F as ff :: Field > :: ZERO ; 1 << ( num_vars + pp . log_rate ) ] ;
693+ let mut numerator = vec ! [ < F as ff :: Field > :: ZERO ; 1 << ( num_vars + pp . log_rate ) ] ;
698694 let last_level = & pp. table_w_weights [ pp. table_w_weights . len ( ) - 1 ] ;
699695 let dft = p3_dft:: Radix2Dit :: default ( ) ;
700696
@@ -861,23 +857,22 @@ pub fn open_helper<H: Hash>(
861857 reverse_index_bits_in_place ( & mut test_slice) ;
862858 }
863859
864- let mut d_pointer = 0 ;
865860 let mut rbo_g = g. clone ( ) ;
866861 reverse_index_bits_in_place ( & mut rbo_g) ;
867- for j in 0 ..( 1 << ( num_vars + pp. log_rate ) ) {
868- let mut x: F = last_level[ d_pointer] . 0 ;
869- if j % 2 != 0 {
870- d_pointer = d_pointer + 1 ;
871- x = -x;
862+ parallelize ( & mut denominator, |( denominator, start) | {
863+ for ( i, d) in denominator. iter_mut ( ) . enumerate ( ) {
864+ let mut x: F = last_level[ ( start + i) / 2 ] . 0 ;
865+ if ( start + i) % 2 != 0 {
866+ x = -x;
867+ }
868+ * d = x - point;
872869 }
873- // assert_eq!(
874- // x, test_slice[j],
875- // "j {:?}, x {:?}, test_slice[j] {:?}",
876- // j, x, test_slice[j]
877- // );
878- denominator. push ( x - point) ;
879- numerator. push ( rbo_g[ j] - eval) ;
880- }
870+ } ) ;
871+ parallelize ( & mut numerator, |( numerator, start) | {
872+ for ( i, n) in numerator. iter_mut ( ) . enumerate ( ) {
873+ * n = rbo_g[ start + i] - eval;
874+ }
875+ } ) ;
881876
882877 if cfg ! ( feature = "sanity-check" ) {
883878 let mut numerator_cp = numerator. clone ( ) ;
@@ -966,7 +961,9 @@ pub fn open_helper<H: Hash>(
966961 let indices = & query. 1 ;
967962 indices. into_iter ( ) . enumerate ( ) . for_each ( |( i, q) | {
968963 let root = trees[ i] [ trees[ i] . len ( ) - 1 ] [ 0 ] . clone ( ) ;
969- println ! ( "write merkle path q {:?}, root {:?}" , q, root) ;
964+ if cfg ! ( feature = "sanity-check" ) {
965+ println ! ( "write merkle path q {:?}, root {:?}" , q, root) ;
966+ }
970967 write_merkle_path :: < H , F > ( & trees[ i] , * q, transcript) ;
971968 } )
972969 } ) ;
0 commit comments