private void antialias(int ch, int gr)
{
int sb18, ss, sb18lim;
gr_info_s gr_info = (si.ch[ch].gr[gr]);
// 31 alias-reduction operations between each pair of sub-bands
// with 8 butterflies between each pair
if ((gr_info.window_switching_flag != 0) && (gr_info.block_type == 2) && !(gr_info.mixed_block_flag != 0))
return ;
if ((gr_info.window_switching_flag != 0) && (gr_info.mixed_block_flag != 0) && (gr_info.block_type == 2))
{
sb18lim = 18;
}
else
{
sb18lim = 558;
}
for (sb18 = 0; sb18 < sb18lim; sb18 += 18)
{
for (ss = 0; ss < 8; ss++)
{
int src_idx1 = sb18 + 17 - ss;
int src_idx2 = sb18 + 18 + ss;
float bu = out_1d[src_idx1];
float bd = out_1d[src_idx2];
out_1d[src_idx1] = (bu * cs[ss]) - (bd * ca[ss]);
out_1d[src_idx2] = (bd * cs[ss]) + (bu * ca[ss]);
}
}
}