static void hybrid6_cx(float (*in)[2], float (*out)[32][2], const float (*filter)[7][2], int len)

{

    int i, j, ssb;

    int N = 8;

    float temp[8][2];



    for (i = 0; i < len; i++, in++) {

        for (ssb = 0; ssb < N; ssb++) {

            float sum_re = filter[ssb][6][0] * in[6][0], sum_im = filter[ssb][6][0] * in[6][1];

            for (j = 0; j < 6; j++) {

                float in0_re = in[j][0];

                float in0_im = in[j][1];

                float in1_re = in[12-j][0];

                float in1_im = in[12-j][1];

                sum_re += filter[ssb][j][0] * (in0_re + in1_re) - filter[ssb][j][1] * (in0_im - in1_im);

                sum_im += filter[ssb][j][0] * (in0_im + in1_im) + filter[ssb][j][1] * (in0_re - in1_re);

            }

            temp[ssb][0] = sum_re;

            temp[ssb][1] = sum_im;

        }

        out[0][i][0] = temp[6][0];

        out[0][i][1] = temp[6][1];

        out[1][i][0] = temp[7][0];

        out[1][i][1] = temp[7][1];

        out[2][i][0] = temp[0][0];

        out[2][i][1] = temp[0][1];

        out[3][i][0] = temp[1][0];

        out[3][i][1] = temp[1][1];

        out[4][i][0] = temp[2][0] + temp[5][0];

        out[4][i][1] = temp[2][1] + temp[5][1];

        out[5][i][0] = temp[3][0] + temp[4][0];

        out[5][i][1] = temp[3][1] + temp[4][1];

    }

}

static void hybrid6_cx(float (*in)[2], float (*out)[32][2], const float (*filter)[7][2], int len)

{

    int i, j, ssb;

    int N = 8;

    float temp[8][2];



    for (i = 0; i < len; i++, in++) {

        for (ssb = 0; ssb < N; ssb++) {

            float sum_re = filter[ssb][6][0] * in[6][0], sum_im = filter[ssb][6][0] * in[6][1];

            for (j = 0; j < 6; j++) {

                float in0_re = in[j][0];

                float in0_im = in[j][1];

                float in1_re = in[12-j][0];

                float in1_im = in[12-j][1];

                sum_re += filter[ssb][j][0] * (in0_re + in1_re) - filter[ssb][j][1] * (in0_im - in1_im);

                sum_im += filter[ssb][j][0] * (in0_im + in1_im) + filter[ssb][j][1] * (in0_re - in1_re);

            }

            temp[ssb][0] = sum_re;

            temp[ssb][1] = sum_im;

        }

        out[0][i][0] = temp[6][0];

        out[0][i][1] = temp[6][1];

        out[1][i][0] = temp[7][0];

        out[1][i][1] = temp[7][1];

        out[2][i][0] = temp[0][0];

        out[2][i][1] = temp[0][1];

        out[3][i][0] = temp[1][0];

        out[3][i][1] = temp[1][1];

        out[4][i][0] = temp[2][0] + temp[5][0];

        out[4][i][1] = temp[2][1] + temp[5][1];

        out[5][i][0] = temp[3][0] + temp[4][0];

        out[5][i][1] = temp[3][1] + temp[4][1];

    }

}

static void FUNC_0(float (*VAR_0)[2], float (*VAR_1)[32][2], const float (*VAR_2)[7][2], int VAR_3)

{

    int VAR_4, VAR_5, VAR_6;

    int VAR_7 = 8;

    float VAR_8[8][2];



    for (VAR_4 = 0; VAR_4 < VAR_3; VAR_4++, VAR_0++) {

        for (VAR_6 = 0; VAR_6 < VAR_7; VAR_6++) {

            float VAR_9 = VAR_2[VAR_6][6][0] * VAR_0[6][0], VAR_10 = VAR_2[VAR_6][6][0] * VAR_0[6][1];

            for (VAR_5 = 0; VAR_5 < 6; VAR_5++) {

                float VAR_11 = VAR_0[VAR_5][0];

                float VAR_12 = VAR_0[VAR_5][1];

                float VAR_13 = VAR_0[12-VAR_5][0];

                float VAR_14 = VAR_0[12-VAR_5][1];

                VAR_9 += VAR_2[VAR_6][VAR_5][0] * (VAR_11 + VAR_13) - VAR_2[VAR_6][VAR_5][1] * (VAR_12 - VAR_14);

                VAR_10 += VAR_2[VAR_6][VAR_5][0] * (VAR_12 + VAR_14) + VAR_2[VAR_6][VAR_5][1] * (VAR_11 - VAR_13);

            }

            VAR_8[VAR_6][0] = VAR_9;

            VAR_8[VAR_6][1] = VAR_10;

        }

        VAR_1[0][VAR_4][0] = VAR_8[6][0];

        VAR_1[0][VAR_4][1] = VAR_8[6][1];

        VAR_1[1][VAR_4][0] = VAR_8[7][0];

        VAR_1[1][VAR_4][1] = VAR_8[7][1];

        VAR_1[2][VAR_4][0] = VAR_8[0][0];

        VAR_1[2][VAR_4][1] = VAR_8[0][1];

        VAR_1[3][VAR_4][0] = VAR_8[1][0];

        VAR_1[3][VAR_4][1] = VAR_8[1][1];

        VAR_1[4][VAR_4][0] = VAR_8[2][0] + VAR_8[5][0];

        VAR_1[4][VAR_4][1] = VAR_8[2][1] + VAR_8[5][1];

        VAR_1[5][VAR_4][0] = VAR_8[3][0] + VAR_8[4][0];

        VAR_1[5][VAR_4][1] = VAR_8[3][1] + VAR_8[4][1];

    }

}

static void FUNC_0(float (*VAR_0)[2], float (*VAR_1)[32][2], const float (*VAR_2)[7][2], int VAR_3)
{ int VAR_4, VAR_5, VAR_6; int VAR_7 = 8; float VAR_8[8][2]; for (VAR_4 = 0; VAR_4 < VAR_3; VAR_4++, VAR_0++) { for (VAR_6 = 0; VAR_6 < VAR_7; VAR_6++) { float VAR_9 = VAR_2[VAR_6][6][0] * VAR_0[6][0], VAR_10 = VAR_2[VAR_6][6][0] * VAR_0[6][1]; for (VAR_5 = 0; VAR_5 < 6; VAR_5++) { float VAR_11 = VAR_0[VAR_5][0]; float VAR_12 = VAR_0[VAR_5][1]; float VAR_13 = VAR_0[12-VAR_5][0]; float VAR_14 = VAR_0[12-VAR_5][1]; VAR_9 += VAR_2[VAR_6][VAR_5][0] * (VAR_11 + VAR_13) - VAR_2[VAR_6][VAR_5][1] * (VAR_12 - VAR_14); VAR_10 += VAR_2[VAR_6][VAR_5][0] * (VAR_12 + VAR_14) + VAR_2[VAR_6][VAR_5][1] * (VAR_11 - VAR_13); } VAR_8[VAR_6][0] = VAR_9; VAR_8[VAR_6][1] = VAR_10; } VAR_1[0][VAR_4][0] = VAR_8[6][0]; VAR_1[0][VAR_4][1] = VAR_8[6][1]; VAR_1[1][VAR_4][0] = VAR_8[7][0]; VAR_1[1][VAR_4][1] = VAR_8[7][1]; VAR_1[2][VAR_4][0] = VAR_8[0][0]; VAR_1[2][VAR_4][1] = VAR_8[0][1]; VAR_1[3][VAR_4][0] = VAR_8[1][0]; VAR_1[3][VAR_4][1] = VAR_8[1][1]; VAR_1[4][VAR_4][0] = VAR_8[2][0] + VAR_8[5][0]; VAR_1[4][VAR_4][1] = VAR_8[2][1] + VAR_8[5][1]; VAR_1[5][VAR_4][0] = VAR_8[3][0] + VAR_8[4][0]; VAR_1[5][VAR_4][1] = VAR_8[3][1] + VAR_8[4][1]; } }