Why is the order of these loops barely affects the time?
N=100
x=rand(N,N,N)
y=rand(N,N,N)
function abc(x::Array{Float64,3},y::Array{Float64,3})
for a=1:N
for b=1:N
for c=1:N
y[a,b,c]=x[a,b,c]
end
end
end
end
function acb(x::Array{Float64,3},y::Array{Float64,3})
for a=1:N
for c=1:N
for b=1:N
y[a,b,c]=x[a,b,c]
end
end
end
end
function bac(x::Array{Float64,3},y::Array{Float64,3})
for b=1:N
for a=1:N
for c=1:N
y[a,b,c]=x[a,b,c]
end
end
end
end
function bca(x::Array{Float64,3},y::Array{Float64,3})
for b=1:N
for c=1:N
for a=1:N
y[a,b,c]=x[a,b,c]
end
end
end
end
function cab(x::Array{Float64,3},y::Array{Float64,3})
for c=1:N
for a=1:N
for b=1:N
y[a,b,c]=x[a,b,c]
end
end
end
end
function cba(x::Array{Float64,3},xx::Array{Float64,3})
for c=1:N
for b=1:N
for a=1:N
y[a,b,c]=x[a,b,c]
end
end
end
end
@time abc(x,y)
@time acb(x,y)
@time bac(x,y)
@time bca(x,y)
@time cab(x,y)
@time cba(x,y)