2 * Copyright (c) 1997-1999 Massachusetts Institute of Technology
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation; either version 2 of the License, or
7 * (at your option) any later version.
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
14 * You should have received a copy of the GNU General Public License
15 * along with this program; if not, write to the Free Software
16 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20 /* This file was automatically generated --- DO NOT EDIT */
21 /* Generated on Tue May 18 13:54:27 EDT 1999 */
26 /* Generated by: ./genfft -magic-alignment-check -magic-twiddle-load-all -magic-variables 4 -magic-loopi -notwiddle 9 */
29 * This function contains 80 FP additions, 40 FP multiplications,
30 * (or, 60 additions, 20 multiplications, 20 fused multiply/add),
31 * 30 stack variables, and 36 memory accesses
33 static const fftw_real K939692620
= FFTW_KONST(+0.939692620785908384054109277324731469936208134);
34 static const fftw_real K342020143
= FFTW_KONST(+0.342020143325668733044099614682259580763083368);
35 static const fftw_real K984807753
= FFTW_KONST(+0.984807753012208059366743024589523013670643252);
36 static const fftw_real K173648177
= FFTW_KONST(+0.173648177666930348851716626769314796000375677);
37 static const fftw_real K642787609
= FFTW_KONST(+0.642787609686539326322643409907263432907559884);
38 static const fftw_real K766044443
= FFTW_KONST(+0.766044443118978035202392650555416673935832457);
39 static const fftw_real K866025403
= FFTW_KONST(+0.866025403784438646763723170752936183471402627);
40 static const fftw_real K500000000
= FFTW_KONST(+0.500000000000000000000000000000000000000000000);
49 void fftw_no_twiddle_9(const fftw_complex
*input
, fftw_complex
*output
, int istride
, int ostride
)
69 ASSERT_ALIGNED_DOUBLE();
75 ASSERT_ALIGNED_DOUBLE();
76 tmp1
= c_re(input
[0]);
77 tmp2
= c_re(input
[3 * istride
]);
78 tmp3
= c_re(input
[6 * istride
]);
81 tmp17
= tmp1
- (K500000000
* tmp4
);
82 tmp50
= K866025403
* (tmp3
- tmp2
);
89 ASSERT_ALIGNED_DOUBLE();
90 tmp51
= c_im(input
[0]);
91 tmp18
= c_im(input
[3 * istride
]);
92 tmp19
= c_im(input
[6 * istride
]);
93 tmp52
= tmp18
+ tmp19
;
94 tmp20
= K866025403
* (tmp18
- tmp19
);
95 tmp78
= tmp51
+ tmp52
;
96 tmp53
= tmp51
- (K500000000
* tmp52
);
107 ASSERT_ALIGNED_DOUBLE();
108 tmp6
= c_re(input
[istride
]);
109 tmp28
= c_im(input
[istride
]);
115 ASSERT_ALIGNED_DOUBLE();
116 tmp7
= c_re(input
[4 * istride
]);
117 tmp8
= c_re(input
[7 * istride
]);
119 tmp27
= K866025403
* (tmp8
- tmp7
);
120 tmp23
= c_im(input
[4 * istride
]);
121 tmp24
= c_im(input
[7 * istride
]);
122 tmp25
= K866025403
* (tmp23
- tmp24
);
123 tmp29
= tmp23
+ tmp24
;
126 tmp22
= tmp6
- (K500000000
* tmp9
);
127 tmp26
= tmp22
+ tmp25
;
128 tmp58
= tmp22
- tmp25
;
129 tmp74
= tmp28
+ tmp29
;
130 tmp30
= tmp28
- (K500000000
* tmp29
);
131 tmp31
= tmp27
+ tmp30
;
132 tmp59
= tmp30
- tmp27
;
143 ASSERT_ALIGNED_DOUBLE();
144 tmp11
= c_re(input
[2 * istride
]);
145 tmp39
= c_im(input
[2 * istride
]);
151 ASSERT_ALIGNED_DOUBLE();
152 tmp12
= c_re(input
[5 * istride
]);
153 tmp13
= c_re(input
[8 * istride
]);
154 tmp14
= tmp12
+ tmp13
;
155 tmp38
= K866025403
* (tmp13
- tmp12
);
156 tmp34
= c_im(input
[5 * istride
]);
157 tmp35
= c_im(input
[8 * istride
]);
158 tmp36
= K866025403
* (tmp34
- tmp35
);
159 tmp40
= tmp34
+ tmp35
;
161 tmp15
= tmp11
+ tmp14
;
162 tmp33
= tmp11
- (K500000000
* tmp14
);
163 tmp37
= tmp33
+ tmp36
;
164 tmp62
= tmp33
- tmp36
;
165 tmp75
= tmp39
+ tmp40
;
166 tmp41
= tmp39
- (K500000000
* tmp40
);
167 tmp42
= tmp38
+ tmp41
;
168 tmp61
= tmp41
- tmp38
;
177 ASSERT_ALIGNED_DOUBLE();
178 tmp76
= K866025403
* (tmp74
- tmp75
);
179 tmp16
= tmp10
+ tmp15
;
180 tmp73
= tmp5
- (K500000000
* tmp16
);
181 c_re(output
[0]) = tmp5
+ tmp16
;
182 c_re(output
[3 * ostride
]) = tmp73
+ tmp76
;
183 c_re(output
[6 * ostride
]) = tmp73
- tmp76
;
184 tmp77
= K866025403
* (tmp15
- tmp10
);
185 tmp79
= tmp74
+ tmp75
;
186 tmp80
= tmp78
- (K500000000
* tmp79
);
187 c_im(output
[3 * ostride
]) = tmp77
+ tmp80
;
188 c_im(output
[6 * ostride
]) = tmp80
- tmp77
;
189 c_im(output
[0]) = tmp78
+ tmp79
;
200 ASSERT_ALIGNED_DOUBLE();
201 tmp21
= tmp17
+ tmp20
;
202 tmp54
= tmp50
+ tmp53
;
208 ASSERT_ALIGNED_DOUBLE();
209 tmp32
= (K766044443
* tmp26
) + (K642787609
* tmp31
);
210 tmp43
= (K173648177
* tmp37
) + (K984807753
* tmp42
);
211 tmp44
= tmp32
+ tmp43
;
212 tmp49
= K866025403
* (tmp43
- tmp32
);
213 tmp46
= (K766044443
* tmp31
) - (K642787609
* tmp26
);
214 tmp47
= (K173648177
* tmp42
) - (K984807753
* tmp37
);
215 tmp48
= K866025403
* (tmp46
- tmp47
);
216 tmp55
= tmp46
+ tmp47
;
218 c_re(output
[ostride
]) = tmp21
+ tmp44
;
219 tmp45
= tmp21
- (K500000000
* tmp44
);
220 c_re(output
[7 * ostride
]) = tmp45
- tmp48
;
221 c_re(output
[4 * ostride
]) = tmp45
+ tmp48
;
222 c_im(output
[ostride
]) = tmp54
+ tmp55
;
223 tmp56
= tmp54
- (K500000000
* tmp55
);
224 c_im(output
[4 * ostride
]) = tmp49
+ tmp56
;
225 c_im(output
[7 * ostride
]) = tmp56
- tmp49
;
236 ASSERT_ALIGNED_DOUBLE();
242 ASSERT_ALIGNED_DOUBLE();
243 tmp57
= tmp17
- tmp20
;
244 tmp67
= (K173648177
* tmp59
) - (K984807753
* tmp58
);
245 tmp68
= (K342020143
* tmp62
) + (K939692620
* tmp61
);
246 tmp69
= tmp67
- tmp68
;
247 tmp72
= K866025403
* (tmp67
+ tmp68
);
248 tmp66
= tmp53
- tmp50
;
249 tmp60
= (K173648177
* tmp58
) + (K984807753
* tmp59
);
250 tmp63
= (K342020143
* tmp61
) - (K939692620
* tmp62
);
251 tmp64
= tmp60
+ tmp63
;
252 tmp65
= K866025403
* (tmp63
- tmp60
);
254 c_re(output
[2 * ostride
]) = tmp57
+ tmp64
;
255 tmp71
= tmp57
- (K500000000
* tmp64
);
256 c_re(output
[8 * ostride
]) = tmp71
- tmp72
;
257 c_re(output
[5 * ostride
]) = tmp71
+ tmp72
;
258 c_im(output
[2 * ostride
]) = tmp66
+ tmp69
;
259 tmp70
= tmp66
- (K500000000
* tmp69
);
260 c_im(output
[5 * ostride
]) = tmp65
+ tmp70
;
261 c_im(output
[8 * ostride
]) = tmp70
- tmp65
;
265 fftw_codelet_desc fftw_no_twiddle_9_desc
=
268 (void (*)()) fftw_no_twiddle_9
,