2 ** FAAD2 - Freeware Advanced Audio (AAC) Decoder including SBR decoding
3 ** Copyright (C) 2003-2004 M. Bakker, Ahead Software AG, http://www.nero.com
5 ** This program is free software; you can redistribute it and/or modify
6 ** it under the terms of the GNU General Public License as published by
7 ** the Free Software Foundation; either version 2 of the License, or
8 ** (at your option) any later version.
10 ** This program is distributed in the hope that it will be useful,
11 ** but WITHOUT ANY WARRANTY; without even the implied warranty of
12 ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 ** GNU General Public License for more details.
15 ** You should have received a copy of the GNU General Public License
16 ** along with this program; if not, write to the Free Software
17 ** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
19 ** Any non-GPL usage of this software or parts of this software is strictly
22 ** Commercial non-GPL licensing of this software is possible.
23 ** For more info contact Ahead Software through Mpeg4AAClicense@nero.com.
29 #include "../lib/fft.h"
30 #include "../lib/mdct_lookup.h"
36 #pragma warning(disable:4305)
37 #pragma warning(disable:4244)
43 void DCT4_32(real_t
*y
, real_t
*x
)
45 real_t f0
, f1
, f2
, f3
, f4
, f5
, f6
, f7
, f8
, f9
, f10
;
46 real_t f11
, f12
, f13
, f14
, f15
, f16
, f17
, f18
, f19
, f20
;
47 real_t f21
, f22
, f23
, f24
, f25
, f26
, f27
, f28
, f29
, f30
;
48 real_t f31
, f32
, f33
, f34
, f35
, f36
, f37
, f38
, f39
, f40
;
49 real_t f41
, f42
, f43
, f44
, f45
, f46
, f47
, f48
, f49
, f50
;
50 real_t f51
, f52
, f53
, f54
, f55
, f56
, f57
, f58
, f59
, f60
;
51 real_t f61
, f62
, f63
, f64
, f65
, f66
, f67
, f68
, f69
, f70
;
52 real_t f71
, f72
, f73
, f74
, f75
, f76
, f77
, f78
, f79
, f80
;
53 real_t f81
, f82
, f83
, f84
, f85
, f86
, f87
, f88
, f89
, f90
;
54 real_t f91
, f92
, f93
, f94
, f95
, f96
, f97
, f98
, f99
, f100
;
55 real_t f101
, f102
, f103
, f104
, f105
, f106
, f107
, f108
, f109
, f110
;
56 real_t f111
, f112
, f113
, f114
, f115
, f116
, f117
, f118
, f119
, f120
;
57 real_t f121
, f122
, f123
, f124
, f125
, f126
, f127
, f128
, f129
, f130
;
58 real_t f131
, f132
, f133
, f134
, f135
, f136
, f137
, f138
, f139
, f140
;
59 real_t f141
, f142
, f143
, f144
, f145
, f146
, f147
, f148
, f149
, f150
;
60 real_t f151
, f152
, f153
, f154
, f155
, f156
, f157
, f158
, f159
, f160
;
61 real_t f161
, f162
, f163
, f164
, f165
, f166
, f167
, f168
, f169
, f170
;
62 real_t f171
, f172
, f173
, f174
, f175
, f176
, f177
, f178
, f179
, f180
;
63 real_t f181
, f182
, f183
, f184
, f185
, f186
, f187
, f188
, f189
, f190
;
64 real_t f191
, f192
, f193
, f194
, f195
, f196
, f197
, f198
, f199
, f200
;
65 real_t f201
, f202
, f203
, f204
, f205
, f206
, f207
, f208
, f209
, f210
;
66 real_t f211
, f212
, f213
, f214
, f215
, f216
, f217
, f218
, f219
, f220
;
67 real_t f221
, f222
, f223
, f224
, f225
, f226
, f227
, f228
, f229
, f230
;
68 real_t f231
, f232
, f233
, f234
, f235
, f236
, f237
, f238
, f239
, f240
;
69 real_t f241
, f242
, f243
, f244
, f245
, f246
, f247
, f248
, f249
, f250
;
70 real_t f251
, f252
, f253
, f254
, f255
, f256
, f257
, f258
, f259
, f260
;
71 real_t f261
, f262
, f263
, f264
, f265
, f266
, f267
, f268
, f269
, f270
;
72 real_t f271
, f272
, f273
, f274
, f275
, f276
, f277
, f278
, f279
, f280
;
73 real_t f281
, f282
, f283
, f284
, f285
, f286
, f287
, f288
, f289
, f290
;
74 real_t f291
, f292
, f293
, f294
, f295
, f296
, f297
, f298
, f299
, f300
;
75 real_t f301
, f302
, f303
, f304
, f305
, f306
, f307
, f310
, f311
, f312
;
76 real_t f313
, f316
, f317
, f318
, f319
, f322
, f323
, f324
, f325
, f328
;
77 real_t f329
, f330
, f331
, f334
, f335
, f336
, f337
, f340
, f341
, f342
;
78 real_t f343
, f346
, f347
, f348
, f349
, f352
, f353
, f354
, f355
, f358
;
79 real_t f359
, f360
, f361
, f364
, f365
, f366
, f367
, f370
, f371
, f372
;
80 real_t f373
, f376
, f377
, f378
, f379
, f382
, f383
, f384
, f385
, f388
;
81 real_t f389
, f390
, f391
, f394
, f395
, f396
, f397
;
85 f2
= MUL_F(FRAC_CONST(0.7071067811865476), f1
);
86 f3
= MUL_F(FRAC_CONST(0.7071067811865476), f0
);
89 f6
= MUL_F(FRAC_CONST(0.7071067811865476), f5
);
90 f7
= MUL_F(FRAC_CONST(0.7071067811865476), f4
);
93 f10
= MUL_F(FRAC_CONST(0.7071067811865476), f9
);
94 f11
= MUL_F(FRAC_CONST(0.7071067811865476), f8
);
97 f14
= MUL_F(FRAC_CONST(0.7071067811865476), f13
);
98 f15
= MUL_F(FRAC_CONST(0.7071067811865476), f12
);
101 f18
= MUL_F(FRAC_CONST(0.7071067811865476), f17
);
102 f19
= MUL_F(FRAC_CONST(0.7071067811865476), f16
);
105 f22
= MUL_F(FRAC_CONST(0.7071067811865476), f21
);
106 f23
= MUL_F(FRAC_CONST(0.7071067811865476), f20
);
109 f26
= MUL_F(FRAC_CONST(0.7071067811865476), f25
);
110 f27
= MUL_F(FRAC_CONST(0.7071067811865476), f24
);
113 f30
= MUL_F(FRAC_CONST(0.7071067811865476), f29
);
114 f31
= MUL_F(FRAC_CONST(0.7071067811865476), f28
);
148 f65
= MUL_F(FRAC_CONST(-0.5411961001461969), f39
);
149 f66
= MUL_F(FRAC_CONST(0.9238795325112867), f64
);
150 f67
= MUL_C(COEF_CONST(1.3065629648763766), f37
);
154 f71
= MUL_C(COEF_CONST(1.3065629648763770), f38
);
155 f72
= MUL_F(FRAC_CONST(-0.3826834323650904), f70
);
156 f73
= MUL_F(FRAC_CONST(0.5411961001461961), f36
);
160 f77
= MUL_F(FRAC_CONST(-0.5411961001461969), f47
);
161 f78
= MUL_F(FRAC_CONST(0.9238795325112867), f76
);
162 f79
= MUL_C(COEF_CONST(1.3065629648763766), f45
);
166 f83
= MUL_C(COEF_CONST(1.3065629648763770), f46
);
167 f84
= MUL_F(FRAC_CONST(-0.3826834323650904), f82
);
168 f85
= MUL_F(FRAC_CONST(0.5411961001461961), f44
);
172 f89
= MUL_F(FRAC_CONST(-0.5411961001461969), f55
);
173 f90
= MUL_F(FRAC_CONST(0.9238795325112867), f88
);
174 f91
= MUL_C(COEF_CONST(1.3065629648763766), f53
);
178 f95
= MUL_C(COEF_CONST(1.3065629648763770), f54
);
179 f96
= MUL_F(FRAC_CONST(-0.3826834323650904), f94
);
180 f97
= MUL_F(FRAC_CONST(0.5411961001461961), f52
);
184 f101
= MUL_F(FRAC_CONST(-0.5411961001461969), f63
);
185 f102
= MUL_F(FRAC_CONST(0.9238795325112867), f100
);
186 f103
= MUL_C(COEF_CONST(1.3065629648763766), f61
);
190 f107
= MUL_C(COEF_CONST(1.3065629648763770), f62
);
191 f108
= MUL_F(FRAC_CONST(-0.3826834323650904), f106
);
192 f109
= MUL_F(FRAC_CONST(0.5411961001461961), f60
);
228 f145
= MUL_F(FRAC_CONST(-0.7856949583871021), f123
);
229 f146
= MUL_F(FRAC_CONST(0.9807852804032304), f144
);
230 f147
= MUL_C(COEF_CONST(1.1758756024193588), f121
);
234 f151
= MUL_F(FRAC_CONST(0.2758993792829431), f127
);
235 f152
= MUL_F(FRAC_CONST(0.5555702330196022), f150
);
236 f153
= MUL_C(COEF_CONST(1.3870398453221475), f125
);
240 f157
= MUL_C(COEF_CONST(1.1758756024193591), f122
);
241 f158
= MUL_F(FRAC_CONST(-0.1950903220161287), f156
);
242 f159
= MUL_F(FRAC_CONST(0.7856949583871016), f120
);
246 f163
= MUL_C(COEF_CONST(1.3870398453221473), f126
);
247 f164
= MUL_F(FRAC_CONST(-0.8314696123025455), f162
);
248 f165
= MUL_F(FRAC_CONST(-0.2758993792829436), f124
);
252 f169
= MUL_F(FRAC_CONST(-0.7856949583871021), f139
);
253 f170
= MUL_F(FRAC_CONST(0.9807852804032304), f168
);
254 f171
= MUL_C(COEF_CONST(1.1758756024193588), f137
);
258 f175
= MUL_F(FRAC_CONST(0.2758993792829431), f143
);
259 f176
= MUL_F(FRAC_CONST(0.5555702330196022), f174
);
260 f177
= MUL_C(COEF_CONST(1.3870398453221475), f141
);
264 f181
= MUL_C(COEF_CONST(1.1758756024193591), f138
);
265 f182
= MUL_F(FRAC_CONST(-0.1950903220161287), f180
);
266 f183
= MUL_F(FRAC_CONST(0.7856949583871016), f136
);
270 f187
= MUL_C(COEF_CONST(1.3870398453221473), f142
);
271 f188
= MUL_F(FRAC_CONST(-0.8314696123025455), f186
);
272 f189
= MUL_F(FRAC_CONST(-0.2758993792829436), f140
);
308 f225
= MUL_F(FRAC_CONST(-0.8971675863426361), f211
);
309 f226
= MUL_F(FRAC_CONST(0.9951847266721968), f224
);
310 f227
= MUL_C(COEF_CONST(1.0932018670017576), f209
);
314 f231
= MUL_F(FRAC_CONST(-0.4105245275223571), f215
);
315 f232
= MUL_F(FRAC_CONST(0.8819212643483549), f230
);
316 f233
= MUL_C(COEF_CONST(1.3533180011743529), f213
);
320 f237
= MUL_F(FRAC_CONST(0.1386171691990915), f219
);
321 f238
= MUL_F(FRAC_CONST(0.6343932841636455), f236
);
322 f239
= MUL_C(COEF_CONST(1.4074037375263826), f217
);
326 f243
= MUL_F(FRAC_CONST(0.6666556584777466), f223
);
327 f244
= MUL_F(FRAC_CONST(0.2902846772544623), f242
);
328 f245
= MUL_C(COEF_CONST(1.2472250129866711), f221
);
332 f249
= MUL_C(COEF_CONST(1.0932018670017574), f210
);
333 f250
= MUL_F(FRAC_CONST(-0.0980171403295605), f248
);
334 f251
= MUL_F(FRAC_CONST(0.8971675863426364), f208
);
338 f255
= MUL_C(COEF_CONST(1.3533180011743529), f214
);
339 f256
= MUL_F(FRAC_CONST(-0.4713967368259979), f254
);
340 f257
= MUL_F(FRAC_CONST(0.4105245275223569), f212
);
344 f261
= MUL_C(COEF_CONST(1.4074037375263826), f218
);
345 f262
= MUL_F(FRAC_CONST(-0.7730104533627369), f260
);
346 f263
= MUL_F(FRAC_CONST(-0.1386171691990913), f216
);
350 f267
= MUL_C(COEF_CONST(1.2472250129866711), f222
);
351 f268
= MUL_F(FRAC_CONST(-0.9569403357322089), f266
);
352 f269
= MUL_F(FRAC_CONST(-0.6666556584777469), f220
);
388 f305
= MUL_F(FRAC_CONST(-0.9751575901732920), f275
);
389 f306
= MUL_F(FRAC_CONST(0.9996988186962043), f304
);
390 f307
= MUL_C(COEF_CONST(1.0242400472191164), f273
);
394 f311
= MUL_F(FRAC_CONST(-0.8700688593994936), f279
);
395 f312
= MUL_F(FRAC_CONST(0.9924795345987100), f310
);
396 f313
= MUL_C(COEF_CONST(1.1148902097979263), f277
);
400 f317
= MUL_F(FRAC_CONST(-0.7566008898816587), f283
);
401 f318
= MUL_F(FRAC_CONST(0.9757021300385286), f316
);
402 f319
= MUL_C(COEF_CONST(1.1948033701953984), f281
);
406 f323
= MUL_F(FRAC_CONST(-0.6358464401941451), f287
);
407 f324
= MUL_F(FRAC_CONST(0.9495281805930367), f322
);
408 f325
= MUL_C(COEF_CONST(1.2632099209919283), f285
);
412 f329
= MUL_F(FRAC_CONST(-0.5089684416985408), f291
);
413 f330
= MUL_F(FRAC_CONST(0.9142097557035307), f328
);
414 f331
= MUL_C(COEF_CONST(1.3194510697085207), f289
);
418 f335
= MUL_F(FRAC_CONST(-0.3771887988789273), f295
);
419 f336
= MUL_F(FRAC_CONST(0.8700869911087114), f334
);
420 f337
= MUL_C(COEF_CONST(1.3629851833384954), f293
);
424 f341
= MUL_F(FRAC_CONST(-0.2417766217337384), f299
);
425 f342
= MUL_F(FRAC_CONST(0.8175848131515837), f340
);
426 f343
= MUL_C(COEF_CONST(1.3933930045694289), f297
);
430 f347
= MUL_F(FRAC_CONST(-0.1040360035527077), f303
);
431 f348
= MUL_F(FRAC_CONST(0.7572088465064845), f346
);
432 f349
= MUL_C(COEF_CONST(1.4103816894602612), f301
);
436 f353
= MUL_F(FRAC_CONST(0.0347065382144002), f274
);
437 f354
= MUL_F(FRAC_CONST(0.6895405447370668), f352
);
438 f355
= MUL_C(COEF_CONST(1.4137876276885337), f272
);
442 f359
= MUL_F(FRAC_CONST(0.1731148370459795), f278
);
443 f360
= MUL_F(FRAC_CONST(0.6152315905806268), f358
);
444 f361
= MUL_C(COEF_CONST(1.4035780182072330), f276
);
448 f365
= MUL_F(FRAC_CONST(0.3098559453626100), f282
);
449 f366
= MUL_F(FRAC_CONST(0.5349976198870972), f364
);
450 f367
= MUL_C(COEF_CONST(1.3798511851368043), f280
);
454 f371
= MUL_F(FRAC_CONST(0.4436129715409088), f286
);
455 f372
= MUL_F(FRAC_CONST(0.4496113296546065), f370
);
456 f373
= MUL_C(COEF_CONST(1.3428356308501219), f284
);
460 f377
= MUL_F(FRAC_CONST(0.5730977622997509), f290
);
461 f378
= MUL_F(FRAC_CONST(0.3598950365349881), f376
);
462 f379
= MUL_C(COEF_CONST(1.2928878353697271), f288
);
466 f383
= MUL_F(FRAC_CONST(0.6970633083205415), f294
);
467 f384
= MUL_F(FRAC_CONST(0.2667127574748984), f382
);
468 f385
= MUL_C(COEF_CONST(1.2304888232703382), f292
);
472 f389
= MUL_F(FRAC_CONST(0.8143157536286401), f298
);
473 f390
= MUL_F(FRAC_CONST(0.1709618887603012), f388
);
474 f391
= MUL_C(COEF_CONST(1.1562395311492424), f296
);
478 f395
= MUL_F(FRAC_CONST(0.9237258930790228), f302
);
479 f396
= MUL_F(FRAC_CONST(0.0735645635996674), f394
);
480 f397
= MUL_C(COEF_CONST(1.0708550202783576), f300
);
487 void DCT2_16_unscaled(real_t
*y
, real_t
*x
)
489 real_t f0
, f1
, f2
, f3
, f4
, f5
, f6
, f7
, f8
, f9
, f10
;
490 real_t f11
, f12
, f13
, f14
, f15
, f16
, f17
, f18
, f19
, f20
;
491 real_t f21
, f22
, f23
, f24
, f25
, f26
, f27
, f28
, f31
, f32
;
492 real_t f33
, f34
, f37
, f38
, f39
, f40
, f41
, f42
, f43
, f44
;
493 real_t f45
, f46
, f47
, f48
, f49
, f51
, f53
, f54
, f57
, f58
;
494 real_t f59
, f60
, f61
, f62
, f63
, f64
, f65
, f66
, f67
, f68
;
495 real_t f69
, f70
, f71
, f72
, f73
, f74
, f75
, f76
, f77
, f78
;
496 real_t f79
, f80
, f81
, f82
, f83
, f84
, f85
, f86
, f87
, f88
;
497 real_t f89
, f90
, f91
, f92
, f95
, f96
, f97
, f98
, f101
, f102
;
498 real_t f103
, f104
, f107
, f108
, f109
, f110
;
530 y
[8] = MUL_F(f28
, FRAC_CONST(0.7071067811865476));
532 f32
= MUL_C(f24
, COEF_CONST(1.3065629648763766));
533 f33
= MUL_F(f31
, FRAC_CONST(-0.9238795325112866));
534 f34
= MUL_F(f26
, FRAC_CONST(-0.5411961001461967));
538 f38
= MUL_C(f16
, COEF_CONST(1.1758756024193588));
539 f39
= MUL_F(f37
, FRAC_CONST(-0.9807852804032304));
540 f40
= MUL_F(f22
, FRAC_CONST(-0.7856949583871021));
544 f44
= MUL_C(f18
, COEF_CONST(1.3870398453221473));
545 f45
= MUL_F(f43
, FRAC_CONST(-0.8314696123025455));
546 f46
= MUL_F(f20
, FRAC_CONST(-0.2758993792829436));
551 f51
= MUL_F(f49
, FRAC_CONST(0.7071067811865476));
554 f54
= MUL_F(f53
, FRAC_CONST(0.7071067811865476));
563 f63
= MUL_F(f60
, FRAC_CONST(0.7071067811865476));
567 f67
= MUL_C(f58
, COEF_CONST(1.3065629648763766));
568 f68
= MUL_F(f66
, FRAC_CONST(-0.9238795325112866));
569 f69
= MUL_F(f62
, FRAC_CONST(-0.5411961001461967));
576 f76
= MUL_F(f59
, FRAC_CONST(0.7071067811865476));
580 f80
= MUL_C(f61
, COEF_CONST(1.3065629648763766));
581 f81
= MUL_F(f79
, FRAC_CONST(-0.9238795325112866));
582 f82
= MUL_F(f57
, FRAC_CONST(-0.5411961001461967));
590 f90
= MUL_F(f86
, FRAC_CONST(-0.8971675863426361));
591 f91
= MUL_F(f89
, FRAC_CONST(0.9951847266721968));
592 f92
= MUL_C(f73
, COEF_CONST(1.0932018670017576));
596 f96
= MUL_F(f88
, FRAC_CONST(-0.6666556584777466));
597 f97
= MUL_F(f95
, FRAC_CONST(0.9569403357322089));
598 f98
= MUL_C(f75
, COEF_CONST(1.2472250129866713));
602 f102
= MUL_F(f87
, FRAC_CONST(-0.4105245275223571));
603 f103
= MUL_F(f101
, FRAC_CONST(0.8819212643483549));
604 f104
= MUL_C(f74
, COEF_CONST(1.3533180011743529));
608 f108
= MUL_F(f85
, FRAC_CONST(-0.1386171691990915));
609 f109
= MUL_F(f107
, FRAC_CONST(0.7730104533627370));
610 f110
= MUL_C(f72
, COEF_CONST(1.4074037375263826));
615 void DCT4_16(real_t
*y
, real_t
*x
)
617 real_t f0
, f1
, f2
, f3
, f4
, f5
, f6
, f7
, f8
, f9
, f10
;
618 real_t f11
, f12
, f13
, f14
, f15
, f16
, f17
, f18
, f19
, f20
;
619 real_t f21
, f22
, f23
, f24
, f25
, f26
, f27
, f28
, f29
, f30
;
620 real_t f31
, f32
, f33
, f34
, f35
, f36
, f37
, f38
, f39
, f40
;
621 real_t f41
, f42
, f43
, f44
, f45
, f46
, f47
, f48
, f49
, f50
;
622 real_t f51
, f52
, f53
, f54
, f55
, f56
, f57
, f58
, f59
, f60
;
623 real_t f61
, f62
, f63
, f64
, f65
, f66
, f67
, f68
, f69
, f70
;
624 real_t f71
, f72
, f73
, f74
, f75
, f76
, f77
, f78
, f79
, f80
;
625 real_t f81
, f82
, f83
, f84
, f85
, f86
, f87
, f88
, f89
, f90
;
626 real_t f91
, f92
, f93
, f94
, f95
, f96
, f97
, f98
, f99
, f100
;
627 real_t f101
, f102
, f103
, f104
, f105
, f106
, f107
, f108
, f109
, f110
;
628 real_t f111
, f112
, f113
, f114
, f115
, f116
, f117
, f118
, f119
, f120
;
629 real_t f121
, f122
, f123
, f124
, f125
, f126
, f127
, f128
, f130
, f132
;
630 real_t f134
, f136
, f138
, f140
, f142
, f144
, f145
, f148
, f149
, f152
;
631 real_t f153
, f156
, f157
;
634 f1
= MUL_C(COEF_CONST(1.0478631305325901), x
[0]);
635 f2
= MUL_F(FRAC_CONST(-0.9987954562051724), f0
);
636 f3
= MUL_F(FRAC_CONST(-0.9497277818777548), x
[15]);
640 f7
= MUL_C(COEF_CONST(1.2130114330978077), x
[2]);
641 f8
= MUL_F(FRAC_CONST(-0.9700312531945440), f6
);
642 f9
= MUL_F(FRAC_CONST(-0.7270510732912803), x
[13]);
646 f13
= MUL_C(COEF_CONST(1.3315443865537255), x
[4]);
647 f14
= MUL_F(FRAC_CONST(-0.9039892931234433), f12
);
648 f15
= MUL_F(FRAC_CONST(-0.4764341996931612), x
[11]);
652 f19
= MUL_C(COEF_CONST(1.3989068359730781), x
[6]);
653 f20
= MUL_F(FRAC_CONST(-0.8032075314806453), f18
);
654 f21
= MUL_F(FRAC_CONST(-0.2075082269882124), x
[9]);
658 f25
= MUL_C(COEF_CONST(1.4125100802019777), x
[8]);
659 f26
= MUL_F(FRAC_CONST(-0.6715589548470187), f24
);
660 f27
= MUL_F(FRAC_CONST(0.0693921705079402), x
[7]);
664 f31
= MUL_C(COEF_CONST(1.3718313541934939), x
[10]);
665 f32
= MUL_F(FRAC_CONST(-0.5141027441932219), f30
);
666 f33
= MUL_F(FRAC_CONST(0.3436258658070501), x
[5]);
670 f37
= MUL_C(COEF_CONST(1.2784339185752409), x
[12]);
671 f38
= MUL_F(FRAC_CONST(-0.3368898533922200), f36
);
672 f39
= MUL_F(FRAC_CONST(0.6046542117908008), x
[3]);
676 f43
= MUL_C(COEF_CONST(1.1359069844201433), x
[14]);
677 f44
= MUL_F(FRAC_CONST(-0.1467304744553624), f42
);
678 f45
= MUL_F(FRAC_CONST(0.8424460355094185), x
[1]);
698 f65
= MUL_C(COEF_CONST(1.1758756024193588), f48
);
699 f66
= MUL_F(FRAC_CONST(-0.9807852804032304), f64
);
700 f67
= MUL_F(FRAC_CONST(-0.7856949583871021), f50
);
704 f71
= MUL_C(COEF_CONST(1.3870398453221475), f52
);
705 f72
= MUL_F(FRAC_CONST(-0.5555702330196022), f70
);
706 f73
= MUL_F(FRAC_CONST(0.2758993792829431), f54
);
710 f77
= MUL_F(FRAC_CONST(0.7856949583871022), f56
);
711 f78
= MUL_F(FRAC_CONST(0.1950903220161283), f76
);
712 f79
= MUL_C(COEF_CONST(1.1758756024193586), f58
);
716 f83
= MUL_F(FRAC_CONST(-0.2758993792829430), f60
);
717 f84
= MUL_F(FRAC_CONST(0.8314696123025452), f82
);
718 f85
= MUL_C(COEF_CONST(1.3870398453221475), f62
);
738 f105
= MUL_C(COEF_CONST(1.3065629648763766), f88
);
739 f106
= MUL_F(FRAC_CONST(-0.9238795325112866), f104
);
740 f107
= MUL_F(FRAC_CONST(-0.5411961001461967), f90
);
744 f111
= MUL_F(FRAC_CONST(0.5411961001461969), f92
);
745 f112
= MUL_F(FRAC_CONST(0.3826834323650898), f110
);
746 f113
= MUL_C(COEF_CONST(1.3065629648763766), f94
);
750 f117
= MUL_C(COEF_CONST(1.3065629648763766), f96
);
751 f118
= MUL_F(FRAC_CONST(-0.9238795325112866), f116
);
752 f119
= MUL_F(FRAC_CONST(-0.5411961001461967), f98
);
756 f123
= MUL_F(FRAC_CONST(0.5411961001461969), f100
);
757 f124
= MUL_F(FRAC_CONST(0.3826834323650898), f122
);
758 f125
= MUL_C(COEF_CONST(1.3065629648763766), f102
);
779 y
[8] = MUL_F(FRAC_CONST(0.7071067811865474), f144
);
780 y
[7] = MUL_F(FRAC_CONST(0.7071067811865474), f145
);
783 y
[11] = MUL_F(FRAC_CONST(0.7071067811865474), f148
);
784 y
[4] = MUL_F(FRAC_CONST(0.7071067811865474), f149
);
787 y
[9] = MUL_F(FRAC_CONST(0.7071067811865474), f152
);
788 y
[6] = MUL_F(FRAC_CONST(0.7071067811865474), f153
);
791 y
[10] = MUL_F(FRAC_CONST(0.7071067811865474), f156
);
792 y
[5] = MUL_F(FRAC_CONST(0.7071067811865474), f157
);
795 void DCT3_32_unscaled(real_t
*y
, real_t
*x
)
797 real_t f0
, f1
, f2
, f3
, f4
, f5
, f6
, f7
, f8
, f9
, f10
;
798 real_t f11
, f12
, f13
, f14
, f15
, f16
, f17
, f18
, f19
, f20
;
799 real_t f21
, f22
, f23
, f24
, f25
, f26
, f27
, f28
, f29
, f30
;
800 real_t f31
, f32
, f33
, f34
, f35
, f36
, f37
, f38
, f39
, f40
;
801 real_t f41
, f42
, f43
, f44
, f45
, f46
, f47
, f48
, f49
, f50
;
802 real_t f51
, f52
, f53
, f54
, f55
, f56
, f57
, f58
, f59
, f60
;
803 real_t f61
, f62
, f63
, f64
, f65
, f66
, f67
, f68
, f69
, f70
;
804 real_t f71
, f72
, f73
, f74
, f75
, f76
, f77
, f78
, f79
, f80
;
805 real_t f81
, f82
, f83
, f84
, f85
, f86
, f87
, f88
, f89
, f90
;
806 real_t f91
, f92
, f93
, f94
, f95
, f96
, f97
, f98
, f99
, f100
;
807 real_t f101
, f102
, f103
, f104
, f105
, f106
, f107
, f108
, f109
, f110
;
808 real_t f111
, f112
, f113
, f114
, f115
, f116
, f117
, f118
, f119
, f120
;
809 real_t f121
, f122
, f123
, f124
, f125
, f126
, f127
, f128
, f129
, f130
;
810 real_t f131
, f132
, f133
, f134
, f135
, f136
, f137
, f138
, f139
, f140
;
811 real_t f141
, f142
, f143
, f144
, f145
, f146
, f147
, f148
, f149
, f150
;
812 real_t f151
, f152
, f153
, f154
, f155
, f156
, f157
, f158
, f159
, f160
;
813 real_t f161
, f162
, f163
, f164
, f165
, f166
, f167
, f168
, f169
, f170
;
814 real_t f171
, f172
, f173
, f174
, f175
, f176
, f177
, f178
, f179
, f180
;
815 real_t f181
, f182
, f183
, f184
, f185
, f186
, f187
, f188
, f189
, f190
;
816 real_t f191
, f192
, f193
, f194
, f195
, f196
, f197
, f198
, f199
, f200
;
817 real_t f201
, f202
, f203
, f204
, f205
, f206
, f207
, f208
, f209
, f210
;
818 real_t f211
, f212
, f213
, f214
, f215
, f216
, f217
, f218
, f219
, f220
;
819 real_t f221
, f222
, f223
, f224
, f225
, f226
, f227
, f228
, f229
, f230
;
820 real_t f231
, f232
, f233
, f234
, f235
, f236
, f237
, f238
, f239
, f240
;
821 real_t f241
, f242
, f243
, f244
, f245
, f246
, f247
, f248
, f249
, f250
;
822 real_t f251
, f252
, f253
, f254
, f255
, f256
, f257
, f258
, f259
, f260
;
823 real_t f261
, f262
, f263
, f264
, f265
, f266
, f267
, f268
, f269
, f270
;
826 f0
= MUL_F(x
[16], FRAC_CONST(0.7071067811865476));
830 f4
= MUL_C(x
[8], COEF_CONST(1.3065629648763766));
831 f5
= MUL_F(f3
, FRAC_CONST((-0.9238795325112866)));
832 f6
= MUL_F(x
[24], FRAC_CONST((-0.5411961001461967)));
840 f14
= MUL_C(x
[4], COEF_CONST(1.1758756024193588));
841 f15
= MUL_F(f13
, FRAC_CONST((-0.9807852804032304)));
842 f16
= MUL_F(x
[28], FRAC_CONST((-0.7856949583871021)));
846 f20
= MUL_C(x
[12], COEF_CONST(1.3870398453221473));
847 f21
= MUL_F(f19
, FRAC_CONST((-0.8314696123025455)));
848 f22
= MUL_F(x
[20], FRAC_CONST((-0.2758993792829436)));
853 f27
= MUL_F(f25
, FRAC_CONST(0.7071067811865476));
856 f30
= MUL_F(f29
, FRAC_CONST(0.7071067811865476));
868 f42
= MUL_C(x
[2], COEF_CONST(1.0932018670017569));
869 f43
= MUL_F(f41
, FRAC_CONST((-0.9951847266721969)));
870 f44
= MUL_F(x
[30], FRAC_CONST((-0.8971675863426368)));
874 f48
= MUL_C(x
[6], COEF_CONST(1.2472250129866711));
875 f49
= MUL_F(f47
, FRAC_CONST((-0.9569403357322089)));
876 f50
= MUL_F(x
[26], FRAC_CONST((-0.6666556584777469)));
880 f54
= MUL_C(x
[10], COEF_CONST(1.3533180011743526));
881 f55
= MUL_F(f53
, FRAC_CONST((-0.8819212643483551)));
882 f56
= MUL_F(x
[22], FRAC_CONST((-0.4105245275223575)));
886 f60
= MUL_C(x
[14], COEF_CONST(1.4074037375263826));
887 f61
= MUL_F(f59
, FRAC_CONST((-0.7730104533627369)));
888 f62
= MUL_F(x
[18], FRAC_CONST((-0.1386171691990913)));
897 f71
= MUL_F(f69
, FRAC_CONST(0.7071067811865476));
899 f73
= MUL_C(f65
, COEF_CONST(1.3065629648763766));
900 f74
= MUL_F(f72
, FRAC_CONST((-0.9238795325112866)));
901 f75
= MUL_F(f67
, FRAC_CONST((-0.5411961001461967)));
909 f83
= MUL_C(f79
, COEF_CONST(1.3065629648763770));
910 f84
= MUL_F(f82
, FRAC_CONST((-0.3826834323650904)));
911 f85
= MUL_F(f81
, FRAC_CONST(0.5411961001461961));
916 f90
= MUL_F(f89
, FRAC_CONST(0.7071067811865476));
940 f114
= MUL_C(x
[1], COEF_CONST(1.0478631305325901));
941 f115
= MUL_F(f113
, FRAC_CONST((-0.9987954562051724)));
942 f116
= MUL_F(x
[31], FRAC_CONST((-0.9497277818777548)));
946 f120
= MUL_C(x
[5], COEF_CONST(1.2130114330978077));
947 f121
= MUL_F(f119
, FRAC_CONST((-0.9700312531945440)));
948 f122
= MUL_F(x
[27], FRAC_CONST((-0.7270510732912803)));
952 f126
= MUL_C(x
[9], COEF_CONST(1.3315443865537255));
953 f127
= MUL_F(f125
, FRAC_CONST((-0.9039892931234433)));
954 f128
= MUL_F(x
[23], FRAC_CONST((-0.4764341996931612)));
957 f131
= x
[13] + x
[19];
958 f132
= MUL_C(x
[13], COEF_CONST(1.3989068359730781));
959 f133
= MUL_F(f131
, FRAC_CONST((-0.8032075314806453)));
960 f134
= MUL_F(x
[19], FRAC_CONST((-0.2075082269882124)));
963 f137
= x
[17] + x
[15];
964 f138
= MUL_C(x
[17], COEF_CONST(1.4125100802019777));
965 f139
= MUL_F(f137
, FRAC_CONST((-0.6715589548470187)));
966 f140
= MUL_F(x
[15], FRAC_CONST(0.0693921705079402));
969 f143
= x
[21] + x
[11];
970 f144
= MUL_C(x
[21], COEF_CONST(1.3718313541934939));
971 f145
= MUL_F(f143
, FRAC_CONST((-0.5141027441932219)));
972 f146
= MUL_F(x
[11], FRAC_CONST(0.3436258658070501));
976 f150
= MUL_C(x
[25], COEF_CONST(1.2784339185752409));
977 f151
= MUL_F(f149
, FRAC_CONST((-0.3368898533922200)));
978 f152
= MUL_F(x
[7], FRAC_CONST(0.6046542117908008));
982 f156
= MUL_C(x
[29], COEF_CONST(1.1359069844201433));
983 f157
= MUL_F(f155
, FRAC_CONST((-0.1467304744553624)));
984 f158
= MUL_F(x
[3], FRAC_CONST(0.8424460355094185));
1004 f178
= MUL_C(f161
, COEF_CONST(1.1758756024193588));
1005 f179
= MUL_F(f177
, FRAC_CONST((-0.9807852804032304)));
1006 f180
= MUL_F(f163
, FRAC_CONST((-0.7856949583871021)));
1010 f184
= MUL_C(f165
, COEF_CONST(1.3870398453221475));
1011 f185
= MUL_F(f183
, FRAC_CONST((-0.5555702330196022)));
1012 f186
= MUL_F(f167
, FRAC_CONST(0.2758993792829431));
1016 f190
= MUL_F(f169
, FRAC_CONST(0.7856949583871022));
1017 f191
= MUL_F(f189
, FRAC_CONST(0.1950903220161283));
1018 f192
= MUL_C(f171
, COEF_CONST(1.1758756024193586));
1022 f196
= MUL_F(f173
, FRAC_CONST((-0.2758993792829430)));
1023 f197
= MUL_F(f195
, FRAC_CONST(0.8314696123025452));
1024 f198
= MUL_C(f175
, COEF_CONST(1.3870398453221475));
1044 f218
= MUL_C(f201
, COEF_CONST(1.3065629648763766));
1045 f219
= MUL_F(f217
, FRAC_CONST((-0.9238795325112866)));
1046 f220
= MUL_F(f203
, FRAC_CONST((-0.5411961001461967)));
1050 f224
= MUL_F(f205
, FRAC_CONST(0.5411961001461969));
1051 f225
= MUL_F(f223
, FRAC_CONST(0.3826834323650898));
1052 f226
= MUL_C(f207
, COEF_CONST(1.3065629648763766));
1056 f230
= MUL_C(f209
, COEF_CONST(1.3065629648763766));
1057 f231
= MUL_F(f229
, FRAC_CONST((-0.9238795325112866)));
1058 f232
= MUL_F(f211
, FRAC_CONST((-0.5411961001461967)));
1062 f236
= MUL_F(f213
, FRAC_CONST(0.5411961001461969));
1063 f237
= MUL_F(f235
, FRAC_CONST(0.3826834323650898));
1064 f238
= MUL_C(f215
, COEF_CONST(1.3065629648763766));
1085 f259
= MUL_F(f257
, FRAC_CONST(0.7071067811865474));
1086 f260
= MUL_F(f258
, FRAC_CONST(0.7071067811865474));
1089 f263
= MUL_F(f261
, FRAC_CONST(0.7071067811865474));
1090 f264
= MUL_F(f262
, FRAC_CONST(0.7071067811865474));
1093 f267
= MUL_F(f265
, FRAC_CONST(0.7071067811865474));
1094 f268
= MUL_F(f266
, FRAC_CONST(0.7071067811865474));
1097 f271
= MUL_F(f269
, FRAC_CONST(0.7071067811865474));
1098 f272
= MUL_F(f270
, FRAC_CONST(0.7071067811865474));
1101 y
[30] = f100
- f250
;
1103 y
[29] = f102
- f254
;
1105 y
[28] = f104
- f246
;
1107 y
[27] = f106
- f264
;
1109 y
[26] = f108
- f272
;
1111 y
[25] = f110
- f268
;
1113 y
[24] = f112
- f260
;
1115 y
[23] = f111
- f259
;
1117 y
[22] = f109
- f267
;
1119 y
[21] = f107
- f271
;
1120 y
[10] = f107
+ f271
;
1121 y
[20] = f105
- f263
;
1122 y
[11] = f105
+ f263
;
1123 y
[19] = f103
- f248
;
1124 y
[12] = f103
+ f248
;
1125 y
[18] = f101
- f256
;
1126 y
[13] = f101
+ f256
;
1133 void DCT2_32_unscaled(real_t
*y
, real_t
*x
)
1135 real_t f0
, f1
, f2
, f3
, f4
, f5
, f6
, f7
, f8
, f9
, f10
;
1136 real_t f11
, f12
, f13
, f14
, f15
, f16
, f17
, f18
, f19
, f20
;
1137 real_t f21
, f22
, f23
, f24
, f25
, f26
, f27
, f28
, f29
, f30
;
1138 real_t f31
, f32
, f33
, f34
, f35
, f36
, f37
, f38
, f39
, f40
;
1139 real_t f41
, f42
, f43
, f44
, f45
, f46
, f47
, f48
, f49
, f50
;
1140 real_t f51
, f52
, f53
, f54
, f55
, f56
, f57
, f58
, f59
, f60
;
1141 real_t f63
, f64
, f65
, f66
, f69
, f70
, f71
, f72
, f73
, f74
;
1142 real_t f75
, f76
, f77
, f78
, f79
, f80
, f81
, f83
, f85
, f86
;
1143 real_t f89
, f90
, f91
, f92
, f93
, f94
, f95
, f96
, f97
, f98
;
1144 real_t f99
, f100
, f101
, f102
, f103
, f104
, f105
, f106
, f107
, f108
;
1145 real_t f109
, f110
, f111
, f112
, f113
, f114
, f115
, f116
, f117
, f118
;
1146 real_t f119
, f120
, f121
, f122
, f123
, f124
, f127
, f128
, f129
, f130
;
1147 real_t f133
, f134
, f135
, f136
, f139
, f140
, f141
, f142
, f145
, f146
;
1148 real_t f147
, f148
, f149
, f150
, f151
, f152
, f153
, f154
, f155
, f156
;
1149 real_t f157
, f158
, f159
, f160
, f161
, f162
, f163
, f164
, f165
, f166
;
1150 real_t f167
, f168
, f169
, f170
, f171
, f172
, f173
, f174
, f175
, f176
;
1151 real_t f177
, f178
, f179
, f180
, f181
, f182
, f183
, f184
, f185
, f186
;
1152 real_t f187
, f188
, f189
, f190
, f191
, f192
, f193
, f194
, f195
, f196
;
1153 real_t f197
, f198
, f199
, f200
, f201
, f202
, f203
, f204
, f205
, f206
;
1154 real_t f207
, f208
, f209
, f210
, f211
, f212
, f213
, f214
, f215
, f216
;
1155 real_t f217
, f218
, f219
, f220
, f221
, f222
, f223
, f224
, f225
, f226
;
1156 real_t f227
, f228
, f229
, f230
, f231
, f232
, f233
, f234
, f235
, f236
;
1157 real_t f237
, f238
, f239
, f240
, f241
, f242
, f243
, f244
, f247
, f248
;
1158 real_t f249
, f250
, f253
, f254
, f255
, f256
, f259
, f260
, f261
, f262
;
1159 real_t f265
, f266
, f267
, f268
, f271
, f272
, f273
, f274
, f277
, f278
;
1160 real_t f279
, f280
, f283
, f284
, f285
, f286
;
1182 f20
= x
[10] - x
[21];
1183 f21
= x
[10] + x
[21];
1184 f22
= x
[11] - x
[20];
1185 f23
= x
[11] + x
[20];
1186 f24
= x
[12] - x
[19];
1187 f25
= x
[12] + x
[19];
1188 f26
= x
[13] - x
[18];
1189 f27
= x
[13] + x
[18];
1190 f28
= x
[14] - x
[17];
1191 f29
= x
[14] + x
[17];
1192 f30
= x
[15] - x
[16];
1193 f31
= x
[15] + x
[16];
1224 y
[16] = MUL_F(FRAC_CONST(0.7071067811865476), f60
);
1226 f64
= MUL_C(COEF_CONST(1.3065629648763766), f56
);
1227 f65
= MUL_F(FRAC_CONST(-0.9238795325112866), f63
);
1228 f66
= MUL_F(FRAC_CONST(-0.5411961001461967), f58
);
1232 f70
= MUL_C(COEF_CONST(1.1758756024193588), f48
);
1233 f71
= MUL_F(FRAC_CONST(-0.9807852804032304), f69
);
1234 f72
= MUL_F(FRAC_CONST(-0.7856949583871021), f54
);
1238 f76
= MUL_C(COEF_CONST(1.3870398453221473), f50
);
1239 f77
= MUL_F(FRAC_CONST(-0.8314696123025455), f75
);
1240 f78
= MUL_F(FRAC_CONST(-0.2758993792829436), f52
);
1245 f83
= MUL_F(FRAC_CONST(0.7071067811865476), f81
);
1248 f86
= MUL_F(FRAC_CONST(0.7071067811865476), f85
);
1257 f95
= MUL_F(FRAC_CONST(0.7071067811865476), f92
);
1261 f99
= MUL_C(COEF_CONST(1.3065629648763766), f90
);
1262 f100
= MUL_F(FRAC_CONST(-0.9238795325112866), f98
);
1263 f101
= MUL_F(FRAC_CONST(-0.5411961001461967), f94
);
1270 f108
= MUL_F(FRAC_CONST(0.7071067811865476), f91
);
1274 f112
= MUL_C(COEF_CONST(1.3065629648763766), f93
);
1275 f113
= MUL_F(FRAC_CONST(-0.9238795325112866), f111
);
1276 f114
= MUL_F(FRAC_CONST(-0.5411961001461967), f89
);
1284 f122
= MUL_F(FRAC_CONST(-0.8971675863426361), f118
);
1285 f123
= MUL_F(FRAC_CONST(0.9951847266721968), f121
);
1286 f124
= MUL_C(COEF_CONST(1.0932018670017576), f105
);
1288 y
[30] = f124
- f123
;
1290 f128
= MUL_F(FRAC_CONST(-0.6666556584777466), f120
);
1291 f129
= MUL_F(FRAC_CONST(0.9569403357322089), f127
);
1292 f130
= MUL_C(COEF_CONST(1.2472250129866713), f107
);
1294 y
[26] = f130
- f129
;
1296 f134
= MUL_F(FRAC_CONST(-0.4105245275223571), f119
);
1297 f135
= MUL_F(FRAC_CONST(0.8819212643483549), f133
);
1298 f136
= MUL_C(COEF_CONST(1.3533180011743529), f106
);
1299 y
[10] = f134
+ f135
;
1300 y
[22] = f136
- f135
;
1302 f140
= MUL_F(FRAC_CONST(-0.1386171691990915), f117
);
1303 f141
= MUL_F(FRAC_CONST(0.7730104533627370), f139
);
1304 f142
= MUL_C(COEF_CONST(1.4074037375263826), f104
);
1305 y
[14] = f141
- f140
;
1306 y
[18] = f142
- f141
;
1321 f159
= MUL_F(FRAC_CONST(0.7071067811865476), f152
);
1325 f163
= MUL_C(COEF_CONST(1.3065629648763766), f148
);
1326 f164
= MUL_F(FRAC_CONST(-0.9238795325112866), f162
);
1327 f165
= MUL_F(FRAC_CONST(-0.5411961001461967), f156
);
1335 f173
= MUL_C(COEF_CONST(1.1758756024193588), f146
);
1336 f174
= MUL_F(FRAC_CONST(-0.9807852804032304), f172
);
1337 f175
= MUL_F(FRAC_CONST(-0.7856949583871021), f158
);
1341 f179
= MUL_C(COEF_CONST(1.3870398453221473), f150
);
1342 f180
= MUL_F(FRAC_CONST(-0.8314696123025455), f178
);
1343 f181
= MUL_F(FRAC_CONST(-0.2758993792829436), f154
);
1348 f186
= MUL_F(FRAC_CONST(0.7071067811865476), f184
);
1351 f189
= MUL_F(FRAC_CONST(0.7071067811865476), f188
);
1362 f200
= MUL_F(FRAC_CONST(0.7071067811865476), f151
);
1366 f204
= MUL_C(COEF_CONST(1.3065629648763766), f155
);
1367 f205
= MUL_F(FRAC_CONST(-0.9238795325112866), f203
);
1368 f206
= MUL_F(FRAC_CONST(-0.5411961001461967), f147
);
1376 f214
= MUL_C(COEF_CONST(1.1758756024193588), f157
);
1377 f215
= MUL_F(FRAC_CONST(-0.9807852804032304), f213
);
1378 f216
= MUL_F(FRAC_CONST(-0.7856949583871021), f145
);
1382 f220
= MUL_C(COEF_CONST(1.3870398453221473), f153
);
1383 f221
= MUL_F(FRAC_CONST(-0.8314696123025455), f219
);
1384 f222
= MUL_F(FRAC_CONST(-0.2758993792829436), f149
);
1389 f227
= MUL_F(FRAC_CONST(0.7071067811865476), f225
);
1392 f230
= MUL_F(FRAC_CONST(0.7071067811865476), f229
);
1404 f242
= MUL_F(FRAC_CONST(-0.9497277818777543), f234
);
1405 f243
= MUL_F(FRAC_CONST(0.9987954562051724), f241
);
1406 f244
= MUL_C(COEF_CONST(1.0478631305325905), f193
);
1408 y
[31] = f244
- f243
;
1410 f248
= MUL_F(FRAC_CONST(-0.8424460355094192), f236
);
1411 f249
= MUL_F(FRAC_CONST(0.9891765099647810), f247
);
1412 f250
= MUL_C(COEF_CONST(1.1359069844201428), f195
);
1414 y
[29] = f250
- f249
;
1416 f254
= MUL_F(FRAC_CONST(-0.7270510732912801), f238
);
1417 f255
= MUL_F(FRAC_CONST(0.9700312531945440), f253
);
1418 f256
= MUL_C(COEF_CONST(1.2130114330978079), f197
);
1420 y
[27] = f256
- f255
;
1422 f260
= MUL_F(FRAC_CONST(-0.6046542117908007), f240
);
1423 f261
= MUL_F(FRAC_CONST(0.9415440651830208), f259
);
1424 f262
= MUL_C(COEF_CONST(1.2784339185752409), f199
);
1426 y
[25] = f262
- f261
;
1428 f266
= MUL_F(FRAC_CONST(-0.4764341996931611), f239
);
1429 f267
= MUL_F(FRAC_CONST(0.9039892931234433), f265
);
1430 f268
= MUL_C(COEF_CONST(1.3315443865537255), f198
);
1432 y
[23] = f268
- f267
;
1434 f272
= MUL_F(FRAC_CONST(-0.3436258658070505), f237
);
1435 f273
= MUL_F(FRAC_CONST(0.8577286100002721), f271
);
1436 f274
= MUL_C(COEF_CONST(1.3718313541934939), f196
);
1437 y
[11] = f273
- f272
;
1438 y
[21] = f274
- f273
;
1440 f278
= MUL_F(FRAC_CONST(-0.2075082269882114), f235
);
1441 f279
= MUL_F(FRAC_CONST(0.8032075314806448), f277
);
1442 f280
= MUL_C(COEF_CONST(1.3989068359730783), f194
);
1443 y
[13] = f278
+ f279
;
1444 y
[19] = f280
- f279
;
1446 f284
= MUL_F(FRAC_CONST(-0.0693921705079408), f233
);
1447 f285
= MUL_F(FRAC_CONST(0.7409511253549591), f283
);
1448 f286
= MUL_C(COEF_CONST(1.4125100802019774), f192
);
1449 y
[15] = f285
- f284
;
1450 y
[17] = f286
- f285
;
1453 #else /* #ifdef SBR_LOW_POWER */
1455 static const real_t dct4_64_tab
[] ICONST_ATTR
= {
1456 COEF_CONST(0.999924719333649), COEF_CONST(0.998118102550507),
1457 COEF_CONST(0.993906974792480), COEF_CONST(0.987301409244537),
1458 COEF_CONST(0.978317379951477), COEF_CONST(0.966976463794708),
1459 COEF_CONST(0.953306019306183), COEF_CONST(0.937339007854462),
1460 COEF_CONST(0.919113874435425), COEF_CONST(0.898674488067627),
1461 COEF_CONST(0.876070082187653), COEF_CONST(0.851355195045471),
1462 COEF_CONST(0.824589252471924), COEF_CONST(0.795836925506592),
1463 COEF_CONST(0.765167236328125), COEF_CONST(0.732654273509979),
1464 COEF_CONST(0.698376238346100), COEF_CONST(0.662415742874146),
1465 COEF_CONST(0.624859452247620), COEF_CONST(0.585797846317291),
1466 COEF_CONST(0.545324981212616), COEF_CONST(0.503538429737091),
1467 COEF_CONST(0.460538715124130), COEF_CONST(0.416429549455643),
1468 COEF_CONST(0.371317148208618), COEF_CONST(0.325310230255127),
1469 COEF_CONST(0.278519600629807), COEF_CONST(0.231058135628700),
1470 COEF_CONST(0.183039888739586), COEF_CONST(0.134580686688423),
1471 COEF_CONST(0.085797272622585), COEF_CONST(0.036807164549828),
1472 COEF_CONST(-1.012196302413940), COEF_CONST(-1.059438824653626),
1473 COEF_CONST(-1.104129195213318), COEF_CONST(-1.146159529685974),
1474 COEF_CONST(-1.185428738594055), COEF_CONST(-1.221842169761658),
1475 COEF_CONST(-1.255311965942383), COEF_CONST(-1.285757660865784),
1476 COEF_CONST(-1.313105940818787), COEF_CONST(-1.337290763854981),
1477 COEF_CONST(-1.358253836631775), COEF_CONST(-1.375944852828980),
1478 COEF_CONST(-1.390321016311646), COEF_CONST(-1.401347875595093),
1479 COEF_CONST(-1.408998727798462), COEF_CONST(-1.413255214691162),
1480 COEF_CONST(-1.414107084274292), COEF_CONST(-1.411552190780640),
1481 COEF_CONST(-1.405596733093262), COEF_CONST(-1.396255016326904),
1482 COEF_CONST(-1.383549690246582), COEF_CONST(-1.367511272430420),
1483 COEF_CONST(-1.348178386688232), COEF_CONST(-1.325597524642944),
1484 COEF_CONST(-1.299823284149170), COEF_CONST(-1.270917654037476),
1485 COEF_CONST(-1.238950133323669), COEF_CONST(-1.203998088836670),
1486 COEF_CONST(-1.166145324707031), COEF_CONST(-1.125483393669128),
1487 COEF_CONST(-1.082109928131104), COEF_CONST(-1.036129593849182),
1488 COEF_CONST(-0.987653195858002), COEF_CONST(-0.936797380447388),
1489 COEF_CONST(-0.883684754371643), COEF_CONST(-0.828443288803101),
1490 COEF_CONST(-0.771206021308899), COEF_CONST(-0.712110757827759),
1491 COEF_CONST(-0.651300072669983), COEF_CONST(-0.588920354843140),
1492 COEF_CONST(-0.525121808052063), COEF_CONST(-0.460058242082596),
1493 COEF_CONST(-0.393886327743530), COEF_CONST(-0.326765477657318),
1494 COEF_CONST(-0.258857429027557), COEF_CONST(-0.190325915813446),
1495 COEF_CONST(-0.121335685253143), COEF_CONST(-0.052053272724152),
1496 COEF_CONST(0.017354607582092), COEF_CONST(0.086720645427704),
1497 COEF_CONST(0.155877828598022), COEF_CONST(0.224659323692322),
1498 COEF_CONST(0.292899727821350), COEF_CONST(0.360434412956238),
1499 COEF_CONST(0.427100926637650), COEF_CONST(0.492738455533981),
1500 COEF_CONST(0.557188928127289), COEF_CONST(0.620297133922577),
1501 COEF_CONST(0.681910991668701), COEF_CONST(0.741881847381592),
1502 COEF_CONST(0.800065577030182), COEF_CONST(0.856321990489960),
1503 COEF_CONST(0.910515367984772), COEF_CONST(0.962515234947205),
1504 COEF_CONST(1.000000000000000), COEF_CONST(0.998795449733734),
1505 COEF_CONST(0.995184719562531), COEF_CONST(0.989176511764526),
1506 COEF_CONST(0.980785250663757), COEF_CONST(0.970031261444092),
1507 COEF_CONST(0.956940352916718), COEF_CONST(0.941544055938721),
1508 COEF_CONST(0.923879504203796), COEF_CONST(0.903989315032959),
1509 COEF_CONST(0.881921231746674), COEF_CONST(0.857728600502014),
1510 COEF_CONST(0.831469595432281), COEF_CONST(0.803207516670227),
1511 COEF_CONST(0.773010432720184), COEF_CONST(0.740951120853424),
1512 COEF_CONST(0.707106769084930), COEF_CONST(0.671558916568756),
1513 COEF_CONST(0.634393274784088), COEF_CONST(0.595699310302734),
1514 COEF_CONST(0.555570185184479), COEF_CONST(0.514102697372437),
1515 COEF_CONST(0.471396654844284), COEF_CONST(0.427555114030838),
1516 COEF_CONST(0.382683426141739), COEF_CONST(0.336889833211899),
1517 COEF_CONST(0.290284633636475), COEF_CONST(0.242980122566223),
1518 COEF_CONST(0.195090234279633), COEF_CONST(0.146730497479439),
1519 COEF_CONST(0.098017133772373), COEF_CONST(0.049067649990320),
1520 COEF_CONST(-1.000000000000000), COEF_CONST(-1.047863125801086),
1521 COEF_CONST(-1.093201875686646), COEF_CONST(-1.135906934738159),
1522 COEF_CONST(-1.175875544548035), COEF_CONST(-1.213011503219605),
1523 COEF_CONST(-1.247225046157837), COEF_CONST(-1.278433918952942),
1524 COEF_CONST(-1.306562900543213), COEF_CONST(-1.331544399261475),
1525 COEF_CONST(-1.353317975997925), COEF_CONST(-1.371831417083740),
1526 COEF_CONST(-1.387039899826050), COEF_CONST(-1.398906826972961),
1527 COEF_CONST(-1.407403707504273), COEF_CONST(-1.412510156631470),
1528 COEF_CONST(0), COEF_CONST(-1.412510156631470),
1529 COEF_CONST(-1.407403707504273), COEF_CONST(-1.398906826972961),
1530 COEF_CONST(-1.387039899826050), COEF_CONST(-1.371831417083740),
1531 COEF_CONST(-1.353317975997925), COEF_CONST(-1.331544399261475),
1532 COEF_CONST(-1.306562900543213), COEF_CONST(-1.278433918952942),
1533 COEF_CONST(-1.247225046157837), COEF_CONST(-1.213011384010315),
1534 COEF_CONST(-1.175875544548035), COEF_CONST(-1.135907053947449),
1535 COEF_CONST(-1.093201875686646), COEF_CONST(-1.047863125801086),
1536 COEF_CONST(-1.000000000000000), COEF_CONST(-0.949727773666382),
1537 COEF_CONST(-0.897167563438416), COEF_CONST(-0.842446029186249),
1538 COEF_CONST(-0.785694956779480), COEF_CONST(-0.727051079273224),
1539 COEF_CONST(-0.666655659675598), COEF_CONST(-0.604654192924500),
1540 COEF_CONST(-0.541196048259735), COEF_CONST(-0.476434230804443),
1541 COEF_CONST(-0.410524487495422), COEF_CONST(-0.343625843524933),
1542 COEF_CONST(-0.275899350643158), COEF_CONST(-0.207508206367493),
1543 COEF_CONST(-0.138617098331451), COEF_CONST(-0.069392144680023),
1544 COEF_CONST(0), COEF_CONST(0.069392263889313),
1545 COEF_CONST(0.138617157936096), COEF_CONST(0.207508206367493),
1546 COEF_CONST(0.275899469852448), COEF_CONST(0.343625962734222),
1547 COEF_CONST(0.410524636507034), COEF_CONST(0.476434201002121),
1548 COEF_CONST(0.541196107864380), COEF_CONST(0.604654192924500),
1549 COEF_CONST(0.666655719280243), COEF_CONST(0.727051138877869),
1550 COEF_CONST(0.785695075988770), COEF_CONST(0.842446029186249),
1551 COEF_CONST(0.897167563438416), COEF_CONST(0.949727773666382)
1554 // Table adapted from codeclib to fit into IRAM
1555 const uint32_t dct4_revtab
[32] ICONST_ATTR
= {
1556 0, 24, 12, 22, 6, 30, 11, 19, 3, 27, 15, 21, 5, 29, 9, 17,
1557 1, 25, 13, 23, 7, 31, 10, 18, 2, 26, 14, 20, 4, 28, 8, 16};
1560 void dct4_kernel(real_t
*real
, real_t
*imag
)
1563 real_t x_re
, x_im
, tmp
;
1564 FFTComplex xc
[32]; /* used for calling codeclib's fft implementation */
1566 /* Step 2: modulate and pre-rotate for codeclib's fft implementation */
1567 // 3*32=96 multiplications
1568 // 3*32=96 additions
1569 for (i
= 0; i
< 32; i
++)
1571 idx
= dct4_revtab
[i
];
1574 tmp
= MUL_C(x_re
+ x_im
, dct4_64_tab
[i
]);
1575 xc
[idx
].re
= MUL_C(x_im
, dct4_64_tab
[i
+ 64]) + tmp
;
1576 xc
[idx
].im
= MUL_C(x_re
, dct4_64_tab
[i
+ 32]) + tmp
;
1579 /* Step 3: FFT (codeclib's implementation) */
1580 ff_fft_calc_c(5, xc
);
1582 /* Step 4: modulate + reordering */
1583 // 3*31+2=95 multiplications
1584 // 3*31+2=95 additions
1587 tmp
= MUL_C(x_re
+ x_im
, dct4_64_tab
[0 + 3*32]);
1588 real
[0] = MUL_C(x_im
, dct4_64_tab
[0 + 5*32]) + tmp
;
1589 imag
[0] = MUL_C(x_re
, dct4_64_tab
[0 + 4*32]) + tmp
;
1590 for (i
= 1; i
< 16; i
++)
1595 tmp
= MUL_C(x_re
+ x_im
, dct4_64_tab
[i
+ 3*32]);
1596 real
[i
] = MUL_C(x_im
, dct4_64_tab
[i
+ 5*32]) + tmp
;
1597 imag
[i
] = MUL_C(x_re
, dct4_64_tab
[i
+ 4*32]) + tmp
;
1599 // i = 16, idx = 16 = reorder_tab[16];
1602 imag
[16] = MUL_C(x_im
- x_re
, dct4_64_tab
[16 + 3*32]);
1603 real
[16] = MUL_C(x_re
+ x_im
, dct4_64_tab
[16 + 3*32]);
1604 for (i
= 17; i
< 32; i
++)
1609 tmp
= MUL_C(x_re
+ x_im
, dct4_64_tab
[i
+ 3*32]);
1610 real
[i
] = MUL_C(x_im
, dct4_64_tab
[i
+ 5*32]) + tmp
;
1611 imag
[i
] = MUL_C(x_re
, dct4_64_tab
[i
+ 4*32]) + tmp
;
1615 void DST4_32(real_t
*y
, real_t
*x
)
1617 real_t f0
, f1
, f2
, f3
, f4
, f5
, f6
, f7
, f8
, f9
;
1618 real_t f10
, f11
, f12
, f13
, f14
, f15
, f16
, f17
, f18
, f19
;
1619 real_t f20
, f21
, f22
, f23
, f24
, f25
, f26
, f27
, f28
, f29
;
1620 real_t f30
, f31
, f32
, f33
, f34
, f35
, f36
, f37
, f38
, f39
;
1621 real_t f40
, f41
, f42
, f43
, f44
, f45
, f46
, f47
, f48
, f49
;
1622 real_t f50
, f51
, f52
, f53
, f54
, f55
, f56
, f57
, f58
, f59
;
1623 real_t f60
, f61
, f62
, f63
, f64
, f65
, f66
, f67
, f68
, f69
;
1624 real_t f70
, f71
, f72
, f73
, f74
, f75
, f76
, f77
, f78
, f79
;
1625 real_t f80
, f81
, f82
, f83
, f84
, f85
, f86
, f87
, f88
, f89
;
1626 real_t f90
, f91
, f92
, f93
, f94
, f95
, f96
, f97
, f98
, f99
;
1627 real_t f100
, f101
, f102
, f103
, f104
, f105
, f106
, f107
, f108
, f109
;
1628 real_t f110
, f111
, f112
, f113
, f114
, f115
, f116
, f117
, f118
, f119
;
1629 real_t f120
, f121
, f122
, f123
, f124
, f125
, f126
, f127
, f128
, f129
;
1630 real_t f130
, f131
, f132
, f133
, f134
, f135
, f136
, f137
, f138
, f139
;
1631 real_t f140
, f141
, f142
, f143
, f144
, f145
, f146
, f147
, f148
, f149
;
1632 real_t f150
, f151
, f152
, f153
, f154
, f155
, f156
, f157
, f158
, f159
;
1633 real_t f160
, f161
, f162
, f163
, f164
, f165
, f166
, f167
, f168
, f169
;
1634 real_t f170
, f171
, f172
, f173
, f174
, f175
, f176
, f177
, f178
, f179
;
1635 real_t f180
, f181
, f182
, f183
, f184
, f185
, f186
, f187
, f188
, f189
;
1636 real_t f190
, f191
, f192
, f193
, f194
, f195
, f196
, f197
, f198
, f199
;
1637 real_t f200
, f201
, f202
, f203
, f204
, f205
, f206
, f207
, f208
, f209
;
1638 real_t f210
, f211
, f212
, f213
, f214
, f215
, f216
, f217
, f218
, f219
;
1639 real_t f220
, f221
, f222
, f223
, f224
, f225
, f226
, f227
, f228
, f229
;
1640 real_t f230
, f231
, f232
, f233
, f234
, f235
, f236
, f237
, f238
, f239
;
1641 real_t f240
, f241
, f242
, f243
, f244
, f245
, f246
, f247
, f248
, f249
;
1642 real_t f250
, f251
, f252
, f253
, f254
, f255
, f256
, f257
, f258
, f259
;
1643 real_t f260
, f261
, f262
, f263
, f264
, f265
, f266
, f267
, f268
, f269
;
1644 real_t f270
, f271
, f272
, f273
, f274
, f275
, f276
, f277
, f278
, f279
;
1645 real_t f280
, f281
, f282
, f283
, f284
, f285
, f286
, f287
, f288
, f289
;
1646 real_t f290
, f291
, f292
, f293
, f294
, f295
, f296
, f297
, f298
, f299
;
1647 real_t f300
, f301
, f302
, f303
, f304
, f305
, f306
, f307
, f308
, f309
;
1648 real_t f310
, f311
, f312
, f313
, f314
, f315
, f316
, f317
, f318
, f319
;
1649 real_t f320
, f321
, f322
, f323
, f324
, f325
, f326
, f327
, f328
, f329
;
1650 real_t f330
, f331
, f332
, f333
, f334
, f335
;
1662 f10
= x
[10] - x
[11];
1663 f11
= x
[12] - x
[11];
1664 f12
= x
[12] - x
[13];
1665 f13
= x
[14] - x
[13];
1666 f14
= x
[14] - x
[15];
1667 f15
= x
[16] - x
[15];
1668 f16
= x
[16] - x
[17];
1669 f17
= x
[18] - x
[17];
1670 f18
= x
[18] - x
[19];
1671 f19
= x
[20] - x
[19];
1672 f20
= x
[20] - x
[21];
1673 f21
= x
[22] - x
[21];
1674 f22
= x
[22] - x
[23];
1675 f23
= x
[24] - x
[23];
1676 f24
= x
[24] - x
[25];
1677 f25
= x
[26] - x
[25];
1678 f26
= x
[26] - x
[27];
1679 f27
= x
[28] - x
[27];
1680 f28
= x
[28] - x
[29];
1681 f29
= x
[30] - x
[29];
1682 f30
= x
[30] - x
[31];
1683 f31
= MUL_F(FRAC_CONST(0.7071067811865476), f15
);
1687 f35
= MUL_C(COEF_CONST(1.3065629648763766), f7
);
1688 f36
= MUL_F(FRAC_CONST(-0.9238795325112866), f34
);
1689 f37
= MUL_F(FRAC_CONST(-0.5411961001461967), f23
);
1698 f46
= MUL_F(FRAC_CONST(0.7071067811865476), f45
);
1701 f49
= MUL_F(FRAC_CONST(0.7071067811865476), f44
);
1705 f53
= MUL_F(FRAC_CONST(-0.7856949583871021), f51
);
1706 f54
= MUL_F(FRAC_CONST(0.9807852804032304), f52
);
1707 f55
= MUL_C(COEF_CONST(1.1758756024193588), f48
);
1711 f59
= MUL_F(FRAC_CONST(-0.2758993792829430), f50
);
1712 f60
= MUL_F(FRAC_CONST(0.8314696123025452), f58
);
1713 f61
= MUL_C(COEF_CONST(1.3870398453221475), f47
);
1730 f78
= MUL_F(FRAC_CONST(0.7071067811865476), f75
);
1734 f82
= MUL_C(COEF_CONST(1.3065629648763766), f73
);
1735 f83
= MUL_F(FRAC_CONST(-0.9238795325112866), f81
);
1736 f84
= MUL_F(FRAC_CONST(-0.5411961001461967), f77
);
1743 f91
= MUL_F(FRAC_CONST(0.7071067811865476), f74
);
1747 f95
= MUL_C(COEF_CONST(1.3065629648763766), f76
);
1748 f96
= MUL_F(FRAC_CONST(-0.9238795325112866), f94
);
1749 f97
= MUL_F(FRAC_CONST(-0.5411961001461967), f72
);
1757 f105
= MUL_F(FRAC_CONST(-0.8971675863426361), f101
);
1758 f106
= MUL_F(FRAC_CONST(0.9951847266721968), f104
);
1759 f107
= MUL_C(COEF_CONST(1.0932018670017576), f88
);
1763 f111
= MUL_F(FRAC_CONST(-0.6666556584777466), f103
);
1764 f112
= MUL_F(FRAC_CONST(0.9569403357322089), f110
);
1765 f113
= MUL_C(COEF_CONST(1.2472250129866713), f90
);
1769 f117
= MUL_F(FRAC_CONST(-0.4105245275223571), f102
);
1770 f118
= MUL_F(FRAC_CONST(0.8819212643483549), f116
);
1771 f119
= MUL_C(COEF_CONST(1.3533180011743529), f89
);
1775 f123
= MUL_F(FRAC_CONST(-0.1386171691990915), f100
);
1776 f124
= MUL_F(FRAC_CONST(0.7730104533627370), f122
);
1777 f125
= MUL_C(COEF_CONST(1.4074037375263826), f87
);
1797 f145
= MUL_C(COEF_CONST(1.0478631305325901), f0
);
1798 f146
= MUL_F(FRAC_CONST(-0.9987954562051724), f144
);
1799 f147
= MUL_F(FRAC_CONST(-0.9497277818777548), f30
);
1803 f151
= MUL_F(FRAC_CONST(1.2130114330978077), f4
);
1804 f152
= MUL_F(FRAC_CONST(-0.9700312531945440), f150
);
1805 f153
= MUL_F(FRAC_CONST(-0.7270510732912803), f26
);
1809 f157
= MUL_C(COEF_CONST(1.3315443865537255), f8
);
1810 f158
= MUL_F(FRAC_CONST(-0.9039892931234433), f156
);
1811 f159
= MUL_F(FRAC_CONST(-0.4764341996931612), f22
);
1815 f163
= MUL_C(COEF_CONST(1.3989068359730781), f12
);
1816 f164
= MUL_F(FRAC_CONST(-0.8032075314806453), f162
);
1817 f165
= MUL_F(FRAC_CONST(-0.2075082269882124), f18
);
1821 f169
= MUL_C(COEF_CONST(1.4125100802019777), f16
);
1822 f170
= MUL_F(FRAC_CONST(-0.6715589548470187), f168
);
1823 f171
= MUL_F(FRAC_CONST(0.0693921705079402), f14
);
1827 f175
= MUL_C(COEF_CONST(1.3718313541934939), f20
);
1828 f176
= MUL_F(FRAC_CONST(-0.5141027441932219), f174
);
1829 f177
= MUL_F(FRAC_CONST(0.3436258658070501), f10
);
1833 f181
= MUL_C(COEF_CONST(1.2784339185752409), f24
);
1834 f182
= MUL_F(FRAC_CONST(-0.3368898533922200), f180
);
1835 f183
= MUL_F(FRAC_CONST(0.6046542117908008), f6
);
1839 f187
= MUL_C(COEF_CONST(1.1359069844201433), f28
);
1840 f188
= MUL_F(FRAC_CONST(-0.1467304744553624), f186
);
1841 f189
= MUL_F(FRAC_CONST(0.8424460355094185), f2
);
1861 f209
= MUL_C(COEF_CONST(1.1758756024193588), f192
);
1862 f210
= MUL_F(FRAC_CONST(-0.9807852804032304), f208
);
1863 f211
= MUL_F(FRAC_CONST(-0.7856949583871021), f194
);
1867 f215
= MUL_C(COEF_CONST(1.3870398453221475), f196
);
1868 f216
= MUL_F(FRAC_CONST(-0.5555702330196022), f214
);
1869 f217
= MUL_F(FRAC_CONST(0.2758993792829431), f198
);
1873 f221
= MUL_F(FRAC_CONST(0.7856949583871022), f200
);
1874 f222
= MUL_F(FRAC_CONST(0.1950903220161283), f220
);
1875 f223
= MUL_C(COEF_CONST(1.1758756024193586), f202
);
1879 f227
= MUL_F(FRAC_CONST(-0.2758993792829430), f204
);
1880 f228
= MUL_F(FRAC_CONST(0.8314696123025452), f226
);
1881 f229
= MUL_C(COEF_CONST(1.3870398453221475), f206
);
1901 f249
= MUL_C(COEF_CONST(1.3065629648763766), f232
);
1902 f250
= MUL_F(FRAC_CONST(-0.9238795325112866), f248
);
1903 f251
= MUL_F(FRAC_CONST(-0.5411961001461967), f234
);
1907 f255
= MUL_F(FRAC_CONST(0.5411961001461969), f236
);
1908 f256
= MUL_F(FRAC_CONST(0.3826834323650898), f254
);
1909 f257
= MUL_C(COEF_CONST(1.3065629648763766), f238
);
1913 f261
= MUL_C(COEF_CONST(1.3065629648763766), f240
);
1914 f262
= MUL_F(FRAC_CONST(-0.9238795325112866), f260
);
1915 f263
= MUL_F(FRAC_CONST(-0.5411961001461967), f242
);
1919 f267
= MUL_F(FRAC_CONST(0.5411961001461969), f244
);
1920 f268
= MUL_F(FRAC_CONST(0.3826834323650898), f266
);
1921 f269
= MUL_C(COEF_CONST(1.3065629648763766), f246
);
1942 f290
= MUL_F(FRAC_CONST(0.7071067811865474), f288
);
1943 f291
= MUL_F(FRAC_CONST(0.7071067811865474), f289
);
1946 f294
= MUL_F(FRAC_CONST(0.7071067811865474), f292
);
1947 f295
= MUL_F(FRAC_CONST(0.7071067811865474), f293
);
1950 f298
= MUL_F(FRAC_CONST(0.7071067811865474), f296
);
1951 f299
= MUL_F(FRAC_CONST(0.7071067811865474), f297
);
1954 f302
= MUL_F(FRAC_CONST(0.7071067811865474), f300
);
1955 f303
= MUL_F(FRAC_CONST(0.7071067811865474), f301
);
1988 y
[31] = MUL_F(FRAC_CONST(0.5001506360206510), f305
);
1989 y
[30] = MUL_F(FRAC_CONST(0.5013584524464084), f307
);
1990 y
[29] = MUL_F(FRAC_CONST(0.5037887256810443), f309
);
1991 y
[28] = MUL_F(FRAC_CONST(0.5074711720725553), f311
);
1992 y
[27] = MUL_F(FRAC_CONST(0.5124514794082247), f313
);
1993 y
[26] = MUL_F(FRAC_CONST(0.5187927131053328), f315
);
1994 y
[25] = MUL_F(FRAC_CONST(0.5265773151542700), f317
);
1995 y
[24] = MUL_F(FRAC_CONST(0.5359098169079920), f319
);
1996 y
[23] = MUL_F(FRAC_CONST(0.5469204379855088), f321
);
1997 y
[22] = MUL_F(FRAC_CONST(0.5597698129470802), f323
);
1998 y
[21] = MUL_F(FRAC_CONST(0.5746551840326600), f325
);
1999 y
[20] = MUL_F(FRAC_CONST(0.5918185358574165), f327
);
2000 y
[19] = MUL_F(FRAC_CONST(0.6115573478825099), f329
);
2001 y
[18] = MUL_F(FRAC_CONST(0.6342389366884031), f331
);
2002 y
[17] = MUL_F(FRAC_CONST(0.6603198078137061), f333
);
2003 y
[16] = MUL_F(FRAC_CONST(0.6903721282002123), f335
);
2004 y
[15] = MUL_F(FRAC_CONST(0.7251205223771985), f334
);
2005 y
[14] = MUL_F(FRAC_CONST(0.7654941649730891), f332
);
2006 y
[13] = MUL_F(FRAC_CONST(0.8127020908144905), f330
);
2007 y
[12] = MUL_F(FRAC_CONST(0.8683447152233481), f328
);
2008 y
[11] = MUL_F(FRAC_CONST(0.9345835970364075), f326
);
2009 y
[10] = MUL_C(COEF_CONST(1.0144082649970547), f324
);
2010 y
[9] = MUL_C(COEF_CONST(1.1120716205797176), f322
);
2011 y
[8] = MUL_C(COEF_CONST(1.2338327379765710), f320
);
2012 y
[7] = MUL_C(COEF_CONST(1.3892939586328277), f318
);
2013 y
[6] = MUL_C(COEF_CONST(1.5939722833856311), f316
);
2014 y
[5] = MUL_C(COEF_CONST(1.8746759800084078), f314
);
2015 y
[4] = MUL_C(COEF_CONST(2.2820500680051619), f312
);
2016 y
[3] = MUL_C(COEF_CONST(2.9246284281582162), f310
);
2017 y
[2] = MUL_C(COEF_CONST(4.0846110781292477), f308
);
2018 y
[1] = MUL_C(COEF_CONST(6.7967507116736332), f306
);
2019 y
[0] = MUL_R(REAL_CONST(20.3738781672314530), f304
);
2022 #endif /* #ifdef SBR_LOW_POWER */
2024 #endif /* #ifdef SBR_DEC */