@@ -149,31 +149,30 @@ end
149149
150150# # broadcasting
151151
152- struct VectorOfArrayStyle{Style <: Broadcast.BroadcastStyle } <: Broadcast.AbstractArrayStyle{Any} end
153- VectorOfArrayStyle (:: S ) where {S} = VectorOfArrayStyle {S} ()
154- VectorOfArrayStyle (:: S , :: Val{N} ) where {S,N} = VectorOfArrayStyle (S (Val (N)))
155- VectorOfArrayStyle (:: Val{N} ) where N = VectorOfArrayStyle {Broadcast.DefaultArrayStyle{N}} ()
152+ struct VectorOfArrayStyle <: Broadcast.AbstractArrayStyle{Any} end
153+ VectorOfArrayStyle (:: Any ) = VectorOfArrayStyle ()
154+ VectorOfArrayStyle (:: Any , :: Any ) = VectorOfArrayStyle ()
156155
157156# promotion rules
158- @inline function Broadcast. BroadcastStyle (:: VectorOfArrayStyle{AStyle} , :: VectorOfArrayStyle{BStyle} ) where {AStyle, BStyle}
159- VectorOfArrayStyle (Broadcast. BroadcastStyle (AStyle (), BStyle ()))
160- end
161- Broadcast. BroadcastStyle (:: VectorOfArrayStyle{Style} , :: Broadcast.DefaultArrayStyle{0} ) where Style <: Broadcast.BroadcastStyle = VectorOfArrayStyle {Style} ()
162- Broadcast. BroadcastStyle (:: VectorOfArrayStyle , :: Broadcast.DefaultArrayStyle{N} ) where N = Broadcast. DefaultArrayStyle {N} ()
157+ # @inline function Broadcast.BroadcastStyle(::VectorOfArrayStyle{AStyle}, ::VectorOfArrayStyle{BStyle}) where {AStyle, BStyle}
158+ # VectorOfArrayStyle(Broadcast.BroadcastStyle(AStyle(), BStyle()))
159+ # end
160+ Broadcast. BroadcastStyle (:: VectorOfArrayStyle , :: Broadcast.BroadcastStyle ) = VectorOfArrayStyle ()
161+ # Broadcast.BroadcastStyle(::VectorOfArrayStyle, ::Broadcast.DefaultArrayStyle{N}) where N = Broadcast.DefaultArrayStyle{N}()
163162
164163function Broadcast. BroadcastStyle (:: Type{<:AbstractVectorOfArray{T,S}} ) where {T, S}
165- VectorOfArrayStyle (Broadcast . result_style (Broadcast . BroadcastStyle (T)) )
164+ VectorOfArrayStyle ()
166165end
167166
168- @inline function Base. copy (bc:: Broadcast.Broadcasted{VectorOfArrayStyle{Style}} ) where Style
167+ @inline function Base. copy (bc:: Broadcast.Broadcasted{VectorOfArrayStyle} )
169168 N = narrays (bc)
170169 x = unpack_voa (bc, 1 )
171170 VectorOfArray (map (1 : N) do i
172171 copy (unpack_voa (bc, i))
173172 end )
174173end
175174
176- @inline function Base. copyto! (dest:: AbstractVectorOfArray , bc:: Broadcast.Broadcasted{VectorOfArrayStyle{Style}} ) where Style
175+ @inline function Base. copyto! (dest:: AbstractVectorOfArray , bc:: Broadcast.Broadcasted{VectorOfArrayStyle} )
177176 N = narrays (bc)
178177 @inbounds for i in 1 : N
179178 copyto! (dest[i], unpack_voa (bc, i))
@@ -206,7 +205,7 @@ _narrays(args::Tuple{}) = 0
206205
207206# drop axes because it is easier to recompute
208207@inline unpack_voa (bc:: Broadcast.Broadcasted{Style} , i) where Style = Broadcast. Broadcasted {Style} (bc. f, unpack_args_voa (i, bc. args))
209- @inline unpack_voa (bc:: Broadcast.Broadcasted{VectorOfArrayStyle{Style}} , i) where Style = Broadcast. Broadcasted {Style} (bc. f, unpack_args_voa (i, bc. args))
208+ @inline unpack_voa (bc:: Broadcast.Broadcasted{VectorOfArrayStyle} , i) = Broadcast. Broadcasted (bc. f, unpack_args_voa (i, bc. args))
210209unpack_voa (x,:: Any ) = x
211210unpack_voa (x:: AbstractVectorOfArray , i) = x. u[i]
212211unpack_voa (x:: AbstractArray{T,N} , i) where {T,N} = @view x[ntuple (x-> Colon (),N- 1 )... ,i]
0 commit comments