1 #include "PRE"
2 
3 /* a[0...8n-1], w[0...n-1]; n even, n >= 8 */
rpassbig(register real * a,register const complex * w,register unsigned int n)4 void rpassbig(register real *a,register const complex *w,register unsigned int n)
5 {
6   register real t1, t2, t3, t4, t5, t6, t7, t8;
7   register real *b;
8   register unsigned int k;
9 
10   b = a + 4 * n;
11 
12   RZERO(a[0],a[1],b[0],b[1]);
13   R(a[2],a[3],b[2],b[3],w[0].re,w[0].im);
14 
15   k = n - 2;
16   do {
17     R(a[4],a[5],b[4],b[5],w[1].re,w[1].im);
18     R(a[6],a[7],b[6],b[7],w[2].re,w[2].im);
19     a += 4;
20     b += 4;
21     w += 2;
22   } while (k -= 2);
23 
24   RHALF(a[4],a[5],b[4],b[5]);
25   R(a[6],a[7],b[6],b[7],w[0].im,w[0].re);
26 
27   k = n - 2;
28   do {
29     R(a[8],a[9],b[8],b[9],w[-1].im,w[-1].re);
30     R(a[10],a[11],b[10],b[11],w[-2].im,w[-2].re);
31     a += 4;
32     b += 4;
33     w -= 2;
34   } while (k -= 2);
35 }
36