static void sr_1d97_int(int32_t *p, int i0, int i1)

{

    int i;



    if (i1 <= i0 + 1) {

        if (i0 == 1)

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

        else

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

        return;

    }



    extend97_int(p, i0, i1);



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

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

    /* step 4 */

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

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

    /*step 5*/

    for (i = (i0 >> 1); i < (i1 >> 1) + 1; i++)

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

    /* step 6 */

    for (i = (i0 >> 1); i < (i1 >> 1); i++)

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

}

static void sr_1d97_int(int32_t *p, int i0, int i1)

{

    int i;



    if (i1 <= i0 + 1) {

        if (i0 == 1)

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

        else

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

        return;

    }



    extend97_int(p, i0, i1);



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

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

    

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

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

    

    for (i = (i0 >> 1); i < (i1 >> 1) + 1; i++)

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

    

    for (i = (i0 >> 1); i < (i1 >> 1); i++)

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

}

        p[2 * i]     -= (I_LFTG_DELTA * (p[2 * i - 1] + p[2 * i + 1]) + (1 << 15)) >> 16;         p[2 * i + 1] -= (I_LFTG_GAMMA * (p[2 * i]     + p[2 * i + 2]) + (1 << 15)) >> 16;         p[2 * i]     += (I_LFTG_BETA  * (p[2 * i - 1] + p[2 * i + 1]) + (1 << 15)) >> 16;         p[2 * i + 1] += (I_LFTG_ALPHA * (p[2 * i]     + p[2 * i + 2]) + (1 << 15)) >> 16;
static void FUNC_0(int32_t *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_K + (1<<16)) >> 17;

        else

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

        return;

    }



    extend97_int(VAR_0, VAR_1, VAR_2);



    for (VAR_3 = (VAR_1 >> 1) - 1; VAR_3 < (VAR_2 >> 1) + 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;

    

    for (VAR_3 = (VAR_1 >> 1) - 1; VAR_3 < (VAR_2 >> 1) + 1; 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 >> 1); VAR_3 < (VAR_2 >> 1) + 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 >> 1); VAR_3 < (VAR_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;

}

static void FUNC_0(int32_t *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_K + (1<<16)) >> 17; else
VAR_0[0] = (VAR_0[0] * I_LFTG_X + (1<<15)) >> 16; return; } extend97_int(VAR_0, VAR_1, VAR_2); for (VAR_3 = (VAR_1 >> 1) - 1; VAR_3 < (VAR_2 >> 1) + 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; for (VAR_3 = (VAR_1 >> 1) - 1; VAR_3 < (VAR_2 >> 1) + 1; 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 >> 1); VAR_3 < (VAR_2 >> 1) + 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 >> 1); VAR_3 < (VAR_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; }