~ubuntu-branches/ubuntu/maverick/blender/maverick

« back to all changes in this revision

Viewing changes to extern/fftw/rdft/codelets/hc2r/hc2rIII_12.c

  • Committer: Bazaar Package Importer
  • Author(s): Khashayar Naderehvandi, Khashayar Naderehvandi, Alessio Treglia
  • Date: 2009-01-22 16:53:59 UTC
  • mfrom: (14.1.1 experimental)
  • Revision ID: james.westby@ubuntu.com-20090122165359-v0996tn7fbit64ni
Tags: 2.48a+dfsg-1ubuntu1
[ Khashayar Naderehvandi ]
* Merge from debian experimental (LP: #320045), Ubuntu remaining changes:
  - Add patch correcting header file locations.
  - Add libvorbis-dev and libgsm1-dev to Build-Depends.
  - Use avcodec_decode_audio2() in source/blender/src/hddaudio.c

[ Alessio Treglia ]
* Add missing previous changelog entries.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*
 
2
 * Copyright (c) 2003, 2006 Matteo Frigo
 
3
 * Copyright (c) 2003, 2006 Massachusetts Institute of Technology
 
4
 *
 
5
 * This program is free software; you can redistribute it and/or modify
 
6
 * it under the terms of the GNU General Public License as published by
 
7
 * the Free Software Foundation; either version 2 of the License, or
 
8
 * (at your option) any later version.
 
9
 *
 
10
 * This program is distributed in the hope that it will be useful,
 
11
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 
12
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
13
 * GNU General Public License for more details.
 
14
 *
 
15
 * You should have received a copy of the GNU General Public License
 
16
 * along with this program; if not, write to the Free Software
 
17
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 
18
 *
 
19
 */
 
20
 
 
21
/* This file was automatically generated --- DO NOT EDIT */
 
22
/* Generated on Sun Jul  2 16:39:49 EDT 2006 */
 
23
 
 
24
#include "codelet-rdft.h"
 
25
 
 
26
#ifdef HAVE_FMA
 
27
 
 
28
/* Generated by: ../../../genfft/gen_hc2r -fma -reorder-insns -schedule-for-pipeline -compact -variables 4 -pipeline-latency 4 -sign 1 -n 12 -name hc2rIII_12 -dft-III -include hc2rIII.h */
 
29
 
 
30
/*
 
31
 * This function contains 42 FP additions, 20 FP multiplications,
 
32
 * (or, 30 additions, 8 multiplications, 12 fused multiply/add),
 
33
 * 37 stack variables, and 24 memory accesses
 
34
 */
 
35
/*
 
36
 * Generator Id's : 
 
37
 * $Id: algsimp.ml,v 1.9 2006-02-12 23:34:12 athena Exp $
 
38
 * $Id: fft.ml,v 1.4 2006-01-05 03:04:27 stevenj Exp $
 
39
 * $Id: gen_hc2r.ml,v 1.19 2006-02-12 23:34:12 athena Exp $
 
40
 */
 
41
 
 
42
#include "hc2rIII.h"
 
43
 
 
44
static void hc2rIII_12(const R *ri, const R *ii, R *O, stride ris, stride iis, stride os, INT v, INT ivs, INT ovs)
 
45
{
 
46
     DK(KP707106781, +0.707106781186547524400844362104849039284835938);
 
47
     DK(KP1_414213562, +1.414213562373095048801688724209698078569671875);
 
48
     DK(KP1_732050807, +1.732050807568877293527446341505872366942805254);
 
49
     DK(KP2_000000000, +2.000000000000000000000000000000000000000000000);
 
50
     INT i;
 
51
     for (i = v; i > 0; i = i - 1, ri = ri + ivs, ii = ii + ivs, O = O + ovs, MAKE_VOLATILE_STRIDE(ris), MAKE_VOLATILE_STRIDE(iis), MAKE_VOLATILE_STRIDE(os)) {
 
52
          E TE, TD, TF, TG;
 
53
          {
 
54
               E Tx, T6, Te, Tb, T5, Tw, Ts, To, Th, Ti, T9, TA;
 
55
               {
 
56
                    E T1, Tq, Tc, Td, T4, T2, T3, T7, T8, Tr;
 
57
                    T1 = ri[WS(ris, 1)];
 
58
                    T2 = ri[WS(ris, 5)];
 
59
                    T3 = ri[WS(ris, 2)];
 
60
                    Tq = ii[WS(iis, 1)];
 
61
                    Tc = ii[WS(iis, 5)];
 
62
                    Td = ii[WS(iis, 2)];
 
63
                    T4 = T2 + T3;
 
64
                    Tx = T2 - T3;
 
65
                    T6 = ri[WS(ris, 4)];
 
66
                    Te = Tc + Td;
 
67
                    Tr = Td - Tc;
 
68
                    Tb = FNMS(KP2_000000000, T1, T4);
 
69
                    T5 = T1 + T4;
 
70
                    T7 = ri[0];
 
71
                    Tw = FMA(KP2_000000000, Tq, Tr);
 
72
                    Ts = Tq - Tr;
 
73
                    T8 = ri[WS(ris, 3)];
 
74
                    To = ii[WS(iis, 4)];
 
75
                    Th = ii[0];
 
76
                    Ti = ii[WS(iis, 3)];
 
77
                    T9 = T7 + T8;
 
78
                    TA = T7 - T8;
 
79
               }
 
80
               {
 
81
                    E Tl, Tm, Tv, TC;
 
82
                    {
 
83
                         E Tf, Ty, Tk, TB;
 
84
                         {
 
85
                              E Tj, Tn, Tg, Ta;
 
86
                              Tl = FNMS(KP1_732050807, Te, Tb);
 
87
                              Tf = FMA(KP1_732050807, Te, Tb);
 
88
                              Tj = Th + Ti;
 
89
                              Tn = Ti - Th;
 
90
                              Tg = FNMS(KP2_000000000, T6, T9);
 
91
                              Ta = T6 + T9;
 
92
                              {
 
93
                                   E Tu, Tt, Tz, Tp;
 
94
                                   Ty = FMA(KP1_732050807, Tx, Tw);
 
95
                                   TE = FNMS(KP1_732050807, Tx, Tw);
 
96
                                   Tz = FMA(KP2_000000000, To, Tn);
 
97
                                   Tp = Tn - To;
 
98
                                   Tm = FMA(KP1_732050807, Tj, Tg);
 
99
                                   Tk = FNMS(KP1_732050807, Tj, Tg);
 
100
                                   Tu = T5 - Ta;
 
101
                                   O[0] = KP2_000000000 * (T5 + Ta);
 
102
                                   Tt = Tp - Ts;
 
103
                                   O[WS(os, 6)] = KP2_000000000 * (Ts + Tp);
 
104
                                   Tv = Tk - Tf;
 
105
                                   TD = FMA(KP1_732050807, TA, Tz);
 
106
                                   TB = FNMS(KP1_732050807, TA, Tz);
 
107
                                   O[WS(os, 9)] = KP1_414213562 * (Tu + Tt);
 
108
                                   O[WS(os, 3)] = KP1_414213562 * (Tt - Tu);
 
109
                              }
 
110
                         }
 
111
                         O[WS(os, 4)] = Tf + Tk;
 
112
                         TC = Ty + TB;
 
113
                         O[WS(os, 10)] = TB - Ty;
 
114
                    }
 
115
                    O[WS(os, 7)] = KP707106781 * (Tv + TC);
 
116
                    O[WS(os, 1)] = KP707106781 * (Tv - TC);
 
117
                    TF = Tl - Tm;
 
118
                    O[WS(os, 8)] = -(Tl + Tm);
 
119
               }
 
120
          }
 
121
          O[WS(os, 2)] = TD - TE;
 
122
          TG = TE + TD;
 
123
          O[WS(os, 11)] = KP707106781 * (TF - TG);
 
124
          O[WS(os, 5)] = KP707106781 * (TF + TG);
 
125
     }
 
126
}
 
127
 
 
128
static const khc2r_desc desc = { 12, "hc2rIII_12", {30, 8, 12, 0}, &GENUS, 0, 0, 0, 0, 0 };
 
129
 
 
130
void X(codelet_hc2rIII_12) (planner *p) {
 
131
     X(khc2rIII_register) (p, hc2rIII_12, &desc);
 
132
}
 
133
 
 
134
#else                           /* HAVE_FMA */
 
135
 
 
136
/* Generated by: ../../../genfft/gen_hc2r -compact -variables 4 -pipeline-latency 4 -sign 1 -n 12 -name hc2rIII_12 -dft-III -include hc2rIII.h */
 
137
 
 
138
/*
 
139
 * This function contains 42 FP additions, 20 FP multiplications,
 
140
 * (or, 38 additions, 16 multiplications, 4 fused multiply/add),
 
141
 * 25 stack variables, and 24 memory accesses
 
142
 */
 
143
/*
 
144
 * Generator Id's : 
 
145
 * $Id: algsimp.ml,v 1.9 2006-02-12 23:34:12 athena Exp $
 
146
 * $Id: fft.ml,v 1.4 2006-01-05 03:04:27 stevenj Exp $
 
147
 * $Id: gen_hc2r.ml,v 1.19 2006-02-12 23:34:12 athena Exp $
 
148
 */
 
149
 
 
150
#include "hc2rIII.h"
 
151
 
 
152
static void hc2rIII_12(const R *ri, const R *ii, R *O, stride ris, stride iis, stride os, INT v, INT ivs, INT ovs)
 
153
{
 
154
     DK(KP1_414213562, +1.414213562373095048801688724209698078569671875);
 
155
     DK(KP2_000000000, +2.000000000000000000000000000000000000000000000);
 
156
     DK(KP500000000, +0.500000000000000000000000000000000000000000000);
 
157
     DK(KP866025403, +0.866025403784438646763723170752936183471402627);
 
158
     INT i;
 
159
     for (i = v; i > 0; i = i - 1, ri = ri + ivs, ii = ii + ivs, O = O + ovs, MAKE_VOLATILE_STRIDE(ris), MAKE_VOLATILE_STRIDE(iis), MAKE_VOLATILE_STRIDE(os)) {
 
160
          E T5, Tw, Tb, Te, Tx, Ts, Ta, TA, Tg, Tj, Tz, Tp, Tt, Tu;
 
161
          {
 
162
               E T1, T2, T3, T4;
 
163
               T1 = ri[WS(ris, 1)];
 
164
               T2 = ri[WS(ris, 5)];
 
165
               T3 = ri[WS(ris, 2)];
 
166
               T4 = T2 + T3;
 
167
               T5 = T1 + T4;
 
168
               Tw = KP866025403 * (T2 - T3);
 
169
               Tb = FNMS(KP500000000, T4, T1);
 
170
          }
 
171
          {
 
172
               E Tq, Tc, Td, Tr;
 
173
               Tq = ii[WS(iis, 1)];
 
174
               Tc = ii[WS(iis, 5)];
 
175
               Td = ii[WS(iis, 2)];
 
176
               Tr = Td - Tc;
 
177
               Te = KP866025403 * (Tc + Td);
 
178
               Tx = FMA(KP500000000, Tr, Tq);
 
179
               Ts = Tq - Tr;
 
180
          }
 
181
          {
 
182
               E T6, T7, T8, T9;
 
183
               T6 = ri[WS(ris, 4)];
 
184
               T7 = ri[0];
 
185
               T8 = ri[WS(ris, 3)];
 
186
               T9 = T7 + T8;
 
187
               Ta = T6 + T9;
 
188
               TA = KP866025403 * (T7 - T8);
 
189
               Tg = FNMS(KP500000000, T9, T6);
 
190
          }
 
191
          {
 
192
               E To, Th, Ti, Tn;
 
193
               To = ii[WS(iis, 4)];
 
194
               Th = ii[0];
 
195
               Ti = ii[WS(iis, 3)];
 
196
               Tn = Ti - Th;
 
197
               Tj = KP866025403 * (Th + Ti);
 
198
               Tz = FMA(KP500000000, Tn, To);
 
199
               Tp = Tn - To;
 
200
          }
 
201
          O[0] = KP2_000000000 * (T5 + Ta);
 
202
          O[WS(os, 6)] = KP2_000000000 * (Ts + Tp);
 
203
          Tt = Tp - Ts;
 
204
          Tu = T5 - Ta;
 
205
          O[WS(os, 3)] = KP1_414213562 * (Tt - Tu);
 
206
          O[WS(os, 9)] = KP1_414213562 * (Tu + Tt);
 
207
          {
 
208
               E Tf, Tk, Tv, Ty, TB, TC;
 
209
               Tf = Tb - Te;
 
210
               Tk = Tg + Tj;
 
211
               Tv = Tf - Tk;
 
212
               Ty = Tw + Tx;
 
213
               TB = Tz - TA;
 
214
               TC = Ty + TB;
 
215
               O[WS(os, 4)] = -(KP2_000000000 * (Tf + Tk));
 
216
               O[WS(os, 10)] = KP2_000000000 * (TB - Ty);
 
217
               O[WS(os, 1)] = KP1_414213562 * (Tv - TC);
 
218
               O[WS(os, 7)] = KP1_414213562 * (Tv + TC);
 
219
          }
 
220
          {
 
221
               E Tl, Tm, TF, TD, TE, TG;
 
222
               Tl = Tb + Te;
 
223
               Tm = Tg - Tj;
 
224
               TF = Tm - Tl;
 
225
               TD = TA + Tz;
 
226
               TE = Tx - Tw;
 
227
               TG = TE + TD;
 
228
               O[WS(os, 8)] = KP2_000000000 * (Tl + Tm);
 
229
               O[WS(os, 5)] = KP1_414213562 * (TF + TG);
 
230
               O[WS(os, 2)] = KP2_000000000 * (TD - TE);
 
231
               O[WS(os, 11)] = KP1_414213562 * (TF - TG);
 
232
          }
 
233
     }
 
234
}
 
235
 
 
236
static const khc2r_desc desc = { 12, "hc2rIII_12", {38, 16, 4, 0}, &GENUS, 0, 0, 0, 0, 0 };
 
237
 
 
238
void X(codelet_hc2rIII_12) (planner *p) {
 
239
     X(khc2rIII_register) (p, hc2rIII_12, &desc);
 
240
}
 
241
 
 
242
#endif                          /* HAVE_FMA */