*! version 1.0.0 STB-34 sts12 program define bartq version 5.0 local u `1' if `u' <= 0.0 | `u' >= 1.0 { noi di in red "argument of bartq must be in (0,1)" exit 198 } local left=.3 local right=2. local middle=1.15 local eps=.0001 local i=1 while `i' <= 100 { bartcdf `middle' * di $S_1 " " `left' " " `middle' " " `right' if $S_1 < `u' { local left=`middle'} else { local right=`middle'} local del=`right'-`left' if `del' < `eps' { * di `i' local i=101 global S_2=`middle' } else { local i=`i'+1 local middle=(`left'+`right')/2. } } * di $S_2 " " $S_1 end