-
Notifications
You must be signed in to change notification settings - Fork 9
Closed
JuliaSIMD/StrideArraysCore.jl
#51Description
julia> x = [1.0, 2.0, 3.0, 4.0];
julia> y = PtrArray(pointer(x), (StaticInt(2), StaticInt(2)))
2×2 StrideArraysCore.PtrArray{Float64, 2, (1, 2), Tuple{Static.StaticInt{2}, Static.StaticInt{2}}, Tuple{Nothing, Nothing}, Tuple{Static.StaticInt{1}, Static.StaticInt{1}}} with indices static(1):static(2)×static(1):static(2):
1.0 3.0
2.0 4.0
julia> y[1, :]
2-element StrideArraysCore.PtrArray{Float64, 1, (1,), Tuple{Static.StaticInt{2}}, Tuple{StrideArraysCore.StrideReset{Static.StaticInt{2}}}, Tuple{Static.StaticInt{1}}} with indices static(1):static(2):
1.0
2.0
julia> y[2, :]
2-element StrideArraysCore.PtrArray{Float64, 1, (1,), Tuple{Static.StaticInt{2}}, Tuple{StrideArraysCore.StrideReset{Static.StaticInt{2}}}, Tuple{Static.StaticInt{1}}} with indices static(1):static(2):
2.0
3.0Same with dynamic axes sizes:
julia> y = PtrArray(pointer(x), (2, 2))
2×2 StrideArraysCore.PtrArray{Float64, 2, (1, 2), Tuple{Int64, Int64}, Tuple{Nothing, Nothing}, Tuple{Static.StaticInt{1}, Static.StaticInt{1}}}:
1.0 3.0
2.0 4.0
julia> y[1, :]
2-element StrideArraysCore.PtrArray{Float64, 1, (1,), Tuple{Int64}, Tuple{StrideArraysCore.StrideReset{Int64}}, Tuple{Static.StaticInt{1}}}:
1.0
2.0
julia> y[2, :]
2-element StrideArraysCore.PtrArray{Float64, 1, (1,), Tuple{Int64}, Tuple{StrideArraysCore.StrideReset{Int64}}, Tuple{Static.StaticInt{1}}}:
2.0
3.0Same with views:
julia> view(y, 1, :)
2-element StrideArraysCore.PtrArray{Float64, 1, (1,), Tuple{Int64}, Tuple{StrideArraysCore.StrideReset{Int64}}, Tuple{Static.StaticInt{1}}}:
1.0
2.0Interestingly, this works:
julia> y[end, :] .= 0
2-element StrideArraysCore.PtrArray{Float64, 1, (1,), Tuple{Int64}, Tuple{StrideArraysCore.StrideReset{Int64}}, Tuple{Static.StaticInt{1}}}:
0.0
3.0
julia> y
2×2 StrideArraysCore.PtrArray{Float64, 2, (1, 2), Tuple{Int64, Int64}, Tuple{Nothing, Nothing}, Tuple{Static.StaticInt{1}, Static.StaticInt{1}}}:
1.0 3.0
0.0 0.0CC @ranocha
Metadata
Metadata
Assignees
Labels
No labels