@@ -9,7 +9,7 @@ module Broadcast
9
9
10
10
using . Base. Cartesian
11
11
using . Base: Indices, OneTo, tail, to_shape, isoperator, promote_typejoin, promote_typejoin_union, @pure ,
12
- _msk_end, unsafe_bitgetindex, bitcache_chunks, bitcache_size, dumpbitcache, unalias
12
+ _msk_end, unsafe_bitgetindex, bitcache_chunks, bitcache_size, dumpbitcache, unalias, negate
13
13
import . Base: copy, copyto!, axes
14
14
export broadcast, broadcast!, BroadcastStyle, broadcast_axes, broadcastable, dotview, @__dot__ , BroadcastFunction
15
15
@@ -1079,9 +1079,9 @@ end
1079
1079
# DefaultArrayStyle and \ are not available at the time of range.jl
1080
1080
broadcasted (:: DefaultArrayStyle{1} , :: typeof (+ ), r:: AbstractRange ) = r
1081
1081
1082
- broadcasted (:: DefaultArrayStyle{1} , :: typeof (- ), r:: AbstractRange ) = range (- first (r), step= - step (r), length= length (r))
1083
- broadcasted (:: DefaultArrayStyle{1} , :: typeof (- ), r:: OrdinalRange ) = range (- first (r), - last (r), step= - step (r))
1084
- broadcasted (:: DefaultArrayStyle{1} , :: typeof (- ), r:: StepRangeLen ) = StepRangeLen (- r. ref, - r. step, length (r), r. offset)
1082
+ broadcasted (:: DefaultArrayStyle{1} , :: typeof (- ), r:: AbstractRange ) = range (- first (r), step= negate ( step (r) ), length= length (r))
1083
+ broadcasted (:: DefaultArrayStyle{1} , :: typeof (- ), r:: OrdinalRange ) = range (- first (r), - last (r), step= negate ( step (r) ))
1084
+ broadcasted (:: DefaultArrayStyle{1} , :: typeof (- ), r:: StepRangeLen ) = StepRangeLen (- r. ref, negate ( r. step) , length (r), r. offset)
1085
1085
broadcasted (:: DefaultArrayStyle{1} , :: typeof (- ), r:: LinRange ) = LinRange (- r. start, - r. stop, length (r))
1086
1086
1087
1087
# For #18336 we need to prevent promotion of the step type:
@@ -1102,15 +1102,15 @@ broadcasted(::DefaultArrayStyle{1}, ::typeof(+), x::Number, r::LinRange) = LinRa
1102
1102
broadcasted (:: DefaultArrayStyle{1} , :: typeof (+ ), r1:: AbstractRange , r2:: AbstractRange ) = r1 + r2
1103
1103
1104
1104
broadcasted (:: DefaultArrayStyle{1} , :: typeof (- ), r:: AbstractRange , x:: Number ) = range (first (r) - x, step= step (r), length= length (r))
1105
- broadcasted (:: DefaultArrayStyle{1} , :: typeof (- ), x:: Number , r:: AbstractRange ) = range (x - first (r), step= - step (r), length= length (r))
1105
+ broadcasted (:: DefaultArrayStyle{1} , :: typeof (- ), x:: Number , r:: AbstractRange ) = range (x - first (r), step= negate ( step (r) ), length= length (r))
1106
1106
broadcasted (:: DefaultArrayStyle{1} , :: typeof (- ), r:: OrdinalRange , x:: Integer ) = range (first (r) - x, last (r) - x, step= step (r))
1107
- broadcasted (:: DefaultArrayStyle{1} , :: typeof (- ), x:: Integer , r:: OrdinalRange ) = range (x - first (r), x - last (r), step= - step (r))
1107
+ broadcasted (:: DefaultArrayStyle{1} , :: typeof (- ), x:: Integer , r:: OrdinalRange ) = range (x - first (r), x - last (r), step= negate ( step (r) ))
1108
1108
broadcasted (:: DefaultArrayStyle{1} , :: typeof (- ), r:: AbstractUnitRange , x:: Integer ) = range (first (r) - x, last (r) - x)
1109
1109
broadcasted (:: DefaultArrayStyle{1} , :: typeof (- ), r:: AbstractUnitRange , x:: Real ) = range (first (r) - x, length= length (r))
1110
1110
broadcasted (:: DefaultArrayStyle{1} , :: typeof (- ), r:: StepRangeLen{T} , x:: Number ) where T =
1111
1111
StepRangeLen {typeof(T(r.ref)-x)} (r. ref - x, r. step, length (r), r. offset)
1112
1112
broadcasted (:: DefaultArrayStyle{1} , :: typeof (- ), x:: Number , r:: StepRangeLen{T} ) where T =
1113
- StepRangeLen {typeof(x-T(r.ref))} (x - r. ref, - r. step, length (r), r. offset)
1113
+ StepRangeLen {typeof(x-T(r.ref))} (x - r. ref, negate ( r. step) , length (r), r. offset)
1114
1114
broadcasted (:: DefaultArrayStyle{1} , :: typeof (- ), r:: LinRange , x:: Number ) = LinRange (r. start - x, r. stop - x, length (r))
1115
1115
broadcasted (:: DefaultArrayStyle{1} , :: typeof (- ), x:: Number , r:: LinRange ) = LinRange (x - r. start, x - r. stop, length (r))
1116
1116
broadcasted (:: DefaultArrayStyle{1} , :: typeof (- ), r1:: AbstractRange , r2:: AbstractRange ) = r1 - r2
0 commit comments