Skip to content
Snippets Groups Projects
Verified Commit a8994fc5 authored by Dorian Stoll's avatar Dorian Stoll
Browse files

rodinia-srad: julia: Fix iteration loop

parent 1e859bc2
No related branches found
No related tags found
No related merge requests found
......@@ -75,58 +75,58 @@ function main(args)
sum2 += tmp * tmp
end
end
end
meanROI::Float32 = sum / size_R
varROI::Float32 = (sum / size_R) - meanROI * meanROI
q0sqr::Float32 = varROI / (meanROI * meanROI)
meanROI::Float32 = sum / size_R
varROI::Float32 = (sum / size_R) - meanROI * meanROI
q0sqr::Float32 = varROI / (meanROI * meanROI)
@sync @parallel for i in 1:size(J,1)
for j in size(J,2)
Jc = J[i,j]
@sync @parallel for i in 1:size(J,1)
for j in size(J,2)
Jc = J[i,j]
# directional derivates
dN[i,j] = J[iN[i],j] - Jc
dS[i,j] = J[iS[i],j] - Jc
dW[i,j] = J[i,jW[j]] - Jc
dE[i,j] = J[i,jE[j]] - Jc
# directional derivates
dN[i,j] = J[iN[i],j] - Jc
dS[i,j] = J[iS[i],j] - Jc
dW[i,j] = J[i,jW[j]] - Jc
dE[i,j] = J[i,jE[j]] - Jc
G2 = (dN[i,j] * dN[i,j] + dS[i,j] * dS[i,j] + dW[i,j] * dW[i,j] +
dE[i,j] * dE[i,j]) /
(Jc * Jc)
G2 = (dN[i,j] * dN[i,j] + dS[i,j] * dS[i,j] + dW[i,j] * dW[i,j] +
dE[i,j] * dE[i,j]) /
(Jc * Jc)
L = (dN[i,j] + dS[i,j] + dW[i,j] + dE[i,j]) / Jc
L = (dN[i,j] + dS[i,j] + dW[i,j] + dE[i,j]) / Jc
num = (0.5 * G2) - ((1.0 / 16.0) * (L * L))
den = 1 + (0.25 * L)
qsqr = num / (den * den)
num = (0.5 * G2) - ((1.0 / 16.0) * (L * L))
den = 1 + (0.25 * L)
qsqr = num / (den * den)
# diffusion coefficent (equ 33)
den = (qsqr - q0sqr) / (q0sqr * (1 + q0sqr))
c[i,j] = 1.0 / (1.0 + den)
# diffusion coefficent (equ 33)
den = (qsqr - q0sqr) / (q0sqr * (1 + q0sqr))
c[i,j] = 1.0 / (1.0 + den)
# saturate diffusion coefficent
if (c[i,j] < 0)
c[i,j] = 0
elseif (c[i,j] > 1)
c[i,j] = 1
# saturate diffusion coefficent
if (c[i,j] < 0)
c[i,j] = 0
elseif (c[i,j] > 1)
c[i,j] = 1
end
end
end
end
@sync @parallel for i in 1:size(J,1)
for j in 1:size(J,2)
# diffusion coefficient
cN = c[i,j]
cS = c[iS[i],j]
cW = c[i,j]
cE = c[i,jE[j]]
@sync @parallel for i in 1:size(J,1)
for j in 1:size(J,2)
# diffusion coefficient
cN = c[i,j]
cS = c[iS[i],j]
cW = c[i,j]
cE = c[i,jE[j]]
# divergence (equ 58)
D = cN * dN[i,j] + cS * dS[i,j] + cW * dW[i,j] + cE * dE[i,j]
# divergence (equ 58)
D = cN * dN[i,j] + cS * dS[i,j] + cW * dW[i,j] + cE * dE[i,j]
# image update (equ 61)
J[i,j] += 0.25 * lambda * D
# image update (equ 61)
J[i,j] += 0.25 * lambda * D
end
end
end
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment