Skip to content

Commit a1a888c

Browse files
authored
Support Zeros(5)./Zeros(5) (#116) (#117)
1 parent d357eac commit a1a888c

File tree

2 files changed

+10
-0
lines changed

2 files changed

+10
-0
lines changed

src/fillbroadcast.jl

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ end
3030

3131
_broadcasted_zeros(f, a, b) = Zeros{Base.Broadcast.combine_eltypes(f, (a, b))}(broadcast_shape(axes(a), axes(b)))
3232
_broadcasted_ones(f, a, b) = Ones{Base.Broadcast.combine_eltypes(f, (a, b))}(broadcast_shape(axes(a), axes(b)))
33+
_broadcasted_nan(f, a, b) = Fill(convert(Base.Broadcast.combine_eltypes(f, (a, b)), NaN), broadcast_shape(axes(a), axes(b)))
3334

3435
# TODO: remove at next breaking version
3536
_broadcasted_zeros(a, b) = _broadcasted_zeros(+, a, b)
@@ -75,6 +76,10 @@ for op in (:*, :/, :\)
7576
@eval broadcasted(::DefaultArrayStyle, ::typeof($op), a::Ones, b::Ones) = _broadcasted_ones($op, a, b)
7677
end
7778

79+
for op in (:/, :\)
80+
@eval broadcasted(::DefaultArrayStyle, ::typeof($op), a::Zeros{<:Number}, b::Zeros{<:Number}) = _broadcasted_nan($op, a, b)
81+
end
82+
7883
# special case due to missing converts for ranges
7984
_range_convert(::Type{AbstractVector{T}}, a::AbstractRange{T}) where T = a
8085
_range_convert(::Type{AbstractVector{T}}, a::AbstractUnitRange) where T = convert(T,first(a)):convert(T,last(a))

test/runtests.jl

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -591,6 +591,11 @@ end
591591
@test broadcast(*, Fill([1,2],3), Zeros(3)) isa Fill{Vector{Float64}}
592592
@test broadcast(*, [[1,2], [3,4,5]], Zeros(2)) == broadcast(*, Zeros(2), [[1,2], [3,4,5]]) == broadcast(*, zeros(2), [[1,2], [3,4,5]])
593593
end
594+
595+
@testset "NaN" begin
596+
@test Zeros(5) ./ Zeros(5) Zeros(5) .\ Zeros(5) Fill(NaN,5)
597+
@test Zeros{Int}(5,6) ./ Zeros{Int}(5) Zeros{Int}(5) .\ Zeros{Int}(5,6) Fill(NaN,5,6)
598+
end
594599
end
595600

596601
@testset "support Ref" begin

0 commit comments

Comments
 (0)