program define ztnbp_ll args lnf xb lnalpha p qui { local y "$ML_y1" tempvar m gen double `m' = exp((2-`p')*`xb'-`lnalpha') replace `lnf' = lngamma(`m'+`y') - lngamma(`y'+1) /* */ - lngamma(`m') + `m' * ln(`m'/(`m'+exp(`xb'))) /* */ + `y' * ln(exp(`xb')/(`m'+exp(`xb'))) /* */ - ln(1 - (`m'/(`m'+exp(`xb')))^(`m')) } end