I'm definitely not an expert but I thought I would chime in on your "arrays of
arrays vrs matrices" question.
I recently developed a project where I started out using:
Array{Array{Float64,1},1} as a container for a set of state vectors in an ODE
flow. This seemed most natural but I figured once I got it to work, I would
speed it up by representing everything in a compact matrix representation:
Array{Float64,2}. However, I was never able to speed things up much with
Array{Float64,2} over the Array{Array{Float64,1},1} container.
I ended up with the impression (experts can confirm or deny this) that
although Array{Float64,2} may be stored in memory more compactly than
Array{Array{Float64,1},1}, the latter container is already very efficient so
that any speed gains were marginal.
Is this the experience of others?
Cheers,
Ethan