static int get_chow_dummy (const char *s, const DATASET *dset, int *err) { int v = current_series_index(dset, s); if (v < 0) { *err = E_UNKVAR; } else if (!gretl_isdummy(dset->t1, dset->t2, dset->Z[v])) { *err = E_DATA; } return v; }
static guint8 *make_types_array (const DATASET *dset, const int *list, int *nvars) { guint8 *t; if (list != NULL) { *nvars = list[0]; } else { *nvars = dset->v - 1; } t = malloc(*nvars); if (t != NULL) { const double *x; double xmin, xmax; int i, n_ok, j = 0; for (i=1; i<dset->v; i++) { if (include_var(list, i)) { x = dset->Z[i]; n_ok = gretl_minmax(dset->t1, dset->t2, x, &xmin, &xmax); if (n_ok == 0) { /* all missing, hmm */ t[j] = STATA_BYTE; } else if (gretl_isdummy(dset->t1, dset->t2, x)) { t[j] = STATA_BYTE; } else if (gretl_isint(dset->t1, dset->t2, x)) { if (xmin > -10000 && xmax < 10000) { t[j] = STATA_INT; } else if (xmin > -200000000 && xmax < 200000000) { t[j] = STATA_LONG; } else { t[j] = STATA_DOUBLE; } } else { t[j] = STATA_DOUBLE; } j++; } } } return t; }
MODEL logit_probit (int *list, DATASET *dset, int ci, gretlopt opt, PRN *prn) { int yv = list[1]; if (ci == LOGIT && (opt & OPT_M)) { return multinomial_logit(list, dset, opt, prn); } else if (ci == PROBIT && (opt & OPT_E)) { return reprobit_model(list, dset, opt, prn); } else if (gretl_isdummy(dset->t1, dset->t2, dset->Z[yv])) { if (ci == LOGIT) { return binary_logit(list, dset, opt, prn); } else { return binary_probit(list, dset, opt, prn); } } else { if (ci == LOGIT) { return ordered_logit(list, dset, opt, prn); } else { return ordered_probit(list, dset, opt, prn); } } }