static void sd_1d97_float(float *p, int i0, int i1)

{

    int i;



    if (i1 <= i0 + 1) {

        if (i0 == 1)

            p[1] *= F_LFTG_X;

        else

            p[0] *= F_LFTG_K;

        return;

    }



    extend97_float(p, i0, i1);

    i0++; i1++;



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

        p[2*i+1] -= 1.586134 * (p[2*i] + p[2*i+2]);

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

        p[2*i] -= 0.052980 * (p[2*i-1] + p[2*i+1]);

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

        p[2*i+1] += 0.882911 * (p[2*i] + p[2*i+2]);

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

        p[2*i] += 0.443506 * (p[2*i-1] + p[2*i+1]);

}
