@@ -26,39 +26,54 @@ to_index(::BlockRange) = throw(ArgumentError("BlockRange must be converted by to
2626
2727@inline to_indices (A, inds, I:: Tuple{Block{1}, Vararg{Any}} ) =
2828 (unblock (A, inds, I), to_indices (A, _maybetail (inds), tail (I))... )
29- @inline to_indices (A, inds, I:: Tuple{BlockRange{1,R}, Vararg{Any}} ) where R =
29+ @inline to_indices (A, inds, I:: Tuple{BlockRange{1}, Vararg{Any}} ) =
30+ (unblock (A, inds, I), to_indices (A, _maybetail (inds), tail (I))... )
31+ @inline to_indices (A, inds, I:: Tuple{AbstractVector{<:Block{1}}, Vararg{Any}} ) =
32+ (unblock (A, inds, I), to_indices (A, _maybetail (inds), tail (I))... )
33+ @inline to_indices (A, inds, I:: Tuple{AbstractVector{<:BlockRange{1}}, Vararg{Any}} ) =
34+ (unblock (A, inds, I), to_indices (A, _maybetail (inds), tail (I))... )
35+ @inline to_indices (A, inds, I:: Tuple {AbstractVector{<: AbstractVector{<:Block{1}} }, Vararg{Any}}) =
3036 (unblock (A, inds, I), to_indices (A, _maybetail (inds), tail (I))... )
3137@inline to_indices (A, inds, I:: Tuple{BlockIndex{1}, Vararg{Any}} ) =
3238 (inds[1 ][I[1 ]], to_indices (A, _maybetail (inds), tail (I))... )
33- @inline to_indices (A, inds, I:: Tuple{BlockIndexRange{1,R}, Vararg{Any}} ) where R =
34- (unblock (A, inds, I), to_indices (A, _maybetail (inds), tail (I))... )
35- @inline to_indices (A, inds, I:: Tuple{AbstractVector{Block{1,R}}, Vararg{Any}} ) where R =
39+ @inline to_indices (A, inds, I:: Tuple{BlockIndexRange{1}, Vararg{Any}} ) =
3640 (unblock (A, inds, I), to_indices (A, _maybetail (inds), tail (I))... )
3741@inline to_indices (A, inds, I:: Tuple{AbstractVector{<:BlockIndex{1}}, Vararg{Any}} ) =
3842 (unblock (A, inds, I), to_indices (A, _maybetail (inds), tail (I))... )
3943@inline to_indices (A, inds, I:: Tuple{AbstractVector{<:BlockIndexRange{1}}, Vararg{Any}} ) =
4044 (unblock (A, inds, I), to_indices (A, _maybetail (inds), tail (I))... )
45+ @inline to_indices (A, inds, I:: Tuple {AbstractVector{<: AbstractVector{<:BlockIndex{1}} }, Vararg{Any}}) =
46+ (unblock (A, inds, I), to_indices (A, _maybetail (inds), tail (I))... )
47+ @inline to_indices (A, inds, I:: Tuple {AbstractVector{<: AbstractVector{<:BlockIndexRange{1}} }, Vararg{Any}}) =
48+ (unblock (A, inds, I), to_indices (A, _maybetail (inds), tail (I))... )
49+ @inline to_indices (A, inds, I:: Tuple {AbstractVector{<: AbstractVector{<:AbstractVector{<:BlockIndex{1}}} }, Vararg{Any}}) =
50+ (unblock (A, inds, I), to_indices (A, _maybetail (inds), tail (I))... )
4151
4252
4353# splat out higher dimensional blocks
4454# this mimics view of a CartesianIndex
4555@inline to_indices (A, inds, I:: Tuple{Block, Vararg{Any}} ) =
4656 to_indices (A, inds, (Block .(I[1 ]. n)... , tail (I)... ))
57+ @inline to_indices (A, inds, I:: Tuple{BlockRange, Vararg{Any}} ) =
58+ to_indices (A, inds, (BlockRange .(tuple .(I[1 ]. indices))... , tail (I)... ))
4759@inline to_indices (A, inds, I:: Tuple{BlockIndex, Vararg{Any}} ) =
4860 to_indices (A, inds, (BlockIndex .(I[1 ]. I, I[1 ]. α)... , tail (I)... ))
4961@inline to_indices (A, inds, I:: Tuple{BlockIndexRange, Vararg{Any}} ) =
5062 to_indices (A, inds, (BlockIndexRange .(Block .(I[1 ]. block. n), tuple .(I[1 ]. indices))... , tail (I)... ))
51- @inline to_indices (A, inds, I:: Tuple{BlockRange, Vararg{Any}} ) =
52- to_indices (A, inds, (BlockRange .(tuple .(I[1 ]. indices))... , tail (I)... ))
5363
5464# In 0.7, we need to override to_indices to avoid calling linearindices
5565@inline to_indices (A, I:: Tuple{BlockIndexRange, Vararg{Any}} ) = to_indices (A, axes (A), I)
5666@inline to_indices (A, I:: Tuple{BlockIndex, Vararg{Any}} ) = to_indices (A, axes (A), I)
5767@inline to_indices (A, I:: Tuple{Block, Vararg{Any}} ) = to_indices (A, axes (A), I)
5868@inline to_indices (A, I:: Tuple{BlockRange, Vararg{Any}} ) = to_indices (A, axes (A), I)
5969@inline to_indices (A, I:: Tuple{AbstractVector{<:Block{1}}, Vararg{Any}} ) = to_indices (A, axes (A), I)
70+ @inline to_indices (A, I:: Tuple{AbstractVector{<:BlockRange{1}}, Vararg{Any}} ) = to_indices (A, axes (A), I)
71+ @inline to_indices (A, I:: Tuple {AbstractVector{<: AbstractVector{<:Block{1}} }, Vararg{Any}}) = to_indices (A, axes (A), I)
6072@inline to_indices (A, I:: Tuple{AbstractVector{<:BlockIndex{1}}, Vararg{Any}} ) = to_indices (A, axes (A), I)
6173@inline to_indices (A, I:: Tuple{AbstractVector{<:BlockIndexRange{1}}, Vararg{Any}} ) = to_indices (A, axes (A), I)
74+ @inline to_indices (A, I:: Tuple {AbstractVector{<: AbstractVector{<:BlockIndex{1}} }, Vararg{Any}}) = to_indices (A, axes (A), I)
75+ @inline to_indices (A, I:: Tuple {AbstractVector{<: AbstractVector{<:BlockIndexRange{1}} }, Vararg{Any}}) = to_indices (A, axes (A), I)
76+ @inline to_indices (A, I:: Tuple {AbstractVector{<: AbstractVector{<:AbstractVector{<:BlockIndex{1}}} }, Vararg{Any}}) = to_indices (A, axes (A), I)
6277
6378# # BlockedLogicalIndex
6479# Blocked version of `LogicalIndex`:
0 commit comments