@@ -246,12 +246,31 @@ for R in [:IIUR, :IdOffsetRange]
246246end
247247
248248# offset-preserve broadcasting
249- Broadcast. broadcasted (:: Base.Broadcast.DefaultArrayStyle{1} , :: typeof (- ), r:: IdOffsetRange{T} , x:: Integer ) where T =
250- IdOffsetRange {T} (r. parent .- x, r. offset)
251- Broadcast. broadcasted (:: Base.Broadcast.DefaultArrayStyle{1} , :: typeof (+ ), r:: IdOffsetRange{T} , x:: Integer ) where T =
252- IdOffsetRange {T} (r. parent .+ x, r. offset)
253- Broadcast. broadcasted (:: Base.Broadcast.DefaultArrayStyle{1} , :: typeof (+ ), x:: Integer , r:: IdOffsetRange{T} ) where T =
254- IdOffsetRange {T} (x .+ r. parent, r. offset)
249+ Broadcast. broadcasted (:: Base.Broadcast.DefaultArrayStyle{1} , :: typeof (- ), r:: IdOffsetRange ) =
250+ OffsetArray (.- UnitRange (r), r. offset)
251+ Broadcast. broadcasted (:: Base.Broadcast.DefaultArrayStyle{1} , :: typeof (- ), r:: IdOffsetRange , x:: Integer ) =
252+ IdOffsetRange (r. parent .- x, r. offset)
253+ Broadcast. broadcasted (:: Base.Broadcast.DefaultArrayStyle{1} , :: typeof (- ), x:: Integer , r:: IdOffsetRange ) =
254+ OffsetArray (x .- UnitRange (r), r. offset)
255+ Broadcast. broadcasted (:: Base.Broadcast.DefaultArrayStyle{1} , :: typeof (+ ), r:: IdOffsetRange , x:: Integer ) =
256+ IdOffsetRange (r. parent .+ x, r. offset)
257+ Broadcast. broadcasted (:: Base.Broadcast.DefaultArrayStyle{1} , :: typeof (+ ), x:: Integer , r:: IdOffsetRange ) =
258+ IdOffsetRange (x .+ r. parent, r. offset)
259+ Broadcast. broadcasted (:: Base.Broadcast.DefaultArrayStyle{1} , :: typeof (* ), x:: Number , r:: IdOffsetRange ) =
260+ OffsetArray (x .* UnitRange (r), r. offset)
261+ Broadcast. broadcasted (:: Base.Broadcast.DefaultArrayStyle{1} , :: typeof (* ), r:: IdOffsetRange , x:: Number ) =
262+ OffsetArray (UnitRange (r) .* x, r. offset)
263+ # specialize for AbstractFloat to resolve ambiguity with OrdinalRange
264+ Broadcast. broadcasted (:: Base.Broadcast.DefaultArrayStyle{1} , :: typeof (* ), x:: AbstractFloat , r:: IdOffsetRange ) =
265+ OffsetArray (x .* UnitRange (r), r. offset)
266+ Broadcast. broadcasted (:: Base.Broadcast.DefaultArrayStyle{1} , :: typeof (* ), r:: IdOffsetRange , x:: AbstractFloat ) =
267+ OffsetArray (UnitRange (r) .* x, r. offset)
268+ Broadcast. broadcasted (:: Base.Broadcast.DefaultArrayStyle{1} , :: typeof (\ ), x:: Number , r:: IdOffsetRange ) =
269+ OffsetArray (x .\ UnitRange (r), r. offset)
270+ Broadcast. broadcasted (:: Base.Broadcast.DefaultArrayStyle{1} , :: typeof (/ ), r:: IdOffsetRange , x:: Number ) =
271+ OffsetArray (UnitRange (r) ./ x, r. offset)
272+ Broadcast. broadcasted (:: Base.Broadcast.DefaultArrayStyle{1} , :: typeof (big), r:: IdOffsetRange ) =
273+ IdOffsetRange (big .(r. parent), r. offset)
255274
256275Base. show (io:: IO , r:: IdOffsetRange ) = print (io, IdOffsetRange, " (values=" ,first (r), ' :' , last (r)," , indices=" ,first (eachindex (r)),' :' ,last (eachindex (r)), " )" )
257276
0 commit comments