Skip to content

Commit bbaa0df

Browse files
authored
view of RangeCumSum with OneTo (#142)
* view of RangeCumSum with OneTo * propagate inbounds * forward to getindex * test type of view of RangeCumsum
1 parent fbf0f4c commit bbaa0df

File tree

3 files changed

+5
-1
lines changed

3 files changed

+5
-1
lines changed

src/ArrayLayouts.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ using Base: AbstractCartesianIndex, OneTo, RangeIndex, ReinterpretArray, Reshape
99

1010
import Base: axes, size, length, eltype, ndims, first, last, diff, isempty, union, sort!,
1111
==, *, +, -, /, \, copy, copyto!, similar, getproperty, getindex, strides,
12-
reverse, unsafe_convert, convert
12+
reverse, unsafe_convert, convert, view
1313

1414
using Base.Broadcast: Broadcasted
1515

src/cumsum.jl

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,8 @@ end
2626

2727
Base.@propagate_inbounds getindex(c::RangeCumsum, kr::OneTo) = RangeCumsum(c.range[kr])
2828

29+
Base.@propagate_inbounds view(c::RangeCumsum, kr::OneTo) = c[kr]
30+
2931
first(r::RangeCumsum) = first(r.range)
3032
last(r::RangeCumsum) = sum(r.range)
3133
diff(r::RangeCumsum) = r.range[2:end]

test/test_cumsum.jl

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@ using ArrayLayouts, Test
66
@test r == r
77
@test r .+ 1 == cumsum(r.range) .+ 1
88
@test r[Base.OneTo(3)] == r[1:3]
9+
@test @view(r[Base.OneTo(3)]) === r[Base.OneTo(3)] == r[1:3]
10+
@test @view(r[Base.OneTo(3)]) isa RangeCumsum
911
@test last(r) == r[end]
1012
@test diff(r) == diff(Vector(r))
1113
@test first(r) == r[1]

0 commit comments

Comments
 (0)