*! version 1.0.0  10mar2009
*! author: Partha Deb

version 10.1

program mtreatreg_gamma_p

	syntax anything(id="newvarname") [if] [in] ///
		[, MU XB AT(string)]

	syntax newvarname [if] [in] [, * ]

	tempname b c k lambda rnd latf
	mat `b' = e(b)
	sca `c' = colsof(`b')
	sca `k' = `e(k_aux)'-1
	mat `lambda' = `b'[1,(`c'-`k'+1)..`c']
	if "`at'"=="" {
		mat `rnd' = J(1,`k',0)
	}
	else {
		mat `rnd' = `at'
	}
	sca `latf' = 0
	forvalues i = 1/`=`e(k_aux)'-1' {
		sca `latf' = `latf' + `lambda'[1,`i']*`rnd'[1,`i']
	}

	tempvar lnalpha alpha
	quietly _predict double `lnalpha' `if' `in', equation(lnalpha)
	quietly gen double `alpha' = exp(`lnalpha')
	quietly _predict `typlist' `varlist' `if' `in', equation(`e(outcome)')

	if "`xb'"=="" {
		quietly replace `varlist' = `alpha'*exp(`varlist' + `latf')
		label variable `varlist' "E(outcome)"
	}

	if "`xb'"=="xb" {
		label variable `varlist' "xb: outcome"
	}

end