comparison libfaad2/sbr_dct.c @ 10725:e989150f8216

libfaad2 v2.0rc1 imported
author arpi
date Sat, 30 Aug 2003 22:30:28 +0000
parents
children 3185f64f6350
comparison
equal deleted inserted replaced
10724:adf5697b9d83 10725:e989150f8216
1 /*
2 ** FAAD2 - Freeware Advanced Audio (AAC) Decoder including SBR decoding
3 ** Copyright (C) 2003 M. Bakker, Ahead Software AG, http://www.nero.com
4 **
5 ** This program is free software; you can redistribute it and/or modify
6 ** it under the terms of the GNU General Public License as published by
7 ** the Free Software Foundation; either version 2 of the License, or
8 ** (at your option) any later version.
9 **
10 ** This program is distributed in the hope that it will be useful,
11 ** but WITHOUT ANY WARRANTY; without even the implied warranty of
12 ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 ** GNU General Public License for more details.
14 **
15 ** You should have received a copy of the GNU General Public License
16 ** along with this program; if not, write to the Free Software
17 ** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
18 **
19 ** Any non-GPL usage of this software or parts of this software is strictly
20 ** forbidden.
21 **
22 ** Commercial non-GPL licensing of this software is possible.
23 ** For more info contact Ahead Software through Mpeg4AAClicense@nero.com.
24 **
25 ** $Id: sbr_dct.c,v 1.1 2003/07/29 08:20:13 menno Exp $
26 **/
27
28 #include "common.h"
29
30 #ifdef SBR_DEC
31
32 #ifdef _MSC_VER
33 #pragma warning(disable:4305)
34 #pragma warning(disable:4244)
35 #endif
36
37 #define MUL_C_R(B,A) MUL_R_C(A,B)
38
39 #include "sbr_dct.h"
40
41 #ifdef SBR_LOW_POWER
42
43 void DCT3_32_unscaled(real_t *y, real_t *x)
44 {
45 real_t f0, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10;
46 real_t f11, f12, f13, f14, f15, f16, f17, f18, f19, f20;
47 real_t f21, f22, f23, f24, f25, f26, f27, f28, f29, f30;
48 real_t f31, f32, f33, f34, f35, f36, f37, f38, f39, f40;
49 real_t f41, f42, f43, f44, f45, f46, f47, f48, f49, f50;
50 real_t f51, f52, f53, f54, f55, f56, f57, f58, f59, f60;
51 real_t f61, f62, f63, f64, f65, f66, f67, f68, f69, f70;
52 real_t f71, f72, f73, f74, f75, f76, f77, f78, f79, f80;
53 real_t f81, f82, f83, f84, f85, f86, f87, f88, f89, f90;
54 real_t f91, f92, f93, f94, f95, f96, f97, f98, f99, f100;
55 real_t f101, f102, f103, f104, f105, f106, f107, f108, f109, f110;
56 real_t f111, f112, f113, f114, f115, f116, f117, f118, f119, f120;
57 real_t f121, f122, f123, f124, f125, f126, f127, f128, f129, f130;
58 real_t f131, f132, f133, f134, f135, f136, f137, f138, f139, f140;
59 real_t f141, f142, f143, f144, f145, f146, f147, f148, f149, f150;
60 real_t f151, f152, f153, f154, f155, f156, f157, f158, f159, f160;
61 real_t f161, f162, f163, f164, f165, f166, f167, f168, f169, f170;
62 real_t f171, f172, f173, f174, f175, f176, f177, f178, f179, f180;
63 real_t f181, f182, f183, f184, f185, f186, f187, f188, f189, f190;
64 real_t f191, f192, f193, f194, f195, f196, f197, f198, f199, f200;
65 real_t f201, f202, f203, f204, f205, f206, f207, f208, f209, f210;
66 real_t f211, f212, f213, f214, f215, f216, f217, f218, f219, f220;
67 real_t f221, f222, f223, f224, f225, f226, f227, f228, f229, f230;
68 real_t f231, f232, f233, f234, f235, f236, f237, f238, f239, f240;
69 real_t f241, f242, f243, f244, f245, f246, f247, f248, f249, f250;
70 real_t f251, f252, f253, f254, f255, f256, f257, f258, f259, f260;
71 real_t f261, f262, f263, f264, f265, f266, f267, f268, f269, f270;
72 real_t f271, f272;
73
74 f0 = MUL_C_R(COEF_CONST(0.7071067811865476), x[16]);
75 f1 = x[0] - f0;
76 f2 = x[0] + f0;
77 f3 = x[8] + x[24];
78 f4 = MUL_C_R(COEF_CONST(1.3065629648763766), x[8]);
79 f5 = MUL_C_R(COEF_CONST((-0.9238795325112866)), f3);
80 f6 = MUL_C_R(COEF_CONST((-0.5411961001461967)), x[24]);
81 f7 = f4 + f5;
82 f8 = f6 - f5;
83 f9 = f2 - f8;
84 f10 = f2 + f8;
85 f11 = f1 - f7;
86 f12 = f1 + f7;
87 f13 = x[4] + x[28];
88 f14 = MUL_C_R(COEF_CONST(1.1758756024193588), x[4]);
89 f15 = MUL_C_R(COEF_CONST((-0.9807852804032304)), f13);
90 f16 = MUL_C_R(COEF_CONST((-0.7856949583871021)), x[28]);
91 f17 = f14 + f15;
92 f18 = f16 - f15;
93 f19 = x[12] + x[20];
94 f20 = MUL_C_R(COEF_CONST(1.3870398453221473), x[12]);
95 f21 = MUL_C_R(COEF_CONST((-0.8314696123025455)), f19);
96 f22 = MUL_C_R(COEF_CONST((-0.2758993792829436)), x[20]);
97 f23 = f20 + f21;
98 f24 = f22 - f21;
99 f25 = f18 - f24;
100 f26 = f18 + f24;
101 f27 = MUL_C_R(COEF_CONST(0.7071067811865476), f25);
102 f28 = f17 - f23;
103 f29 = f17 + f23;
104 f30 = MUL_C_R(COEF_CONST(0.7071067811865476), f29);
105 f31 = f27 - f30;
106 f32 = f27 + f30;
107 f33 = f10 - f26;
108 f34 = f10 + f26;
109 f35 = f12 - f32;
110 f36 = f12 + f32;
111 f37 = f11 - f31;
112 f38 = f11 + f31;
113 f39 = f9 - f28;
114 f40 = f9 + f28;
115 f41 = x[2] + x[30];
116 f42 = MUL_C_R(COEF_CONST(1.0932018670017569), x[2]);
117 f43 = MUL_C_R(COEF_CONST((-0.9951847266721969)), f41);
118 f44 = MUL_C_R(COEF_CONST((-0.8971675863426368)), x[30]);
119 f45 = f42 + f43;
120 f46 = f44 - f43;
121 f47 = x[6] + x[26];
122 f48 = MUL_C_R(COEF_CONST(1.2472250129866711), x[6]);
123 f49 = MUL_C_R(COEF_CONST((-0.9569403357322089)), f47);
124 f50 = MUL_C_R(COEF_CONST((-0.6666556584777469)), x[26]);
125 f51 = f48 + f49;
126 f52 = f50 - f49;
127 f53 = x[10] + x[22];
128 f54 = MUL_C_R(COEF_CONST(1.3533180011743526), x[10]);
129 f55 = MUL_C_R(COEF_CONST((-0.8819212643483551)), f53);
130 f56 = MUL_C_R(COEF_CONST((-0.4105245275223575)), x[22]);
131 f57 = f54 + f55;
132 f58 = f56 - f55;
133 f59 = x[14] + x[18];
134 f60 = MUL_C_R(COEF_CONST(1.4074037375263826), x[14]);
135 f61 = MUL_C_R(COEF_CONST((-0.7730104533627369)), f59);
136 f62 = MUL_C_R(COEF_CONST((-0.1386171691990913)), x[18]);
137 f63 = f60 + f61;
138 f64 = f62 - f61;
139 f65 = f46 - f64;
140 f66 = f46 + f64;
141 f67 = f52 - f58;
142 f68 = f52 + f58;
143 f69 = f66 - f68;
144 f70 = f66 + f68;
145 f71 = MUL_C_R(COEF_CONST(0.7071067811865476), f69);
146 f72 = f65 + f67;
147 f73 = MUL_C_R(COEF_CONST(1.3065629648763766), f65);
148 f74 = MUL_C_R(COEF_CONST((-0.9238795325112866)), f72);
149 f75 = MUL_C_R(COEF_CONST((-0.5411961001461967)), f67);
150 f76 = f73 + f74;
151 f77 = f75 - f74;
152 f78 = f45 - f63;
153 f79 = f45 + f63;
154 f80 = f51 - f57;
155 f81 = f51 + f57;
156 f82 = f79 + f81;
157 f83 = MUL_C_R(COEF_CONST(1.3065629648763770), f79);
158 f84 = MUL_C_R(COEF_CONST((-0.3826834323650904)), f82);
159 f85 = MUL_C_R(COEF_CONST(0.5411961001461961), f81);
160 f86 = f83 + f84;
161 f87 = f85 - f84;
162 f88 = f78 - f80;
163 f89 = f78 + f80;
164 f90 = MUL_C_R(COEF_CONST(0.7071067811865476), f89);
165 f91 = f77 - f87;
166 f92 = f77 + f87;
167 f93 = f71 - f90;
168 f94 = f71 + f90;
169 f95 = f76 - f86;
170 f96 = f76 + f86;
171 f97 = f34 - f70;
172 f98 = f34 + f70;
173 f99 = f36 - f92;
174 f100 = f36 + f92;
175 f101 = f38 - f91;
176 f102 = f38 + f91;
177 f103 = f40 - f94;
178 f104 = f40 + f94;
179 f105 = f39 - f93;
180 f106 = f39 + f93;
181 f107 = f37 - f96;
182 f108 = f37 + f96;
183 f109 = f35 - f95;
184 f110 = f35 + f95;
185 f111 = f33 - f88;
186 f112 = f33 + f88;
187 f113 = x[1] + x[31];
188 f114 = MUL_C_R(COEF_CONST(1.0478631305325901), x[1]);
189 f115 = MUL_C_R(COEF_CONST((-0.9987954562051724)), f113);
190 f116 = MUL_C_R(COEF_CONST((-0.9497277818777548)), x[31]);
191 f117 = f114 + f115;
192 f118 = f116 - f115;
193 f119 = x[5] + x[27];
194 f120 = MUL_C_R(COEF_CONST(1.2130114330978077), x[5]);
195 f121 = MUL_C_R(COEF_CONST((-0.9700312531945440)), f119);
196 f122 = MUL_C_R(COEF_CONST((-0.7270510732912803)), x[27]);
197 f123 = f120 + f121;
198 f124 = f122 - f121;
199 f125 = x[9] + x[23];
200 f126 = MUL_C_R(COEF_CONST(1.3315443865537255), x[9]);
201 f127 = MUL_C_R(COEF_CONST((-0.9039892931234433)), f125);
202 f128 = MUL_C_R(COEF_CONST((-0.4764341996931612)), x[23]);
203 f129 = f126 + f127;
204 f130 = f128 - f127;
205 f131 = x[13] + x[19];
206 f132 = MUL_C_R(COEF_CONST(1.3989068359730781), x[13]);
207 f133 = MUL_C_R(COEF_CONST((-0.8032075314806453)), f131);
208 f134 = MUL_C_R(COEF_CONST((-0.2075082269882124)), x[19]);
209 f135 = f132 + f133;
210 f136 = f134 - f133;
211 f137 = x[17] + x[15];
212 f138 = MUL_C_R(COEF_CONST(1.4125100802019777), x[17]);
213 f139 = MUL_C_R(COEF_CONST((-0.6715589548470187)), f137);
214 f140 = MUL_C_R(COEF_CONST(0.0693921705079402), x[15]);
215 f141 = f138 + f139;
216 f142 = f140 - f139;
217 f143 = x[21] + x[11];
218 f144 = MUL_C_R(COEF_CONST(1.3718313541934939), x[21]);
219 f145 = MUL_C_R(COEF_CONST((-0.5141027441932219)), f143);
220 f146 = MUL_C_R(COEF_CONST(0.3436258658070501), x[11]);
221 f147 = f144 + f145;
222 f148 = f146 - f145;
223 f149 = x[25] + x[7];
224 f150 = MUL_C_R(COEF_CONST(1.2784339185752409), x[25]);
225 f151 = MUL_C_R(COEF_CONST((-0.3368898533922200)), f149);
226 f152 = MUL_C_R(COEF_CONST(0.6046542117908008), x[7]);
227 f153 = f150 + f151;
228 f154 = f152 - f151;
229 f155 = x[29] + x[3];
230 f156 = MUL_C_R(COEF_CONST(1.1359069844201433), x[29]);
231 f157 = MUL_C_R(COEF_CONST((-0.1467304744553624)), f155);
232 f158 = MUL_C_R(COEF_CONST(0.8424460355094185), x[3]);
233 f159 = f156 + f157;
234 f160 = f158 - f157;
235 f161 = f118 - f142;
236 f162 = f118 + f142;
237 f163 = f117 - f141;
238 f164 = f117 + f141;
239 f165 = f124 - f148;
240 f166 = f124 + f148;
241 f167 = f123 - f147;
242 f168 = f123 + f147;
243 f169 = f130 - f154;
244 f170 = f130 + f154;
245 f171 = f129 - f153;
246 f172 = f129 + f153;
247 f173 = f136 - f160;
248 f174 = f136 + f160;
249 f175 = f135 - f159;
250 f176 = f135 + f159;
251 f177 = f161 + f163;
252 f178 = MUL_C_R(COEF_CONST(1.1758756024193588), f161);
253 f179 = MUL_C_R(COEF_CONST((-0.9807852804032304)), f177);
254 f180 = MUL_C_R(COEF_CONST((-0.7856949583871021)), f163);
255 f181 = f178 + f179;
256 f182 = f180 - f179;
257 f183 = f165 + f167;
258 f184 = MUL_C_R(COEF_CONST(1.3870398453221475), f165);
259 f185 = MUL_C_R(COEF_CONST((-0.5555702330196022)), f183);
260 f186 = MUL_C_R(COEF_CONST(0.2758993792829431), f167);
261 f187 = f184 + f185;
262 f188 = f186 - f185;
263 f189 = f169 + f171;
264 f190 = MUL_C_R(COEF_CONST(0.7856949583871022), f169);
265 f191 = MUL_C_R(COEF_CONST(0.1950903220161283), f189);
266 f192 = MUL_C_R(COEF_CONST(1.1758756024193586), f171);
267 f193 = f190 + f191;
268 f194 = f192 - f191;
269 f195 = f173 + f175;
270 f196 = MUL_C_R(COEF_CONST((-0.2758993792829430)), f173);
271 f197 = MUL_C_R(COEF_CONST(0.8314696123025452), f195);
272 f198 = MUL_C_R(COEF_CONST(1.3870398453221475), f175);
273 f199 = f196 + f197;
274 f200 = f198 - f197;
275 f201 = f162 - f170;
276 f202 = f162 + f170;
277 f203 = f164 - f172;
278 f204 = f164 + f172;
279 f205 = f166 - f174;
280 f206 = f166 + f174;
281 f207 = f168 - f176;
282 f208 = f168 + f176;
283 f209 = f182 - f194;
284 f210 = f182 + f194;
285 f211 = f181 - f193;
286 f212 = f181 + f193;
287 f213 = f188 - f200;
288 f214 = f188 + f200;
289 f215 = f187 - f199;
290 f216 = f187 + f199;
291 f217 = f201 + f203;
292 f218 = MUL_C_R(COEF_CONST(1.3065629648763766), f201);
293 f219 = MUL_C_R(COEF_CONST((-0.9238795325112866)), f217);
294 f220 = MUL_C_R(COEF_CONST((-0.5411961001461967)), f203);
295 f221 = f218 + f219;
296 f222 = f220 - f219;
297 f223 = f205 + f207;
298 f224 = MUL_C_R(COEF_CONST(0.5411961001461969), f205);
299 f225 = MUL_C_R(COEF_CONST(0.3826834323650898), f223);
300 f226 = MUL_C_R(COEF_CONST(1.3065629648763766), f207);
301 f227 = f224 + f225;
302 f228 = f226 - f225;
303 f229 = f209 + f211;
304 f230 = MUL_C_R(COEF_CONST(1.3065629648763766), f209);
305 f231 = MUL_C_R(COEF_CONST((-0.9238795325112866)), f229);
306 f232 = MUL_C_R(COEF_CONST((-0.5411961001461967)), f211);
307 f233 = f230 + f231;
308 f234 = f232 - f231;
309 f235 = f213 + f215;
310 f236 = MUL_C_R(COEF_CONST(0.5411961001461969), f213);
311 f237 = MUL_C_R(COEF_CONST(0.3826834323650898), f235);
312 f238 = MUL_C_R(COEF_CONST(1.3065629648763766), f215);
313 f239 = f236 + f237;
314 f240 = f238 - f237;
315 f241 = f202 - f206;
316 f242 = f202 + f206;
317 f243 = f204 - f208;
318 f244 = f204 + f208;
319 f245 = f222 - f228;
320 f246 = f222 + f228;
321 f247 = f221 - f227;
322 f248 = f221 + f227;
323 f249 = f210 - f214;
324 f250 = f210 + f214;
325 f251 = f212 - f216;
326 f252 = f212 + f216;
327 f253 = f234 - f240;
328 f254 = f234 + f240;
329 f255 = f233 - f239;
330 f256 = f233 + f239;
331 f257 = f241 - f243;
332 f258 = f241 + f243;
333 f259 = MUL_C_R(COEF_CONST(0.7071067811865474), f257);
334 f260 = MUL_C_R(COEF_CONST(0.7071067811865474), f258);
335 f261 = f245 - f247;
336 f262 = f245 + f247;
337 f263 = MUL_C_R(COEF_CONST(0.7071067811865474), f261);
338 f264 = MUL_C_R(COEF_CONST(0.7071067811865474), f262);
339 f265 = f249 - f251;
340 f266 = f249 + f251;
341 f267 = MUL_C_R(COEF_CONST(0.7071067811865474), f265);
342 f268 = MUL_C_R(COEF_CONST(0.7071067811865474), f266);
343 f269 = f253 - f255;
344 f270 = f253 + f255;
345 f271 = MUL_C_R(COEF_CONST(0.7071067811865474), f269);
346 f272 = MUL_C_R(COEF_CONST(0.7071067811865474), f270);
347 y[31] = f98 - f242;
348 y[0] = f98 + f242;
349 y[30] = f100 - f250;
350 y[1] = f100 + f250;
351 y[29] = f102 - f254;
352 y[2] = f102 + f254;
353 y[28] = f104 - f246;
354 y[3] = f104 + f246;
355 y[27] = f106 - f264;
356 y[4] = f106 + f264;
357 y[26] = f108 - f272;
358 y[5] = f108 + f272;
359 y[25] = f110 - f268;
360 y[6] = f110 + f268;
361 y[24] = f112 - f260;
362 y[7] = f112 + f260;
363 y[23] = f111 - f259;
364 y[8] = f111 + f259;
365 y[22] = f109 - f267;
366 y[9] = f109 + f267;
367 y[21] = f107 - f271;
368 y[10] = f107 + f271;
369 y[20] = f105 - f263;
370 y[11] = f105 + f263;
371 y[19] = f103 - f248;
372 y[12] = f103 + f248;
373 y[18] = f101 - f256;
374 y[13] = f101 + f256;
375 y[17] = f99 - f252;
376 y[14] = f99 + f252;
377 y[16] = f97 - f244;
378 y[15] = f97 + f244;
379 }
380
381 void DCT2_64_unscaled(real_t *y, real_t *x)
382 {
383 int16_t i0;
384 real_t f2, f3, f4, f5, f6, f7, f8, f9, f10;
385 real_t f11, f12, f13, f14, f15, f16, f17, f18, f19, f20;
386 real_t f21, f22, f23, f24, f25, f26, f27, f28, f29, f30;
387 real_t f31, f32, f33, f34, f35, f36, f37, f38, f39, f40;
388 real_t f41, f42, f43, f44, f45, f46, f47, f48, f49, f50;
389 real_t f51, f52, f53, f54, f55, f56, f57, f58, f59, f60;
390 real_t f61, f62, f65, f66, f67, f68, f71, f72, f73, f74;
391 real_t f75, f76, f77, f78, f79, f80, f81, f82, f85, f86;
392 real_t f87, f88, f91, f92, f93, f94, f95, f96, f97, f98;
393 real_t f99, f100, f101, f102, f103, f104, f105, f106, f107, f108;
394 real_t f109, f110, f111, f112, f113, f114, f115, f116, f117, f118;
395 real_t f119, f120, f121, f122, f123, f124, f125, f126, f127, f128;
396 real_t f129, f130, f133, f134, f135, f136, f139, f140, f141, f142;
397 real_t f145, f146, f147, f148, f151, f152, f153, f154, f155, f156;
398 real_t f157, f158, f159, f160, f161, f162, f163, f164, f165, f166;
399 real_t f167, f168, f169, f170, f171, f172, f173, f174, f175, f176;
400 real_t f177, f178, f179, f180, f181, f182, f183, f184, f185, f186;
401 real_t f187, f188, f189, f190, f191, f192, f193, f194, f195, f196;
402 real_t f197, f198, f199, f200, f201, f202, f203, f204, f205, f206;
403 real_t f207, f208, f209, f210, f211, f213, f214, f215, f216, f217;
404 real_t f218, f219, f220, f221, f222, f223, f224, f225, f226, f227;
405 real_t f228, f229, f230, f231, f232, f233, f234, f235, f236, f237;
406 real_t f238, f239, f240, f241, f242, f243, f244, f245, f246, f247;
407 real_t f248, f249, f250, f251, f252, f253, f254, f255, f256, f257;
408 real_t f258, f259, f260, f261, f262, f263, f264, f265, f266, f267;
409 real_t f268, f269, f270, f271, f272, f273, f274, f275, f276, f277;
410 real_t f279, f280, f295, f296, f297, f298, f299, f300, f301, f302;
411 real_t f303, f304, f305, f306, f307, f308, f309, f310, f311, f312;
412 real_t f313, f314, f315, f316, f317, f318, f319, f320, f321, f322;
413 real_t f323, f324, f325, f326, f327, f328, f329, f330, f331, f332;
414 real_t f333, f334, f335, f336, f337, f338, f339, f340, f341, f342;
415 real_t f343, f344, f345, f346, f347, f348, f349, f350, f351, f352;
416 real_t f353, f354, f355, f356, f357, f358, f359, f360, f361, f362;
417 real_t f363, f364, f365, f366, f367, f368, f369, f370, f371, f372;
418 real_t f373, f374, f375, f376, f377, f378, f379, f380, f381, f382;
419 real_t f383, f384, f385, f386, f387, f388, f389, f390, f391, f392;
420 real_t f393, f394, f395, f396, f397, f398, f399, f400, f401, f402;
421 real_t f403, f404, f405, f406, f407, f408, f409, f410, f411, f412;
422 real_t f413, f414, f415, f416, f417, f418, f419, f420, f421, f422;
423 real_t f423, f424, f425, f426, f427, f428, f429, f430, f431, f432;
424 real_t f433, f434, f435, f436, f437, f438, f439, f440, f441, f442;
425 real_t f443, f444, f445, f446, f447, f448, f449, f450, f451, f452;
426 real_t f453, f454, f455, f456, f457, f458, f459, f460, f461, f462;
427 real_t f463, f464, f465, f466, f467, f468, f469, f470, f471, f472;
428 real_t f473, f474, f475, f476, f477, f478, f479, f480, f481, f482;
429 real_t f483, f484, f485, f486, f487, f488, f489, f490, f491, f492;
430 real_t f493, f494, f495, f496, f497, f498, f499, f500, f501, f502;
431 real_t f503, f504, f505, f506, f507, f508, f509, f510, f511, f512;
432 real_t f513, f514, f515, f516, f517, f518, f519, f520, f521, f522;
433 real_t f523, f524, f525, f526, f527, f528, f529, f530, f531, f532;
434 real_t f533, f534, f535, f536, f537, f538, f539, f540, f541, f542;
435 real_t f543, f544, f545, f546, f547, f548, f549, f550, f551, f552;
436 real_t f553, f554, f557, f558, f559, f560, f563, f564, f565, f566;
437 real_t f569, f570, f571, f572, f575, f576, f577, f578, f581, f582;
438 real_t f583, f584, f587, f588, f589, f590, f593, f594, f595, f596;
439 real_t f599, f600, f601, f602, f605, f606, f607, f608, f611, f612;
440 real_t f613, f614, f617, f618, f619, f620, f623, f624, f625, f626;
441 real_t f629, f630, f631, f632, f635, f636, f637, f638, f641, f642;
442 real_t f643, f644;
443 static real_t t2[64];
444
445 for (i0=0; i0<32; i0++)
446 {
447 t2[2*i0+1] = x[i0] - x[-i0+63];
448 t2[2*i0] = x[i0] + x[-i0+63];
449 }
450 f2 = t2[0] - t2[62];
451 f3 = t2[0] + t2[62];
452 f4 = t2[2] - t2[60];
453 f5 = t2[2] + t2[60];
454 f6 = t2[4] - t2[58];
455 f7 = t2[4] + t2[58];
456 f8 = t2[6] - t2[56];
457 f9 = t2[6] + t2[56];
458 f10 = t2[8] - t2[54];
459 f11 = t2[8] + t2[54];
460 f12 = t2[10] - t2[52];
461 f13 = t2[10] + t2[52];
462 f14 = t2[12] - t2[50];
463 f15 = t2[12] + t2[50];
464 f16 = t2[14] - t2[48];
465 f17 = t2[14] + t2[48];
466 f18 = t2[16] - t2[46];
467 f19 = t2[16] + t2[46];
468 f20 = t2[18] - t2[44];
469 f21 = t2[18] + t2[44];
470 f22 = t2[20] - t2[42];
471 f23 = t2[20] + t2[42];
472 f24 = t2[22] - t2[40];
473 f25 = t2[22] + t2[40];
474 f26 = t2[24] - t2[38];
475 f27 = t2[24] + t2[38];
476 f28 = t2[26] - t2[36];
477 f29 = t2[26] + t2[36];
478 f30 = t2[28] - t2[34];
479 f31 = t2[28] + t2[34];
480 f32 = t2[30] - t2[32];
481 f33 = t2[30] + t2[32];
482 f34 = f3 - f33;
483 f35 = f3 + f33;
484 f36 = f5 - f31;
485 f37 = f5 + f31;
486 f38 = f7 - f29;
487 f39 = f7 + f29;
488 f40 = f9 - f27;
489 f41 = f9 + f27;
490 f42 = f11 - f25;
491 f43 = f11 + f25;
492 f44 = f13 - f23;
493 f45 = f13 + f23;
494 f46 = f15 - f21;
495 f47 = f15 + f21;
496 f48 = f17 - f19;
497 f49 = f17 + f19;
498 f50 = f35 - f49;
499 f51 = f35 + f49;
500 f52 = f37 - f47;
501 f53 = f37 + f47;
502 f54 = f39 - f45;
503 f55 = f39 + f45;
504 f56 = f41 - f43;
505 f57 = f41 + f43;
506 f58 = f51 - f57;
507 f59 = f51 + f57;
508 f60 = f53 - f55;
509 f61 = f53 + f55;
510 f62 = f59 - f61;
511 y[0] = f59 + f61;
512 y[32] = MUL_C_R(COEF_CONST(0.7071067811865476), f62);
513 f65 = f58 + f60;
514 f66 = MUL_C_R(COEF_CONST(1.3065629648763766), f58);
515 f67 = MUL_C_R(COEF_CONST((-0.9238795325112866)), f65);
516 f68 = MUL_C_R(COEF_CONST((-0.5411961001461967)), f60);
517 y[48] = f66 + f67;
518 y[16] = f68 - f67;
519 f71 = f52 - f54;
520 f72 = f52 + f54;
521 f73 = MUL_C_R(COEF_CONST(0.7071067811865476), f72);
522 f74 = MUL_C_R(COEF_CONST(0.7071067811865476), f71);
523 f75 = f50 - f73;
524 f76 = f50 + f73;
525 f77 = f56 - f74;
526 f78 = f56 + f74;
527 f79 = f78 + f76;
528 f80 = MUL_C_R(COEF_CONST((-0.7856949583871021)), f78);
529 f81 = MUL_C_R(COEF_CONST(0.9807852804032304), f79);
530 f82 = MUL_C_R(COEF_CONST(1.1758756024193588), f76);
531 y[8] = f80 + f81;
532 y[56] = f82 - f81;
533 f85 = f77 + f75;
534 f86 = MUL_C_R(COEF_CONST(0.2758993792829431), f77);
535 f87 = MUL_C_R(COEF_CONST(0.5555702330196022), f85);
536 f88 = MUL_C_R(COEF_CONST(1.3870398453221475), f75);
537 y[40] = f86 + f87;
538 y[24] = f88 - f87;
539 f91 = f40 - f42;
540 f92 = f40 + f42;
541 f93 = MUL_C_R(COEF_CONST(0.7071067811865476), f92);
542 f94 = MUL_C_R(COEF_CONST(0.7071067811865476), f91);
543 f95 = f38 - f44;
544 f96 = f38 + f44;
545 f97 = MUL_C_R(COEF_CONST(0.7071067811865476), f96);
546 f98 = MUL_C_R(COEF_CONST(0.7071067811865476), f95);
547 f99 = f34 - f93;
548 f100 = f34 + f93;
549 f101 = f48 - f94;
550 f102 = f48 + f94;
551 f103 = f36 - f97;
552 f104 = f36 + f97;
553 f105 = f46 - f98;
554 f106 = f46 + f98;
555 f107 = f106 + f104;
556 f108 = MUL_C_R(COEF_CONST((-0.5411961001461969)), f106);
557 f109 = MUL_C_R(COEF_CONST(0.9238795325112867), f107);
558 f110 = MUL_C_R(COEF_CONST(1.3065629648763766), f104);
559 f111 = f108 + f109;
560 f112 = f110 - f109;
561 f113 = f105 + f103;
562 f114 = MUL_C_R(COEF_CONST(1.3065629648763770), f105);
563 f115 = MUL_C_R(COEF_CONST((-0.3826834323650904)), f113);
564 f116 = MUL_C_R(COEF_CONST(0.5411961001461961), f103);
565 f117 = f114 + f115;
566 f118 = f116 - f115;
567 f119 = f100 - f111;
568 f120 = f100 + f111;
569 f121 = f102 - f112;
570 f122 = f102 + f112;
571 f123 = f99 - f117;
572 f124 = f99 + f117;
573 f125 = f101 - f118;
574 f126 = f101 + f118;
575 f127 = f122 + f120;
576 f128 = MUL_C_R(COEF_CONST((-0.8971675863426361)), f122);
577 f129 = MUL_C_R(COEF_CONST(0.9951847266721968), f127);
578 f130 = MUL_C_R(COEF_CONST(1.0932018670017576), f120);
579 y[4] = f128 + f129;
580 y[60] = f130 - f129;
581 f133 = f126 + f124;
582 f134 = MUL_C_R(COEF_CONST((-0.4105245275223571)), f126);
583 f135 = MUL_C_R(COEF_CONST(0.8819212643483549), f133);
584 f136 = MUL_C_R(COEF_CONST(1.3533180011743529), f124);
585 y[20] = f134 + f135;
586 y[44] = f136 - f135;
587 f139 = f121 + f119;
588 f140 = MUL_C_R(COEF_CONST(0.1386171691990915), f121);
589 f141 = MUL_C_R(COEF_CONST(0.6343932841636455), f139);
590 f142 = MUL_C_R(COEF_CONST(1.4074037375263826), f119);
591 y[36] = f140 + f141;
592 y[28] = f142 - f141;
593 f145 = f125 + f123;
594 f146 = MUL_C_R(COEF_CONST(0.6666556584777466), f125);
595 f147 = MUL_C_R(COEF_CONST(0.2902846772544623), f145);
596 f148 = MUL_C_R(COEF_CONST(1.2472250129866711), f123);
597 y[52] = f146 + f147;
598 y[12] = f148 - f147;
599 f151 = f2 + f32;
600 f152 = MUL_C_R(COEF_CONST(1.0478631305325901), f2);
601 f153 = MUL_C_R(COEF_CONST((-0.9987954562051724)), f151);
602 f154 = MUL_C_R(COEF_CONST((-0.9497277818777548)), f32);
603 f155 = f152 + f153;
604 f156 = f154 - f153;
605 f157 = f4 + f30;
606 f158 = MUL_C_R(COEF_CONST(1.1359069844201428), f4);
607 f159 = MUL_C_R(COEF_CONST((-0.9891765099647809)), f157);
608 f160 = MUL_C_R(COEF_CONST((-0.8424460355094190)), f30);
609 f161 = f158 + f159;
610 f162 = f160 - f159;
611 f163 = f6 + f28;
612 f164 = MUL_C_R(COEF_CONST(1.2130114330978077), f6);
613 f165 = MUL_C_R(COEF_CONST((-0.9700312531945440)), f163);
614 f166 = MUL_C_R(COEF_CONST((-0.7270510732912803)), f28);
615 f167 = f164 + f165;
616 f168 = f166 - f165;
617 f169 = f8 + f26;
618 f170 = MUL_C_R(COEF_CONST(1.2784339185752405), f8);
619 f171 = MUL_C_R(COEF_CONST((-0.9415440651830209)), f169);
620 f172 = MUL_C_R(COEF_CONST((-0.6046542117908014)), f26);
621 f173 = f170 + f171;
622 f174 = f172 - f171;
623 f175 = f10 + f24;
624 f176 = MUL_C_R(COEF_CONST(1.3315443865537255), f10);
625 f177 = MUL_C_R(COEF_CONST((-0.9039892931234433)), f175);
626 f178 = MUL_C_R(COEF_CONST((-0.4764341996931612)), f24);
627 f179 = f176 + f177;
628 f180 = f178 - f177;
629 f181 = f12 + f22;
630 f182 = MUL_C_R(COEF_CONST(1.3718313541934939), f12);
631 f183 = MUL_C_R(COEF_CONST((-0.8577286100002722)), f181);
632 f184 = MUL_C_R(COEF_CONST((-0.3436258658070507)), f22);
633 f185 = f182 + f183;
634 f186 = f184 - f183;
635 f187 = f14 + f20;
636 f188 = MUL_C_R(COEF_CONST(1.3989068359730781), f14);
637 f189 = MUL_C_R(COEF_CONST((-0.8032075314806453)), f187);
638 f190 = MUL_C_R(COEF_CONST((-0.2075082269882124)), f20);
639 f191 = f188 + f189;
640 f192 = f190 - f189;
641 f193 = f16 + f18;
642 f194 = MUL_C_R(COEF_CONST(1.4125100802019774), f16);
643 f195 = MUL_C_R(COEF_CONST((-0.7409511253549591)), f193);
644 f196 = MUL_C_R(COEF_CONST((-0.0693921705079408)), f18);
645 f197 = f194 + f195;
646 f198 = f196 - f195;
647 f199 = f156 - f198;
648 f200 = f156 + f198;
649 f201 = f162 - f192;
650 f202 = f162 + f192;
651 f203 = f168 - f186;
652 f204 = f168 + f186;
653 f205 = f174 - f180;
654 f206 = f174 + f180;
655 f207 = f200 - f206;
656 f208 = f200 + f206;
657 f209 = f202 - f204;
658 f210 = f202 + f204;
659 f211 = f208 - f210;
660 y[2] = f208 + f210;
661 f213 = MUL_C_R(COEF_CONST(0.7071067811865476), f211);
662 f214 = f207 + f209;
663 f215 = MUL_C_R(COEF_CONST(1.3065629648763766), f207);
664 f216 = MUL_C_R(COEF_CONST((-0.9238795325112866)), f214);
665 f217 = MUL_C_R(COEF_CONST((-0.5411961001461967)), f209);
666 f218 = f215 + f216;
667 f219 = f217 - f216;
668 f220 = f201 - f203;
669 f221 = f201 + f203;
670 f222 = MUL_C_R(COEF_CONST(0.7071067811865476), f221);
671 f223 = MUL_C_R(COEF_CONST(0.7071067811865476), f220);
672 f224 = f199 - f222;
673 f225 = f199 + f222;
674 f226 = f205 - f223;
675 f227 = f205 + f223;
676 f228 = f227 + f225;
677 f229 = MUL_C_R(COEF_CONST((-0.7856949583871021)), f227);
678 f230 = MUL_C_R(COEF_CONST(0.9807852804032304), f228);
679 f231 = MUL_C_R(COEF_CONST(1.1758756024193588), f225);
680 f232 = f229 + f230;
681 f233 = f231 - f230;
682 f234 = f226 + f224;
683 f235 = MUL_C_R(COEF_CONST(0.2758993792829431), f226);
684 f236 = MUL_C_R(COEF_CONST(0.5555702330196022), f234);
685 f237 = MUL_C_R(COEF_CONST(1.3870398453221475), f224);
686 f238 = f235 + f236;
687 f239 = f237 - f236;
688 f240 = f155 - f197;
689 f241 = f155 + f197;
690 f242 = f161 - f191;
691 f243 = f161 + f191;
692 f244 = f167 - f185;
693 f245 = f167 + f185;
694 f246 = f173 - f179;
695 f247 = f173 + f179;
696 f248 = f245 - f243;
697 f249 = f245 + f243;
698 f250 = MUL_C_R(COEF_CONST(0.7071067811865476), f249);
699 f251 = f247 - f250;
700 f252 = f247 + f250;
701 f253 = MUL_C_R(COEF_CONST(0.7071067811865476), f248);
702 f254 = f253 - f241;
703 f255 = f253 + f241;
704 f256 = f255 + f252;
705 f257 = MUL_C_R(COEF_CONST((-0.7856949583871021)), f255);
706 f258 = MUL_C_R(COEF_CONST(0.9807852804032304), f256);
707 f259 = MUL_C_R(COEF_CONST(1.1758756024193588), f252);
708 f260 = f257 + f258;
709 f261 = f259 - f258;
710 f262 = f254 + f251;
711 f263 = MUL_C_R(COEF_CONST((-0.2758993792829430)), f254);
712 f264 = MUL_C_R(COEF_CONST(0.8314696123025452), f262);
713 f265 = MUL_C_R(COEF_CONST(1.3870398453221475), f251);
714 f266 = f263 + f264;
715 f267 = f265 - f264;
716 f268 = f240 - f246;
717 f269 = f240 + f246;
718 f270 = f242 - f244;
719 f271 = f242 + f244;
720 f272 = f269 + f271;
721 f273 = MUL_C_R(COEF_CONST(1.3065629648763770), f269);
722 f274 = MUL_C_R(COEF_CONST((-0.3826834323650904)), f272);
723 f275 = MUL_C_R(COEF_CONST(0.5411961001461961), f271);
724 f276 = f273 + f274;
725 f277 = f275 - f274;
726 y[62] = f268 - f270;
727 f279 = f268 + f270;
728 f280 = MUL_C_R(COEF_CONST(0.7071067811865476), f279);
729 y[10] = f232 - f260;
730 y[6] = f232 + f260;
731 y[18] = f219 - f277;
732 y[14] = f219 + f277;
733 y[26] = f239 + f266;
734 y[22] = f239 - f266;
735 y[34] = f213 - f280;
736 y[30] = f213 + f280;
737 y[42] = f238 - f267;
738 y[38] = f238 + f267;
739 y[50] = f218 - f276;
740 y[46] = f218 + f276;
741 y[58] = f233 + f261;
742 y[54] = f233 - f261;
743 f295 = t2[3] - t2[5];
744 f296 = t2[3] + t2[5];
745 f297 = t2[7] - t2[9];
746 f298 = t2[7] + t2[9];
747 f299 = t2[11] - t2[13];
748 f300 = t2[11] + t2[13];
749 f301 = t2[15] - t2[17];
750 f302 = t2[15] + t2[17];
751 f303 = t2[19] - t2[21];
752 f304 = t2[19] + t2[21];
753 f305 = t2[23] - t2[25];
754 f306 = t2[23] + t2[25];
755 f307 = t2[27] - t2[29];
756 f308 = t2[27] + t2[29];
757 f309 = t2[31] - t2[33];
758 f310 = t2[31] + t2[33];
759 f311 = t2[35] - t2[37];
760 f312 = t2[35] + t2[37];
761 f313 = t2[39] - t2[41];
762 f314 = t2[39] + t2[41];
763 f315 = t2[43] - t2[45];
764 f316 = t2[43] + t2[45];
765 f317 = t2[47] - t2[49];
766 f318 = t2[47] + t2[49];
767 f319 = t2[51] - t2[53];
768 f320 = t2[51] + t2[53];
769 f321 = t2[55] - t2[57];
770 f322 = t2[55] + t2[57];
771 f323 = t2[59] - t2[61];
772 f324 = t2[59] + t2[61];
773 f325 = MUL_C_R(COEF_CONST(0.7071067811865476), f310);
774 f326 = t2[1] - f325;
775 f327 = t2[1] + f325;
776 f328 = f302 + f318;
777 f329 = MUL_C_R(COEF_CONST(1.3065629648763766), f302);
778 f330 = MUL_C_R(COEF_CONST((-0.9238795325112866)), f328);
779 f331 = MUL_C_R(COEF_CONST((-0.5411961001461967)), f318);
780 f332 = f329 + f330;
781 f333 = f331 - f330;
782 f334 = f327 - f333;
783 f335 = f327 + f333;
784 f336 = f326 - f332;
785 f337 = f326 + f332;
786 f338 = f306 - f314;
787 f339 = f306 + f314;
788 f340 = MUL_C_R(COEF_CONST(0.7071067811865476), f339);
789 f341 = f298 - f340;
790 f342 = f298 + f340;
791 f343 = MUL_C_R(COEF_CONST(0.7071067811865476), f338);
792 f344 = f343 - f322;
793 f345 = f343 + f322;
794 f346 = f345 + f342;
795 f347 = MUL_C_R(COEF_CONST((-0.7856949583871021)), f345);
796 f348 = MUL_C_R(COEF_CONST(0.9807852804032304), f346);
797 f349 = MUL_C_R(COEF_CONST(1.1758756024193588), f342);
798 f350 = f347 + f348;
799 f351 = f349 - f348;
800 f352 = f344 + f341;
801 f353 = MUL_C_R(COEF_CONST((-0.2758993792829430)), f344);
802 f354 = MUL_C_R(COEF_CONST(0.8314696123025452), f352);
803 f355 = MUL_C_R(COEF_CONST(1.3870398453221475), f341);
804 f356 = f353 + f354;
805 f357 = f355 - f354;
806 f358 = f335 - f350;
807 f359 = f335 + f350;
808 f360 = f337 - f356;
809 f361 = f337 + f356;
810 f362 = f336 - f357;
811 f363 = f336 + f357;
812 f364 = f334 - f351;
813 f365 = f334 + f351;
814 f366 = MUL_C_R(COEF_CONST(5.1011486186891641), f296);
815 f367 = MUL_C_R(COEF_CONST(1.7224470982383342), f300);
816 f368 = MUL_C_R(COEF_CONST(1.0606776859903475), f304);
817 f369 = MUL_C_R(COEF_CONST(0.7881546234512502), f308);
818 f370 = MUL_C_R(COEF_CONST(0.5024192861881557), f324);
819 f371 = MUL_C_R(COEF_CONST(0.5224986149396889), f320);
820 f372 = MUL_C_R(COEF_CONST(0.5669440348163577), f316);
821 f373 = MUL_C_R(COEF_CONST(0.6468217833599901), f312);
822 f374 = f366 - f370;
823 f375 = f366 + f370;
824 f376 = f367 - f371;
825 f377 = f367 + f371;
826 f378 = f368 - f372;
827 f379 = f368 + f372;
828 f380 = f369 - f373;
829 f381 = f369 + f373;
830 f382 = MUL_C_R(COEF_CONST(0.5097955791041592), f375);
831 f383 = MUL_C_R(COEF_CONST(0.6013448869350453), f377);
832 f384 = MUL_C_R(COEF_CONST(0.8999762231364156), f379);
833 f385 = MUL_C_R(COEF_CONST(2.5629154477415055), f381);
834 f386 = f382 + f385;
835 f387 = f382 - f385;
836 f388 = f383 + f384;
837 f389 = f384 - f383;
838 f390 = f387 - f389;
839 f391 = f387 + f389;
840 f392 = MUL_C_R(COEF_CONST(0.7071067811865476), f390);
841 f393 = f386 - f388;
842 f394 = MUL_C_R(COEF_CONST(1.3065629648763766), f386);
843 f395 = MUL_C_R(COEF_CONST((-0.9238795325112866)), f393);
844 f396 = MUL_C_R(COEF_CONST((-0.5411961001461967)), f388);
845 f397 = f394 + f395;
846 f398 = f395 + f396;
847 f399 = f391 - f398;
848 f400 = f392 - f398;
849 f401 = f392 + f397;
850 f402 = f380 - f374;
851 f403 = f374 + f380;
852 f404 = f378 - f376;
853 f405 = f376 + f378;
854 f406 = f403 + f405;
855 f407 = MUL_C_R(COEF_CONST(1.3065629648763770), f403);
856 f408 = MUL_C_R(COEF_CONST((-0.3826834323650904)), f406);
857 f409 = MUL_C_R(COEF_CONST(0.5411961001461961), f405);
858 f410 = f407 + f408;
859 f411 = f408 - f409;
860 f412 = f402 - f404;
861 f413 = f402 + f404;
862 f414 = MUL_C_R(COEF_CONST(0.7071067811865476), f413);
863 f415 = f411 + f397;
864 f416 = f401 + f411;
865 f417 = f414 + f401;
866 f418 = f400 + f414;
867 f419 = f400 - f410;
868 f420 = f399 - f410;
869 f421 = f412 + f399;
870 f422 = f359 - f397;
871 f423 = f359 + f397;
872 f424 = f361 + f415;
873 f425 = f361 - f415;
874 f426 = f363 - f416;
875 f427 = f363 + f416;
876 f428 = f365 + f417;
877 f429 = f365 - f417;
878 f430 = f364 - f418;
879 f431 = f364 + f418;
880 f432 = f362 + f419;
881 f433 = f362 - f419;
882 f434 = f360 - f420;
883 f435 = f360 + f420;
884 f436 = f358 + f421;
885 f437 = f358 - f421;
886 f438 = MUL_C_R(COEF_CONST(5.1011486186891641), f295);
887 f439 = MUL_C_R(COEF_CONST(1.7224470982383342), f299);
888 f440 = MUL_C_R(COEF_CONST(1.0606776859903475), f303);
889 f441 = MUL_C_R(COEF_CONST(0.7881546234512502), f307);
890 f442 = MUL_C_R(COEF_CONST(0.5024192861881557), f323);
891 f443 = MUL_C_R(COEF_CONST(0.5224986149396889), f319);
892 f444 = MUL_C_R(COEF_CONST(0.5669440348163577), f315);
893 f445 = MUL_C_R(COEF_CONST(0.6468217833599901), f311);
894 f446 = f438 + f442;
895 f447 = f438 - f442;
896 f448 = f439 + f443;
897 f449 = f443 - f439;
898 f450 = f440 + f444;
899 f451 = f440 - f444;
900 f452 = f441 + f445;
901 f453 = f445 - f441;
902 f454 = MUL_C_R(COEF_CONST(0.5097955791041592), f447);
903 f455 = MUL_C_R(COEF_CONST(0.6013448869350453), f449);
904 f456 = MUL_C_R(COEF_CONST(0.8999762231364156), f451);
905 f457 = MUL_C_R(COEF_CONST(2.5629154477415055), f453);
906 f458 = f454 + f457;
907 f459 = f454 - f457;
908 f460 = f455 + f456;
909 f461 = f456 - f455;
910 f462 = f459 - f461;
911 f463 = f459 + f461;
912 f464 = MUL_C_R(COEF_CONST(0.7071067811865476), f462);
913 f465 = f458 - f460;
914 f466 = MUL_C_R(COEF_CONST(1.3065629648763766), f458);
915 f467 = MUL_C_R(COEF_CONST((-0.9238795325112866)), f465);
916 f468 = MUL_C_R(COEF_CONST((-0.5411961001461967)), f460);
917 f469 = f466 + f467;
918 f470 = f467 + f468;
919 f471 = f463 - f470;
920 f472 = f464 - f470;
921 f473 = f464 + f469;
922 f474 = f446 + f452;
923 f475 = f452 - f446;
924 f476 = f448 + f450;
925 f477 = f448 - f450;
926 f478 = f475 + f477;
927 f479 = MUL_C_R(COEF_CONST(1.3065629648763770), f475);
928 f480 = MUL_C_R(COEF_CONST((-0.3826834323650904)), f478);
929 f481 = MUL_C_R(COEF_CONST(0.5411961001461961), f477);
930 f482 = f479 + f480;
931 f483 = f481 - f480;
932 f484 = f474 + f476;
933 f485 = f476 - f474;
934 f486 = MUL_C_R(COEF_CONST(0.7071067811865476), f485);
935 f487 = f483 + f469;
936 f488 = f473 + f483;
937 f489 = f486 + f473;
938 f490 = f472 + f486;
939 f491 = f482 + f472;
940 f492 = f471 + f482;
941 f493 = f471 - f484;
942 f494 = MUL_C_R(COEF_CONST(0.7071067811865476), f309);
943 f495 = t2[63] - f494;
944 f496 = t2[63] + f494;
945 f497 = f317 + f301;
946 f498 = MUL_C_R(COEF_CONST(1.3065629648763766), f317);
947 f499 = MUL_C_R(COEF_CONST((-0.9238795325112866)), f497);
948 f500 = MUL_C_R(COEF_CONST((-0.5411961001461967)), f301);
949 f501 = f498 + f499;
950 f502 = f500 - f499;
951 f503 = f496 - f502;
952 f504 = f496 + f502;
953 f505 = f495 - f501;
954 f506 = f495 + f501;
955 f507 = MUL_C_R(COEF_CONST(0.5097955791041592), f321);
956 f508 = MUL_C_R(COEF_CONST(0.6013448869350453), f313);
957 f509 = MUL_C_R(COEF_CONST(0.8999762231364156), f305);
958 f510 = MUL_C_R(COEF_CONST(2.5629154477415055), f297);
959 f511 = f507 - f510;
960 f512 = f507 + f510;
961 f513 = f508 - f509;
962 f514 = f508 + f509;
963 f515 = f512 - f514;
964 f516 = f512 + f514;
965 f517 = MUL_C_R(COEF_CONST(0.7071067811865476), f515);
966 f518 = f511 + f513;
967 f519 = MUL_C_R(COEF_CONST(1.3065629648763766), f511);
968 f520 = MUL_C_R(COEF_CONST((-0.9238795325112866)), f518);
969 f521 = MUL_C_R(COEF_CONST((-0.5411961001461967)), f513);
970 f522 = f519 + f520;
971 f523 = f521 - f520;
972 f524 = f516 + f523;
973 f525 = f523 + f517;
974 f526 = f517 + f522;
975 f527 = f504 - f524;
976 f528 = f504 + f524;
977 f529 = f506 - f525;
978 f530 = f506 + f525;
979 f531 = f505 - f526;
980 f532 = f505 + f526;
981 f533 = f503 - f522;
982 f534 = f503 + f522;
983 f535 = f493 + f528;
984 f536 = f528 - f493;
985 f537 = f492 + f530;
986 f538 = f492 - f530;
987 f539 = f491 + f532;
988 f540 = f532 - f491;
989 f541 = f490 + f534;
990 f542 = f490 - f534;
991 f543 = f489 + f533;
992 f544 = f533 - f489;
993 f545 = f488 + f531;
994 f546 = f488 - f531;
995 f547 = f487 + f529;
996 f548 = f529 - f487;
997 f549 = f469 + f527;
998 f550 = f469 - f527;
999 f551 = f536 + f423;
1000 f552 = MUL_C_R(COEF_CONST((-0.9751575901732920)), f536);
1001 f553 = MUL_C_R(COEF_CONST(0.9996988186962043), f551);
1002 f554 = MUL_C_R(COEF_CONST(1.0242400472191164), f423);
1003 y[1] = f552 + f553;
1004 y[63] = f554 - f553;
1005 f557 = f538 + f425;
1006 f558 = MUL_C_R(COEF_CONST((-0.9237258930790228)), f538);
1007 f559 = MUL_C_R(COEF_CONST(0.9972904566786902), f557);
1008 f560 = MUL_C_R(COEF_CONST(1.0708550202783576), f425);
1009 y[3] = f558 + f559;
1010 y[61] = f560 - f559;
1011 f563 = f540 + f427;
1012 f564 = MUL_C_R(COEF_CONST((-0.8700688593994936)), f540);
1013 f565 = MUL_C_R(COEF_CONST(0.9924795345987100), f563);
1014 f566 = MUL_C_R(COEF_CONST(1.1148902097979263), f427);
1015 y[5] = f564 + f565;
1016 y[59] = f566 - f565;
1017 f569 = f542 + f429;
1018 f570 = MUL_C_R(COEF_CONST((-0.8143157536286398)), f542);
1019 f571 = MUL_C_R(COEF_CONST(0.9852776423889412), f569);
1020 f572 = MUL_C_R(COEF_CONST(1.1562395311492426), f429);
1021 y[7] = f570 + f571;
1022 y[57] = f572 - f571;
1023 f575 = f544 + f431;
1024 f576 = MUL_C_R(COEF_CONST((-0.7566008898816587)), f544);
1025 f577 = MUL_C_R(COEF_CONST(0.9757021300385286), f575);
1026 f578 = MUL_C_R(COEF_CONST(1.1948033701953984), f431);
1027 y[9] = f576 + f577;
1028 y[55] = f578 - f577;
1029 f581 = f546 + f433;
1030 f582 = MUL_C_R(COEF_CONST((-0.6970633083205414)), f546);
1031 f583 = MUL_C_R(COEF_CONST(0.9637760657954398), f581);
1032 f584 = MUL_C_R(COEF_CONST(1.2304888232703384), f433);
1033 y[11] = f582 + f583;
1034 y[53] = f584 - f583;
1035 f587 = f548 + f435;
1036 f588 = MUL_C_R(COEF_CONST((-0.6358464401941451)), f548);
1037 f589 = MUL_C_R(COEF_CONST(0.9495281805930367), f587);
1038 f590 = MUL_C_R(COEF_CONST(1.2632099209919283), f435);
1039 y[13] = f588 + f589;
1040 y[51] = f590 - f589;
1041 f593 = f550 + f437;
1042 f594 = MUL_C_R(COEF_CONST((-0.5730977622997506)), f550);
1043 f595 = MUL_C_R(COEF_CONST(0.9329927988347389), f593);
1044 f596 = MUL_C_R(COEF_CONST(1.2928878353697271), f437);
1045 y[15] = f594 + f595;
1046 y[49] = f596 - f595;
1047 f599 = f549 + f436;
1048 f600 = MUL_C_R(COEF_CONST((-0.5089684416985408)), f549);
1049 f601 = MUL_C_R(COEF_CONST(0.9142097557035307), f599);
1050 f602 = MUL_C_R(COEF_CONST(1.3194510697085207), f436);
1051 y[17] = f600 + f601;
1052 y[47] = f602 - f601;
1053 f605 = f434 - f547;
1054 f606 = MUL_C_R(COEF_CONST((-0.4436129715409087)), f547);
1055 f607 = MUL_C_R(COEF_CONST(0.8932243011955153), f605);
1056 f608 = MUL_C_R(COEF_CONST(1.3428356308501219), f434);
1057 y[19] = f607 - f606;
1058 y[45] = f608 - f607;
1059 f611 = f545 + f432;
1060 f612 = MUL_C_R(COEF_CONST((-0.3771887988789273)), f545);
1061 f613 = MUL_C_R(COEF_CONST(0.8700869911087114), f611);
1062 f614 = MUL_C_R(COEF_CONST(1.3629851833384954), f432);
1063 y[21] = f612 + f613;
1064 y[43] = f614 - f613;
1065 f617 = f430 - f543;
1066 f618 = MUL_C_R(COEF_CONST((-0.3098559453626097)), f543);
1067 f619 = MUL_C_R(COEF_CONST(0.8448535652497070), f617);
1068 f620 = MUL_C_R(COEF_CONST(1.3798511851368043), f430);
1069 y[23] = f619 - f618;
1070 y[41] = f620 - f619;
1071 f623 = f541 + f428;
1072 f624 = MUL_C_R(COEF_CONST((-0.2417766217337384)), f541);
1073 f625 = MUL_C_R(COEF_CONST(0.8175848131515837), f623);
1074 f626 = MUL_C_R(COEF_CONST(1.3933930045694289), f428);
1075 y[25] = f624 + f625;
1076 y[39] = f626 - f625;
1077 f629 = f426 - f539;
1078 f630 = MUL_C_R(COEF_CONST((-0.1731148370459794)), f539);
1079 f631 = MUL_C_R(COEF_CONST(0.7883464276266062), f629);
1080 f632 = MUL_C_R(COEF_CONST(1.4035780182072330), f426);
1081 y[27] = f631 - f630;
1082 y[37] = f632 - f631;
1083 f635 = f537 + f424;
1084 f636 = MUL_C_R(COEF_CONST((-0.1040360035527077)), f537);
1085 f637 = MUL_C_R(COEF_CONST(0.7572088465064845), f635);
1086 f638 = MUL_C_R(COEF_CONST(1.4103816894602612), f424);
1087 y[29] = f636 + f637;
1088 y[35] = f638 - f637;
1089 f641 = f422 - f535;
1090 f642 = MUL_C_R(COEF_CONST((-0.0347065382144000)), f535);
1091 f643 = MUL_C_R(COEF_CONST(0.7242470829514669), f641);
1092 f644 = MUL_C_R(COEF_CONST(1.4137876276885337), f422);
1093 y[31] = f643 - f642;
1094 y[33] = f644 - f643;
1095 }
1096
1097 #else
1098
1099 void DCT4_64(real_t *y, real_t *x)
1100 {
1101 int16_t i0;
1102 real_t f2;
1103 real_t f3;
1104 real_t f4;
1105 real_t f5;
1106 real_t f6;
1107 real_t f7;
1108 real_t f8;
1109 real_t f9;
1110 real_t f10;
1111 real_t f11;
1112 real_t f12;
1113 real_t f13;
1114 real_t f14;
1115 real_t f15;
1116 real_t f16;
1117 real_t f17;
1118 real_t f18;
1119 real_t f19;
1120 real_t f20;
1121 real_t f21;
1122 real_t f22;
1123 real_t f23;
1124 real_t f24;
1125 real_t f25;
1126 real_t f26;
1127 real_t f27;
1128 real_t f28;
1129 real_t f29;
1130 real_t f30;
1131 real_t f31;
1132 real_t f32;
1133 real_t f33;
1134 real_t f34;
1135 real_t f35;
1136 real_t f36;
1137 real_t f37;
1138 real_t f38;
1139 real_t f39;
1140 real_t f40;
1141 real_t f41;
1142 real_t f42;
1143 real_t f43;
1144 real_t f44;
1145 real_t f45;
1146 real_t f46;
1147 real_t f47;
1148 real_t f48;
1149 real_t f49;
1150 real_t f50;
1151 real_t f51;
1152 real_t f52;
1153 real_t f53;
1154 real_t f54;
1155 real_t f55;
1156 real_t f56;
1157 real_t f57;
1158 real_t f58;
1159 real_t f59;
1160 real_t f60;
1161 real_t f61;
1162 real_t f62;
1163 real_t f63;
1164 real_t f64;
1165 real_t f65;
1166 real_t f66;
1167 real_t f67;
1168 real_t f68;
1169 real_t f69;
1170 real_t f70;
1171 real_t f71;
1172 real_t f72;
1173 real_t f73;
1174 real_t f74;
1175 real_t f75;
1176 real_t f76;
1177 real_t f77;
1178 real_t f78;
1179 real_t f79;
1180 real_t f80;
1181 real_t f81;
1182 real_t f82;
1183 real_t f83;
1184 real_t f84;
1185 real_t f85;
1186 real_t f86;
1187 real_t f87;
1188 real_t f88;
1189 real_t f89;
1190 real_t f90;
1191 real_t f91;
1192 real_t f92;
1193 real_t f93;
1194 real_t f94;
1195 real_t f95;
1196 real_t f96;
1197 real_t f97;
1198 real_t f98;
1199 real_t f99;
1200 real_t f100;
1201 real_t f101;
1202 real_t f102;
1203 real_t f103;
1204 real_t f104;
1205 real_t f105;
1206 real_t f106;
1207 real_t f107;
1208 real_t f108;
1209 real_t f109;
1210 real_t f110;
1211 real_t f111;
1212 real_t f112;
1213 real_t f113;
1214 real_t f114;
1215 real_t f115;
1216 real_t f116;
1217 real_t f117;
1218 real_t f118;
1219 real_t f119;
1220 real_t f120;
1221 real_t f121;
1222 real_t f122;
1223 real_t f123;
1224 real_t f124;
1225 real_t f125;
1226 real_t f126;
1227 real_t f127;
1228 real_t f128;
1229 real_t f129;
1230 real_t f130;
1231 real_t f131;
1232 real_t f132;
1233 real_t f133;
1234 real_t f134;
1235 real_t f135;
1236 real_t f136;
1237 real_t f137;
1238 real_t f138;
1239 real_t f139;
1240 real_t f140;
1241 real_t f141;
1242 real_t f142;
1243 real_t f143;
1244 real_t f144;
1245 real_t f145;
1246 real_t f146;
1247 real_t f147;
1248 real_t f148;
1249 real_t f149;
1250 real_t f150;
1251 real_t f151;
1252 real_t f152;
1253 real_t f153;
1254 real_t f154;
1255 real_t f155;
1256 real_t f156;
1257 real_t f157;
1258 real_t f158;
1259 real_t f159;
1260 real_t f160;
1261 real_t f161;
1262 real_t f162;
1263 real_t f163;
1264 real_t f164;
1265 real_t f165;
1266 real_t f166;
1267 real_t f167;
1268 real_t f168;
1269 real_t f169;
1270 real_t f170;
1271 real_t f171;
1272 real_t f172;
1273 real_t f173;
1274 real_t f174;
1275 real_t f175;
1276 real_t f176;
1277 real_t f177;
1278 real_t f178;
1279 real_t f179;
1280 real_t f180;
1281 real_t f181;
1282 real_t f182;
1283 real_t f183;
1284 real_t f184;
1285 real_t f185;
1286 real_t f186;
1287 real_t f187;
1288 real_t f188;
1289 real_t f189;
1290 real_t f190;
1291 real_t f191;
1292 real_t f192;
1293 real_t f193;
1294 real_t f194;
1295 real_t f195;
1296 real_t f196;
1297 real_t f197;
1298 real_t f198;
1299 real_t f199;
1300 real_t f200;
1301 real_t f201;
1302 real_t f202;
1303 real_t f203;
1304 real_t f204;
1305 real_t f205;
1306 real_t f206;
1307 real_t f207;
1308 real_t f208;
1309 real_t f209;
1310 real_t f210;
1311 real_t f211;
1312 real_t f212;
1313 real_t f213;
1314 real_t f214;
1315 real_t f215;
1316 real_t f216;
1317 real_t f217;
1318 real_t f218;
1319 real_t f219;
1320 real_t f220;
1321 real_t f221;
1322 real_t f222;
1323 real_t f223;
1324 real_t f224;
1325 real_t f225;
1326 real_t f226;
1327 real_t f227;
1328 real_t f228;
1329 real_t f229;
1330 real_t f230;
1331 real_t f231;
1332 real_t f232;
1333 real_t f233;
1334 real_t f234;
1335 real_t f235;
1336 real_t f236;
1337 real_t f237;
1338 real_t f238;
1339 real_t f239;
1340 real_t f240;
1341 real_t f241;
1342 real_t f242;
1343 real_t f243;
1344 real_t f244;
1345 real_t f245;
1346 real_t f246;
1347 real_t f247;
1348 real_t f248;
1349 real_t f249;
1350 real_t f250;
1351 real_t f251;
1352 real_t f252;
1353 real_t f253;
1354 real_t f254;
1355 real_t f255;
1356 real_t f256;
1357 real_t f257;
1358 real_t f258;
1359 real_t f259;
1360 real_t f260;
1361 real_t f261;
1362 real_t f262;
1363 real_t f263;
1364 real_t f264;
1365 real_t f265;
1366 real_t f266;
1367 real_t f267;
1368 real_t f268;
1369 real_t f269;
1370 real_t f270;
1371 real_t f271;
1372 real_t f272;
1373 real_t f273;
1374 real_t f274;
1375 real_t f275;
1376 real_t f276;
1377 real_t f277;
1378 real_t f278;
1379 real_t f279;
1380 real_t f280;
1381 real_t f281;
1382 real_t f282;
1383 real_t f283;
1384 real_t f284;
1385 real_t f285;
1386 real_t f286;
1387 real_t f287;
1388 real_t f288;
1389 real_t f289;
1390 real_t f290;
1391 real_t f291;
1392 real_t f292;
1393 real_t f293;
1394 real_t f294;
1395 real_t f295;
1396 real_t f296;
1397 real_t f297;
1398 real_t f298;
1399 real_t f299;
1400 real_t f300;
1401 real_t f301;
1402 real_t f302;
1403 real_t f303;
1404 real_t f304;
1405 real_t f305;
1406 real_t f306;
1407 real_t f307;
1408 real_t f308;
1409 real_t f309;
1410 real_t f310;
1411 real_t f311;
1412 real_t f312;
1413 real_t f313;
1414 real_t f314;
1415 real_t f315;
1416 real_t f316;
1417 real_t f317;
1418 real_t f318;
1419 real_t f319;
1420 real_t f320;
1421 real_t f321;
1422 real_t f322;
1423 real_t f323;
1424 real_t f324;
1425 real_t f325;
1426 real_t f326;
1427 real_t f327;
1428 real_t f328;
1429 real_t f329;
1430 real_t f330;
1431 real_t f331;
1432 real_t f332;
1433 real_t f333;
1434 real_t f334;
1435 real_t f335;
1436 real_t f336;
1437 real_t f337;
1438 real_t f338;
1439 real_t f339;
1440 real_t f340;
1441 real_t f341;
1442 real_t f342;
1443 real_t f343;
1444 real_t f344;
1445 real_t f345;
1446 real_t f346;
1447 real_t f347;
1448 real_t f348;
1449 real_t f349;
1450 real_t f350;
1451 real_t f351;
1452 real_t f352;
1453 real_t f353;
1454 real_t f354;
1455 real_t f355;
1456 real_t f356;
1457 real_t f357;
1458 real_t f358;
1459 real_t f359;
1460 real_t f360;
1461 real_t f361;
1462 real_t f362;
1463 real_t f363;
1464 real_t f364;
1465 real_t f365;
1466 real_t f366;
1467 real_t f367;
1468 real_t f368;
1469 real_t f369;
1470 real_t f370;
1471 real_t f371;
1472 real_t f372;
1473 real_t f373;
1474 real_t f374;
1475 real_t f375;
1476 real_t f376;
1477 real_t f377;
1478 real_t f378;
1479 real_t f379;
1480 real_t f380;
1481 real_t f381;
1482 real_t f382;
1483 real_t f383;
1484 real_t f384;
1485 real_t f385;
1486 real_t f386;
1487 real_t f387;
1488 real_t f388;
1489 real_t f389;
1490 real_t f390;
1491 real_t f391;
1492 real_t f392;
1493 real_t f393;
1494 real_t f394;
1495 real_t f395;
1496 real_t f396;
1497 real_t f397;
1498 real_t f398;
1499 real_t f399;
1500 real_t f400;
1501 real_t f401;
1502 real_t f402;
1503 real_t f403;
1504 real_t f404;
1505 real_t f405;
1506 real_t f406;
1507 real_t f407;
1508 real_t f408;
1509 real_t f409;
1510 real_t f410;
1511 real_t f411;
1512 real_t f412;
1513 real_t f413;
1514 real_t f414;
1515 real_t f415;
1516 real_t f416;
1517 real_t f417;
1518 real_t f418;
1519 real_t f419;
1520 real_t f420;
1521 real_t f421;
1522 real_t f422;
1523 real_t f423;
1524 real_t f424;
1525 real_t f425;
1526 real_t f426;
1527 real_t f427;
1528 real_t f428;
1529 real_t f429;
1530 real_t f430;
1531 real_t f431;
1532 real_t f432;
1533 real_t f433;
1534 real_t f434;
1535 real_t f435;
1536 real_t f436;
1537 real_t f437;
1538 real_t f438;
1539 real_t f439;
1540 real_t f440;
1541 real_t f441;
1542 real_t f442;
1543 real_t f443;
1544 real_t f444;
1545 real_t f445;
1546 real_t f446;
1547 real_t f447;
1548 real_t f448;
1549 real_t f449;
1550 real_t f450;
1551 real_t f451;
1552 real_t f452;
1553 real_t f453;
1554 real_t f454;
1555 real_t f455;
1556 real_t f456;
1557 real_t f457;
1558 real_t f458;
1559 real_t f459;
1560 real_t f460;
1561 real_t f461;
1562 real_t f462;
1563 real_t f463;
1564 real_t f464;
1565 real_t f465;
1566 real_t f466;
1567 real_t f467;
1568 real_t f468;
1569 real_t f469;
1570 real_t f470;
1571 real_t f471;
1572 real_t f472;
1573 real_t f473;
1574 real_t f474;
1575 real_t f475;
1576 real_t f476;
1577 real_t f477;
1578 real_t f478;
1579 real_t f479;
1580 real_t f480;
1581 real_t f481;
1582 real_t f482;
1583 real_t f483;
1584 real_t f484;
1585 real_t f485;
1586 real_t f486;
1587 real_t f487;
1588 real_t f488;
1589 real_t f489;
1590 real_t f490;
1591 real_t f491;
1592 real_t f492;
1593 real_t f493;
1594 real_t f494;
1595 real_t f495;
1596 real_t f496;
1597 real_t f497;
1598 real_t f498;
1599 real_t f499;
1600 real_t f500;
1601 real_t f501;
1602 real_t f502;
1603 real_t f503;
1604 real_t f504;
1605 real_t f505;
1606 real_t f506;
1607 real_t f507;
1608 real_t f508;
1609 real_t f509;
1610 real_t f510;
1611 real_t f511;
1612 real_t f512;
1613 real_t f513;
1614 real_t f514;
1615 real_t f515;
1616 real_t f516;
1617 real_t f517;
1618 real_t f518;
1619 real_t f519;
1620 real_t f520;
1621 real_t f521;
1622 real_t f522;
1623 real_t f523;
1624 real_t f524;
1625 real_t f525;
1626 real_t f526;
1627 real_t f527;
1628 real_t f528;
1629 real_t f529;
1630 real_t f530;
1631 real_t f531;
1632 real_t f532;
1633 real_t f533;
1634 real_t f534;
1635 real_t f535;
1636 real_t f536;
1637 real_t f537;
1638 real_t f538;
1639 real_t f539;
1640 real_t f540;
1641 real_t f541;
1642 real_t f542;
1643 real_t f543;
1644 real_t f544;
1645 real_t f545;
1646 real_t f546;
1647 real_t f547;
1648 real_t f548;
1649 real_t f549;
1650 real_t f550;
1651 real_t f551;
1652 real_t f552;
1653 real_t f553;
1654 real_t f554;
1655 real_t f555;
1656 real_t f556;
1657 real_t f557;
1658 real_t f558;
1659 real_t f559;
1660 real_t f560;
1661 real_t f561;
1662 real_t f562;
1663 real_t f563;
1664 real_t f564;
1665 real_t f565;
1666 real_t f566;
1667 real_t f567;
1668 real_t f568;
1669 real_t f569;
1670 real_t f570;
1671 real_t f571;
1672 real_t f572;
1673 real_t f573;
1674 real_t f574;
1675 real_t f575;
1676 real_t f576;
1677 real_t f577;
1678 real_t f578;
1679 real_t f579;
1680 real_t f580;
1681 real_t f581;
1682 real_t f582;
1683 real_t f583;
1684 real_t f584;
1685 real_t f585;
1686 real_t f586;
1687 real_t f587;
1688 real_t f588;
1689 real_t f589;
1690 real_t f590;
1691 real_t f591;
1692 real_t f592;
1693 real_t f593;
1694 real_t f594;
1695 real_t f595;
1696 real_t f596;
1697 real_t f597;
1698 real_t f598;
1699 real_t f599;
1700 real_t f600;
1701 real_t f601;
1702 real_t f602;
1703 real_t f603;
1704 real_t f604;
1705 real_t f605;
1706 real_t f606;
1707 real_t f607;
1708 real_t f608;
1709 real_t f609;
1710 real_t f610;
1711 real_t f611;
1712 real_t f612;
1713 real_t f613;
1714 real_t f614;
1715 real_t f615;
1716 real_t f618;
1717 real_t f619;
1718 real_t f620;
1719 real_t f621;
1720 real_t f624;
1721 real_t f625;
1722 real_t f626;
1723 real_t f627;
1724 real_t f630;
1725 real_t f631;
1726 real_t f632;
1727 real_t f633;
1728 real_t f636;
1729 real_t f637;
1730 real_t f638;
1731 real_t f639;
1732 real_t f642;
1733 real_t f643;
1734 real_t f644;
1735 real_t f645;
1736 real_t f648;
1737 real_t f649;
1738 real_t f650;
1739 real_t f651;
1740 real_t f654;
1741 real_t f655;
1742 real_t f656;
1743 real_t f657;
1744 real_t f660;
1745 real_t f661;
1746 real_t f662;
1747 real_t f663;
1748 real_t f666;
1749 real_t f667;
1750 real_t f668;
1751 real_t f669;
1752 real_t f672;
1753 real_t f673;
1754 real_t f674;
1755 real_t f675;
1756 real_t f678;
1757 real_t f679;
1758 real_t f680;
1759 real_t f681;
1760 real_t f684;
1761 real_t f685;
1762 real_t f686;
1763 real_t f687;
1764 real_t f690;
1765 real_t f691;
1766 real_t f692;
1767 real_t f693;
1768 real_t f696;
1769 real_t f697;
1770 real_t f698;
1771 real_t f699;
1772 real_t f702;
1773 real_t f703;
1774 real_t f704;
1775 real_t f705;
1776 real_t f708;
1777 real_t f709;
1778 real_t f710;
1779 real_t f711;
1780 real_t f714;
1781 real_t f715;
1782 real_t f716;
1783 real_t f717;
1784 real_t f720;
1785 real_t f721;
1786 real_t f722;
1787 real_t f723;
1788 real_t f726;
1789 real_t f727;
1790 real_t f728;
1791 real_t f729;
1792 real_t f732;
1793 real_t f733;
1794 real_t f734;
1795 real_t f735;
1796 real_t f738;
1797 real_t f739;
1798 real_t f740;
1799 real_t f741;
1800 real_t f744;
1801 real_t f745;
1802 real_t f746;
1803 real_t f747;
1804 real_t f750;
1805 real_t f751;
1806 real_t f752;
1807 real_t f753;
1808 real_t f756;
1809 real_t f757;
1810 real_t f758;
1811 real_t f759;
1812 real_t f762;
1813 real_t f763;
1814 real_t f764;
1815 real_t f765;
1816 real_t f768;
1817 real_t f769;
1818 real_t f770;
1819 real_t f771;
1820 real_t f774;
1821 real_t f775;
1822 real_t f776;
1823 real_t f777;
1824 real_t f780;
1825 real_t f781;
1826 real_t f782;
1827 real_t f783;
1828 real_t f786;
1829 real_t f787;
1830 real_t f788;
1831 real_t f789;
1832 real_t f792;
1833 real_t f793;
1834 real_t f794;
1835 real_t f795;
1836 real_t f798;
1837 real_t f799;
1838 real_t f800;
1839 real_t f801;
1840 static real_t t2[64];
1841
1842 t2[0] = x[0];
1843 for (i0=0; i0<31; i0++)
1844 {
1845 t2[2*i0+1] = x[2*i0+1] - x[2*i0+2];
1846 t2[2*i0+2] = x[2*i0+1] + x[2*i0+2];
1847 }
1848 t2[63] = x[63];
1849 f2 = 0.7071067811865476 * t2[32];
1850 f3 = x[0] - f2;
1851 f4 = x[0] + f2;
1852 f5 = t2[16] + t2[48];
1853 f6 = 1.3065629648763766 * t2[16];
1854 f7 = (-0.9238795325112866) * f5;
1855 f8 = (-0.5411961001461967) * t2[48];
1856 f9 = f6 + f7;
1857 f10 = f8 - f7;
1858 f11 = f4 - f10;
1859 f12 = f4 + f10;
1860 f13 = f3 - f9;
1861 f14 = f3 + f9;
1862 f15 = t2[8] + t2[56];
1863 f16 = 1.1758756024193588 * t2[8];
1864 f17 = (-0.9807852804032304) * f15;
1865 f18 = (-0.7856949583871021) * t2[56];
1866 f19 = f16 + f17;
1867 f20 = f18 - f17;
1868 f21 = t2[24] + t2[40];
1869 f22 = 1.3870398453221473 * t2[24];
1870 f23 = (-0.8314696123025455) * f21;
1871 f24 = (-0.2758993792829436) * t2[40];
1872 f25 = f22 + f23;
1873 f26 = f24 - f23;
1874 f27 = f20 - f26;
1875 f28 = f20 + f26;
1876 f29 = 0.7071067811865476 * f27;
1877 f30 = f19 - f25;
1878 f31 = f19 + f25;
1879 f32 = 0.7071067811865476 * f31;
1880 f33 = f29 - f32;
1881 f34 = f29 + f32;
1882 f35 = f12 - f28;
1883 f36 = f12 + f28;
1884 f37 = f14 - f34;
1885 f38 = f14 + f34;
1886 f39 = f13 - f33;
1887 f40 = f13 + f33;
1888 f41 = f11 - f30;
1889 f42 = f11 + f30;
1890 f43 = t2[4] + t2[60];
1891 f44 = 1.0932018670017569 * t2[4];
1892 f45 = (-0.9951847266721969) * f43;
1893 f46 = (-0.8971675863426368) * t2[60];
1894 f47 = f44 + f45;
1895 f48 = f46 - f45;
1896 f49 = t2[12] + t2[52];
1897 f50 = 1.2472250129866711 * t2[12];
1898 f51 = (-0.9569403357322089) * f49;
1899 f52 = (-0.6666556584777469) * t2[52];
1900 f53 = f50 + f51;
1901 f54 = f52 - f51;
1902 f55 = t2[20] + t2[44];
1903 f56 = 1.3533180011743526 * t2[20];
1904 f57 = (-0.8819212643483551) * f55;
1905 f58 = (-0.4105245275223575) * t2[44];
1906 f59 = f56 + f57;
1907 f60 = f58 - f57;
1908 f61 = t2[28] + t2[36];
1909 f62 = 1.4074037375263826 * t2[28];
1910 f63 = (-0.7730104533627369) * f61;
1911 f64 = (-0.1386171691990913) * t2[36];
1912 f65 = f62 + f63;
1913 f66 = f64 - f63;
1914 f67 = f48 - f66;
1915 f68 = f48 + f66;
1916 f69 = f54 - f60;
1917 f70 = f54 + f60;
1918 f71 = f68 - f70;
1919 f72 = f68 + f70;
1920 f73 = 0.7071067811865476 * f71;
1921 f74 = f67 + f69;
1922 f75 = 1.3065629648763766 * f67;
1923 f76 = (-0.9238795325112866) * f74;
1924 f77 = (-0.5411961001461967) * f69;
1925 f78 = f75 + f76;
1926 f79 = f77 - f76;
1927 f80 = f47 - f65;
1928 f81 = f47 + f65;
1929 f82 = f53 - f59;
1930 f83 = f53 + f59;
1931 f84 = f81 + f83;
1932 f85 = 1.3065629648763770 * f81;
1933 f86 = (-0.3826834323650904) * f84;
1934 f87 = 0.5411961001461961 * f83;
1935 f88 = f85 + f86;
1936 f89 = f87 - f86;
1937 f90 = f80 - f82;
1938 f91 = f80 + f82;
1939 f92 = 0.7071067811865476 * f91;
1940 f93 = f79 - f89;
1941 f94 = f79 + f89;
1942 f95 = f73 - f92;
1943 f96 = f73 + f92;
1944 f97 = f78 - f88;
1945 f98 = f78 + f88;
1946 f99 = f36 - f72;
1947 f100 = f36 + f72;
1948 f101 = f38 - f94;
1949 f102 = f38 + f94;
1950 f103 = f40 - f93;
1951 f104 = f40 + f93;
1952 f105 = f42 - f96;
1953 f106 = f42 + f96;
1954 f107 = f41 - f95;
1955 f108 = f41 + f95;
1956 f109 = f39 - f98;
1957 f110 = f39 + f98;
1958 f111 = f37 - f97;
1959 f112 = f37 + f97;
1960 f113 = f35 - f90;
1961 f114 = f35 + f90;
1962 f115 = t2[2] + t2[62];
1963 f116 = 1.0478631305325901 * t2[2];
1964 f117 = (-0.9987954562051724) * f115;
1965 f118 = (-0.9497277818777548) * t2[62];
1966 f119 = f116 + f117;
1967 f120 = f118 - f117;
1968 f121 = t2[10] + t2[54];
1969 f122 = 1.2130114330978077 * t2[10];
1970 f123 = (-0.9700312531945440) * f121;
1971 f124 = (-0.7270510732912803) * t2[54];
1972 f125 = f122 + f123;
1973 f126 = f124 - f123;
1974 f127 = t2[18] + t2[46];
1975 f128 = 1.3315443865537255 * t2[18];
1976 f129 = (-0.9039892931234433) * f127;
1977 f130 = (-0.4764341996931612) * t2[46];
1978 f131 = f128 + f129;
1979 f132 = f130 - f129;
1980 f133 = t2[26] + t2[38];
1981 f134 = 1.3989068359730781 * t2[26];
1982 f135 = (-0.8032075314806453) * f133;
1983 f136 = (-0.2075082269882124) * t2[38];
1984 f137 = f134 + f135;
1985 f138 = f136 - f135;
1986 f139 = t2[34] + t2[30];
1987 f140 = 1.4125100802019777 * t2[34];
1988 f141 = (-0.6715589548470187) * f139;
1989 f142 = 0.0693921705079402 * t2[30];
1990 f143 = f140 + f141;
1991 f144 = f142 - f141;
1992 f145 = t2[42] + t2[22];
1993 f146 = 1.3718313541934939 * t2[42];
1994 f147 = (-0.5141027441932219) * f145;
1995 f148 = 0.3436258658070501 * t2[22];
1996 f149 = f146 + f147;
1997 f150 = f148 - f147;
1998 f151 = t2[50] + t2[14];
1999 f152 = 1.2784339185752409 * t2[50];
2000 f153 = (-0.3368898533922200) * f151;
2001 f154 = 0.6046542117908008 * t2[14];
2002 f155 = f152 + f153;
2003 f156 = f154 - f153;
2004 f157 = t2[58] + t2[6];
2005 f158 = 1.1359069844201433 * t2[58];
2006 f159 = (-0.1467304744553624) * f157;
2007 f160 = 0.8424460355094185 * t2[6];
2008 f161 = f158 + f159;
2009 f162 = f160 - f159;
2010 f163 = f120 - f144;
2011 f164 = f120 + f144;
2012 f165 = f119 - f143;
2013 f166 = f119 + f143;
2014 f167 = f126 - f150;
2015 f168 = f126 + f150;
2016 f169 = f125 - f149;
2017 f170 = f125 + f149;
2018 f171 = f132 - f156;
2019 f172 = f132 + f156;
2020 f173 = f131 - f155;
2021 f174 = f131 + f155;
2022 f175 = f138 - f162;
2023 f176 = f138 + f162;
2024 f177 = f137 - f161;
2025 f178 = f137 + f161;
2026 f179 = f163 + f165;
2027 f180 = 1.1758756024193588 * f163;
2028 f181 = (-0.9807852804032304) * f179;
2029 f182 = (-0.7856949583871021) * f165;
2030 f183 = f180 + f181;
2031 f184 = f182 - f181;
2032 f185 = f167 + f169;
2033 f186 = 1.3870398453221475 * f167;
2034 f187 = (-0.5555702330196022) * f185;
2035 f188 = 0.2758993792829431 * f169;
2036 f189 = f186 + f187;
2037 f190 = f188 - f187;
2038 f191 = f171 + f173;
2039 f192 = 0.7856949583871022 * f171;
2040 f193 = 0.1950903220161283 * f191;
2041 f194 = 1.1758756024193586 * f173;
2042 f195 = f192 + f193;
2043 f196 = f194 - f193;
2044 f197 = f175 + f177;
2045 f198 = (-0.2758993792829430) * f175;
2046 f199 = 0.8314696123025452 * f197;
2047 f200 = 1.3870398453221475 * f177;
2048 f201 = f198 + f199;
2049 f202 = f200 - f199;
2050 f203 = f164 - f172;
2051 f204 = f164 + f172;
2052 f205 = f166 - f174;
2053 f206 = f166 + f174;
2054 f207 = f168 - f176;
2055 f208 = f168 + f176;
2056 f209 = f170 - f178;
2057 f210 = f170 + f178;
2058 f211 = f184 - f196;
2059 f212 = f184 + f196;
2060 f213 = f183 - f195;
2061 f214 = f183 + f195;
2062 f215 = f190 - f202;
2063 f216 = f190 + f202;
2064 f217 = f189 - f201;
2065 f218 = f189 + f201;
2066 f219 = f203 + f205;
2067 f220 = 1.3065629648763766 * f203;
2068 f221 = (-0.9238795325112866) * f219;
2069 f222 = (-0.5411961001461967) * f205;
2070 f223 = f220 + f221;
2071 f224 = f222 - f221;
2072 f225 = f207 + f209;
2073 f226 = 0.5411961001461969 * f207;
2074 f227 = 0.3826834323650898 * f225;
2075 f228 = 1.3065629648763766 * f209;
2076 f229 = f226 + f227;
2077 f230 = f228 - f227;
2078 f231 = f211 + f213;
2079 f232 = 1.3065629648763766 * f211;
2080 f233 = (-0.9238795325112866) * f231;
2081 f234 = (-0.5411961001461967) * f213;
2082 f235 = f232 + f233;
2083 f236 = f234 - f233;
2084 f237 = f215 + f217;
2085 f238 = 0.5411961001461969 * f215;
2086 f239 = 0.3826834323650898 * f237;
2087 f240 = 1.3065629648763766 * f217;
2088 f241 = f238 + f239;
2089 f242 = f240 - f239;
2090 f243 = f204 - f208;
2091 f244 = f204 + f208;
2092 f245 = f206 - f210;
2093 f246 = f206 + f210;
2094 f247 = f224 - f230;
2095 f248 = f224 + f230;
2096 f249 = f223 - f229;
2097 f250 = f223 + f229;
2098 f251 = f212 - f216;
2099 f252 = f212 + f216;
2100 f253 = f214 - f218;
2101 f254 = f214 + f218;
2102 f255 = f236 - f242;
2103 f256 = f236 + f242;
2104 f257 = f235 - f241;
2105 f258 = f235 + f241;
2106 f259 = f243 - f245;
2107 f260 = f243 + f245;
2108 f261 = 0.7071067811865474 * f259;
2109 f262 = 0.7071067811865474 * f260;
2110 f263 = f247 - f249;
2111 f264 = f247 + f249;
2112 f265 = 0.7071067811865474 * f263;
2113 f266 = 0.7071067811865474 * f264;
2114 f267 = f251 - f253;
2115 f268 = f251 + f253;
2116 f269 = 0.7071067811865474 * f267;
2117 f270 = 0.7071067811865474 * f268;
2118 f271 = f255 - f257;
2119 f272 = f255 + f257;
2120 f273 = 0.7071067811865474 * f271;
2121 f274 = 0.7071067811865474 * f272;
2122 f275 = f100 - f244;
2123 f276 = f100 + f244;
2124 f277 = f102 - f252;
2125 f278 = f102 + f252;
2126 f279 = f104 - f256;
2127 f280 = f104 + f256;
2128 f281 = f106 - f248;
2129 f282 = f106 + f248;
2130 f283 = f108 - f266;
2131 f284 = f108 + f266;
2132 f285 = f110 - f274;
2133 f286 = f110 + f274;
2134 f287 = f112 - f270;
2135 f288 = f112 + f270;
2136 f289 = f114 - f262;
2137 f290 = f114 + f262;
2138 f291 = f113 - f261;
2139 f292 = f113 + f261;
2140 f293 = f111 - f269;
2141 f294 = f111 + f269;
2142 f295 = f109 - f273;
2143 f296 = f109 + f273;
2144 f297 = f107 - f265;
2145 f298 = f107 + f265;
2146 f299 = f105 - f250;
2147 f300 = f105 + f250;
2148 f301 = f103 - f258;
2149 f302 = f103 + f258;
2150 f303 = f101 - f254;
2151 f304 = f101 + f254;
2152 f305 = f99 - f246;
2153 f306 = f99 + f246;
2154 f307 = t2[1] - t2[61];
2155 f308 = 1.0478631305325901 * t2[1];
2156 f309 = (-0.9987954562051724) * f307;
2157 f310 = (-0.9497277818777548) * t2[61];
2158 f311 = f308 + f309;
2159 f312 = f309 + f310;
2160 f313 = t2[9] - t2[53];
2161 f314 = 1.2130114330978077 * t2[9];
2162 f315 = (-0.9700312531945440) * f313;
2163 f316 = (-0.7270510732912803) * t2[53];
2164 f317 = f314 + f315;
2165 f318 = f315 + f316;
2166 f319 = t2[17] - t2[45];
2167 f320 = 1.3315443865537255 * t2[17];
2168 f321 = (-0.9039892931234433) * f319;
2169 f322 = (-0.4764341996931612) * t2[45];
2170 f323 = f320 + f321;
2171 f324 = f321 + f322;
2172 f325 = t2[25] - t2[37];
2173 f326 = 1.3989068359730781 * t2[25];
2174 f327 = (-0.8032075314806453) * f325;
2175 f328 = (-0.2075082269882124) * t2[37];
2176 f329 = f326 + f327;
2177 f330 = f327 + f328;
2178 f331 = t2[33] - t2[29];
2179 f332 = 1.4125100802019777 * t2[33];
2180 f333 = (-0.6715589548470187) * f331;
2181 f334 = 0.0693921705079402 * t2[29];
2182 f335 = f332 + f333;
2183 f336 = f333 + f334;
2184 f337 = t2[41] - t2[21];
2185 f338 = 1.3718313541934939 * t2[41];
2186 f339 = (-0.5141027441932219) * f337;
2187 f340 = 0.3436258658070501 * t2[21];
2188 f341 = f338 + f339;
2189 f342 = f339 + f340;
2190 f343 = t2[49] - t2[13];
2191 f344 = 1.2784339185752409 * t2[49];
2192 f345 = (-0.3368898533922200) * f343;
2193 f346 = 0.6046542117908008 * t2[13];
2194 f347 = f344 + f345;
2195 f348 = f345 + f346;
2196 f349 = t2[57] - t2[5];
2197 f350 = 1.1359069844201433 * t2[57];
2198 f351 = (-0.1467304744553624) * f349;
2199 f352 = 0.8424460355094185 * t2[5];
2200 f353 = f350 + f351;
2201 f354 = f351 + f352;
2202 f355 = f336 - f312;
2203 f356 = f312 + f336;
2204 f357 = f311 - f335;
2205 f358 = f311 + f335;
2206 f359 = f342 - f318;
2207 f360 = f318 + f342;
2208 f361 = f317 - f341;
2209 f362 = f317 + f341;
2210 f363 = f348 - f324;
2211 f364 = f324 + f348;
2212 f365 = f323 - f347;
2213 f366 = f323 + f347;
2214 f367 = f354 - f330;
2215 f368 = f330 + f354;
2216 f369 = f329 - f353;
2217 f370 = f329 + f353;
2218 f371 = f355 + f357;
2219 f372 = 1.1758756024193588 * f355;
2220 f373 = (-0.9807852804032304) * f371;
2221 f374 = (-0.7856949583871021) * f357;
2222 f375 = f372 + f373;
2223 f376 = f374 - f373;
2224 f377 = f359 + f361;
2225 f378 = 1.3870398453221475 * f359;
2226 f379 = (-0.5555702330196022) * f377;
2227 f380 = 0.2758993792829431 * f361;
2228 f381 = f378 + f379;
2229 f382 = f380 - f379;
2230 f383 = f363 + f365;
2231 f384 = 0.7856949583871022 * f363;
2232 f385 = 0.1950903220161283 * f383;
2233 f386 = 1.1758756024193586 * f365;
2234 f387 = f384 + f385;
2235 f388 = f386 - f385;
2236 f389 = f367 + f369;
2237 f390 = (-0.2758993792829430) * f367;
2238 f391 = 0.8314696123025452 * f389;
2239 f392 = 1.3870398453221475 * f369;
2240 f393 = f390 + f391;
2241 f394 = f392 - f391;
2242 f395 = f364 - f356;
2243 f396 = f356 + f364;
2244 f397 = f358 - f366;
2245 f398 = f358 + f366;
2246 f399 = f368 - f360;
2247 f400 = f360 + f368;
2248 f401 = f362 - f370;
2249 f402 = f362 + f370;
2250 f403 = f376 - f388;
2251 f404 = f376 + f388;
2252 f405 = f375 - f387;
2253 f406 = f375 + f387;
2254 f407 = f382 - f394;
2255 f408 = f382 + f394;
2256 f409 = f381 - f393;
2257 f410 = f381 + f393;
2258 f411 = f395 + f397;
2259 f412 = 1.3065629648763766 * f395;
2260 f413 = (-0.9238795325112866) * f411;
2261 f414 = (-0.5411961001461967) * f397;
2262 f415 = f412 + f413;
2263 f416 = f414 - f413;
2264 f417 = f399 + f401;
2265 f418 = 0.5411961001461969 * f399;
2266 f419 = 0.3826834323650898 * f417;
2267 f420 = 1.3065629648763766 * f401;
2268 f421 = f418 + f419;
2269 f422 = f420 - f419;
2270 f423 = f403 + f405;
2271 f424 = 1.3065629648763766 * f403;
2272 f425 = (-0.9238795325112866) * f423;
2273 f426 = (-0.5411961001461967) * f405;
2274 f427 = f424 + f425;
2275 f428 = f426 - f425;
2276 f429 = f407 + f409;
2277 f430 = 0.5411961001461969 * f407;
2278 f431 = 0.3826834323650898 * f429;
2279 f432 = 1.3065629648763766 * f409;
2280 f433 = f430 + f431;
2281 f434 = f432 - f431;
2282 f435 = f400 - f396;
2283 f436 = f396 + f400;
2284 f437 = f398 - f402;
2285 f438 = f398 + f402;
2286 f439 = f416 - f422;
2287 f440 = f416 + f422;
2288 f441 = f415 - f421;
2289 f442 = f415 + f421;
2290 f443 = f404 - f408;
2291 f444 = f404 + f408;
2292 f445 = f406 - f410;
2293 f446 = f406 + f410;
2294 f447 = f428 - f434;
2295 f448 = f428 + f434;
2296 f449 = f427 - f433;
2297 f450 = f427 + f433;
2298 f451 = f435 - f437;
2299 f452 = f435 + f437;
2300 f453 = 0.7071067811865474 * f451;
2301 f454 = 0.7071067811865474 * f452;
2302 f455 = f439 - f441;
2303 f456 = f439 + f441;
2304 f457 = 0.7071067811865474 * f455;
2305 f458 = 0.7071067811865474 * f456;
2306 f459 = f443 - f445;
2307 f460 = f443 + f445;
2308 f461 = 0.7071067811865474 * f459;
2309 f462 = 0.7071067811865474 * f460;
2310 f463 = f447 - f449;
2311 f464 = f447 + f449;
2312 f465 = 0.7071067811865474 * f463;
2313 f466 = 0.7071067811865474 * f464;
2314 f467 = 0.7071067811865476 * t2[31];
2315 f468 = x[63] - f467;
2316 f469 = x[63] + f467;
2317 f470 = t2[47] + t2[15];
2318 f471 = 1.3065629648763766 * t2[47];
2319 f472 = (-0.9238795325112866) * f470;
2320 f473 = (-0.5411961001461967) * t2[15];
2321 f474 = f471 + f472;
2322 f475 = f473 - f472;
2323 f476 = f469 - f475;
2324 f477 = f469 + f475;
2325 f478 = f468 - f474;
2326 f479 = f468 + f474;
2327 f480 = t2[55] + t2[7];
2328 f481 = 1.1758756024193588 * t2[55];
2329 f482 = (-0.9807852804032304) * f480;
2330 f483 = (-0.7856949583871021) * t2[7];
2331 f484 = f481 + f482;
2332 f485 = f483 - f482;
2333 f486 = t2[39] + t2[23];
2334 f487 = 1.3870398453221473 * t2[39];
2335 f488 = (-0.8314696123025455) * f486;
2336 f489 = (-0.2758993792829436) * t2[23];
2337 f490 = f487 + f488;
2338 f491 = f489 - f488;
2339 f492 = f485 - f491;
2340 f493 = f485 + f491;
2341 f494 = 0.7071067811865476 * f492;
2342 f495 = f484 - f490;
2343 f496 = f484 + f490;
2344 f497 = 0.7071067811865476 * f496;
2345 f498 = f494 - f497;
2346 f499 = f494 + f497;
2347 f500 = f477 - f493;
2348 f501 = f477 + f493;
2349 f502 = f479 - f499;
2350 f503 = f479 + f499;
2351 f504 = f478 - f498;
2352 f505 = f478 + f498;
2353 f506 = f476 - f495;
2354 f507 = f476 + f495;
2355 f508 = t2[59] + t2[3];
2356 f509 = 1.0932018670017569 * t2[59];
2357 f510 = (-0.9951847266721969) * f508;
2358 f511 = (-0.8971675863426368) * t2[3];
2359 f512 = f509 + f510;
2360 f513 = f511 - f510;
2361 f514 = t2[51] + t2[11];
2362 f515 = 1.2472250129866711 * t2[51];
2363 f516 = (-0.9569403357322089) * f514;
2364 f517 = (-0.6666556584777469) * t2[11];
2365 f518 = f515 + f516;
2366 f519 = f517 - f516;
2367 f520 = t2[43] + t2[19];
2368 f521 = 1.3533180011743526 * t2[43];
2369 f522 = (-0.8819212643483551) * f520;
2370 f523 = (-0.4105245275223575) * t2[19];
2371 f524 = f521 + f522;
2372 f525 = f523 - f522;
2373 f526 = t2[35] + t2[27];
2374 f527 = 1.4074037375263826 * t2[35];
2375 f528 = (-0.7730104533627369) * f526;
2376 f529 = (-0.1386171691990913) * t2[27];
2377 f530 = f527 + f528;
2378 f531 = f529 - f528;
2379 f532 = f513 - f531;
2380 f533 = f513 + f531;
2381 f534 = f519 - f525;
2382 f535 = f519 + f525;
2383 f536 = f533 - f535;
2384 f537 = f533 + f535;
2385 f538 = 0.7071067811865476 * f536;
2386 f539 = f532 + f534;
2387 f540 = 1.3065629648763766 * f532;
2388 f541 = (-0.9238795325112866) * f539;
2389 f542 = (-0.5411961001461967) * f534;
2390 f543 = f540 + f541;
2391 f544 = f542 - f541;
2392 f545 = f512 - f530;
2393 f546 = f512 + f530;
2394 f547 = f518 - f524;
2395 f548 = f518 + f524;
2396 f549 = f546 + f548;
2397 f550 = 1.3065629648763770 * f546;
2398 f551 = (-0.3826834323650904) * f549;
2399 f552 = 0.5411961001461961 * f548;
2400 f553 = f550 + f551;
2401 f554 = f552 - f551;
2402 f555 = f545 - f547;
2403 f556 = f545 + f547;
2404 f557 = 0.7071067811865476 * f556;
2405 f558 = f544 - f554;
2406 f559 = f544 + f554;
2407 f560 = f538 - f557;
2408 f561 = f538 + f557;
2409 f562 = f543 - f553;
2410 f563 = f543 + f553;
2411 f564 = f501 - f537;
2412 f565 = f501 + f537;
2413 f566 = f503 - f559;
2414 f567 = f503 + f559;
2415 f568 = f505 - f558;
2416 f569 = f505 + f558;
2417 f570 = f507 - f561;
2418 f571 = f507 + f561;
2419 f572 = f506 - f560;
2420 f573 = f506 + f560;
2421 f574 = f504 - f563;
2422 f575 = f504 + f563;
2423 f576 = f502 - f562;
2424 f577 = f502 + f562;
2425 f578 = f500 - f555;
2426 f579 = f500 + f555;
2427 f580 = f438 - f565;
2428 f581 = f438 + f565;
2429 f582 = f446 + f567;
2430 f583 = f446 - f567;
2431 f584 = f450 - f569;
2432 f585 = f450 + f569;
2433 f586 = f442 + f571;
2434 f587 = f442 - f571;
2435 f588 = f457 - f573;
2436 f589 = f457 + f573;
2437 f590 = f465 + f575;
2438 f591 = f465 - f575;
2439 f592 = f461 - f577;
2440 f593 = f461 + f577;
2441 f594 = f453 + f579;
2442 f595 = f453 - f579;
2443 f596 = f454 - f578;
2444 f597 = f454 + f578;
2445 f598 = f462 + f576;
2446 f599 = f462 - f576;
2447 f600 = f466 - f574;
2448 f601 = f466 + f574;
2449 f602 = f458 + f572;
2450 f603 = f458 - f572;
2451 f604 = f440 - f570;
2452 f605 = f440 + f570;
2453 f606 = f448 + f568;
2454 f607 = f448 - f568;
2455 f608 = f444 - f566;
2456 f609 = f444 + f566;
2457 f610 = f564 - f436;
2458 f611 = f436 + f564;
2459 f612 = f581 + f276;
2460 f613 = (-0.9876531635534246) * f581;
2461 f614 = 0.9999247018391445 * f612;
2462 f615 = 1.0121962401248645 * f276;
2463 y[0] = f613 + f614;
2464 y[63] = f615 - f614;
2465 f618 = f583 + f278;
2466 f619 = (-0.9625151616469906) * f583;
2467 f620 = 0.9993223845883495 * f618;
2468 f621 = 1.0361296075297086 * f278;
2469 y[1] = f619 + f620;
2470 y[62] = f621 - f620;
2471 f624 = f585 + f280;
2472 f625 = (-0.9367973765979405) * f585;
2473 f626 = 0.9981181129001492 * f624;
2474 f627 = 1.0594388492023579 * f280;
2475 y[2] = f625 + f626;
2476 y[61] = f627 - f626;
2477 f630 = f587 + f282;
2478 f631 = (-0.9105152998383381) * f587;
2479 f632 = 0.9963126121827780 * f630;
2480 f633 = 1.0821099245272179 * f282;
2481 y[3] = f631 + f632;
2482 y[60] = f633 - f632;
2483 f636 = f589 + f284;
2484 f637 = (-0.8836847627084729) * f589;
2485 f638 = 0.9939069700023561 * f636;
2486 f639 = 1.1041291772962392 * f284;
2487 y[4] = f637 + f638;
2488 y[59] = f639 - f638;
2489 f642 = f591 + f286;
2490 f643 = (-0.8563219269206538) * f591;
2491 f644 = 0.9909026354277800 * f642;
2492 f645 = 1.1254833439349063 * f286;
2493 y[5] = f643 + f644;
2494 y[58] = f645 - f644;
2495 f648 = f593 + f288;
2496 f649 = (-0.8284432748239970) * f593;
2497 f650 = 0.9873014181578584 * f648;
2498 f651 = 1.1461595614917197 * f288;
2499 y[6] = f649 + f650;
2500 y[57] = f651 - f650;
2501 f654 = f595 + f290;
2502 f655 = (-0.8000655994760753) * f595;
2503 f656 = 0.9831054874312163 * f654;
2504 f657 = 1.1661453753863573 * f290;
2505 y[7] = f655 + f656;
2506 y[56] = f657 - f656;
2507 f660 = f597 + f292;
2508 f661 = (-0.7712059945274091) * f597;
2509 f662 = 0.9783173707196277 * f660;
2510 f663 = 1.1854287469118463 * f292;
2511 y[8] = f661 + f662;
2512 y[55] = f663 - f662;
2513 f666 = f599 + f294;
2514 f667 = (-0.7418818439248888) * f599;
2515 f668 = 0.9729399522055601 * f666;
2516 f669 = 1.2039980604862313 * f294;
2517 y[9] = f667 + f668;
2518 y[54] = f669 - f668;
2519 f672 = f601 + f296;
2520 f673 = (-0.7121108114403374) * f601;
2521 f674 = 0.9669764710448521 * f672;
2522 f675 = 1.2218421306493668 * f296;
2523 y[10] = f673 + f674;
2524 y[53] = f675 - f674;
2525 f678 = f603 + f298;
2526 f679 = (-0.6819108300305128) * f603;
2527 f680 = 0.9604305194155658 * f678;
2528 f681 = 1.2389502088006188 * f298;
2529 y[11] = f679 + f680;
2530 y[52] = f681 - f680;
2531 f684 = f605 + f300;
2532 f685 = (-0.6513000910349656) * f605;
2533 f686 = 0.9533060403541938 * f684;
2534 f687 = 1.2553119896734219 * f300;
2535 y[12] = f685 + f686;
2536 y[51] = f687 - f686;
2537 f690 = f607 + f302;
2538 f691 = (-0.6202970332182582) * f607;
2539 f692 = 0.9456073253805213 * f690;
2540 f693 = 1.2709176175427843 * f302;
2541 y[13] = f691 + f692;
2542 y[50] = f693 - f692;
2543 f696 = f609 + f304;
2544 f697 = (-0.5889203316631404) * f609;
2545 f698 = 0.9373390119125750 * f696;
2546 f699 = 1.2857576921620095 * f304;
2547 y[14] = f697 + f698;
2548 y[49] = f699 - f698;
2549 f702 = f306 - f611;
2550 f703 = (-0.5571888865213779) * f611;
2551 f704 = 0.9285060804732155 * f702;
2552 f705 = 1.2998232744250531 * f306;
2553 y[15] = f704 - f703;
2554 y[48] = f705 - f704;
2555 f708 = f610 + f305;
2556 f709 = (-0.5251218116290097) * f610;
2557 f710 = 0.9191138516900578 * f708;
2558 f711 = 1.3131058917511058 * f305;
2559 y[16] = f709 + f710;
2560 y[47] = f711 - f710;
2561 f714 = f608 + f303;
2562 f715 = (-0.4927384229928850) * f608;
2563 f716 = 0.9091679830905223 * f714;
2564 f717 = 1.3255975431881595 * f303;
2565 y[17] = f715 + f716;
2566 y[46] = f717 - f716;
2567 f720 = f606 + f301;
2568 f721 = (-0.4600582271554261) * f606;
2569 f722 = 0.8986744656939538 * f720;
2570 f723 = 1.3372907042324815 * f301;
2571 y[18] = f721 + f722;
2572 y[45] = f723 - f722;
2573 f726 = f604 + f299;
2574 f727 = (-0.4271009094446139) * f604;
2575 f728 = 0.8876396204028539 * f726;
2576 f729 = 1.3481783313610940 * f299;
2577 y[19] = f727 + f728;
2578 y[44] = f729 - f728;
2579 f732 = f602 + f297;
2580 f733 = (-0.3938863221162838) * f602;
2581 f734 = 0.8760700941954066 * f732;
2582 f735 = 1.3582538662745294 * f297;
2583 y[20] = f733 + f734;
2584 y[43] = f735 - f734;
2585 f738 = f600 + f295;
2586 f739 = (-0.3604344723958691) * f600;
2587 f740 = 0.8639728561215867 * f738;
2588 f741 = 1.3675112398473042 * f295;
2589 y[21] = f739 + f740;
2590 y[42] = f741 - f740;
2591 f744 = f598 + f293;
2592 f745 = (-0.3267655104267964) * f598;
2593 f746 = 0.8513551931052652 * f744;
2594 f747 = 1.3759448757837340 * f293;
2595 y[22] = f745 + f746;
2596 y[41] = f747 - f746;
2597 f750 = f596 + f291;
2598 f751 = (-0.2928997171327915) * f596;
2599 f752 = 0.8382247055548380 * f750;
2600 f753 = 1.3835496939768843 * f291;
2601 y[23] = f751 + f752;
2602 y[40] = f753 - f752;
2603 f756 = f594 + f289;
2604 f757 = (-0.2588574920014121) * f594;
2605 f758 = 0.8245893027850253 * f756;
2606 f759 = 1.3903211135686386 * f289;
2607 y[24] = f757 + f758;
2608 y[39] = f759 - f758;
2609 f762 = f592 + f287;
2610 f763 = (-0.2246593407961559) * f592;
2611 f764 = 0.8104571982525948 * f762;
2612 f765 = 1.3962550557090336 * f287;
2613 y[25] = f763 + f764;
2614 y[38] = f765 - f764;
2615 f768 = f590 + f285;
2616 f769 = (-0.1903258632045579) * f590;
2617 f770 = 0.7958369046088835 * f768;
2618 f771 = 1.4013479460132090 * f285;
2619 y[26] = f769 + f770;
2620 y[37] = f771 - f770;
2621 f774 = f588 + f283;
2622 f775 = (-0.1558777404297079) * f588;
2623 f776 = 0.7807372285720944 * f774;
2624 f777 = 1.4055967167144807 * f283;
2625 y[27] = f775 + f776;
2626 y[36] = f777 - f776;
2627 f780 = f586 + f281;
2628 f781 = (-0.1213357227326675) * f586;
2629 f782 = 0.7651672656224590 * f780;
2630 f783 = 1.4089988085122505 * f281;
2631 y[28] = f781 + f782;
2632 y[35] = f783 - f782;
2633 f786 = f584 + f279;
2634 f787 = (-0.0867206169332875) * f584;
2635 f788 = 0.7491363945234593 * f786;
2636 f789 = 1.4115521721136310 * f279;
2637 y[29] = f787 + f788;
2638 y[34] = f789 - f788;
2639 f792 = f582 + f277;
2640 f793 = (-0.0520532738769597) * f582;
2641 f794 = 0.7326542716724128 * f792;
2642 f795 = 1.4132552694678659 * f277;
2643 y[30] = f793 + f794;
2644 y[33] = f795 - f794;
2645 f798 = f580 + f275;
2646 f799 = (-0.0173545758748457) * f580;
2647 f800 = 0.7157308252838186 * f798;
2648 f801 = 1.4141070746927915 * f275;
2649 y[31] = f799 + f800;
2650 y[32] = f801 - f800;
2651 }
2652
2653 void DST4_64(real_t *y, real_t *x)
2654 {
2655 real_t f1;
2656 real_t f3;
2657 real_t f5;
2658 real_t f7;
2659 real_t f9;
2660 real_t f11;
2661 real_t f13;
2662 real_t f15;
2663 real_t f17;
2664 real_t f19;
2665 real_t f21;
2666 real_t f23;
2667 real_t f25;
2668 real_t f27;
2669 real_t f29;
2670 real_t f31;
2671 real_t f33;
2672 real_t f35;
2673 real_t f37;
2674 real_t f39;
2675 real_t f41;
2676 real_t f43;
2677 real_t f45;
2678 real_t f47;
2679 real_t f49;
2680 real_t f51;
2681 real_t f53;
2682 real_t f55;
2683 real_t f57;
2684 real_t f59;
2685 real_t f61;
2686 real_t f63;
2687 int16_t i0;
2688 real_t f66;
2689 real_t f67;
2690 real_t f68;
2691 real_t f69;
2692 real_t f70;
2693 real_t f71;
2694 real_t f72;
2695 real_t f73;
2696 real_t f74;
2697 real_t f75;
2698 real_t f76;
2699 real_t f77;
2700 real_t f78;
2701 real_t f79;
2702 real_t f80;
2703 real_t f81;
2704 real_t f82;
2705 real_t f83;
2706 real_t f84;
2707 real_t f85;
2708 real_t f86;
2709 real_t f87;
2710 real_t f88;
2711 real_t f89;
2712 real_t f90;
2713 real_t f91;
2714 real_t f92;
2715 real_t f93;
2716 real_t f94;
2717 real_t f95;
2718 real_t f96;
2719 real_t f97;
2720 real_t f98;
2721 real_t f99;
2722 real_t f100;
2723 real_t f101;
2724 real_t f102;
2725 real_t f103;
2726 real_t f104;
2727 real_t f105;
2728 real_t f106;
2729 real_t f107;
2730 real_t f108;
2731 real_t f109;
2732 real_t f110;
2733 real_t f111;
2734 real_t f112;
2735 real_t f113;
2736 real_t f114;
2737 real_t f115;
2738 real_t f116;
2739 real_t f117;
2740 real_t f118;
2741 real_t f119;
2742 real_t f120;
2743 real_t f121;
2744 real_t f122;
2745 real_t f123;
2746 real_t f124;
2747 real_t f125;
2748 real_t f126;
2749 real_t f127;
2750 real_t f128;
2751 real_t f129;
2752 real_t f130;
2753 real_t f131;
2754 real_t f132;
2755 real_t f133;
2756 real_t f134;
2757 real_t f135;
2758 real_t f136;
2759 real_t f137;
2760 real_t f138;
2761 real_t f139;
2762 real_t f140;
2763 real_t f141;
2764 real_t f142;
2765 real_t f143;
2766 real_t f144;
2767 real_t f145;
2768 real_t f146;
2769 real_t f147;
2770 real_t f148;
2771 real_t f149;
2772 real_t f150;
2773 real_t f151;
2774 real_t f152;
2775 real_t f153;
2776 real_t f154;
2777 real_t f155;
2778 real_t f156;
2779 real_t f157;
2780 real_t f158;
2781 real_t f159;
2782 real_t f160;
2783 real_t f161;
2784 real_t f162;
2785 real_t f163;
2786 real_t f164;
2787 real_t f165;
2788 real_t f166;
2789 real_t f167;
2790 real_t f168;
2791 real_t f169;
2792 real_t f170;
2793 real_t f171;
2794 real_t f172;
2795 real_t f173;
2796 real_t f174;
2797 real_t f175;
2798 real_t f176;
2799 real_t f177;
2800 real_t f178;
2801 real_t f179;
2802 real_t f180;
2803 real_t f181;
2804 real_t f182;
2805 real_t f183;
2806 real_t f184;
2807 real_t f185;
2808 real_t f186;
2809 real_t f187;
2810 real_t f188;
2811 real_t f189;
2812 real_t f190;
2813 real_t f191;
2814 real_t f192;
2815 real_t f193;
2816 real_t f194;
2817 real_t f195;
2818 real_t f196;
2819 real_t f197;
2820 real_t f198;
2821 real_t f199;
2822 real_t f200;
2823 real_t f201;
2824 real_t f202;
2825 real_t f203;
2826 real_t f204;
2827 real_t f205;
2828 real_t f206;
2829 real_t f207;
2830 real_t f208;
2831 real_t f209;
2832 real_t f210;
2833 real_t f211;
2834 real_t f212;
2835 real_t f213;
2836 real_t f214;
2837 real_t f215;
2838 real_t f216;
2839 real_t f217;
2840 real_t f218;
2841 real_t f219;
2842 real_t f220;
2843 real_t f221;
2844 real_t f222;
2845 real_t f223;
2846 real_t f224;
2847 real_t f225;
2848 real_t f226;
2849 real_t f227;
2850 real_t f228;
2851 real_t f229;
2852 real_t f230;
2853 real_t f231;
2854 real_t f232;
2855 real_t f233;
2856 real_t f234;
2857 real_t f235;
2858 real_t f236;
2859 real_t f237;
2860 real_t f238;
2861 real_t f239;
2862 real_t f240;
2863 real_t f241;
2864 real_t f242;
2865 real_t f243;
2866 real_t f244;
2867 real_t f245;
2868 real_t f246;
2869 real_t f247;
2870 real_t f248;
2871 real_t f249;
2872 real_t f250;
2873 real_t f251;
2874 real_t f252;
2875 real_t f253;
2876 real_t f254;
2877 real_t f255;
2878 real_t f256;
2879 real_t f257;
2880 real_t f258;
2881 real_t f259;
2882 real_t f260;
2883 real_t f261;
2884 real_t f262;
2885 real_t f263;
2886 real_t f264;
2887 real_t f265;
2888 real_t f266;
2889 real_t f267;
2890 real_t f268;
2891 real_t f269;
2892 real_t f270;
2893 real_t f271;
2894 real_t f272;
2895 real_t f273;
2896 real_t f274;
2897 real_t f275;
2898 real_t f276;
2899 real_t f277;
2900 real_t f278;
2901 real_t f279;
2902 real_t f280;
2903 real_t f281;
2904 real_t f282;
2905 real_t f283;
2906 real_t f284;
2907 real_t f285;
2908 real_t f286;
2909 real_t f287;
2910 real_t f288;
2911 real_t f289;
2912 real_t f290;
2913 real_t f291;
2914 real_t f292;
2915 real_t f293;
2916 real_t f294;
2917 real_t f295;
2918 real_t f296;
2919 real_t f297;
2920 real_t f298;
2921 real_t f299;
2922 real_t f300;
2923 real_t f301;
2924 real_t f302;
2925 real_t f303;
2926 real_t f304;
2927 real_t f305;
2928 real_t f306;
2929 real_t f307;
2930 real_t f308;
2931 real_t f309;
2932 real_t f310;
2933 real_t f311;
2934 real_t f312;
2935 real_t f313;
2936 real_t f314;
2937 real_t f315;
2938 real_t f316;
2939 real_t f317;
2940 real_t f318;
2941 real_t f319;
2942 real_t f320;
2943 real_t f321;
2944 real_t f322;
2945 real_t f323;
2946 real_t f324;
2947 real_t f325;
2948 real_t f326;
2949 real_t f327;
2950 real_t f328;
2951 real_t f329;
2952 real_t f330;
2953 real_t f331;
2954 real_t f332;
2955 real_t f333;
2956 real_t f334;
2957 real_t f335;
2958 real_t f336;
2959 real_t f337;
2960 real_t f338;
2961 real_t f339;
2962 real_t f340;
2963 real_t f341;
2964 real_t f342;
2965 real_t f343;
2966 real_t f344;
2967 real_t f345;
2968 real_t f346;
2969 real_t f347;
2970 real_t f348;
2971 real_t f349;
2972 real_t f350;
2973 real_t f351;
2974 real_t f352;
2975 real_t f353;
2976 real_t f354;
2977 real_t f355;
2978 real_t f356;
2979 real_t f357;
2980 real_t f358;
2981 real_t f359;
2982 real_t f360;
2983 real_t f361;
2984 real_t f362;
2985 real_t f363;
2986 real_t f364;
2987 real_t f365;
2988 real_t f366;
2989 real_t f367;
2990 real_t f368;
2991 real_t f369;
2992 real_t f370;
2993 real_t f371;
2994 real_t f372;
2995 real_t f373;
2996 real_t f374;
2997 real_t f375;
2998 real_t f376;
2999 real_t f377;
3000 real_t f378;
3001 real_t f379;
3002 real_t f380;
3003 real_t f381;
3004 real_t f382;
3005 real_t f383;
3006 real_t f384;
3007 real_t f385;
3008 real_t f386;
3009 real_t f387;
3010 real_t f388;
3011 real_t f389;
3012 real_t f390;
3013 real_t f391;
3014 real_t f392;
3015 real_t f393;
3016 real_t f394;
3017 real_t f395;
3018 real_t f396;
3019 real_t f397;
3020 real_t f398;
3021 real_t f399;
3022 real_t f400;
3023 real_t f401;
3024 real_t f402;
3025 real_t f403;
3026 real_t f404;
3027 real_t f405;
3028 real_t f406;
3029 real_t f407;
3030 real_t f408;
3031 real_t f409;
3032 real_t f410;
3033 real_t f411;
3034 real_t f412;
3035 real_t f413;
3036 real_t f414;
3037 real_t f415;
3038 real_t f416;
3039 real_t f417;
3040 real_t f418;
3041 real_t f419;
3042 real_t f420;
3043 real_t f421;
3044 real_t f422;
3045 real_t f423;
3046 real_t f424;
3047 real_t f425;
3048 real_t f426;
3049 real_t f427;
3050 real_t f428;
3051 real_t f429;
3052 real_t f430;
3053 real_t f431;
3054 real_t f432;
3055 real_t f433;
3056 real_t f434;
3057 real_t f435;
3058 real_t f436;
3059 real_t f437;
3060 real_t f438;
3061 real_t f439;
3062 real_t f440;
3063 real_t f441;
3064 real_t f442;
3065 real_t f443;
3066 real_t f444;
3067 real_t f445;
3068 real_t f446;
3069 real_t f447;
3070 real_t f448;
3071 real_t f449;
3072 real_t f450;
3073 real_t f451;
3074 real_t f452;
3075 real_t f453;
3076 real_t f454;
3077 real_t f455;
3078 real_t f456;
3079 real_t f457;
3080 real_t f458;
3081 real_t f459;
3082 real_t f460;
3083 real_t f461;
3084 real_t f462;
3085 real_t f463;
3086 real_t f464;
3087 real_t f465;
3088 real_t f466;
3089 real_t f467;
3090 real_t f468;
3091 real_t f469;
3092 real_t f470;
3093 real_t f471;
3094 real_t f472;
3095 real_t f473;
3096 real_t f474;
3097 real_t f475;
3098 real_t f476;
3099 real_t f477;
3100 real_t f478;
3101 real_t f479;
3102 real_t f480;
3103 real_t f481;
3104 real_t f482;
3105 real_t f483;
3106 real_t f484;
3107 real_t f485;
3108 real_t f486;
3109 real_t f487;
3110 real_t f488;
3111 real_t f489;
3112 real_t f490;
3113 real_t f491;
3114 real_t f492;
3115 real_t f493;
3116 real_t f494;
3117 real_t f495;
3118 real_t f496;
3119 real_t f497;
3120 real_t f498;
3121 real_t f499;
3122 real_t f500;
3123 real_t f501;
3124 real_t f502;
3125 real_t f503;
3126 real_t f504;
3127 real_t f505;
3128 real_t f506;
3129 real_t f507;
3130 real_t f508;
3131 real_t f509;
3132 real_t f510;
3133 real_t f511;
3134 real_t f512;
3135 real_t f513;
3136 real_t f514;
3137 real_t f515;
3138 real_t f516;
3139 real_t f517;
3140 real_t f518;
3141 real_t f519;
3142 real_t f520;
3143 real_t f521;
3144 real_t f522;
3145 real_t f523;
3146 real_t f524;
3147 real_t f525;
3148 real_t f526;
3149 real_t f527;
3150 real_t f528;
3151 real_t f529;
3152 real_t f530;
3153 real_t f531;
3154 real_t f532;
3155 real_t f533;
3156 real_t f534;
3157 real_t f535;
3158 real_t f536;
3159 real_t f537;
3160 real_t f538;
3161 real_t f539;
3162 real_t f540;
3163 real_t f541;
3164 real_t f542;
3165 real_t f543;
3166 real_t f544;
3167 real_t f545;
3168 real_t f546;
3169 real_t f547;
3170 real_t f548;
3171 real_t f549;
3172 real_t f550;
3173 real_t f551;
3174 real_t f552;
3175 real_t f553;
3176 real_t f554;
3177 real_t f555;
3178 real_t f556;
3179 real_t f557;
3180 real_t f558;
3181 real_t f559;
3182 real_t f560;
3183 real_t f561;
3184 real_t f562;
3185 real_t f563;
3186 real_t f564;
3187 real_t f565;
3188 real_t f566;
3189 real_t f567;
3190 real_t f568;
3191 real_t f569;
3192 real_t f570;
3193 real_t f571;
3194 real_t f572;
3195 real_t f573;
3196 real_t f574;
3197 real_t f575;
3198 real_t f576;
3199 real_t f577;
3200 real_t f578;
3201 real_t f579;
3202 real_t f580;
3203 real_t f581;
3204 real_t f582;
3205 real_t f583;
3206 real_t f584;
3207 real_t f585;
3208 real_t f586;
3209 real_t f587;
3210 real_t f588;
3211 real_t f589;
3212 real_t f590;
3213 real_t f591;
3214 real_t f592;
3215 real_t f593;
3216 real_t f594;
3217 real_t f595;
3218 real_t f596;
3219 real_t f597;
3220 real_t f598;
3221 real_t f599;
3222 real_t f600;
3223 real_t f601;
3224 real_t f602;
3225 real_t f603;
3226 real_t f604;
3227 real_t f605;
3228 real_t f606;
3229 real_t f607;
3230 real_t f608;
3231 real_t f609;
3232 real_t f610;
3233 real_t f611;
3234 real_t f612;
3235 real_t f613;
3236 real_t f614;
3237 real_t f615;
3238 real_t f616;
3239 real_t f617;
3240 real_t f618;
3241 real_t f619;
3242 real_t f620;
3243 real_t f621;
3244 real_t f622;
3245 real_t f623;
3246 real_t f624;
3247 real_t f625;
3248 real_t f626;
3249 real_t f627;
3250 real_t f628;
3251 real_t f629;
3252 real_t f630;
3253 real_t f631;
3254 real_t f632;
3255 real_t f633;
3256 real_t f634;
3257 real_t f635;
3258 real_t f636;
3259 real_t f637;
3260 real_t f638;
3261 real_t f639;
3262 real_t f640;
3263 real_t f641;
3264 real_t f642;
3265 real_t f643;
3266 real_t f644;
3267 real_t f645;
3268 real_t f646;
3269 real_t f647;
3270 real_t f648;
3271 real_t f649;
3272 real_t f650;
3273 real_t f651;
3274 real_t f652;
3275 real_t f653;
3276 real_t f654;
3277 real_t f655;
3278 real_t f656;
3279 real_t f657;
3280 real_t f658;
3281 real_t f659;
3282 real_t f660;
3283 real_t f661;
3284 real_t f662;
3285 real_t f663;
3286 real_t f664;
3287 real_t f665;
3288 real_t f666;
3289 real_t f667;
3290 real_t f668;
3291 real_t f669;
3292 real_t f670;
3293 real_t f671;
3294 real_t f672;
3295 real_t f673;
3296 real_t f674;
3297 real_t f675;
3298 real_t f676;
3299 real_t f677;
3300 real_t f678;
3301 real_t f679;
3302 real_t f681;
3303 real_t f682;
3304 real_t f683;
3305 real_t f684;
3306 real_t f685;
3307 real_t f686;
3308 real_t f687;
3309 real_t f688;
3310 real_t f689;
3311 real_t f690;
3312 real_t f691;
3313 real_t f692;
3314 real_t f693;
3315 real_t f694;
3316 real_t f695;
3317 real_t f696;
3318 real_t f697;
3319 real_t f698;
3320 real_t f699;
3321 real_t f700;
3322 real_t f701;
3323 real_t f702;
3324 real_t f703;
3325 real_t f704;
3326 real_t f705;
3327 real_t f706;
3328 real_t f707;
3329 real_t f708;
3330 real_t f709;
3331 real_t f710;
3332 real_t f711;
3333 real_t f712;
3334 real_t f713;
3335 real_t f714;
3336 real_t f715;
3337 real_t f716;
3338 real_t f717;
3339 real_t f718;
3340 real_t f719;
3341 real_t f720;
3342 real_t f721;
3343 real_t f722;
3344 real_t f723;
3345 real_t f724;
3346 real_t f725;
3347 real_t f726;
3348 real_t f727;
3349 real_t f728;
3350 real_t f729;
3351 real_t f730;
3352 real_t f731;
3353 real_t f732;
3354 real_t f733;
3355 real_t f734;
3356 real_t f735;
3357 real_t f736;
3358 real_t f737;
3359 real_t f738;
3360 real_t f739;
3361 real_t f740;
3362 real_t f741;
3363 real_t f742;
3364 real_t f743;
3365 real_t f744;
3366 real_t f745;
3367 real_t f746;
3368 real_t f747;
3369 real_t f748;
3370 real_t f749;
3371 real_t f750;
3372 real_t f751;
3373 real_t f752;
3374 real_t f753;
3375 real_t f754;
3376 real_t f755;
3377 real_t f756;
3378 real_t f757;
3379 real_t f758;
3380 real_t f759;
3381 real_t f760;
3382 real_t f761;
3383 real_t f762;
3384 real_t f763;
3385 real_t f764;
3386 real_t f765;
3387 real_t f766;
3388 real_t f767;
3389 real_t f768;
3390 real_t f769;
3391 real_t f770;
3392 static real_t t7[64];
3393 static real_t t6[64];
3394 static real_t t0[64];
3395
3396 t7[0] = 0.5000376519155477 * x[0];
3397 f1 = 0.5003390374428216 * x[1];
3398 t7[2] = 0 - f1;
3399 t7[4] = 0.5009427176380873 * x[2];
3400 f3 = 0.5018505174842379 * x[3];
3401 t7[6] = 0 - f3;
3402 t7[8] = 0.5030651913013697 * x[4];
3403 f5 = 0.5045904432216454 * x[5];
3404 t7[10] = 0 - f5;
3405 t7[12] = 0.5064309549285542 * x[6];
3406 f7 = 0.5085924210498143 * x[7];
3407 t7[14] = 0 - f7;
3408 t7[16] = 0.5110815927066812 * x[8];
3409 f9 = 0.5139063298475396 * x[9];
3410 t7[18] = 0 - f9;
3411 t7[20] = 0.5170756631334912 * x[10];
3412 f11 = 0.5205998663018917 * x[11];
3413 t7[22] = 0 - f11;
3414 t7[24] = 0.5244905401147240 * x[12];
3415 f13 = 0.5287607092074876 * x[13];
3416 t7[26] = 0 - f13;
3417 t7[28] = 0.5334249333971333 * x[14];
3418 f15 = 0.5384994352919840 * x[15];
3419 t7[30] = 0 - f15;
3420 t7[32] = 0.5440022463817783 * x[16];
3421 f17 = 0.5499533741832360 * x[17];
3422 t7[34] = 0 - f17;
3423 t7[36] = 0.5563749934898856 * x[18];
3424 f19 = 0.5632916653417023 * x[19];
3425 t7[38] = 0 - f19;
3426 t7[40] = 0.5707305880121454 * x[20];
3427 f21 = 0.5787218851348208 * x[21];
3428 t7[42] = 0 - f21;
3429 t7[44] = 0.5872989370937893 * x[22];
3430 f23 = 0.5964987630244563 * x[23];
3431 t7[46] = 0 - f23;
3432 t7[48] = 0.6063624622721460 * x[24];
3433 f25 = 0.6169357260050706 * x[25];
3434 t7[50] = 0 - f25;
3435 t7[52] = 0.6282694319707711 * x[26];
3436 f27 = 0.6404203382416639 * x[27];
3437 t7[54] = 0 - f27;
3438 t7[56] = 0.6534518953751283 * x[28];
3439 f29 = 0.6674352009263413 * x[29];
3440 t7[58] = 0 - f29;
3441 t7[60] = 0.6824501259764195 * x[30];
3442 f31 = 0.6985866506472291 * x[31];
3443 t7[62] = 0 - f31;
3444 t7[63] = 0.7159464549705746 * x[32];
3445 f33 = 0.7346448236478627 * x[33];
3446 t7[61] = 0 - f33;
3447 t7[59] = 0.7548129391165311 * x[34];
3448 f35 = 0.7766006582339630 * x[35];
3449 t7[57] = 0 - f35;
3450 t7[55] = 0.8001798956216941 * x[36];
3451 f37 = 0.8257487738627852 * x[37];
3452 t7[53] = 0 - f37;
3453 t7[51] = 0.8535367510066064 * x[38];
3454 f39 = 0.8838110045596234 * x[39];
3455 t7[49] = 0 - f39;
3456 t7[47] = 0.9168844461846523 * x[40];
3457 f41 = 0.9531258743921193 * x[41];
3458 t7[45] = 0 - f41;
3459 t7[43] = 0.9929729612675466 * x[42];
3460 f43 = 1.0369490409103890 * x[43];
3461 t7[41] = 0 - f43;
3462 t7[39] = 1.0856850642580145 * x[44];
3463 f45 = 1.1399486751015042 * x[45];
3464 t7[37] = 0 - f45;
3465 t7[35] = 1.2006832557294167 * x[46];
3466 f47 = 1.2690611716991191 * x[47];
3467 t7[33] = 0 - f47;
3468 t7[31] = 1.3465576282062861 * x[48];
3469 f49 = 1.4350550884414341 * x[49];
3470 t7[29] = 0 - f49;
3471 t7[27] = 1.5369941008524954 * x[50];
3472 f51 = 1.6555965242641195 * x[51];
3473 t7[25] = 0 - f51;
3474 t7[23] = 1.7952052190778898 * x[52];
3475 f53 = 1.9618178485711659 * x[53];
3476 t7[21] = 0 - f53;
3477 t7[19] = 2.1639578187519790 * x[54];
3478 f55 = 2.4141600002500763 * x[55];
3479 t7[17] = 0 - f55;
3480 t7[15] = 2.7316450287739396 * x[56];
3481 f57 = 3.1474621917819090 * x[57];
3482 t7[13] = 0 - f57;
3483 t7[11] = 3.7152427383269746 * x[58];
3484 f59 = 4.5362909369693565 * x[59];
3485 t7[9] = 0 - f59;
3486 t7[7] = 5.8276883778446544 * x[60];
3487 f61 = 8.1538486024668142 * x[61];
3488 t7[5] = 0 - f61;
3489 t7[3] = 13.5842902572844600 * x[62];
3490 f63 = 40.7446881033518340 * x[63];
3491 t7[1] = 0 - f63;
3492 for (i0=0; i0<32; i0++)
3493 {
3494 t6[2*i0+1] = t7[2*i0] - t7[2*i0+1];
3495 t6[2*i0] = t7[2*i0] + t7[2*i0+1];
3496 }
3497 f66 = t6[0] - t6[62];
3498 f67 = t6[0] + t6[62];
3499 f68 = t6[2] - t6[60];
3500 f69 = t6[2] + t6[60];
3501 f70 = t6[4] - t6[58];
3502 f71 = t6[4] + t6[58];
3503 f72 = t6[6] - t6[56];
3504 f73 = t6[6] + t6[56];
3505 f74 = t6[8] - t6[54];
3506 f75 = t6[8] + t6[54];
3507 f76 = t6[10] - t6[52];
3508 f77 = t6[10] + t6[52];
3509 f78 = t6[12] - t6[50];
3510 f79 = t6[12] + t6[50];
3511 f80 = t6[14] - t6[48];
3512 f81 = t6[14] + t6[48];
3513 f82 = t6[16] - t6[46];
3514 f83 = t6[16] + t6[46];
3515 f84 = t6[18] - t6[44];
3516 f85 = t6[18] + t6[44];
3517 f86 = t6[20] - t6[42];
3518 f87 = t6[20] + t6[42];
3519 f88 = t6[22] - t6[40];
3520 f89 = t6[22] + t6[40];
3521 f90 = t6[24] - t6[38];
3522 f91 = t6[24] + t6[38];
3523 f92 = t6[26] - t6[36];
3524 f93 = t6[26] + t6[36];
3525 f94 = t6[28] - t6[34];
3526 f95 = t6[28] + t6[34];
3527 f96 = t6[30] - t6[32];
3528 f97 = t6[30] + t6[32];
3529 f98 = f67 - f97;
3530 f99 = f67 + f97;
3531 f100 = f69 - f95;
3532 f101 = f69 + f95;
3533 f102 = f71 - f93;
3534 f103 = f71 + f93;
3535 f104 = f73 - f91;
3536 f105 = f73 + f91;
3537 f106 = f75 - f89;
3538 f107 = f75 + f89;
3539 f108 = f77 - f87;
3540 f109 = f77 + f87;
3541 f110 = f79 - f85;
3542 f111 = f79 + f85;
3543 f112 = f81 - f83;
3544 f113 = f81 + f83;
3545 f114 = f99 - f113;
3546 f115 = f99 + f113;
3547 f116 = f101 - f111;
3548 f117 = f101 + f111;
3549 f118 = f103 - f109;
3550 f119 = f103 + f109;
3551 f120 = f105 - f107;
3552 f121 = f105 + f107;
3553 f122 = f115 - f121;
3554 f123 = f115 + f121;
3555 f124 = f117 - f119;
3556 f125 = f117 + f119;
3557 f126 = f123 - f125;
3558 f127 = f123 + f125;
3559 f128 = 0.7071067811865476 * f126;
3560 f129 = f122 + f124;
3561 f130 = 1.3065629648763766 * f122;
3562 f131 = (-0.9238795325112866) * f129;
3563 f132 = (-0.5411961001461967) * f124;
3564 f133 = f130 + f131;
3565 f134 = f132 - f131;
3566 f135 = f116 - f118;
3567 f136 = f116 + f118;
3568 f137 = 0.7071067811865476 * f136;
3569 f138 = 0.7071067811865476 * f135;
3570 f139 = f114 - f137;
3571 f140 = f114 + f137;
3572 f141 = f120 - f138;
3573 f142 = f120 + f138;
3574 f143 = f142 + f140;
3575 f144 = (-0.7856949583871021) * f142;
3576 f145 = 0.9807852804032304 * f143;
3577 f146 = 1.1758756024193588 * f140;
3578 f147 = f144 + f145;
3579 f148 = f146 - f145;
3580 f149 = f141 + f139;
3581 f150 = 0.2758993792829431 * f141;
3582 f151 = 0.5555702330196022 * f149;
3583 f152 = 1.3870398453221475 * f139;
3584 f153 = f150 + f151;
3585 f154 = f152 - f151;
3586 f155 = f100 - f102;
3587 f156 = f100 + f102;
3588 f157 = f104 - f106;
3589 f158 = f104 + f106;
3590 f159 = f108 - f110;
3591 f160 = f108 + f110;
3592 f161 = 0.7071067811865476 * f158;
3593 f162 = f98 - f161;
3594 f163 = f98 + f161;
3595 f164 = f156 + f160;
3596 f165 = 1.3065629648763766 * f156;
3597 f166 = (-0.9238795325112866) * f164;
3598 f167 = (-0.5411961001461967) * f160;
3599 f168 = f165 + f166;
3600 f169 = f167 - f166;
3601 f170 = f163 - f169;
3602 f171 = f163 + f169;
3603 f172 = f162 - f168;
3604 f173 = f162 + f168;
3605 f174 = f155 + f159;
3606 f175 = 1.3065629648763770 * f155;
3607 f176 = (-0.3826834323650904) * f174;
3608 f177 = 0.5411961001461961 * f159;
3609 f178 = f175 + f176;
3610 f179 = f177 - f176;
3611 f180 = 0.7071067811865476 * f157;
3612 f181 = f180 - f112;
3613 f182 = f180 + f112;
3614 f183 = f179 - f182;
3615 f184 = f179 + f182;
3616 f185 = f178 - f181;
3617 f186 = f178 + f181;
3618 f187 = f184 + f171;
3619 f188 = (-0.8971675863426361) * f184;
3620 f189 = 0.9951847266721968 * f187;
3621 f190 = 1.0932018670017576 * f171;
3622 f191 = f188 + f189;
3623 f192 = f190 - f189;
3624 f193 = f186 + f173;
3625 f194 = (-0.6666556584777466) * f186;
3626 f195 = 0.9569403357322089 * f193;
3627 f196 = 1.2472250129866713 * f173;
3628 f197 = f194 + f195;
3629 f198 = f196 - f195;
3630 f199 = f185 + f172;
3631 f200 = (-0.4105245275223571) * f185;
3632 f201 = 0.8819212643483549 * f199;
3633 f202 = 1.3533180011743529 * f172;
3634 f203 = f200 + f201;
3635 f204 = f202 - f201;
3636 f205 = f183 + f170;
3637 f206 = (-0.1386171691990915) * f183;
3638 f207 = 0.7730104533627370 * f205;
3639 f208 = 1.4074037375263826 * f170;
3640 f209 = f206 + f207;
3641 f210 = f208 - f207;
3642 f211 = f66 + f96;
3643 f212 = 1.0478631305325901 * f66;
3644 f213 = (-0.9987954562051724) * f211;
3645 f214 = (-0.9497277818777548) * f96;
3646 f215 = f212 + f213;
3647 f216 = f214 - f213;
3648 f217 = f70 + f92;
3649 f218 = 1.2130114330978077 * f70;
3650 f219 = (-0.9700312531945440) * f217;
3651 f220 = (-0.7270510732912803) * f92;
3652 f221 = f218 + f219;
3653 f222 = f220 - f219;
3654 f223 = f74 + f88;
3655 f224 = 1.3315443865537255 * f74;
3656 f225 = (-0.9039892931234433) * f223;
3657 f226 = (-0.4764341996931612) * f88;
3658 f227 = f224 + f225;
3659 f228 = f226 - f225;
3660 f229 = f78 + f84;
3661 f230 = 1.3989068359730781 * f78;
3662 f231 = (-0.8032075314806453) * f229;
3663 f232 = (-0.2075082269882124) * f84;
3664 f233 = f230 + f231;
3665 f234 = f232 - f231;
3666 f235 = f82 + f80;
3667 f236 = 1.4125100802019777 * f82;
3668 f237 = (-0.6715589548470187) * f235;
3669 f238 = 0.0693921705079402 * f80;
3670 f239 = f236 + f237;
3671 f240 = f238 - f237;
3672 f241 = f86 + f76;
3673 f242 = 1.3718313541934939 * f86;
3674 f243 = (-0.5141027441932219) * f241;
3675 f244 = 0.3436258658070501 * f76;
3676 f245 = f242 + f243;
3677 f246 = f244 - f243;
3678 f247 = f90 + f72;
3679 f248 = 1.2784339185752409 * f90;
3680 f249 = (-0.3368898533922200) * f247;
3681 f250 = 0.6046542117908008 * f72;
3682 f251 = f248 + f249;
3683 f252 = f250 - f249;
3684 f253 = f94 + f68;
3685 f254 = 1.1359069844201433 * f94;
3686 f255 = (-0.1467304744553624) * f253;
3687 f256 = 0.8424460355094185 * f68;
3688 f257 = f254 + f255;
3689 f258 = f256 - f255;
3690 f259 = f216 - f240;
3691 f260 = f216 + f240;
3692 f261 = f215 - f239;
3693 f262 = f215 + f239;
3694 f263 = f222 - f246;
3695 f264 = f222 + f246;
3696 f265 = f221 - f245;
3697 f266 = f221 + f245;
3698 f267 = f228 - f252;
3699 f268 = f228 + f252;
3700 f269 = f227 - f251;
3701 f270 = f227 + f251;
3702 f271 = f234 - f258;
3703 f272 = f234 + f258;
3704 f273 = f233 - f257;
3705 f274 = f233 + f257;
3706 f275 = f259 + f261;
3707 f276 = 1.1758756024193588 * f259;
3708 f277 = (-0.9807852804032304) * f275;
3709 f278 = (-0.7856949583871021) * f261;
3710 f279 = f276 + f277;
3711 f280 = f278 - f277;
3712 f281 = f263 + f265;
3713 f282 = 1.3870398453221475 * f263;
3714 f283 = (-0.5555702330196022) * f281;
3715 f284 = 0.2758993792829431 * f265;
3716 f285 = f282 + f283;
3717 f286 = f284 - f283;
3718 f287 = f267 + f269;
3719 f288 = 0.7856949583871022 * f267;
3720 f289 = 0.1950903220161283 * f287;
3721 f290 = 1.1758756024193586 * f269;
3722 f291 = f288 + f289;
3723 f292 = f290 - f289;
3724 f293 = f271 + f273;
3725 f294 = (-0.2758993792829430) * f271;
3726 f295 = 0.8314696123025452 * f293;
3727 f296 = 1.3870398453221475 * f273;
3728 f297 = f294 + f295;
3729 f298 = f296 - f295;
3730 f299 = f260 - f268;
3731 f300 = f260 + f268;
3732 f301 = f262 - f270;
3733 f302 = f262 + f270;
3734 f303 = f264 - f272;
3735 f304 = f264 + f272;
3736 f305 = f266 - f274;
3737 f306 = f266 + f274;
3738 f307 = f280 - f292;
3739 f308 = f280 + f292;
3740 f309 = f279 - f291;
3741 f310 = f279 + f291;
3742 f311 = f286 - f298;
3743 f312 = f286 + f298;
3744 f313 = f285 - f297;
3745 f314 = f285 + f297;
3746 f315 = f299 + f301;
3747 f316 = 1.3065629648763766 * f299;
3748 f317 = (-0.9238795325112866) * f315;
3749 f318 = (-0.5411961001461967) * f301;
3750 f319 = f316 + f317;
3751 f320 = f318 - f317;
3752 f321 = f303 + f305;
3753 f322 = 0.5411961001461969 * f303;
3754 f323 = 0.3826834323650898 * f321;
3755 f324 = 1.3065629648763766 * f305;
3756 f325 = f322 + f323;
3757 f326 = f324 - f323;
3758 f327 = f307 + f309;
3759 f328 = 1.3065629648763766 * f307;
3760 f329 = (-0.9238795325112866) * f327;
3761 f330 = (-0.5411961001461967) * f309;
3762 f331 = f328 + f329;
3763 f332 = f330 - f329;
3764 f333 = f311 + f313;
3765 f334 = 0.5411961001461969 * f311;
3766 f335 = 0.3826834323650898 * f333;
3767 f336 = 1.3065629648763766 * f313;
3768 f337 = f334 + f335;
3769 f338 = f336 - f335;
3770 f339 = f300 - f304;
3771 f340 = f300 + f304;
3772 f341 = f302 - f306;
3773 f342 = f302 + f306;
3774 f343 = f320 - f326;
3775 f344 = f320 + f326;
3776 f345 = f319 - f325;
3777 f346 = f319 + f325;
3778 f347 = f308 - f312;
3779 f348 = f308 + f312;
3780 f349 = f310 - f314;
3781 f350 = f310 + f314;
3782 f351 = f332 - f338;
3783 f352 = f332 + f338;
3784 f353 = f331 - f337;
3785 f354 = f331 + f337;
3786 f355 = f339 - f341;
3787 f356 = f339 + f341;
3788 f357 = 0.7071067811865474 * f355;
3789 f358 = 0.7071067811865474 * f356;
3790 f359 = f343 - f345;
3791 f360 = f343 + f345;
3792 f361 = 0.7071067811865474 * f359;
3793 f362 = 0.7071067811865474 * f360;
3794 f363 = f347 - f349;
3795 f364 = f347 + f349;
3796 f365 = 0.7071067811865474 * f363;
3797 f366 = 0.7071067811865474 * f364;
3798 f367 = f351 - f353;
3799 f368 = f351 + f353;
3800 f369 = 0.7071067811865474 * f367;
3801 f370 = 0.7071067811865474 * f368;
3802 f371 = t6[31] - t6[33];
3803 f372 = t6[31] + t6[33];
3804 f373 = 0.7071067811865476 * f372;
3805 f374 = 0.7071067811865476 * f371;
3806 f375 = t6[17] - t6[47];
3807 f376 = t6[17] + t6[47];
3808 f377 = 0.7071067811865476 * f376;
3809 f378 = 0.7071067811865476 * f375;
3810 f379 = t6[25] - t6[39];
3811 f380 = t6[25] + t6[39];
3812 f381 = 0.7071067811865476 * f380;
3813 f382 = 0.7071067811865476 * f379;
3814 f383 = t6[23] - t6[41];
3815 f384 = t6[23] + t6[41];
3816 f385 = 0.7071067811865476 * f384;
3817 f386 = 0.7071067811865476 * f383;
3818 f387 = t6[29] - t6[35];
3819 f388 = t6[29] + t6[35];
3820 f389 = 0.7071067811865476 * f388;
3821 f390 = 0.7071067811865476 * f387;
3822 f391 = t6[19] - t6[45];
3823 f392 = t6[19] + t6[45];
3824 f393 = 0.7071067811865476 * f392;
3825 f394 = 0.7071067811865476 * f391;
3826 f395 = t6[27] - t6[37];
3827 f396 = t6[27] + t6[37];
3828 f397 = 0.7071067811865476 * f396;
3829 f398 = 0.7071067811865476 * f395;
3830 f399 = t6[21] - t6[43];
3831 f400 = t6[21] + t6[43];
3832 f401 = 0.7071067811865476 * f400;
3833 f402 = 0.7071067811865476 * f399;
3834 f403 = t6[1] - f373;
3835 f404 = t6[1] + f373;
3836 f405 = t6[63] - f374;
3837 f406 = t6[63] + f374;
3838 f407 = t6[15] - f377;
3839 f408 = t6[15] + f377;
3840 f409 = t6[49] - f378;
3841 f410 = t6[49] + f378;
3842 f411 = t6[7] - f381;
3843 f412 = t6[7] + f381;
3844 f413 = t6[57] - f382;
3845 f414 = t6[57] + f382;
3846 f415 = t6[9] - f385;
3847 f416 = t6[9] + f385;
3848 f417 = t6[55] - f386;
3849 f418 = t6[55] + f386;
3850 f419 = t6[3] - f389;
3851 f420 = t6[3] + f389;
3852 f421 = t6[61] - f390;
3853 f422 = t6[61] + f390;
3854 f423 = t6[13] - f393;
3855 f424 = t6[13] + f393;
3856 f425 = t6[51] - f394;
3857 f426 = t6[51] + f394;
3858 f427 = t6[5] - f397;
3859 f428 = t6[5] + f397;
3860 f429 = t6[59] - f398;
3861 f430 = t6[59] + f398;
3862 f431 = t6[11] - f401;
3863 f432 = t6[11] + f401;
3864 f433 = t6[53] - f402;
3865 f434 = t6[53] + f402;
3866 f435 = f410 + f408;
3867 f436 = (-0.5411961001461969) * f410;
3868 f437 = 0.9238795325112867 * f435;
3869 f438 = 1.3065629648763766 * f408;
3870 f439 = f436 + f437;
3871 f440 = f438 - f437;
3872 f441 = f409 + f407;
3873 f442 = 1.3065629648763770 * f409;
3874 f443 = (-0.3826834323650904) * f441;
3875 f444 = 0.5411961001461961 * f407;
3876 f445 = f442 + f443;
3877 f446 = f444 - f443;
3878 f447 = f418 + f416;
3879 f448 = (-0.5411961001461969) * f418;
3880 f449 = 0.9238795325112867 * f447;
3881 f450 = 1.3065629648763766 * f416;
3882 f451 = f448 + f449;
3883 f452 = f450 - f449;
3884 f453 = f417 + f415;
3885 f454 = 1.3065629648763770 * f417;
3886 f455 = (-0.3826834323650904) * f453;
3887 f456 = 0.5411961001461961 * f415;
3888 f457 = f454 + f455;
3889 f458 = f456 - f455;
3890 f459 = f426 + f424;
3891 f460 = (-0.5411961001461969) * f426;
3892 f461 = 0.9238795325112867 * f459;
3893 f462 = 1.3065629648763766 * f424;
3894 f463 = f460 + f461;
3895 f464 = f462 - f461;
3896 f465 = f425 + f423;
3897 f466 = 1.3065629648763770 * f425;
3898 f467 = (-0.3826834323650904) * f465;
3899 f468 = 0.5411961001461961 * f423;
3900 f469 = f466 + f467;
3901 f470 = f468 - f467;
3902 f471 = f434 + f432;
3903 f472 = (-0.5411961001461969) * f434;
3904 f473 = 0.9238795325112867 * f471;
3905 f474 = 1.3065629648763766 * f432;
3906 f475 = f472 + f473;
3907 f476 = f474 - f473;
3908 f477 = f433 + f431;
3909 f478 = 1.3065629648763770 * f433;
3910 f479 = (-0.3826834323650904) * f477;
3911 f480 = 0.5411961001461961 * f431;
3912 f481 = f478 + f479;
3913 f482 = f480 - f479;
3914 f483 = f404 - f439;
3915 f484 = f404 + f439;
3916 f485 = f406 - f440;
3917 f486 = f406 + f440;
3918 f487 = f403 - f445;
3919 f488 = f403 + f445;
3920 f489 = f405 - f446;
3921 f490 = f405 + f446;
3922 f491 = f412 - f451;
3923 f492 = f412 + f451;
3924 f493 = f414 - f452;
3925 f494 = f414 + f452;
3926 f495 = f411 - f457;
3927 f496 = f411 + f457;
3928 f497 = f413 - f458;
3929 f498 = f413 + f458;
3930 f499 = f420 - f463;
3931 f500 = f420 + f463;
3932 f501 = f422 - f464;
3933 f502 = f422 + f464;
3934 f503 = f419 - f469;
3935 f504 = f419 + f469;
3936 f505 = f421 - f470;
3937 f506 = f421 + f470;
3938 f507 = f428 - f475;
3939 f508 = f428 + f475;
3940 f509 = f430 - f476;
3941 f510 = f430 + f476;
3942 f511 = f427 - f481;
3943 f512 = f427 + f481;
3944 f513 = f429 - f482;
3945 f514 = f429 + f482;
3946 f515 = f494 + f492;
3947 f516 = (-0.7856949583871021) * f494;
3948 f517 = 0.9807852804032304 * f515;
3949 f518 = 1.1758756024193588 * f492;
3950 f519 = f516 + f517;
3951 f520 = f518 - f517;
3952 f521 = f498 + f496;
3953 f522 = 0.2758993792829431 * f498;
3954 f523 = 0.5555702330196022 * f521;
3955 f524 = 1.3870398453221475 * f496;
3956 f525 = f522 + f523;
3957 f526 = f524 - f523;
3958 f527 = f493 + f491;
3959 f528 = 1.1758756024193591 * f493;
3960 f529 = (-0.1950903220161287) * f527;
3961 f530 = 0.7856949583871016 * f491;
3962 f531 = f528 + f529;
3963 f532 = f530 - f529;
3964 f533 = f497 + f495;
3965 f534 = 1.3870398453221473 * f497;
3966 f535 = (-0.8314696123025455) * f533;
3967 f536 = (-0.2758993792829436) * f495;
3968 f537 = f534 + f535;
3969 f538 = f536 - f535;
3970 f539 = f510 + f508;
3971 f540 = (-0.7856949583871021) * f510;
3972 f541 = 0.9807852804032304 * f539;
3973 f542 = 1.1758756024193588 * f508;
3974 f543 = f540 + f541;
3975 f544 = f542 - f541;
3976 f545 = f514 + f512;
3977 f546 = 0.2758993792829431 * f514;
3978 f547 = 0.5555702330196022 * f545;
3979 f548 = 1.3870398453221475 * f512;
3980 f549 = f546 + f547;
3981 f550 = f548 - f547;
3982 f551 = f509 + f507;
3983 f552 = 1.1758756024193591 * f509;
3984 f553 = (-0.1950903220161287) * f551;
3985 f554 = 0.7856949583871016 * f507;
3986 f555 = f552 + f553;
3987 f556 = f554 - f553;
3988 f557 = f513 + f511;
3989 f558 = 1.3870398453221473 * f513;
3990 f559 = (-0.8314696123025455) * f557;
3991 f560 = (-0.2758993792829436) * f511;
3992 f561 = f558 + f559;
3993 f562 = f560 - f559;
3994 f563 = f484 - f519;
3995 f564 = f484 + f519;
3996 f565 = f486 - f520;
3997 f566 = f486 + f520;
3998 f567 = f488 - f525;
3999 f568 = f488 + f525;
4000 f569 = f490 - f526;
4001 f570 = f490 + f526;
4002 f571 = f483 - f531;
4003 f572 = f483 + f531;
4004 f573 = f485 - f532;
4005 f574 = f485 + f532;
4006 f575 = f487 - f537;
4007 f576 = f487 + f537;
4008 f577 = f489 - f538;
4009 f578 = f489 + f538;
4010 f579 = f500 - f543;
4011 f580 = f500 + f543;
4012 f581 = f502 - f544;
4013 f582 = f502 + f544;
4014 f583 = f504 - f549;
4015 f584 = f504 + f549;
4016 f585 = f506 - f550;
4017 f586 = f506 + f550;
4018 f587 = f499 - f555;
4019 f588 = f499 + f555;
4020 f589 = f501 - f556;
4021 f590 = f501 + f556;
4022 f591 = f503 - f561;
4023 f592 = f503 + f561;
4024 f593 = f505 - f562;
4025 f594 = f505 + f562;
4026 f595 = f582 + f580;
4027 f596 = (-0.8971675863426361) * f582;
4028 f597 = 0.9951847266721968 * f595;
4029 f598 = 1.0932018670017576 * f580;
4030 f599 = f596 + f597;
4031 f600 = f598 - f597;
4032 f601 = f586 + f584;
4033 f602 = (-0.4105245275223571) * f586;
4034 f603 = 0.8819212643483549 * f601;
4035 f604 = 1.3533180011743529 * f584;
4036 f605 = f602 + f603;
4037 f606 = f604 - f603;
4038 f607 = f590 + f588;
4039 f608 = 0.1386171691990915 * f590;
4040 f609 = 0.6343932841636455 * f607;
4041 f610 = 1.4074037375263826 * f588;
4042 f611 = f608 + f609;
4043 f612 = f610 - f609;
4044 f613 = f594 + f592;
4045 f614 = 0.6666556584777466 * f594;
4046 f615 = 0.2902846772544623 * f613;
4047 f616 = 1.2472250129866711 * f592;
4048 f617 = f614 + f615;
4049 f618 = f616 - f615;
4050 f619 = f581 + f579;
4051 f620 = 1.0932018670017574 * f581;
4052 f621 = (-0.0980171403295605) * f619;
4053 f622 = 0.8971675863426364 * f579;
4054 f623 = f620 + f621;
4055 f624 = f622 - f621;
4056 f625 = f585 + f583;
4057 f626 = 1.3533180011743529 * f585;
4058 f627 = (-0.4713967368259979) * f625;
4059 f628 = 0.4105245275223569 * f583;
4060 f629 = f626 + f627;
4061 f630 = f628 - f627;
4062 f631 = f589 + f587;
4063 f632 = 1.4074037375263826 * f589;
4064 f633 = (-0.7730104533627369) * f631;
4065 f634 = (-0.1386171691990913) * f587;
4066 f635 = f632 + f633;
4067 f636 = f634 - f633;
4068 f637 = f593 + f591;
4069 f638 = 1.2472250129866711 * f593;
4070 f639 = (-0.9569403357322089) * f637;
4071 f640 = (-0.6666556584777469) * f591;
4072 f641 = f638 + f639;
4073 f642 = f640 - f639;
4074 f643 = f564 - f599;
4075 f644 = f564 + f599;
4076 f645 = f566 - f600;
4077 f646 = f566 + f600;
4078 f647 = f568 - f605;
4079 f648 = f568 + f605;
4080 f649 = f570 - f606;
4081 f650 = f570 + f606;
4082 f651 = f572 - f611;
4083 f652 = f572 + f611;
4084 f653 = f574 - f612;
4085 f654 = f574 + f612;
4086 f655 = f576 - f617;
4087 f656 = f576 + f617;
4088 f657 = f578 - f618;
4089 f658 = f578 + f618;
4090 f659 = f563 - f623;
4091 f660 = f563 + f623;
4092 f661 = f565 - f624;
4093 f662 = f565 + f624;
4094 f663 = f567 - f629;
4095 f664 = f567 + f629;
4096 f665 = f569 - f630;
4097 f666 = f569 + f630;
4098 f667 = f571 - f635;
4099 f668 = f571 + f635;
4100 f669 = f573 - f636;
4101 f670 = f573 + f636;
4102 f671 = f575 - f641;
4103 f672 = f575 + f641;
4104 f673 = f577 - f642;
4105 f674 = f577 + f642;
4106 f675 = f646 + f644;
4107 f676 = (-0.9751575901732920) * f646;
4108 f677 = 0.9996988186962043 * f675;
4109 f678 = 1.0242400472191164 * f644;
4110 f679 = f676 + f677;
4111 t0[63] = f678 - f677;
4112 f681 = f650 + f648;
4113 f682 = (-0.8700688593994936) * f650;
4114 f683 = 0.9924795345987100 * f681;
4115 f684 = 1.1148902097979263 * f648;
4116 f685 = f682 + f683;
4117 f686 = f684 - f683;
4118 f687 = f654 + f652;
4119 f688 = (-0.7566008898816587) * f654;
4120 f689 = 0.9757021300385286 * f687;
4121 f690 = 1.1948033701953984 * f652;
4122 f691 = f688 + f689;
4123 f692 = f690 - f689;
4124 f693 = f658 + f656;
4125 f694 = (-0.6358464401941451) * f658;
4126 f695 = 0.9495281805930367 * f693;
4127 f696 = 1.2632099209919283 * f656;
4128 f697 = f694 + f695;
4129 f698 = f696 - f695;
4130 f699 = f662 + f660;
4131 f700 = (-0.5089684416985408) * f662;
4132 f701 = 0.9142097557035307 * f699;
4133 f702 = 1.3194510697085207 * f660;
4134 f703 = f700 + f701;
4135 f704 = f702 - f701;
4136 f705 = f666 + f664;
4137 f706 = (-0.3771887988789273) * f666;
4138 f707 = 0.8700869911087114 * f705;
4139 f708 = 1.3629851833384954 * f664;
4140 f709 = f706 + f707;
4141 f710 = f708 - f707;
4142 f711 = f670 + f668;
4143 f712 = (-0.2417766217337384) * f670;
4144 f713 = 0.8175848131515837 * f711;
4145 f714 = 1.3933930045694289 * f668;
4146 f715 = f712 + f713;
4147 f716 = f714 - f713;
4148 f717 = f674 + f672;
4149 f718 = (-0.1040360035527077) * f674;
4150 f719 = 0.7572088465064845 * f717;
4151 f720 = 1.4103816894602612 * f672;
4152 f721 = f718 + f719;
4153 f722 = f720 - f719;
4154 f723 = f645 + f643;
4155 f724 = 0.0347065382144002 * f645;
4156 f725 = 0.6895405447370668 * f723;
4157 f726 = 1.4137876276885337 * f643;
4158 f727 = f724 + f725;
4159 f728 = f726 - f725;
4160 f729 = f649 + f647;
4161 f730 = 0.1731148370459795 * f649;
4162 f731 = 0.6152315905806268 * f729;
4163 f732 = 1.4035780182072330 * f647;
4164 f733 = f730 + f731;
4165 f734 = f732 - f731;
4166 f735 = f653 + f651;
4167 f736 = 0.3098559453626100 * f653;
4168 f737 = 0.5349976198870972 * f735;
4169 f738 = 1.3798511851368043 * f651;
4170 f739 = f736 + f737;
4171 f740 = f738 - f737;
4172 f741 = f657 + f655;
4173 f742 = 0.4436129715409088 * f657;
4174 f743 = 0.4496113296546065 * f741;
4175 f744 = 1.3428356308501219 * f655;
4176 f745 = f742 + f743;
4177 f746 = f744 - f743;
4178 f747 = f661 + f659;
4179 f748 = 0.5730977622997509 * f661;
4180 f749 = 0.3598950365349881 * f747;
4181 f750 = 1.2928878353697271 * f659;
4182 f751 = f748 + f749;
4183 f752 = f750 - f749;
4184 f753 = f665 + f663;
4185 f754 = 0.6970633083205415 * f665;
4186 f755 = 0.2667127574748984 * f753;
4187 f756 = 1.2304888232703382 * f663;
4188 f757 = f754 + f755;
4189 f758 = f756 - f755;
4190 f759 = f669 + f667;
4191 f760 = 0.8143157536286401 * f669;
4192 f761 = 0.1709618887603012 * f759;
4193 f762 = 1.1562395311492424 * f667;
4194 f763 = f760 + f761;
4195 f764 = f762 - f761;
4196 f765 = f673 + f671;
4197 f766 = 0.9237258930790228 * f673;
4198 f767 = 0.0735645635996674 * f765;
4199 f768 = 1.0708550202783576 * f671;
4200 f769 = f766 + f767;
4201 f770 = f768 - f767;
4202 t0[0] = f127 + f679;
4203 t0[1] = f679 + f340;
4204 t0[2] = f340 + f770;
4205 t0[3] = f770 + f191;
4206 t0[4] = f191 + f685;
4207 t0[5] = f685 + f348;
4208 t0[6] = f348 + f764;
4209 t0[7] = f764 + f147;
4210 t0[8] = f147 + f691;
4211 t0[9] = f691 + f352;
4212 t0[10] = f352 + f758;
4213 t0[11] = f758 + f197;
4214 t0[12] = f197 + f697;
4215 t0[13] = f697 + f344;
4216 t0[14] = f344 + f752;
4217 t0[15] = f752 + f134;
4218 t0[16] = f134 + f703;
4219 t0[17] = f703 + f362;
4220 t0[18] = f362 + f746;
4221 t0[19] = f746 + f203;
4222 t0[20] = f203 + f709;
4223 t0[21] = f709 + f370;
4224 t0[22] = f370 + f740;
4225 t0[23] = f740 + f154;
4226 t0[24] = f154 + f715;
4227 t0[25] = f715 + f366;
4228 t0[26] = f366 + f734;
4229 t0[27] = f734 + f209;
4230 t0[28] = f209 + f721;
4231 t0[29] = f721 + f358;
4232 t0[30] = f358 + f728;
4233 t0[31] = f728 + f128;
4234 t0[32] = f128 + f727;
4235 t0[33] = f727 + f357;
4236 t0[34] = f357 + f722;
4237 t0[35] = f722 + f210;
4238 t0[36] = f210 + f733;
4239 t0[37] = f733 + f365;
4240 t0[38] = f365 + f716;
4241 t0[39] = f716 + f153;
4242 t0[40] = f153 + f739;
4243 t0[41] = f739 + f369;
4244 t0[42] = f369 + f710;
4245 t0[43] = f710 + f204;
4246 t0[44] = f204 + f745;
4247 t0[45] = f745 + f361;
4248 t0[46] = f361 + f704;
4249 t0[47] = f704 + f133;
4250 t0[48] = f133 + f751;
4251 t0[49] = f751 + f346;
4252 t0[50] = f346 + f698;
4253 t0[51] = f698 + f198;
4254 t0[52] = f198 + f757;
4255 t0[53] = f757 + f354;
4256 t0[54] = f354 + f692;
4257 t0[55] = f692 + f148;
4258 t0[56] = f148 + f763;
4259 t0[57] = f763 + f350;
4260 t0[58] = f350 + f686;
4261 t0[59] = f686 + f192;
4262 t0[60] = f192 + f769;
4263 t0[61] = f769 + f342;
4264 t0[62] = f342 + t0[63];
4265 for (i0=0; i0<64; i0++)
4266 {
4267 y[i0] = t0[-i0+63];
4268 }
4269 }
4270
4271 #endif
4272
4273 #endif
4274