src/Translate.jl

changeset 32
41d13bf7d637
parent 31
62645d05985a
--- a/src/Translate.jl	Fri Dec 27 21:41:52 2019 +0200
+++ b/src/Translate.jl	Sat Dec 28 02:10:06 2019 +0200
@@ -6,6 +6,8 @@
 
 module Translate
 
+using AlgTools.Util: @threadsif
+
 ##########
 # Exports
 ##########
@@ -96,23 +98,25 @@
 # Translation
 ##############
 
-function translate_image!(x, z, u::DisplacementFull)
+function translate_image!(x, z, u::DisplacementFull;
+                          threads::Bool=false)
     @assert(size(u, 1)==2 && size(x)==size(u)[2:end] && size(x)==size(z))
 
-    Threads.@threads for i=1:size(x, 1)
-        @inbounds for j=1:size(x, 2)
+    @threadsif threads for i=1:size(x, 1)
+        for j=1:size(x, 2)
             x[i, j] = interpolate2d_quadrants(z, i - u[1, i, j], j - u[2, i, j])
         end
     end
 end
 
-function translate_image!(x, z, u::DisplacementConstant)
+function translate_image!(x, z, u::DisplacementConstant;
+                          threads::Bool=false)
     @assert(size(u)==(2,) && size(x)==size(z))
 
     @inbounds a, b = u[1], u[2]
 
-    Threads.@threads for i=1:size(x, 1)
-        @inbounds for j=1:size(x, 2)
+    @threadsif threads for i=1:size(x, 1)
+        for j=1:size(x, 2)
             x[i, j] = interpolate2d_quadrants(z, i - a, j - b)
         end
     end
@@ -122,7 +126,8 @@
 # Subimage extraction
 ######################
 
-function extract_subimage!(b, im, v::DisplacementConstant)
+function extract_subimage!(b, im, v::DisplacementConstant;
+                           threads::Bool=false)
     (imx, imy) = size(im)
     (bx, by) = size(b)
 
@@ -141,7 +146,7 @@
         b[qx+1:bx, :] .= 0
     end
 
-    Threads.@threads for i=px:qx
+    @threadsif false for i=px:qx
         @inbounds begin
             b[i, 1:py-1] .= 0
             b[i, qy+1:by] .= 0

mercurial