@@ -117,9 +117,11 @@ impl IdentityPolynomial {
117117
118118impl DensePolynomial {
119119 pub fn new ( Z : Vec < Scalar > ) -> Self {
120- let len = Z . len ( ) ;
121- let num_vars = len. log2 ( ) ;
122- DensePolynomial { num_vars, Z , len }
120+ DensePolynomial {
121+ num_vars : Z . len ( ) . log2 ( ) as usize ,
122+ len : Z . len ( ) ,
123+ Z ,
124+ }
123125 }
124126
125127 pub fn get_num_vars ( & self ) -> usize {
@@ -143,7 +145,7 @@ impl DensePolynomial {
143145 }
144146
145147 #[ cfg( feature = "multicore" ) ]
146- fn commit_inner ( & self , blinds : & Vec < Scalar > , gens : & MultiCommitGens ) -> PolyCommitment {
148+ fn commit_inner ( & self , blinds : & [ Scalar ] , gens : & MultiCommitGens ) -> PolyCommitment {
147149 let L_size = blinds. len ( ) ;
148150 let R_size = self . Z . len ( ) / L_size ;
149151 assert_eq ! ( L_size * R_size , self . Z . len( ) ) ;
@@ -187,9 +189,9 @@ impl DensePolynomial {
187189 let R_size = right_num_vars. pow2 ( ) ;
188190 assert_eq ! ( L_size * R_size , n) ;
189191
190- let blinds = if random_tape . is_some ( ) {
192+ let blinds = if let Some ( t ) = random_tape {
191193 PolyCommitmentBlinds {
192- blinds : random_tape . unwrap ( ) . random_vector ( b"poly_blinds" , L_size ) ,
194+ blinds : t . random_vector ( b"poly_blinds" , L_size ) ,
193195 }
194196 } else {
195197 PolyCommitmentBlinds {
@@ -352,7 +354,7 @@ impl PolyEvalProof {
352354 & LZ ,
353355 & LZ_blind ,
354356 & R ,
355- & Zr ,
357+ Zr ,
356358 blind_Zr,
357359 ) ;
358360
@@ -404,7 +406,7 @@ mod tests {
404406 use super :: * ;
405407 use rand:: rngs:: OsRng ;
406408
407- fn evaluate_with_LR ( Z : & Vec < Scalar > , r : & Vec < Scalar > ) -> Scalar {
409+ fn evaluate_with_LR ( Z : & [ Scalar ] , r : & [ Scalar ] ) -> Scalar {
408410 let eq = EqPolynomial :: new ( r. to_vec ( ) ) ;
409411 let ( L , R ) = eq. compute_factored_evals ( ) ;
410412
@@ -427,25 +429,26 @@ mod tests {
427429
428430 #[ test]
429431 fn check_polynomial_evaluation ( ) {
430- let mut Z : Vec < Scalar > = Vec :: new ( ) ; // Z = [1, 2, 1, 4]
431- Z . push ( Scalar :: one ( ) ) ;
432- Z . push ( ( 2 as usize ) . to_scalar ( ) ) ;
433- Z . push ( ( 1 as usize ) . to_scalar ( ) ) ;
434- Z . push ( ( 4 as usize ) . to_scalar ( ) ) ;
432+ // Z = [1, 2, 1, 4]
433+ let Z = vec ! [
434+ Scalar :: one( ) ,
435+ ( 2_usize ) . to_scalar( ) ,
436+ ( 1_usize ) . to_scalar( ) ,
437+ ( 4_usize ) . to_scalar( ) ,
438+ ] ;
439+
435440 // r = [4,3]
436- let mut r: Vec < Scalar > = Vec :: new ( ) ;
437- r. push ( ( 4 as usize ) . to_scalar ( ) ) ;
438- r. push ( ( 3 as usize ) . to_scalar ( ) ) ;
441+ let r = vec ! [ ( 4_usize ) . to_scalar( ) , ( 3_usize ) . to_scalar( ) ] ;
439442
440443 let eval_with_LR = evaluate_with_LR ( & Z , & r) ;
441444 let poly = DensePolynomial :: new ( Z ) ;
442445
443446 let eval = poly. evaluate ( & r) ;
444- assert_eq ! ( eval, ( 28 as usize ) . to_scalar( ) ) ;
447+ assert_eq ! ( eval, ( 28_usize ) . to_scalar( ) ) ;
445448 assert_eq ! ( eval_with_LR, eval) ;
446449 }
447450
448- pub fn compute_factored_chis_at_r ( r : & Vec < Scalar > ) -> ( Vec < Scalar > , Vec < Scalar > ) {
451+ pub fn compute_factored_chis_at_r ( r : & [ Scalar ] ) -> ( Vec < Scalar > , Vec < Scalar > ) {
449452 let mut L : Vec < Scalar > = Vec :: new ( ) ;
450453 let mut R : Vec < Scalar > = Vec :: new ( ) ;
451454
@@ -484,7 +487,7 @@ mod tests {
484487 ( L , R )
485488 }
486489
487- pub fn compute_chis_at_r ( r : & Vec < Scalar > ) -> Vec < Scalar > {
490+ pub fn compute_chis_at_r ( r : & [ Scalar ] ) -> Vec < Scalar > {
488491 let ell = r. len ( ) ;
489492 let n = ell. pow2 ( ) ;
490493 let mut chis: Vec < Scalar > = Vec :: new ( ) ;
@@ -505,15 +508,12 @@ mod tests {
505508
506509 pub fn compute_outerproduct ( L : Vec < Scalar > , R : Vec < Scalar > ) -> Vec < Scalar > {
507510 assert_eq ! ( L . len( ) , R . len( ) ) ;
508-
509- let mut O : Vec < Scalar > = Vec :: new ( ) ;
510- let m = L . len ( ) ;
511- for i in 0 ..m {
512- for j in 0 ..m {
513- O . push ( L [ i] * R [ j] ) ;
514- }
515- }
516- O
511+ ( 0 ..L . len ( ) )
512+ . map ( |i| ( 0 ..R . len ( ) ) . map ( |j| L [ i] * R [ j] ) . collect :: < Vec < Scalar > > ( ) )
513+ . collect :: < Vec < Vec < Scalar > > > ( )
514+ . into_iter ( )
515+ . flatten ( )
516+ . collect :: < Vec < Scalar > > ( )
517517 }
518518
519519 #[ test]
@@ -563,20 +563,18 @@ mod tests {
563563
564564 #[ test]
565565 fn check_polynomial_commit ( ) {
566- let mut Z : Vec < Scalar > = Vec :: new ( ) ; // Z = [1, 2, 1, 4]
567- Z . push ( ( 1 as usize ) . to_scalar ( ) ) ;
568- Z . push ( ( 2 as usize ) . to_scalar ( ) ) ;
569- Z . push ( ( 1 as usize ) . to_scalar ( ) ) ;
570- Z . push ( ( 4 as usize ) . to_scalar ( ) ) ;
571-
566+ let Z = vec ! [
567+ ( 1_usize ) . to_scalar( ) ,
568+ ( 2_usize ) . to_scalar( ) ,
569+ ( 1_usize ) . to_scalar( ) ,
570+ ( 4_usize ) . to_scalar( ) ,
571+ ] ;
572572 let poly = DensePolynomial :: new ( Z ) ;
573573
574574 // r = [4,3]
575- let mut r: Vec < Scalar > = Vec :: new ( ) ;
576- r. push ( ( 4 as usize ) . to_scalar ( ) ) ;
577- r. push ( ( 3 as usize ) . to_scalar ( ) ) ;
575+ let r = vec ! [ ( 4_usize ) . to_scalar( ) , ( 3_usize ) . to_scalar( ) ] ;
578576 let eval = poly. evaluate ( & r) ;
579- assert_eq ! ( eval, ( 28 as usize ) . to_scalar( ) ) ;
577+ assert_eq ! ( eval, ( 28_usize ) . to_scalar( ) ) ;
580578
581579 let gens = PolyCommitmentGens :: new ( poly. get_num_vars ( ) , b"test-two" ) ;
582580 let ( poly_commitment, blinds) = poly. commit ( & gens, None ) ;
0 commit comments