Skip to content

Commit 2b97036

Browse files
authored
Negate RangeCumSum (#215)
1 parent 4aa8264 commit 2b97036

File tree

2 files changed

+5
-1
lines changed

2 files changed

+5
-1
lines changed

src/cumsum.jl

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,9 @@ sort(a::RangeCumsum{<:Any,<:Base.OneTo}) = a
4141

4242
convert(::Type{RangeCumsum{T,R}}, r::RangeCumsum) where {T,R} = RangeCumsum{T,R}(convert(R, r.range))
4343

44+
function Broadcast.broadcasted(::Broadcast.DefaultArrayStyle{1}, ::typeof(-), r::RangeCumsum)
45+
RangeCumsum(.-r.range)
46+
end
4447
function Broadcast.broadcasted(::Broadcast.DefaultArrayStyle{1}, ::typeof(*), x::Number, r::RangeCumsum)
4548
RangeCumsum(x * r.range)
4649
end

test/test_cumsum.jl

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,14 @@ include("infinitearrays.jl")
1010
r = RangeCumsum(p)
1111
@test parent(r) == p
1212
@test r == r
13-
if axes(r) isa Base.OneTo
13+
if axes(r,1) isa Base.OneTo
1414
@test r == cumsum(p)
1515
@test r .+ 1 == cumsum(p) .+ 1
1616
@test r[Base.OneTo(3)] == r[1:3]
1717
@test @view(r[Base.OneTo(3)]) === r[Base.OneTo(3)] == r[1:3]
1818
@test @view(r[Base.OneTo(3)]) isa RangeCumsum
1919
@test diff(r) == diff(Vector(r))
20+
@test -r == -Vector(r)
2021
end
2122
@test diff(r) == p[firstindex(p)+1:end]
2223
@test last(r) == r[end] == sum(p)

0 commit comments

Comments
 (0)