annotate libfaad2/cfft.c @ 28615:15e7abed4291

Use the same code to convert fps in float to fraction as used in mencoder, it ensures all the common frame rates work right. If this causes issues, it should be changed in the same way in mencoder.c
author reimar
date Wed, 18 Feb 2009 16:49:12 +0000
parents 59b6fa5b4201
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
10725
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
1 /*
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
2 ** FAAD2 - Freeware Advanced Audio (AAC) Decoder including SBR decoding
12527
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
3 ** Copyright (C) 2003-2004 M. Bakker, Ahead Software AG, http://www.nero.com
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
4 **
10725
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
5 ** This program is free software; you can redistribute it and/or modify
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
6 ** it under the terms of the GNU General Public License as published by
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
7 ** the Free Software Foundation; either version 2 of the License, or
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
8 ** (at your option) any later version.
12527
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
9 **
10725
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
10 ** This program is distributed in the hope that it will be useful,
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
11 ** but WITHOUT ANY WARRANTY; without even the implied warranty of
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
12 ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
13 ** GNU General Public License for more details.
12527
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
14 **
10725
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
15 ** You should have received a copy of the GNU General Public License
12527
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
16 ** along with this program; if not, write to the Free Software
10725
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
17 ** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
18 **
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
19 ** Any non-GPL usage of this software or parts of this software is strictly
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
20 ** forbidden.
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
21 **
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
22 ** Commercial non-GPL licensing of this software is possible.
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
23 ** For more info contact Ahead Software through Mpeg4AAClicense@nero.com.
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
24 **
18141
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 14727
diff changeset
25 ** $Id: cfft.c,v 1.30 2004/09/08 09:43:11 gcp Exp $
10725
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
26 **/
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
27
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
28 /*
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
29 * Algorithmically based on Fortran-77 FFTPACK
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
30 * by Paul N. Swarztrauber(Version 4, 1985).
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
31 *
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
32 * Does even sized fft only
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
33 */
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
34
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
35 /* isign is +1 for backward and -1 for forward transforms */
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
36
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
37 #include "common.h"
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
38 #include "structs.h"
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
39
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
40 #include <stdlib.h>
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
41
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
42 #include "cfft.h"
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
43 #include "cfft_tab.h"
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
44
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
45
12527
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
46 /* static function declarations */
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
47 static void passf2pos(const uint16_t ido, const uint16_t l1, const complex_t *cc,
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
48 complex_t *ch, const complex_t *wa);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
49 static void passf2neg(const uint16_t ido, const uint16_t l1, const complex_t *cc,
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
50 complex_t *ch, const complex_t *wa);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
51 static void passf3(const uint16_t ido, const uint16_t l1, const complex_t *cc,
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
52 complex_t *ch, const complex_t *wa1, const complex_t *wa2, const int8_t isign);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
53 static void passf4pos(const uint16_t ido, const uint16_t l1, const complex_t *cc, complex_t *ch,
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
54 const complex_t *wa1, const complex_t *wa2, const complex_t *wa3);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
55 static void passf4neg(const uint16_t ido, const uint16_t l1, const complex_t *cc, complex_t *ch,
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
56 const complex_t *wa1, const complex_t *wa2, const complex_t *wa3);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
57 static void passf5(const uint16_t ido, const uint16_t l1, const complex_t *cc, complex_t *ch,
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
58 const complex_t *wa1, const complex_t *wa2, const complex_t *wa3,
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
59 const complex_t *wa4, const int8_t isign);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
60 INLINE void cfftf1(uint16_t n, complex_t *c, complex_t *ch,
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
61 const uint16_t *ifac, const complex_t *wa, const int8_t isign);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
62 static void cffti1(uint16_t n, complex_t *wa, uint16_t *ifac);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
63
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
64
10725
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
65 /*----------------------------------------------------------------------
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
66 passf2, passf3, passf4, passf5. Complex FFT passes fwd and bwd.
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
67 ----------------------------------------------------------------------*/
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
68
12527
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
69 static void passf2pos(const uint16_t ido, const uint16_t l1, const complex_t *cc,
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
70 complex_t *ch, const complex_t *wa)
10725
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
71 {
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
72 uint16_t i, k, ah, ac;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
73
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
74 if (ido == 1)
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
75 {
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
76 for (k = 0; k < l1; k++)
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
77 {
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
78 ah = 2*k;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
79 ac = 4*k;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
80
12527
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
81 RE(ch[ah]) = RE(cc[ac]) + RE(cc[ac+1]);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
82 RE(ch[ah+l1]) = RE(cc[ac]) - RE(cc[ac+1]);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
83 IM(ch[ah]) = IM(cc[ac]) + IM(cc[ac+1]);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
84 IM(ch[ah+l1]) = IM(cc[ac]) - IM(cc[ac+1]);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
85 }
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
86 } else {
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
87 for (k = 0; k < l1; k++)
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
88 {
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
89 ah = k*ido;
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
90 ac = 2*k*ido;
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
91
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
92 for (i = 0; i < ido; i++)
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
93 {
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
94 complex_t t2;
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
95
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
96 RE(ch[ah+i]) = RE(cc[ac+i]) + RE(cc[ac+i+ido]);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
97 RE(t2) = RE(cc[ac+i]) - RE(cc[ac+i+ido]);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
98
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
99 IM(ch[ah+i]) = IM(cc[ac+i]) + IM(cc[ac+i+ido]);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
100 IM(t2) = IM(cc[ac+i]) - IM(cc[ac+i+ido]);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
101
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
102 #if 1
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
103 ComplexMult(&IM(ch[ah+i+l1*ido]), &RE(ch[ah+i+l1*ido]),
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
104 IM(t2), RE(t2), RE(wa[i]), IM(wa[i]));
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
105 #else
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
106 ComplexMult(&RE(ch[ah+i+l1*ido]), &IM(ch[ah+i+l1*ido]),
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
107 RE(t2), IM(t2), RE(wa[i]), IM(wa[i]));
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
108 #endif
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
109 }
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
110 }
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
111 }
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
112 }
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
113
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
114 static void passf2neg(const uint16_t ido, const uint16_t l1, const complex_t *cc,
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
115 complex_t *ch, const complex_t *wa)
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
116 {
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
117 uint16_t i, k, ah, ac;
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
118
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
119 if (ido == 1)
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
120 {
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
121 for (k = 0; k < l1; k++)
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
122 {
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
123 ah = 2*k;
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
124 ac = 4*k;
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
125
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
126 RE(ch[ah]) = RE(cc[ac]) + RE(cc[ac+1]);
10725
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
127 RE(ch[ah+l1]) = RE(cc[ac]) - RE(cc[ac+1]);
10989
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
128 IM(ch[ah]) = IM(cc[ac]) + IM(cc[ac+1]);
10725
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
129 IM(ch[ah+l1]) = IM(cc[ac]) - IM(cc[ac+1]);
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
130 }
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
131 } else {
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
132 for (k = 0; k < l1; k++)
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
133 {
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
134 ah = k*ido;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
135 ac = 2*k*ido;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
136
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
137 for (i = 0; i < ido; i++)
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
138 {
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
139 complex_t t2;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
140
10989
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
141 RE(ch[ah+i]) = RE(cc[ac+i]) + RE(cc[ac+i+ido]);
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
142 RE(t2) = RE(cc[ac+i]) - RE(cc[ac+i+ido]);
10725
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
143
10989
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
144 IM(ch[ah+i]) = IM(cc[ac+i]) + IM(cc[ac+i+ido]);
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
145 IM(t2) = IM(cc[ac+i]) - IM(cc[ac+i+ido]);
10725
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
146
12527
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
147 #if 1
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
148 ComplexMult(&RE(ch[ah+i+l1*ido]), &IM(ch[ah+i+l1*ido]),
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
149 RE(t2), IM(t2), RE(wa[i]), IM(wa[i]));
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
150 #else
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
151 ComplexMult(&IM(ch[ah+i+l1*ido]), &RE(ch[ah+i+l1*ido]),
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
152 IM(t2), RE(t2), RE(wa[i]), IM(wa[i]));
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
153 #endif
10725
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
154 }
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
155 }
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
156 }
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
157 }
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
158
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
159
12527
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
160 static void passf3(const uint16_t ido, const uint16_t l1, const complex_t *cc,
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
161 complex_t *ch, const complex_t *wa1, const complex_t *wa2,
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
162 const int8_t isign)
10725
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
163 {
12527
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
164 static real_t taur = FRAC_CONST(-0.5);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
165 static real_t taui = FRAC_CONST(0.866025403784439);
10725
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
166 uint16_t i, k, ac, ah;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
167 complex_t c2, c3, d2, d3, t2;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
168
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
169 if (ido == 1)
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
170 {
12527
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
171 if (isign == 1)
10725
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
172 {
12527
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
173 for (k = 0; k < l1; k++)
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
174 {
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
175 ac = 3*k+1;
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
176 ah = k;
10725
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
177
12527
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
178 RE(t2) = RE(cc[ac]) + RE(cc[ac+1]);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
179 IM(t2) = IM(cc[ac]) + IM(cc[ac+1]);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
180 RE(c2) = RE(cc[ac-1]) + MUL_F(RE(t2),taur);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
181 IM(c2) = IM(cc[ac-1]) + MUL_F(IM(t2),taur);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
182
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
183 RE(ch[ah]) = RE(cc[ac-1]) + RE(t2);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
184 IM(ch[ah]) = IM(cc[ac-1]) + IM(t2);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
185
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
186 RE(c3) = MUL_F((RE(cc[ac]) - RE(cc[ac+1])), taui);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
187 IM(c3) = MUL_F((IM(cc[ac]) - IM(cc[ac+1])), taui);
10725
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
188
12527
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
189 RE(ch[ah+l1]) = RE(c2) - IM(c3);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
190 IM(ch[ah+l1]) = IM(c2) + RE(c3);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
191 RE(ch[ah+2*l1]) = RE(c2) + IM(c3);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
192 IM(ch[ah+2*l1]) = IM(c2) - RE(c3);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
193 }
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
194 } else {
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
195 for (k = 0; k < l1; k++)
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
196 {
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
197 ac = 3*k+1;
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
198 ah = k;
10725
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
199
12527
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
200 RE(t2) = RE(cc[ac]) + RE(cc[ac+1]);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
201 IM(t2) = IM(cc[ac]) + IM(cc[ac+1]);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
202 RE(c2) = RE(cc[ac-1]) + MUL_F(RE(t2),taur);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
203 IM(c2) = IM(cc[ac-1]) + MUL_F(IM(t2),taur);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
204
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
205 RE(ch[ah]) = RE(cc[ac-1]) + RE(t2);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
206 IM(ch[ah]) = IM(cc[ac-1]) + IM(t2);
10725
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
207
12527
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
208 RE(c3) = MUL_F((RE(cc[ac]) - RE(cc[ac+1])), taui);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
209 IM(c3) = MUL_F((IM(cc[ac]) - IM(cc[ac+1])), taui);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
210
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
211 RE(ch[ah+l1]) = RE(c2) + IM(c3);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
212 IM(ch[ah+l1]) = IM(c2) - RE(c3);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
213 RE(ch[ah+2*l1]) = RE(c2) - IM(c3);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
214 IM(ch[ah+2*l1]) = IM(c2) + RE(c3);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
215 }
10725
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
216 }
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
217 } else {
12527
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
218 if (isign == 1)
10725
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
219 {
12527
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
220 for (k = 0; k < l1; k++)
10725
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
221 {
12527
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
222 for (i = 0; i < ido; i++)
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
223 {
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
224 ac = i + (3*k+1)*ido;
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
225 ah = i + k * ido;
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
226
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
227 RE(t2) = RE(cc[ac]) + RE(cc[ac+ido]);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
228 RE(c2) = RE(cc[ac-ido]) + MUL_F(RE(t2),taur);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
229 IM(t2) = IM(cc[ac]) + IM(cc[ac+ido]);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
230 IM(c2) = IM(cc[ac-ido]) + MUL_F(IM(t2),taur);
10725
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
231
12527
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
232 RE(ch[ah]) = RE(cc[ac-ido]) + RE(t2);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
233 IM(ch[ah]) = IM(cc[ac-ido]) + IM(t2);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
234
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
235 RE(c3) = MUL_F((RE(cc[ac]) - RE(cc[ac+ido])), taui);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
236 IM(c3) = MUL_F((IM(cc[ac]) - IM(cc[ac+ido])), taui);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
237
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
238 RE(d2) = RE(c2) - IM(c3);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
239 IM(d3) = IM(c2) - RE(c3);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
240 RE(d3) = RE(c2) + IM(c3);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
241 IM(d2) = IM(c2) + RE(c3);
10725
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
242
12527
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
243 #if 1
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
244 ComplexMult(&IM(ch[ah+l1*ido]), &RE(ch[ah+l1*ido]),
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
245 IM(d2), RE(d2), RE(wa1[i]), IM(wa1[i]));
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
246 ComplexMult(&IM(ch[ah+2*l1*ido]), &RE(ch[ah+2*l1*ido]),
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
247 IM(d3), RE(d3), RE(wa2[i]), IM(wa2[i]));
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
248 #else
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
249 ComplexMult(&RE(ch[ah+l1*ido]), &IM(ch[ah+l1*ido]),
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
250 RE(d2), IM(d2), RE(wa1[i]), IM(wa1[i]));
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
251 ComplexMult(&RE(ch[ah+2*l1*ido]), &IM(ch[ah+2*l1*ido]),
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
252 RE(d3), IM(d3), RE(wa2[i]), IM(wa2[i]));
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
253 #endif
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
254 }
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
255 }
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
256 } else {
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
257 for (k = 0; k < l1; k++)
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
258 {
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
259 for (i = 0; i < ido; i++)
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
260 {
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
261 ac = i + (3*k+1)*ido;
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
262 ah = i + k * ido;
10725
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
263
12527
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
264 RE(t2) = RE(cc[ac]) + RE(cc[ac+ido]);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
265 RE(c2) = RE(cc[ac-ido]) + MUL_F(RE(t2),taur);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
266 IM(t2) = IM(cc[ac]) + IM(cc[ac+ido]);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
267 IM(c2) = IM(cc[ac-ido]) + MUL_F(IM(t2),taur);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
268
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
269 RE(ch[ah]) = RE(cc[ac-ido]) + RE(t2);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
270 IM(ch[ah]) = IM(cc[ac-ido]) + IM(t2);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
271
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
272 RE(c3) = MUL_F((RE(cc[ac]) - RE(cc[ac+ido])), taui);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
273 IM(c3) = MUL_F((IM(cc[ac]) - IM(cc[ac+ido])), taui);
10725
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
274
12527
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
275 RE(d2) = RE(c2) + IM(c3);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
276 IM(d3) = IM(c2) + RE(c3);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
277 RE(d3) = RE(c2) - IM(c3);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
278 IM(d2) = IM(c2) - RE(c3);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
279
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
280 #if 1
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
281 ComplexMult(&RE(ch[ah+l1*ido]), &IM(ch[ah+l1*ido]),
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
282 RE(d2), IM(d2), RE(wa1[i]), IM(wa1[i]));
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
283 ComplexMult(&RE(ch[ah+2*l1*ido]), &IM(ch[ah+2*l1*ido]),
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
284 RE(d3), IM(d3), RE(wa2[i]), IM(wa2[i]));
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
285 #else
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
286 ComplexMult(&IM(ch[ah+l1*ido]), &RE(ch[ah+l1*ido]),
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
287 IM(d2), RE(d2), RE(wa1[i]), IM(wa1[i]));
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
288 ComplexMult(&IM(ch[ah+2*l1*ido]), &RE(ch[ah+2*l1*ido]),
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
289 IM(d3), RE(d3), RE(wa2[i]), IM(wa2[i]));
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
290 #endif
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
291 }
10725
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
292 }
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
293 }
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
294 }
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
295 }
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
296
12527
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
297
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
298 static void passf4pos(const uint16_t ido, const uint16_t l1, const complex_t *cc,
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
299 complex_t *ch, const complex_t *wa1, const complex_t *wa2,
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
300 const complex_t *wa3)
10725
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
301 {
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
302 uint16_t i, k, ac, ah;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
303
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
304 if (ido == 1)
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
305 {
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
306 for (k = 0; k < l1; k++)
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
307 {
10989
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
308 complex_t t1, t2, t3, t4;
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
309
10725
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
310 ac = 4*k;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
311 ah = k;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
312
12527
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
313 RE(t2) = RE(cc[ac]) + RE(cc[ac+2]);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
314 RE(t1) = RE(cc[ac]) - RE(cc[ac+2]);
10989
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
315 IM(t2) = IM(cc[ac]) + IM(cc[ac+2]);
12527
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
316 IM(t1) = IM(cc[ac]) - IM(cc[ac+2]);
10725
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
317 RE(t3) = RE(cc[ac+1]) + RE(cc[ac+3]);
10989
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
318 IM(t4) = RE(cc[ac+1]) - RE(cc[ac+3]);
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
319 IM(t3) = IM(cc[ac+3]) + IM(cc[ac+1]);
10725
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
320 RE(t4) = IM(cc[ac+3]) - IM(cc[ac+1]);
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
321
12527
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
322 RE(ch[ah]) = RE(t2) + RE(t3);
10725
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
323 RE(ch[ah+2*l1]) = RE(t2) - RE(t3);
10989
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
324
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
325 IM(ch[ah]) = IM(t2) + IM(t3);
10725
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
326 IM(ch[ah+2*l1]) = IM(t2) - IM(t3);
10989
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
327
12527
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
328 RE(ch[ah+l1]) = RE(t1) + RE(t4);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
329 RE(ch[ah+3*l1]) = RE(t1) - RE(t4);
10989
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
330
12527
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
331 IM(ch[ah+l1]) = IM(t1) + IM(t4);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
332 IM(ch[ah+3*l1]) = IM(t1) - IM(t4);
10725
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
333 }
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
334 } else {
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
335 for (k = 0; k < l1; k++)
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
336 {
10989
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
337 ac = 4*k*ido;
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
338 ah = k*ido;
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
339
10725
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
340 for (i = 0; i < ido; i++)
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
341 {
10989
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
342 complex_t c2, c3, c4, t1, t2, t3, t4;
10725
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
343
10989
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
344 RE(t2) = RE(cc[ac+i]) + RE(cc[ac+i+2*ido]);
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
345 RE(t1) = RE(cc[ac+i]) - RE(cc[ac+i+2*ido]);
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
346 IM(t2) = IM(cc[ac+i]) + IM(cc[ac+i+2*ido]);
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
347 IM(t1) = IM(cc[ac+i]) - IM(cc[ac+i+2*ido]);
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
348 RE(t3) = RE(cc[ac+i+ido]) + RE(cc[ac+i+3*ido]);
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
349 IM(t4) = RE(cc[ac+i+ido]) - RE(cc[ac+i+3*ido]);
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
350 IM(t3) = IM(cc[ac+i+3*ido]) + IM(cc[ac+i+ido]);
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
351 RE(t4) = IM(cc[ac+i+3*ido]) - IM(cc[ac+i+ido]);
10725
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
352
12527
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
353 RE(c2) = RE(t1) + RE(t4);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
354 RE(c4) = RE(t1) - RE(t4);
10989
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
355
12527
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
356 IM(c2) = IM(t1) + IM(t4);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
357 IM(c4) = IM(t1) - IM(t4);
10725
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
358
10989
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
359 RE(ch[ah+i]) = RE(t2) + RE(t3);
12527
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
360 RE(c3) = RE(t2) - RE(t3);
10989
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
361
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
362 IM(ch[ah+i]) = IM(t2) + IM(t3);
12527
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
363 IM(c3) = IM(t2) - IM(t3);
10989
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
364
12527
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
365 #if 1
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
366 ComplexMult(&IM(ch[ah+i+l1*ido]), &RE(ch[ah+i+l1*ido]),
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
367 IM(c2), RE(c2), RE(wa1[i]), IM(wa1[i]));
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
368 ComplexMult(&IM(ch[ah+i+2*l1*ido]), &RE(ch[ah+i+2*l1*ido]),
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
369 IM(c3), RE(c3), RE(wa2[i]), IM(wa2[i]));
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
370 ComplexMult(&IM(ch[ah+i+3*l1*ido]), &RE(ch[ah+i+3*l1*ido]),
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
371 IM(c4), RE(c4), RE(wa3[i]), IM(wa3[i]));
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
372 #else
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
373 ComplexMult(&RE(ch[ah+i+l1*ido]), &IM(ch[ah+i+l1*ido]),
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
374 RE(c2), IM(c2), RE(wa1[i]), IM(wa1[i]));
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
375 ComplexMult(&RE(ch[ah+i+2*l1*ido]), &IM(ch[ah+i+2*l1*ido]),
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
376 RE(c3), IM(c3), RE(wa2[i]), IM(wa2[i]));
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
377 ComplexMult(&RE(ch[ah+i+3*l1*ido]), &IM(ch[ah+i+3*l1*ido]),
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
378 RE(c4), IM(c4), RE(wa3[i]), IM(wa3[i]));
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
379 #endif
10725
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
380 }
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
381 }
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
382 }
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
383 }
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
384
12527
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
385 static void passf4neg(const uint16_t ido, const uint16_t l1, const complex_t *cc,
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
386 complex_t *ch, const complex_t *wa1, const complex_t *wa2,
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
387 const complex_t *wa3)
10725
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
388 {
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
389 uint16_t i, k, ac, ah;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
390
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
391 if (ido == 1)
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
392 {
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
393 for (k = 0; k < l1; k++)
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
394 {
12527
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
395 complex_t t1, t2, t3, t4;
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
396
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
397 ac = 4*k;
10725
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
398 ah = k;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
399
12527
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
400 RE(t2) = RE(cc[ac]) + RE(cc[ac+2]);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
401 RE(t1) = RE(cc[ac]) - RE(cc[ac+2]);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
402 IM(t2) = IM(cc[ac]) + IM(cc[ac+2]);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
403 IM(t1) = IM(cc[ac]) - IM(cc[ac+2]);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
404 RE(t3) = RE(cc[ac+1]) + RE(cc[ac+3]);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
405 IM(t4) = RE(cc[ac+1]) - RE(cc[ac+3]);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
406 IM(t3) = IM(cc[ac+3]) + IM(cc[ac+1]);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
407 RE(t4) = IM(cc[ac+3]) - IM(cc[ac+1]);
10725
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
408
12527
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
409 RE(ch[ah]) = RE(t2) + RE(t3);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
410 RE(ch[ah+2*l1]) = RE(t2) - RE(t3);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
411
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
412 IM(ch[ah]) = IM(t2) + IM(t3);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
413 IM(ch[ah+2*l1]) = IM(t2) - IM(t3);
10725
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
414
12527
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
415 RE(ch[ah+l1]) = RE(t1) - RE(t4);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
416 RE(ch[ah+3*l1]) = RE(t1) + RE(t4);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
417
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
418 IM(ch[ah+l1]) = IM(t1) - IM(t4);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
419 IM(ch[ah+3*l1]) = IM(t1) + IM(t4);
10725
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
420 }
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
421 } else {
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
422 for (k = 0; k < l1; k++)
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
423 {
12527
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
424 ac = 4*k*ido;
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
425 ah = k*ido;
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
426
10725
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
427 for (i = 0; i < ido; i++)
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
428 {
12527
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
429 complex_t c2, c3, c4, t1, t2, t3, t4;
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
430
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
431 RE(t2) = RE(cc[ac+i]) + RE(cc[ac+i+2*ido]);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
432 RE(t1) = RE(cc[ac+i]) - RE(cc[ac+i+2*ido]);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
433 IM(t2) = IM(cc[ac+i]) + IM(cc[ac+i+2*ido]);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
434 IM(t1) = IM(cc[ac+i]) - IM(cc[ac+i+2*ido]);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
435 RE(t3) = RE(cc[ac+i+ido]) + RE(cc[ac+i+3*ido]);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
436 IM(t4) = RE(cc[ac+i+ido]) - RE(cc[ac+i+3*ido]);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
437 IM(t3) = IM(cc[ac+i+3*ido]) + IM(cc[ac+i+ido]);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
438 RE(t4) = IM(cc[ac+i+3*ido]) - IM(cc[ac+i+ido]);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
439
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
440 RE(c2) = RE(t1) - RE(t4);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
441 RE(c4) = RE(t1) + RE(t4);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
442
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
443 IM(c2) = IM(t1) - IM(t4);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
444 IM(c4) = IM(t1) + IM(t4);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
445
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
446 RE(ch[ah+i]) = RE(t2) + RE(t3);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
447 RE(c3) = RE(t2) - RE(t3);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
448
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
449 IM(ch[ah+i]) = IM(t2) + IM(t3);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
450 IM(c3) = IM(t2) - IM(t3);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
451
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
452 #if 1
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
453 ComplexMult(&RE(ch[ah+i+l1*ido]), &IM(ch[ah+i+l1*ido]),
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
454 RE(c2), IM(c2), RE(wa1[i]), IM(wa1[i]));
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
455 ComplexMult(&RE(ch[ah+i+2*l1*ido]), &IM(ch[ah+i+2*l1*ido]),
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
456 RE(c3), IM(c3), RE(wa2[i]), IM(wa2[i]));
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
457 ComplexMult(&RE(ch[ah+i+3*l1*ido]), &IM(ch[ah+i+3*l1*ido]),
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
458 RE(c4), IM(c4), RE(wa3[i]), IM(wa3[i]));
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
459 #else
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
460 ComplexMult(&IM(ch[ah+i+l1*ido]), &RE(ch[ah+i+l1*ido]),
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
461 IM(c2), RE(c2), RE(wa1[i]), IM(wa1[i]));
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
462 ComplexMult(&IM(ch[ah+i+2*l1*ido]), &RE(ch[ah+i+2*l1*ido]),
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
463 IM(c3), RE(c3), RE(wa2[i]), IM(wa2[i]));
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
464 ComplexMult(&IM(ch[ah+i+3*l1*ido]), &RE(ch[ah+i+3*l1*ido]),
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
465 IM(c4), RE(c4), RE(wa3[i]), IM(wa3[i]));
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
466 #endif
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
467 }
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
468 }
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
469 }
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
470 }
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
471
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
472 static void passf5(const uint16_t ido, const uint16_t l1, const complex_t *cc,
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
473 complex_t *ch, const complex_t *wa1, const complex_t *wa2, const complex_t *wa3,
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
474 const complex_t *wa4, const int8_t isign)
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
475 {
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
476 static real_t tr11 = FRAC_CONST(0.309016994374947);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
477 static real_t ti11 = FRAC_CONST(0.951056516295154);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
478 static real_t tr12 = FRAC_CONST(-0.809016994374947);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
479 static real_t ti12 = FRAC_CONST(0.587785252292473);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
480 uint16_t i, k, ac, ah;
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
481 complex_t c2, c3, c4, c5, d3, d4, d5, d2, t2, t3, t4, t5;
10725
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
482
12527
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
483 if (ido == 1)
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
484 {
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
485 if (isign == 1)
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
486 {
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
487 for (k = 0; k < l1; k++)
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
488 {
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
489 ac = 5*k + 1;
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
490 ah = k;
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
491
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
492 RE(t2) = RE(cc[ac]) + RE(cc[ac+3]);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
493 IM(t2) = IM(cc[ac]) + IM(cc[ac+3]);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
494 RE(t3) = RE(cc[ac+1]) + RE(cc[ac+2]);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
495 IM(t3) = IM(cc[ac+1]) + IM(cc[ac+2]);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
496 RE(t4) = RE(cc[ac+1]) - RE(cc[ac+2]);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
497 IM(t4) = IM(cc[ac+1]) - IM(cc[ac+2]);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
498 RE(t5) = RE(cc[ac]) - RE(cc[ac+3]);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
499 IM(t5) = IM(cc[ac]) - IM(cc[ac+3]);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
500
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
501 RE(ch[ah]) = RE(cc[ac-1]) + RE(t2) + RE(t3);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
502 IM(ch[ah]) = IM(cc[ac-1]) + IM(t2) + IM(t3);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
503
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
504 RE(c2) = RE(cc[ac-1]) + MUL_F(RE(t2),tr11) + MUL_F(RE(t3),tr12);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
505 IM(c2) = IM(cc[ac-1]) + MUL_F(IM(t2),tr11) + MUL_F(IM(t3),tr12);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
506 RE(c3) = RE(cc[ac-1]) + MUL_F(RE(t2),tr12) + MUL_F(RE(t3),tr11);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
507 IM(c3) = IM(cc[ac-1]) + MUL_F(IM(t2),tr12) + MUL_F(IM(t3),tr11);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
508
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
509 ComplexMult(&RE(c5), &RE(c4),
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
510 ti11, ti12, RE(t5), RE(t4));
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
511 ComplexMult(&IM(c5), &IM(c4),
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
512 ti11, ti12, IM(t5), IM(t4));
10725
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
513
12527
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
514 RE(ch[ah+l1]) = RE(c2) - IM(c5);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
515 IM(ch[ah+l1]) = IM(c2) + RE(c5);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
516 RE(ch[ah+2*l1]) = RE(c3) - IM(c4);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
517 IM(ch[ah+2*l1]) = IM(c3) + RE(c4);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
518 RE(ch[ah+3*l1]) = RE(c3) + IM(c4);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
519 IM(ch[ah+3*l1]) = IM(c3) - RE(c4);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
520 RE(ch[ah+4*l1]) = RE(c2) + IM(c5);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
521 IM(ch[ah+4*l1]) = IM(c2) - RE(c5);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
522 }
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
523 } else {
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
524 for (k = 0; k < l1; k++)
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
525 {
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
526 ac = 5*k + 1;
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
527 ah = k;
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
528
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
529 RE(t2) = RE(cc[ac]) + RE(cc[ac+3]);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
530 IM(t2) = IM(cc[ac]) + IM(cc[ac+3]);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
531 RE(t3) = RE(cc[ac+1]) + RE(cc[ac+2]);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
532 IM(t3) = IM(cc[ac+1]) + IM(cc[ac+2]);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
533 RE(t4) = RE(cc[ac+1]) - RE(cc[ac+2]);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
534 IM(t4) = IM(cc[ac+1]) - IM(cc[ac+2]);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
535 RE(t5) = RE(cc[ac]) - RE(cc[ac+3]);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
536 IM(t5) = IM(cc[ac]) - IM(cc[ac+3]);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
537
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
538 RE(ch[ah]) = RE(cc[ac-1]) + RE(t2) + RE(t3);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
539 IM(ch[ah]) = IM(cc[ac-1]) + IM(t2) + IM(t3);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
540
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
541 RE(c2) = RE(cc[ac-1]) + MUL_F(RE(t2),tr11) + MUL_F(RE(t3),tr12);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
542 IM(c2) = IM(cc[ac-1]) + MUL_F(IM(t2),tr11) + MUL_F(IM(t3),tr12);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
543 RE(c3) = RE(cc[ac-1]) + MUL_F(RE(t2),tr12) + MUL_F(RE(t3),tr11);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
544 IM(c3) = IM(cc[ac-1]) + MUL_F(IM(t2),tr12) + MUL_F(IM(t3),tr11);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
545
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
546 ComplexMult(&RE(c4), &RE(c5),
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
547 ti12, ti11, RE(t5), RE(t4));
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
548 ComplexMult(&IM(c4), &IM(c5),
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
549 ti12, ti12, IM(t5), IM(t4));
10725
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
550
12527
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
551 RE(ch[ah+l1]) = RE(c2) + IM(c5);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
552 IM(ch[ah+l1]) = IM(c2) - RE(c5);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
553 RE(ch[ah+2*l1]) = RE(c3) + IM(c4);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
554 IM(ch[ah+2*l1]) = IM(c3) - RE(c4);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
555 RE(ch[ah+3*l1]) = RE(c3) - IM(c4);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
556 IM(ch[ah+3*l1]) = IM(c3) + RE(c4);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
557 RE(ch[ah+4*l1]) = RE(c2) - IM(c5);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
558 IM(ch[ah+4*l1]) = IM(c2) + RE(c5);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
559 }
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
560 }
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
561 } else {
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
562 if (isign == 1)
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
563 {
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
564 for (k = 0; k < l1; k++)
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
565 {
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
566 for (i = 0; i < ido; i++)
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
567 {
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
568 ac = i + (k*5 + 1) * ido;
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
569 ah = i + k * ido;
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
570
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
571 RE(t2) = RE(cc[ac]) + RE(cc[ac+3*ido]);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
572 IM(t2) = IM(cc[ac]) + IM(cc[ac+3*ido]);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
573 RE(t3) = RE(cc[ac+ido]) + RE(cc[ac+2*ido]);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
574 IM(t3) = IM(cc[ac+ido]) + IM(cc[ac+2*ido]);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
575 RE(t4) = RE(cc[ac+ido]) - RE(cc[ac+2*ido]);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
576 IM(t4) = IM(cc[ac+ido]) - IM(cc[ac+2*ido]);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
577 RE(t5) = RE(cc[ac]) - RE(cc[ac+3*ido]);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
578 IM(t5) = IM(cc[ac]) - IM(cc[ac+3*ido]);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
579
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
580 RE(ch[ah]) = RE(cc[ac-ido]) + RE(t2) + RE(t3);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
581 IM(ch[ah]) = IM(cc[ac-ido]) + IM(t2) + IM(t3);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
582
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
583 RE(c2) = RE(cc[ac-ido]) + MUL_F(RE(t2),tr11) + MUL_F(RE(t3),tr12);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
584 IM(c2) = IM(cc[ac-ido]) + MUL_F(IM(t2),tr11) + MUL_F(IM(t3),tr12);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
585 RE(c3) = RE(cc[ac-ido]) + MUL_F(RE(t2),tr12) + MUL_F(RE(t3),tr11);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
586 IM(c3) = IM(cc[ac-ido]) + MUL_F(IM(t2),tr12) + MUL_F(IM(t3),tr11);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
587
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
588 ComplexMult(&RE(c5), &RE(c4),
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
589 ti11, ti12, RE(t5), RE(t4));
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
590 ComplexMult(&IM(c5), &IM(c4),
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
591 ti11, ti12, IM(t5), IM(t4));
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
592
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
593 IM(d2) = IM(c2) + RE(c5);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
594 IM(d3) = IM(c3) + RE(c4);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
595 RE(d4) = RE(c3) + IM(c4);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
596 RE(d5) = RE(c2) + IM(c5);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
597 RE(d2) = RE(c2) - IM(c5);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
598 IM(d5) = IM(c2) - RE(c5);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
599 RE(d3) = RE(c3) - IM(c4);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
600 IM(d4) = IM(c3) - RE(c4);
10725
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
601
12527
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
602 #if 1
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
603 ComplexMult(&IM(ch[ah+l1*ido]), &RE(ch[ah+l1*ido]),
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
604 IM(d2), RE(d2), RE(wa1[i]), IM(wa1[i]));
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
605 ComplexMult(&IM(ch[ah+2*l1*ido]), &RE(ch[ah+2*l1*ido]),
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
606 IM(d3), RE(d3), RE(wa2[i]), IM(wa2[i]));
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
607 ComplexMult(&IM(ch[ah+3*l1*ido]), &RE(ch[ah+3*l1*ido]),
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
608 IM(d4), RE(d4), RE(wa3[i]), IM(wa3[i]));
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
609 ComplexMult(&IM(ch[ah+4*l1*ido]), &RE(ch[ah+4*l1*ido]),
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
610 IM(d5), RE(d5), RE(wa4[i]), IM(wa4[i]));
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
611 #else
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
612 ComplexMult(&RE(ch[ah+l1*ido]), &IM(ch[ah+l1*ido]),
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
613 RE(d2), IM(d2), RE(wa1[i]), IM(wa1[i]));
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
614 ComplexMult(&RE(ch[ah+2*l1*ido]), &IM(ch[ah+2*l1*ido]),
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
615 RE(d3), IM(d3), RE(wa2[i]), IM(wa2[i]));
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
616 ComplexMult(&RE(ch[ah+3*l1*ido]), &IM(ch[ah+3*l1*ido]),
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
617 RE(d4), IM(d4), RE(wa3[i]), IM(wa3[i]));
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
618 ComplexMult(&RE(ch[ah+4*l1*ido]), &IM(ch[ah+4*l1*ido]),
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
619 RE(d5), IM(d5), RE(wa4[i]), IM(wa4[i]));
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
620 #endif
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
621 }
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
622 }
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
623 } else {
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
624 for (k = 0; k < l1; k++)
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
625 {
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
626 for (i = 0; i < ido; i++)
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
627 {
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
628 ac = i + (k*5 + 1) * ido;
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
629 ah = i + k * ido;
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
630
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
631 RE(t2) = RE(cc[ac]) + RE(cc[ac+3*ido]);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
632 IM(t2) = IM(cc[ac]) + IM(cc[ac+3*ido]);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
633 RE(t3) = RE(cc[ac+ido]) + RE(cc[ac+2*ido]);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
634 IM(t3) = IM(cc[ac+ido]) + IM(cc[ac+2*ido]);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
635 RE(t4) = RE(cc[ac+ido]) - RE(cc[ac+2*ido]);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
636 IM(t4) = IM(cc[ac+ido]) - IM(cc[ac+2*ido]);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
637 RE(t5) = RE(cc[ac]) - RE(cc[ac+3*ido]);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
638 IM(t5) = IM(cc[ac]) - IM(cc[ac+3*ido]);
10725
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
639
12527
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
640 RE(ch[ah]) = RE(cc[ac-ido]) + RE(t2) + RE(t3);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
641 IM(ch[ah]) = IM(cc[ac-ido]) + IM(t2) + IM(t3);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
642
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
643 RE(c2) = RE(cc[ac-ido]) + MUL_F(RE(t2),tr11) + MUL_F(RE(t3),tr12);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
644 IM(c2) = IM(cc[ac-ido]) + MUL_F(IM(t2),tr11) + MUL_F(IM(t3),tr12);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
645 RE(c3) = RE(cc[ac-ido]) + MUL_F(RE(t2),tr12) + MUL_F(RE(t3),tr11);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
646 IM(c3) = IM(cc[ac-ido]) + MUL_F(IM(t2),tr12) + MUL_F(IM(t3),tr11);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
647
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
648 ComplexMult(&RE(c4), &RE(c5),
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
649 ti12, ti11, RE(t5), RE(t4));
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
650 ComplexMult(&IM(c4), &IM(c5),
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
651 ti12, ti12, IM(t5), IM(t4));
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
652
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
653 IM(d2) = IM(c2) - RE(c5);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
654 IM(d3) = IM(c3) - RE(c4);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
655 RE(d4) = RE(c3) - IM(c4);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
656 RE(d5) = RE(c2) - IM(c5);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
657 RE(d2) = RE(c2) + IM(c5);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
658 IM(d5) = IM(c2) + RE(c5);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
659 RE(d3) = RE(c3) + IM(c4);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
660 IM(d4) = IM(c3) + RE(c4);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
661
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
662 #if 1
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
663 ComplexMult(&RE(ch[ah+l1*ido]), &IM(ch[ah+l1*ido]),
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
664 RE(d2), IM(d2), RE(wa1[i]), IM(wa1[i]));
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
665 ComplexMult(&RE(ch[ah+2*l1*ido]), &IM(ch[ah+2*l1*ido]),
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
666 RE(d3), IM(d3), RE(wa2[i]), IM(wa2[i]));
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
667 ComplexMult(&RE(ch[ah+3*l1*ido]), &IM(ch[ah+3*l1*ido]),
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
668 RE(d4), IM(d4), RE(wa3[i]), IM(wa3[i]));
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
669 ComplexMult(&RE(ch[ah+4*l1*ido]), &IM(ch[ah+4*l1*ido]),
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
670 RE(d5), IM(d5), RE(wa4[i]), IM(wa4[i]));
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
671 #else
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
672 ComplexMult(&IM(ch[ah+l1*ido]), &RE(ch[ah+l1*ido]),
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
673 IM(d2), RE(d2), RE(wa1[i]), IM(wa1[i]));
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
674 ComplexMult(&IM(ch[ah+2*l1*ido]), &RE(ch[ah+2*l1*ido]),
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
675 IM(d3), RE(d3), RE(wa2[i]), IM(wa2[i]));
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
676 ComplexMult(&IM(ch[ah+3*l1*ido]), &RE(ch[ah+3*l1*ido]),
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
677 IM(d4), RE(d4), RE(wa3[i]), IM(wa3[i]));
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
678 ComplexMult(&IM(ch[ah+4*l1*ido]), &RE(ch[ah+4*l1*ido]),
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
679 IM(d5), RE(d5), RE(wa4[i]), IM(wa4[i]));
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
680 #endif
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
681 }
10725
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
682 }
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
683 }
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
684 }
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
685 }
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
686
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
687
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
688 /*----------------------------------------------------------------------
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
689 cfftf1, cfftf, cfftb, cffti1, cffti. Complex FFTs.
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
690 ----------------------------------------------------------------------*/
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
691
12527
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
692 static INLINE void cfftf1pos(uint16_t n, complex_t *c, complex_t *ch,
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
693 const uint16_t *ifac, const complex_t *wa,
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
694 const int8_t isign)
10725
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
695 {
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
696 uint16_t i;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
697 uint16_t k1, l1, l2;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
698 uint16_t na, nf, ip, iw, ix2, ix3, ix4, ido, idl1;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
699
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
700 nf = ifac[1];
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
701 na = 0;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
702 l1 = 1;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
703 iw = 0;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
704
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
705 for (k1 = 2; k1 <= nf+1; k1++)
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
706 {
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
707 ip = ifac[k1];
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
708 l2 = ip*l1;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
709 ido = n / l2;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
710 idl1 = ido*l1;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
711
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
712 switch (ip)
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
713 {
10989
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
714 case 4:
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
715 ix2 = iw + ido;
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
716 ix3 = ix2 + ido;
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
717
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
718 if (na == 0)
12527
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
719 passf4pos((const uint16_t)ido, (const uint16_t)l1, (const complex_t*)c, ch, &wa[iw], &wa[ix2], &wa[ix3]);
10989
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
720 else
12527
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
721 passf4pos((const uint16_t)ido, (const uint16_t)l1, (const complex_t*)ch, c, &wa[iw], &wa[ix2], &wa[ix3]);
10989
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
722
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
723 na = 1 - na;
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
724 break;
10725
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
725 case 2:
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
726 if (na == 0)
12527
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
727 passf2pos((const uint16_t)ido, (const uint16_t)l1, (const complex_t*)c, ch, &wa[iw]);
10725
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
728 else
12527
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
729 passf2pos((const uint16_t)ido, (const uint16_t)l1, (const complex_t*)ch, c, &wa[iw]);
10725
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
730
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
731 na = 1 - na;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
732 break;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
733 case 3:
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
734 ix2 = iw + ido;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
735
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
736 if (na == 0)
12527
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
737 passf3((const uint16_t)ido, (const uint16_t)l1, (const complex_t*)c, ch, &wa[iw], &wa[ix2], isign);
10725
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
738 else
12527
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
739 passf3((const uint16_t)ido, (const uint16_t)l1, (const complex_t*)ch, c, &wa[iw], &wa[ix2], isign);
10725
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
740
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
741 na = 1 - na;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
742 break;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
743 case 5:
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
744 ix2 = iw + ido;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
745 ix3 = ix2 + ido;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
746 ix4 = ix3 + ido;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
747
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
748 if (na == 0)
12527
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
749 passf5((const uint16_t)ido, (const uint16_t)l1, (const complex_t*)c, ch, &wa[iw], &wa[ix2], &wa[ix3], &wa[ix4], isign);
10725
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
750 else
12527
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
751 passf5((const uint16_t)ido, (const uint16_t)l1, (const complex_t*)ch, c, &wa[iw], &wa[ix2], &wa[ix3], &wa[ix4], isign);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
752
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
753 na = 1 - na;
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
754 break;
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
755 }
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
756
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
757 l1 = l2;
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
758 iw += (ip-1) * ido;
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
759 }
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
760
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
761 if (na == 0)
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
762 return;
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
763
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
764 for (i = 0; i < n; i++)
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
765 {
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
766 RE(c[i]) = RE(ch[i]);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
767 IM(c[i]) = IM(ch[i]);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
768 }
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
769 }
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
770
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
771 static INLINE void cfftf1neg(uint16_t n, complex_t *c, complex_t *ch,
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
772 const uint16_t *ifac, const complex_t *wa,
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
773 const int8_t isign)
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
774 {
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
775 uint16_t i;
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
776 uint16_t k1, l1, l2;
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
777 uint16_t na, nf, ip, iw, ix2, ix3, ix4, ido, idl1;
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
778
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
779 nf = ifac[1];
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
780 na = 0;
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
781 l1 = 1;
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
782 iw = 0;
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
783
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
784 for (k1 = 2; k1 <= nf+1; k1++)
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
785 {
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
786 ip = ifac[k1];
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
787 l2 = ip*l1;
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
788 ido = n / l2;
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
789 idl1 = ido*l1;
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
790
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
791 switch (ip)
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
792 {
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
793 case 4:
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
794 ix2 = iw + ido;
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
795 ix3 = ix2 + ido;
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
796
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
797 if (na == 0)
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
798 passf4neg((const uint16_t)ido, (const uint16_t)l1, (const complex_t*)c, ch, &wa[iw], &wa[ix2], &wa[ix3]);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
799 else
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
800 passf4neg((const uint16_t)ido, (const uint16_t)l1, (const complex_t*)ch, c, &wa[iw], &wa[ix2], &wa[ix3]);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
801
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
802 na = 1 - na;
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
803 break;
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
804 case 2:
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
805 if (na == 0)
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
806 passf2neg((const uint16_t)ido, (const uint16_t)l1, (const complex_t*)c, ch, &wa[iw]);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
807 else
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
808 passf2neg((const uint16_t)ido, (const uint16_t)l1, (const complex_t*)ch, c, &wa[iw]);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
809
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
810 na = 1 - na;
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
811 break;
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
812 case 3:
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
813 ix2 = iw + ido;
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
814
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
815 if (na == 0)
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
816 passf3((const uint16_t)ido, (const uint16_t)l1, (const complex_t*)c, ch, &wa[iw], &wa[ix2], isign);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
817 else
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
818 passf3((const uint16_t)ido, (const uint16_t)l1, (const complex_t*)ch, c, &wa[iw], &wa[ix2], isign);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
819
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
820 na = 1 - na;
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
821 break;
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
822 case 5:
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
823 ix2 = iw + ido;
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
824 ix3 = ix2 + ido;
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
825 ix4 = ix3 + ido;
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
826
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
827 if (na == 0)
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
828 passf5((const uint16_t)ido, (const uint16_t)l1, (const complex_t*)c, ch, &wa[iw], &wa[ix2], &wa[ix3], &wa[ix4], isign);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
829 else
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
830 passf5((const uint16_t)ido, (const uint16_t)l1, (const complex_t*)ch, c, &wa[iw], &wa[ix2], &wa[ix3], &wa[ix4], isign);
10725
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
831
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
832 na = 1 - na;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
833 break;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
834 }
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
835
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
836 l1 = l2;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
837 iw += (ip-1) * ido;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
838 }
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
839
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
840 if (na == 0)
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
841 return;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
842
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
843 for (i = 0; i < n; i++)
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
844 {
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
845 RE(c[i]) = RE(ch[i]);
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
846 IM(c[i]) = IM(ch[i]);
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
847 }
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
848 }
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
849
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
850 void cfftf(cfft_info *cfft, complex_t *c)
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
851 {
12527
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
852 cfftf1neg(cfft->n, c, cfft->work, (const uint16_t*)cfft->ifac, (const complex_t*)cfft->tab, -1);
10725
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
853 }
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
854
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
855 void cfftb(cfft_info *cfft, complex_t *c)
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
856 {
12527
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
857 cfftf1pos(cfft->n, c, cfft->work, (const uint16_t*)cfft->ifac, (const complex_t*)cfft->tab, +1);
10725
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
858 }
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
859
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
860 static void cffti1(uint16_t n, complex_t *wa, uint16_t *ifac)
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
861 {
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
862 static uint16_t ntryh[4] = {3, 4, 2, 5};
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
863 #ifndef FIXED_POINT
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
864 real_t arg, argh, argld, fi;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
865 uint16_t ido, ipm;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
866 uint16_t i1, k1, l1, l2;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
867 uint16_t ld, ii, ip;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
868 #endif
12527
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
869 uint16_t ntry = 0, i, j;
10725
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
870 uint16_t ib;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
871 uint16_t nf, nl, nq, nr;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
872
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
873 nl = n;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
874 nf = 0;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
875 j = 0;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
876
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
877 startloop:
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
878 j++;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
879
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
880 if (j <= 4)
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
881 ntry = ntryh[j-1];
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
882 else
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
883 ntry += 2;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
884
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
885 do
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
886 {
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
887 nq = nl / ntry;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
888 nr = nl - ntry*nq;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
889
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
890 if (nr != 0)
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
891 goto startloop;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
892
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
893 nf++;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
894 ifac[nf+1] = ntry;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
895 nl = nq;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
896
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
897 if (ntry == 2 && nf != 1)
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
898 {
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
899 for (i = 2; i <= nf; i++)
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
900 {
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
901 ib = nf - i + 2;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
902 ifac[ib+1] = ifac[ib];
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
903 }
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
904 ifac[2] = 2;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
905 }
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
906 } while (nl != 1);
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
907
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
908 ifac[0] = n;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
909 ifac[1] = nf;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
910
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
911 #ifndef FIXED_POINT
12527
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
912 argh = (real_t)2.0*(real_t)M_PI / (real_t)n;
10725
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
913 i = 0;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
914 l1 = 1;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
915
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
916 for (k1 = 1; k1 <= nf; k1++)
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
917 {
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
918 ip = ifac[k1+1];
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
919 ld = 0;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
920 l2 = l1*ip;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
921 ido = n / l2;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
922 ipm = ip - 1;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
923
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
924 for (j = 0; j < ipm; j++)
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
925 {
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
926 i1 = i;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
927 RE(wa[i]) = 1.0;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
928 IM(wa[i]) = 0.0;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
929 ld += l1;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
930 fi = 0;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
931 argld = ld*argh;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
932
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
933 for (ii = 0; ii < ido; ii++)
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
934 {
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
935 i++;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
936 fi++;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
937 arg = fi * argld;
10989
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
938 RE(wa[i]) = (real_t)cos(arg);
12527
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
939 #if 1
10989
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
940 IM(wa[i]) = (real_t)sin(arg);
12527
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
941 #else
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
942 IM(wa[i]) = (real_t)-sin(arg);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
943 #endif
10725
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
944 }
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
945
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
946 if (ip > 5)
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
947 {
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
948 RE(wa[i1]) = RE(wa[i]);
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
949 IM(wa[i1]) = IM(wa[i]);
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
950 }
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
951 }
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
952 l1 = l2;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
953 }
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
954 #endif
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
955 }
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
956
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
957 cfft_info *cffti(uint16_t n)
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
958 {
12527
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
959 cfft_info *cfft = (cfft_info*)faad_malloc(sizeof(cfft_info));
10725
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
960
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
961 cfft->n = n;
12527
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
962 cfft->work = (complex_t*)faad_malloc(n*sizeof(complex_t));
10725
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
963
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
964 #ifndef FIXED_POINT
12527
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
965 cfft->tab = (complex_t*)faad_malloc(n*sizeof(complex_t));
10725
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
966
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
967 cffti1(n, cfft->tab, cfft->ifac);
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
968 #else
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
969 cffti1(n, NULL, cfft->ifac);
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
970
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
971 switch (n)
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
972 {
13453
6d50ef45a058 Update FAAD to a 2.1 beta CVS snapshot from 2004.07.12.
diego
parents: 12625
diff changeset
973 case 64: cfft->tab = (complex_t*)cfft_tab_64; break;
6d50ef45a058 Update FAAD to a 2.1 beta CVS snapshot from 2004.07.12.
diego
parents: 12625
diff changeset
974 case 512: cfft->tab = (complex_t*)cfft_tab_512; break;
10725
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
975 #ifdef LD_DEC
13453
6d50ef45a058 Update FAAD to a 2.1 beta CVS snapshot from 2004.07.12.
diego
parents: 12625
diff changeset
976 case 256: cfft->tab = (complex_t*)cfft_tab_256; break;
12527
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
977 #endif
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
978
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
979 #ifdef ALLOW_SMALL_FRAMELENGTH
13453
6d50ef45a058 Update FAAD to a 2.1 beta CVS snapshot from 2004.07.12.
diego
parents: 12625
diff changeset
980 case 60: cfft->tab = (complex_t*)cfft_tab_60; break;
6d50ef45a058 Update FAAD to a 2.1 beta CVS snapshot from 2004.07.12.
diego
parents: 12625
diff changeset
981 case 480: cfft->tab = (complex_t*)cfft_tab_480; break;
12527
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
982 #ifdef LD_DEC
13453
6d50ef45a058 Update FAAD to a 2.1 beta CVS snapshot from 2004.07.12.
diego
parents: 12625
diff changeset
983 case 240: cfft->tab = (complex_t*)cfft_tab_240; break;
12527
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
984 #endif
10725
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
985 #endif
18141
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 14727
diff changeset
986 case 128: cfft->tab = (complex_t*)cfft_tab_128; break;
10725
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
987 }
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
988 #endif
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
989
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
990 return cfft;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
991 }
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
992
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
993 void cfftu(cfft_info *cfft)
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
994 {
12527
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
995 if (cfft->work) faad_free(cfft->work);
10725
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
996 #ifndef FIXED_POINT
12527
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
997 if (cfft->tab) faad_free(cfft->tab);
10725
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
998 #endif
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
999
12527
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
1000 if (cfft) faad_free(cfft);
10989
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
1001 }
12527
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
1002