proc rob1(gw); local w1, wg1, d, t, wg2, m, ak, gg, ql, qq; gw=sortc(gw,1); w1=sumc(gw[.,2]); d=cumsumc(gw[.,2]); wg1=gw[.,2].* gw[.,1]; t=cumsumc(wg1); wg2=sumc(gw[.,1].*wg1); wg1=sumc(wg1); amu=wg1/w1; asd=sqrt(wg2/w1-amu^2); m=rows(gw); gg=zeros(m,1); for i (1,nd,1); ak=exp(dpar[i]); ql=(t+ak*(wg1-t))./(d+ak*(w1-d)); gg[1:(m-1)]=gw[2:m,1]; gg[m]=gw[m,2]-1; qq=selif(ql,ql.>=gw[.,1] .and ql .<=gg); q[i]=qq[1]; endfor; retp(" "); endp;