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:49 EDT 1999 */
26 /* Generated by: ./genfft -magic-alignment-check -magic-twiddle-load-all -magic-variables 4 -magic-loopi -notwiddleinv 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 fftwi_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 tmp23
= c_im(input
[0]);
84 tmp2
= c_re(input
[istride
]);
85 tmp3
= c_re(input
[10 * istride
]);
88 tmp36
= c_im(input
[istride
]);
89 tmp37
= c_im(input
[10 * istride
]);
90 tmp38
= tmp36
+ tmp37
;
91 tmp49
= tmp37
- tmp36
;
97 ASSERT_ALIGNED_DOUBLE();
98 tmp24
= c_im(input
[2 * istride
]);
99 tmp25
= c_im(input
[9 * istride
]);
100 tmp26
= tmp24
+ tmp25
;
101 tmp53
= tmp25
- tmp24
;
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 tmp33
= c_im(input
[3 * istride
]);
125 tmp34
= c_im(input
[8 * istride
]);
126 tmp35
= tmp33
+ tmp34
;
127 tmp50
= tmp34
- tmp33
;
128 tmp11
= c_re(input
[4 * istride
]);
129 tmp12
= c_re(input
[7 * istride
]);
130 tmp13
= tmp11
+ tmp12
;
131 tmp20
= tmp11
- tmp12
;
133 tmp27
= c_im(input
[4 * istride
]);
134 tmp28
= c_im(input
[7 * istride
]);
135 tmp29
= tmp27
+ tmp28
;
136 tmp51
= tmp28
- tmp27
;
142 ASSERT_ALIGNED_DOUBLE();
143 tmp30
= c_im(input
[5 * istride
]);
144 tmp31
= c_im(input
[6 * istride
]);
145 tmp32
= tmp30
+ tmp31
;
146 tmp52
= tmp31
- tmp30
;
147 tmp14
= c_re(input
[5 * istride
]);
148 tmp15
= c_re(input
[6 * istride
]);
149 tmp16
= tmp14
+ tmp15
;
150 tmp19
= tmp14
- tmp15
;
158 ASSERT_ALIGNED_DOUBLE();
159 c_re(output
[0]) = tmp1
+ tmp4
+ tmp7
+ tmp10
+ tmp13
+ tmp16
;
165 ASSERT_ALIGNED_DOUBLE();
166 tmp62
= (K281732556
* tmp49
) + (K755749574
* tmp50
) + (K989821441
* tmp52
) - (K909631995
* tmp51
) - (K540640817
* tmp53
);
167 tmp61
= tmp1
+ (K841253532
* tmp7
) + (K415415013
* tmp13
) - (K142314838
* tmp16
) - (K654860733
* tmp10
) - (K959492973
* tmp4
);
168 c_re(output
[6 * ostride
]) = tmp61
- tmp62
;
169 c_re(output
[5 * ostride
]) = tmp61
+ tmp62
;
170 tmp58
= (K540640817
* tmp49
) + (K909631995
* tmp53
) + (K989821441
* tmp50
) + (K755749574
* tmp51
) + (K281732556
* tmp52
);
171 tmp57
= tmp1
+ (K841253532
* tmp4
) + (K415415013
* tmp7
) - (K959492973
* tmp16
) - (K654860733
* tmp13
) - (K142314838
* tmp10
);
172 c_re(output
[10 * ostride
]) = tmp57
- tmp58
;
173 c_re(output
[ostride
]) = tmp57
+ tmp58
;
175 tmp56
= (K909631995
* tmp49
) + (K755749574
* tmp53
) - (K540640817
* tmp52
) - (K989821441
* tmp51
) - (K281732556
* tmp50
);
176 tmp55
= tmp1
+ (K415415013
* tmp4
) + (K841253532
* tmp16
) - (K142314838
* tmp13
) - (K959492973
* tmp10
) - (K654860733
* tmp7
);
177 c_re(output
[9 * ostride
]) = tmp55
- tmp56
;
178 c_re(output
[2 * ostride
]) = tmp55
+ tmp56
;
184 ASSERT_ALIGNED_DOUBLE();
185 tmp60
= (K989821441
* tmp49
) + (K540640817
* tmp51
) + (K755749574
* tmp52
) - (K909631995
* tmp50
) - (K281732556
* tmp53
);
186 tmp59
= tmp1
+ (K415415013
* tmp10
) + (K841253532
* tmp13
) - (K654860733
* tmp16
) - (K959492973
* tmp7
) - (K142314838
* tmp4
);
187 c_re(output
[8 * ostride
]) = tmp59
- tmp60
;
188 c_re(output
[3 * ostride
]) = tmp59
+ tmp60
;
189 tmp54
= (K755749574
* tmp49
) + (K540640817
* tmp50
) + (K281732556
* tmp51
) - (K909631995
* tmp52
) - (K989821441
* tmp53
);
190 tmp48
= tmp1
+ (K841253532
* tmp10
) + (K415415013
* tmp16
) - (K959492973
* tmp13
) - (K142314838
* tmp7
) - (K654860733
* tmp4
);
191 c_re(output
[7 * ostride
]) = tmp48
- tmp54
;
192 c_re(output
[4 * ostride
]) = tmp48
+ tmp54
;
194 c_im(output
[0]) = tmp23
+ tmp38
+ tmp26
+ tmp35
+ tmp29
+ tmp32
;
200 ASSERT_ALIGNED_DOUBLE();
201 tmp22
= (K281732556
* tmp17
) + (K755749574
* tmp18
) + (K989821441
* tmp19
) - (K909631995
* tmp20
) - (K540640817
* tmp21
);
202 tmp39
= tmp23
+ (K841253532
* tmp26
) + (K415415013
* tmp29
) - (K142314838
* tmp32
) - (K654860733
* tmp35
) - (K959492973
* tmp38
);
203 c_im(output
[5 * ostride
]) = tmp22
+ tmp39
;
204 c_im(output
[6 * ostride
]) = tmp39
- tmp22
;
205 tmp42
= (K540640817
* tmp17
) + (K909631995
* tmp21
) + (K989821441
* tmp18
) + (K755749574
* tmp20
) + (K281732556
* tmp19
);
206 tmp43
= tmp23
+ (K841253532
* tmp38
) + (K415415013
* tmp26
) - (K959492973
* tmp32
) - (K654860733
* tmp29
) - (K142314838
* tmp35
);
207 c_im(output
[ostride
]) = tmp42
+ tmp43
;
208 c_im(output
[10 * ostride
]) = tmp43
- tmp42
;
210 tmp44
= (K909631995
* tmp17
) + (K755749574
* tmp21
) - (K540640817
* tmp19
) - (K989821441
* tmp20
) - (K281732556
* tmp18
);
211 tmp45
= tmp23
+ (K415415013
* tmp38
) + (K841253532
* tmp32
) - (K142314838
* tmp29
) - (K959492973
* tmp35
) - (K654860733
* tmp26
);
212 c_im(output
[2 * ostride
]) = tmp44
+ tmp45
;
213 c_im(output
[9 * ostride
]) = tmp45
- tmp44
;
219 ASSERT_ALIGNED_DOUBLE();
220 tmp40
= (K989821441
* tmp17
) + (K540640817
* tmp20
) + (K755749574
* tmp19
) - (K909631995
* tmp18
) - (K281732556
* tmp21
);
221 tmp41
= tmp23
+ (K415415013
* tmp35
) + (K841253532
* tmp29
) - (K654860733
* tmp32
) - (K959492973
* tmp26
) - (K142314838
* tmp38
);
222 c_im(output
[3 * ostride
]) = tmp40
+ tmp41
;
223 c_im(output
[8 * ostride
]) = tmp41
- tmp40
;
224 tmp46
= (K755749574
* tmp17
) + (K540640817
* tmp18
) + (K281732556
* tmp20
) - (K909631995
* tmp19
) - (K989821441
* tmp21
);
225 tmp47
= tmp23
+ (K841253532
* tmp35
) + (K415415013
* tmp32
) - (K959492973
* tmp29
) - (K142314838
* tmp26
) - (K654860733
* tmp38
);
226 c_im(output
[4 * ostride
]) = tmp46
+ tmp47
;
227 c_im(output
[7 * ostride
]) = tmp47
- tmp46
;
232 fftw_codelet_desc fftwi_no_twiddle_11_desc
=
234 "fftwi_no_twiddle_11",
235 (void (*)()) fftwi_no_twiddle_11
,