comparison libfaad2/sbr_dct.c @ 12527:4a370c80fe5c

update to the 2.0 release of faad, patch by adland
author diego
date Wed, 02 Jun 2004 22:59:04 +0000
parents 3185f64f6350
children d81145997036
comparison
equal deleted inserted replaced
12526:e183ad37d24c 12527:4a370c80fe5c
1 /* 1 /*
2 ** FAAD2 - Freeware Advanced Audio (AAC) Decoder including SBR decoding 2 ** FAAD2 - Freeware Advanced Audio (AAC) Decoder including SBR decoding
3 ** Copyright (C) 2003 M. Bakker, Ahead Software AG, http://www.nero.com 3 ** Copyright (C) 2003-2004 M. Bakker, Ahead Software AG, http://www.nero.com
4 ** 4 **
5 ** This program is free software; you can redistribute it and/or modify 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 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 7 ** the Free Software Foundation; either version 2 of the License, or
8 ** (at your option) any later version. 8 ** (at your option) any later version.
9 ** 9 **
10 ** This program is distributed in the hope that it will be useful, 10 ** This program is distributed in the hope that it will be useful,
11 ** but WITHOUT ANY WARRANTY; without even the implied warranty of 11 ** but WITHOUT ANY WARRANTY; without even the implied warranty of
12 ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 ** GNU General Public License for more details. 13 ** GNU General Public License for more details.
14 ** 14 **
15 ** You should have received a copy of the GNU General Public License 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 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. 17 ** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
18 ** 18 **
19 ** Any non-GPL usage of this software or parts of this software is strictly 19 ** Any non-GPL usage of this software or parts of this software is strictly
20 ** forbidden. 20 ** forbidden.
21 ** 21 **
22 ** Commercial non-GPL licensing of this software is possible. 22 ** Commercial non-GPL licensing of this software is possible.
23 ** For more info contact Ahead Software through Mpeg4AAClicense@nero.com. 23 ** For more info contact Ahead Software through Mpeg4AAClicense@nero.com.
24 ** 24 **
25 ** $Id: sbr_dct.c,v 1.4 2003/09/24 11:52:12 menno Exp $ 25 ** $Id: sbr_dct.c,v 1.2 2003/10/03 22:22:27 alex Exp $
26 **/ 26 **/
27 27
28 #include "common.h" 28 #include "common.h"
29 29
30 #ifdef SBR_DEC 30 #ifdef SBR_DEC
32 #ifdef _MSC_VER 32 #ifdef _MSC_VER
33 #pragma warning(disable:4305) 33 #pragma warning(disable:4305)
34 #pragma warning(disable:4244) 34 #pragma warning(disable:4244)
35 #endif 35 #endif
36 36
37 #define MUL_C_R(B,A) MUL_R_C(A,B)
38 37
39 #include "sbr_dct.h" 38 #include "sbr_dct.h"
40 39
41 #ifdef SBR_LOW_POWER 40 #ifdef SBR_LOW_POWER
42 41
69 real_t f241, f242, f243, f244, f245, f246, f247, f248, f249, f250; 68 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; 69 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; 70 real_t f261, f262, f263, f264, f265, f266, f267, f268, f269, f270;
72 real_t f271, f272; 71 real_t f271, f272;
73 72
74 f0 = MUL_C_R(COEF_CONST(0.7071067811865476), x[16]); 73 f0 = MUL_C(COEF_CONST(0.7071067811865476), x[16]);
75 f1 = x[0] - f0; 74 f1 = x[0] - f0;
76 f2 = x[0] + f0; 75 f2 = x[0] + f0;
77 f3 = x[8] + x[24]; 76 f3 = x[8] + x[24];
78 f4 = MUL_C_R(COEF_CONST(1.3065629648763766), x[8]); 77 f4 = MUL_C(COEF_CONST(1.3065629648763766), x[8]);
79 f5 = MUL_C_R(COEF_CONST((-0.9238795325112866)), f3); 78 f5 = MUL_C(COEF_CONST((-0.9238795325112866)), f3);
80 f6 = MUL_C_R(COEF_CONST((-0.5411961001461967)), x[24]); 79 f6 = MUL_C(COEF_CONST((-0.5411961001461967)), x[24]);
81 f7 = f4 + f5; 80 f7 = f4 + f5;
82 f8 = f6 - f5; 81 f8 = f6 - f5;
83 f9 = f2 - f8; 82 f9 = f2 - f8;
84 f10 = f2 + f8; 83 f10 = f2 + f8;
85 f11 = f1 - f7; 84 f11 = f1 - f7;
86 f12 = f1 + f7; 85 f12 = f1 + f7;
87 f13 = x[4] + x[28]; 86 f13 = x[4] + x[28];
88 f14 = MUL_C_R(COEF_CONST(1.1758756024193588), x[4]); 87 f14 = MUL_C(COEF_CONST(1.1758756024193588), x[4]);
89 f15 = MUL_C_R(COEF_CONST((-0.9807852804032304)), f13); 88 f15 = MUL_C(COEF_CONST((-0.9807852804032304)), f13);
90 f16 = MUL_C_R(COEF_CONST((-0.7856949583871021)), x[28]); 89 f16 = MUL_C(COEF_CONST((-0.7856949583871021)), x[28]);
91 f17 = f14 + f15; 90 f17 = f14 + f15;
92 f18 = f16 - f15; 91 f18 = f16 - f15;
93 f19 = x[12] + x[20]; 92 f19 = x[12] + x[20];
94 f20 = MUL_C_R(COEF_CONST(1.3870398453221473), x[12]); 93 f20 = MUL_C(COEF_CONST(1.3870398453221473), x[12]);
95 f21 = MUL_C_R(COEF_CONST((-0.8314696123025455)), f19); 94 f21 = MUL_C(COEF_CONST((-0.8314696123025455)), f19);
96 f22 = MUL_C_R(COEF_CONST((-0.2758993792829436)), x[20]); 95 f22 = MUL_C(COEF_CONST((-0.2758993792829436)), x[20]);
97 f23 = f20 + f21; 96 f23 = f20 + f21;
98 f24 = f22 - f21; 97 f24 = f22 - f21;
99 f25 = f18 - f24; 98 f25 = f18 - f24;
100 f26 = f18 + f24; 99 f26 = f18 + f24;
101 f27 = MUL_C_R(COEF_CONST(0.7071067811865476), f25); 100 f27 = MUL_C(COEF_CONST(0.7071067811865476), f25);
102 f28 = f17 - f23; 101 f28 = f17 - f23;
103 f29 = f17 + f23; 102 f29 = f17 + f23;
104 f30 = MUL_C_R(COEF_CONST(0.7071067811865476), f29); 103 f30 = MUL_C(COEF_CONST(0.7071067811865476), f29);
105 f31 = f27 - f30; 104 f31 = f27 - f30;
106 f32 = f27 + f30; 105 f32 = f27 + f30;
107 f33 = f10 - f26; 106 f33 = f10 - f26;
108 f34 = f10 + f26; 107 f34 = f10 + f26;
109 f35 = f12 - f32; 108 f35 = f12 - f32;
111 f37 = f11 - f31; 110 f37 = f11 - f31;
112 f38 = f11 + f31; 111 f38 = f11 + f31;
113 f39 = f9 - f28; 112 f39 = f9 - f28;
114 f40 = f9 + f28; 113 f40 = f9 + f28;
115 f41 = x[2] + x[30]; 114 f41 = x[2] + x[30];
116 f42 = MUL_C_R(COEF_CONST(1.0932018670017569), x[2]); 115 f42 = MUL_C(COEF_CONST(1.0932018670017569), x[2]);
117 f43 = MUL_C_R(COEF_CONST((-0.9951847266721969)), f41); 116 f43 = MUL_C(COEF_CONST((-0.9951847266721969)), f41);
118 f44 = MUL_C_R(COEF_CONST((-0.8971675863426368)), x[30]); 117 f44 = MUL_C(COEF_CONST((-0.8971675863426368)), x[30]);
119 f45 = f42 + f43; 118 f45 = f42 + f43;
120 f46 = f44 - f43; 119 f46 = f44 - f43;
121 f47 = x[6] + x[26]; 120 f47 = x[6] + x[26];
122 f48 = MUL_C_R(COEF_CONST(1.2472250129866711), x[6]); 121 f48 = MUL_C(COEF_CONST(1.2472250129866711), x[6]);
123 f49 = MUL_C_R(COEF_CONST((-0.9569403357322089)), f47); 122 f49 = MUL_C(COEF_CONST((-0.9569403357322089)), f47);
124 f50 = MUL_C_R(COEF_CONST((-0.6666556584777469)), x[26]); 123 f50 = MUL_C(COEF_CONST((-0.6666556584777469)), x[26]);
125 f51 = f48 + f49; 124 f51 = f48 + f49;
126 f52 = f50 - f49; 125 f52 = f50 - f49;
127 f53 = x[10] + x[22]; 126 f53 = x[10] + x[22];
128 f54 = MUL_C_R(COEF_CONST(1.3533180011743526), x[10]); 127 f54 = MUL_C(COEF_CONST(1.3533180011743526), x[10]);
129 f55 = MUL_C_R(COEF_CONST((-0.8819212643483551)), f53); 128 f55 = MUL_C(COEF_CONST((-0.8819212643483551)), f53);
130 f56 = MUL_C_R(COEF_CONST((-0.4105245275223575)), x[22]); 129 f56 = MUL_C(COEF_CONST((-0.4105245275223575)), x[22]);
131 f57 = f54 + f55; 130 f57 = f54 + f55;
132 f58 = f56 - f55; 131 f58 = f56 - f55;
133 f59 = x[14] + x[18]; 132 f59 = x[14] + x[18];
134 f60 = MUL_C_R(COEF_CONST(1.4074037375263826), x[14]); 133 f60 = MUL_C(COEF_CONST(1.4074037375263826), x[14]);
135 f61 = MUL_C_R(COEF_CONST((-0.7730104533627369)), f59); 134 f61 = MUL_C(COEF_CONST((-0.7730104533627369)), f59);
136 f62 = MUL_C_R(COEF_CONST((-0.1386171691990913)), x[18]); 135 f62 = MUL_C(COEF_CONST((-0.1386171691990913)), x[18]);
137 f63 = f60 + f61; 136 f63 = f60 + f61;
138 f64 = f62 - f61; 137 f64 = f62 - f61;
139 f65 = f46 - f64; 138 f65 = f46 - f64;
140 f66 = f46 + f64; 139 f66 = f46 + f64;
141 f67 = f52 - f58; 140 f67 = f52 - f58;
142 f68 = f52 + f58; 141 f68 = f52 + f58;
143 f69 = f66 - f68; 142 f69 = f66 - f68;
144 f70 = f66 + f68; 143 f70 = f66 + f68;
145 f71 = MUL_C_R(COEF_CONST(0.7071067811865476), f69); 144 f71 = MUL_C(COEF_CONST(0.7071067811865476), f69);
146 f72 = f65 + f67; 145 f72 = f65 + f67;
147 f73 = MUL_C_R(COEF_CONST(1.3065629648763766), f65); 146 f73 = MUL_C(COEF_CONST(1.3065629648763766), f65);
148 f74 = MUL_C_R(COEF_CONST((-0.9238795325112866)), f72); 147 f74 = MUL_C(COEF_CONST((-0.9238795325112866)), f72);
149 f75 = MUL_C_R(COEF_CONST((-0.5411961001461967)), f67); 148 f75 = MUL_C(COEF_CONST((-0.5411961001461967)), f67);
150 f76 = f73 + f74; 149 f76 = f73 + f74;
151 f77 = f75 - f74; 150 f77 = f75 - f74;
152 f78 = f45 - f63; 151 f78 = f45 - f63;
153 f79 = f45 + f63; 152 f79 = f45 + f63;
154 f80 = f51 - f57; 153 f80 = f51 - f57;
155 f81 = f51 + f57; 154 f81 = f51 + f57;
156 f82 = f79 + f81; 155 f82 = f79 + f81;
157 f83 = MUL_C_R(COEF_CONST(1.3065629648763770), f79); 156 f83 = MUL_C(COEF_CONST(1.3065629648763770), f79);
158 f84 = MUL_C_R(COEF_CONST((-0.3826834323650904)), f82); 157 f84 = MUL_C(COEF_CONST((-0.3826834323650904)), f82);
159 f85 = MUL_C_R(COEF_CONST(0.5411961001461961), f81); 158 f85 = MUL_C(COEF_CONST(0.5411961001461961), f81);
160 f86 = f83 + f84; 159 f86 = f83 + f84;
161 f87 = f85 - f84; 160 f87 = f85 - f84;
162 f88 = f78 - f80; 161 f88 = f78 - f80;
163 f89 = f78 + f80; 162 f89 = f78 + f80;
164 f90 = MUL_C_R(COEF_CONST(0.7071067811865476), f89); 163 f90 = MUL_C(COEF_CONST(0.7071067811865476), f89);
165 f91 = f77 - f87; 164 f91 = f77 - f87;
166 f92 = f77 + f87; 165 f92 = f77 + f87;
167 f93 = f71 - f90; 166 f93 = f71 - f90;
168 f94 = f71 + f90; 167 f94 = f71 + f90;
169 f95 = f76 - f86; 168 f95 = f76 - f86;
183 f109 = f35 - f95; 182 f109 = f35 - f95;
184 f110 = f35 + f95; 183 f110 = f35 + f95;
185 f111 = f33 - f88; 184 f111 = f33 - f88;
186 f112 = f33 + f88; 185 f112 = f33 + f88;
187 f113 = x[1] + x[31]; 186 f113 = x[1] + x[31];
188 f114 = MUL_C_R(COEF_CONST(1.0478631305325901), x[1]); 187 f114 = MUL_C(COEF_CONST(1.0478631305325901), x[1]);
189 f115 = MUL_C_R(COEF_CONST((-0.9987954562051724)), f113); 188 f115 = MUL_C(COEF_CONST((-0.9987954562051724)), f113);
190 f116 = MUL_C_R(COEF_CONST((-0.9497277818777548)), x[31]); 189 f116 = MUL_C(COEF_CONST((-0.9497277818777548)), x[31]);
191 f117 = f114 + f115; 190 f117 = f114 + f115;
192 f118 = f116 - f115; 191 f118 = f116 - f115;
193 f119 = x[5] + x[27]; 192 f119 = x[5] + x[27];
194 f120 = MUL_C_R(COEF_CONST(1.2130114330978077), x[5]); 193 f120 = MUL_C(COEF_CONST(1.2130114330978077), x[5]);
195 f121 = MUL_C_R(COEF_CONST((-0.9700312531945440)), f119); 194 f121 = MUL_C(COEF_CONST((-0.9700312531945440)), f119);
196 f122 = MUL_C_R(COEF_CONST((-0.7270510732912803)), x[27]); 195 f122 = MUL_C(COEF_CONST((-0.7270510732912803)), x[27]);
197 f123 = f120 + f121; 196 f123 = f120 + f121;
198 f124 = f122 - f121; 197 f124 = f122 - f121;
199 f125 = x[9] + x[23]; 198 f125 = x[9] + x[23];
200 f126 = MUL_C_R(COEF_CONST(1.3315443865537255), x[9]); 199 f126 = MUL_C(COEF_CONST(1.3315443865537255), x[9]);
201 f127 = MUL_C_R(COEF_CONST((-0.9039892931234433)), f125); 200 f127 = MUL_C(COEF_CONST((-0.9039892931234433)), f125);
202 f128 = MUL_C_R(COEF_CONST((-0.4764341996931612)), x[23]); 201 f128 = MUL_C(COEF_CONST((-0.4764341996931612)), x[23]);
203 f129 = f126 + f127; 202 f129 = f126 + f127;
204 f130 = f128 - f127; 203 f130 = f128 - f127;
205 f131 = x[13] + x[19]; 204 f131 = x[13] + x[19];
206 f132 = MUL_C_R(COEF_CONST(1.3989068359730781), x[13]); 205 f132 = MUL_C(COEF_CONST(1.3989068359730781), x[13]);
207 f133 = MUL_C_R(COEF_CONST((-0.8032075314806453)), f131); 206 f133 = MUL_C(COEF_CONST((-0.8032075314806453)), f131);
208 f134 = MUL_C_R(COEF_CONST((-0.2075082269882124)), x[19]); 207 f134 = MUL_C(COEF_CONST((-0.2075082269882124)), x[19]);
209 f135 = f132 + f133; 208 f135 = f132 + f133;
210 f136 = f134 - f133; 209 f136 = f134 - f133;
211 f137 = x[17] + x[15]; 210 f137 = x[17] + x[15];
212 f138 = MUL_C_R(COEF_CONST(1.4125100802019777), x[17]); 211 f138 = MUL_C(COEF_CONST(1.4125100802019777), x[17]);
213 f139 = MUL_C_R(COEF_CONST((-0.6715589548470187)), f137); 212 f139 = MUL_C(COEF_CONST((-0.6715589548470187)), f137);
214 f140 = MUL_C_R(COEF_CONST(0.0693921705079402), x[15]); 213 f140 = MUL_C(COEF_CONST(0.0693921705079402), x[15]);
215 f141 = f138 + f139; 214 f141 = f138 + f139;
216 f142 = f140 - f139; 215 f142 = f140 - f139;
217 f143 = x[21] + x[11]; 216 f143 = x[21] + x[11];
218 f144 = MUL_C_R(COEF_CONST(1.3718313541934939), x[21]); 217 f144 = MUL_C(COEF_CONST(1.3718313541934939), x[21]);
219 f145 = MUL_C_R(COEF_CONST((-0.5141027441932219)), f143); 218 f145 = MUL_C(COEF_CONST((-0.5141027441932219)), f143);
220 f146 = MUL_C_R(COEF_CONST(0.3436258658070501), x[11]); 219 f146 = MUL_C(COEF_CONST(0.3436258658070501), x[11]);
221 f147 = f144 + f145; 220 f147 = f144 + f145;
222 f148 = f146 - f145; 221 f148 = f146 - f145;
223 f149 = x[25] + x[7]; 222 f149 = x[25] + x[7];
224 f150 = MUL_C_R(COEF_CONST(1.2784339185752409), x[25]); 223 f150 = MUL_C(COEF_CONST(1.2784339185752409), x[25]);
225 f151 = MUL_C_R(COEF_CONST((-0.3368898533922200)), f149); 224 f151 = MUL_C(COEF_CONST((-0.3368898533922200)), f149);
226 f152 = MUL_C_R(COEF_CONST(0.6046542117908008), x[7]); 225 f152 = MUL_C(COEF_CONST(0.6046542117908008), x[7]);
227 f153 = f150 + f151; 226 f153 = f150 + f151;
228 f154 = f152 - f151; 227 f154 = f152 - f151;
229 f155 = x[29] + x[3]; 228 f155 = x[29] + x[3];
230 f156 = MUL_C_R(COEF_CONST(1.1359069844201433), x[29]); 229 f156 = MUL_C(COEF_CONST(1.1359069844201433), x[29]);
231 f157 = MUL_C_R(COEF_CONST((-0.1467304744553624)), f155); 230 f157 = MUL_C(COEF_CONST((-0.1467304744553624)), f155);
232 f158 = MUL_C_R(COEF_CONST(0.8424460355094185), x[3]); 231 f158 = MUL_C(COEF_CONST(0.8424460355094185), x[3]);
233 f159 = f156 + f157; 232 f159 = f156 + f157;
234 f160 = f158 - f157; 233 f160 = f158 - f157;
235 f161 = f118 - f142; 234 f161 = f118 - f142;
236 f162 = f118 + f142; 235 f162 = f118 + f142;
237 f163 = f117 - f141; 236 f163 = f117 - f141;
247 f173 = f136 - f160; 246 f173 = f136 - f160;
248 f174 = f136 + f160; 247 f174 = f136 + f160;
249 f175 = f135 - f159; 248 f175 = f135 - f159;
250 f176 = f135 + f159; 249 f176 = f135 + f159;
251 f177 = f161 + f163; 250 f177 = f161 + f163;
252 f178 = MUL_C_R(COEF_CONST(1.1758756024193588), f161); 251 f178 = MUL_C(COEF_CONST(1.1758756024193588), f161);
253 f179 = MUL_C_R(COEF_CONST((-0.9807852804032304)), f177); 252 f179 = MUL_C(COEF_CONST((-0.9807852804032304)), f177);
254 f180 = MUL_C_R(COEF_CONST((-0.7856949583871021)), f163); 253 f180 = MUL_C(COEF_CONST((-0.7856949583871021)), f163);
255 f181 = f178 + f179; 254 f181 = f178 + f179;
256 f182 = f180 - f179; 255 f182 = f180 - f179;
257 f183 = f165 + f167; 256 f183 = f165 + f167;
258 f184 = MUL_C_R(COEF_CONST(1.3870398453221475), f165); 257 f184 = MUL_C(COEF_CONST(1.3870398453221475), f165);
259 f185 = MUL_C_R(COEF_CONST((-0.5555702330196022)), f183); 258 f185 = MUL_C(COEF_CONST((-0.5555702330196022)), f183);
260 f186 = MUL_C_R(COEF_CONST(0.2758993792829431), f167); 259 f186 = MUL_C(COEF_CONST(0.2758993792829431), f167);
261 f187 = f184 + f185; 260 f187 = f184 + f185;
262 f188 = f186 - f185; 261 f188 = f186 - f185;
263 f189 = f169 + f171; 262 f189 = f169 + f171;
264 f190 = MUL_C_R(COEF_CONST(0.7856949583871022), f169); 263 f190 = MUL_C(COEF_CONST(0.7856949583871022), f169);
265 f191 = MUL_C_R(COEF_CONST(0.1950903220161283), f189); 264 f191 = MUL_C(COEF_CONST(0.1950903220161283), f189);
266 f192 = MUL_C_R(COEF_CONST(1.1758756024193586), f171); 265 f192 = MUL_C(COEF_CONST(1.1758756024193586), f171);
267 f193 = f190 + f191; 266 f193 = f190 + f191;
268 f194 = f192 - f191; 267 f194 = f192 - f191;
269 f195 = f173 + f175; 268 f195 = f173 + f175;
270 f196 = MUL_C_R(COEF_CONST((-0.2758993792829430)), f173); 269 f196 = MUL_C(COEF_CONST((-0.2758993792829430)), f173);
271 f197 = MUL_C_R(COEF_CONST(0.8314696123025452), f195); 270 f197 = MUL_C(COEF_CONST(0.8314696123025452), f195);
272 f198 = MUL_C_R(COEF_CONST(1.3870398453221475), f175); 271 f198 = MUL_C(COEF_CONST(1.3870398453221475), f175);
273 f199 = f196 + f197; 272 f199 = f196 + f197;
274 f200 = f198 - f197; 273 f200 = f198 - f197;
275 f201 = f162 - f170; 274 f201 = f162 - f170;
276 f202 = f162 + f170; 275 f202 = f162 + f170;
277 f203 = f164 - f172; 276 f203 = f164 - f172;
287 f213 = f188 - f200; 286 f213 = f188 - f200;
288 f214 = f188 + f200; 287 f214 = f188 + f200;
289 f215 = f187 - f199; 288 f215 = f187 - f199;
290 f216 = f187 + f199; 289 f216 = f187 + f199;
291 f217 = f201 + f203; 290 f217 = f201 + f203;
292 f218 = MUL_C_R(COEF_CONST(1.3065629648763766), f201); 291 f218 = MUL_C(COEF_CONST(1.3065629648763766), f201);
293 f219 = MUL_C_R(COEF_CONST((-0.9238795325112866)), f217); 292 f219 = MUL_C(COEF_CONST((-0.9238795325112866)), f217);
294 f220 = MUL_C_R(COEF_CONST((-0.5411961001461967)), f203); 293 f220 = MUL_C(COEF_CONST((-0.5411961001461967)), f203);
295 f221 = f218 + f219; 294 f221 = f218 + f219;
296 f222 = f220 - f219; 295 f222 = f220 - f219;
297 f223 = f205 + f207; 296 f223 = f205 + f207;
298 f224 = MUL_C_R(COEF_CONST(0.5411961001461969), f205); 297 f224 = MUL_C(COEF_CONST(0.5411961001461969), f205);
299 f225 = MUL_C_R(COEF_CONST(0.3826834323650898), f223); 298 f225 = MUL_C(COEF_CONST(0.3826834323650898), f223);
300 f226 = MUL_C_R(COEF_CONST(1.3065629648763766), f207); 299 f226 = MUL_C(COEF_CONST(1.3065629648763766), f207);
301 f227 = f224 + f225; 300 f227 = f224 + f225;
302 f228 = f226 - f225; 301 f228 = f226 - f225;
303 f229 = f209 + f211; 302 f229 = f209 + f211;
304 f230 = MUL_C_R(COEF_CONST(1.3065629648763766), f209); 303 f230 = MUL_C(COEF_CONST(1.3065629648763766), f209);
305 f231 = MUL_C_R(COEF_CONST((-0.9238795325112866)), f229); 304 f231 = MUL_C(COEF_CONST((-0.9238795325112866)), f229);
306 f232 = MUL_C_R(COEF_CONST((-0.5411961001461967)), f211); 305 f232 = MUL_C(COEF_CONST((-0.5411961001461967)), f211);
307 f233 = f230 + f231; 306 f233 = f230 + f231;
308 f234 = f232 - f231; 307 f234 = f232 - f231;
309 f235 = f213 + f215; 308 f235 = f213 + f215;
310 f236 = MUL_C_R(COEF_CONST(0.5411961001461969), f213); 309 f236 = MUL_C(COEF_CONST(0.5411961001461969), f213);
311 f237 = MUL_C_R(COEF_CONST(0.3826834323650898), f235); 310 f237 = MUL_C(COEF_CONST(0.3826834323650898), f235);
312 f238 = MUL_C_R(COEF_CONST(1.3065629648763766), f215); 311 f238 = MUL_C(COEF_CONST(1.3065629648763766), f215);
313 f239 = f236 + f237; 312 f239 = f236 + f237;
314 f240 = f238 - f237; 313 f240 = f238 - f237;
315 f241 = f202 - f206; 314 f241 = f202 - f206;
316 f242 = f202 + f206; 315 f242 = f202 + f206;
317 f243 = f204 - f208; 316 f243 = f204 - f208;
328 f254 = f234 + f240; 327 f254 = f234 + f240;
329 f255 = f233 - f239; 328 f255 = f233 - f239;
330 f256 = f233 + f239; 329 f256 = f233 + f239;
331 f257 = f241 - f243; 330 f257 = f241 - f243;
332 f258 = f241 + f243; 331 f258 = f241 + f243;
333 f259 = MUL_C_R(COEF_CONST(0.7071067811865474), f257); 332 f259 = MUL_C(COEF_CONST(0.7071067811865474), f257);
334 f260 = MUL_C_R(COEF_CONST(0.7071067811865474), f258); 333 f260 = MUL_C(COEF_CONST(0.7071067811865474), f258);
335 f261 = f245 - f247; 334 f261 = f245 - f247;
336 f262 = f245 + f247; 335 f262 = f245 + f247;
337 f263 = MUL_C_R(COEF_CONST(0.7071067811865474), f261); 336 f263 = MUL_C(COEF_CONST(0.7071067811865474), f261);
338 f264 = MUL_C_R(COEF_CONST(0.7071067811865474), f262); 337 f264 = MUL_C(COEF_CONST(0.7071067811865474), f262);
339 f265 = f249 - f251; 338 f265 = f249 - f251;
340 f266 = f249 + f251; 339 f266 = f249 + f251;
341 f267 = MUL_C_R(COEF_CONST(0.7071067811865474), f265); 340 f267 = MUL_C(COEF_CONST(0.7071067811865474), f265);
342 f268 = MUL_C_R(COEF_CONST(0.7071067811865474), f266); 341 f268 = MUL_C(COEF_CONST(0.7071067811865474), f266);
343 f269 = f253 - f255; 342 f269 = f253 - f255;
344 f270 = f253 + f255; 343 f270 = f253 + f255;
345 f271 = MUL_C_R(COEF_CONST(0.7071067811865474), f269); 344 f271 = MUL_C(COEF_CONST(0.7071067811865474), f269);
346 f272 = MUL_C_R(COEF_CONST(0.7071067811865474), f270); 345 f272 = MUL_C(COEF_CONST(0.7071067811865474), f270);
347 y[31] = f98 - f242; 346 y[31] = f98 - f242;
348 y[0] = f98 + f242; 347 y[0] = f98 + f242;
349 y[30] = f100 - f250; 348 y[30] = f100 - f250;
350 y[1] = f100 + f250; 349 y[1] = f100 + f250;
351 y[29] = f102 - f254; 350 y[29] = f102 - f254;
386 real_t f21, f22, f23, f24, f25, f26, f27, f28, f29, f30; 385 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; 386 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; 387 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; 388 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; 389 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; 390 real_t f75, f76, f77, f78, f79, f80, f81, f82, f83, f85;
392 real_t f87, f88, f91, f92, f93, f94, f95, f96, f97, f98; 391 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; 392 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; 393 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; 394 real_t f119, f120, f121, f122, f123, f124, f125, f126, f129, f130;
396 real_t f129, f130, f133, f134, f135, f136, f139, f140, f141, f142; 395 real_t f131, f132, f135, f136, f137, f138, f141, f142, f143, f144;
397 real_t f145, f146, f147, f148, f151, f152, f153, f154, f155, f156; 396 real_t f147, f148, f149, f150, f151, f152, f153, f154, f155, f156;
398 real_t f157, f158, f159, f160, f161, f162, f163, f164, f165, f166; 397 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; 398 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; 399 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; 400 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; 401 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; 402 real_t f207, f208, f209, f210, f211, f212, f213, f214, f215, f216;
404 real_t f218, f219, f220, f221, f222, f223, f224, f225, f226, f227; 403 real_t f217, f218, f219, f220, f221, f222, f223, f224, f225, f226;
405 real_t f228, f229, f230, f231, f232, f233, f234, f235, f236, f237; 404 real_t f227, f228, f229, f230, f231, f232, f233, f234, f235, f236;
406 real_t f238, f239, f240, f241, f242, f243, f244, f245, f246, f247; 405 real_t f237, f238, f239, f240, f241, f242, f243, f244, f245, f246;
407 real_t f248, f249, f250, f251, f252, f253, f254, f255, f256, f257; 406 real_t f247, f248, f249, f250, f251, f252, f253, f254, f255, f256;
408 real_t f258, f259, f260, f261, f262, f263, f264, f265, f266, f267; 407 real_t f257, f258, f259, f260, f261, f262, f265, f266, f267, f268;
409 real_t f268, f269, f270, f271, f272, f273, f274, f275, f276, f277; 408 real_t f271, f272, f273, f274, f277, f278, f279, f280, f283, f284;
410 real_t f279, f280, f295, f296, f297, f298, f299, f300, f301, f302; 409 real_t f285, f286, f289, f290, f291, f292, f295, f296, f297, f298;
411 real_t f303, f304, f305, f306, f307, f308, f309, f310, f311, f312; 410 real_t f301, f302, f303, f304, f307, f308, f309, f310, f311, f312;
412 real_t f313, f314, f315, f316, f317, f318, f319, f320, f321, f322; 411 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; 412 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; 413 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; 414 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; 415 real_t f353, f354, f355, f356, f357, f358, f359, f360, f361, f362;
418 real_t f373, f374, f375, f376, f377, f378, f379, f380, f381, f382; 417 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; 418 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; 419 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; 420 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; 421 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; 422 real_t f423, f424, f425, f426, f427, f428, f429, f430, f431, f433;
424 real_t f433, f434, f435, f436, f437, f438, f439, f440, f441, f442; 423 real_t f434, f435, f436, f437, f438, f439, f440, f441, f442, f443;
425 real_t f443, f444, f445, f446, f447, f448, f449, f450, f451, f452; 424 real_t f444, f445, f446, f447, f448, f449, f450, f451, f452, f453;
426 real_t f453, f454, f455, f456, f457, f458, f459, f460, f461, f462; 425 real_t f454, f455, f456, f457, f458, f459, f460, f461, f462, f463;
427 real_t f463, f464, f465, f466, f467, f468, f469, f470, f471, f472; 426 real_t f464, f465, f466, f467, f468, f469, f470, f471, f472, f473;
428 real_t f473, f474, f475, f476, f477, f478, f479, f480, f481, f482; 427 real_t f474, f475, f476, f477, f478, f479, f480, f481, f482, f483;
429 real_t f483, f484, f485, f486, f487, f488, f489, f490, f491, f492; 428 real_t f484, f485, f486, f487, f488, f489, f490, f491, f492, f493;
430 real_t f493, f494, f495, f496, f497, f498, f499, f500, f501, f502; 429 real_t f494, f495, f496, f497, f498, f499, f500, f501, f502, f503;
431 real_t f503, f504, f505, f506, f507, f508, f509, f510, f511, f512; 430 real_t f504, f505, f506, f507, f508, f509, f510, f511, f512, f513;
432 real_t f513, f514, f515, f516, f517, f518, f519, f520, f521, f522; 431 real_t f514, f515, f516, f517, f518, f519, f520, f521, f522, f523;
433 real_t f523, f524, f525, f526, f527, f528, f529, f530, f531, f532; 432 real_t f524, f525, f526, f527, f528, f529, f530, f531, f532, f533;
434 real_t f533, f534, f535, f536, f537, f538, f539, f540, f541, f542; 433 real_t f534, f535, f536, f537, f538, f539, f540, f541, f542, f543;
435 real_t f543, f544, f545, f546, f547, f548, f549, f550, f551, f552; 434 real_t f544, f546, f547, f548, f549, f550, f551, f552, f553, f554;
436 real_t f553, f554, f557, f558, f559, f560, f563, f564, f565, f566; 435 real_t f555, f556, f557, f558, f559, f560, f561, f562, f563, f564;
437 real_t f569, f570, f571, f572, f575, f576, f577, f578, f581, f582; 436 real_t f565, f566, f567, f568, f569, f570, f571, f572, f573, f574;
438 real_t f583, f584, f587, f588, f589, f590, f593, f594, f595, f596; 437 real_t f575, f576, f577, f578, f579, f580, f581, f582, f583, f584;
439 real_t f599, f600, f601, f602, f605, f606, f607, f608, f611, f612; 438 real_t f585, f586, f587, f588, f589, f590, f591, f592, f593, f594;
440 real_t f613, f614, f617, f618, f619, f620, f623, f624, f625, f626; 439 real_t f595, f596, f597, f598, f599, f600, f601, f602, f603, f604;
441 real_t f629, f630, f631, f632, f635, f636, f637, f638, f641, f642; 440 real_t f605, f606, f607, f608, f609, f610, f611, f612, f613, f614;
442 real_t f643, f644; 441 real_t f615, f616, f617, f618, f619, f620, f621, f622, f623, f624;
443 static real_t t2[64]; 442 real_t f625, f626, f627, f628;
443 ALIGN static real_t t2[64];
444 444
445 for (i0=0; i0<32; i0++) 445 for (i0=0; i0<32; i0++)
446 { 446 {
447 t2[2*i0+1] = x[i0] - x[-i0+63]; 447 t2[2*i0+1] = x[i0] - x[-i0+63];
448 t2[2*i0] = x[i0] + x[-i0+63]; 448 t2[2*i0] = x[i0] + x[-i0+63];
507 f59 = f51 + f57; 507 f59 = f51 + f57;
508 f60 = f53 - f55; 508 f60 = f53 - f55;
509 f61 = f53 + f55; 509 f61 = f53 + f55;
510 f62 = f59 - f61; 510 f62 = f59 - f61;
511 y[0] = f59 + f61; 511 y[0] = f59 + f61;
512 y[32] = MUL_C_R(COEF_CONST(0.7071067811865476), f62); 512 y[32] = MUL_C(COEF_CONST(0.7071067811865476), f62);
513 f65 = f58 + f60; 513 f65 = f58 + f60;
514 f66 = MUL_C_R(COEF_CONST(1.3065629648763766), f58); 514 f66 = MUL_C(COEF_CONST(1.3065629648763766), f58);
515 f67 = MUL_C_R(COEF_CONST((-0.9238795325112866)), f65); 515 f67 = MUL_C(COEF_CONST((-0.9238795325112866)), f65);
516 f68 = MUL_C_R(COEF_CONST((-0.5411961001461967)), f60); 516 f68 = MUL_C(COEF_CONST((-0.5411961001461967)), f60);
517 y[48] = f66 + f67; 517 y[48] = f66 + f67;
518 y[16] = f68 - f67; 518 y[16] = f68 - f67;
519 f71 = f52 - f54; 519 f71 = f50 + f56;
520 f72 = f52 + f54; 520 f72 = MUL_C(COEF_CONST(1.1758756024193588), f50);
521 f73 = MUL_C_R(COEF_CONST(0.7071067811865476), f72); 521 f73 = MUL_C(COEF_CONST((-0.9807852804032304)), f71);
522 f74 = MUL_C_R(COEF_CONST(0.7071067811865476), f71); 522 f74 = MUL_C(COEF_CONST((-0.7856949583871021)), f56);
523 f75 = f50 - f73; 523 f75 = f72 + f73;
524 f76 = f50 + f73; 524 f76 = f74 - f73;
525 f77 = f56 - f74; 525 f77 = f52 + f54;
526 f78 = f56 + f74; 526 f78 = MUL_C(COEF_CONST(1.3870398453221473), f52);
527 f79 = f78 + f76; 527 f79 = MUL_C(COEF_CONST((-0.8314696123025455)), f77);
528 f80 = MUL_C_R(COEF_CONST((-0.7856949583871021)), f78); 528 f80 = MUL_C(COEF_CONST((-0.2758993792829436)), f54);
529 f81 = MUL_C_R(COEF_CONST(0.9807852804032304), f79); 529 f81 = f78 + f79;
530 f82 = MUL_C_R(COEF_CONST(1.1758756024193588), f76); 530 f82 = f80 - f79;
531 y[8] = f80 + f81; 531 f83 = f76 - f82;
532 y[56] = f82 - f81; 532 y[8] = f76 + f82;
533 f85 = f77 + f75; 533 f85 = MUL_C(COEF_CONST(0.7071067811865476), f83);
534 f86 = MUL_C_R(COEF_CONST(0.2758993792829431), f77); 534 y[56] = f75 - f81;
535 f87 = MUL_C_R(COEF_CONST(0.5555702330196022), f85); 535 f87 = f75 + f81;
536 f88 = MUL_C_R(COEF_CONST(1.3870398453221475), f75); 536 f88 = MUL_C(COEF_CONST(0.7071067811865476), f87);
537 y[40] = f86 + f87; 537 y[40] = f85 - f88;
538 y[24] = f88 - f87; 538 y[24] = f85 + f88;
539 f91 = f40 - f42; 539 f91 = f36 - f38;
540 f92 = f40 + f42; 540 f92 = f36 + f38;
541 f93 = MUL_C_R(COEF_CONST(0.7071067811865476), f92); 541 f93 = f40 - f42;
542 f94 = MUL_C_R(COEF_CONST(0.7071067811865476), f91); 542 f94 = f40 + f42;
543 f95 = f38 - f44; 543 f95 = f44 - f46;
544 f96 = f38 + f44; 544 f96 = f44 + f46;
545 f97 = MUL_C_R(COEF_CONST(0.7071067811865476), f96); 545 f97 = MUL_C(COEF_CONST(0.7071067811865476), f94);
546 f98 = MUL_C_R(COEF_CONST(0.7071067811865476), f95); 546 f98 = f34 - f97;
547 f99 = f34 - f93; 547 f99 = f34 + f97;
548 f100 = f34 + f93; 548 f100 = f92 + f96;
549 f101 = f48 - f94; 549 f101 = MUL_C(COEF_CONST(1.3065629648763766), f92);
550 f102 = f48 + f94; 550 f102 = MUL_C(COEF_CONST((-0.9238795325112866)), f100);
551 f103 = f36 - f97; 551 f103 = MUL_C(COEF_CONST((-0.5411961001461967)), f96);
552 f104 = f36 + f97; 552 f104 = f101 + f102;
553 f105 = f46 - f98; 553 f105 = f103 - f102;
554 f106 = f46 + f98; 554 f106 = f99 - f105;
555 f107 = f106 + f104; 555 f107 = f99 + f105;
556 f108 = MUL_C_R(COEF_CONST((-0.5411961001461969)), f106); 556 f108 = f98 - f104;
557 f109 = MUL_C_R(COEF_CONST(0.9238795325112867), f107); 557 f109 = f98 + f104;
558 f110 = MUL_C_R(COEF_CONST(1.3065629648763766), f104); 558 f110 = f91 + f95;
559 f111 = f108 + f109; 559 f111 = MUL_C(COEF_CONST(1.3065629648763770), f91);
560 f112 = f110 - f109; 560 f112 = MUL_C(COEF_CONST((-0.3826834323650904)), f110);
561 f113 = f105 + f103; 561 f113 = MUL_C(COEF_CONST(0.5411961001461961), f95);
562 f114 = MUL_C_R(COEF_CONST(1.3065629648763770), f105); 562 f114 = f111 + f112;
563 f115 = MUL_C_R(COEF_CONST((-0.3826834323650904)), f113); 563 f115 = f113 - f112;
564 f116 = MUL_C_R(COEF_CONST(0.5411961001461961), f103); 564 f116 = MUL_C(COEF_CONST(0.7071067811865476), f93);
565 f117 = f114 + f115; 565 f117 = f116 - f48;
566 f118 = f116 - f115; 566 f118 = f116 + f48;
567 f119 = f100 - f111; 567 f119 = f115 - f118;
568 f120 = f100 + f111; 568 f120 = f115 + f118;
569 f121 = f102 - f112; 569 f121 = f114 - f117;
570 f122 = f102 + f112; 570 f122 = f114 + f117;
571 f123 = f99 - f117; 571 f123 = f120 + f107;
572 f124 = f99 + f117; 572 f124 = MUL_C(COEF_CONST((-0.8971675863426361)), f120);
573 f125 = f101 - f118; 573 f125 = MUL_C(COEF_CONST(0.9951847266721968), f123);
574 f126 = f101 + f118; 574 f126 = MUL_C(COEF_CONST(1.0932018670017576), f107);
575 f127 = f122 + f120; 575 y[4] = f124 + f125;
576 f128 = MUL_C_R(COEF_CONST((-0.8971675863426361)), f122); 576 y[60] = f126 - f125;
577 f129 = MUL_C_R(COEF_CONST(0.9951847266721968), f127); 577 f129 = f122 + f109;
578 f130 = MUL_C_R(COEF_CONST(1.0932018670017576), f120); 578 f130 = MUL_C(COEF_CONST((-0.6666556584777466)), f122);
579 y[4] = f128 + f129; 579 f131 = MUL_C(COEF_CONST(0.9569403357322089), f129);
580 y[60] = f130 - f129; 580 f132 = MUL_C(COEF_CONST(1.2472250129866713), f109);
581 f133 = f126 + f124; 581 y[12] = f130 + f131;
582 f134 = MUL_C_R(COEF_CONST((-0.4105245275223571)), f126); 582 y[52] = f132 - f131;
583 f135 = MUL_C_R(COEF_CONST(0.8819212643483549), f133); 583 f135 = f121 + f108;
584 f136 = MUL_C_R(COEF_CONST(1.3533180011743529), f124); 584 f136 = MUL_C(COEF_CONST((-0.4105245275223571)), f121);
585 y[20] = f134 + f135; 585 f137 = MUL_C(COEF_CONST(0.8819212643483549), f135);
586 y[44] = f136 - f135; 586 f138 = MUL_C(COEF_CONST(1.3533180011743529), f108);
587 f139 = f121 + f119; 587 y[20] = f136 + f137;
588 f140 = MUL_C_R(COEF_CONST(0.1386171691990915), f121); 588 y[44] = f138 - f137;
589 f141 = MUL_C_R(COEF_CONST(0.6343932841636455), f139); 589 f141 = f119 + f106;
590 f142 = MUL_C_R(COEF_CONST(1.4074037375263826), f119); 590 f142 = MUL_C(COEF_CONST((-0.1386171691990915)), f119);
591 y[36] = f140 + f141; 591 f143 = MUL_C(COEF_CONST(0.7730104533627370), f141);
592 y[28] = f142 - f141; 592 f144 = MUL_C(COEF_CONST(1.4074037375263826), f106);
593 f145 = f125 + f123; 593 y[28] = f142 + f143;
594 f146 = MUL_C_R(COEF_CONST(0.6666556584777466), f125); 594 y[36] = f144 - f143;
595 f147 = MUL_C_R(COEF_CONST(0.2902846772544623), f145); 595 f147 = f16 - f18;
596 f148 = MUL_C_R(COEF_CONST(1.2472250129866711), f123); 596 f148 = f16 + f18;
597 y[52] = f146 + f147; 597 f149 = MUL_C(COEF_CONST(0.7071067811865476), f148);
598 y[12] = f148 - f147; 598 f150 = MUL_C(COEF_CONST(0.7071067811865476), f147);
599 f151 = f2 + f32; 599 f151 = f10 - f24;
600 f152 = MUL_C_R(COEF_CONST(1.0478631305325901), f2); 600 f152 = f10 + f24;
601 f153 = MUL_C_R(COEF_CONST((-0.9987954562051724)), f151); 601 f153 = MUL_C(COEF_CONST(0.7071067811865476), f152);
602 f154 = MUL_C_R(COEF_CONST((-0.9497277818777548)), f32); 602 f154 = MUL_C(COEF_CONST(0.7071067811865476), f151);
603 f155 = f152 + f153; 603 f155 = f14 - f20;
604 f156 = f154 - f153; 604 f156 = f14 + f20;
605 f157 = f4 + f30; 605 f157 = MUL_C(COEF_CONST(0.7071067811865476), f156);
606 f158 = MUL_C_R(COEF_CONST(1.1359069844201428), f4); 606 f158 = MUL_C(COEF_CONST(0.7071067811865476), f155);
607 f159 = MUL_C_R(COEF_CONST((-0.9891765099647809)), f157); 607 f159 = f12 - f22;
608 f160 = MUL_C_R(COEF_CONST((-0.8424460355094190)), f30); 608 f160 = f12 + f22;
609 f161 = f158 + f159; 609 f161 = MUL_C(COEF_CONST(0.7071067811865476), f160);
610 f162 = f160 - f159; 610 f162 = MUL_C(COEF_CONST(0.7071067811865476), f159);
611 f163 = f6 + f28; 611 f163 = f2 - f149;
612 f164 = MUL_C_R(COEF_CONST(1.2130114330978077), f6); 612 f164 = f2 + f149;
613 f165 = MUL_C_R(COEF_CONST((-0.9700312531945440)), f163); 613 f165 = f32 - f150;
614 f166 = MUL_C_R(COEF_CONST((-0.7270510732912803)), f28); 614 f166 = f32 + f150;
615 f167 = f164 + f165; 615 f167 = f8 - f153;
616 f168 = f166 - f165; 616 f168 = f8 + f153;
617 f169 = f8 + f26; 617 f169 = f26 - f154;
618 f170 = MUL_C_R(COEF_CONST(1.2784339185752405), f8); 618 f170 = f26 + f154;
619 f171 = MUL_C_R(COEF_CONST((-0.9415440651830209)), f169); 619 f171 = f4 - f157;
620 f172 = MUL_C_R(COEF_CONST((-0.6046542117908014)), f26); 620 f172 = f4 + f157;
621 f173 = f170 + f171; 621 f173 = f30 - f158;
622 f174 = f172 - f171; 622 f174 = f30 + f158;
623 f175 = f10 + f24; 623 f175 = f6 - f161;
624 f176 = MUL_C_R(COEF_CONST(1.3315443865537255), f10); 624 f176 = f6 + f161;
625 f177 = MUL_C_R(COEF_CONST((-0.9039892931234433)), f175); 625 f177 = f28 - f162;
626 f178 = MUL_C_R(COEF_CONST((-0.4764341996931612)), f24); 626 f178 = f28 + f162;
627 f179 = f176 + f177; 627 f179 = f170 + f168;
628 f180 = f178 - f177; 628 f180 = MUL_C(COEF_CONST((-0.5411961001461969)), f170);
629 f181 = f12 + f22; 629 f181 = MUL_C(COEF_CONST(0.9238795325112867), f179);
630 f182 = MUL_C_R(COEF_CONST(1.3718313541934939), f12); 630 f182 = MUL_C(COEF_CONST(1.3065629648763766), f168);
631 f183 = MUL_C_R(COEF_CONST((-0.8577286100002722)), f181); 631 f183 = f180 + f181;
632 f184 = MUL_C_R(COEF_CONST((-0.3436258658070507)), f22); 632 f184 = f182 - f181;
633 f185 = f182 + f183; 633 f185 = f169 + f167;
634 f186 = f184 - f183; 634 f186 = MUL_C(COEF_CONST(1.3065629648763770), f169);
635 f187 = f14 + f20; 635 f187 = MUL_C(COEF_CONST((-0.3826834323650904)), f185);
636 f188 = MUL_C_R(COEF_CONST(1.3989068359730781), f14); 636 f188 = MUL_C(COEF_CONST(0.5411961001461961), f167);
637 f189 = MUL_C_R(COEF_CONST((-0.8032075314806453)), f187); 637 f189 = f186 + f187;
638 f190 = MUL_C_R(COEF_CONST((-0.2075082269882124)), f20); 638 f190 = f188 - f187;
639 f191 = f188 + f189; 639 f191 = f178 + f176;
640 f192 = f190 - f189; 640 f192 = MUL_C(COEF_CONST((-0.5411961001461969)), f178);
641 f193 = f16 + f18; 641 f193 = MUL_C(COEF_CONST(0.9238795325112867), f191);
642 f194 = MUL_C_R(COEF_CONST(1.4125100802019774), f16); 642 f194 = MUL_C(COEF_CONST(1.3065629648763766), f176);
643 f195 = MUL_C_R(COEF_CONST((-0.7409511253549591)), f193); 643 f195 = f192 + f193;
644 f196 = MUL_C_R(COEF_CONST((-0.0693921705079408)), f18); 644 f196 = f194 - f193;
645 f197 = f194 + f195; 645 f197 = f177 + f175;
646 f198 = f196 - f195; 646 f198 = MUL_C(COEF_CONST(1.3065629648763770), f177);
647 f199 = f156 - f198; 647 f199 = MUL_C(COEF_CONST((-0.3826834323650904)), f197);
648 f200 = f156 + f198; 648 f200 = MUL_C(COEF_CONST(0.5411961001461961), f175);
649 f201 = f162 - f192; 649 f201 = f198 + f199;
650 f202 = f162 + f192; 650 f202 = f200 - f199;
651 f203 = f168 - f186; 651 f203 = f164 - f183;
652 f204 = f168 + f186; 652 f204 = f164 + f183;
653 f205 = f174 - f180; 653 f205 = f166 - f184;
654 f206 = f174 + f180; 654 f206 = f166 + f184;
655 f207 = f200 - f206; 655 f207 = f163 - f189;
656 f208 = f200 + f206; 656 f208 = f163 + f189;
657 f209 = f202 - f204; 657 f209 = f165 - f190;
658 f210 = f202 + f204; 658 f210 = f165 + f190;
659 f211 = f208 - f210; 659 f211 = f172 - f195;
660 y[2] = f208 + f210; 660 f212 = f172 + f195;
661 f213 = MUL_C_R(COEF_CONST(0.7071067811865476), f211); 661 f213 = f174 - f196;
662 f214 = f207 + f209; 662 f214 = f174 + f196;
663 f215 = MUL_C_R(COEF_CONST(1.3065629648763766), f207); 663 f215 = f171 - f201;
664 f216 = MUL_C_R(COEF_CONST((-0.9238795325112866)), f214); 664 f216 = f171 + f201;
665 f217 = MUL_C_R(COEF_CONST((-0.5411961001461967)), f209); 665 f217 = f173 - f202;
666 f218 = f215 + f216; 666 f218 = f173 + f202;
667 f219 = f217 - f216; 667 f219 = f214 + f212;
668 f220 = f201 - f203; 668 f220 = MUL_C(COEF_CONST((-0.7856949583871021)), f214);
669 f221 = f201 + f203; 669 f221 = MUL_C(COEF_CONST(0.9807852804032304), f219);
670 f222 = MUL_C_R(COEF_CONST(0.7071067811865476), f221); 670 f222 = MUL_C(COEF_CONST(1.1758756024193588), f212);
671 f223 = MUL_C_R(COEF_CONST(0.7071067811865476), f220); 671 f223 = f220 + f221;
672 f224 = f199 - f222; 672 f224 = f222 - f221;
673 f225 = f199 + f222; 673 f225 = f218 + f216;
674 f226 = f205 - f223; 674 f226 = MUL_C(COEF_CONST(0.2758993792829431), f218);
675 f227 = f205 + f223; 675 f227 = MUL_C(COEF_CONST(0.5555702330196022), f225);
676 f228 = f227 + f225; 676 f228 = MUL_C(COEF_CONST(1.3870398453221475), f216);
677 f229 = MUL_C_R(COEF_CONST((-0.7856949583871021)), f227); 677 f229 = f226 + f227;
678 f230 = MUL_C_R(COEF_CONST(0.9807852804032304), f228); 678 f230 = f228 - f227;
679 f231 = MUL_C_R(COEF_CONST(1.1758756024193588), f225); 679 f231 = f213 + f211;
680 f232 = f229 + f230; 680 f232 = MUL_C(COEF_CONST(1.1758756024193591), f213);
681 f233 = f231 - f230; 681 f233 = MUL_C(COEF_CONST((-0.1950903220161287)), f231);
682 f234 = f226 + f224; 682 f234 = MUL_C(COEF_CONST(0.7856949583871016), f211);
683 f235 = MUL_C_R(COEF_CONST(0.2758993792829431), f226); 683 f235 = f232 + f233;
684 f236 = MUL_C_R(COEF_CONST(0.5555702330196022), f234); 684 f236 = f234 - f233;
685 f237 = MUL_C_R(COEF_CONST(1.3870398453221475), f224); 685 f237 = f217 + f215;
686 f238 = f235 + f236; 686 f238 = MUL_C(COEF_CONST(1.3870398453221473), f217);
687 f239 = f237 - f236; 687 f239 = MUL_C(COEF_CONST((-0.8314696123025455)), f237);
688 f240 = f155 - f197; 688 f240 = MUL_C(COEF_CONST((-0.2758993792829436)), f215);
689 f241 = f155 + f197; 689 f241 = f238 + f239;
690 f242 = f161 - f191; 690 f242 = f240 - f239;
691 f243 = f161 + f191; 691 f243 = f204 - f223;
692 f244 = f167 - f185; 692 f244 = f204 + f223;
693 f245 = f167 + f185; 693 f245 = f206 - f224;
694 f246 = f173 - f179; 694 f246 = f206 + f224;
695 f247 = f173 + f179; 695 f247 = f208 - f229;
696 f248 = f245 - f243; 696 f248 = f208 + f229;
697 f249 = f245 + f243; 697 f249 = f210 - f230;
698 f250 = MUL_C_R(COEF_CONST(0.7071067811865476), f249); 698 f250 = f210 + f230;
699 f251 = f247 - f250; 699 f251 = f203 - f235;
700 f252 = f247 + f250; 700 f252 = f203 + f235;
701 f253 = MUL_C_R(COEF_CONST(0.7071067811865476), f248); 701 f253 = f205 - f236;
702 f254 = f253 - f241; 702 f254 = f205 + f236;
703 f255 = f253 + f241; 703 f255 = f207 - f241;
704 f256 = f255 + f252; 704 f256 = f207 + f241;
705 f257 = MUL_C_R(COEF_CONST((-0.7856949583871021)), f255); 705 f257 = f209 - f242;
706 f258 = MUL_C_R(COEF_CONST(0.9807852804032304), f256); 706 f258 = f209 + f242;
707 f259 = MUL_C_R(COEF_CONST(1.1758756024193588), f252); 707 f259 = f246 + f244;
708 f260 = f257 + f258; 708 f260 = MUL_C(COEF_CONST((-0.9497277818777543)), f246);
709 f261 = f259 - f258; 709 f261 = MUL_C(COEF_CONST(0.9987954562051724), f259);
710 f262 = f254 + f251; 710 f262 = MUL_C(COEF_CONST(1.0478631305325905), f244);
711 f263 = MUL_C_R(COEF_CONST((-0.2758993792829430)), f254); 711 y[2] = f260 + f261;
712 f264 = MUL_C_R(COEF_CONST(0.8314696123025452), f262); 712 y[62] = f262 - f261;
713 f265 = MUL_C_R(COEF_CONST(1.3870398453221475), f251); 713 f265 = f250 + f248;
714 f266 = f263 + f264; 714 f266 = MUL_C(COEF_CONST((-0.7270510732912801)), f250);
715 f267 = f265 - f264; 715 f267 = MUL_C(COEF_CONST(0.9700312531945440), f265);
716 f268 = f240 - f246; 716 f268 = MUL_C(COEF_CONST(1.2130114330978079), f248);
717 f269 = f240 + f246; 717 y[10] = f266 + f267;
718 f270 = f242 - f244; 718 y[54] = f268 - f267;
719 f271 = f242 + f244; 719 f271 = f254 + f252;
720 f272 = f269 + f271; 720 f272 = MUL_C(COEF_CONST((-0.4764341996931611)), f254);
721 f273 = MUL_C_R(COEF_CONST(1.3065629648763770), f269); 721 f273 = MUL_C(COEF_CONST(0.9039892931234433), f271);
722 f274 = MUL_C_R(COEF_CONST((-0.3826834323650904)), f272); 722 f274 = MUL_C(COEF_CONST(1.3315443865537255), f252);
723 f275 = MUL_C_R(COEF_CONST(0.5411961001461961), f271); 723 y[18] = f272 + f273;
724 f276 = f273 + f274; 724 y[46] = f274 - f273;
725 f277 = f275 - f274; 725 f277 = f258 + f256;
726 y[62] = f268 - f270; 726 f278 = MUL_C(COEF_CONST((-0.2075082269882114)), f258);
727 f279 = f268 + f270; 727 f279 = MUL_C(COEF_CONST(0.8032075314806448), f277);
728 f280 = MUL_C_R(COEF_CONST(0.7071067811865476), f279); 728 f280 = MUL_C(COEF_CONST(1.3989068359730783), f256);
729 y[10] = f232 - f260; 729 y[26] = f278 + f279;
730 y[6] = f232 + f260; 730 y[38] = f280 - f279;
731 y[18] = f219 - f277; 731 f283 = f245 + f243;
732 y[14] = f219 + f277; 732 f284 = MUL_C(COEF_CONST(0.0693921705079408), f245);
733 y[26] = f239 + f266; 733 f285 = MUL_C(COEF_CONST(0.6715589548470183), f283);
734 y[22] = f239 - f266; 734 f286 = MUL_C(COEF_CONST(1.4125100802019774), f243);
735 y[34] = f213 - f280; 735 y[34] = f284 + f285;
736 y[30] = f213 + f280; 736 y[30] = f286 - f285;
737 y[42] = f238 - f267; 737 f289 = f249 + f247;
738 y[38] = f238 + f267; 738 f290 = MUL_C(COEF_CONST(0.3436258658070505), f249);
739 y[50] = f218 - f276; 739 f291 = MUL_C(COEF_CONST(0.5141027441932217), f289);
740 y[46] = f218 + f276; 740 f292 = MUL_C(COEF_CONST(1.3718313541934939), f247);
741 y[58] = f233 + f261; 741 y[42] = f290 + f291;
742 y[54] = f233 - f261; 742 y[22] = f292 - f291;
743 f295 = t2[3] - t2[5]; 743 f295 = f253 + f251;
744 f296 = t2[3] + t2[5]; 744 f296 = MUL_C(COEF_CONST(0.6046542117908007), f253);
745 f297 = t2[7] - t2[9]; 745 f297 = MUL_C(COEF_CONST(0.3368898533922201), f295);
746 f298 = t2[7] + t2[9]; 746 f298 = MUL_C(COEF_CONST(1.2784339185752409), f251);
747 f299 = t2[11] - t2[13]; 747 y[50] = f296 + f297;
748 f300 = t2[11] + t2[13]; 748 y[14] = f298 - f297;
749 f301 = t2[15] - t2[17]; 749 f301 = f257 + f255;
750 f302 = t2[15] + t2[17]; 750 f302 = MUL_C(COEF_CONST(0.8424460355094192), f257);
751 f303 = t2[19] - t2[21]; 751 f303 = MUL_C(COEF_CONST(0.1467304744553618), f301);
752 f304 = t2[19] + t2[21]; 752 f304 = MUL_C(COEF_CONST(1.1359069844201428), f255);
753 f305 = t2[23] - t2[25]; 753 y[58] = f302 + f303;
754 f306 = t2[23] + t2[25]; 754 y[6] = f304 - f303;
755 f307 = t2[27] - t2[29]; 755 f307 = t2[1] + t2[63];
756 f308 = t2[27] + t2[29]; 756 f308 = MUL_C(COEF_CONST(1.0242400472191162), t2[1]);
757 f309 = t2[31] - t2[33]; 757 f309 = MUL_C(COEF_CONST((-0.9996988186962043)), f307);
758 f310 = t2[31] + t2[33]; 758 f310 = MUL_C(COEF_CONST((-0.9751575901732922)), t2[63]);
759 f311 = t2[35] - t2[37]; 759 f311 = f308 + f309;
760 f312 = t2[35] + t2[37]; 760 f312 = f310 - f309;
761 f313 = t2[39] - t2[41]; 761 f313 = t2[3] + t2[61];
762 f314 = t2[39] + t2[41]; 762 f314 = MUL_C(COEF_CONST(1.0708550202783571),t2[3]);
763 f315 = t2[43] - t2[45]; 763 f315 = MUL_C(COEF_CONST((-0.9972904566786902)), f313);
764 f316 = t2[43] + t2[45]; 764 f316 = MUL_C(COEF_CONST((-0.9237258930790232)), t2[61]);
765 f317 = t2[47] - t2[49]; 765 f317 = f314 + f315;
766 f318 = t2[47] + t2[49]; 766 f318 = f316 - f315;
767 f319 = t2[51] - t2[53]; 767 f319 = t2[5] + t2[59];
768 f320 = t2[51] + t2[53]; 768 f320 = MUL_C(COEF_CONST(1.1148902097979256), t2[5]);
769 f321 = t2[55] - t2[57]; 769 f321 = MUL_C(COEF_CONST((-0.9924795345987101)), f319);
770 f322 = t2[55] + t2[57]; 770 f322 = MUL_C(COEF_CONST((-0.8700688593994945)), t2[59]);
771 f323 = t2[59] - t2[61]; 771 f323 = f320 + f321;
772 f324 = t2[59] + t2[61]; 772 f324 = f322 - f321;
773 f325 = MUL_C_R(COEF_CONST(0.7071067811865476), f310); 773 f325 = t2[7] + t2[57];
774 f326 = t2[1] - f325; 774 f326 = MUL_C(COEF_CONST(1.1562395311492426), t2[7]);
775 f327 = t2[1] + f325; 775 f327 = MUL_C(COEF_CONST((-0.9852776423889412)), f325);
776 f328 = f302 + f318; 776 f328 = MUL_C(COEF_CONST((-0.8143157536286398)), t2[57]);
777 f329 = MUL_C_R(COEF_CONST(1.3065629648763766), f302); 777 f329 = f326 + f327;
778 f330 = MUL_C_R(COEF_CONST((-0.9238795325112866)), f328); 778 f330 = f328 - f327;
779 f331 = MUL_C_R(COEF_CONST((-0.5411961001461967)), f318); 779 f331 = t2[9] + t2[55];
780 f332 = f329 + f330; 780 f332 = MUL_C(COEF_CONST(1.1948033701953984), t2[9]);
781 f333 = f331 - f330; 781 f333 = MUL_C(COEF_CONST((-0.9757021300385286)), f331);
782 f334 = f327 - f333; 782 f334 = MUL_C(COEF_CONST((-0.7566008898816589)), t2[55]);
783 f335 = f327 + f333; 783 f335 = f332 + f333;
784 f336 = f326 - f332; 784 f336 = f334 - f333;
785 f337 = f326 + f332; 785 f337 = t2[11] + t2[53];
786 f338 = f306 - f314; 786 f338 = MUL_C(COEF_CONST(1.2304888232703382), t2[11]);
787 f339 = f306 + f314; 787 f339 = MUL_C(COEF_CONST((-0.9637760657954400)), f337);
788 f340 = MUL_C_R(COEF_CONST(0.7071067811865476), f339); 788 f340 = MUL_C(COEF_CONST((-0.6970633083205418)), t2[53]);
789 f341 = f298 - f340; 789 f341 = f338 + f339;
790 f342 = f298 + f340; 790 f342 = f340 - f339;
791 f343 = MUL_C_R(COEF_CONST(0.7071067811865476), f338); 791 f343 = t2[13] + t2[51];
792 f344 = f343 - f322; 792 f344 = MUL_C(COEF_CONST(1.2632099209919279), t2[13]);
793 f345 = f343 + f322; 793 f345 = MUL_C(COEF_CONST((-0.9495281805930368)), f343);
794 f346 = f345 + f342; 794 f346 = MUL_C(COEF_CONST((-0.6358464401941457)), t2[51]);
795 f347 = MUL_C_R(COEF_CONST((-0.7856949583871021)), f345); 795 f347 = f344 + f345;
796 f348 = MUL_C_R(COEF_CONST(0.9807852804032304), f346); 796 f348 = f346 - f345;
797 f349 = MUL_C_R(COEF_CONST(1.1758756024193588), f342); 797 f349 = t2[15] + t2[49];
798 f350 = f347 + f348; 798 f350 = MUL_C(COEF_CONST(1.2928878353697266), t2[15]);
799 f351 = f349 - f348; 799 f351 = MUL_C(COEF_CONST((-0.9329927988347391)), f349);
800 f352 = f344 + f341; 800 f352 = MUL_C(COEF_CONST((-0.5730977622997515)), t2[49]);
801 f353 = MUL_C_R(COEF_CONST((-0.2758993792829430)), f344); 801 f353 = f350 + f351;
802 f354 = MUL_C_R(COEF_CONST(0.8314696123025452), f352); 802 f354 = f352 - f351;
803 f355 = MUL_C_R(COEF_CONST(1.3870398453221475), f341); 803 f355 = t2[17] + t2[47];
804 f356 = f353 + f354; 804 f356 = MUL_C(COEF_CONST(1.3194510697085207), t2[17]);
805 f357 = f355 - f354; 805 f357 = MUL_C(COEF_CONST((-0.9142097557035306)), f355);
806 f358 = f335 - f350; 806 f358 = MUL_C(COEF_CONST((-0.5089684416985405)), t2[47]);
807 f359 = f335 + f350; 807 f359 = f356 + f357;
808 f360 = f337 - f356; 808 f360 = f358 - f357;
809 f361 = f337 + f356; 809 f361 = t2[19] + t2[45];
810 f362 = f336 - f357; 810 f362 = MUL_C(COEF_CONST(1.3428356308501219), t2[19]);
811 f363 = f336 + f357; 811 f363 = MUL_C(COEF_CONST((-0.8932243011955153)), f361);
812 f364 = f334 - f351; 812 f364 = MUL_C(COEF_CONST((-0.4436129715409087)), t2[45]);
813 f365 = f334 + f351; 813 f365 = f362 + f363;
814 f366 = MUL_C_R(COEF_CONST(5.1011486186891641), f296); 814 f366 = f364 - f363;
815 f367 = MUL_C_R(COEF_CONST(1.7224470982383342), f300); 815 f367 = t2[21] + t2[43];
816 f368 = MUL_C_R(COEF_CONST(1.0606776859903475), f304); 816 f368 = MUL_C(COEF_CONST(1.3629851833384954), t2[21]);
817 f369 = MUL_C_R(COEF_CONST(0.7881546234512502), f308); 817 f369 = MUL_C(COEF_CONST((-0.8700869911087115)), f367);
818 f370 = MUL_C_R(COEF_CONST(0.5024192861881557), f324); 818 f370 = MUL_C(COEF_CONST((-0.3771887988789276)), t2[43]);
819 f371 = MUL_C_R(COEF_CONST(0.5224986149396889), f320); 819 f371 = f368 + f369;
820 f372 = MUL_C_R(COEF_CONST(0.5669440348163577), f316); 820 f372 = f370 - f369;
821 f373 = MUL_C_R(COEF_CONST(0.6468217833599901), f312); 821 f373 = t2[23] + t2[41];
822 f374 = f366 - f370; 822 f374 = MUL_C(COEF_CONST(1.3798511851368040), t2[23]);
823 f375 = f366 + f370; 823 f375 = MUL_C(COEF_CONST((-0.8448535652497072)), f373);
824 f376 = f367 - f371; 824 f376 = MUL_C(COEF_CONST((-0.3098559453626103)), t2[41]);
825 f377 = f367 + f371; 825 f377 = f374 + f375;
826 f378 = f368 - f372; 826 f378 = f376 - f375;
827 f379 = f368 + f372; 827 f379 = t2[25] + t2[39];
828 f380 = f369 - f373; 828 f380 = MUL_C(COEF_CONST(1.3933930045694289), t2[25]);
829 f381 = f369 + f373; 829 f381 = MUL_C(COEF_CONST((-0.8175848131515840)), f379);
830 f382 = MUL_C_R(COEF_CONST(0.5097955791041592), f375); 830 f382 = MUL_C(COEF_CONST((-0.2417766217337392)), t2[39]);
831 f383 = MUL_C_R(COEF_CONST(0.6013448869350453), f377); 831 f383 = f380 + f381;
832 f384 = MUL_C_R(COEF_CONST(0.8999762231364156), f379); 832 f384 = f382 - f381;
833 f385 = MUL_C_R(COEF_CONST(2.5629154477415055), f381); 833 f385 = t2[27] + t2[37];
834 f386 = f382 + f385; 834 f386 = MUL_C(COEF_CONST(1.4035780182072330), t2[27]);
835 f387 = f382 - f385; 835 f387 = MUL_C(COEF_CONST((-0.7883464276266061)), f385);
836 f388 = f383 + f384; 836 f388 = MUL_C(COEF_CONST((-0.1731148370459791)), t2[37]);
837 f389 = f384 - f383; 837 f389 = f386 + f387;
838 f390 = f387 - f389; 838 f390 = f388 - f387;
839 f391 = f387 + f389; 839 f391 = t2[29] + t2[35];
840 f392 = MUL_C_R(COEF_CONST(0.7071067811865476), f390); 840 f392 = MUL_C(COEF_CONST(1.4103816894602614), t2[29]);
841 f393 = f386 - f388; 841 f393 = MUL_C(COEF_CONST((-0.7572088465064846)), f391);
842 f394 = MUL_C_R(COEF_CONST(1.3065629648763766), f386); 842 f394 = MUL_C(COEF_CONST((-0.1040360035527078)), t2[35]);
843 f395 = MUL_C_R(COEF_CONST((-0.9238795325112866)), f393); 843 f395 = f392 + f393;
844 f396 = MUL_C_R(COEF_CONST((-0.5411961001461967)), f388); 844 f396 = f394 - f393;
845 f397 = f394 + f395; 845 f397 = t2[31] + t2[33];
846 f398 = f395 + f396; 846 f398 = MUL_C(COEF_CONST(1.4137876276885337), t2[31]);
847 f399 = f391 - f398; 847 f399 = MUL_C(COEF_CONST((-0.7242470829514670)), f397);
848 f400 = f392 - f398; 848 f400 = MUL_C(COEF_CONST((-0.0347065382144002)), t2[33]);
849 f401 = f392 + f397; 849 f401 = f398 + f399;
850 f402 = f380 - f374; 850 f402 = f400 - f399;
851 f403 = f374 + f380; 851 f403 = f312 - f402;
852 f404 = f378 - f376; 852 f404 = f312 + f402;
853 f405 = f376 + f378; 853 f405 = f318 - f396;
854 f406 = f403 + f405; 854 f406 = f318 + f396;
855 f407 = MUL_C_R(COEF_CONST(1.3065629648763770), f403); 855 f407 = f324 - f390;
856 f408 = MUL_C_R(COEF_CONST((-0.3826834323650904)), f406); 856 f408 = f324 + f390;
857 f409 = MUL_C_R(COEF_CONST(0.5411961001461961), f405); 857 f409 = f330 - f384;
858 f410 = f407 + f408; 858 f410 = f330 + f384;
859 f411 = f408 - f409; 859 f411 = f336 - f378;
860 f412 = f402 - f404; 860 f412 = f336 + f378;
861 f413 = f402 + f404; 861 f413 = f342 - f372;
862 f414 = MUL_C_R(COEF_CONST(0.7071067811865476), f413); 862 f414 = f342 + f372;
863 f415 = f411 + f397; 863 f415 = f348 - f366;
864 f416 = f401 + f411; 864 f416 = f348 + f366;
865 f417 = f414 + f401; 865 f417 = f354 - f360;
866 f418 = f400 + f414; 866 f418 = f354 + f360;
867 f419 = f400 - f410; 867 f419 = f404 - f418;
868 f420 = f399 - f410; 868 f420 = f404 + f418;
869 f421 = f412 + f399; 869 f421 = f406 - f416;
870 f422 = f359 - f397; 870 f422 = f406 + f416;
871 f423 = f359 + f397; 871 f423 = f408 - f414;
872 f424 = f361 + f415; 872 f424 = f408 + f414;
873 f425 = f361 - f415; 873 f425 = f410 - f412;
874 f426 = f363 - f416; 874 f426 = f410 + f412;
875 f427 = f363 + f416; 875 f427 = f420 - f426;
876 f428 = f365 + f417; 876 f428 = f420 + f426;
877 f429 = f365 - f417; 877 f429 = f422 - f424;
878 f430 = f364 - f418; 878 f430 = f422 + f424;
879 f431 = f364 + f418; 879 f431 = f428 - f430;
880 f432 = f362 + f419; 880 y[1] = f428 + f430;
881 f433 = f362 - f419; 881 f433 = MUL_C(COEF_CONST(0.7071067811865476), f431);
882 f434 = f360 - f420; 882 f434 = f427 + f429;
883 f435 = f360 + f420; 883 f435 = MUL_C(COEF_CONST(1.3065629648763766), f427);
884 f436 = f358 + f421; 884 f436 = MUL_C(COEF_CONST((-0.9238795325112866)), f434);
885 f437 = f358 - f421; 885 f437 = MUL_C(COEF_CONST((-0.5411961001461967)), f429);
886 f438 = MUL_C_R(COEF_CONST(5.1011486186891641), f295); 886 f438 = f435 + f436;
887 f439 = MUL_C_R(COEF_CONST(1.7224470982383342), f299); 887 f439 = f437 - f436;
888 f440 = MUL_C_R(COEF_CONST(1.0606776859903475), f303); 888 f440 = f419 + f425;
889 f441 = MUL_C_R(COEF_CONST(0.7881546234512502), f307); 889 f441 = MUL_C(COEF_CONST(1.1758756024193588), f419);
890 f442 = MUL_C_R(COEF_CONST(0.5024192861881557), f323); 890 f442 = MUL_C(COEF_CONST((-0.9807852804032304)), f440);
891 f443 = MUL_C_R(COEF_CONST(0.5224986149396889), f319); 891 f443 = MUL_C(COEF_CONST((-0.7856949583871021)), f425);
892 f444 = MUL_C_R(COEF_CONST(0.5669440348163577), f315); 892 f444 = f441 + f442;
893 f445 = MUL_C_R(COEF_CONST(0.6468217833599901), f311); 893 f445 = f443 - f442;
894 f446 = f438 + f442; 894 f446 = f421 + f423;
895 f447 = f438 - f442; 895 f447 = MUL_C(COEF_CONST(1.3870398453221473), f421);
896 f448 = f439 + f443; 896 f448 = MUL_C(COEF_CONST((-0.8314696123025455)), f446);
897 f449 = f443 - f439; 897 f449 = MUL_C(COEF_CONST((-0.2758993792829436)), f423);
898 f450 = f440 + f444; 898 f450 = f447 + f448;
899 f451 = f440 - f444; 899 f451 = f449 - f448;
900 f452 = f441 + f445; 900 f452 = f445 - f451;
901 f453 = f445 - f441; 901 f453 = f445 + f451;
902 f454 = MUL_C_R(COEF_CONST(0.5097955791041592), f447); 902 f454 = MUL_C(COEF_CONST(0.7071067811865476), f452);
903 f455 = MUL_C_R(COEF_CONST(0.6013448869350453), f449); 903 f455 = f444 - f450;
904 f456 = MUL_C_R(COEF_CONST(0.8999762231364156), f451); 904 f456 = f444 + f450;
905 f457 = MUL_C_R(COEF_CONST(2.5629154477415055), f453); 905 f457 = MUL_C(COEF_CONST(0.7071067811865476), f456);
906 f458 = f454 + f457; 906 f458 = f454 - f457;
907 f459 = f454 - f457; 907 f459 = f454 + f457;
908 f460 = f455 + f456; 908 f460 = f405 - f407;
909 f461 = f456 - f455; 909 f461 = f405 + f407;
910 f462 = f459 - f461; 910 f462 = f409 - f411;
911 f463 = f459 + f461; 911 f463 = f409 + f411;
912 f464 = MUL_C_R(COEF_CONST(0.7071067811865476), f462); 912 f464 = f413 - f415;
913 f465 = f458 - f460; 913 f465 = f413 + f415;
914 f466 = MUL_C_R(COEF_CONST(1.3065629648763766), f458); 914 f466 = MUL_C(COEF_CONST(0.7071067811865476), f463);
915 f467 = MUL_C_R(COEF_CONST((-0.9238795325112866)), f465); 915 f467 = f403 - f466;
916 f468 = MUL_C_R(COEF_CONST((-0.5411961001461967)), f460); 916 f468 = f403 + f466;
917 f469 = f466 + f467; 917 f469 = f461 + f465;
918 f470 = f467 + f468; 918 f470 = MUL_C(COEF_CONST(1.3065629648763766), f461);
919 f471 = f463 - f470; 919 f471 = MUL_C(COEF_CONST((-0.9238795325112866)), f469);
920 f472 = f464 - f470; 920 f472 = MUL_C(COEF_CONST((-0.5411961001461967)), f465);
921 f473 = f464 + f469; 921 f473 = f470 + f471;
922 f474 = f446 + f452; 922 f474 = f472 - f471;
923 f475 = f452 - f446; 923 f475 = f468 - f474;
924 f476 = f448 + f450; 924 f476 = f468 + f474;
925 f477 = f448 - f450; 925 f477 = f467 - f473;
926 f478 = f475 + f477; 926 f478 = f467 + f473;
927 f479 = MUL_C_R(COEF_CONST(1.3065629648763770), f475); 927 f479 = f460 + f464;
928 f480 = MUL_C_R(COEF_CONST((-0.3826834323650904)), f478); 928 f480 = MUL_C(COEF_CONST(1.3065629648763770), f460);
929 f481 = MUL_C_R(COEF_CONST(0.5411961001461961), f477); 929 f481 = MUL_C(COEF_CONST((-0.3826834323650904)), f479);
930 f482 = f479 + f480; 930 f482 = MUL_C(COEF_CONST(0.5411961001461961), f464);
931 f483 = f481 - f480; 931 f483 = f480 + f481;
932 f484 = f474 + f476; 932 f484 = f482 - f481;
933 f485 = f476 - f474; 933 f485 = MUL_C(COEF_CONST(0.7071067811865476), f462);
934 f486 = MUL_C_R(COEF_CONST(0.7071067811865476), f485); 934 f486 = f485 - f417;
935 f487 = f483 + f469; 935 f487 = f485 + f417;
936 f488 = f473 + f483; 936 f488 = f484 - f487;
937 f489 = f486 + f473; 937 f489 = f484 + f487;
938 f490 = f472 + f486; 938 f490 = f483 - f486;
939 f491 = f482 + f472; 939 f491 = f483 + f486;
940 f492 = f471 + f482; 940 f492 = f489 + f476;
941 f493 = f471 - f484; 941 f493 = MUL_C(COEF_CONST((-0.8971675863426361)), f489);
942 f494 = MUL_C_R(COEF_CONST(0.7071067811865476), f309); 942 f494 = MUL_C(COEF_CONST(0.9951847266721968), f492);
943 f495 = t2[63] - f494; 943 f495 = MUL_C(COEF_CONST(1.0932018670017576), f476);
944 f496 = t2[63] + f494; 944 f496 = f493 + f494;
945 f497 = f317 + f301; 945 f497 = f495 - f494;
946 f498 = MUL_C_R(COEF_CONST(1.3065629648763766), f317); 946 f498 = f491 + f478;
947 f499 = MUL_C_R(COEF_CONST((-0.9238795325112866)), f497); 947 f499 = MUL_C(COEF_CONST((-0.6666556584777466)), f491);
948 f500 = MUL_C_R(COEF_CONST((-0.5411961001461967)), f301); 948 f500 = MUL_C(COEF_CONST(0.9569403357322089), f498);
949 f501 = f498 + f499; 949 f501 = MUL_C(COEF_CONST(1.2472250129866713), f478);
950 f502 = f500 - f499; 950 f502 = f499 + f500;
951 f503 = f496 - f502; 951 f503 = f501 - f500;
952 f504 = f496 + f502; 952 f504 = f490 + f477;
953 f505 = f495 - f501; 953 f505 = MUL_C(COEF_CONST((-0.4105245275223571)), f490);
954 f506 = f495 + f501; 954 f506 = MUL_C(COEF_CONST(0.8819212643483549), f504);
955 f507 = MUL_C_R(COEF_CONST(0.5097955791041592), f321); 955 f507 = MUL_C(COEF_CONST(1.3533180011743529), f477);
956 f508 = MUL_C_R(COEF_CONST(0.6013448869350453), f313); 956 f508 = f505 + f506;
957 f509 = MUL_C_R(COEF_CONST(0.8999762231364156), f305); 957 f509 = f507 - f506;
958 f510 = MUL_C_R(COEF_CONST(2.5629154477415055), f297); 958 f510 = f488 + f475;
959 f511 = f507 - f510; 959 f511 = MUL_C(COEF_CONST((-0.1386171691990915)), f488);
960 f512 = f507 + f510; 960 f512 = MUL_C(COEF_CONST(0.7730104533627370), f510);
961 f513 = f508 - f509; 961 f513 = MUL_C(COEF_CONST(1.4074037375263826), f475);
962 f514 = f508 + f509; 962 f514 = f511 + f512;
963 f515 = f512 - f514; 963 f515 = f513 - f512;
964 f516 = f512 + f514; 964 f516 = f311 + f401;
965 f517 = MUL_C_R(COEF_CONST(0.7071067811865476), f515); 965 f517 = f311 - f401;
966 f518 = f511 + f513; 966 f518 = f317 + f395;
967 f519 = MUL_C_R(COEF_CONST(1.3065629648763766), f511); 967 f519 = f395 - f317;
968 f520 = MUL_C_R(COEF_CONST((-0.9238795325112866)), f518); 968 f520 = f323 + f389;
969 f521 = MUL_C_R(COEF_CONST((-0.5411961001461967)), f513); 969 f521 = f323 - f389;
970 f522 = f519 + f520; 970 f522 = f329 + f383;
971 f523 = f521 - f520; 971 f523 = f383 - f329;
972 f524 = f516 + f523; 972 f524 = f335 + f377;
973 f525 = f523 + f517; 973 f525 = f335 - f377;
974 f526 = f517 + f522; 974 f526 = f341 + f371;
975 f527 = f504 - f524; 975 f527 = f371 - f341;
976 f528 = f504 + f524; 976 f528 = f347 + f365;
977 f529 = f506 - f525; 977 f529 = f347 - f365;
978 f530 = f506 + f525; 978 f530 = f353 + f359;
979 f531 = f505 - f526; 979 f531 = f359 - f353;
980 f532 = f505 + f526; 980 f532 = f517 - f531;
981 f533 = f503 - f522; 981 f533 = f517 + f531;
982 f534 = f503 + f522; 982 f534 = f519 - f529;
983 f535 = f493 + f528; 983 f535 = f519 + f529;
984 f536 = f528 - f493; 984 f536 = f521 - f527;
985 f537 = f492 + f530; 985 f537 = f521 + f527;
986 f538 = f492 - f530; 986 f538 = f523 - f525;
987 f539 = f491 + f532; 987 f539 = f523 + f525;
988 f540 = f532 - f491; 988 f540 = f533 - f539;
989 f541 = f490 + f534; 989 f541 = f533 + f539;
990 f542 = f490 - f534; 990 f542 = f535 - f537;
991 f543 = f489 + f533; 991 f543 = f535 + f537;
992 f544 = f533 - f489; 992 f544 = f541 - f543;
993 f545 = f488 + f531; 993 y[63] = f541 + f543;
994 f546 = f488 - f531; 994 f546 = MUL_C(COEF_CONST(0.7071067811865476), f544);
995 f547 = f487 + f529; 995 f547 = f540 + f542;
996 f548 = f529 - f487; 996 f548 = MUL_C(COEF_CONST(1.3065629648763766), f540);
997 f549 = f469 + f527; 997 f549 = MUL_C(COEF_CONST((-0.9238795325112866)), f547);
998 f550 = f469 - f527; 998 f550 = MUL_C(COEF_CONST((-0.5411961001461967)), f542);
999 f551 = f536 + f423; 999 f551 = f548 + f549;
1000 f552 = MUL_C_R(COEF_CONST((-0.9751575901732920)), f536); 1000 f552 = f550 - f549;
1001 f553 = MUL_C_R(COEF_CONST(0.9996988186962043), f551); 1001 f553 = f532 + f538;
1002 f554 = MUL_C_R(COEF_CONST(1.0242400472191164), f423); 1002 f554 = MUL_C(COEF_CONST(1.1758756024193588), f532);
1003 y[1] = f552 + f553; 1003 f555 = MUL_C(COEF_CONST((-0.9807852804032304)), f553);
1004 y[63] = f554 - f553; 1004 f556 = MUL_C(COEF_CONST((-0.7856949583871021)), f538);
1005 f557 = f538 + f425; 1005 f557 = f554 + f555;
1006 f558 = MUL_C_R(COEF_CONST((-0.9237258930790228)), f538); 1006 f558 = f556 - f555;
1007 f559 = MUL_C_R(COEF_CONST(0.9972904566786902), f557); 1007 f559 = f534 + f536;
1008 f560 = MUL_C_R(COEF_CONST(1.0708550202783576), f425); 1008 f560 = MUL_C(COEF_CONST(1.3870398453221473), f534);
1009 y[3] = f558 + f559; 1009 f561 = MUL_C(COEF_CONST((-0.8314696123025455)), f559);
1010 y[61] = f560 - f559; 1010 f562 = MUL_C(COEF_CONST((-0.2758993792829436)), f536);
1011 f563 = f540 + f427; 1011 f563 = f560 + f561;
1012 f564 = MUL_C_R(COEF_CONST((-0.8700688593994936)), f540); 1012 f564 = f562 - f561;
1013 f565 = MUL_C_R(COEF_CONST(0.9924795345987100), f563); 1013 f565 = f558 - f564;
1014 f566 = MUL_C_R(COEF_CONST(1.1148902097979263), f427); 1014 f566 = f558 + f564;
1015 y[5] = f564 + f565; 1015 f567 = MUL_C(COEF_CONST(0.7071067811865476), f565);
1016 y[59] = f566 - f565; 1016 f568 = f557 - f563;
1017 f569 = f542 + f429; 1017 f569 = f557 + f563;
1018 f570 = MUL_C_R(COEF_CONST((-0.8143157536286398)), f542); 1018 f570 = MUL_C(COEF_CONST(0.7071067811865476), f569);
1019 f571 = MUL_C_R(COEF_CONST(0.9852776423889412), f569); 1019 f571 = f567 - f570;
1020 f572 = MUL_C_R(COEF_CONST(1.1562395311492426), f429); 1020 f572 = f567 + f570;
1021 y[7] = f570 + f571; 1021 f573 = MUL_C(COEF_CONST(0.5024192861881557), f516);
1022 y[57] = f572 - f571; 1022 f574 = MUL_C(COEF_CONST(0.5224986149396889), f518);
1023 f575 = f544 + f431; 1023 f575 = MUL_C(COEF_CONST(0.5669440348163577), f520);
1024 f576 = MUL_C_R(COEF_CONST((-0.7566008898816587)), f544); 1024 f576 = MUL_C(COEF_CONST(0.6468217833599901), f522);
1025 f577 = MUL_C_R(COEF_CONST(0.9757021300385286), f575); 1025 f577 = MUL_C(COEF_CONST(0.7881546234512502), f524);
1026 f578 = MUL_C_R(COEF_CONST(1.1948033701953984), f431); 1026 f578 = MUL_C(COEF_CONST(1.0606776859903471), f526);
1027 y[9] = f576 + f577; 1027 f579 = MUL_C(COEF_CONST(1.7224470982383342), f528);
1028 y[55] = f578 - f577; 1028 f580 = MUL_C(COEF_CONST(5.1011486186891553), f530);
1029 f581 = f546 + f433; 1029 f581 = f573 + f580;
1030 f582 = MUL_C_R(COEF_CONST((-0.6970633083205414)), f546); 1030 f582 = f573 - f580;
1031 f583 = MUL_C_R(COEF_CONST(0.9637760657954398), f581); 1031 f583 = f574 + f579;
1032 f584 = MUL_C_R(COEF_CONST(1.2304888232703384), f433); 1032 f584 = f579 - f574;
1033 y[11] = f582 + f583; 1033 f585 = f575 + f578;
1034 y[53] = f584 - f583; 1034 f586 = f575 - f578;
1035 f587 = f548 + f435; 1035 f587 = f576 + f577;
1036 f588 = MUL_C_R(COEF_CONST((-0.6358464401941451)), f548); 1036 f588 = f577 - f576;
1037 f589 = MUL_C_R(COEF_CONST(0.9495281805930367), f587); 1037 f589 = f582 - f588;
1038 f590 = MUL_C_R(COEF_CONST(1.2632099209919283), f435); 1038 f590 = f582 + f588;
1039 y[13] = f588 + f589; 1039 f591 = f584 - f586;
1040 y[51] = f590 - f589; 1040 f592 = f584 + f586;
1041 f593 = f550 + f437; 1041 f593 = f590 - f592;
1042 f594 = MUL_C_R(COEF_CONST((-0.5730977622997506)), f550); 1042 f594 = f590 + f592;
1043 f595 = MUL_C_R(COEF_CONST(0.9329927988347389), f593); 1043 f595 = MUL_C(COEF_CONST(0.7071067811865476), f593);
1044 f596 = MUL_C_R(COEF_CONST(1.2928878353697271), f437); 1044 f596 = f589 + f591;
1045 y[15] = f594 + f595; 1045 f597 = MUL_C(COEF_CONST(1.3065629648763766), f589);
1046 y[49] = f596 - f595; 1046 f598 = MUL_C(COEF_CONST((-0.9238795325112866)), f596);
1047 f599 = f549 + f436; 1047 f599 = MUL_C(COEF_CONST((-0.5411961001461967)), f591);
1048 f600 = MUL_C_R(COEF_CONST((-0.5089684416985408)), f549); 1048 f600 = f597 + f598;
1049 f601 = MUL_C_R(COEF_CONST(0.9142097557035307), f599); 1049 f601 = f599 - f598;
1050 f602 = MUL_C_R(COEF_CONST(1.3194510697085207), f436); 1050 f602 = f583 + f585;
1051 y[17] = f600 + f601; 1051 f603 = f585 - f583;
1052 y[47] = f602 - f601; 1052 f604 = MUL_C(COEF_CONST(0.7071067811865476), f603);
1053 f605 = f434 - f547; 1053 f605 = MUL_C(COEF_CONST(0.7071067811865476), f602);
1054 f606 = MUL_C_R(COEF_CONST((-0.4436129715409087)), f547); 1054 f606 = f581 - f604;
1055 f607 = MUL_C_R(COEF_CONST(0.8932243011955153), f605); 1055 f607 = f581 + f604;
1056 f608 = MUL_C_R(COEF_CONST(1.3428356308501219), f434); 1056 f608 = f605 - f587;
1057 y[19] = f607 - f606; 1057 f609 = f587 + f605;
1058 y[45] = f608 - f607; 1058 f610 = f607 - f609;
1059 f611 = f545 + f432; 1059 f611 = MUL_C(COEF_CONST((-0.7856949583871021)), f609);
1060 f612 = MUL_C_R(COEF_CONST((-0.3771887988789273)), f545); 1060 f612 = MUL_C(COEF_CONST(0.9807852804032304), f610);
1061 f613 = MUL_C_R(COEF_CONST(0.8700869911087114), f611); 1061 f613 = MUL_C(COEF_CONST(1.1758756024193588), f607);
1062 f614 = MUL_C_R(COEF_CONST(1.3629851833384954), f432); 1062 f614 = f612 - f611;
1063 y[21] = f612 + f613; 1063 f615 = f613 - f612;
1064 y[43] = f614 - f613; 1064 f616 = f608 + f606;
1065 f617 = f430 - f543; 1065 f617 = MUL_C(COEF_CONST(0.2758993792829431), f608);
1066 f618 = MUL_C_R(COEF_CONST((-0.3098559453626097)), f543); 1066 f618 = MUL_C(COEF_CONST(0.5555702330196022), f616);
1067 f619 = MUL_C_R(COEF_CONST(0.8448535652497070), f617); 1067 f619 = MUL_C(COEF_CONST(1.3870398453221475), f606);
1068 f620 = MUL_C_R(COEF_CONST(1.3798511851368043), f430); 1068 f620 = f617 + f618;
1069 y[23] = f619 - f618; 1069 f621 = f619 - f618;
1070 y[41] = f620 - f619; 1070 f622 = f594 + f614;
1071 f623 = f541 + f428; 1071 f623 = f614 + f601;
1072 f624 = MUL_C_R(COEF_CONST((-0.2417766217337384)), f541); 1072 f624 = f601 + f621;
1073 f625 = MUL_C_R(COEF_CONST(0.8175848131515837), f623); 1073 f625 = f621 + f595;
1074 f626 = MUL_C_R(COEF_CONST(1.3933930045694289), f428); 1074 f626 = f595 + f620;
1075 y[25] = f624 + f625; 1075 f627 = f620 + f600;
1076 y[39] = f626 - f625; 1076 f628 = f600 + f615;
1077 f629 = f426 - f539; 1077 y[5] = f496 - f615;
1078 f630 = MUL_C_R(COEF_CONST((-0.1731148370459794)), f539); 1078 y[3] = f496 + f615;
1079 f631 = MUL_C_R(COEF_CONST(0.7883464276266062), f629); 1079 y[9] = f453 - f568;
1080 f632 = MUL_C_R(COEF_CONST(1.4035780182072330), f426); 1080 y[7] = f453 + f568;
1081 y[27] = f631 - f630; 1081 y[13] = f502 - f628;
1082 y[37] = f632 - f631; 1082 y[11] = f502 + f628;
1083 f635 = f537 + f424; 1083 y[17] = f439 - f551;
1084 f636 = MUL_C_R(COEF_CONST((-0.1040360035527077)), f537); 1084 y[15] = f439 + f551;
1085 f637 = MUL_C_R(COEF_CONST(0.7572088465064845), f635); 1085 y[21] = f508 - f627;
1086 f638 = MUL_C_R(COEF_CONST(1.4103816894602612), f424); 1086 y[19] = f508 + f627;
1087 y[29] = f636 + f637; 1087 y[25] = f459 - f571;
1088 y[35] = f638 - f637; 1088 y[23] = f459 + f571;
1089 f641 = f422 - f535; 1089 y[29] = f514 - f626;
1090 f642 = MUL_C_R(COEF_CONST((-0.0347065382144000)), f535); 1090 y[27] = f514 + f626;
1091 f643 = MUL_C_R(COEF_CONST(0.7242470829514669), f641); 1091 y[33] = f433 - f546;
1092 f644 = MUL_C_R(COEF_CONST(1.4137876276885337), f422); 1092 y[31] = f433 + f546;
1093 y[31] = f643 - f642; 1093 y[37] = f515 - f625;
1094 y[33] = f644 - f643; 1094 y[35] = f515 + f625;
1095 y[41] = f458 - f572;
1096 y[39] = f458 + f572;
1097 y[45] = f509 - f624;
1098 y[43] = f509 + f624;
1099 y[49] = f438 - f552;
1100 y[47] = f438 + f552;
1101 y[53] = f503 - f623;
1102 y[51] = f503 + f623;
1103 y[57] = f455 - f566;
1104 y[55] = f455 + f566;
1105 y[61] = f497 - f622;
1106 y[59] = f497 + f622;
1107 }
1108
1109 void DST2_64_unscaled(real_t *y, real_t *x)
1110 {
1111 int16_t i0;
1112 real_t f2, f3, f4, f5, f6, f7;
1113 real_t f8, f9, f10, f11, f12, f13;
1114 real_t f14, f15, f16, f17, f18, f19;
1115 real_t f20, f21, f22, f23, f24, f25;
1116 real_t f26, f27, f28, f29, f30, f31;
1117 real_t f32, f33, f34, f35, f36, f37;
1118 real_t f38, f39, f40, f41, f42, f43;
1119 real_t f44, f45, f46, f47, f48, f49;
1120 real_t f50, f51, f52, f53, f54, f55;
1121 real_t f56, f57, f58, f59, f60, f61;
1122 real_t f62, f63, f64, f65, f66, f67;
1123 real_t f68, f69, f70, f71, f72, f73;
1124 real_t f74, f75, f76, f77, f78, f79;
1125 real_t f80, f81, f82, f83, f84, f85;
1126 real_t f86, f87, f88, f89, f90, f91;
1127 real_t f92, f93, f94, f95, f96, f97;
1128 real_t f98, f99, f100, f101, f102, f103;
1129 real_t f104, f105, f106, f107, f108, f109;
1130 real_t f110, f111, f112, f113, f114, f115;
1131 real_t f116, f117, f118, f119, f120, f121;
1132 real_t f122, f123, f124, f125, f126, f127;
1133 real_t f128, f129, f130, f131, f132, f133;
1134 real_t f134, f135, f136, f137, f138, f139;
1135 real_t f140, f141, f142, f143, f144, f145;
1136 real_t f146, f147, f148, f149, f150, f151;
1137 real_t f152, f153, f154, f155, f156, f157;
1138 real_t f158, f159, f160, f161, f162, f163;
1139 real_t f164, f165, f166, f167, f168, f169;
1140 real_t f170, f171, f172, f173, f174, f175;
1141 real_t f176, f177, f178, f179, f180, f181;
1142 real_t f182, f183, f184, f185, f186, f187;
1143 real_t f188, f189, f190, f191, f192, f193;
1144 real_t f194, f195, f196, f197, f198, f199;
1145 real_t f200, f201, f202, f203, f204, f205;
1146 real_t f206, f207, f208, f209, f210, f211;
1147 real_t f212, f213, f214, f215, f216, f217;
1148 real_t f218, f219, f220, f221, f222, f223;
1149 real_t f224, f225, f226, f227, f228, f229;
1150 real_t f230, f231, f232, f233, f234, f235;
1151 real_t f236, f237, f238, f239, f240, f241;
1152 real_t f242, f243, f244, f245, f246, f247;
1153 real_t f248, f249, f250, f251, f252, f253;
1154 real_t f254, f255, f256, f257, f258, f259;
1155 real_t f260, f261, f264, f265, f266, f267;
1156 real_t f270, f271, f272, f273, f276, f277;
1157 real_t f278, f279, f282, f283, f284, f285;
1158 real_t f288, f289, f290, f291, f294, f295;
1159 real_t f296, f297, f300, f301, f302, f303;
1160 real_t f306, f307, f308, f309, f312, f313;
1161 real_t f314, f315, f318, f319, f320, f321;
1162 real_t f324, f325, f326, f327, f330, f331;
1163 real_t f332, f333, f336, f337, f338, f339;
1164 real_t f342, f343, f344, f345, f348, f349;
1165 real_t f350, f351, f354, f355, f356, f357;
1166 real_t f358, f359, f360, f361, f362, f363;
1167 real_t f364, f365, f366, f367, f368, f369;
1168 real_t f370, f371, f372, f373, f374, f375;
1169 real_t f376, f377, f378, f379, f380, f381;
1170 real_t f382, f383, f384, f385, f386, f387;
1171 real_t f388, f389, f390, f391, f392, f393;
1172 real_t f394, f395, f396, f397, f398, f399;
1173 real_t f400, f401, f402, f403, f404, f405;
1174 real_t f406, f407, f408, f409, f410, f411;
1175 real_t f412, f413, f414, f415, f416, f417;
1176 real_t f418, f419, f420, f421, f422, f423;
1177 real_t f424, f425, f426, f427, f428, f429;
1178 real_t f430, f431, f432, f433, f434, f435;
1179 real_t f436, f437, f438, f439, f440, f441;
1180 real_t f442, f443, f444, f445, f446, f447;
1181 real_t f448, f449, f450, f451, f452, f453;
1182 real_t f454, f455, f456, f457, f458, f459;
1183 real_t f460, f461, f462, f463, f464, f465;
1184 real_t f466, f467, f468, f469, f470, f471;
1185 real_t f472, f473, f474, f475, f476, f477;
1186 real_t f478, f479, f480, f481, f482, f483;
1187 real_t f484, f485, f486, f487, f488, f489;
1188 real_t f490, f491, f492, f493, f494, f495;
1189 real_t f496, f497, f498, f499, f500, f501;
1190 real_t f504, f505, f506, f507, f510, f511;
1191 real_t f512, f513, f516, f517, f518, f519;
1192 real_t f522, f523, f524, f525, f528, f529;
1193 real_t f530, f531, f534, f535, f536, f537;
1194 real_t f540, f541, f542, f543, f546, f547;
1195 real_t f548, f549, f550, f551, f552, f553;
1196 real_t f554, f555, f556, f557, f558, f559;
1197 real_t f560, f561, f562, f563, f564, f565;
1198 real_t f566, f567, f568, f569, f570, f571;
1199 real_t f572, f573, f574, f577, f578, f579;
1200 real_t f580, f583, f584, f585, f586, f587;
1201 real_t f588, f589, f590, f591, f592, f593;
1202 real_t f594, f595, f596, f597, f598, f603;
1203 real_t f604, f605, f606, f607, f608, f609;
1204 real_t f610, f611, f612, f613, f614, f615;
1205 real_t f616, f617, f618, f619, f620, f621;
1206 real_t f622, f623, f624, f625, f626, f627;
1207 real_t f628, f629, f630, f631, f632, f633;
1208 real_t f634, f635, f636, f637, f638, f639;
1209 real_t f640, f641, f642, f643, f644, f645;
1210 real_t f646, f647, f648, f649, f650;
1211 ALIGN static real_t t2[64];
1212
1213 for (i0=0; i0<32; i0++)
1214 {
1215 t2[2*i0+1] = x[i0] - x[-i0+63];
1216 t2[2*i0] = x[i0] + x[-i0+63];
1217 }
1218 f2 = t2[2] + t2[4];
1219 f3 = t2[4] - t2[2];
1220 f4 = t2[6] + t2[8];
1221 f5 = t2[8] - t2[6];
1222 f6 = t2[10] + t2[12];
1223 f7 = t2[12] - t2[10];
1224 f8 = t2[14] + t2[16];
1225 f9 = t2[16] - t2[14];
1226 f10 = t2[18] + t2[20];
1227 f11 = t2[20] - t2[18];
1228 f12 = t2[22] + t2[24];
1229 f13 = t2[24] - t2[22];
1230 f14 = t2[26] + t2[28];
1231 f15 = t2[28] - t2[26];
1232 f16 = t2[30] + t2[32];
1233 f17 = t2[32] - t2[30];
1234 f18 = t2[34] + t2[36];
1235 f19 = t2[36] - t2[34];
1236 f20 = t2[38] + t2[40];
1237 f21 = t2[40] - t2[38];
1238 f22 = t2[42] + t2[44];
1239 f23 = t2[44] - t2[42];
1240 f24 = t2[46] + t2[48];
1241 f25 = t2[48] - t2[46];
1242 f26 = t2[50] + t2[52];
1243 f27 = t2[52] - t2[50];
1244 f28 = t2[54] + t2[56];
1245 f29 = t2[56] - t2[54];
1246 f30 = t2[58] + t2[60];
1247 f31 = t2[60] - t2[58];
1248 f32 = MUL_C(COEF_CONST(0.7071067811865476), f17);
1249 f33 = t2[0] - f32;
1250 f34 = t2[0] + f32;
1251 f35 = f9 + f25;
1252 f36 = MUL_C(COEF_CONST(1.3065629648763766), f9);
1253 f37 = MUL_C(COEF_CONST((-0.9238795325112866)), f35);
1254 f38 = MUL_C(COEF_CONST((-0.5411961001461967)), f25);
1255 f39 = f36 + f37;
1256 f40 = f38 - f37;
1257 f41 = f34 - f40;
1258 f42 = f34 + f40;
1259 f43 = f33 - f39;
1260 f44 = f33 + f39;
1261 f45 = MUL_C(COEF_CONST(2.5629154477415064), f5);
1262 f46 = MUL_C(COEF_CONST(0.8999762231364158), f13);
1263 f47 = MUL_C(COEF_CONST(0.5097955791041592), f29);
1264 f48 = MUL_C(COEF_CONST(0.6013448869350453), f21);
1265 f49 = f45 - f47;
1266 f50 = f45 + f47;
1267 f51 = f46 - f48;
1268 f52 = f46 + f48;
1269 f53 = f50 + f52;
1270 f54 = MUL_C(COEF_CONST(1.3065629648763770), f50);
1271 f55 = MUL_C(COEF_CONST((-0.3826834323650904)), f53);
1272 f56 = MUL_C(COEF_CONST(0.5411961001461961), f52);
1273 f57 = f54 + f55;
1274 f58 = f56 - f55;
1275 f59 = f51 - f49;
1276 f60 = f49 + f51;
1277 f61 = MUL_C(COEF_CONST(0.7071067811865476), f60);
1278 f62 = f58 - f61;
1279 f63 = f57 - f61;
1280 f64 = f59 + f57;
1281 f65 = f42 - f58;
1282 f66 = f42 + f58;
1283 f67 = f44 + f62;
1284 f68 = f44 - f62;
1285 f69 = f43 - f63;
1286 f70 = f43 + f63;
1287 f71 = f41 + f64;
1288 f72 = f41 - f64;
1289 f73 = f7 - f11;
1290 f74 = f7 + f11;
1291 f75 = f15 - f19;
1292 f76 = f15 + f19;
1293 f77 = f23 - f27;
1294 f78 = f23 + f27;
1295 f79 = MUL_C(COEF_CONST(0.7071067811865476), f76);
1296 f80 = f3 - f79;
1297 f81 = f3 + f79;
1298 f82 = f74 + f78;
1299 f83 = MUL_C(COEF_CONST(1.3065629648763766), f74);
1300 f84 = MUL_C(COEF_CONST((-0.9238795325112866)), f82);
1301 f85 = MUL_C(COEF_CONST((-0.5411961001461967)), f78);
1302 f86 = f83 + f84;
1303 f87 = f85 - f84;
1304 f88 = f81 - f87;
1305 f89 = f81 + f87;
1306 f90 = f80 - f86;
1307 f91 = f80 + f86;
1308 f92 = MUL_C(COEF_CONST(0.7071067811865476), f75);
1309 f93 = f31 - f92;
1310 f94 = f31 + f92;
1311 f95 = f77 + f73;
1312 f96 = MUL_C(COEF_CONST(1.3065629648763766), f77);
1313 f97 = MUL_C(COEF_CONST((-0.9238795325112866)), f95);
1314 f98 = MUL_C(COEF_CONST((-0.5411961001461967)), f73);
1315 f99 = f96 + f97;
1316 f100 = f98 - f97;
1317 f101 = f94 - f100;
1318 f102 = f94 + f100;
1319 f103 = f93 - f99;
1320 f104 = f93 + f99;
1321 f105 = f102 + f89;
1322 f106 = MUL_C(COEF_CONST((-0.8971675863426361)), f102);
1323 f107 = MUL_C(COEF_CONST(0.9951847266721968), f105);
1324 f108 = MUL_C(COEF_CONST(1.0932018670017576), f89);
1325 f109 = f106 + f107;
1326 f110 = f108 - f107;
1327 f111 = f91 - f104;
1328 f112 = MUL_C(COEF_CONST((-0.6666556584777466)), f104);
1329 f113 = MUL_C(COEF_CONST(0.9569403357322089), f111);
1330 f114 = MUL_C(COEF_CONST(1.2472250129866713), f91);
1331 f115 = f113 - f112;
1332 f116 = f114 - f113;
1333 f117 = f103 + f90;
1334 f118 = MUL_C(COEF_CONST((-0.4105245275223571)), f103);
1335 f119 = MUL_C(COEF_CONST(0.8819212643483549), f117);
1336 f120 = MUL_C(COEF_CONST(1.3533180011743529), f90);
1337 f121 = f118 + f119;
1338 f122 = f120 - f119;
1339 f123 = f88 - f101;
1340 f124 = MUL_C(COEF_CONST((-0.1386171691990915)), f101);
1341 f125 = MUL_C(COEF_CONST(0.7730104533627370), f123);
1342 f126 = MUL_C(COEF_CONST(1.4074037375263826), f88);
1343 f127 = f125 - f124;
1344 f128 = f126 - f125;
1345 f129 = f66 - f109;
1346 f130 = f66 + f109;
1347 f131 = f68 - f115;
1348 f132 = f68 + f115;
1349 f133 = f70 - f121;
1350 f134 = f70 + f121;
1351 f135 = f72 - f127;
1352 f136 = f72 + f127;
1353 f137 = f71 - f128;
1354 f138 = f71 + f128;
1355 f139 = f69 - f122;
1356 f140 = f69 + f122;
1357 f141 = f67 - f116;
1358 f142 = f67 + f116;
1359 f143 = f65 - f110;
1360 f144 = f65 + f110;
1361 f145 = f26 + f30;
1362 f146 = f22 + f26;
1363 f147 = f18 + f22;
1364 f148 = f14 + f18;
1365 f149 = f10 + f14;
1366 f150 = f6 + f10;
1367 f151 = f2 + f6;
1368 f152 = MUL_C(COEF_CONST(0.7071067811865476), f148);
1369 f153 = f152 - f30;
1370 f154 = f30 + f152;
1371 f155 = f146 + f150;
1372 f156 = MUL_C(COEF_CONST(1.3065629648763766), f146);
1373 f157 = MUL_C(COEF_CONST((-0.9238795325112866)), f155);
1374 f158 = MUL_C(COEF_CONST((-0.5411961001461967)), f150);
1375 f159 = f156 + f157;
1376 f160 = f157 - f158;
1377 f161 = f154 + f160;
1378 f162 = f160 - f154;
1379 f163 = f153 + f159;
1380 f164 = f153 - f159;
1381 f165 = f147 + f145;
1382 f166 = f149 + f147;
1383 f167 = f151 + f149;
1384 f168 = MUL_C(COEF_CONST(0.7071067811865476), f166);
1385 f169 = f168 - f145;
1386 f170 = f145 + f168;
1387 f171 = f165 + f167;
1388 f172 = MUL_C(COEF_CONST(1.3065629648763766), f165);
1389 f173 = MUL_C(COEF_CONST((-0.9238795325112866)), f171);
1390 f174 = MUL_C(COEF_CONST((-0.5411961001461967)), f167);
1391 f175 = f172 + f173;
1392 f176 = f173 - f174;
1393 f177 = f170 + f176;
1394 f178 = f176 - f170;
1395 f179 = f169 + f175;
1396 f180 = f169 - f175;
1397 f181 = MUL_C(COEF_CONST(0.5097955791041592), f178);
1398 f182 = MUL_C(COEF_CONST(0.6013448869350453), f180);
1399 f183 = MUL_C(COEF_CONST(0.8999762231364156), f179);
1400 f184 = MUL_C(COEF_CONST(2.5629154477415055), f177);
1401 f185 = f162 - f181;
1402 f186 = f162 + f181;
1403 f187 = f164 - f182;
1404 f188 = f164 + f182;
1405 f189 = f163 - f183;
1406 f190 = f163 + f183;
1407 f191 = f184 - f161;
1408 f192 = f161 + f184;
1409 f193 = MUL_C(COEF_CONST(0.5024192861881557), f186);
1410 f194 = MUL_C(COEF_CONST(0.5224986149396889), f188);
1411 f195 = MUL_C(COEF_CONST(0.5669440348163577), f190);
1412 f196 = MUL_C(COEF_CONST(0.6468217833599901), f192);
1413 f197 = MUL_C(COEF_CONST(0.7881546234512502), f191);
1414 f198 = MUL_C(COEF_CONST(1.0606776859903471), f189);
1415 f199 = MUL_C(COEF_CONST(1.7224470982383342), f187);
1416 f200 = MUL_C(COEF_CONST(5.1011486186891553), f185);
1417 f201 = MUL_C(COEF_CONST(0.7071067811865476), f16);
1418 f202 = f201 - t2[62];
1419 f203 = t2[62] + f201;
1420 f204 = f24 + f8;
1421 f205 = MUL_C(COEF_CONST(1.3065629648763766), f24);
1422 f206 = MUL_C(COEF_CONST((-0.9238795325112866)), f204);
1423 f207 = MUL_C(COEF_CONST((-0.5411961001461967)), f8);
1424 f208 = f205 + f206;
1425 f209 = f206 - f207;
1426 f210 = f203 + f209;
1427 f211 = f209 - f203;
1428 f212 = f202 + f208;
1429 f213 = f202 - f208;
1430 f214 = f20 + f28;
1431 f215 = f12 + f20;
1432 f216 = f4 + f12;
1433 f217 = MUL_C(COEF_CONST(0.7071067811865476), f215);
1434 f218 = f217 - f28;
1435 f219 = f28 + f217;
1436 f220 = f214 + f216;
1437 f221 = MUL_C(COEF_CONST(1.3065629648763766), f214);
1438 f222 = MUL_C(COEF_CONST((-0.9238795325112866)), f220);
1439 f223 = MUL_C(COEF_CONST((-0.5411961001461967)), f216);
1440 f224 = f221 + f222;
1441 f225 = f222 - f223;
1442 f226 = f219 + f225;
1443 f227 = f225 - f219;
1444 f228 = f218 + f224;
1445 f229 = f218 - f224;
1446 f230 = MUL_C(COEF_CONST(0.5097955791041592), f227);
1447 f231 = MUL_C(COEF_CONST(0.6013448869350453), f229);
1448 f232 = MUL_C(COEF_CONST(0.8999762231364156), f228);
1449 f233 = MUL_C(COEF_CONST(2.5629154477415055), f226);
1450 f234 = f211 - f230;
1451 f235 = f211 + f230;
1452 f236 = f213 - f231;
1453 f237 = f213 + f231;
1454 f238 = f212 - f232;
1455 f239 = f212 + f232;
1456 f240 = f233 - f210;
1457 f241 = f210 + f233;
1458 f242 = f193 - f235;
1459 f243 = f193 + f235;
1460 f244 = f237 - f194;
1461 f245 = f194 + f237;
1462 f246 = f195 - f239;
1463 f247 = f195 + f239;
1464 f248 = f196 - f241;
1465 f249 = f196 + f241;
1466 f250 = f197 - f240;
1467 f251 = f197 + f240;
1468 f252 = f238 - f198;
1469 f253 = f198 + f238;
1470 f254 = f199 - f236;
1471 f255 = f199 + f236;
1472 f256 = f234 - f200;
1473 f257 = f200 + f234;
1474 f258 = f243 + f130;
1475 f259 = MUL_C(COEF_CONST((-0.9751575901732920)), f243);
1476 f260 = MUL_C(COEF_CONST(0.9996988186962043), f258);
1477 f261 = MUL_C(COEF_CONST(1.0242400472191164), f130);
1478 y[62] = f259 + f260;
1479 y[0] = f261 - f260;
1480 f264 = f132 - f245;
1481 f265 = MUL_C(COEF_CONST((-0.9237258930790228)), f245);
1482 f266 = MUL_C(COEF_CONST(0.9972904566786902), f264);
1483 f267 = MUL_C(COEF_CONST(1.0708550202783576), f132);
1484 y[60] = f266 - f265;
1485 y[2] = f267 - f266;
1486 f270 = f247 + f134;
1487 f271 = MUL_C(COEF_CONST((-0.8700688593994936)), f247);
1488 f272 = MUL_C(COEF_CONST(0.9924795345987100), f270);
1489 f273 = MUL_C(COEF_CONST(1.1148902097979263), f134);
1490 y[58] = f271 + f272;
1491 y[4] = f273 - f272;
1492 f276 = f249 + f136;
1493 f277 = MUL_C(COEF_CONST((-0.8143157536286398)), f249);
1494 f278 = MUL_C(COEF_CONST(0.9852776423889412), f276);
1495 f279 = MUL_C(COEF_CONST(1.1562395311492426), f136);
1496 y[56] = f277 + f278;
1497 y[6] = f279 - f278;
1498 f282 = f251 + f138;
1499 f283 = MUL_C(COEF_CONST((-0.7566008898816587)), f251);
1500 f284 = MUL_C(COEF_CONST(0.9757021300385286), f282);
1501 f285 = MUL_C(COEF_CONST(1.1948033701953984), f138);
1502 y[54] = f283 + f284;
1503 y[8] = f285 - f284;
1504 f288 = f140 - f253;
1505 f289 = MUL_C(COEF_CONST((-0.6970633083205414)), f253);
1506 f290 = MUL_C(COEF_CONST(0.9637760657954398), f288);
1507 f291 = MUL_C(COEF_CONST(1.2304888232703384), f140);
1508 y[52] = f290 - f289;
1509 y[10] = f291 - f290;
1510 f294 = f255 + f142;
1511 f295 = MUL_C(COEF_CONST((-0.6358464401941451)), f255);
1512 f296 = MUL_C(COEF_CONST(0.9495281805930367), f294);
1513 f297 = MUL_C(COEF_CONST(1.2632099209919283), f142);
1514 y[50] = f295 + f296;
1515 y[12] = f297 - f296;
1516 f300 = f144 - f257;
1517 f301 = MUL_C(COEF_CONST((-0.5730977622997506)), f257);
1518 f302 = MUL_C(COEF_CONST(0.9329927988347389), f300);
1519 f303 = MUL_C(COEF_CONST(1.2928878353697271), f144);
1520 y[48] = f302 - f301;
1521 y[14] = f303 - f302;
1522 f306 = f256 + f143;
1523 f307 = MUL_C(COEF_CONST((-0.5089684416985408)), f256);
1524 f308 = MUL_C(COEF_CONST(0.9142097557035307), f306);
1525 f309 = MUL_C(COEF_CONST(1.3194510697085207), f143);
1526 y[46] = f307 + f308;
1527 y[16] = f309 - f308;
1528 f312 = f254 + f141;
1529 f313 = MUL_C(COEF_CONST((-0.4436129715409087)), f254);
1530 f314 = MUL_C(COEF_CONST(0.8932243011955153), f312);
1531 f315 = MUL_C(COEF_CONST(1.3428356308501219), f141);
1532 y[44] = f313 + f314;
1533 y[18] = f315 - f314;
1534 f318 = f252 + f139;
1535 f319 = MUL_C(COEF_CONST((-0.3771887988789273)), f252);
1536 f320 = MUL_C(COEF_CONST(0.8700869911087114), f318);
1537 f321 = MUL_C(COEF_CONST(1.3629851833384954), f139);
1538 y[42] = f319 + f320;
1539 y[20] = f321 - f320;
1540 f324 = f250 + f137;
1541 f325 = MUL_C(COEF_CONST((-0.3098559453626097)), f250);
1542 f326 = MUL_C(COEF_CONST(0.8448535652497070), f324);
1543 f327 = MUL_C(COEF_CONST(1.3798511851368043), f137);
1544 y[40] = f325 + f326;
1545 y[22] = f327 - f326;
1546 f330 = f248 + f135;
1547 f331 = MUL_C(COEF_CONST((-0.2417766217337384)), f248);
1548 f332 = MUL_C(COEF_CONST(0.8175848131515837), f330);
1549 f333 = MUL_C(COEF_CONST(1.3933930045694289), f135);
1550 y[38] = f331 + f332;
1551 y[24] = f333 - f332;
1552 f336 = f246 + f133;
1553 f337 = MUL_C(COEF_CONST((-0.1731148370459794)), f246);
1554 f338 = MUL_C(COEF_CONST(0.7883464276266062), f336);
1555 f339 = MUL_C(COEF_CONST(1.4035780182072330), f133);
1556 y[36] = f337 + f338;
1557 y[26] = f339 - f338;
1558 f342 = f244 + f131;
1559 f343 = MUL_C(COEF_CONST((-0.1040360035527077)), f244);
1560 f344 = MUL_C(COEF_CONST(0.7572088465064845), f342);
1561 f345 = MUL_C(COEF_CONST(1.4103816894602612), f131);
1562 y[34] = f343 + f344;
1563 y[28] = f345 - f344;
1564 f348 = f242 + f129;
1565 f349 = MUL_C(COEF_CONST((-0.0347065382144000)), f242);
1566 f350 = MUL_C(COEF_CONST(0.7242470829514669), f348);
1567 f351 = MUL_C(COEF_CONST(1.4137876276885337), f129);
1568 y[32] = f349 + f350;
1569 y[30] = f351 - f350;
1570 f354 = t2[1] - t2[63];
1571 f355 = t2[1] + t2[63];
1572 f356 = t2[3] - t2[61];
1573 f357 = t2[3] + t2[61];
1574 f358 = t2[5] - t2[59];
1575 f359 = t2[5] + t2[59];
1576 f360 = t2[7] - t2[57];
1577 f361 = t2[7] + t2[57];
1578 f362 = t2[9] - t2[55];
1579 f363 = t2[9] + t2[55];
1580 f364 = t2[11] - t2[53];
1581 f365 = t2[11] + t2[53];
1582 f366 = t2[13] - t2[51];
1583 f367 = t2[13] + t2[51];
1584 f368 = t2[15] - t2[49];
1585 f369 = t2[15] + t2[49];
1586 f370 = t2[17] - t2[47];
1587 f371 = t2[17] + t2[47];
1588 f372 = t2[19] - t2[45];
1589 f373 = t2[19] + t2[45];
1590 f374 = t2[21] - t2[43];
1591 f375 = t2[21] + t2[43];
1592 f376 = t2[23] - t2[41];
1593 f377 = t2[23] + t2[41];
1594 f378 = t2[25] - t2[39];
1595 f379 = t2[25] + t2[39];
1596 f380 = t2[27] - t2[37];
1597 f381 = t2[27] + t2[37];
1598 f382 = t2[29] - t2[35];
1599 f383 = t2[29] + t2[35];
1600 f384 = t2[31] - t2[33];
1601 f385 = t2[31] + t2[33];
1602 f386 = f369 + f371;
1603 f387 = f371 - f369;
1604 f388 = MUL_C(COEF_CONST(0.7071067811865476), f387);
1605 f389 = MUL_C(COEF_CONST(0.7071067811865476), f386);
1606 f390 = f363 + f377;
1607 f391 = f363 - f377;
1608 f392 = MUL_C(COEF_CONST(0.7071067811865476), f391);
1609 f393 = MUL_C(COEF_CONST(0.7071067811865476), f390);
1610 f394 = f367 + f373;
1611 f395 = f367 - f373;
1612 f396 = MUL_C(COEF_CONST(0.7071067811865476), f395);
1613 f397 = MUL_C(COEF_CONST(0.7071067811865476), f394);
1614 f398 = f365 + f375;
1615 f399 = f375 - f365;
1616 f400 = MUL_C(COEF_CONST(0.7071067811865476), f399);
1617 f401 = MUL_C(COEF_CONST(0.7071067811865476), f398);
1618 f402 = f355 - f388;
1619 f403 = f355 + f388;
1620 f404 = f389 - f385;
1621 f405 = f385 + f389;
1622 f406 = f361 + f392;
1623 f407 = f392 - f361;
1624 f408 = f379 - f393;
1625 f409 = f379 + f393;
1626 f410 = f357 + f396;
1627 f411 = f396 - f357;
1628 f412 = f383 - f397;
1629 f413 = f383 + f397;
1630 f414 = f359 - f400;
1631 f415 = f359 + f400;
1632 f416 = f401 - f381;
1633 f417 = f381 + f401;
1634 f418 = f409 + f407;
1635 f419 = MUL_C(COEF_CONST((-0.5411961001461969)), f409);
1636 f420 = MUL_C(COEF_CONST(0.9238795325112867), f418);
1637 f421 = MUL_C(COEF_CONST(1.3065629648763766), f407);
1638 f422 = f419 + f420;
1639 f423 = f421 - f420;
1640 f424 = f408 - f406;
1641 f425 = MUL_C(COEF_CONST(1.3065629648763770), f408);
1642 f426 = MUL_C(COEF_CONST((-0.3826834323650904)), f424);
1643 f427 = MUL_C(COEF_CONST(0.5411961001461961), f406);
1644 f428 = f425 + f426;
1645 f429 = f426 + f427;
1646 f430 = f415 - f417;
1647 f431 = MUL_C(COEF_CONST((-0.5411961001461969)), f417);
1648 f432 = MUL_C(COEF_CONST(0.9238795325112867), f430);
1649 f433 = MUL_C(COEF_CONST(1.3065629648763766), f415);
1650 f434 = f432 - f431;
1651 f435 = f433 - f432;
1652 f436 = f416 + f414;
1653 f437 = MUL_C(COEF_CONST(1.3065629648763770), f416);
1654 f438 = MUL_C(COEF_CONST((-0.3826834323650904)), f436);
1655 f439 = MUL_C(COEF_CONST(0.5411961001461961), f414);
1656 f440 = f437 + f438;
1657 f441 = f439 - f438;
1658 f442 = f403 - f422;
1659 f443 = f403 + f422;
1660 f444 = f405 + f423;
1661 f445 = f423 - f405;
1662 f446 = f402 - f428;
1663 f447 = f402 + f428;
1664 f448 = f404 + f429;
1665 f449 = f404 - f429;
1666 f450 = f411 - f434;
1667 f451 = f411 + f434;
1668 f452 = f413 - f435;
1669 f453 = f413 + f435;
1670 f454 = f410 + f440;
1671 f455 = f440 - f410;
1672 f456 = f412 - f441;
1673 f457 = f412 + f441;
1674 f458 = f453 + f451;
1675 f459 = MUL_C(COEF_CONST((-0.7856949583871021)), f453);
1676 f460 = MUL_C(COEF_CONST(0.9807852804032304), f458);
1677 f461 = MUL_C(COEF_CONST(1.1758756024193588), f451);
1678 f462 = f459 + f460;
1679 f463 = f461 - f460;
1680 f464 = f457 + f455;
1681 f465 = MUL_C(COEF_CONST(0.2758993792829431), f457);
1682 f466 = MUL_C(COEF_CONST(0.5555702330196022), f464);
1683 f467 = MUL_C(COEF_CONST(1.3870398453221475), f455);
1684 f468 = f465 + f466;
1685 f469 = f467 - f466;
1686 f470 = f452 + f450;
1687 f471 = MUL_C(COEF_CONST(1.1758756024193591), f452);
1688 f472 = MUL_C(COEF_CONST((-0.1950903220161287)), f470);
1689 f473 = MUL_C(COEF_CONST(0.7856949583871016), f450);
1690 f474 = f471 + f472;
1691 f475 = f473 - f472;
1692 f476 = f456 - f454;
1693 f477 = MUL_C(COEF_CONST(1.3870398453221473), f456);
1694 f478 = MUL_C(COEF_CONST((-0.8314696123025455)), f476);
1695 f479 = MUL_C(COEF_CONST((-0.2758993792829436)), f454);
1696 f480 = f477 + f478;
1697 f481 = f478 + f479;
1698 f482 = f443 - f462;
1699 f483 = f443 + f462;
1700 f484 = f445 - f463;
1701 f485 = f445 + f463;
1702 f486 = f447 - f468;
1703 f487 = f447 + f468;
1704 f488 = f449 - f469;
1705 f489 = f449 + f469;
1706 f490 = f442 - f474;
1707 f491 = f442 + f474;
1708 f492 = f444 + f475;
1709 f493 = f475 - f444;
1710 f494 = f446 - f480;
1711 f495 = f446 + f480;
1712 f496 = f448 + f481;
1713 f497 = f448 - f481;
1714 f498 = f485 + f483;
1715 f499 = MUL_C(COEF_CONST((-0.9497277818777543)), f485);
1716 f500 = MUL_C(COEF_CONST(0.9987954562051724), f498);
1717 f501 = MUL_C(COEF_CONST(1.0478631305325905), f483);
1718 y[61] = f499 + f500;
1719 y[1] = f501 - f500;
1720 f504 = f489 + f487;
1721 f505 = MUL_C(COEF_CONST((-0.7270510732912801)), f489);
1722 f506 = MUL_C(COEF_CONST(0.9700312531945440), f504);
1723 f507 = MUL_C(COEF_CONST(1.2130114330978079), f487);
1724 y[53] = f505 + f506;
1725 y[9] = f507 - f506;
1726 f510 = f493 + f491;
1727 f511 = MUL_C(COEF_CONST((-0.4764341996931611)), f493);
1728 f512 = MUL_C(COEF_CONST(0.9039892931234433), f510);
1729 f513 = MUL_C(COEF_CONST(1.3315443865537255), f491);
1730 y[45] = f511 + f512;
1731 y[17] = f513 - f512;
1732 f516 = f497 + f495;
1733 f517 = MUL_C(COEF_CONST((-0.2075082269882114)), f497);
1734 f518 = MUL_C(COEF_CONST(0.8032075314806448), f516);
1735 f519 = MUL_C(COEF_CONST(1.3989068359730783), f495);
1736 y[37] = f517 + f518;
1737 y[25] = f519 - f518;
1738 f522 = f484 + f482;
1739 f523 = MUL_C(COEF_CONST(0.0693921705079408), f484);
1740 f524 = MUL_C(COEF_CONST(0.6715589548470183), f522);
1741 f525 = MUL_C(COEF_CONST(1.4125100802019774), f482);
1742 y[29] = f523 + f524;
1743 y[33] = f525 - f524;
1744 f528 = f488 + f486;
1745 f529 = MUL_C(COEF_CONST(0.3436258658070505), f488);
1746 f530 = MUL_C(COEF_CONST(0.5141027441932217), f528);
1747 f531 = MUL_C(COEF_CONST(1.3718313541934939), f486);
1748 y[21] = f529 + f530;
1749 y[41] = f531 - f530;
1750 f534 = f490 - f492;
1751 f535 = MUL_C(COEF_CONST(0.6046542117908007), f492);
1752 f536 = MUL_C(COEF_CONST(0.3368898533922201), f534);
1753 f537 = MUL_C(COEF_CONST(1.2784339185752409), f490);
1754 y[13] = f536 - f535;
1755 y[49] = f537 - f536;
1756 f540 = f496 + f494;
1757 f541 = MUL_C(COEF_CONST(0.8424460355094192), f496);
1758 f542 = MUL_C(COEF_CONST(0.1467304744553618), f540);
1759 f543 = MUL_C(COEF_CONST(1.1359069844201428), f494);
1760 y[5] = f541 + f542;
1761 y[57] = f543 - f542;
1762 f546 = f354 + f384;
1763 f547 = f354 - f384;
1764 f548 = f356 + f382;
1765 f549 = f382 - f356;
1766 f550 = f358 + f380;
1767 f551 = f358 - f380;
1768 f552 = f360 + f378;
1769 f553 = f378 - f360;
1770 f554 = f362 + f376;
1771 f555 = f362 - f376;
1772 f556 = f364 + f374;
1773 f557 = f374 - f364;
1774 f558 = f366 + f372;
1775 f559 = f366 - f372;
1776 f560 = f368 + f370;
1777 f561 = f370 - f368;
1778 f562 = f547 - f561;
1779 f563 = f547 + f561;
1780 f564 = f549 - f559;
1781 f565 = f549 + f559;
1782 f566 = f551 - f557;
1783 f567 = f551 + f557;
1784 f568 = f553 - f555;
1785 f569 = f553 + f555;
1786 f570 = f563 - f569;
1787 f571 = f563 + f569;
1788 f572 = f565 - f567;
1789 f573 = f565 + f567;
1790 f574 = f571 - f573;
1791 y[63] = f571 + f573;
1792 y[31] = MUL_C(COEF_CONST(0.7071067811865476), f574);
1793 f577 = f570 + f572;
1794 f578 = MUL_C(COEF_CONST(1.3065629648763766), f570);
1795 f579 = MUL_C(COEF_CONST((-0.9238795325112866)), f577);
1796 f580 = MUL_C(COEF_CONST((-0.5411961001461967)), f572);
1797 y[15] = f578 + f579;
1798 y[47] = f580 - f579;
1799 f583 = f564 + f562;
1800 f584 = f566 + f564;
1801 f585 = f568 + f566;
1802 f586 = MUL_C(COEF_CONST(0.7071067811865476), f584);
1803 f587 = f562 - f586;
1804 f588 = f562 + f586;
1805 f589 = f583 + f585;
1806 f590 = MUL_C(COEF_CONST(1.3065629648763766), f583);
1807 f591 = MUL_C(COEF_CONST((-0.9238795325112866)), f589);
1808 f592 = MUL_C(COEF_CONST((-0.5411961001461967)), f585);
1809 f593 = f590 + f591;
1810 f594 = f592 - f591;
1811 f595 = f588 - f594;
1812 f596 = f588 + f594;
1813 f597 = f587 - f593;
1814 f598 = f587 + f593;
1815 y[55] = MUL_C(COEF_CONST(0.5097955791041592), f596);
1816 y[39] = MUL_C(COEF_CONST(0.6013448869350453), f598);
1817 y[23] = MUL_C(COEF_CONST(0.8999762231364156), f597);
1818 y[7] = MUL_C(COEF_CONST(2.5629154477415055), f595);
1819 f603 = MUL_C(COEF_CONST(0.5024192861881557), f546);
1820 f604 = MUL_C(COEF_CONST(0.5224986149396889), f548);
1821 f605 = MUL_C(COEF_CONST(0.5669440348163577), f550);
1822 f606 = MUL_C(COEF_CONST(0.6468217833599901), f552);
1823 f607 = MUL_C(COEF_CONST(0.7881546234512502), f554);
1824 f608 = MUL_C(COEF_CONST(1.0606776859903471), f556);
1825 f609 = MUL_C(COEF_CONST(1.7224470982383342), f558);
1826 f610 = MUL_C(COEF_CONST(5.1011486186891553), f560);
1827 f611 = f603 + f610;
1828 f612 = f603 - f610;
1829 f613 = f604 + f609;
1830 f614 = f609 - f604;
1831 f615 = f605 + f608;
1832 f616 = f605 - f608;
1833 f617 = f606 + f607;
1834 f618 = f607 - f606;
1835 f619 = f612 - f618;
1836 f620 = f612 + f618;
1837 f621 = f614 - f616;
1838 f622 = f614 + f616;
1839 f623 = f620 - f622;
1840 f624 = f620 + f622;
1841 f625 = MUL_C(COEF_CONST(0.7071067811865476), f623);
1842 f626 = f619 + f621;
1843 f627 = MUL_C(COEF_CONST(1.3065629648763766), f619);
1844 f628 = MUL_C(COEF_CONST((-0.9238795325112866)), f626);
1845 f629 = MUL_C(COEF_CONST((-0.5411961001461967)), f621);
1846 f630 = f627 + f628;
1847 f631 = f629 - f628;
1848 f632 = f611 - f613;
1849 f633 = f615 - f613;
1850 f634 = f615 - f617;
1851 f635 = MUL_C(COEF_CONST(0.7071067811865476), f633);
1852 f636 = f611 - f635;
1853 f637 = f611 + f635;
1854 f638 = f632 + f634;
1855 f639 = MUL_C(COEF_CONST(1.3065629648763766), f632);
1856 f640 = MUL_C(COEF_CONST((-0.9238795325112866)), f638);
1857 f641 = MUL_C(COEF_CONST((-0.5411961001461967)), f634);
1858 f642 = f639 + f640;
1859 f643 = f641 - f640;
1860 f644 = f637 - f643;
1861 f645 = f637 + f643;
1862 f646 = f636 - f642;
1863 f647 = f636 + f642;
1864 f648 = MUL_C(COEF_CONST(0.5097955791041592), f645);
1865 f649 = MUL_C(COEF_CONST(0.6013448869350453), f647);
1866 f650 = MUL_C(COEF_CONST(0.8999762231364156), f646);
1867 y[3] = MUL_C(COEF_CONST(2.5629154477415055), f644);
1868 y[59] = f624 + f648;
1869 y[51] = f648 + f631;
1870 y[43] = f631 + f649;
1871 y[35] = f649 + f625;
1872 y[27] = f625 + f650;
1873 y[19] = f650 + f630;
1874 y[11] = f630 + y[3];
1095 } 1875 }
1096 1876
1097 #else 1877 #else
1098 1878
1099 void DCT4_64(real_t *y, real_t *x) 1879 void DCT4_64(real_t *y, real_t *x)
1100 { 1880 {
1101 int16_t i0; 1881 int16_t i0;
1102 real_t f2; 1882 ALIGN static real_t t2[64];
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 1883
1842 t2[0] = x[0]; 1884 t2[0] = x[0];
1843 for (i0=0; i0<31; i0++) 1885 for (i0=0; i0<31; i0++)
1844 { 1886 {
1845 t2[2*i0+1] = x[2*i0+1] - x[2*i0+2]; 1887 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]; 1888 t2[2*i0+2] = x[2*i0+1] + x[2*i0+2];
1847 } 1889 }
1848 t2[63] = x[63]; 1890 t2[63] = x[63];
1891
1892 DCT4_64_kernel(y, t2);
1893 }
1894
1895 void DCT4_64_kernel(real_t *y, real_t *t2)
1896 {
1897 real_t f2, f3, f4, f5, f6, f7, f8;
1898 real_t f9, f10, f11, f12, f13, f14, f15;
1899 real_t f16, f17, f18, f19, f20, f21, f22;
1900 real_t f23, f24, f25, f26, f27, f28, f29;
1901 real_t f30, f31, f32, f33, f34, f35, f36;
1902 real_t f37, f38, f39, f40, f41, f42, f43;
1903 real_t f44, f45, f46, f47, f48, f49, f50;
1904 real_t f51, f52, f53, f54, f55, f56, f57;
1905 real_t f58, f59, f60, f61, f62, f63, f64;
1906 real_t f65, f66, f67, f68, f69, f70, f71;
1907 real_t f72, f73, f74, f75, f76, f77, f78;
1908 real_t f79, f80, f81, f82, f83, f84, f85;
1909 real_t f86, f87, f88, f89, f90, f91, f92;
1910 real_t f93, f94, f95, f96, f97, f98, f99;
1911 real_t f100, f101, f102, f103, f104, f105, f106;
1912 real_t f107, f108, f109, f110, f111, f112, f113;
1913 real_t f114, f115, f116, f117, f118, f119, f120;
1914 real_t f121, f122, f123, f124, f125, f126, f127;
1915 real_t f128, f129, f130, f131, f132, f133, f134;
1916 real_t f135, f136, f137, f138, f139, f140, f141;
1917 real_t f142, f143, f144, f145, f146, f147, f148;
1918 real_t f149, f150, f151, f152, f153, f154, f155;
1919 real_t f156, f157, f158, f159, f160, f161, f162;
1920 real_t f163, f164, f165, f166, f167, f168, f169;
1921 real_t f170, f171, f172, f173, f174, f175, f176;
1922 real_t f177, f178, f179, f180, f181, f182, f183;
1923 real_t f184, f185, f186, f187, f188, f189, f190;
1924 real_t f191, f192, f193, f194, f195, f196, f197;
1925 real_t f198, f199, f200, f201, f202, f203, f204;
1926 real_t f205, f206, f207, f208, f209, f210, f211;
1927 real_t f212, f213, f214, f215, f216, f217, f218;
1928 real_t f219, f220, f221, f222, f223, f224, f225;
1929 real_t f226, f227, f228, f229, f230, f231, f232;
1930 real_t f233, f234, f235, f236, f237, f238, f239;
1931 real_t f240, f241, f242, f243, f244, f245, f246;
1932 real_t f247, f248, f249, f250, f251, f252, f253;
1933 real_t f254, f255, f256, f257, f258, f259, f260;
1934 real_t f261, f262, f263, f264, f265, f266, f267;
1935 real_t f268, f269, f270, f271, f272, f273, f274;
1936 real_t f275, f276, f277, f278, f279, f280, f281;
1937 real_t f282, f283, f284, f285, f286, f287, f288;
1938 real_t f289, f290, f291, f292, f293, f294, f295;
1939 real_t f296, f297, f298, f299, f300, f301, f302;
1940 real_t f303, f304, f305, f306, f307, f308, f309;
1941 real_t f310, f311, f312, f313, f314, f315, f316;
1942 real_t f317, f318, f319, f320, f321, f322, f323;
1943 real_t f324, f325, f326, f327, f328, f329, f330;
1944 real_t f331, f332, f333, f334, f335, f336, f337;
1945 real_t f338, f339, f340, f341, f342, f343, f344;
1946 real_t f345, f346, f347, f348, f349, f350, f351;
1947 real_t f352, f353, f354, f355, f356, f357, f358;
1948 real_t f359, f360, f361, f362, f363, f364, f365;
1949 real_t f366, f367, f368, f369, f370, f371, f372;
1950 real_t f373, f374, f375, f376, f377, f378, f379;
1951 real_t f380, f381, f382, f383, f384, f385, f386;
1952 real_t f387, f388, f389, f390, f391, f392, f393;
1953 real_t f394, f395, f396, f397, f398, f399, f400;
1954 real_t f401, f402, f403, f404, f405, f406, f407;
1955 real_t f408, f409, f410, f411, f412, f413, f414;
1956 real_t f415, f416, f417, f418, f419, f420, f421;
1957 real_t f422, f423, f424, f425, f426, f427, f428;
1958 real_t f429, f430, f431, f432, f433, f434, f435;
1959 real_t f436, f437, f438, f439, f440, f441, f442;
1960 real_t f443, f444, f445, f446, f447, f448, f449;
1961 real_t f450, f451, f452, f453, f454, f455, f456;
1962 real_t f457, f458, f459, f460, f461, f462, f463;
1963 real_t f464, f465, f466, f467, f468, f469, f470;
1964 real_t f471, f472, f473, f474, f475, f476, f477;
1965 real_t f478, f479, f480, f481, f482, f483, f484;
1966 real_t f485, f486, f487, f488, f489, f490, f491;
1967 real_t f492, f493, f494, f495, f496, f497, f498;
1968 real_t f499, f500, f501, f502, f503, f504, f505;
1969 real_t f506, f507, f508, f509, f510, f511, f512;
1970 real_t f513, f514, f515, f516, f517, f518, f519;
1971 real_t f520, f521, f522, f523, f524, f525, f526;
1972 real_t f527, f528, f529, f530, f531, f532, f533;
1973 real_t f534, f535, f536, f537, f538, f539, f540;
1974 real_t f541, f542, f543, f544, f545, f546, f547;
1975 real_t f548, f549, f550, f551, f552, f553, f554;
1976 real_t f555, f556, f557, f558, f559, f560, f561;
1977 real_t f562, f563, f564, f565, f566, f567, f568;
1978 real_t f569, f570, f571, f572, f573, f574, f575;
1979 real_t f576, f577, f578, f579, f580, f581, f582;
1980 real_t f583, f584, f585, f586, f587, f588, f589;
1981 real_t f590, f591, f592, f593, f594, f595, f596;
1982 real_t f597, f598, f599, f600, f601, f602, f603;
1983 real_t f604, f605, f606, f607, f608, f609, f610;
1984 real_t f611, f612, f613, f614, f615, f618, f619;
1985 real_t f620, f621, f624, f625, f626, f627, f630;
1986 real_t f631, f632, f633, f636, f637, f638, f639;
1987 real_t f642, f643, f644, f645, f648, f649, f650;
1988 real_t f651, f654, f655, f656, f657, f660, f661;
1989 real_t f662, f663, f666, f667, f668, f669, f672;
1990 real_t f673, f674, f675, f678, f679, f680, f681;
1991 real_t f684, f685, f686, f687, f690, f691, f692;
1992 real_t f693, f696, f697, f698, f699, f702, f703;
1993 real_t f704, f705, f708, f709, f710, f711, f714;
1994 real_t f715, f716, f717, f720, f721, f722, f723;
1995 real_t f726, f727, f728, f729, f732, f733, f734;
1996 real_t f735, f738, f739, f740, f741, f744, f745;
1997 real_t f746, f747, f750, f751, f752, f753, f756;
1998 real_t f757, f758, f759, f762, f763, f764, f765;
1999 real_t f768, f769, f770, f771, f774, f775, f776;
2000 real_t f777, f780, f781, f782, f783, f786, f787;
2001 real_t f788, f789, f792, f793, f794, f795, f798;
2002 real_t f799, f800, f801;
2003
1849 f2 = 0.7071067811865476 * t2[32]; 2004 f2 = 0.7071067811865476 * t2[32];
1850 f3 = x[0] - f2; 2005 f3 = t2[0] - f2;
1851 f4 = x[0] + f2; 2006 f4 = t2[0] + f2;
1852 f5 = t2[16] + t2[48]; 2007 f5 = t2[16] + t2[48];
1853 f6 = 1.3065629648763766 * t2[16]; 2008 f6 = 1.3065629648763766 * t2[16];
1854 f7 = (-0.9238795325112866) * f5; 2009 f7 = (-0.9238795325112866) * f5;
1855 f8 = (-0.5411961001461967) * t2[48]; 2010 f8 = (-0.5411961001461967) * t2[48];
1856 f9 = f6 + f7; 2011 f9 = f6 + f7;
2310 f463 = f447 - f449; 2465 f463 = f447 - f449;
2311 f464 = f447 + f449; 2466 f464 = f447 + f449;
2312 f465 = 0.7071067811865474 * f463; 2467 f465 = 0.7071067811865474 * f463;
2313 f466 = 0.7071067811865474 * f464; 2468 f466 = 0.7071067811865474 * f464;
2314 f467 = 0.7071067811865476 * t2[31]; 2469 f467 = 0.7071067811865476 * t2[31];
2315 f468 = x[63] - f467; 2470 f468 = t2[63] - f467;
2316 f469 = x[63] + f467; 2471 f469 = t2[63] + f467;
2317 f470 = t2[47] + t2[15]; 2472 f470 = t2[47] + t2[15];
2318 f471 = 1.3065629648763766 * t2[47]; 2473 f471 = 1.3065629648763766 * t2[47];
2319 f472 = (-0.9238795325112866) * f470; 2474 f472 = (-0.9238795325112866) * f470;
2320 f473 = (-0.5411961001461967) * t2[15]; 2475 f473 = (-0.5411961001461967) * t2[15];
2321 f474 = f471 + f472; 2476 f474 = f471 + f472;