Skip to content

Commit 9d16919

Browse files
committed
Specialize Base.unsafe_view for ArrayOfSimilarArrays
1 parent b4c185d commit 9d16919

File tree

1 file changed

+6
-0
lines changed

1 file changed

+6
-0
lines changed

src/array_of_similar_arrays.jl

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -135,6 +135,12 @@ Base.@propagate_inbounds Base.getindex(A::ArrayOfSimilarArrays{T,M,N}, idxs::Var
135135
Base.@propagate_inbounds Base.setindex!(A::ArrayOfSimilarArrays{T,M,N}, x::AbstractArray{U,M}, idxs::Vararg{Integer,N}) where {T,M,N,U} =
136136
setindex!(A.data, x, _ncolons(Val{M}())..., idxs...)
137137

138+
Base.@propagate_inbounds function Base.unsafe_view(A::ArrayOfSimilarArrays{T,M,N}, idxs::Vararg{Union{Real, AbstractArray},N}) where {T,M,N}
139+
dataview = view(A.data, _ncolons(Val{M}())..., idxs...)
140+
L = length(size(dataview))
141+
N_view = L - M
142+
ArrayOfSimilarArrays{T,M,N_view}(dataview)
143+
end
138144

139145

140146
@inline function Base.resize!(A::ArrayOfSimilarArrays{T,M,N}, dims::Vararg{Integer,N}) where {T,M,N}

0 commit comments

Comments
 (0)