function [amu,asd,q]=rob1(mtot,wt,g,nd,dpar); [g,nv1]=sort(g); w1=0; wg1=0; wg2=0; for m=1:mtot; nv1(m)=m; w=wt(nv1(m)); wg=w*g(m); w1=w1+w; wg1=wg1+wg; wg2=wg2+wg*g(m); d(m)=w1; t(m)=wg1; end; amu=wg1/w1; asd=(wg2/w1-amu^2)^(1/2); for id=1:nd; ak=exp(dpar(id)); l=floor(mtot/2); lstep=floor(mtot/2); ql=g(l)-1; %trick while ( (ql < g(l)) | (ql > g(l+1)) ); lstep=floor((lstep-1)/2)+1; ql=(t(l)+ak*(wg1-t(l)))/(d(l)+ak*(w1-d(l))); if (ql > g(l+1)); l=l+lstep; elseif (ql < g(l)); l=l-lstep; end; end; lstep=floor((lstep-1)/2)+1; ql=(t(l)+ak*(wg1-t(l)))/(d(l)+ak*(w1-d(l))); q(id)=ql; end; end;