11use criterion:: { black_box, criterion_group, criterion_main, Criterion } ;
2- use itertools:: Itertools ;
32use itertools:: free:: cloned;
43use itertools:: iproduct;
4+ use itertools:: Itertools ;
55
6- use std:: iter:: repeat;
76use std:: cmp;
7+ use std:: iter:: repeat;
88use std:: ops:: { Add , Range } ;
99
1010mod extra;
@@ -15,8 +15,10 @@ fn slice_iter(c: &mut Criterion) {
1515 let xs: Vec < _ > = repeat ( 1i32 ) . take ( 20 ) . collect ( ) ;
1616
1717 c. bench_function ( "slice iter" , move |b| {
18- b. iter ( || for elt in xs. iter ( ) {
19- black_box ( elt) ;
18+ b. iter ( || {
19+ for elt in xs. iter ( ) {
20+ black_box ( elt) ;
21+ }
2022 } )
2123 } ) ;
2224}
@@ -25,8 +27,10 @@ fn slice_iter_rev(c: &mut Criterion) {
2527 let xs: Vec < _ > = repeat ( 1i32 ) . take ( 20 ) . collect ( ) ;
2628
2729 c. bench_function ( "slice iter rev" , move |b| {
28- b. iter ( || for elt in xs. iter ( ) . rev ( ) {
29- black_box ( elt) ;
30+ b. iter ( || {
31+ for elt in xs. iter ( ) . rev ( ) {
32+ black_box ( elt) ;
33+ }
3034 } )
3135 } ) ;
3236}
@@ -307,10 +311,10 @@ fn zip_unchecked_counted_loop(c: &mut Criterion) {
307311 let len = cmp:: min ( xs. len ( ) , ys. len ( ) ) ;
308312 for i in 0 ..len {
309313 unsafe {
310- let x = * xs. get_unchecked ( i) ;
311- let y = * ys. get_unchecked ( i) ;
312- black_box ( x) ;
313- black_box ( y) ;
314+ let x = * xs. get_unchecked ( i) ;
315+ let y = * ys. get_unchecked ( i) ;
316+ black_box ( x) ;
317+ black_box ( y) ;
314318 }
315319 }
316320 } )
@@ -329,9 +333,9 @@ fn zipdot_i32_unchecked_counted_loop(c: &mut Criterion) {
329333 let mut s = 0i32 ;
330334 for i in 0 ..len {
331335 unsafe {
332- let x = * xs. get_unchecked ( i) ;
333- let y = * ys. get_unchecked ( i) ;
334- s += x * y;
336+ let x = * xs. get_unchecked ( i) ;
337+ let y = * ys. get_unchecked ( i) ;
338+ s += x * y;
335339 }
336340 }
337341 s
@@ -351,9 +355,9 @@ fn zipdot_f32_unchecked_counted_loop(c: &mut Criterion) {
351355 let mut s = 0f32 ;
352356 for i in 0 ..len {
353357 unsafe {
354- let x = * xs. get_unchecked ( i) ;
355- let y = * ys. get_unchecked ( i) ;
356- s += x * y;
358+ let x = * xs. get_unchecked ( i) ;
359+ let y = * ys. get_unchecked ( i) ;
360+ s += x * y;
357361 }
358362 }
359363 s
@@ -374,12 +378,12 @@ fn zip_unchecked_counted_loop3(c: &mut Criterion) {
374378 let len = cmp:: min ( xs. len ( ) , cmp:: min ( ys. len ( ) , zs. len ( ) ) ) ;
375379 for i in 0 ..len {
376380 unsafe {
377- let x = * xs. get_unchecked ( i) ;
378- let y = * ys. get_unchecked ( i) ;
379- let z = * zs. get_unchecked ( i) ;
380- black_box ( x) ;
381- black_box ( y) ;
382- black_box ( z) ;
381+ let x = * xs. get_unchecked ( i) ;
382+ let y = * ys. get_unchecked ( i) ;
383+ let z = * zs. get_unchecked ( i) ;
384+ black_box ( x) ;
385+ black_box ( y) ;
386+ black_box ( z) ;
383387 }
384388 }
385389 } )
@@ -464,11 +468,7 @@ fn equal(c: &mut Criterion) {
464468 let alpha = black_box ( & data[ 1 ..] ) ;
465469 let beta = black_box ( & data[ ..l - 1 ] ) ;
466470
467- c. bench_function ( "equal" , move |b| {
468- b. iter ( || {
469- itertools:: equal ( alpha, beta)
470- } )
471- } ) ;
471+ c. bench_function ( "equal" , move |b| b. iter ( || itertools:: equal ( alpha, beta) ) ) ;
472472}
473473
474474fn merge_default ( c : & mut Criterion ) {
@@ -493,9 +493,7 @@ fn merge_default(c: &mut Criterion) {
493493 let data2 = black_box ( data2) ;
494494
495495 c. bench_function ( "merge default" , move |b| {
496- b. iter ( || {
497- data1. iter ( ) . merge ( & data2) . count ( )
498- } )
496+ b. iter ( || data1. iter ( ) . merge ( & data2) . count ( ) )
499497 } ) ;
500498}
501499
@@ -521,9 +519,7 @@ fn merge_by_cmp(c: &mut Criterion) {
521519 let data2 = black_box ( data2) ;
522520
523521 c. bench_function ( "merge by cmp" , move |b| {
524- b. iter ( || {
525- data1. iter ( ) . merge_by ( & data2, PartialOrd :: le) . count ( )
526- } )
522+ b. iter ( || data1. iter ( ) . merge_by ( & data2, PartialOrd :: le) . count ( ) )
527523 } ) ;
528524}
529525
@@ -549,9 +545,7 @@ fn merge_by_lt(c: &mut Criterion) {
549545 let data2 = black_box ( data2) ;
550546
551547 c. bench_function ( "merge by lt" , move |b| {
552- b. iter ( || {
553- data1. iter ( ) . merge_by ( & data2, |a, b| a <= b) . count ( )
554- } )
548+ b. iter ( || data1. iter ( ) . merge_by ( & data2, |a, b| a <= b) . count ( ) )
555549 } ) ;
556550}
557551
@@ -578,9 +572,7 @@ fn kmerge_default(c: &mut Criterion) {
578572 let its = & [ data1. iter ( ) , data2. iter ( ) ] ;
579573
580574 c. bench_function ( "kmerge default" , move |b| {
581- b. iter ( || {
582- its. iter ( ) . cloned ( ) . kmerge ( ) . count ( )
583- } )
575+ b. iter ( || its. iter ( ) . cloned ( ) . kmerge ( ) . count ( ) )
584576 } ) ;
585577}
586578
@@ -603,7 +595,7 @@ fn kmerge_tenway(c: &mut Criterion) {
603595 while rest. len ( ) > 0 {
604596 let chunk_len = 1 + rng ( & mut state) % 512 ;
605597 let chunk_len = cmp:: min ( rest. len ( ) , chunk_len as usize ) ;
606- let ( fst, tail) = { rest} . split_at_mut ( chunk_len) ;
598+ let ( fst, tail) = { rest } . split_at_mut ( chunk_len) ;
607599 fst. sort ( ) ;
608600 chunks. push ( fst. iter ( ) . cloned ( ) ) ;
609601 rest = tail;
@@ -612,15 +604,14 @@ fn kmerge_tenway(c: &mut Criterion) {
612604 // println!("Chunk lengths: {}", chunks.iter().format_with(", ", |elt, f| f(&elt.len())));
613605
614606 c. bench_function ( "kmerge tenway" , move |b| {
615- b. iter ( || {
616- chunks. iter ( ) . cloned ( ) . kmerge ( ) . count ( )
617- } )
607+ b. iter ( || chunks. iter ( ) . cloned ( ) . kmerge ( ) . count ( ) )
618608 } ) ;
619609}
620610
621611fn fast_integer_sum < I > ( iter : I ) -> I :: Item
622- where I : IntoIterator ,
623- I :: Item : Default + Add < Output =I :: Item >
612+ where
613+ I : IntoIterator ,
614+ I :: Item : Default + Add < Output = I :: Item > ,
624615{
625616 iter. into_iter ( ) . fold ( <_ >:: default ( ) , |x, y| x + y)
626617}
@@ -629,39 +620,31 @@ fn step_vec_2(c: &mut Criterion) {
629620 let v = vec ! [ 0 ; 1024 ] ;
630621
631622 c. bench_function ( "step vec 2" , move |b| {
632- b. iter ( || {
633- fast_integer_sum ( cloned ( v. iter ( ) . step_by ( 2 ) ) )
634- } )
623+ b. iter ( || fast_integer_sum ( cloned ( v. iter ( ) . step_by ( 2 ) ) ) )
635624 } ) ;
636625}
637626
638627fn step_vec_10 ( c : & mut Criterion ) {
639628 let v = vec ! [ 0 ; 1024 ] ;
640629
641630 c. bench_function ( "step vec 10" , move |b| {
642- b. iter ( || {
643- fast_integer_sum ( cloned ( v. iter ( ) . step_by ( 10 ) ) )
644- } )
631+ b. iter ( || fast_integer_sum ( cloned ( v. iter ( ) . step_by ( 10 ) ) ) )
645632 } ) ;
646633}
647634
648635fn step_range_2 ( c : & mut Criterion ) {
649636 let v = black_box ( 0 ..1024 ) ;
650637
651638 c. bench_function ( "step range 2" , move |b| {
652- b. iter ( || {
653- fast_integer_sum ( v. clone ( ) . step_by ( 2 ) )
654- } )
639+ b. iter ( || fast_integer_sum ( v. clone ( ) . step_by ( 2 ) ) )
655640 } ) ;
656641}
657642
658643fn step_range_10 ( c : & mut Criterion ) {
659644 let v = black_box ( 0 ..1024 ) ;
660645
661646 c. bench_function ( "step range 10" , move |b| {
662- b. iter ( || {
663- fast_integer_sum ( v. clone ( ) . step_by ( 10 ) )
664- } )
647+ b. iter ( || fast_integer_sum ( v. clone ( ) . step_by ( 10 ) ) )
665648 } ) ;
666649}
667650
@@ -753,9 +736,7 @@ fn all_equal(c: &mut Criterion) {
753736 let mut xs = vec ! [ 0 ; 5_000_000 ] ;
754737 xs. extend ( vec ! [ 1 ; 5_000_000 ] ) ;
755738
756- c. bench_function ( "all equal" , move |b| {
757- b. iter ( || xs. iter ( ) . all_equal ( ) )
758- } ) ;
739+ c. bench_function ( "all equal" , move |b| b. iter ( || xs. iter ( ) . all_equal ( ) ) ) ;
759740}
760741
761742fn all_equal_for ( c : & mut Criterion ) {
@@ -797,33 +778,25 @@ fn permutations_iter(c: &mut Criterion) {
797778 }
798779
799780 c. bench_function ( "permutations iter" , move |b| {
800- b. iter ( || {
801- for _ in NewIterator ( 0 .. PERM_COUNT ) . permutations ( PERM_COUNT ) {
802-
803- }
804- } )
781+ b. iter (
782+ || {
783+ for _ in NewIterator ( 0 .. PERM_COUNT ) . permutations ( PERM_COUNT ) { }
784+ } ,
785+ )
805786 } ) ;
806787}
807788
808789fn permutations_range ( c : & mut Criterion ) {
809790 c. bench_function ( "permutations range" , move |b| {
810- b. iter ( || {
811- for _ in ( 0 ..PERM_COUNT ) . permutations ( PERM_COUNT ) {
812-
813- }
814- } )
791+ b. iter ( || for _ in ( 0 ..PERM_COUNT ) . permutations ( PERM_COUNT ) { } )
815792 } ) ;
816793}
817794
818795fn permutations_slice ( c : & mut Criterion ) {
819796 let v = ( 0 ..PERM_COUNT ) . collect_vec ( ) ;
820797
821798 c. bench_function ( "permutations slice" , move |b| {
822- b. iter ( || {
823- for _ in v. as_slice ( ) . iter ( ) . permutations ( PERM_COUNT ) {
824-
825- }
826- } )
799+ b. iter ( || for _ in v. as_slice ( ) . iter ( ) . permutations ( PERM_COUNT ) { } )
827800 } ) ;
828801}
829802
0 commit comments