Skip to content

Commit 1edf1bd

Browse files
committed
Support Ref
1 parent 21172fc commit 1edf1bd

File tree

2 files changed

+7
-0
lines changed

2 files changed

+7
-0
lines changed

src/fillbroadcast.jl

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,8 @@ end
5151
broadcasted(::DefaultArrayStyle{N}, op, r::AbstractFill{T,N}) where {T,N} = Fill(op(getindex_value(r)), size(r))
5252
broadcasted(::DefaultArrayStyle{N}, op, r::AbstractFill{T,N}, x::Number) where {T,N} = Fill(op(getindex_value(r),x), size(r))
5353
broadcasted(::DefaultArrayStyle{N}, op, x::Number, r::AbstractFill{T,N}) where {T,N} = Fill(op(x, getindex_value(r)), size(r))
54+
broadcasted(::DefaultArrayStyle{N}, op, r::AbstractFill{T,N}, x::Ref) where {T,N} = Fill(op(getindex_value(r),x[]), size(r))
55+
broadcasted(::DefaultArrayStyle{N}, op, x::Ref, r::AbstractFill{T,N}) where {T,N} = Fill(op(x[], getindex_value(r)), size(r))
5456
function broadcasted(::DefaultArrayStyle{N}, op, r1::AbstractFill{T,N}, r2::AbstractFill{V,N}) where {T,V,N}
5557
size(r1)  size(r2) && throw(DimensionMismatch("dimensions must match."))
5658
Fill(op(getindex_value(r1),getindex_value(r2)), size(r1))

test/runtests.jl

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -448,6 +448,11 @@ end
448448
@test Zeros(5) .* Fill(5.0, 5) == Zeros(5)
449449
@test Ones(5) .* Zeros(5) == Zeros(5)
450450
@test Fill(5.0, 5) .* Zeros(5) == Zeros(5)
451+
452+
# support Ref
453+
@test Fill(1,10) .- 1 Fill(1,10) .- Ref(1) Fill(1,10) .- Ref(1I)
454+
@test Fill([1 2; 3 4],10) .- Ref(1I) == Fill([0 2; 3 3],10)
455+
@test Ref(1I) .+ Fill([1 2; 3 4],10) == Fill([2 2; 3 5],10)
451456
end
452457

453458
@testset "Sub-arrays" begin

0 commit comments

Comments
 (0)