@@ -20,15 +20,15 @@ use ndarray::{FoldWhile, Zip};
20
20
#[ bench]
21
21
fn iter_sum_2d_regular ( bench : & mut Bencher ) {
22
22
let a = Array :: < i32 , _ > :: zeros ( ( 64 , 64 ) ) ;
23
- bench. iter ( || a. iter ( ) . fold ( 0 , |acc , & x| acc + x ) ) ;
23
+ bench. iter ( || a. iter ( ) . sum :: < i32 > ( ) ) ;
24
24
}
25
25
26
26
#[ bench]
27
27
fn iter_sum_2d_cutout ( bench : & mut Bencher ) {
28
28
let a = Array :: < i32 , _ > :: zeros ( ( 66 , 66 ) ) ;
29
29
let av = a. slice ( s ! [ 1 ..-1 , 1 ..-1 ] ) ;
30
30
let a = av;
31
- bench. iter ( || a. iter ( ) . fold ( 0 , |acc , & x| acc + x ) ) ;
31
+ bench. iter ( || a. iter ( ) . sum :: < i32 > ( ) ) ;
32
32
}
33
33
34
34
#[ bench]
@@ -43,37 +43,37 @@ fn iter_all_2d_cutout(bench: &mut Bencher) {
43
43
fn iter_sum_2d_transpose ( bench : & mut Bencher ) {
44
44
let a = Array :: < i32 , _ > :: zeros ( ( 66 , 66 ) ) ;
45
45
let a = a. t ( ) ;
46
- bench. iter ( || a. iter ( ) . fold ( 0 , |acc , & x| acc + x ) ) ;
46
+ bench. iter ( || a. iter ( ) . sum :: < i32 > ( ) ) ;
47
47
}
48
48
49
49
#[ bench]
50
50
fn iter_filter_sum_2d_u32 ( bench : & mut Bencher ) {
51
51
let a = Array :: linspace ( 0. , 1. , 256 ) . into_shape ( ( 16 , 16 ) ) . unwrap ( ) ;
52
52
let b = a. mapv ( |x| ( x * 100. ) as u32 ) ;
53
- 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 > ( ) ) ;
54
54
}
55
55
56
56
#[ bench]
57
57
fn iter_filter_sum_2d_f32 ( bench : & mut Bencher ) {
58
58
let a = Array :: linspace ( 0. , 1. , 256 ) . into_shape ( ( 16 , 16 ) ) . unwrap ( ) ;
59
59
let b = a * 100. ;
60
- 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 > ( ) ) ;
61
61
}
62
62
63
63
#[ bench]
64
64
fn iter_filter_sum_2d_stride_u32 ( bench : & mut Bencher ) {
65
65
let a = Array :: linspace ( 0. , 1. , 256 ) . into_shape ( ( 16 , 16 ) ) . unwrap ( ) ;
66
66
let b = a. mapv ( |x| ( x * 100. ) as u32 ) ;
67
67
let b = b. slice ( s ! [ .., ..; 2 ] ) ;
68
- 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 > ( ) ) ;
69
69
}
70
70
71
71
#[ bench]
72
72
fn iter_filter_sum_2d_stride_f32 ( bench : & mut Bencher ) {
73
73
let a = Array :: linspace ( 0. , 1. , 256 ) . into_shape ( ( 16 , 16 ) ) . unwrap ( ) ;
74
74
let b = a * 100. ;
75
75
let b = b. slice ( s ! [ .., ..; 2 ] ) ;
76
- 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 > ( ) ) ;
77
77
}
78
78
79
79
const ZIPSZ : usize = 10_000 ;
@@ -196,7 +196,7 @@ fn vector_sum_3_zip_unchecked_manual(bench: &mut Bencher) {
196
196
let mut ap = a. as_ptr ( ) ;
197
197
let mut bp = b. as_ptr ( ) ;
198
198
let mut cp = c. as_mut_ptr ( ) ;
199
- let cend = cp. offset ( c. len ( ) as isize ) ;
199
+ let cend = cp. add ( c. len ( ) ) ;
200
200
while cp != cend {
201
201
* cp. post_inc ( ) += * ap. post_inc ( ) + * bp. post_inc ( ) ;
202
202
}
@@ -316,7 +316,7 @@ fn indexed_iter_3d_dyn(bench: &mut Bencher) {
316
316
fn iter_sum_1d_strided_fold ( bench : & mut Bencher ) {
317
317
let mut a = Array :: < u64 , _ > :: ones ( 10240 ) ;
318
318
a. slice_axis_inplace ( Axis ( 0 ) , Slice :: new ( 0 , None , 2 ) ) ;
319
- bench. iter ( || a. iter ( ) . fold ( 0 , |acc , & x| acc + x ) ) ;
319
+ bench. iter ( || a. iter ( ) . sum :: < u64 > ( ) ) ;
320
320
}
321
321
322
322
#[ bench]
0 commit comments