@@ -5,7 +5,18 @@ A `Block` is simply a wrapper around a set of indices or enums so that it can be
55indexing a `AbstractBlockArray` with a `Block` the a block at that block index will be returned instead of
66a single element.
77
8+ It can be constructed and used to index into `BlockArrays` in the following manner:
9+
810```jldoctest
11+ julia> Block(1)
12+ Block(1)
13+
14+ julia> Block(1, 2)
15+ Block(1, 2)
16+
17+ julia> Block((Block(1), Block(2)))
18+ Block(1, 2)
19+
920julia> A = BlockArray(ones(2,3), [1, 1], [2, 1])
10212×2-blocked 2×3 BlockMatrix{Float64}:
1122 1.0 1.0 │ 1.0
119130A `BlockIndex` is an index which stores a global index in two parts: the block
120131and the offset index into the block.
121132
122- It can be used to index into `BlockArrays` in the following manner:
133+ It can be constructed and used to index into `BlockArrays` in the following manner:
123134
124135```jldoctest
136+ julia> BlockIndex((1,2), (3,4))
137+ Block(1, 2)[3, 4]
138+
139+ julia> Block(1)[3] === BlockIndex((1), (3))
140+ true
141+
142+ julia> Block(1,2)[3,4] === BlockIndex((1,2), (3,4))
143+ true
144+
145+ julia> BlockIndex((Block(1)[3], Block(2)[4]))
146+ Block(1, 2)[3, 4]
147+
125148julia> arr = Array(reshape(1:25, (5,5)));
126149
127150julia> a = BlockedArray(arr, [3,2], [1,4])
@@ -133,10 +156,10 @@ julia> a = BlockedArray(arr, [3,2], [1,4])
133156 4 │ 9 14 19 24
134157 5 │ 10 15 20 25
135158
136- julia> a[BlockIndex(( 1,2), ( 1,2)) ]
159+ julia> a[Block( 1,2)[ 1,2] ]
13716011
138161
139- julia> a[BlockIndex(( 2,2), ( 2,3)) ]
162+ julia> a[Block( 2,2)[ 2,3] ]
14016320
141164```
142165"""
196219"""
197220 BlockIndexRange(block, startind:stopind)
198221
199- represents a cartesian range inside a block.
222+ Represents a cartesian range inside a block.
223+
224+ It can be constructed and used to index into `BlockArrays` in the following manner:
225+
226+ ```jldoctest
227+ julia> BlockIndexRange(Block(1,2), (2:3,3:4))
228+ Block(1, 2)[2:3, 3:4]
229+
230+ julia> Block(1)[2:3] === BlockIndexRange(Block(1), 2:3)
231+ true
232+
233+ julia> Block(1,2)[2:3,3:4] === BlockIndexRange(Block(1,2), (2:3,3:4))
234+ true
235+
236+ julia> BlockIndexRange((Block(1)[2:3], Block(2)[3:4]))
237+ Block(1, 2)[2:3, 3:4]
238+
239+ julia> arr = Array(reshape(1:25, (5,5)));
240+
241+ julia> a = BlockedArray(arr, [3,2], [1,4])
242+ 2×2-blocked 5×5 BlockedMatrix{Int64}:
243+ 1 │ 6 11 16 21
244+ 2 │ 7 12 17 22
245+ 3 │ 8 13 18 23
246+ ───┼────────────────
247+ 4 │ 9 14 19 24
248+ 5 │ 10 15 20 25
249+
250+ julia> a[Block(1,2)[1:2,2:3]]
251+ 2×2 Matrix{Int64}:
252+ 11 16
253+ 12 17
254+
255+ julia> a[Block(2,2)[1:2,3:4]]
256+ 2×2 Matrix{Int64}:
257+ 19 24
258+ 20 25
259+ ```
200260"""
201261BlockIndexRange
202262
@@ -363,6 +423,12 @@ julia> BlockRange((2, 2)) |> collect # number of elements, starting at 1
363423
364424julia> Block(1):Block(2)
365425BlockRange((1:2,))
426+
427+ julia> Block.(1:2)
428+ BlockRange((1:2,))
429+
430+ julia> BlockRange((Block.(1:2), Block.(3:4)))
431+ BlockRange((1:2, 3:4))
366432```
367433"""
368434BlockRange
0 commit comments