| 37 @assert(isodd(k) && isodd(𝓁)) |
37 @assert(isodd(k) && isodd(𝓁)) |
| 38 |
38 |
| 39 res = similar(b) |
39 res = similar(b) |
| 40 |
40 |
| 41 Threads.@threads for i=1:n |
41 Threads.@threads for i=1:n |
| 42 for j=1:m |
42 @inbounds for j=1:m |
| 43 tmp = 0.0 |
43 tmp = 0.0 |
| 44 it₁ = inside(i, a₁, b₁, 1, n) |
44 it₁ = inside(i, a₁, b₁, 1, n) |
| 45 it₂ = inside(j, a₂, b₂, 1, m) |
45 it₂ = inside(j, a₂, b₂, 1, m) |
| 46 @inbounds for p=it₁ |
46 for p=it₁ |
| 47 @simd for q=it₂ |
47 @simd for q=it₂ |
| 48 tmp += kp[p-o₁, q-o₂]*b[i+p,j+q] |
48 tmp += kp[p-o₁, q-o₂]*b[i+p,j+q] |
| 49 end |
49 end |
| 50 end |
50 end |
| 51 @inbounds res[i, j] = tmp |
51 res[i, j] = tmp |
| 52 end |
52 end |
| 53 end |
53 end |
| 54 |
54 |
| 55 return res |
55 return res |
| 56 end |
56 end |