Diffing "CoSamp - Nuit Blanche - version 3" and "CoSamp - Nuit Blanche - version 4"

 Title: CoSamp - Nuit Blanche - version 3 CoSamp - Nuit Blanche - version 4 Author: Igor Carron Igor Carron Submitted: 2010-05-01 23:10:24 UTC 2010-05-01 23:17:44 UTC Status: Passed Passed Score: 411359.0 433258.0 Result: 205533281 (cyc: 3, node: 325) 210803013 (cyc: 3, node: 327) CPU Time: 102.821 139.684 Code: ```function Aest = solver(imageSize, queryLimit) nmeas = max(1,floor(imageSize/10)) nmeas = max(1,floor(imageSize/5)) for i=1:nmeas v = rand(imageSize); vt1 = v < 0.5; mask = vt1; vt2=double(vt1); pixelSum = queryImage(mask); B(i,:) = reshape(vt2,imageSize*imageSize,1); y(i) = pixelSum; end sigma_min = max(1,imageSize/5); sigma_min = max(1,floor(imageSize/3)); [xx,dd] = cosamp(B, y',sigma_min,1.0e-4); Aest = reshape(xx,imageSize,imageSize); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function [Sest,d]=cosamp(Phi,u,K,tol1) % Cosamp algorithm % Input % K : sparsity of Sest % Phi : measurement matrix % u: measured vector % tol1 : tolerance for approximation between successive solutions. % Output % Sest: Solution found by the algorithm % d : success index (d=1 is success, d = 0 is no convergence) % % Algorithm as described in "CoSaMP: Iterative signal recovery from % incomplete and inaccurate samples" by Deanna Needell and Joel Tropp. % % This implementation was written by David Mary % % This script/program is released under the Commons Creative Licence % with Attribution Non-commercial Share Alike (by-nc-sa) % http://creativecommons.org/licenses/by-nc-sa/3.0/ % Short Disclaimer: this script is for educational purpose only. % Longer Disclaimer see http://igorcarron.googlepages.com/disclaimer % Initialization Sest=zeros(size(Phi,2),1); utrue = Sest; v=u; t=1; T2=[]; while t < 101 [k,z]=sort(abs(Phi'*v));k=flipud(k);z=flipud(z); Omega=z(1:2*K); T=sort(union(Omega,T2));phit=Phi(:,T); % The next step is the one that can be improved with a Conjugate Gradient % algorithm b=abs(pinv(phit)*u); [k3,z3]=sort((b));k3=flipud(k3);z3=flipud(z3); Sest=zeros(size(utrue)); Sest(T(z3(1:K)))=abs(b(z3(1:K))); [k2,z2]=sort(abs(Sest));k2=flipud(k2);z2=flipud(z2); T2=z2(1:K); v=u-Phi*Sest; d=0;n2=norm(abs(v),'inf'); if n2 < tol1 d=1;t=1e10; end t=t+1; end d = 0 ```