On Tue, May 06, 2008 at 12:10:38AM +0200, Jens M Andreasen wrote:
On Mon, 2008-05-05 at 23:32 +0200, Jens M Andreasen
wrote:
> clock: 4020 ms (_Complex)
> clock: 1550 ms (cvec_t)
> clock: 70000 ms (original float array[N][2])
Wait a second ... It's a trick! :-D
The compiler splits the iterations up in smaller parts that fits in the
cache and runs them in succesion.
I've know one what that even more clever. It just noticed I didn't use
the result, and skipped the whole loop.
After each iteration, call an empty function, separately compiled,
that takes all three vectors as arguments (and _not_ as const *
of course). No more tricks. The overhead is peanuts compared
to the calculation.
Ciao,
--
FA
Laboratorio di Acustica ed Elettroacustica
Parma, Italia
Lascia la spina, cogli la rosa.