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:28 EDT 1999 */
26 /* Generated by: ./genfft -magic-alignment-check -magic-twiddle-load-all -magic-variables 4 -magic-loopi -notwiddle 11 */
29 * This function contains 140 FP additions, 100 FP multiplications,
30 * (or, 140 additions, 100 multiplications, 0 fused multiply/add),
31 * 30 stack variables, and 44 memory accesses
33 static const fftw_real K959492973
= FFTW_KONST(+0.959492973614497389890368057066327699062454848);
34 static const fftw_real K654860733
= FFTW_KONST(+0.654860733945285064056925072466293553183791199);
35 static const fftw_real K142314838
= FFTW_KONST(+0.142314838273285140443792668616369668791051361);
36 static const fftw_real K415415013
= FFTW_KONST(+0.415415013001886425529274149229623203524004910);
37 static const fftw_real K841253532
= FFTW_KONST(+0.841253532831181168861811648919367717513292498);
38 static const fftw_real K540640817
= FFTW_KONST(+0.540640817455597582107635954318691695431770608);
39 static const fftw_real K909631995
= FFTW_KONST(+0.909631995354518371411715383079028460060241051);
40 static const fftw_real K989821441
= FFTW_KONST(+0.989821441880932732376092037776718787376519372);
41 static const fftw_real K755749574
= FFTW_KONST(+0.755749574354258283774035843972344420179717445);
42 static const fftw_real K281732556
= FFTW_KONST(+0.281732556841429697711417915346616899035777899);
51 void fftw_no_twiddle_11(const fftw_complex
*input
, fftw_complex
*output
, int istride
, int ostride
)
75 ASSERT_ALIGNED_DOUBLE();
81 ASSERT_ALIGNED_DOUBLE();
82 tmp1
= c_re(input
[0]);
83 tmp48
= c_im(input
[0]);
84 tmp2
= c_re(input
[istride
]);
85 tmp3
= c_re(input
[10 * istride
]);
88 tmp18
= c_im(input
[istride
]);
89 tmp19
= c_im(input
[10 * istride
]);
90 tmp20
= tmp18
- tmp19
;
91 tmp53
= tmp18
+ tmp19
;
97 ASSERT_ALIGNED_DOUBLE();
98 tmp30
= c_im(input
[2 * istride
]);
99 tmp31
= c_im(input
[9 * istride
]);
100 tmp32
= tmp30
- tmp31
;
101 tmp49
= tmp30
+ tmp31
;
102 tmp5
= c_re(input
[2 * istride
]);
103 tmp6
= c_re(input
[9 * istride
]);
113 ASSERT_ALIGNED_DOUBLE();
114 tmp8
= c_re(input
[3 * istride
]);
115 tmp9
= c_re(input
[8 * istride
]);
123 ASSERT_ALIGNED_DOUBLE();
124 tmp21
= c_im(input
[3 * istride
]);
125 tmp22
= c_im(input
[8 * istride
]);
126 tmp23
= tmp21
- tmp22
;
127 tmp52
= tmp21
+ tmp22
;
128 tmp11
= c_re(input
[4 * istride
]);
129 tmp12
= c_re(input
[7 * istride
]);
130 tmp13
= tmp11
+ tmp12
;
131 tmp45
= tmp12
- tmp11
;
133 tmp24
= c_im(input
[4 * istride
]);
134 tmp25
= c_im(input
[7 * istride
]);
135 tmp26
= tmp24
- tmp25
;
136 tmp50
= tmp24
+ tmp25
;
142 ASSERT_ALIGNED_DOUBLE();
143 tmp27
= c_im(input
[5 * istride
]);
144 tmp28
= c_im(input
[6 * istride
]);
145 tmp29
= tmp27
- tmp28
;
146 tmp51
= tmp27
+ tmp28
;
147 tmp14
= c_re(input
[5 * istride
]);
148 tmp15
= c_re(input
[6 * istride
]);
149 tmp16
= tmp14
+ tmp15
;
150 tmp44
= tmp15
- tmp14
;
158 ASSERT_ALIGNED_DOUBLE();
159 c_re(output
[0]) = tmp1
+ tmp4
+ tmp7
+ tmp10
+ tmp13
+ tmp16
;
165 ASSERT_ALIGNED_DOUBLE();
166 tmp41
= (K281732556
* tmp20
) + (K755749574
* tmp23
) + (K989821441
* tmp29
) - (K909631995
* tmp26
) - (K540640817
* tmp32
);
167 tmp40
= tmp1
+ (K841253532
* tmp7
) + (K415415013
* tmp13
) - (K142314838
* tmp16
) - (K654860733
* tmp10
) - (K959492973
* tmp4
);
168 c_re(output
[6 * ostride
]) = tmp40
- tmp41
;
169 c_re(output
[5 * ostride
]) = tmp40
+ tmp41
;
170 tmp37
= (K540640817
* tmp20
) + (K909631995
* tmp32
) + (K989821441
* tmp23
) + (K755749574
* tmp26
) + (K281732556
* tmp29
);
171 tmp36
= tmp1
+ (K841253532
* tmp4
) + (K415415013
* tmp7
) - (K959492973
* tmp16
) - (K654860733
* tmp13
) - (K142314838
* tmp10
);
172 c_re(output
[10 * ostride
]) = tmp36
- tmp37
;
173 c_re(output
[ostride
]) = tmp36
+ tmp37
;
175 tmp35
= (K909631995
* tmp20
) + (K755749574
* tmp32
) - (K540640817
* tmp29
) - (K989821441
* tmp26
) - (K281732556
* tmp23
);
176 tmp34
= tmp1
+ (K415415013
* tmp4
) + (K841253532
* tmp16
) - (K142314838
* tmp13
) - (K959492973
* tmp10
) - (K654860733
* tmp7
);
177 c_re(output
[9 * ostride
]) = tmp34
- tmp35
;
178 c_re(output
[2 * ostride
]) = tmp34
+ tmp35
;
184 ASSERT_ALIGNED_DOUBLE();
185 tmp39
= (K989821441
* tmp20
) + (K540640817
* tmp26
) + (K755749574
* tmp29
) - (K909631995
* tmp23
) - (K281732556
* tmp32
);
186 tmp38
= tmp1
+ (K415415013
* tmp10
) + (K841253532
* tmp13
) - (K654860733
* tmp16
) - (K959492973
* tmp7
) - (K142314838
* tmp4
);
187 c_re(output
[8 * ostride
]) = tmp38
- tmp39
;
188 c_re(output
[3 * ostride
]) = tmp38
+ tmp39
;
189 tmp33
= (K755749574
* tmp20
) + (K540640817
* tmp23
) + (K281732556
* tmp26
) - (K909631995
* tmp29
) - (K989821441
* tmp32
);
190 tmp17
= tmp1
+ (K841253532
* tmp10
) + (K415415013
* tmp16
) - (K959492973
* tmp13
) - (K142314838
* tmp7
) - (K654860733
* tmp4
);
191 c_re(output
[7 * ostride
]) = tmp17
- tmp33
;
192 c_re(output
[4 * ostride
]) = tmp17
+ tmp33
;
194 c_im(output
[0]) = tmp48
+ tmp53
+ tmp49
+ tmp52
+ tmp50
+ tmp51
;
200 ASSERT_ALIGNED_DOUBLE();
201 tmp47
= (K281732556
* tmp42
) + (K755749574
* tmp43
) + (K989821441
* tmp44
) - (K909631995
* tmp45
) - (K540640817
* tmp46
);
202 tmp54
= tmp48
+ (K841253532
* tmp49
) + (K415415013
* tmp50
) - (K142314838
* tmp51
) - (K654860733
* tmp52
) - (K959492973
* tmp53
);
203 c_im(output
[5 * ostride
]) = tmp47
+ tmp54
;
204 c_im(output
[6 * ostride
]) = tmp54
- tmp47
;
205 tmp57
= (K540640817
* tmp42
) + (K909631995
* tmp46
) + (K989821441
* tmp43
) + (K755749574
* tmp45
) + (K281732556
* tmp44
);
206 tmp58
= tmp48
+ (K841253532
* tmp53
) + (K415415013
* tmp49
) - (K959492973
* tmp51
) - (K654860733
* tmp50
) - (K142314838
* tmp52
);
207 c_im(output
[ostride
]) = tmp57
+ tmp58
;
208 c_im(output
[10 * ostride
]) = tmp58
- tmp57
;
210 tmp59
= (K909631995
* tmp42
) + (K755749574
* tmp46
) - (K540640817
* tmp44
) - (K989821441
* tmp45
) - (K281732556
* tmp43
);
211 tmp60
= tmp48
+ (K415415013
* tmp53
) + (K841253532
* tmp51
) - (K142314838
* tmp50
) - (K959492973
* tmp52
) - (K654860733
* tmp49
);
212 c_im(output
[2 * ostride
]) = tmp59
+ tmp60
;
213 c_im(output
[9 * ostride
]) = tmp60
- tmp59
;
219 ASSERT_ALIGNED_DOUBLE();
220 tmp55
= (K989821441
* tmp42
) + (K540640817
* tmp45
) + (K755749574
* tmp44
) - (K909631995
* tmp43
) - (K281732556
* tmp46
);
221 tmp56
= tmp48
+ (K415415013
* tmp52
) + (K841253532
* tmp50
) - (K654860733
* tmp51
) - (K959492973
* tmp49
) - (K142314838
* tmp53
);
222 c_im(output
[3 * ostride
]) = tmp55
+ tmp56
;
223 c_im(output
[8 * ostride
]) = tmp56
- tmp55
;
224 tmp61
= (K755749574
* tmp42
) + (K540640817
* tmp43
) + (K281732556
* tmp45
) - (K909631995
* tmp44
) - (K989821441
* tmp46
);
225 tmp62
= tmp48
+ (K841253532
* tmp52
) + (K415415013
* tmp51
) - (K959492973
* tmp50
) - (K142314838
* tmp49
) - (K654860733
* tmp53
);
226 c_im(output
[4 * ostride
]) = tmp61
+ tmp62
;
227 c_im(output
[7 * ostride
]) = tmp62
- tmp61
;
232 fftw_codelet_desc fftw_no_twiddle_11_desc
=
234 "fftw_no_twiddle_11",
235 (void (*)()) fftw_no_twiddle_11
,