program define choi_lr_hypergeom
version 14

*    This program is called by ml and in turn calls hyperg_prob.
*    Its function is to call choi_lr_hyperg_prob using the macros required by ml

*    The ml program is intended to calculate a MLE for models that regress 
*    a dependent variable y against a linear predictor Xb. It requires a 
*    global macro $ML_y1, which equals the dependent variable and a local 
*    macro Xb which equals the linear predictor. In this example there is only 
*    a single record with dependent variable y1. Xb equals the constant term
*    in the linear predictor, which is the log odds ratio psi.

*    $ML_y1 = y1 is the observed number of successes on treatment 1
*    Xb is the log odds ratio psi
*    n1 & n2 are scalars defined in ChoiLRtest that equal the number of 
*        patients on treatments 1 and 2, respectively.
*    y2 is a variable that equals the number of successes on treatment 2
*    lnf is the log of the likelihood function

     args   lnf Xb 
     choi_lr_hyperg_prob n1 n2 $ML_y1 y2 `Xb'
     replace `lnf' = r(lnf) 
     
end