]>
git.proxmox.com Git - rustc.git/blob - vendor/itertools-0.8.0/benches/tuples.rs
4 extern crate itertools
;
7 use itertools
::Itertools
;
13 fn s2(a
: u32, b
: u32) -> u32 {
17 fn s3(a
: u32, b
: u32, c
: u32) -> u32 {
21 fn s4(a
: u32, b
: u32, c
: u32, d
: u32) -> u32 {
25 fn sum_s1(s
: &[u32]) -> u32 {
29 fn sum_s2(s
: &[u32]) -> u32 {
33 fn sum_s3(s
: &[u32]) -> u32 {
37 fn sum_s4(s
: &[u32]) -> u32 {
38 s4(s
[0], s
[1], s
[2], s
[3])
41 fn sum_t1(s
: &(&u32, )) -> u32 {
45 fn sum_t2(s
: &(&u32, &u32)) -> u32 {
49 fn sum_t3(s
: &(&u32, &u32, &u32)) -> u32 {
53 fn sum_t4(s
: &(&u32, &u32, &u32, &u32)) -> u32 {
54 s4(*s
.0, *s
.1, *s
.2, *s
.3)
57 macro_rules
! def_benchs
{
69 fn $
FOR_CHUNKS(b
: &mut Bencher
) {
70 let v
: Vec
<u32> = (0.. $N
* 1_000).collect();
75 s
+= $
SLICE_FUN(&v
[j
..(j
+ $N
)]);
83 fn $
FOR_WINDOWS(b
: &mut Bencher
) {
84 let v
: Vec
<u32> = (0..1_000).collect();
87 for i
in 0..(1_000 - $N
) {
88 s
+= $
SLICE_FUN(&v
[i
..(i
+ $N
)]);
95 fn $
TUPLES(b
: &mut Bencher
) {
96 let v
: Vec
<u32> = (0.. $N
* 1_000).collect();
99 for x
in v
.iter().tuples() {
107 fn $
CHUNKS(b
: &mut Bencher
) {
108 let v
: Vec
<u32> = (0.. $N
* 1_000).collect();
111 for x
in v
.chunks($N
) {
119 fn $
TUPLE_WINDOWS(b
: &mut Bencher
) {
120 let v
: Vec
<u32> = (0..1_000).collect();
123 for x
in v
.iter().tuple_windows() {
131 fn $
WINDOWS(b
: &mut Bencher
) {
132 let v
: Vec
<u32> = (0..1_000).collect();
135 for x
in v
.windows($N
) {