*! v 1.2.2 11Nov96. STB-34 sbe13 program define xri_enll version 4.0 local ll "`1'" local M "`2'" local S "`3'" if "`4'"=="" { local G $S_gamma } else local G "`4'" tempname ln2pi small scalar `ln2pi'=1.837877 scalar `small'=1e-9 quietly { if !$S_cv & !$S_lns { local s `S' /* sigma parametrization */ } else { tempvar s if $S_lns { /* log S parametrization */ if $S_cv { gen double `s' = `M'*exp(`S') } else gen double `s' = exp(`S') } else gen double `s' = `M'*`S' } * s(igma) is scale factor tempvar z Gz cap drop __U gen double `z' = ($S_mldepn-`M')/`s' gen double `Gz' = `G'*`z' gen double __U = cond(abs(`Gz')<`small', /* */ (1+0.5*`Gz')*`z', (exp(`Gz')-1)/`G' ) replace `ll' = -0.5*`ln2pi'-log(`s')-0.5*__U^2+`Gz' if $S_trunc { replace `ll' = `ll'-log( /* */ cond(`G'<-`small', normprob(-1/`G'), 1 ) /* */ -cond(`G'<`small', 0, normprob(-1/`G') ) ) } } end