@@ -153,11 +153,11 @@ for op in (:*, :/)
153153end
154154
155155function Base.:* (A:: Number , B:: ArrayPartition )
156- ArrayPartition (map (y -> Base . broadcast ( * , A, y) , B. x))
156+ ArrayPartition (map (y -> A .* y , B. x))
157157end
158158
159159function Base.:\ (A:: Number , B:: ArrayPartition )
160- ArrayPartition ( map (y -> Base . broadcast ( / , y, A), B . x))
160+ B / A
161161end
162162
163163Base.:(== )(A:: ArrayPartition , B:: ArrayPartition ) = A. x == B. x
@@ -284,7 +284,7 @@ recursive_eltype(A::ArrayPartition) = recursive_eltype(first(A.x))
284284Base. iterate (A:: ArrayPartition ) = iterate (Chain (A. x))
285285Base. iterate (A:: ArrayPartition , state) = iterate (Chain (A. x), state)
286286
287- Base. length (A:: ArrayPartition ) = sum ((length (x) for x in A. x))
287+ Base. length (A:: ArrayPartition ) = sum (broadcast (length, A. x))
288288Base. size (A:: ArrayPartition ) = (length (A),)
289289
290290# redefine first and last to avoid slow and not type-stable indexing
@@ -323,21 +323,12 @@ function Broadcast.BroadcastStyle(::ArrayPartitionStyle,
323323 Broadcast. DefaultArrayStyle {N} ()
324324end
325325
326- combine_styles (args:: Tuple{} ) = Broadcast. DefaultArrayStyle {0} ()
327- @inline function combine_styles (args:: Tuple{Any} )
328- Broadcast. result_style (Broadcast. BroadcastStyle (args[1 ]))
329- end
330- @inline function combine_styles (args:: Tuple{Any, Any} )
331- Broadcast. result_style (Broadcast. BroadcastStyle (args[1 ]),
332- Broadcast. BroadcastStyle (args[2 ]))
333- end
334- @inline function combine_styles (args:: Tuple )
335- Broadcast. result_style (Broadcast. BroadcastStyle (args[1 ]),
336- combine_styles (Base. tail (args)))
337- end
326+ combine_styles (:: Type{Tuple{}} ) = Broadcast. DefaultArrayStyle {0} ()
327+ combine_styles (:: Type{T} ) where {T} = Broadcast. result_style (Broadcast. BroadcastStyle (T. parameters[1 ]), combine_styles (Tuple{Base. tail ((T. parameters... ,))... }))
328+
338329
339330function Broadcast. BroadcastStyle (:: Type{ArrayPartition{T, S}} ) where {T, S}
340- Style = combine_styles ((S . parameters ... ,) )
331+ Style = combine_styles (S )
341332 ArrayPartitionStyle (Style)
342333end
343334
0 commit comments