I’m beginning programming in julia. I’m trying to vectorize a loop that generate V, a vector that describes data of a sparse matrix which support indices are defined by Vector{Int64} I and J.
u, K, v are contiguous f64 arrays
V = Vector{Float64}(undef, length(I))
@turbo for k in 1:(length(I))
i, j = I[k], J[k]
V[k] = u[i] * K[i,j] * v[j]
end
I get the message :
`LoopVectorization.check_args` on your inputs failed; running fallback `@inbounds @fastmath` loop instead.
│ Use `warn_check_args=false`, e.g. `@turbo warn_check_args=false ...`, to disable this warning.
I’m thinking that the problem is I browse u, K, v along I and J values which might be not supported by LoopVectorization.jl. I don’t have any knowledge on LLVM, maybe what I attempt is just impossible and vectorizing a loop that call getindex with indices depending on values of other arrays does’nt make any sense.