/* Split one subband into 2 subsubbands with a symmetric real filter. The filter must have its non-center even coefficients equal to zero.  */
static void hybrid2_re(float(*in)[2], float(*out)[32][2], const float filter[7], int len, int reverse)
/* Split one subband into 2 subsubbands with a symmetric real filter. The filter must have its non-center even coefficients equal to zero.  */
static void hybrid2_re(float(*in)[2], float(*out)[32][2], const float filter[7], int len, int reverse)
{
    int i, j;
    for (i = 0; i < len; i++, in++) {
        float re_in = filter[6] * in[6][0];
        float re_op = 0.0f;
        float im_in = filter[6] * in[6][1];
        float im_op = 0.0f;
        for (j = 0; j < 6; j += 2) {
            re_op += filter[j+1] * (in[j+1][0] + in[12-j-1][0]);
            im_op += filter[j+1] * (in[j+1][1] + in[12-j-1][1]);
        }
        out[ reverse][i][0] = re_in + re_op;
        out[ reverse][i][1] = im_in + im_op;
        out[!reverse][i][0] = re_in - re_op;
        out[!reverse][i][1] = im_in - im_op;
    }
}