File tree Expand file tree Collapse file tree 1 file changed +26
-0
lines changed Expand file tree Collapse file tree 1 file changed +26
-0
lines changed Original file line number Diff line number Diff line change 5353
5454# conversion tools
5555vecarr_to_arr (VA:: AbstractVectorOfArray ) = cat (length (size (VA)), VA. u... )
56+ vecarr_to_arr {T<:AbstractArray} (VA:: Vector{T} ) = cat (length (size (VA[1 ]))+ 1 ,VA... )
5657vecarr_to_vectors (VA:: AbstractVectorOfArray ) = [VA[i,:] for i in eachindex (VA[1 ])]
5758
5859# make it show just like its data
8182 A = vecarr_to_vectors (VA)
8283 VA. t,A
8384end
85+
86+ # Broadcast
87+
88+ # add_idxs(x,expr) = expr
89+ # add_idxs{T<:AbstractVectorOfArray}(::Type{T},expr) = :($(expr)[i])
90+ # add_idxs{T<:AbstractArray}(::Type{Vector{T}},expr) = :($(expr)[i])
91+ #=
92+ @generated function Base.broadcast!(f,A::AbstractVectorOfArray,B...)
93+ exs = ((add_idxs(B[i],:(B[$i])) for i in eachindex(B))...)
94+ :(for i in eachindex(A)
95+ broadcast!(f,A[i],$(exs...))
96+ end)
97+ end
98+
99+ @generated function Base.broadcast(f,B::Union{Number,AbstractVectorOfArray}...)
100+ arr_idx = 0
101+ for (i,b) in enumerate(B)
102+ if b <: ArrayPartition
103+ arr_idx = i
104+ break
105+ end
106+ end
107+ :(A = similar(B[$arr_idx]); broadcast!(f,A,B...); A)
108+ end
109+ =#
You can’t perform that action at this time.
0 commit comments