On Wed, 5 May 2010, denis joubert wrote:

> I think there is a bug into laggenr_from_to or i don't know to use it.
> when you call it twice on 2 different id of variable(already stored
> into Z), it does restart the position of the returned list.
> For example :
> listlag1 = laggenr_from_to(1, 1, 50, &m_Z, m_datainfo, &err);
> listlag2 = laggenr_from_to(2, 1, 50, &m_Z, m_datainfo, &err);
> return the same numbers into listlag1 and listlag2.

You will have to show me a small but complete program that
produces unexpected results to make me believe there is a bug. The
following program produces two distinct lists: 3 lags of the first
variable, then 3 lags of the second.

#include <gretl/libgretl.h>

int main (void)
{
    DATAINFO *m_datainfo;
    double **m_Z;
    int *laglist1, *laglist2;
    PRN *prn;
    int err = 0;

    libgretl_init();

    prn = gretl_print_new(GRETL_PRINT_STDOUT, NULL);

    m_datainfo = create_new_dataset(&m_Z, 3, 10, 0);

    strcpy(m_datainfo->varname[1], "y1");
    strcpy(m_datainfo->varname[2], "y2");

    m_Z[1][0] = 1431225;
    m_Z[1][1] = 207958;
    m_Z[1][2] = 1328798;
    m_Z[1][3] = 1412733;
    m_Z[1][4] = 1766147;
    m_Z[1][5] = 1635199;
    m_Z[1][6] = 1565249;
    m_Z[1][7] = 949787;
    m_Z[1][8] = 1130386;
    m_Z[1][9] = 834164;

    m_Z[2][0] = 2080654;
    m_Z[2][1] = 1153485;
    m_Z[2][2] = 857538;
    m_Z[2][3] = 1363286;
    m_Z[2][4] = 2051956;
    m_Z[2][5] = 660288;
    m_Z[2][6] = 664975;
    m_Z[2][7] = 1831966;
    m_Z[2][8] = 1516991;
    m_Z[2][9] = 1284537;

    laglist1 = laggenr_from_to(1, 1, 3, &m_Z, m_datainfo, &err);
    laglist2 = laggenr_from_to(2, 1, 3, &m_Z, m_datainfo, &err);

    printlist(laglist1, "list of lags for var 1");
    printlist(laglist2, "list of lags for var 2");

    free(laglist1);
    free(laglist2);

    destroy_dataset(m_Z, m_datainfo);
    gretl_print_destroy(prn);

    libgretl_cleanup();

    return 0;
}

Allin Cottrell

Reply via email to