Exemple #1
0
static midas_info *minfo_from_array (gretl_array *A,
				     int *nmidas,
				     int *err)
{
    int n = gretl_array_get_length(A);
    midas_info *m, *minfo = NULL;

    if (n == 0) {
	*err = E_DATA;
    } else {
	minfo = malloc(n * sizeof *minfo);
	if (minfo == NULL) {
	    *err = E_ALLOC;
	}
    }

    if (minfo != NULL) {
	gretl_bundle *b;
	int i;

	for (i=0; i<n && !*err; i++) {
	    m = &minfo[i];
	    midas_info_init(m);
	    b = gretl_array_get_bundle(A, i);
	    if (b == NULL) {
		*err = E_DATA;
	    } else {
		strcpy(m->lname, gretl_bundle_get_string(b, "lname", err));
		strcpy(m->mname, gretl_bundle_get_string(b, "mname", err));
		m->prelag = gretl_bundle_get_int(b, "prelag", err);
		m->minlag = gretl_bundle_get_int(b, "minlag", err);
		m->maxlag = gretl_bundle_get_int(b, "maxlag", err);
		m->type = gretl_bundle_get_int(b, "type", err);
		m->nparm = gretl_bundle_get_int(b, "nparm", err);
	    }
	}

	if (*err) {
	    free(minfo);
	    minfo = NULL;
	}
    }

    if (!*err) {
	*nmidas = n;
    }

    return minfo;
}
Exemple #2
0
static void print_bundled_item (gpointer key, gpointer value, gpointer p)
{
    bundled_item *item = value;
    const gchar *kstr = key;
    gretl_array *a;
    gretl_matrix *m;
    double x;
    char *s;
    PRN *prn = p;

    switch (item->type) {
    case GRETL_TYPE_DOUBLE:
	x = *(double *) item->data;
	if (na(x)) {
	    pprintf(prn, " %s = NA", kstr);
	} else {
	    pprintf(prn, " %s = %g", kstr, x);
	}	
	break;
    case GRETL_TYPE_STRING:
	s = (char *) item->data;
	if (strlen(s) < 64) {
	    pprintf(prn, " %s = %s", kstr, s);
	} else {
	    pprintf(prn, " %s (%s)", kstr, 
		    gretl_type_get_name(item->type));
	}	
	break;
    case GRETL_TYPE_BUNDLE:
	pprintf(prn, " %s (%s)", kstr, 
		gretl_type_get_name(item->type));
	break;
    case GRETL_TYPE_MATRIX:
    case GRETL_TYPE_MATRIX_REF:
	m = item->data;
	if (m->rows == 1 && m->cols == 1) {
	    pprintf(prn, " %s = %g", kstr, m->val[0]);
	} else {
	    pprintf(prn, " %s (%s: %d x %d)", kstr, 
		    gretl_type_get_name(item->type), 
		    m->rows, m->cols);
	}
	break;
    case GRETL_TYPE_SERIES:
	pprintf(prn, " %s (%s: length %d)", kstr, 
		gretl_type_get_name(item->type), item->size);
	break;
    case GRETL_TYPE_ARRAY:
	a = item->data;
	{
	    GretlType t = gretl_array_get_type(a);
	    int n = gretl_array_get_length(a);

	    pprintf(prn, " %s = array of %s, length %d", kstr, 
		    gretl_type_get_name(t), n);
	}
	break;
    default:
	break;
    }

    if (item->note != NULL) {
	pprintf(prn, " %s\n", item->note);
    } else {
	pputc(prn, '\n');
    }
}