clear all N=10000; ERROLD = zeros(N,1); ERRNEW = zeros(N,1); for i=1:N [T,X,P] = planar_mov_randconf(2,3); Q= observe_plucker( T,X,P); a = T{2}(1,1); b = T{2}(1,2); ROT = [a b 0; -b a 0; 0 0 1]; t1 = [0;0;0]; t2 = -ROT'*T{2}(1:3,4); c = t2(1); d = t2(2); [SOLS] = solve_23grevlex( Q ) ; true_sols=[a;b;c;d] ; terr = SOLS - true_sols*ones(1,4); err = min( sum(abs( terr))); l = observe_plucker_as_cell( T,X,P ) ; d2 =solve_23lex_mex( l ) ; d2 = transpose( d2 ) ; SOLS; terr1 = d2(1:2,:)-[a;b] *ones(1,3); terr2 = SOLS(1:2,:) - [a;b]*ones(1,4); errold = min(sum(abs(terr1))); errnew = min(sum(abs(terr2))); ERROLD(i) = errold; ERRNEW(i) = errnew; if not( mod(i,1000)) disp( i ) end end [h1,x1] = hist( log10(ERRNEW+eps), -20:0.25:2); [h2,x2] = hist( log10(ERROLD+eps), -20:0.25:2); mm = 1.1*max([h1 h2] ) ; figure(2) clf p1 = plot( x1, h1,'-.' , x2, h2,'--' ) ; hold on %plot( x1(1:20:end), h1(1:20:end),'+' ) %plot( x2(10:20:end), h2(10:20:end),'>' ) l1 = legend( {'GrevLex','Lex' } ) ; xlim( [-17 -7] ) ylim([0 mm]) set( gca , 'ytickmode', 'manual', 'yticklabel','', 'fontsize',20) set( p1, 'linewidth',6 ) set( l1, 'fontsize',20 , 'linewidth', 4 ) xlabel('log_{10} of error') ylabel('frequency') set( gca, 'linewidth', 4 )