GLOBALS_SECTION DATA_SECTION init_int nobs init_int nTeams; init_ivector homeTeams(1,nobs); init_ivector awayTeams(1,nobs); init_ivector homeGoals(1,nobs); init_ivector awayGoals(1,nobs); PARAMETER_SECTION init_bounded_number gamma(1.0,2.0); //home adv init_bounded_dev_vector alpha(1,nTeams,-0.99,4.0); //attack..sum to zero (add one later) init_bounded_vector beta(1,nTeams,0.01,4.0); objective_function_value loglik; PRELIMINARY_CALCS_SECTION for(int i=1; i<=nTeams; i++) { alpha(i) = 1.0; beta(i) = 1.0; } gamma = 1.5; PROCEDURE_SECTION loglik=0.0; for(int i=1;i<=nobs;i++) { int h = homeTeams(i); int a = awayTeams(i); dvariable lambda = (alpha(h)+1.0)*beta(a)*gamma; dvariable mu = (alpha(a)+1.0)*beta(h); loglik -= -lambda + log(lambda)*homeGoals(i)-mu + log(mu)*awayGoals(i); } cout << " loglik = " << loglik << endl; if(isnan(value(loglik))) { cout << " loglik was nan!! " << endl; for(int i=1; i<=nTeams; i++) { cout << "Team " << i << " alpha,beta: " << alpha(i) << " , " << beta(i) << endl; if(alpha(i)<-0.99) cout << "THIS TEXT SHOULD NEVER PRINT!" << endl; } cout << " gamma = " << gamma << endl; ad_exit(1); } REPORT_SECTION TOP_OF_MAIN_SECTION arrmblsize=20000000; gradient_structure::set_GRADSTACK_BUFFER_SIZE(20000); gradient_structure::set_CMPDIF_BUFFER_SIZE(520000000); gradient_structure::set_MAX_NVAR_OFFSET(50000); gradient_structure::set_NUM_DEPENDENT_VARIABLES(500);