1
1
#![ feature( test) ]
2
+ #![ allow(
3
+ clippy:: many_single_char_names,
4
+ clippy:: deref_addrof,
5
+ clippy:: unreadable_literal,
6
+ clippy:: many_single_char_names
7
+ ) ]
2
8
3
9
extern crate rawpointer;
4
10
extern crate test;
@@ -14,15 +20,15 @@ use ndarray::{FoldWhile, Zip};
14
20
#[ bench]
15
21
fn iter_sum_2d_regular ( bench : & mut Bencher ) {
16
22
let a = Array :: < i32 , _ > :: zeros ( ( 64 , 64 ) ) ;
17
- bench. iter ( || a. iter ( ) . fold ( 0 , |acc , & x| acc + x ) ) ;
23
+ bench. iter ( || a. iter ( ) . sum :: < i32 > ( ) ) ;
18
24
}
19
25
20
26
#[ bench]
21
27
fn iter_sum_2d_cutout ( bench : & mut Bencher ) {
22
28
let a = Array :: < i32 , _ > :: zeros ( ( 66 , 66 ) ) ;
23
29
let av = a. slice ( s ! [ 1 ..-1 , 1 ..-1 ] ) ;
24
30
let a = av;
25
- bench. iter ( || a. iter ( ) . fold ( 0 , |acc , & x| acc + x ) ) ;
31
+ bench. iter ( || a. iter ( ) . sum :: < i32 > ( ) ) ;
26
32
}
27
33
28
34
#[ bench]
@@ -37,37 +43,37 @@ fn iter_all_2d_cutout(bench: &mut Bencher) {
37
43
fn iter_sum_2d_transpose ( bench : & mut Bencher ) {
38
44
let a = Array :: < i32 , _ > :: zeros ( ( 66 , 66 ) ) ;
39
45
let a = a. t ( ) ;
40
- bench. iter ( || a. iter ( ) . fold ( 0 , |acc , & x| acc + x ) ) ;
46
+ bench. iter ( || a. iter ( ) . sum :: < i32 > ( ) ) ;
41
47
}
42
48
43
49
#[ bench]
44
50
fn iter_filter_sum_2d_u32 ( bench : & mut Bencher ) {
45
51
let a = Array :: linspace ( 0. , 1. , 256 ) . into_shape ( ( 16 , 16 ) ) . unwrap ( ) ;
46
52
let b = a. mapv ( |x| ( x * 100. ) as u32 ) ;
47
- bench. iter ( || b. iter ( ) . filter ( |& & x| x < 75 ) . fold ( 0 , |acc , & x| acc + x ) ) ;
53
+ bench. iter ( || b. iter ( ) . filter ( |& & x| x < 75 ) . sum :: < u32 > ( ) ) ;
48
54
}
49
55
50
56
#[ bench]
51
57
fn iter_filter_sum_2d_f32 ( bench : & mut Bencher ) {
52
58
let a = Array :: linspace ( 0. , 1. , 256 ) . into_shape ( ( 16 , 16 ) ) . unwrap ( ) ;
53
59
let b = a * 100. ;
54
- bench. iter ( || b. iter ( ) . filter ( |& & x| x < 75. ) . fold ( 0. , |acc , & x| acc + x ) ) ;
60
+ bench. iter ( || b. iter ( ) . filter ( |& & x| x < 75. ) . sum :: < f32 > ( ) ) ;
55
61
}
56
62
57
63
#[ bench]
58
64
fn iter_filter_sum_2d_stride_u32 ( bench : & mut Bencher ) {
59
65
let a = Array :: linspace ( 0. , 1. , 256 ) . into_shape ( ( 16 , 16 ) ) . unwrap ( ) ;
60
66
let b = a. mapv ( |x| ( x * 100. ) as u32 ) ;
61
67
let b = b. slice ( s ! [ .., ..; 2 ] ) ;
62
- bench. iter ( || b. iter ( ) . filter ( |& & x| x < 75 ) . fold ( 0 , |acc , & x| acc + x ) ) ;
68
+ bench. iter ( || b. iter ( ) . filter ( |& & x| x < 75 ) . sum :: < u32 > ( ) ) ;
63
69
}
64
70
65
71
#[ bench]
66
72
fn iter_filter_sum_2d_stride_f32 ( bench : & mut Bencher ) {
67
73
let a = Array :: linspace ( 0. , 1. , 256 ) . into_shape ( ( 16 , 16 ) ) . unwrap ( ) ;
68
74
let b = a * 100. ;
69
75
let b = b. slice ( s ! [ .., ..; 2 ] ) ;
70
- bench. iter ( || b. iter ( ) . filter ( |& & x| x < 75. ) . fold ( 0. , |acc , & x| acc + x ) ) ;
76
+ bench. iter ( || b. iter ( ) . filter ( |& & x| x < 75. ) . sum :: < f32 > ( ) ) ;
71
77
}
72
78
73
79
const ZIPSZ : usize = 10_000 ;
@@ -190,7 +196,7 @@ fn vector_sum_3_zip_unchecked_manual(bench: &mut Bencher) {
190
196
let mut ap = a. as_ptr ( ) ;
191
197
let mut bp = b. as_ptr ( ) ;
192
198
let mut cp = c. as_mut_ptr ( ) ;
193
- let cend = cp. offset ( c. len ( ) as isize ) ;
199
+ let cend = cp. add ( c. len ( ) ) ;
194
200
while cp != cend {
195
201
* cp. post_inc ( ) += * ap. post_inc ( ) + * bp. post_inc ( ) ;
196
202
}
@@ -310,7 +316,7 @@ fn indexed_iter_3d_dyn(bench: &mut Bencher) {
310
316
fn iter_sum_1d_strided_fold ( bench : & mut Bencher ) {
311
317
let mut a = Array :: < u64 , _ > :: ones ( 10240 ) ;
312
318
a. slice_axis_inplace ( Axis ( 0 ) , Slice :: new ( 0 , None , 2 ) ) ;
313
- bench. iter ( || a. iter ( ) . fold ( 0 , |acc , & x| acc + x ) ) ;
319
+ bench. iter ( || a. iter ( ) . sum :: < u64 > ( ) ) ;
314
320
}
315
321
316
322
#[ bench]
0 commit comments