@@ -54,6 +54,19 @@ def SETUP():
5454 print ("{:45}{:<15.6f}{:<15.6f}" .format ("Contiguous access, vectorization" , elapsed_time , average ))
5555
5656
57+ array1 , array2 , buffer_array = SETUP ()
58+ elapsed_time = 0.0
59+ for _ in range (N ):
60+ start = time .time ()
61+
62+ buffer_array [:] = array1 * array2 + array1 * array2
63+
64+ end = time .time ()
65+ elapsed_time += end - start
66+ average = elapsed_time / N
67+ print ("{:45}{:<15.6f}{:<15.6f}" .format ("Pure Numpy arithmetic with [:] onthe LHS" , elapsed_time , average ))
68+
69+
5770 array1 , array2 , buffer_array = SETUP ()
5871 elapsed_time = 0.0
5972 for _ in range (N ):
@@ -64,7 +77,7 @@ def SETUP():
6477 end = time .time ()
6578 elapsed_time += end - start
6679 average = elapsed_time / N
67- print ("{:45}{:<15.6f}{:<15.6f}" .format ("Pure Numpy arithmetic" , elapsed_time , average ))
80+ print ("{:45}{:<15.6f}{:<15.6f}" .format ("Pure Numpy arithmetic, no colon " , elapsed_time , average ))
6881
6982
7083 array1 , array2 , buffer_array = SETUP ()
@@ -78,3 +91,73 @@ def SETUP():
7891 elapsed_time += end - start
7992 average = elapsed_time / N
8093 print ("{:45}{:<15.6f}{:<15.6f}" .format ("numexpr" , elapsed_time , average ))
94+
95+
96+ # Iterating over difference indeces...
97+
98+ print ("Iterating over a difference index in a 5D array..." )
99+ print (" array[0,1,2,3,4]" )
100+
101+ DIM = 40
102+
103+ shape = ( DIM , DIM , DIM , DIM , DIM )
104+ array1 = np .ones (shape )
105+
106+ elapsed_time = 0.0
107+ for _ in range (N ):
108+ start = time .time ()
109+
110+ for i in range (DIM ):
111+ a = array1 [:,:,:,:,i ] + 1
112+
113+ end = time .time ()
114+ elapsed_time += end - start
115+ average = elapsed_time / N
116+ print ("{:45}{:<15.6f}{:<15.6f}" .format ("4" , elapsed_time , average ))
117+
118+ elapsed_time = 0.0
119+ for _ in range (N ):
120+ start = time .time ()
121+
122+ for i in range (DIM ):
123+ a = array1 [:,:,:,i ,:] + 1
124+
125+ end = time .time ()
126+ elapsed_time += end - start
127+ average = elapsed_time / N
128+ print ("{:45}{:<15.6f}{:<15.6f}" .format ("3" , elapsed_time , average ))
129+
130+ elapsed_time = 0.0
131+ for _ in range (N ):
132+ start = time .time ()
133+ for i in range (DIM ):
134+ a = array1 [:,:,i ,:,:] + 1
135+
136+ end = time .time ()
137+ elapsed_time += end - start
138+ average = elapsed_time / N
139+ print ("{:45}{:<15.6f}{:<15.6f}" .format ("2" , elapsed_time , average ))
140+
141+ elapsed_time = 0.0
142+ for _ in range (N ):
143+ start = time .time ()
144+
145+ for i in range (DIM ):
146+ a = array1 [:,i ,:,:,:] + 1
147+
148+ end = time .time ()
149+ elapsed_time += end - start
150+ average = elapsed_time / N
151+ print ("{:45}{:<15.6f}{:<15.6f}" .format ("1" , elapsed_time , average ))
152+
153+ elapsed_time = 0.0
154+ for _ in range (N ):
155+ start = time .time ()
156+
157+ for i in range (DIM ):
158+ a = array1 [i ,:,:,:,:] + 1
159+
160+ end = time .time ()
161+ elapsed_time += end - start
162+ average = elapsed_time / N
163+ print ("{:45}{:<15.6f}{:<15.6f}" .format ("0" , elapsed_time , average ))
0 commit comments