A=zeros(2,11); global B B=ones(2000000000,11); a1=0; b1=0.05; a2=0; b2=0.04; a3=-0.17; b3=0.17; a4=-0.13; b4=0.13; a5=0; b5=(2*pi)/3; C1=0.212; C2=0.322; C3=0.326; C4=0.398; C5=0.134; x1=(a1+b1)/2; y1=(a2+b2)/2; x2=(a3+b3)/2; y2=(a4+b4)/2; alpha=(a5+b5)/2; d1=(b1-a1)/2; d2=(b2-a2)/2; d3=(b3-a3)/2; d4=(b4-a4)/2; d5=(b5-a5)/2; bound = cvh(x1,y1,x2,y2,alpha) - C1*d1 - C2*d2 - C3*d3 - C4*d4 - C5*d5; A(1,:)=[bound a1 b1 a2 b2 a3 b3 a4 b4 a5 b5]; B(1,:)=A(1,:); n=1; i=1; k=1; tic; while k<=100000 if rem(k,10000)==0 disp([num2str(B(1,1)) ' count =' num2str(k)]); toc; end a1=B(1,2); b1=B(1,3); a2=B(1,4); b2=B(1,5); a3=B(1,6); b3=B(1,7); a4=B(1,8); b4=B(1,9); a5=B(1,10); b5=B(1,11); x1=(a1+b1)/2; y1=(a2+b2)/2; x2=(a3+b3)/2; y2=(a4+b4)/2; alpha=(a5+b5)/2; d1=(b1-a1)/2; d2=(b2-a2)/2; d3=(b3-a3)/2; d4=(b4-a4)/2; d5=(b5-a5)/2; [d,di]=max([d1 d2 d3 d4 d5]); switch di case 1 aa1 = B(1,2); bb1 = B(1,2)+d1; aa2 = B(1,4); bb2 = B(1,5); aa3 = B(1,6); bb3 = B(1,7); aa4 = B(1,8); bb4 = B(1,9); aa5 = B(1,10); bb5 = B(1,11); bound = cvh((aa1+bb1)/2,(aa2+bb2)/2,(aa3+bb3)/2,(aa4+bb4)/2,(aa5+bb5)/2) - C1*(bb1-aa1)/2 - C2*(bb2-aa2)/2 - C3*(bb3-aa3)/2 - C4*(bb4-aa4)/2 - C5*(bb5-aa5)/2; if bound <= 0.0976 i=i+1; A(1,:)=[bound aa1 bb1 aa2 bb2 aa3 bb3 aa4 bb4 aa5 bb5]; j=1; end aa1 = B(1,2)+d1; bb1 = B(1,2)+2*d1; aa2 = B(1,4); bb2 = B(1,5); aa3 = B(1,6); bb3 = B(1,7); aa4 = B(1,8); bb4 = B(1,9); aa5 = B(1,10); bb5 = B(1,11); bound = cvh((aa1+bb1)/2,(aa2+bb2)/2,(aa3+bb3)/2,(aa4+bb4)/2,(aa5+bb5)/2) - C1*(bb1-aa1)/2 - C2*(bb2-aa2)/2 - C3*(bb3-aa3)/2 - C4*(bb4-aa4)/2 - C5*(bb5-aa5)/2; if bound <= 0.0976 i=i+1; A(2,:)=[bound aa1 bb1 aa2 bb2 aa3 bb3 aa4 bb4 aa5 bb5]; j=2; end case 2 aa1 = B(1,2); bb1 = B(1,3); aa2 = B(1,4); bb2 = B(1,4)+d2; aa3 = B(1,6); bb3 = B(1,7); aa4 = B(1,8); bb4 = B(1,9); aa5 = B(1,10); bb5 = B(1,11); bound = cvh((aa1+bb1)/2,(aa2+bb2)/2,(aa3+bb3)/2,(aa4+bb4)/2,(aa5+bb5)/2) - C1*(bb1-aa1)/2 - C2*(bb2-aa2)/2 - C3*(bb3-aa3)/2 - C4*(bb4-aa4)/2 - C5*(bb5-aa5)/2; if bound <= 0.0976 i=i+1; A(1,:)=[bound aa1 bb1 aa2 bb2 aa3 bb3 aa4 bb4 aa5 bb5]; j=1; end aa1 = B(1,2); bb1 = B(1,3); aa2 = B(1,4)+d2; bb2 = B(1,4)+2*d2; aa3 = B(1,6); bb3 = B(1,7); aa4 = B(1,8); bb4 = B(1,9); aa5 = B(1,10); bb5 = B(1,11); bound = cvh((aa1+bb1)/2,(aa2+bb2)/2,(aa3+bb3)/2,(aa4+bb4)/2,(aa5+bb5)/2) - C1*(bb1-aa1)/2 - C2*(bb2-aa2)/2 - C3*(bb3-aa3)/2 - C4*(bb4-aa4)/2 - C5*(bb5-aa5)/2; if bound <= 0.0976 i=i+1; A(2,:)=[bound aa1 bb1 aa2 bb2 aa3 bb3 aa4 bb4 aa5 bb5]; j=2; end case 3 aa1 = B(1,2); bb1 = B(1,3); aa2 = B(1,4); bb2 = B(1,5); aa3 = B(1,6); bb3 = B(1,6)+d3; aa4 = B(1,8); bb4 = B(1,9); aa5 = B(1,10); bb5 = B(1,11); bound = cvh((aa1+bb1)/2,(aa2+bb2)/2,(aa3+bb3)/2,(aa4+bb4)/2,(aa5+bb5)/2) - C1*(bb1-aa1)/2 - C2*(bb2-aa2)/2 - C3*(bb3-aa3)/2 - C4*(bb4-aa4)/2 - C5*(bb5-aa5)/2; if bound <= 0.0976 i=i+1; A(1,:)=[bound aa1 bb1 aa2 bb2 aa3 bb3 aa4 bb4 aa5 bb5]; j=1; end aa1 = B(1,2); bb1 = B(1,3); aa2 = B(1,4); bb2 = B(1,5); aa3 = B(1,6)+d3; bb3 = B(1,6)+2*d3; aa4 = B(1,8); bb4 = B(1,9); aa5 = B(1,10); bb5 = B(1,11); bound = cvh((aa1+bb1)/2,(aa2+bb2)/2,(aa3+bb3)/2,(aa4+bb4)/2,(aa5+bb5)/2) - C1*(bb1-aa1)/2 - C2*(bb2-aa2)/2 - C3*(bb3-aa3)/2 - C4*(bb4-aa4)/2 - C5*(bb5-aa5)/2; if bound <= 0.0976 i=i+1; A(2,:)=[bound aa1 bb1 aa2 bb2 aa3 bb3 aa4 bb4 aa5 bb5]; j=2; end case 4 aa1 = B(1,2); bb1 = B(1,3); aa2 = B(1,4); bb2 = B(1,5); aa3 = B(1,6); bb3 = B(1,7); aa4 = B(1,8); bb4 = B(1,8)+d4; aa5 = B(1,10); bb5 = B(1,11); bound = cvh((aa1+bb1)/2,(aa2+bb2)/2,(aa3+bb3)/2,(aa4+bb4)/2, (aa5+bb5)/2) - C1*(bb1-aa1)/2 - C2*(bb2-aa2)/2 - C3*(bb3-aa3)/2 - C4*(bb4-aa4)/2 - C5*(bb5-aa5)/2; if bound <= 0.0976 i=i+1; A(1,:)=[bound aa1 bb1 aa2 bb2 aa3 bb3 aa4 bb4 aa5 bb5]; j=1; end aa1 = B(1,2); bb1 = B(1,3); aa2 = B(1,4); bb2 = B(1,5); aa3 = B(1,6); bb3 = B(1,7); aa4 = B(1,8)+d4; bb4 = B(1,8)+2*d4; aa5 = B(1,10); bb5 = B(1,11); bound = cvh((aa1+bb1)/2,(aa2+bb2)/2,(aa3+bb3)/2,(aa4+bb4)/2,(aa5+bb5)/2) - C1*(bb1-aa1)/2 - C2*(bb2-aa2)/2 - C3*(bb3-aa3)/2 - C4*(bb4-aa4)/2 - C5*(bb5-aa5)/2; if bound <= 0.0976 i=i+1; A(2,:)=[bound aa1 bb1 aa2 bb2 aa3 bb3 aa4 bb4 aa5 bb5]; j=2; end case 5 aa1 = B(1,2); bb1 = B(1,3); aa2 = B(1,4); bb2 = B(1,5); aa3 = B(1,6); bb3 = B(1,7); aa4 = B(1,8); bb4 = B(1,9); aa5 = B(1,10); bb5 = B(1,10)+d5; bound = cvh((aa1+bb1)/2,(aa2+bb2)/2,(aa3+bb3)/2,(aa4+bb4)/2,(aa5+bb5)/2) - C1*(bb1-aa1)/2 - C2*(bb2-aa2)/2 - C3*(bb3-aa3)/2 - C4*(bb4-aa4)/2 - C5*(bb5-aa5)/2; if bound <= 0.0976 i=i+1; A(1,:)=[bound aa1 bb1 aa2 bb2 aa3 bb3 aa4 bb4 aa5 bb5]; % if rem(k,100000)==0 % disp([' A=' num2str(A(1,1)) ' count =' num2str(k)]); % toc; % end j=1; end aa1 = B(1,2); bb1 = B(1,3); aa2 = B(1,4); bb2 = B(1,5); aa3 = B(1,6); bb3 = B(1,7); aa4 = B(1,8); bb4 = B(1,9); aa5 = B(1,10)+d5; bb5 = B(1,10)+2*d5; bound = cvh((aa1+bb1)/2,(aa2+bb2)/2,(aa3+bb3)/2,(aa4+bb4)/2,(aa5+bb5)/2) - C1*(bb1-aa1)/2 - C2*(bb2-aa2)/2 - C3*(bb3-aa3)/2 - C4*(bb4-aa4)/2 - C5*(bb5-aa5)/2; if bound <= 0.0976 i=i+1; A(2,:)=[bound aa1 bb1 aa2 bb2 aa3 bb3 aa4 bb4 aa5 bb5]; j=2; end otherwise error('Unknown method.'); end %compare A(i) and A(i+1) set B(1)=min{A(i),A(i+1)} and another one is B(k) if (i>n+1) if A(2,1)> A(1,1) B(1,:)=A(1,:); heapifydownN1(1,k); k=k+1; B(k,:)=A(2,:); heapifyup1(k); else B(1,:)=A(2,:); heapifydownN1(1,k); k=k+1; B(k,:)=A(1,:); heapifyup1(k); end else if i==n+1 if j==1 B(1,:)=A(1,:); heapifydownN1(1,k); else B(1,:)=A(2,:); heapifydownN1(1,k); end else B(1,:)=2*ones(1,11); heapifydownN1(1,k); end end n=i; end