Skip to content

Commit dae3385

Browse files
authored
make Origin a scalar for broadcasting (#182)
1 parent 4df57a7 commit dae3385

File tree

2 files changed

+13
-0
lines changed

2 files changed

+13
-0
lines changed

src/origin.jl

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,3 +33,5 @@ Origin(I1::Int, In::Int...) = Origin((I1, In...))
3333
Origin(n::Int) = Origin{Int}(n)
3434

3535
(o::Origin)(A::AbstractArray) = o.index .- first.(axes(A))
36+
37+
Base.Broadcast.broadcastable(o::Origin) = Ref(o)

test/origin.jl

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,4 +27,15 @@ using OffsetArrays: Origin
2727
oa = OffsetArray(a, -3, -3, -3)
2828
@test get_origin(OffsetArray(oa, Origin(0))) == (0, 0, 0)
2929
@test get_origin(OffsetArray(oa, Origin(1, 2, 3))) == (1, 2, 3)
30+
31+
# Scalar broadcasting
32+
let
33+
a = [ [1,2,3], [4,5,6] ]
34+
oa = OffsetVector.(a, Origin(0))
35+
@test get_origin.(oa) == [ (0,), (0,) ]
36+
37+
a = [ [1 2; 3 4], [5 6 7; 8 9 10] ]
38+
oa = OffsetArray.(a, Origin(0, -1))
39+
@test get_origin.(oa) == [ (0,-1), (0,-1) ]
40+
end
3041
end

0 commit comments

Comments
 (0)