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.
>>
>

Reply via email to