hi all, I want to evaluate a function at each index of an array. There is a N dimensional function, and I want to map it onto an N-dimensional array:
fpoly(x::Array{Real,5}) = x[1] + x[2]^2 + x[3] + x[4]^2 + x[5] want to do a = rand(2,2,2,2,2); b = similar(a) for i1 in indices(a,1) for i2 in indices(a,2) ... b[i1,i2,i3,i4,i5] = fpoly(a[i1,i2,i3,i4,i5]) end end... I tried: # actually want to do it inplace @generated function set_poly!{T,N}(a::Array{T,N}) quote @nloops $N i a begin @nref $N a i = @ncall $N fpoly i->a[i] end end end but that fails. I dont get further than: macroexpand(:(@nloops 3 j a begin x = @ncall 3 fpoly i->a[j] end)) *quote # cartesian.jl, line 62:* * for j_3 = indices(a,3) # cartesian.jl, line 63:* * nothing # cartesian.jl, line 64:* * begin # cartesian.jl, line 62:* * for j_2 = indices(a,2) # cartesian.jl, line 63:* * nothing # cartesian.jl, line 64:* * begin # cartesian.jl, line 62:* * for j_1 = indices(a,1) # cartesian.jl, line 63:* * nothing # cartesian.jl, line 64:* * begin # REPL[145], line 2:* * x = fpoly(a[j],a[j],a[j])* * end # cartesian.jl, line 65:* * nothing* * end* * end # cartesian.jl, line 65:* * nothing* * end* * end # cartesian.jl, line 65:* * nothing* * end* *end* *which is a start but how can I get the LHS right the indices of a right?*