@@ -26,39 +26,54 @@ to_index(::BlockRange) = throw(ArgumentError("BlockRange must be converted by to
26
26
27
27
@inline to_indices (A, inds, I:: Tuple{Block{1}, Vararg{Any}} ) =
28
28
(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}}) =
30
36
(unblock (A, inds, I), to_indices (A, _maybetail (inds), tail (I))... )
31
37
@inline to_indices (A, inds, I:: Tuple{BlockIndex{1}, Vararg{Any}} ) =
32
38
(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}} ) =
36
40
(unblock (A, inds, I), to_indices (A, _maybetail (inds), tail (I))... )
37
41
@inline to_indices (A, inds, I:: Tuple{AbstractVector{<:BlockIndex{1}}, Vararg{Any}} ) =
38
42
(unblock (A, inds, I), to_indices (A, _maybetail (inds), tail (I))... )
39
43
@inline to_indices (A, inds, I:: Tuple{AbstractVector{<:BlockIndexRange{1}}, Vararg{Any}} ) =
40
44
(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))... )
41
51
42
52
43
53
# splat out higher dimensional blocks
44
54
# this mimics view of a CartesianIndex
45
55
@inline to_indices (A, inds, I:: Tuple{Block, Vararg{Any}} ) =
46
56
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)... ))
47
59
@inline to_indices (A, inds, I:: Tuple{BlockIndex, Vararg{Any}} ) =
48
60
to_indices (A, inds, (BlockIndex .(I[1 ]. I, I[1 ]. α)... , tail (I)... ))
49
61
@inline to_indices (A, inds, I:: Tuple{BlockIndexRange, Vararg{Any}} ) =
50
62
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)... ))
53
63
54
64
# In 0.7, we need to override to_indices to avoid calling linearindices
55
65
@inline to_indices (A, I:: Tuple{BlockIndexRange, Vararg{Any}} ) = to_indices (A, axes (A), I)
56
66
@inline to_indices (A, I:: Tuple{BlockIndex, Vararg{Any}} ) = to_indices (A, axes (A), I)
57
67
@inline to_indices (A, I:: Tuple{Block, Vararg{Any}} ) = to_indices (A, axes (A), I)
58
68
@inline to_indices (A, I:: Tuple{BlockRange, Vararg{Any}} ) = to_indices (A, axes (A), I)
59
69
@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)
60
72
@inline to_indices (A, I:: Tuple{AbstractVector{<:BlockIndex{1}}, Vararg{Any}} ) = to_indices (A, axes (A), I)
61
73
@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)
62
77
63
78
# # BlockedLogicalIndex
64
79
# Blocked version of `LogicalIndex`:
0 commit comments