We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
1 parent a1c89dc commit 0c73befCopy full SHA for 0c73bef
src/blockbroadcast.jl
@@ -276,3 +276,13 @@ for op in (:*, :\)
276
broadcasted(::AbstractBlockStyle, ::typeof($op), a::AbstractArray{T}, b::Ones{V}) where {T,V} = LinearAlgebra.copy_oftype(a, Base.promote_op(*, T, V))
277
end
278
279
+
280
281
282
+###
283
+# Ranges
284
285
286
+broadcasted(::DefaultArrayStyle{1}, ::typeof(+), r::AbstractBlockedUnitRange, x::Integer) = _BlockedUnitRange(first(r) + x, blocklasts(r) .+ x)
287
+broadcasted(::DefaultArrayStyle{1}, ::typeof(+), x::Integer, r::AbstractBlockedUnitRange) = _BlockedUnitRange(x + first(r), x .+ blocklasts(r))
288
+broadcasted(::DefaultArrayStyle{1}, ::typeof(-), r::AbstractBlockedUnitRange, x::Integer) = _BlockedUnitRange(first(r) - x, blocklasts(r) .- x)
test/test_blockbroadcast.jl
@@ -193,6 +193,24 @@ using StaticArrays
193
@test blockisequal(axes(A .* Ones(axes(A))), axes(Ones(axes(A)) .* A), axes(A .* ones(6)))
194
195
196
+ @testset "Blocked unit range broadcast" begin
197
+ r = blockedrange([2,3])
198
+ @test r .+ 3 == blockedrange(4, [2,3])
199
+ @test blocklengths(r .+ 3) == [2,3]
200
+ @test 3 .+ r == blockedrange(4, [2,3])
201
+ @test blocklengths(3 .+ r .+ 3) == [2,3]
202
+ @test r .- 3 == blockedrange(-2, [2,3])
203
+ @test blocklengths(r .- 3) == [2,3]
204
205
+ r = blockedrange(2, [2,3])
206
+ @test r .+ 3 == blockedrange(5, [2,3])
207
208
+ @test 3 .+ r == blockedrange(5, [2,3])
209
210
+ @test r .- 3 == blockedrange(-1, [2,3])
211
212
+ end
213
214
@testset "type inference" begin
215
u = BlockArray(randn(5), [2,3]);
216
A = zeros(size(u))
0 commit comments