function compare_qsvd(A, epsilon) if(nargin < 2) epsilon = 0.01; end % fast matrix warmup for fair comparison - % this way neither method has to wait for A to get into cpu cache [u,s,v] = qsvd(A,.9); tic; [u,s,v] = qsvd(A, epsilon); qsvdTime = toc; fprintf('\tqsvd: %.4f sec\n', qsvdTime); [m,n] = size(A); if(m > 1500 && n > 1500), fprintf('(patience...matlab svd may take a few minutes)\n'); end tic; [u,s,v] = svd(A,'econ'); exactTime = toc; fprintf('\tmatlab: %.4f sec\n', exactTime); fprintf('\tqsvd speedup: %.4f\n',exactTime/qsvdTime); end