Skip to content

Commit 85fc450

Browse files
authored
Special case for unary broadcasting, e.g. broadcast(-,::Zeros) (#106)
* Special case for unary broadcasting, e.g. broadcast(-,::Zeros) * Update runtests.jl
1 parent e3158b0 commit 85fc450

File tree

3 files changed

+10
-3
lines changed

3 files changed

+10
-3
lines changed

Project.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
name = "FillArrays"
22
uuid = "1a297f60-69ca-5386-bcde-b61e274b549b"
3-
version = "0.8.12"
3+
version = "0.8.13"
44

55
[deps]
66
LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e"

src/fillbroadcast.jl

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,10 @@ function broadcasted(::DefaultArrayStyle{N}, op, r::AbstractFill{T,N}) where {T,
99
return Fill(op(getindex_value(r)), axes(r))
1010
end
1111

12+
broadcasted(::DefaultArrayStyle, ::typeof(+), r::Zeros) = r
13+
broadcasted(::DefaultArrayStyle, ::typeof(-), r::Zeros) = r
14+
broadcasted(::DefaultArrayStyle, ::typeof(+), r::Ones) = r
15+
1216
broadcasted(::DefaultArrayStyle{N}, ::typeof(conj), r::Zeros{T,N}) where {T,N} = r
1317
broadcasted(::DefaultArrayStyle{N}, ::typeof(conj), r::Ones{T,N}) where {T,N} = r
1418
broadcasted(::DefaultArrayStyle{N}, ::typeof(real), r::Zeros{T,N}) where {T,N} = Zeros{real(T)}(r.axes)

test/runtests.jl

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -477,7 +477,7 @@ end
477477
@test f.(x, Ones(5)) Fill(f(5,1.0),5)
478478

479479
y = Ones(5,5)
480-
@test (.+)(y) Fill(1.0,5,5)
480+
@test (.+)(y) Ones(5,5)
481481
@test (.-)(y) Fill(-1.0,5,5)
482482
@test exp.(y) Fill(exp(1),5,5)
483483
@test y .+ 1 Fill(2.0,5,5)
@@ -542,7 +542,10 @@ end
542542
@test broadcast(*, rnge, Fill(5.0, 10)) == broadcast(*, rnge, 5.0)
543543
@test_throws DimensionMismatch broadcast(*, rnge, Fill(5.0, 11))
544544

545-
@testset "Special zeros" begin
545+
@testset "Special Zeros/Ones" begin
546+
@test broadcast(+,Zeros(5)) broadcast(-,Zeros(5)) Zeros(5)
547+
@test broadcast(+,Ones(5)) Ones(5)
548+
546549
@test Zeros(5) .* Ones(5) Zeros(5) .* 1 Zeros(5)
547550
@test Zeros(5) .* Fill(5.0, 5) Zeros(5) .* 5.0 Zeros(5)
548551
@test Ones(5) .* Zeros(5) 1 .* Zeros(5) Zeros(5)

0 commit comments

Comments
 (0)