src/main/java/net/sourceforge/jaad/aac/ps/PSFilterbank.java
static void channel_filter4(int frame_len, float[] filter,
		float[][] buffer, float[][][] X_hybrid) {
		int i;
		float[] input_re1 = new float[2], input_re2 = new float[2];
		float[] input_im1 = new float[2], input_im2 = new float[2];

		for(i = 0; i<frame_len; i++) {
			input_re1[0] = -(filter[2]*(buffer[i+2][0]+buffer[i+10][0]))
				+(filter[6]*buffer[i+6][0]);
			input_re1[1] = (-0.70710678118655f
				*((filter[1]*(buffer[i+1][0]+buffer[i+11][0]))
				+(filter[3]*(buffer[i+3][0]+buffer[i+9][0]))
				-(filter[5]*(buffer[i+5][0]+buffer[i+7][0]))));

			input_im1[0] = (filter[0]*(buffer[i+0][1]-buffer[i+12][1]))
				-(filter[4]*(buffer[i+4][1]-buffer[i+8][1]));
			input_im1[1] = (0.70710678118655f
				*((filter[1]*(buffer[i+1][1]-buffer[i+11][1]))
				-(filter[3]*(buffer[i+3][1]-buffer[i+9][1]))
				-(filter[5]*(buffer[i+5][1]-buffer[i+7][1]))));

			input_re2[0] = (filter[0]*(buffer[i+0][0]-buffer[i+12][0]))
				-(filter[4]*(buffer[i+4][0]-buffer[i+8][0]));
			input_re2[1] = (0.70710678118655f
				*((filter[1]*(buffer[i+1][0]-buffer[i+11][0]))
				-(filter[3]*(buffer[i+3][0]-buffer[i+9][0]))
				-(filter[5]*(buffer[i+5][0]-buffer[i+7][0]))));

			input_im2[0] = -(filter[2]*(buffer[i+2][1]+buffer[i+10][1]))
				+(filter[6]*buffer[i+6][1]);
			input_im2[1] = (-0.70710678118655f
				*((filter[1]*(buffer[i+1][1]+buffer[i+11][1]))
				+(filter[3]*(buffer[i+3][1]+buffer[i+9][1]))
				-(filter[5]*(buffer[i+5][1]+buffer[i+7][1]))));

			/* q == 0 */
			X_hybrid[i][0][0] = input_re1[0]+input_re1[1]+input_im1[0]+input_im1[1];
			X_hybrid[i][0][1] = -input_re2[0]-input_re2[1]+input_im2[0]+input_im2[1];

			/* q == 1 */
			X_hybrid[i][1][0] = input_re1[0]-input_re1[1]-input_im1[0]+input_im1[1];
			X_hybrid[i][1][1] = input_re2[0]-input_re2[1]+input_im2[0]-input_im2[1];

			/* q == 2 */
			X_hybrid[i][2][0] = input_re1[0]-input_re1[1]+input_im1[0]-input_im1[1];
			X_hybrid[i][2][1] = -input_re2[0]+input_re2[1]+input_im2[0]-input_im2[1];

			/* q == 3 */
			X_hybrid[i][3][0] = input_re1[0]+input_re1[1]-input_im1[0]-input_im1[1];
			X_hybrid[i][3][1] = input_re2[0]+input_re2[1]+input_im2[0]+input_im2[1];
		}
	}
static void channel_filter4(int frame_len, float[] filter,
		float[][] buffer, float[][][] X_hybrid) {
		int i;
		float[] input_re1 = new float[2], input_re2 = new float[2];
		float[] input_im1 = new float[2], input_im2 = new float[2];

		for(i = 0; i<frame_len; i++) {
			input_re1[0] = -(filter[2]*(buffer[i+2][0]+buffer[i+10][0]))
				+(filter[6]*buffer[i+6][0]);
			input_re1[1] = (-0.70710678118655f
				*((filter[1]*(buffer[i+1][0]+buffer[i+11][0]))
				+(filter[3]*(buffer[i+3][0]+buffer[i+9][0]))
				-(filter[5]*(buffer[i+5][0]+buffer[i+7][0]))));

			input_im1[0] = (filter[0]*(buffer[i+0][1]-buffer[i+12][1]))
				-(filter[4]*(buffer[i+4][1]-buffer[i+8][1]));
			input_im1[1] = (0.70710678118655f
				*((filter[1]*(buffer[i+1][1]-buffer[i+11][1]))
				-(filter[3]*(buffer[i+3][1]-buffer[i+9][1]))
				-(filter[5]*(buffer[i+5][1]-buffer[i+7][1]))));

			input_re2[0] = (filter[0]*(buffer[i+0][0]-buffer[i+12][0]))
				-(filter[4]*(buffer[i+4][0]-buffer[i+8][0]));
			input_re2[1] = (0.70710678118655f
				*((filter[1]*(buffer[i+1][0]-buffer[i+11][0]))
				-(filter[3]*(buffer[i+3][0]-buffer[i+9][0]))
				-(filter[5]*(buffer[i+5][0]-buffer[i+7][0]))));

			input_im2[0] = -(filter[2]*(buffer[i+2][1]+buffer[i+10][1]))
				+(filter[6]*buffer[i+6][1]);
			input_im2[1] = (-0.70710678118655f
				*((filter[1]*(buffer[i+1][1]+buffer[i+11][1]))
				+(filter[3]*(buffer[i+3][1]+buffer[i+9][1]))
				-(filter[5]*(buffer[i+5][1]+buffer[i+7][1]))));

			/* q == 0 */
			X_hybrid[i][0][0] = input_re1[0]+input_re1[1]+input_im1[0]+input_im1[1];
			X_hybrid[i][0][1] = -input_re2[0]-input_re2[1]+input_im2[0]+input_im2[1];

			/* q == 1 */
			X_hybrid[i][1][0] = input_re1[0]-input_re1[1]-input_im1[0]+input_im1[1];
			X_hybrid[i][1][1] = input_re2[0]-input_re2[1]+input_im2[0]-input_im2[1];

			/* q == 2 */
			X_hybrid[i][2][0] = input_re1[0]-input_re1[1]+input_im1[0]-input_im1[1];
			X_hybrid[i][2][1] = -input_re2[0]+input_re2[1]+input_im2[0]-input_im2[1];

			/* q == 3 */
			X_hybrid[i][3][0] = input_re1[0]+input_re1[1]-input_im1[0]-input_im1[1];
			X_hybrid[i][3][1] = input_re2[0]+input_re2[1]+input_im2[0]+input_im2[1];
		}
	}
static void channel_filter4 ( int frame_len , float [ ] filter , float [ ] [ ] buffer , float [ ] [ ] [ ] X_hybrid ) { int i ; float [ ] input_re1 = new float [ 2 ] , input_re2 = new float [ 2 ] ; float [ ] input_im1 = new float [ 2 ] , input_im2 = new float [ 2 ] ; for ( i = 0 ; i < frame_len ; i ++ ) { input_re1 [ 0 ] = - ( filter [ 2 ] * ( buffer [ i + 2 ] [ 0 ] + buffer [ i + 10 ] [ 0 ] ) ) + ( filter [ 6 ] * buffer [ i + 6 ] [ 0 ] ) ; input_re1 [ 1 ] = ( - 0.70710678118655f * ( ( filter [ 1 ] * ( buffer [ i + 1 ] [ 0 ] + buffer [ i + 11 ] [ 0 ] ) ) + ( filter [ 3 ] * ( buffer [ i + 3 ] [ 0 ] + buffer [ i + 9 ] [ 0 ] ) ) - ( filter [ 5 ] * ( buffer [ i + 5 ] [ 0 ] + buffer [ i + 7 ] [ 0 ] ) ) ) ) ; input_im1 [ 0 ] = ( filter [ 0 ] * ( buffer [ i + 0 ] [ 1 ] - buffer [ i + 12 ] [ 1 ] ) ) - ( filter [ 4 ] * ( buffer [ i + 4 ] [ 1 ] - buffer [ i + 8 ] [ 1 ] ) ) ; input_im1 [ 1 ] = ( 0.70710678118655f * ( ( filter [ 1 ] * ( buffer [ i + 1 ] [ 1 ] - buffer [ i + 11 ] [ 1 ] ) ) - ( filter [ 3 ] * ( buffer [ i + 3 ] [ 1 ] - buffer [ i + 9 ] [ 1 ] ) ) - ( filter [ 5 ] * ( buffer [ i + 5 ] [ 1 ] - buffer [ i + 7 ] [ 1 ] ) ) ) ) ; input_re2 [ 0 ] = ( filter [ 0 ] * ( buffer [ i + 0 ] [ 0 ] - buffer [ i + 12 ] [ 0 ] ) ) - ( filter [ 4 ] * ( buffer [ i + 4 ] [ 0 ] - buffer [ i + 8 ] [ 0 ] ) ) ; input_re2 [ 1 ] = ( 0.70710678118655f * ( ( filter [ 1 ] * ( buffer [ i + 1 ] [ 0 ] - buffer [ i + 11 ] [ 0 ] ) ) - ( filter [ 3 ] * ( buffer [ i + 3 ] [ 0 ] - buffer [ i + 9 ] [ 0 ] ) ) - ( filter [ 5 ] * ( buffer [ i + 5 ] [ 0 ] - buffer [ i + 7 ] [ 0 ] ) ) ) ) ; input_im2 [ 0 ] = - ( filter [ 2 ] * ( buffer [ i + 2 ] [ 1 ] + buffer [ i + 10 ] [ 1 ] ) ) + ( filter [ 6 ] * buffer [ i + 6 ] [ 1 ] ) ; input_im2 [ 1 ] = ( - 0.70710678118655f * ( ( filter [ 1 ] * ( buffer [ i + 1 ] [ 1 ] + buffer [ i + 11 ] [ 1 ] ) ) + ( filter [ 3 ] * ( buffer [ i + 3 ] [ 1 ] + buffer [ i + 9 ] [ 1 ] ) ) - ( filter [ 5 ] * ( buffer [ i + 5 ] [ 1 ] + buffer [ i + 7 ] [ 1 ] ) ) ) ) ; /* q == 0 */ X_hybrid [ i ] [ 0 ] [ 0 ] = input_re1 [ 0 ] + input_re1 [ 1 ] + input_im1 [ 0 ] + input_im1 [ 1 ] ; X_hybrid [ i ] [ 0 ] [ 1 ] = - input_re2 [ 0 ] - input_re2 [ 1 ] + input_im2 [ 0 ] + input_im2 [ 1 ] ; /* q == 1 */ X_hybrid [ i ] [ 1 ] [ 0 ] = input_re1 [ 0 ] - input_re1 [ 1 ] - input_im1 [ 0 ] + input_im1 [ 1 ] ; X_hybrid [ i ] [ 1 ] [ 1 ] = input_re2 [ 0 ] - input_re2 [ 1 ] + input_im2 [ 0 ] - input_im2 [ 1 ] ; /* q == 2 */ X_hybrid [ i ] [ 2 ] [ 0 ] = input_re1 [ 0 ] - input_re1 [ 1 ] + input_im1 [ 0 ] - input_im1 [ 1 ] ; X_hybrid [ i ] [ 2 ] [ 1 ] = - input_re2 [ 0 ] + input_re2 [ 1 ] + input_im2 [ 0 ] - input_im2 [ 1 ] ; /* q == 3 */ X_hybrid [ i ] [ 3 ] [ 0 ] = input_re1 [ 0 ] + input_re1 [ 1 ] - input_im1 [ 0 ] - input_im1 [ 1 ] ; X_hybrid [ i ] [ 3 ] [ 1 ] = input_re2 [ 0 ] + input_re2 [ 1 ] + input_im2 [ 0 ] + input_im2 [ 1 ] ; } }
/* complex filter, size 4
/ * complex filter size 4