28                                float *synth_buf_ptr, 
int *synth_buf_offset,
 
   29                                float synth_buf2[32], 
const float window[512],
 
   30                                float out[32], 
const float in[32], 
float scale)
 
   32     float *synth_buf = synth_buf_ptr + *synth_buf_offset;
 
   37     for (
i = 0; 
i < 16; 
i++) {
 
   38         float a = synth_buf2[
i     ];
 
   39         float b = synth_buf2[
i + 16];
 
   42         for (j = 0; j < 512 - *synth_buf_offset; j += 64) {
 
   43             a += 
window[
i + j     ] * (-synth_buf[15 - 
i + j      ]);
 
   44             b += 
window[
i + j + 16] * ( synth_buf[     
i + j      ]);
 
   45             c += 
window[
i + j + 32] * ( synth_buf[16 + 
i + j      ]);
 
   46             d += 
window[
i + j + 48] * ( synth_buf[31 - 
i + j      ]);
 
   48         for (     ; j < 512; j += 64) {
 
   49             a += 
window[
i + j     ] * (-synth_buf[15 - 
i + j - 512]);
 
   50             b += 
window[
i + j + 16] * ( synth_buf[     
i + j - 512]);
 
   51             c += 
window[
i + j + 32] * ( synth_buf[16 + 
i + j - 512]);
 
   52             d += 
window[
i + j + 48] * ( synth_buf[31 - 
i + j - 512]);
 
   57         synth_buf2[
i + 16] = 
d;
 
   60     *synth_buf_offset = (*synth_buf_offset - 32) & 511;
 
   64                                   float *synth_buf_ptr, 
int *synth_buf_offset,
 
   65                                   float synth_buf2[64], 
const float window[1024],
 
   66                                   float out[64], 
const float in[64], 
float scale)
 
   68     float *synth_buf = synth_buf_ptr + *synth_buf_offset;
 
   73     for (
i = 0; 
i < 32; 
i++) {
 
   74         float a = synth_buf2[
i     ];
 
   75         float b = synth_buf2[
i + 32];
 
   78         for (j = 0; j < 1024 - *synth_buf_offset; j += 128) {
 
   79             a += 
window[
i + j     ] * (-synth_buf[31 - 
i + j       ]);
 
   80             b += 
window[
i + j + 32] * ( synth_buf[     
i + j       ]);
 
   81             c += 
window[
i + j + 64] * ( synth_buf[32 + 
i + j       ]);
 
   82             d += 
window[
i + j + 96] * ( synth_buf[63 - 
i + j       ]);
 
   84         for (     ; j < 1024; j += 128) {
 
   85             a += 
window[
i + j     ] * (-synth_buf[31 - 
i + j - 1024]);
 
   86             b += 
window[
i + j + 32] * ( synth_buf[     
i + j - 1024]);
 
   87             c += 
window[
i + j + 64] * ( synth_buf[32 + 
i + j - 1024]);
 
   88             d += 
window[
i + j + 96] * ( synth_buf[63 - 
i + j - 1024]);
 
   93         synth_buf2[
i + 32] = 
d;
 
   96     *synth_buf_offset = (*synth_buf_offset - 64) & 1023;
 
  100                                int32_t *synth_buf_ptr, 
int *synth_buf_offset,
 
  104     int32_t *synth_buf = synth_buf_ptr + *synth_buf_offset;
 
  109     for (
i = 0; 
i < 16; 
i++) {
 
  110         int64_t 
a = synth_buf2[
i     ] * (INT64_C(1) << 21);
 
  111         int64_t 
b = synth_buf2[
i + 16] * (INT64_C(1) << 21);
 
  114         for (j = 0; j < 512 - *synth_buf_offset; j += 64) {
 
  115             a += (int64_t)
window[
i + j     ] * synth_buf[     
i + j      ];
 
  116             b += (int64_t)
window[
i + j + 16] * synth_buf[15 - 
i + j      ];
 
  117             c += (int64_t)
window[
i + j + 32] * synth_buf[16 + 
i + j      ];
 
  118             d += (int64_t)
window[
i + j + 48] * synth_buf[31 - 
i + j      ];
 
  120         for (     ; j < 512; j += 64) {
 
  121             a += (int64_t)
window[
i + j     ] * synth_buf[     
i + j - 512];
 
  122             b += (int64_t)
window[
i + j + 16] * synth_buf[15 - 
i + j - 512];
 
  123             c += (int64_t)
window[
i + j + 32] * synth_buf[16 + 
i + j - 512];
 
  124             d += (int64_t)
window[
i + j + 48] * synth_buf[31 - 
i + j - 512];
 
  132     *synth_buf_offset = (*synth_buf_offset - 32) & 511;
 
  136                                   int32_t *synth_buf_ptr, 
int *synth_buf_offset,
 
  140     int32_t *synth_buf = synth_buf_ptr + *synth_buf_offset;
 
  145     for (
i = 0; 
i < 32; 
i++) {
 
  146         int64_t 
a = synth_buf2[
i     ] * (INT64_C(1) << 20);
 
  147         int64_t 
b = synth_buf2[
i + 32] * (INT64_C(1) << 20);
 
  150         for (j = 0; j < 1024 - *synth_buf_offset; j += 128) {
 
  151             a += (int64_t)
window[
i + j     ] * synth_buf[     
i + j       ];
 
  152             b += (int64_t)
window[
i + j + 32] * synth_buf[31 - 
i + j       ];
 
  153             c += (int64_t)
window[
i + j + 64] * synth_buf[32 + 
i + j       ];
 
  154             d += (int64_t)
window[
i + j + 96] * synth_buf[63 - 
i + j       ];
 
  156         for (     ; j < 1024; j += 128) {
 
  157             a += (int64_t)
window[
i + j     ] * synth_buf[     
i + j - 1024];
 
  158             b += (int64_t)
window[
i + j + 32] * synth_buf[31 - 
i + j - 1024];
 
  159             c += (int64_t)
window[
i + j + 64] * synth_buf[32 + 
i + j - 1024];
 
  160             d += (int64_t)
window[
i + j + 96] * synth_buf[63 - 
i + j - 1024];
 
  168     *synth_buf_offset = (*synth_buf_offset - 64) & 1023;