static void sd_1d97_int(int *p, int i0, int i1)

{

    int i;



    if (i1 <= i0 + 1) {

        if (i0 == 1)

            p[1] = (p[1] * I_LFTG_X + (1<<15)) >> 16;

        else

            p[0] = (p[0] * I_LFTG_K + (1<<15)) >> 16;

        return;

    }



    extend97_int(p, i0, i1);

    i0++; i1++;



    for (i = i0/2 - 2; i < i1/2 + 1; i++)

        p[2 * i + 1] -= (I_LFTG_ALPHA * (p[2 * i]     + p[2 * i + 2]) + (1 << 15)) >> 16;

    for (i = i0/2 - 1; i < i1/2 + 1; i++)

        p[2 * i]     -= (I_LFTG_BETA  * (p[2 * i - 1] + p[2 * i + 1]) + (1 << 15)) >> 16;

    for (i = i0/2 - 1; i < i1/2; i++)

        p[2 * i + 1] += (I_LFTG_GAMMA * (p[2 * i]     + p[2 * i + 2]) + (1 << 15)) >> 16;

    for (i = i0/2; i < i1/2; i++)

        p[2 * i]     += (I_LFTG_DELTA * (p[2 * i - 1] + p[2 * i + 1]) + (1 << 15)) >> 16;

}

static void sd_1d97_int(int *p, int i0, int i1)

{

    int i;



    if (i1 <= i0 + 1) {

        if (i0 == 1)

            p[1] = (p[1] * I_LFTG_X + (1<<15)) >> 16;

        else

            p[0] = (p[0] * I_LFTG_K + (1<<15)) >> 16;

        return;

    }



    extend97_int(p, i0, i1);

    i0++; i1++;



    for (i = i0/2 - 2; i < i1/2 + 1; i++)

        p[2 * i + 1] -= (I_LFTG_ALPHA * (p[2 * i]     + p[2 * i + 2]) + (1 << 15)) >> 16;

    for (i = i0/2 - 1; i < i1/2 + 1; i++)

        p[2 * i]     -= (I_LFTG_BETA  * (p[2 * i - 1] + p[2 * i + 1]) + (1 << 15)) >> 16;

    for (i = i0/2 - 1; i < i1/2; i++)

        p[2 * i + 1] += (I_LFTG_GAMMA * (p[2 * i]     + p[2 * i + 2]) + (1 << 15)) >> 16;

    for (i = i0/2; i < i1/2; i++)

        p[2 * i]     += (I_LFTG_DELTA * (p[2 * i - 1] + p[2 * i + 1]) + (1 << 15)) >> 16;

}

            p[1] = (p[1] * I_LFTG_X + (1<<15)) >> 16;
static void FUNC_0(int *VAR_0, int VAR_1, int VAR_2)

{

    int VAR_3;



    if (VAR_2 <= VAR_1 + 1) {

        if (VAR_1 == 1)

            VAR_0[1] = (VAR_0[1] * I_LFTG_X + (1<<15)) >> 16;

        else

            VAR_0[0] = (VAR_0[0] * I_LFTG_K + (1<<15)) >> 16;

        return;

    }



    extend97_int(VAR_0, VAR_1, VAR_2);

    VAR_1++; VAR_2++;



    for (VAR_3 = VAR_1/2 - 2; VAR_3 < VAR_2/2 + 1; VAR_3++)

        VAR_0[2 * VAR_3 + 1] -= (I_LFTG_ALPHA * (VAR_0[2 * VAR_3]     + VAR_0[2 * VAR_3 + 2]) + (1 << 15)) >> 16;

    for (VAR_3 = VAR_1/2 - 1; VAR_3 < VAR_2/2 + 1; VAR_3++)

        VAR_0[2 * VAR_3]     -= (I_LFTG_BETA  * (VAR_0[2 * VAR_3 - 1] + VAR_0[2 * VAR_3 + 1]) + (1 << 15)) >> 16;

    for (VAR_3 = VAR_1/2 - 1; VAR_3 < VAR_2/2; VAR_3++)

        VAR_0[2 * VAR_3 + 1] += (I_LFTG_GAMMA * (VAR_0[2 * VAR_3]     + VAR_0[2 * VAR_3 + 2]) + (1 << 15)) >> 16;

    for (VAR_3 = VAR_1/2; VAR_3 < VAR_2/2; VAR_3++)

        VAR_0[2 * VAR_3]     += (I_LFTG_DELTA * (VAR_0[2 * VAR_3 - 1] + VAR_0[2 * VAR_3 + 1]) + (1 << 15)) >> 16;

}

static void FUNC_0(int *VAR_0, int VAR_1, int VAR_2)
{ int VAR_3; if (VAR_2 <= VAR_1 + 1) { if (VAR_1 == 1)
VAR_0[1] = (VAR_0[1] * I_LFTG_X + (1<<15)) >> 16; else
VAR_0[0] = (VAR_0[0] * I_LFTG_K + (1<<15)) >> 16; return; } extend97_int(VAR_0, VAR_1, VAR_2); VAR_1++; VAR_2++; for (VAR_3 = VAR_1/2 - 2; VAR_3 < VAR_2/2 + 1; VAR_3++) VAR_0[2 * VAR_3 + 1] -= (I_LFTG_ALPHA * (VAR_0[2 * VAR_3]     + VAR_0[2 * VAR_3 + 2]) + (1 << 15)) >> 16; for (VAR_3 = VAR_1/2 - 1; VAR_3 < VAR_2/2 + 1; VAR_3++) VAR_0[2 * VAR_3]     -= (I_LFTG_BETA  * (VAR_0[2 * VAR_3 - 1] + VAR_0[2 * VAR_3 + 1]) + (1 << 15)) >> 16; for (VAR_3 = VAR_1/2 - 1; VAR_3 < VAR_2/2; VAR_3++) VAR_0[2 * VAR_3 + 1] += (I_LFTG_GAMMA * (VAR_0[2 * VAR_3]     + VAR_0[2 * VAR_3 + 2]) + (1 << 15)) >> 16; for (VAR_3 = VAR_1/2; VAR_3 < VAR_2/2; VAR_3++) VAR_0[2 * VAR_3]     += (I_LFTG_DELTA * (VAR_0[2 * VAR_3 - 1] + VAR_0[2 * VAR_3 + 1]) + (1 << 15)) >> 16; }