@@ -246,12 +246,31 @@ for R in [:IIUR, :IdOffsetRange]
246
246
end
247
247
248
248
# 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)
255
274
256
275
Base. show (io:: IO , r:: IdOffsetRange ) = print (io, IdOffsetRange, " (values=" ,first (r), ' :' , last (r)," , indices=" ,first (eachindex (r)),' :' ,last (eachindex (r)), " )" )
257
276
0 commit comments