program cauchitasinhinnerv2
version 13
args lnf theta lsigma
tempvar sigma 
quietly gen double `sigma' = exp(`lsigma')
quietly replace `lnf' = ln((2*exp(`theta')*(1 - 2*$ML_y1 + (1 + exp(2*(`theta')))*$ML_y1^2)* ///
   (`sigma'))/(_pi*(1 - 4*$ML_y1 + $ML_y1^3*(-4 + exp(2*(`theta'))*(4 - 8*(`sigma')^2)) + ///
   $ML_y1^2*(6 + exp(2*(`theta'))*(-2 + 4*(`sigma')^2)) + $ML_y1^4*(1 + exp(4*(`theta')) + ///
   exp(2*(`theta'))*(-2 + 4*(`sigma')^2))))) /// 
   if $ML_y1 > 0 & $ML_y1 < 1
quietly replace `lnf' = ln(2*`sigma'*exp(`theta')/_pi) if $ML_y1 ==0
quietly replace `lnf' = ln(2*`sigma'/(_pi*exp(`theta'))) if $ML_y1 ==1
end