Skip to content

Commit f442388

Browse files
committed
Added dispatch on VectorOfArray for Base.similar
Added dispatch on AbstractVectorOfArray for Base.fill! Now we can use ones and zeros with VectorOfArray Fixed any(f, itr) for AbstractVectorOfArray. Without it ODE_DEFAULT_UNSTABLE_CHECK from DiffEqBase doesn't work properly for VectorOfArray.
1 parent b1b147c commit f442388

File tree

1 file changed

+16
-0
lines changed

1 file changed

+16
-0
lines changed

src/vector_of_array.jl

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,22 @@ function Base.append!{T, N}(VA::AbstractVectorOfArray{T, N}, new_item::AbstractV
6161
return VA
6262
end
6363

64+
# Tools for creating similar objects
65+
@inline Base.similar(VA::VectorOfArray{T}) where {T} = similar(VA, T)
66+
@inline Base.similar(VA::VectorOfArray, ::Type{T}) where {T} = VectorOfArray([similar(VA[i], T) for i in eachindex(VA)])
67+
68+
# fill!
69+
# For DiffEqArray it ignores ts and fills only u
70+
function Base.fill!(VA::AbstractVectorOfArray, x)
71+
for i in eachindex(VA)
72+
fill!(VA[i], x)
73+
end
74+
return VA
75+
end
76+
77+
# Need this for ODE_DEFAULT_UNSTABLE_CHECK from DiffEqBase to work properly
78+
@inline Base.any(f, VA::AbstractVectorOfArray) = any(any(f,VA[i]) for i in eachindex(VA))
79+
6480
# conversion tools
6581
@deprecate vecarr_to_arr(VA::AbstractVectorOfArray) convert(Array,VA)
6682
@deprecate vecarr_to_arr{T<:AbstractArray}(VA::Vector{T}) convert(Array,VA)

0 commit comments

Comments
 (0)