Skip to content

Commit bd06b1b

Browse files
committed
Add some tests.
1 parent b0cc779 commit bd06b1b

File tree

1 file changed

+53
-0
lines changed

1 file changed

+53
-0
lines changed

test/outer_reductions.jl

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
using OffsetArrays
12

23
function reg_term(omega, B = size(omega,2); alpha=0.01)
34
reg = 0.0
@@ -188,6 +189,52 @@ function tk_base(v::Vector{T}, c_::Vector{T}, n::Int) where {T}
188189
end
189190
l00 + l01 + l10 + l11
190191
end
192+
193+
194+
function noturbosum(x, kern)
195+
ks = zero(eltype(x))
196+
@inbounds @fastmath for i=2:size(x,1)-1
197+
for j in axes(kern,1), m in axes(kern,2)
198+
ks += x[i+j, i+m] * kern[j,m]
199+
end
200+
end
201+
ks
202+
end
203+
function outersum(x, kern)
204+
ks = zero(eltype(x))
205+
@turbo for i=2:size(x,1)-1
206+
for j in axes(kern,1), m in axes(kern,2)
207+
ks += x[i+j, i+m] * kern[j,m]
208+
end
209+
end
210+
ks
211+
end
212+
function insum(x, kern)
213+
ks = zero(eltype(x))
214+
@turbo for i=2:size(x,1)-1
215+
s1 = zero(eltype(x))
216+
for j in axes(kern,1), m in axes(kern,2)
217+
s1 += x[i+j, i+m] * kern[j,m]
218+
end
219+
ks += s1
220+
end
221+
ks
222+
end
223+
function in2sum(x, kern)
224+
ks = zero(eltype(x))
225+
@turbo for i=2:size(x,1)-1
226+
for j in axes(kern,1)
227+
s0 = zero(eltype(x))
228+
for m in axes(kern,2)
229+
s0 += x[i+j, i+m] * kern[j,m]
230+
end
231+
ks += s0
232+
end
233+
end
234+
ks
235+
end
236+
237+
191238
@testset "Outer Reductions" begin
192239
for T [Float32,Float64,Int32,Int64]
193240
test_awmean(T)
@@ -201,5 +248,11 @@ end
201248
omega = rand(87,87);
202249
@test reg_term(omega) reg_term_turbo(omega)
203250

251+
x = rand(100,100);
252+
kern = OffsetArray(rand(3,3),-2,-2);
253+
s = noturbosum(x, kern)
254+
@test s outersum(x, kern)
255+
@test s insum(x, kern)
256+
@test s in2sum(x, kern)
204257
end
205258

0 commit comments

Comments
 (0)