fprintf("Loading Data "); fflush(stdout); load -force testfft.mat fprintf("done\n"); rep = 100; len = length(timfft); N = zeros(1,len); M = zeros(1,len); for i=1:len N(i) = size(resfft{i},1); M(i) = size(resfft{i},2); endfor xresfft = cell(1, length(N)); xresfft2 = cell(1, length(N)); xtimfft = cell(1,length(N)); xtimfft2 = cell(1,length(N)); for i=1:length(N) a = infft{i}; fprintf("Testing fft(%5d,%5d) ", N(i), M(i)); fflush(stdout); # Call fft twice to ensure all variables initialized b = fft(a); b = fft(a); xtimfft{i} = 0; for j=1:rep t = cputime; b = fft(a); xtimfft{i} = xtimfft{i} + cputime - t; endfor xresfft{i} = b; xtimfft{i} = xtimfft{i} / rep; fprintf("%5.2e sec (%5.2e) rerr %5.2e\n", xtimfft{i}, xtimfft{i}/timfft{i}, 0.5*max(max(abs(resfft{i}-xresfft{i})./(abs(resfft{i})+abs(xresfft{i}))))); fprintf("Testing fft2(%5d,%5d) ", N(i), M(i)); fflush(stdout); # Call fft2 twice to ensure all variables initialized b = fft2(a); b = fft2(a); xtimfft2{i} = 0; for j=1:rep t = cputime; b = fft2(a); xtimfft2{i} = xtimfft2{i} + cputime - t; endfor xresfft2{i} = b; xtimfft2{i} = xtimfft2{i} / rep; fprintf("%5.2e sec (%5.2e) rerr %5.2e\n", xtimfft2{i}, xtimfft2{i}/timfft2{i}, 0.5*max(max(abs(resfft2{i}-xresfft2{i})./(abs(resfft2{i})+abs(xresfft2{i}))))); endfor