On Wed, 12 Mar 2014, Riccardo (Jack) Lucchetti wrote:
On Wed, 12 Mar 2014, Allin Cottrell wrote:
> This is the fastest version I can come up with on a quick go (if one
> doesn't mind having the result as a matrix):
>
> <hansl>
> set stopwatch
> scalar T = 10000
> matrix y = zeros(T,1)
> scalar iters=10000
> matrix DFT = zeros(iters,1)
>
> loop i=1..iters --quiet
> y = cum(mnormal(T, 1))
> DFT[i] = (T-2) * (mols(y[3:],mlag(y,1)[3:])-1)
> endloop
> mwrite(DFT, "DFT.mat")
> printf "Time taken: %f seconds\n", $stopwatch
> </hansl>
Slight improvement:
<hansl>
loop i=1..iters --quiet
y = cum(mnormal(T, 1))
DFT[i] = (T-2) * (mols(y[3:],y[2:T-1])-1)
endloop
</hansl>
How did I miss that trick ;-)
Allin