@@ -143,7 +143,7 @@ where
143143 // Given a polynomial P(x), produce P'(x) := P(alpha * x). Evaluating P'(x)
144144 // then corresponds to evaluating P(alpha * x).
145145 #[ must_use]
146- pub fn scale ( & self , & alpha: & BFieldElement ) -> Self {
146+ pub fn scale ( & self , alpha : BFieldElement ) -> Self {
147147 let mut acc = FF :: one ( ) ;
148148 let mut return_coefficients = self . coefficients . clone ( ) ;
149149 for elem in return_coefficients. iter_mut ( ) {
@@ -263,7 +263,7 @@ where
263263 pub fn fast_multiply (
264264 lhs : & Self ,
265265 rhs : & Self ,
266- primitive_root : & BFieldElement ,
266+ primitive_root : BFieldElement ,
267267 root_order : usize ,
268268 ) -> Self {
269269 assert ! (
@@ -324,7 +324,7 @@ where
324324 }
325325
326326 // domain: polynomial roots
327- pub fn fast_zerofier ( domain : & [ FF ] , primitive_root : & BFieldElement , root_order : usize ) -> Self {
327+ pub fn fast_zerofier ( domain : & [ FF ] , primitive_root : BFieldElement , root_order : usize ) -> Self {
328328 debug_assert_eq ! (
329329 primitive_root. mod_pow_u32( root_order as u32 ) ,
330330 BFieldElement :: one( ) ,
@@ -364,7 +364,7 @@ where
364364 pub fn fast_evaluate (
365365 & self ,
366366 domain : & [ FF ] ,
367- primitive_root : & BFieldElement ,
367+ primitive_root : BFieldElement ,
368368 root_order : usize ,
369369 ) -> Vec < FF > {
370370 if domain. is_empty ( ) {
@@ -398,7 +398,7 @@ where
398398 pub fn fast_interpolate (
399399 domain : & [ FF ] ,
400400 values : & [ FF ] ,
401- primitive_root : & BFieldElement ,
401+ primitive_root : BFieldElement ,
402402 root_order : usize ,
403403 ) -> Self {
404404 assert_eq ! (
@@ -470,7 +470,7 @@ where
470470 pub fn batch_fast_interpolate (
471471 domain : & [ FF ] ,
472472 values_matrix : & Vec < Vec < FF > > ,
473- primitive_root : & BFieldElement ,
473+ primitive_root : BFieldElement ,
474474 root_order : usize ,
475475 ) -> Vec < Self > {
476476 debug_assert_eq ! (
@@ -502,7 +502,7 @@ where
502502 fn batch_fast_interpolate_with_memoization (
503503 domain : & [ FF ] ,
504504 values_matrix : & Vec < Vec < FF > > ,
505- primitive_root : & BFieldElement ,
505+ primitive_root : BFieldElement ,
506506 root_order : usize ,
507507 zerofier_dictionary : & mut HashMap < ( FF , FF ) , Polynomial < FF > > ,
508508 offset_inverse_dictionary : & mut HashMap < ( FF , FF ) , Vec < FF > > ,
@@ -638,7 +638,7 @@ where
638638 /// Fast evaluate on a coset domain, which is the group generated by `generator^i * offset`
639639 pub fn fast_coset_evaluate (
640640 & self ,
641- offset : & BFieldElement ,
641+ offset : BFieldElement ,
642642 generator : BFieldElement ,
643643 order : usize ,
644644 ) -> Vec < FF > {
@@ -651,7 +651,7 @@ where
651651
652652 /// The inverse of `fast_coset_evaluate`
653653 pub fn fast_coset_interpolate (
654- offset : & BFieldElement ,
654+ offset : BFieldElement ,
655655 generator : BFieldElement ,
656656 values : & [ FF ] ,
657657 ) -> Self {
@@ -664,7 +664,7 @@ where
664664 ) ;
665665 let poly = Polynomial :: new ( mut_values) ;
666666
667- poly. scale ( & offset. inverse ( ) )
667+ poly. scale ( offset. inverse ( ) )
668668 }
669669
670670 /// Divide two polynomials under the homomorphism of evaluation for a N^2 -> N*log(N) speedup
@@ -714,10 +714,10 @@ where
714714 order /= 2 ;
715715 }
716716
717- let mut scaled_lhs_coefficients: Vec < FF > = lhs. scale ( & offset) . coefficients ;
717+ let mut scaled_lhs_coefficients: Vec < FF > = lhs. scale ( offset) . coefficients ;
718718 scaled_lhs_coefficients. append ( & mut vec ! [ zero; order - scaled_lhs_coefficients. len( ) ] ) ;
719719
720- let mut scaled_rhs_coefficients: Vec < FF > = rhs. scale ( & offset) . coefficients ;
720+ let mut scaled_rhs_coefficients: Vec < FF > = rhs. scale ( offset) . coefficients ;
721721 scaled_rhs_coefficients. append ( & mut vec ! [ zero; order - scaled_rhs_coefficients. len( ) ] ) ;
722722
723723 let lhs_log_2_of_n = log_2_floor ( scaled_lhs_coefficients. len ( ) as u128 ) as u32 ;
@@ -740,7 +740,7 @@ where
740740 coefficients : quotient_codeword,
741741 } ;
742742
743- scaled_quotient. scale ( & offset. inverse ( ) )
743+ scaled_quotient. scale ( offset. inverse ( ) )
744744 }
745745}
746746
@@ -2215,45 +2215,45 @@ mod test_polynomials {
22152215 BFieldElement :: from( 17u64 ) ,
22162216 ] ,
22172217 } ;
2218- let c_fast = Polynomial :: fast_multiply ( & a, & b, & primitive_root, 32 ) ;
2218+ let c_fast = Polynomial :: fast_multiply ( & a, & b, primitive_root, 32 ) ;
22192219 let c_normal = a. clone ( ) * b. clone ( ) ;
22202220 println ! ( "c_normal = {c_normal}" ) ;
22212221 println ! ( "c_fast = {c_fast}" ) ;
22222222 assert_eq ! ( c_normal, c_fast) ;
22232223 assert_eq ! (
22242224 Polynomial :: zero( ) ,
2225- Polynomial :: fast_multiply( & Polynomial :: zero( ) , & b, & primitive_root, 32 )
2225+ Polynomial :: fast_multiply( & Polynomial :: zero( ) , & b, primitive_root, 32 )
22262226 ) ;
22272227 assert_eq ! (
22282228 Polynomial :: zero( ) ,
2229- Polynomial :: fast_multiply( & a, & Polynomial :: zero( ) , & primitive_root, 32 )
2229+ Polynomial :: fast_multiply( & a, & Polynomial :: zero( ) , primitive_root, 32 )
22302230 ) ;
22312231
22322232 let one: Polynomial < BFieldElement > = Polynomial {
22332233 coefficients : vec ! [ BFieldElement :: from( 1u64 ) ] ,
22342234 } ;
2235- assert_eq ! ( a, Polynomial :: fast_multiply( & a, & one, & primitive_root, 32 ) ) ;
2236- assert_eq ! ( a, Polynomial :: fast_multiply( & one, & a, & primitive_root, 32 ) ) ;
2237- assert_eq ! ( b, Polynomial :: fast_multiply( & b, & one, & primitive_root, 32 ) ) ;
2238- assert_eq ! ( b, Polynomial :: fast_multiply( & one, & b, & primitive_root, 32 ) ) ;
2235+ assert_eq ! ( a, Polynomial :: fast_multiply( & a, & one, primitive_root, 32 ) ) ;
2236+ assert_eq ! ( a, Polynomial :: fast_multiply( & one, & a, primitive_root, 32 ) ) ;
2237+ assert_eq ! ( b, Polynomial :: fast_multiply( & b, & one, primitive_root, 32 ) ) ;
2238+ assert_eq ! ( b, Polynomial :: fast_multiply( & one, & b, primitive_root, 32 ) ) ;
22392239 let x: Polynomial < BFieldElement > = Polynomial {
22402240 coefficients : vec ! [ BFieldElement :: from( 0u64 ) , BFieldElement :: from( 1u64 ) ] ,
22412241 } ;
22422242 assert_eq ! (
22432243 a. shift_coefficients( 1 ) ,
2244- Polynomial :: fast_multiply( & x, & a, & primitive_root, 32 )
2244+ Polynomial :: fast_multiply( & x, & a, primitive_root, 32 )
22452245 ) ;
22462246 assert_eq ! (
22472247 a. shift_coefficients( 1 ) ,
2248- Polynomial :: fast_multiply( & a, & x, & primitive_root, 32 )
2248+ Polynomial :: fast_multiply( & a, & x, primitive_root, 32 )
22492249 ) ;
22502250 assert_eq ! (
22512251 b. shift_coefficients( 1 ) ,
2252- Polynomial :: fast_multiply( & x, & b, & primitive_root, 32 )
2252+ Polynomial :: fast_multiply( & x, & b, primitive_root, 32 )
22532253 ) ;
22542254 assert_eq ! (
22552255 b. shift_coefficients( 1 ) ,
2256- Polynomial :: fast_multiply( & b, & x, & primitive_root, 32 )
2256+ Polynomial :: fast_multiply( & b, & x, primitive_root, 32 )
22572257 ) ;
22582258 }
22592259
@@ -2264,7 +2264,7 @@ mod test_polynomials {
22642264 let root_order: usize = 8 ;
22652265 let omega = BFieldElement :: primitive_root_of_unity ( root_order as u64 ) . unwrap ( ) ;
22662266 let domain = vec ! [ _1_17, _5_17] ;
2267- let actual = Polynomial :: < BFieldElement > :: fast_zerofier ( & domain, & omega, root_order) ;
2267+ let actual = Polynomial :: < BFieldElement > :: fast_zerofier ( & domain, omega, root_order) ;
22682268 assert ! (
22692269 actual. evaluate( & _1_17) . is_zero( ) ,
22702270 "expecting {actual} = 0 when x = 1"
@@ -2283,7 +2283,7 @@ mod test_polynomials {
22832283 let root_order_2 = 16 ;
22842284 let omega2 = BFieldElement :: primitive_root_of_unity ( root_order_2 as u64 ) . unwrap ( ) ;
22852285 let domain_2 = vec ! [ _7_17, _10_17] ;
2286- let actual_2 = Polynomial :: < BFieldElement > :: fast_zerofier ( & domain_2, & omega2, root_order_2) ;
2286+ let actual_2 = Polynomial :: < BFieldElement > :: fast_zerofier ( & domain_2, omega2, root_order_2) ;
22872287 assert ! (
22882288 actual_2. evaluate( & _7_17) . is_zero( ) ,
22892289 "expecting {actual_2} = 0 when x = 7"
@@ -2316,7 +2316,7 @@ mod test_polynomials {
23162316 let omega = maybe_omega. unwrap ( ) ;
23172317
23182318 // compute zerofier
2319- let zerofier = Polynomial :: < BFieldElement > :: fast_zerofier ( & domain, & omega, order) ;
2319+ let zerofier = Polynomial :: < BFieldElement > :: fast_zerofier ( & domain, omega, order) ;
23202320
23212321 // evaluate in all domain points and match against zero
23222322 for d in domain. iter ( ) {
@@ -2353,7 +2353,7 @@ mod test_polynomials {
23532353 let _12_17 = BFieldElement :: from ( 12u64 ) ;
23542354 let domain = vec ! [ _6_17, _12_17] ;
23552355
2356- let actual = poly. fast_evaluate ( & domain, & omega, 16 ) ;
2356+ let actual = poly. fast_evaluate ( & domain, omega, 16 ) ;
23572357 let expected_6 = _6_17. mod_pow ( 5u64 ) + _6_17. mod_pow ( 3u64 ) ;
23582358 assert_eq ! ( expected_6, actual[ 0 ] ) ;
23592359
@@ -2391,7 +2391,7 @@ mod test_polynomials {
23912391 let omega = maybe_omega. unwrap ( ) ;
23922392
23932393 // fast evaluate
2394- let fast_eval = poly. fast_evaluate ( & domain, & omega, order) ;
2394+ let fast_eval = poly. fast_evaluate ( & domain, omega, order) ;
23952395
23962396 // match evaluations
23972397 assert_eq ! ( slow_eval, fast_eval) ;
@@ -2414,12 +2414,12 @@ mod test_polynomials {
24142414 let _9_17 = BFieldElement :: from ( 9u64 ) ;
24152415 let domain = vec ! [ _6_17, _7_17, _8_17, _9_17] ;
24162416
2417- let evals = poly. fast_evaluate ( & domain, & omega, 4 ) ;
2418- let reinterp = Polynomial :: fast_interpolate ( & domain, & evals, & omega, 4 ) ;
2417+ let evals = poly. fast_evaluate ( & domain, omega, 4 ) ;
2418+ let reinterp = Polynomial :: fast_interpolate ( & domain, & evals, omega, 4 ) ;
24192419 assert_eq ! ( poly, reinterp) ;
24202420
24212421 let reinterps_batch: Vec < Polynomial < BFieldElement > > =
2422- Polynomial :: batch_fast_interpolate ( & domain, & vec ! [ evals] , & omega, 4 ) ;
2422+ Polynomial :: batch_fast_interpolate ( & domain, & vec ! [ evals] , omega, 4 ) ;
24232423 assert_eq ! ( poly, reinterps_batch[ 0 ] ) ;
24242424 }
24252425
@@ -2432,8 +2432,7 @@ mod test_polynomials {
24322432 let omega = BFieldElement :: primitive_root_of_unity ( order_of_omega as u64 ) . unwrap ( ) ;
24332433
24342434 // Unbatched fast interpolation
2435- let interpolant =
2436- Polynomial :: fast_interpolate ( & domain, & values, & omega, order_of_omega) ;
2435+ let interpolant = Polynomial :: fast_interpolate ( & domain, & values, omega, order_of_omega) ;
24372436
24382437 for ( x, y) in domain. iter ( ) . zip ( values) {
24392438 assert_eq ! ( y, interpolant. evaluate( x) ) ;
@@ -2449,7 +2448,7 @@ mod test_polynomials {
24492448 ] ;
24502449
24512450 let batch_interpolated =
2452- Polynomial :: batch_fast_interpolate ( & domain, & values_vec, & omega, order_of_omega) ;
2451+ Polynomial :: batch_fast_interpolate ( & domain, & values_vec, omega, order_of_omega) ;
24532452 for ( y_values, interpolant_from_batch_function) in
24542453 values_vec. into_iter ( ) . zip ( batch_interpolated. into_iter ( ) )
24552454 {
@@ -2499,10 +2498,10 @@ mod test_polynomials {
24992498
25002499 // use NTT-based interpolation
25012500 let interpolant =
2502- Polynomial :: < BFieldElement > :: fast_interpolate ( & domain, & values, & omega, order) ;
2501+ Polynomial :: < BFieldElement > :: fast_interpolate ( & domain, & values, omega, order) ;
25032502
25042503 // re-evaluate and match against sampled values
2505- let re_eval = interpolant. fast_evaluate ( & domain, & omega, order) ;
2504+ let re_eval = interpolant. fast_evaluate ( & domain, omega, order) ;
25062505 for ( v, r) in values. iter ( ) . zip ( re_eval. iter ( ) ) {
25072506 assert_eq ! ( v, r) ;
25082507 }
@@ -2514,7 +2513,7 @@ mod test_polynomials {
25142513 let batched_interpolants = Polynomial :: < BFieldElement > :: batch_fast_interpolate (
25152514 & domain,
25162515 & vec ! [ values] ,
2517- & omega,
2516+ omega,
25182517 order,
25192518 ) ;
25202519
@@ -2535,18 +2534,18 @@ mod test_polynomials {
25352534 let offset = BFieldElement :: generator ( ) ;
25362535 let omega = BFieldElement :: primitive_root_of_unity ( 8 ) . unwrap ( ) ;
25372536
2538- let values = poly. fast_coset_evaluate ( & offset, omega, 8 ) ;
2537+ let values = poly. fast_coset_evaluate ( offset, omega, 8 ) ;
25392538
25402539 let mut domain = vec ! [ _0; 8 ] ;
25412540 domain[ 0 ] = offset;
25422541 for i in 1 ..8 {
25432542 domain[ i] = domain[ i - 1 ] . to_owned ( ) * omega. to_owned ( ) ;
25442543 }
25452544
2546- let reinterp = Polynomial :: fast_interpolate ( & domain, & values, & omega, 8 ) ;
2545+ let reinterp = Polynomial :: fast_interpolate ( & domain, & values, omega, 8 ) ;
25472546 assert_eq ! ( reinterp, poly) ;
25482547
2549- let poly_interpolated = Polynomial :: fast_coset_interpolate ( & offset, omega, & values) ;
2548+ let poly_interpolated = Polynomial :: fast_coset_interpolate ( offset, omega, & values) ;
25502549 assert_eq ! ( poly, poly_interpolated) ;
25512550 }
25522551
@@ -2583,7 +2582,7 @@ mod test_polynomials {
25832582 BFieldElement :: from( 17u64 ) ,
25842583 ] ,
25852584 } ;
2586- let c_fast = Polynomial :: fast_multiply ( & a, & b, & primitive_root, 32 ) ;
2585+ let c_fast = Polynomial :: fast_multiply ( & a, & b, primitive_root, 32 ) ;
25872586
25882587 let mut quotient = Polynomial :: fast_coset_divide ( & c_fast, & b, offset, primitive_root, 32 ) ;
25892588 assert_eq ! ( a, quotient) ;
@@ -3011,7 +3010,7 @@ mod test_polynomials {
30113010 let omega = BFieldElement :: primitive_root_of_unity ( next_po2 as u64 ) . unwrap ( ) ;
30123011
30133012 let fast_zerofier_polynomial =
3014- Polynomial :: < BFieldElement > :: fast_zerofier ( & domain, & omega, next_po2) ;
3013+ Polynomial :: < BFieldElement > :: fast_zerofier ( & domain, omega, next_po2) ;
30153014
30163015 assert_eq ! ( zerofier_polynomial, fast_zerofier_polynomial) ;
30173016 }
0 commit comments