I think the important thing to know is that Array is an abstract type unless all parameters have a concrete value. Vector{T} is just a typealias for Array{T,1}, so Vector{Float64} is a concrete type because Array{Float64,1} has concrete parameters. However Array{Float64} is NOT fully specified... It is implicitly the abstract type Array{Float64,N}, and so you're creating a vector of abstract types, which will hurt performance in general.
On Tuesday, July 19, 2016, Patrick Kofod Mogensen < patrick.mogen...@gmail.com> wrote: > Vector{T} means a vector where the elements are of type T. If T = > Vector{S} then every element in the original vector is itself a vector with > elements of type S. In your case, S = Float64 and T = Vector{S} = > Vector{Float64}. I think it's a pretty good idea to make sure you > understand this, as the type system is important to understand in order to > fully exploit multiple dispatch, and to get good performance out of Julia > programs. > > On Tuesday, July 19, 2016 at 12:12:36 AM UTC+2, Ferran Mazzanti wrote: >> >> Hi Mauro, >> your solution seems to work... though I do not understand exactly why :) >> Even Vector{Array{Float64}} works. >> Thanks for your kind help :) >> Ferran. >> >