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