Hello,
I am trying to use tmap! from OhMyThreads.jl on a view of an array. When running the code normally, it works fine, but it fails in testing when run with check_bounds=yes, because views have cartesian index style. Is this usage of the function dangerous, or is there another way i should implement this?
julia> a = [1 2;3 4]
2×2 Matrix{Int64}:
1 2
3 4
julia> b = [5 6;7 8]
2×2 Matrix{Int64}:
5 6
7 8
julia> tmap!(x->2*x, a, @view b[[2,1],:])
ERROR: The indices of the input arrays must match the indices of the output array.
Stacktrace:
[1] error(s::String)
@ Base .\error.jl:35
[2] check_all_have_same_indices(Arrs::Tuple{Matrix{Int64}, SubArray{Int64, 2, Matrix{…}, Tuple{…}, false}})
@ OhMyThreads.Implementation .julia\packages\OhMyThreads\P7uYA\src\implementation.jl:337
[3] #tmap!#143
@ .julia\packages\OhMyThreads\P7uYA\src\implementation.jl:554 [inlined]
[4] tmap!(::Function, ::Matrix{Int64}, ::SubArray{Int64, 2, Matrix{Int64}, Tuple{Vector{…}, Base.Slice{…}}, false})
@ OhMyThreads.Implementation .julia\packages\OhMyThreads\P7uYA\src\implementation.jl:542
[5] top-level scope
@ REPL[20]:1
Some type information was truncated. Use `show(err)` to see complete types.
julia> eachindex(@view b[[2,1],:])
CartesianIndices((2, 2))
julia> eachindex(a)
Base.OneTo(4)