~siretart/ubuntu/utopic/blender/libav10

« back to all changes in this revision

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

  • Committer: Bazaar Package Importer
  • Author(s): Kevin Roy
  • Date: 2011-02-08 22:20:54 UTC
  • mfrom: (1.4.2 upstream)
  • mto: (14.2.6 sid) (1.5.1)
  • mto: This revision was merged to the branch mainline in revision 27.
  • Revision ID: james.westby@ubuntu.com-20110208222054-kk0gwa4bu8h5lyq4
Tags: upstream-2.56.1-beta-svn34076
ImportĀ upstreamĀ versionĀ 2.56.1-beta-svn34076

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:41:09 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 64 -name hc2rIII_64 -dft-III -include hc2rIII.h */
29
 
 
30
 
/*
31
 
 * This function contains 434 FP additions, 260 FP multiplications,
32
 
 * (or, 238 additions, 64 multiplications, 196 fused multiply/add),
33
 
 * 165 stack variables, and 128 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_64(const R *ri, const R *ii, R *O, stride ris, stride iis, stride os, INT v, INT ivs, INT ovs)
45
 
{
46
 
     DK(KP357805721, +0.357805721314524104672487743774474392487532769);
47
 
     DK(KP1_883088130, +1.883088130366041556825018805199004714371179592);
48
 
     DK(KP472964775, +0.472964775891319928124438237972992463904131113);
49
 
     DK(KP1_807978586, +1.807978586246886663172400594461074097420264050);
50
 
     DK(KP049126849, +0.049126849769467254105343321271313617079695752);
51
 
     DK(KP1_997590912, +1.997590912410344785429543209518201388886407229);
52
 
     DK(KP906347169, +0.906347169019147157946142717268914412664134293);
53
 
     DK(KP1_481902250, +1.481902250709918182351233794990325459457910619);
54
 
     DK(KP980785280, +0.980785280403230449126182236134239036973933731);
55
 
     DK(KP250486960, +0.250486960191305461595702160124721208578685568);
56
 
     DK(KP1_940062506, +1.940062506389087985207968414572200502913731924);
57
 
     DK(KP599376933, +0.599376933681923766271389869014404232837890546);
58
 
     DK(KP1_715457220, +1.715457220000544139804539968569540274084981599);
59
 
     DK(KP148335987, +0.148335987538347428753676511486911367000625355);
60
 
     DK(KP1_978353019, +1.978353019929561946903347476032486127967379067);
61
 
     DK(KP741650546, +0.741650546272035369581266691172079863842265220);
62
 
     DK(KP1_606415062, +1.606415062961289819613353025926283847759138854);
63
 
     DK(KP831469612, +0.831469612302545237078788377617905756738560812);
64
 
     DK(KP303346683, +0.303346683607342391675883946941299872384187453);
65
 
     DK(KP1_913880671, +1.913880671464417729871595773960539938965698411);
66
 
     DK(KP534511135, +0.534511135950791641089685961295362908582039528);
67
 
     DK(KP1_763842528, +1.763842528696710059425513727320776699016885241);
68
 
     DK(KP098491403, +0.098491403357164253077197521291327432293052451);
69
 
     DK(KP1_990369453, +1.990369453344393772489673906218959843150949737);
70
 
     DK(KP820678790, +0.820678790828660330972281985331011598767386482);
71
 
     DK(KP1_546020906, +1.546020906725473921621813219516939601942082586);
72
 
     DK(KP923879532, +0.923879532511286756128183189396788286822416626);
73
 
     DK(KP198912367, +0.198912367379658006911597622644676228597850501);
74
 
     DK(KP1_961570560, +1.961570560806460898252364472268478073947867462);
75
 
     DK(KP668178637, +0.668178637919298919997757686523080761552472251);
76
 
     DK(KP1_662939224, +1.662939224605090474157576755235811513477121624);
77
 
     DK(KP1_847759065, +1.847759065022573512256366378793576573644833252);
78
 
     DK(KP1_414213562, +1.414213562373095048801688724209698078569671875);
79
 
     DK(KP2_000000000, +2.000000000000000000000000000000000000000000000);
80
 
     DK(KP707106781, +0.707106781186547524400844362104849039284835938);
81
 
     DK(KP414213562, +0.414213562373095048801688724209698078569671875);
82
 
     INT i;
83
 
     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)) {
84
 
          E T43, T4b, T49, T4e, T3T, T46, T40, T4a;
85
 
          {
86
 
               E T3t, T15, T2E, T3U, T6b, Tf, T6Q, T6u, T5J, T4L, T3V, T1g, T5U, T5q, T3u;
87
 
               E T2H, T6v, Tu, T5r, T4V, T6R, T6e, T2K, T1s, T2J, T1D, T3X, T3B, T5s, T4Q;
88
 
               E T3Y, T3y, T6g, TK, T5M, T57, T6N, T6j, T35, T1W, T34, T25, T4i, T3J, T5N;
89
 
               E T52, T4j, T3G, T6l, TZ, T3L, T5P, T5i, T6M, T6o, T3M, T38, T2n, T37, T2w;
90
 
               E T4l, T3Q, T5Q, T5d;
91
 
               {
92
 
                    E T3x, T3w, T3E, T3F;
93
 
                    {
94
 
                         E T5p, T5o, T2G, T2F;
95
 
                         {
96
 
                              E T11, T3, T5m, T2D, T2A, T6, T5n, T14, Tb, T16, Ta, T4I, T19, Tc, T1c;
97
 
                              E T1d;
98
 
                              {
99
 
                                   E T4, T5, T12, T13;
100
 
                                   {
101
 
                                        E T1, T2, T2B, T2C;
102
 
                                        T1 = ri[0];
103
 
                                        T2 = ri[WS(ris, 31)];
104
 
                                        T2B = ii[0];
105
 
                                        T2C = ii[WS(iis, 31)];
106
 
                                        T4 = ri[WS(ris, 16)];
107
 
                                        T11 = T1 - T2;
108
 
                                        T3 = T1 + T2;
109
 
                                        T5m = T2C - T2B;
110
 
                                        T2D = T2B + T2C;
111
 
                                        T5 = ri[WS(ris, 15)];
112
 
                                        T12 = ii[WS(iis, 16)];
113
 
                                        T13 = ii[WS(iis, 15)];
114
 
                                   }
115
 
                                   {
116
 
                                        E T8, T9, T17, T18;
117
 
                                        T8 = ri[WS(ris, 8)];
118
 
                                        T2A = T4 - T5;
119
 
                                        T6 = T4 + T5;
120
 
                                        T5n = T13 - T12;
121
 
                                        T14 = T12 + T13;
122
 
                                        T9 = ri[WS(ris, 23)];
123
 
                                        T17 = ii[WS(iis, 8)];
124
 
                                        T18 = ii[WS(iis, 23)];
125
 
                                        Tb = ri[WS(ris, 7)];
126
 
                                        T16 = T8 - T9;
127
 
                                        Ta = T8 + T9;
128
 
                                        T4I = T18 - T17;
129
 
                                        T19 = T17 + T18;
130
 
                                        Tc = ri[WS(ris, 24)];
131
 
                                        T1c = ii[WS(iis, 7)];
132
 
                                        T1d = ii[WS(iis, 24)];
133
 
                                   }
134
 
                              }
135
 
                              {
136
 
                                   E T1b, T4J, T1e, T4H, T7, Te, Td;
137
 
                                   T3t = T11 + T14;
138
 
                                   T15 = T11 - T14;
139
 
                                   T1b = Tb - Tc;
140
 
                                   Td = Tb + Tc;
141
 
                                   T4J = T1c - T1d;
142
 
                                   T1e = T1c + T1d;
143
 
                                   T2E = T2A + T2D;
144
 
                                   T3U = T2A - T2D;
145
 
                                   T4H = T3 - T6;
146
 
                                   T7 = T3 + T6;
147
 
                                   Te = Ta + Td;
148
 
                                   T5p = Ta - Td;
149
 
                                   {
150
 
                                        E T4K, T6s, T6t, T1a, T1f;
151
 
                                        T5o = T5m - T5n;
152
 
                                        T6s = T5n + T5m;
153
 
                                        T6t = T4I + T4J;
154
 
                                        T4K = T4I - T4J;
155
 
                                        T6b = T7 - Te;
156
 
                                        Tf = T7 + Te;
157
 
                                        T6Q = T6t + T6s;
158
 
                                        T6u = T6s - T6t;
159
 
                                        T2G = T16 + T19;
160
 
                                        T1a = T16 - T19;
161
 
                                        T1f = T1b - T1e;
162
 
                                        T2F = T1b + T1e;
163
 
                                        T5J = T4H - T4K;
164
 
                                        T4L = T4H + T4K;
165
 
                                        T3V = T1a - T1f;
166
 
                                        T1g = T1a + T1f;
167
 
                                   }
168
 
                              }
169
 
                         }
170
 
                         {
171
 
                              E T1i, Ti, T4O, T1q, T1n, Tl, T4N, T1l, Tq, T1t, Tp, T4T, T1A, Tr, T1u;
172
 
                              E T1v;
173
 
                              {
174
 
                                   E Tj, Tk, T1j, T1k;
175
 
                                   {
176
 
                                        E Tg, Th, T1o, T1p;
177
 
                                        Tg = ri[WS(ris, 4)];
178
 
                                        T5U = T5p + T5o;
179
 
                                        T5q = T5o - T5p;
180
 
                                        T3u = T2G + T2F;
181
 
                                        T2H = T2F - T2G;
182
 
                                        Th = ri[WS(ris, 27)];
183
 
                                        T1o = ii[WS(iis, 4)];
184
 
                                        T1p = ii[WS(iis, 27)];
185
 
                                        Tj = ri[WS(ris, 20)];
186
 
                                        T1i = Tg - Th;
187
 
                                        Ti = Tg + Th;
188
 
                                        T4O = T1p - T1o;
189
 
                                        T1q = T1o + T1p;
190
 
                                        Tk = ri[WS(ris, 11)];
191
 
                                        T1j = ii[WS(iis, 20)];
192
 
                                        T1k = ii[WS(iis, 11)];
193
 
                                   }
194
 
                                   {
195
 
                                        E Tn, To, T1y, T1z;
196
 
                                        Tn = ri[WS(ris, 3)];
197
 
                                        T1n = Tj - Tk;
198
 
                                        Tl = Tj + Tk;
199
 
                                        T4N = T1k - T1j;
200
 
                                        T1l = T1j + T1k;
201
 
                                        To = ri[WS(ris, 28)];
202
 
                                        T1y = ii[WS(iis, 3)];
203
 
                                        T1z = ii[WS(iis, 28)];
204
 
                                        Tq = ri[WS(ris, 12)];
205
 
                                        T1t = Tn - To;
206
 
                                        Tp = Tn + To;
207
 
                                        T4T = T1y - T1z;
208
 
                                        T1A = T1y + T1z;
209
 
                                        Tr = ri[WS(ris, 19)];
210
 
                                        T1u = ii[WS(iis, 12)];
211
 
                                        T1v = ii[WS(iis, 19)];
212
 
                                   }
213
 
                              }
214
 
                              {
215
 
                                   E T4M, T1B, T1w, T4P, T1m, T1r, Tm, Ts, T4S;
216
 
                                   T4M = Ti - Tl;
217
 
                                   Tm = Ti + Tl;
218
 
                                   T1B = Tq - Tr;
219
 
                                   Ts = Tq + Tr;
220
 
                                   T4S = T1v - T1u;
221
 
                                   T1w = T1u + T1v;
222
 
                                   {
223
 
                                        E T6c, Tt, T4R, T6d, T4U;
224
 
                                        T6c = T4N + T4O;
225
 
                                        T4P = T4N - T4O;
226
 
                                        Tt = Tp + Ts;
227
 
                                        T4R = Tp - Ts;
228
 
                                        T6d = T4S + T4T;
229
 
                                        T4U = T4S - T4T;
230
 
                                        T3x = T1i + T1l;
231
 
                                        T1m = T1i - T1l;
232
 
                                        T6v = Tm - Tt;
233
 
                                        Tu = Tm + Tt;
234
 
                                        T5r = T4R - T4U;
235
 
                                        T4V = T4R + T4U;
236
 
                                        T6R = T6c + T6d;
237
 
                                        T6e = T6c - T6d;
238
 
                                        T1r = T1n + T1q;
239
 
                                        T3w = T1n - T1q;
240
 
                                   }
241
 
                                   {
242
 
                                        E T3A, T3z, T1x, T1C;
243
 
                                        T3A = T1t + T1w;
244
 
                                        T1x = T1t - T1w;
245
 
                                        T1C = T1A - T1B;
246
 
                                        T3z = T1B + T1A;
247
 
                                        T2K = FMA(KP414213562, T1m, T1r);
248
 
                                        T1s = FNMS(KP414213562, T1r, T1m);
249
 
                                        T2J = FMA(KP414213562, T1x, T1C);
250
 
                                        T1D = FNMS(KP414213562, T1C, T1x);
251
 
                                        T3X = FMA(KP414213562, T3z, T3A);
252
 
                                        T3B = FNMS(KP414213562, T3A, T3z);
253
 
                                        T5s = T4M + T4P;
254
 
                                        T4Q = T4M - T4P;
255
 
                                   }
256
 
                              }
257
 
                         }
258
 
                    }
259
 
                    {
260
 
                         E T1G, Ty, T54, T20, T1X, TB, T53, T1J, TI, T4Z, T1L, TF, T22, T1U, T50;
261
 
                         E T1O;
262
 
                         {
263
 
                              E T1Y, T1Z, Tz, TA, Tw, Tx, T1H, T1I;
264
 
                              Tw = ri[WS(ris, 2)];
265
 
                              Tx = ri[WS(ris, 29)];
266
 
                              T1Y = ii[WS(iis, 2)];
267
 
                              T3Y = FNMS(KP414213562, T3w, T3x);
268
 
                              T3y = FMA(KP414213562, T3x, T3w);
269
 
                              T1G = Tw - Tx;
270
 
                              Ty = Tw + Tx;
271
 
                              T1Z = ii[WS(iis, 29)];
272
 
                              Tz = ri[WS(ris, 18)];
273
 
                              TA = ri[WS(ris, 13)];
274
 
                              T1H = ii[WS(iis, 18)];
275
 
                              T54 = T1Y - T1Z;
276
 
                              T20 = T1Y + T1Z;
277
 
                              T1X = Tz - TA;
278
 
                              TB = Tz + TA;
279
 
                              T1I = ii[WS(iis, 13)];
280
 
                              {
281
 
                                   E T1R, T1Q, T1S, TG, TH;
282
 
                                   TG = ri[WS(ris, 5)];
283
 
                                   TH = ri[WS(ris, 26)];
284
 
                                   T1R = ii[WS(iis, 5)];
285
 
                                   T53 = T1H - T1I;
286
 
                                   T1J = T1H + T1I;
287
 
                                   T1Q = TG - TH;
288
 
                                   TI = TG + TH;
289
 
                                   T1S = ii[WS(iis, 26)];
290
 
                                   {
291
 
                                        E T1M, T1N, TD, TE, T1T;
292
 
                                        TD = ri[WS(ris, 10)];
293
 
                                        TE = ri[WS(ris, 21)];
294
 
                                        T1T = T1R + T1S;
295
 
                                        T4Z = T1S - T1R;
296
 
                                        T1M = ii[WS(iis, 10)];
297
 
                                        T1L = TD - TE;
298
 
                                        TF = TD + TE;
299
 
                                        T1N = ii[WS(iis, 21)];
300
 
                                        T22 = T1Q + T1T;
301
 
                                        T1U = T1Q - T1T;
302
 
                                        T50 = T1M - T1N;
303
 
                                        T1O = T1M + T1N;
304
 
                                   }
305
 
                              }
306
 
                         }
307
 
                         {
308
 
                              E T4Y, T23, T51, T1K, T1V, T3I, T3H, T21, T24;
309
 
                              {
310
 
                                   E T56, T1P, T6h, T55, TC, TJ, T6i;
311
 
                                   T4Y = Ty - TB;
312
 
                                   TC = Ty + TB;
313
 
                                   TJ = TF + TI;
314
 
                                   T56 = TF - TI;
315
 
                                   T1P = T1L - T1O;
316
 
                                   T23 = T1L + T1O;
317
 
                                   T6h = T53 + T54;
318
 
                                   T55 = T53 - T54;
319
 
                                   T6g = TC - TJ;
320
 
                                   TK = TC + TJ;
321
 
                                   T6i = T50 + T4Z;
322
 
                                   T51 = T4Z - T50;
323
 
                                   T3E = T1G + T1J;
324
 
                                   T1K = T1G - T1J;
325
 
                                   T5M = T56 + T55;
326
 
                                   T57 = T55 - T56;
327
 
                                   T6N = T6i + T6h;
328
 
                                   T6j = T6h - T6i;
329
 
                                   T1V = T1P + T1U;
330
 
                                   T3I = T1P - T1U;
331
 
                              }
332
 
                              T3H = T1X - T20;
333
 
                              T21 = T1X + T20;
334
 
                              T24 = T22 - T23;
335
 
                              T3F = T23 + T22;
336
 
                              T35 = FNMS(KP707106781, T1V, T1K);
337
 
                              T1W = FMA(KP707106781, T1V, T1K);
338
 
                              T34 = FMA(KP707106781, T24, T21);
339
 
                              T25 = FNMS(KP707106781, T24, T21);
340
 
                              T4i = FMA(KP707106781, T3I, T3H);
341
 
                              T3J = FNMS(KP707106781, T3I, T3H);
342
 
                              T5N = T4Y - T51;
343
 
                              T52 = T4Y + T51;
344
 
                         }
345
 
                    }
346
 
                    {
347
 
                         E T27, TN, T5f, T2q, T2r, TQ, T5e, T2a, TX, T5a, T2c, TU, T2t, T2l, T5b;
348
 
                         E T2f;
349
 
                         {
350
 
                              E T2o, T2p, TO, TP, TL, TM, T28, T29;
351
 
                              TL = ri[WS(ris, 1)];
352
 
                              TM = ri[WS(ris, 30)];
353
 
                              T2o = ii[WS(iis, 1)];
354
 
                              T4j = FMA(KP707106781, T3F, T3E);
355
 
                              T3G = FNMS(KP707106781, T3F, T3E);
356
 
                              T27 = TL - TM;
357
 
                              TN = TL + TM;
358
 
                              T2p = ii[WS(iis, 30)];
359
 
                              TO = ri[WS(ris, 14)];
360
 
                              TP = ri[WS(ris, 17)];
361
 
                              T28 = ii[WS(iis, 14)];
362
 
                              T5f = T2p - T2o;
363
 
                              T2q = T2o + T2p;
364
 
                              T2r = TO - TP;
365
 
                              TQ = TO + TP;
366
 
                              T29 = ii[WS(iis, 17)];
367
 
                              {
368
 
                                   E T2i, T2h, T2j, TV, TW;
369
 
                                   TV = ri[WS(ris, 9)];
370
 
                                   TW = ri[WS(ris, 22)];
371
 
                                   T2i = ii[WS(iis, 9)];
372
 
                                   T5e = T28 - T29;
373
 
                                   T2a = T28 + T29;
374
 
                                   T2h = TV - TW;
375
 
                                   TX = TV + TW;
376
 
                                   T2j = ii[WS(iis, 22)];
377
 
                                   {
378
 
                                        E T2d, T2e, TS, TT, T2k;
379
 
                                        TS = ri[WS(ris, 6)];
380
 
                                        TT = ri[WS(ris, 25)];
381
 
                                        T2k = T2i + T2j;
382
 
                                        T5a = T2j - T2i;
383
 
                                        T2d = ii[WS(iis, 6)];
384
 
                                        T2c = TS - TT;
385
 
                                        TU = TS + TT;
386
 
                                        T2e = ii[WS(iis, 25)];
387
 
                                        T2t = T2h + T2k;
388
 
                                        T2l = T2h - T2k;
389
 
                                        T5b = T2d - T2e;
390
 
                                        T2f = T2d + T2e;
391
 
                                   }
392
 
                              }
393
 
                         }
394
 
                         {
395
 
                              E T59, T2u, T5c, T2b, T2m, T3P, T3O, T2s, T2v;
396
 
                              {
397
 
                                   E T5h, T2g, T6m, T5g, TR, TY, T6n;
398
 
                                   T59 = TN - TQ;
399
 
                                   TR = TN + TQ;
400
 
                                   TY = TU + TX;
401
 
                                   T5h = TU - TX;
402
 
                                   T2g = T2c - T2f;
403
 
                                   T2u = T2c + T2f;
404
 
                                   T6m = T5e + T5f;
405
 
                                   T5g = T5e - T5f;
406
 
                                   T6l = TR - TY;
407
 
                                   TZ = TR + TY;
408
 
                                   T6n = T5b + T5a;
409
 
                                   T5c = T5a - T5b;
410
 
                                   T3L = T27 + T2a;
411
 
                                   T2b = T27 - T2a;
412
 
                                   T5P = T5h + T5g;
413
 
                                   T5i = T5g - T5h;
414
 
                                   T6M = T6n + T6m;
415
 
                                   T6o = T6m - T6n;
416
 
                                   T2m = T2g + T2l;
417
 
                                   T3P = T2g - T2l;
418
 
                              }
419
 
                              T3O = T2r + T2q;
420
 
                              T2s = T2q - T2r;
421
 
                              T2v = T2t - T2u;
422
 
                              T3M = T2u + T2t;
423
 
                              T38 = FNMS(KP707106781, T2m, T2b);
424
 
                              T2n = FMA(KP707106781, T2m, T2b);
425
 
                              T37 = FNMS(KP707106781, T2v, T2s);
426
 
                              T2w = FMA(KP707106781, T2v, T2s);
427
 
                              T4l = FMA(KP707106781, T3P, T3O);
428
 
                              T3Q = FNMS(KP707106781, T3P, T3O);
429
 
                              T5Q = T59 - T5c;
430
 
                              T5d = T59 + T5c;
431
 
                         }
432
 
                    }
433
 
               }
434
 
               {
435
 
                    E T4m, T3N, T5t, T5L, T63, T4W, T5Y, T5X, T66, T5W, T67, T5S;
436
 
                    {
437
 
                         E T6T, T6S, T6W, T6P;
438
 
                         {
439
 
                              E T6L, T6O, T6Y, T6X, T6Z, Tv, T10, T70;
440
 
                              T6L = Tf - Tu;
441
 
                              Tv = Tf + Tu;
442
 
                              T10 = TK + TZ;
443
 
                              T6T = TK - TZ;
444
 
                              T6O = T6M - T6N;
445
 
                              T6Y = T6N + T6M;
446
 
                              T4m = FMA(KP707106781, T3M, T3L);
447
 
                              T3N = FNMS(KP707106781, T3M, T3L);
448
 
                              T6X = Tv - T10;
449
 
                              T6S = T6Q - T6R;
450
 
                              T6Z = T6R + T6Q;
451
 
                              O[0] = KP2_000000000 * (Tv + T10);
452
 
                              O[WS(os, 32)] = KP2_000000000 * (T6Z - T6Y);
453
 
                              T70 = T6Y + T6Z;
454
 
                              T6W = T6L - T6O;
455
 
                              T6P = T6L + T6O;
456
 
                              O[WS(os, 48)] = KP1_414213562 * (T70 - T6X);
457
 
                              O[WS(os, 16)] = KP1_414213562 * (T6X + T70);
458
 
                         }
459
 
                         {
460
 
                              E T6D, T6f, T6w, T6G, T6p, T6x, T6y, T6k, T6V, T6U;
461
 
                              T6D = T6b - T6e;
462
 
                              T6f = T6b + T6e;
463
 
                              T6w = T6u - T6v;
464
 
                              T6G = T6v + T6u;
465
 
                              T6V = T6T + T6S;
466
 
                              T6U = T6S - T6T;
467
 
                              T6p = T6l + T6o;
468
 
                              T6x = T6l - T6o;
469
 
                              O[WS(os, 24)] = KP1_847759065 * (FMA(KP414213562, T6W, T6V));
470
 
                              O[WS(os, 56)] = -(KP1_847759065 * (FNMS(KP414213562, T6V, T6W)));
471
 
                              O[WS(os, 40)] = KP1_847759065 * (FNMS(KP414213562, T6P, T6U));
472
 
                              O[WS(os, 8)] = KP1_847759065 * (FMA(KP414213562, T6U, T6P));
473
 
                              T6y = T6g + T6j;
474
 
                              T6k = T6g - T6j;
475
 
                              {
476
 
                                   E T5V, T5K, T5O, T5R;
477
 
                                   T5t = T5r - T5s;
478
 
                                   T5K = T5s + T5r;
479
 
                                   {
480
 
                                        E T6E, T6z, T6H, T6q;
481
 
                                        T6E = T6y + T6x;
482
 
                                        T6z = T6x - T6y;
483
 
                                        T6H = T6k - T6p;
484
 
                                        T6q = T6k + T6p;
485
 
                                        {
486
 
                                             E T6F, T6K, T6B, T6A;
487
 
                                             T6F = FNMS(KP707106781, T6E, T6D);
488
 
                                             T6K = FMA(KP707106781, T6E, T6D);
489
 
                                             T6B = FNMS(KP707106781, T6z, T6w);
490
 
                                             T6A = FMA(KP707106781, T6z, T6w);
491
 
                                             {
492
 
                                                  E T6I, T6J, T6C, T6r;
493
 
                                                  T6I = FNMS(KP707106781, T6H, T6G);
494
 
                                                  T6J = FMA(KP707106781, T6H, T6G);
495
 
                                                  T6C = FNMS(KP707106781, T6q, T6f);
496
 
                                                  T6r = FMA(KP707106781, T6q, T6f);
497
 
                                                  O[WS(os, 44)] = KP1_662939224 * (FNMS(KP668178637, T6F, T6I));
498
 
                                                  O[WS(os, 12)] = KP1_662939224 * (FMA(KP668178637, T6I, T6F));
499
 
                                                  O[WS(os, 60)] = -(KP1_961570560 * (FNMS(KP198912367, T6J, T6K)));
500
 
                                                  O[WS(os, 28)] = KP1_961570560 * (FMA(KP198912367, T6K, T6J));
501
 
                                                  O[WS(os, 52)] = -(KP1_662939224 * (FNMS(KP668178637, T6B, T6C)));
502
 
                                                  O[WS(os, 20)] = KP1_662939224 * (FMA(KP668178637, T6C, T6B));
503
 
                                                  O[WS(os, 36)] = KP1_961570560 * (FNMS(KP198912367, T6r, T6A));
504
 
                                                  O[WS(os, 4)] = KP1_961570560 * (FMA(KP198912367, T6A, T6r));
505
 
                                                  T5L = FNMS(KP707106781, T5K, T5J);
506
 
                                                  T63 = FMA(KP707106781, T5K, T5J);
507
 
                                             }
508
 
                                        }
509
 
                                   }
510
 
                                   T5V = T4Q - T4V;
511
 
                                   T4W = T4Q + T4V;
512
 
                                   T5Y = FNMS(KP414213562, T5M, T5N);
513
 
                                   T5O = FMA(KP414213562, T5N, T5M);
514
 
                                   T5R = FNMS(KP414213562, T5Q, T5P);
515
 
                                   T5X = FMA(KP414213562, T5P, T5Q);
516
 
                                   T66 = FMA(KP707106781, T5V, T5U);
517
 
                                   T5W = FNMS(KP707106781, T5V, T5U);
518
 
                                   T67 = T5O + T5R;
519
 
                                   T5S = T5O - T5R;
520
 
                              }
521
 
                         }
522
 
                    }
523
 
                    {
524
 
                         E T1h, T2L, T2I, T3h, T3p, T1E, T3n, T3s, T3b, T3k, T3e, T3o;
525
 
                         {
526
 
                              E T4X, T5B, T5v, T5w, T5E, T5u, T5F, T5k, T58, T5j;
527
 
                              {
528
 
                                   E T68, T69, T62, T5T, T64, T5Z;
529
 
                                   T68 = FNMS(KP923879532, T67, T66);
530
 
                                   T69 = FMA(KP923879532, T67, T66);
531
 
                                   T62 = FNMS(KP923879532, T5S, T5L);
532
 
                                   T5T = FMA(KP923879532, T5S, T5L);
533
 
                                   T64 = T5Y + T5X;
534
 
                                   T5Z = T5X - T5Y;
535
 
                                   T4X = FMA(KP707106781, T4W, T4L);
536
 
                                   T5B = FNMS(KP707106781, T4W, T4L);
537
 
                                   {
538
 
                                        E T65, T6a, T61, T60;
539
 
                                        T65 = FNMS(KP923879532, T64, T63);
540
 
                                        T6a = FMA(KP923879532, T64, T63);
541
 
                                        T61 = FNMS(KP923879532, T5Z, T5W);
542
 
                                        T60 = FMA(KP923879532, T5Z, T5W);
543
 
                                        O[WS(os, 46)] = KP1_546020906 * (FNMS(KP820678790, T65, T68));
544
 
                                        O[WS(os, 14)] = KP1_546020906 * (FMA(KP820678790, T68, T65));
545
 
                                        O[WS(os, 62)] = -(KP1_990369453 * (FNMS(KP098491403, T69, T6a)));
546
 
                                        O[WS(os, 30)] = KP1_990369453 * (FMA(KP098491403, T6a, T69));
547
 
                                        O[WS(os, 54)] = -(KP1_763842528 * (FNMS(KP534511135, T61, T62)));
548
 
                                        O[WS(os, 22)] = KP1_763842528 * (FMA(KP534511135, T62, T61));
549
 
                                        O[WS(os, 38)] = KP1_913880671 * (FNMS(KP303346683, T5T, T60));
550
 
                                        O[WS(os, 6)] = KP1_913880671 * (FMA(KP303346683, T60, T5T));
551
 
                                   }
552
 
                              }
553
 
                              T5v = FNMS(KP414213562, T52, T57);
554
 
                              T58 = FMA(KP414213562, T57, T52);
555
 
                              T5j = FNMS(KP414213562, T5i, T5d);
556
 
                              T5w = FMA(KP414213562, T5d, T5i);
557
 
                              T5E = FNMS(KP707106781, T5t, T5q);
558
 
                              T5u = FMA(KP707106781, T5t, T5q);
559
 
                              T5F = T58 - T5j;
560
 
                              T5k = T58 + T5j;
561
 
                              {
562
 
                                   E T3l, T33, T3c, T3m, T3a, T3d;
563
 
                                   {
564
 
                                        E T39, T3f, T3g, T36;
565
 
                                        {
566
 
                                             E T31, T5G, T5H, T5A, T5l, T5C, T5x, T32;
567
 
                                             T1h = FMA(KP707106781, T1g, T15);
568
 
                                             T31 = FNMS(KP707106781, T1g, T15);
569
 
                                             T5G = FNMS(KP923879532, T5F, T5E);
570
 
                                             T5H = FMA(KP923879532, T5F, T5E);
571
 
                                             T5A = FNMS(KP923879532, T5k, T4X);
572
 
                                             T5l = FMA(KP923879532, T5k, T4X);
573
 
                                             T5C = T5w - T5v;
574
 
                                             T5x = T5v + T5w;
575
 
                                             T32 = T2K + T2J;
576
 
                                             T2L = T2J - T2K;
577
 
                                             T39 = FNMS(KP668178637, T38, T37);
578
 
                                             T3f = FMA(KP668178637, T37, T38);
579
 
                                             {
580
 
                                                  E T5D, T5I, T5z, T5y;
581
 
                                                  T5D = FNMS(KP923879532, T5C, T5B);
582
 
                                                  T5I = FMA(KP923879532, T5C, T5B);
583
 
                                                  T5z = FNMS(KP923879532, T5x, T5u);
584
 
                                                  T5y = FMA(KP923879532, T5x, T5u);
585
 
                                                  T3l = FMA(KP923879532, T32, T31);
586
 
                                                  T33 = FNMS(KP923879532, T32, T31);
587
 
                                                  O[WS(os, 42)] = KP1_763842528 * (FNMS(KP534511135, T5D, T5G));
588
 
                                                  O[WS(os, 10)] = KP1_763842528 * (FMA(KP534511135, T5G, T5D));
589
 
                                                  O[WS(os, 58)] = -(KP1_913880671 * (FNMS(KP303346683, T5H, T5I)));
590
 
                                                  O[WS(os, 26)] = KP1_913880671 * (FMA(KP303346683, T5I, T5H));
591
 
                                                  O[WS(os, 50)] = -(KP1_546020906 * (FNMS(KP820678790, T5z, T5A)));
592
 
                                                  O[WS(os, 18)] = KP1_546020906 * (FMA(KP820678790, T5A, T5z));
593
 
                                                  O[WS(os, 34)] = KP1_990369453 * (FNMS(KP098491403, T5l, T5y));
594
 
                                                  O[WS(os, 2)] = KP1_990369453 * (FMA(KP098491403, T5y, T5l));
595
 
                                                  T3g = FMA(KP668178637, T34, T35);
596
 
                                                  T36 = FNMS(KP668178637, T35, T34);
597
 
                                             }
598
 
                                        }
599
 
                                        T2I = FNMS(KP707106781, T2H, T2E);
600
 
                                        T3c = FMA(KP707106781, T2H, T2E);
601
 
                                        T3m = T3g + T3f;
602
 
                                        T3h = T3f - T3g;
603
 
                                        T3p = T39 - T36;
604
 
                                        T3a = T36 + T39;
605
 
                                        T3d = T1s - T1D;
606
 
                                        T1E = T1s + T1D;
607
 
                                   }
608
 
                                   T3n = FNMS(KP831469612, T3m, T3l);
609
 
                                   T3s = FMA(KP831469612, T3m, T3l);
610
 
                                   T3b = FNMS(KP831469612, T3a, T33);
611
 
                                   T3k = FMA(KP831469612, T3a, T33);
612
 
                                   T3e = FMA(KP923879532, T3d, T3c);
613
 
                                   T3o = FNMS(KP923879532, T3d, T3c);
614
 
                              }
615
 
                         }
616
 
                         {
617
 
                              E T3v, T3Z, T3W, T4v, T4D, T3C, T4B, T4G, T4p, T4y, T4s, T4C;
618
 
                              {
619
 
                                   E T4z, T4h, T4q, T4A, T4o, T4r;
620
 
                                   {
621
 
                                        E T4n, T4t, T4u, T4k, T4f, T4g;
622
 
                                        T3v = FNMS(KP707106781, T3u, T3t);
623
 
                                        T4f = FMA(KP707106781, T3u, T3t);
624
 
                                        T4g = T3Y + T3X;
625
 
                                        T3Z = T3X - T3Y;
626
 
                                        {
627
 
                                             E T3r, T3q, T3i, T3j;
628
 
                                             T3r = FNMS(KP831469612, T3p, T3o);
629
 
                                             T3q = FMA(KP831469612, T3p, T3o);
630
 
                                             T3i = FNMS(KP831469612, T3h, T3e);
631
 
                                             T3j = FMA(KP831469612, T3h, T3e);
632
 
                                             O[WS(os, 45)] = -(KP1_606415062 * (FMA(KP741650546, T3n, T3q)));
633
 
                                             O[WS(os, 13)] = KP1_606415062 * (FNMS(KP741650546, T3q, T3n));
634
 
                                             O[WS(os, 61)] = -(KP1_978353019 * (FMA(KP148335987, T3r, T3s)));
635
 
                                             O[WS(os, 29)] = -(KP1_978353019 * (FNMS(KP148335987, T3s, T3r)));
636
 
                                             O[WS(os, 53)] = -(KP1_715457220 * (FMA(KP599376933, T3j, T3k)));
637
 
                                             O[WS(os, 21)] = -(KP1_715457220 * (FNMS(KP599376933, T3k, T3j)));
638
 
                                             O[WS(os, 37)] = -(KP1_940062506 * (FMA(KP250486960, T3b, T3i)));
639
 
                                             O[WS(os, 5)] = KP1_940062506 * (FNMS(KP250486960, T3i, T3b));
640
 
                                             T4z = FMA(KP923879532, T4g, T4f);
641
 
                                             T4h = FNMS(KP923879532, T4g, T4f);
642
 
                                        }
643
 
                                        T4n = FNMS(KP198912367, T4m, T4l);
644
 
                                        T4t = FMA(KP198912367, T4l, T4m);
645
 
                                        T4u = FNMS(KP198912367, T4i, T4j);
646
 
                                        T4k = FMA(KP198912367, T4j, T4i);
647
 
                                        T3W = FNMS(KP707106781, T3V, T3U);
648
 
                                        T4q = FMA(KP707106781, T3V, T3U);
649
 
                                        T4A = T4u + T4t;
650
 
                                        T4v = T4t - T4u;
651
 
                                        T4D = T4k + T4n;
652
 
                                        T4o = T4k - T4n;
653
 
                                        T4r = T3y + T3B;
654
 
                                        T3C = T3y - T3B;
655
 
                                   }
656
 
                                   T4B = FNMS(KP980785280, T4A, T4z);
657
 
                                   T4G = FMA(KP980785280, T4A, T4z);
658
 
                                   T4p = FMA(KP980785280, T4o, T4h);
659
 
                                   T4y = FNMS(KP980785280, T4o, T4h);
660
 
                                   T4s = FNMS(KP923879532, T4r, T4q);
661
 
                                   T4C = FMA(KP923879532, T4r, T4q);
662
 
                              }
663
 
                              {
664
 
                                   E T2P, T2X, T2V, T30, T2z, T2S, T2M, T2W;
665
 
                                   {
666
 
                                        E T2T, T1F, T2U, T2y;
667
 
                                        {
668
 
                                             E T2x, T2N, T2O, T26;
669
 
                                             {
670
 
                                                  E T4F, T4E, T4w, T4x;
671
 
                                                  T4F = FMA(KP980785280, T4D, T4C);
672
 
                                                  T4E = FNMS(KP980785280, T4D, T4C);
673
 
                                                  T4w = FMA(KP980785280, T4v, T4s);
674
 
                                                  T4x = FNMS(KP980785280, T4v, T4s);
675
 
                                                  O[WS(os, 47)] = KP1_481902250 * (FNMS(KP906347169, T4B, T4E));
676
 
                                                  O[WS(os, 15)] = KP1_481902250 * (FMA(KP906347169, T4E, T4B));
677
 
                                                  O[WS(os, 63)] = -(KP1_997590912 * (FNMS(KP049126849, T4F, T4G)));
678
 
                                                  O[WS(os, 31)] = KP1_997590912 * (FMA(KP049126849, T4G, T4F));
679
 
                                                  O[WS(os, 55)] = -(KP1_807978586 * (FNMS(KP472964775, T4x, T4y)));
680
 
                                                  O[WS(os, 23)] = KP1_807978586 * (FMA(KP472964775, T4y, T4x));
681
 
                                                  O[WS(os, 39)] = KP1_883088130 * (FNMS(KP357805721, T4p, T4w));
682
 
                                                  O[WS(os, 7)] = KP1_883088130 * (FMA(KP357805721, T4w, T4p));
683
 
                                                  T2T = FNMS(KP923879532, T1E, T1h);
684
 
                                                  T1F = FMA(KP923879532, T1E, T1h);
685
 
                                             }
686
 
                                             T2x = FNMS(KP198912367, T2w, T2n);
687
 
                                             T2N = FMA(KP198912367, T2n, T2w);
688
 
                                             T2O = FMA(KP198912367, T1W, T25);
689
 
                                             T26 = FNMS(KP198912367, T25, T1W);
690
 
                                             T2U = T2O + T2N;
691
 
                                             T2P = T2N - T2O;
692
 
                                             T2X = T26 - T2x;
693
 
                                             T2y = T26 + T2x;
694
 
                                        }
695
 
                                        T2V = FNMS(KP980785280, T2U, T2T);
696
 
                                        T30 = FMA(KP980785280, T2U, T2T);
697
 
                                        T2z = FMA(KP980785280, T2y, T1F);
698
 
                                        T2S = FNMS(KP980785280, T2y, T1F);
699
 
                                        T2M = FNMS(KP923879532, T2L, T2I);
700
 
                                        T2W = FMA(KP923879532, T2L, T2I);
701
 
                                   }
702
 
                                   {
703
 
                                        E T47, T3D, T48, T3S;
704
 
                                        {
705
 
                                             E T3K, T41, T42, T3R;
706
 
                                             {
707
 
                                                  E T2Z, T2Y, T2Q, T2R;
708
 
                                                  T2Z = FNMS(KP980785280, T2X, T2W);
709
 
                                                  T2Y = FMA(KP980785280, T2X, T2W);
710
 
                                                  T2Q = FNMS(KP980785280, T2P, T2M);
711
 
                                                  T2R = FMA(KP980785280, T2P, T2M);
712
 
                                                  O[WS(os, 41)] = -(KP1_807978586 * (FMA(KP472964775, T2V, T2Y)));
713
 
                                                  O[WS(os, 9)] = KP1_807978586 * (FNMS(KP472964775, T2Y, T2V));
714
 
                                                  O[WS(os, 57)] = -(KP1_883088130 * (FMA(KP357805721, T2Z, T30)));
715
 
                                                  O[WS(os, 25)] = -(KP1_883088130 * (FNMS(KP357805721, T30, T2Z)));
716
 
                                                  O[WS(os, 49)] = -(KP1_481902250 * (FMA(KP906347169, T2R, T2S)));
717
 
                                                  O[WS(os, 17)] = -(KP1_481902250 * (FNMS(KP906347169, T2S, T2R)));
718
 
                                                  O[WS(os, 33)] = -(KP1_997590912 * (FMA(KP049126849, T2z, T2Q)));
719
 
                                                  O[WS(os, 1)] = KP1_997590912 * (FNMS(KP049126849, T2Q, T2z));
720
 
                                                  T47 = FNMS(KP923879532, T3C, T3v);
721
 
                                                  T3D = FMA(KP923879532, T3C, T3v);
722
 
                                             }
723
 
                                             T3K = FMA(KP668178637, T3J, T3G);
724
 
                                             T41 = FNMS(KP668178637, T3G, T3J);
725
 
                                             T42 = FMA(KP668178637, T3N, T3Q);
726
 
                                             T3R = FNMS(KP668178637, T3Q, T3N);
727
 
                                             T48 = T42 - T41;
728
 
                                             T43 = T41 + T42;
729
 
                                             T4b = T3K - T3R;
730
 
                                             T3S = T3K + T3R;
731
 
                                        }
732
 
                                        T49 = FNMS(KP831469612, T48, T47);
733
 
                                        T4e = FMA(KP831469612, T48, T47);
734
 
                                        T3T = FMA(KP831469612, T3S, T3D);
735
 
                                        T46 = FNMS(KP831469612, T3S, T3D);
736
 
                                        T40 = FMA(KP923879532, T3Z, T3W);
737
 
                                        T4a = FNMS(KP923879532, T3Z, T3W);
738
 
                                   }
739
 
                              }
740
 
                         }
741
 
                    }
742
 
               }
743
 
          }
744
 
          {
745
 
               E T4d, T4c, T44, T45;
746
 
               T4d = FMA(KP831469612, T4b, T4a);
747
 
               T4c = FNMS(KP831469612, T4b, T4a);
748
 
               T44 = FMA(KP831469612, T43, T40);
749
 
               T45 = FNMS(KP831469612, T43, T40);
750
 
               O[WS(os, 43)] = KP1_715457220 * (FNMS(KP599376933, T49, T4c));
751
 
               O[WS(os, 11)] = KP1_715457220 * (FMA(KP599376933, T4c, T49));
752
 
               O[WS(os, 59)] = -(KP1_940062506 * (FNMS(KP250486960, T4d, T4e)));
753
 
               O[WS(os, 27)] = KP1_940062506 * (FMA(KP250486960, T4e, T4d));
754
 
               O[WS(os, 51)] = -(KP1_606415062 * (FNMS(KP741650546, T45, T46)));
755
 
               O[WS(os, 19)] = KP1_606415062 * (FMA(KP741650546, T46, T45));
756
 
               O[WS(os, 35)] = KP1_978353019 * (FNMS(KP148335987, T3T, T44));
757
 
               O[WS(os, 3)] = KP1_978353019 * (FMA(KP148335987, T44, T3T));
758
 
          }
759
 
     }
760
 
}
761
 
 
762
 
static const khc2r_desc desc = { 64, "hc2rIII_64", {238, 64, 196, 0}, &GENUS, 0, 0, 0, 0, 0 };
763
 
 
764
 
void X(codelet_hc2rIII_64) (planner *p) {
765
 
     X(khc2rIII_register) (p, hc2rIII_64, &desc);
766
 
}
767
 
 
768
 
#else                           /* HAVE_FMA */
769
 
 
770
 
/* Generated by: ../../../genfft/gen_hc2r -compact -variables 4 -pipeline-latency 4 -sign 1 -n 64 -name hc2rIII_64 -dft-III -include hc2rIII.h */
771
 
 
772
 
/*
773
 
 * This function contains 434 FP additions, 208 FP multiplications,
774
 
 * (or, 342 additions, 116 multiplications, 92 fused multiply/add),
775
 
 * 130 stack variables, and 128 memory accesses
776
 
 */
777
 
/*
778
 
 * Generator Id's : 
779
 
 * $Id: algsimp.ml,v 1.9 2006-02-12 23:34:12 athena Exp $
780
 
 * $Id: fft.ml,v 1.4 2006-01-05 03:04:27 stevenj Exp $
781
 
 * $Id: gen_hc2r.ml,v 1.19 2006-02-12 23:34:12 athena Exp $
782
 
 */
783
 
 
784
 
#include "hc2rIII.h"
785
 
 
786
 
static void hc2rIII_64(const R *ri, const R *ii, R *O, stride ris, stride iis, stride os, INT v, INT ivs, INT ovs)
787
 
{
788
 
     DK(KP1_343117909, +1.343117909694036801250753700854843606457501264);
789
 
     DK(KP1_481902250, +1.481902250709918182351233794990325459457910619);
790
 
     DK(KP1_807978586, +1.807978586246886663172400594461074097420264050);
791
 
     DK(KP855110186, +0.855110186860564188641933713777597068609157259);
792
 
     DK(KP1_997590912, +1.997590912410344785429543209518201388886407229);
793
 
     DK(KP098135348, +0.098135348654836028509909953885365316629490726);
794
 
     DK(KP673779706, +0.673779706784440101378506425238295140955533559);
795
 
     DK(KP1_883088130, +1.883088130366041556825018805199004714371179592);
796
 
     DK(KP195090322, +0.195090322016128267848284868477022240927691618);
797
 
     DK(KP980785280, +0.980785280403230449126182236134239036973933731);
798
 
     DK(KP1_191398608, +1.191398608984866686934073057659939779023852677);
799
 
     DK(KP1_606415062, +1.606415062961289819613353025926283847759138854);
800
 
     DK(KP1_715457220, +1.715457220000544139804539968569540274084981599);
801
 
     DK(KP1_028205488, +1.028205488386443453187387677937631545216098241);
802
 
     DK(KP1_978353019, +1.978353019929561946903347476032486127967379067);
803
 
     DK(KP293460948, +0.293460948910723503317700259293435639412430633);
804
 
     DK(KP485960359, +0.485960359806527779896548324154942236641981567);
805
 
     DK(KP1_940062506, +1.940062506389087985207968414572200502913731924);
806
 
     DK(KP555570233, +0.555570233019602224742830813948532874374937191);
807
 
     DK(KP831469612, +0.831469612302545237078788377617905756738560812);
808
 
     DK(KP1_268786568, +1.268786568327290996430343226450986741351374190);
809
 
     DK(KP1_546020906, +1.546020906725473921621813219516939601942082586);
810
 
     DK(KP1_763842528, +1.763842528696710059425513727320776699016885241);
811
 
     DK(KP942793473, +0.942793473651995297112775251810508755314920638);
812
 
     DK(KP1_990369453, +1.990369453344393772489673906218959843150949737);
813
 
     DK(KP196034280, +0.196034280659121203988391127777283691722273346);
814
 
     DK(KP580569354, +0.580569354508924735272384751634790549382952557);
815
 
     DK(KP1_913880671, +1.913880671464417729871595773960539938965698411);
816
 
     DK(KP1_662939224, +1.662939224605090474157576755235811513477121624);
817
 
     DK(KP1_111140466, +1.111140466039204449485661627897065748749874382);
818
 
     DK(KP390180644, +0.390180644032256535696569736954044481855383236);
819
 
     DK(KP1_961570560, +1.961570560806460898252364472268478073947867462);
820
 
     DK(KP765366864, +0.765366864730179543456919968060797733522689125);
821
 
     DK(KP1_847759065, +1.847759065022573512256366378793576573644833252);
822
 
     DK(KP1_414213562, +1.414213562373095048801688724209698078569671875);
823
 
     DK(KP2_000000000, +2.000000000000000000000000000000000000000000000);
824
 
     DK(KP382683432, +0.382683432365089771728459984030398866761344562);
825
 
     DK(KP923879532, +0.923879532511286756128183189396788286822416626);
826
 
     DK(KP707106781, +0.707106781186547524400844362104849039284835938);
827
 
     INT i;
828
 
     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)) {
829
 
          E T15, T3t, T3U, T2N, Tf, T6b, T6u, T6R, T4L, T5J, T1g, T3V, T5q, T5U, T2I;
830
 
          E T3u, Tu, T6v, T4V, T5s, T6e, T6Q, T1s, T2D, T1D, T2E, T3B, T3Y, T4Q, T5r;
831
 
          E T3y, T3X, TK, T6g, T57, T5N, T6j, T6N, T1W, T34, T25, T35, T3J, T4j, T52;
832
 
          E T5M, T3G, T4i, TZ, T6l, T5i, T5Q, T6o, T6M, T2n, T37, T2w, T38, T3Q, T4m;
833
 
          E T5d, T5P, T3N, T4l;
834
 
          {
835
 
               E T3, T11, T2M, T5n, T6, T2J, T14, T5m, Ta, T16, T19, T4J, Td, T1b, T1e;
836
 
               E T4I;
837
 
               {
838
 
                    E T1, T2, T2K, T2L;
839
 
                    T1 = ri[0];
840
 
                    T2 = ri[WS(ris, 31)];
841
 
                    T3 = T1 + T2;
842
 
                    T11 = T1 - T2;
843
 
                    T2K = ii[0];
844
 
                    T2L = ii[WS(iis, 31)];
845
 
                    T2M = T2K + T2L;
846
 
                    T5n = T2L - T2K;
847
 
               }
848
 
               {
849
 
                    E T4, T5, T12, T13;
850
 
                    T4 = ri[WS(ris, 16)];
851
 
                    T5 = ri[WS(ris, 15)];
852
 
                    T6 = T4 + T5;
853
 
                    T2J = T4 - T5;
854
 
                    T12 = ii[WS(iis, 16)];
855
 
                    T13 = ii[WS(iis, 15)];
856
 
                    T14 = T12 + T13;
857
 
                    T5m = T12 - T13;
858
 
               }
859
 
               {
860
 
                    E T8, T9, T17, T18;
861
 
                    T8 = ri[WS(ris, 8)];
862
 
                    T9 = ri[WS(ris, 23)];
863
 
                    Ta = T8 + T9;
864
 
                    T16 = T8 - T9;
865
 
                    T17 = ii[WS(iis, 8)];
866
 
                    T18 = ii[WS(iis, 23)];
867
 
                    T19 = T17 + T18;
868
 
                    T4J = T17 - T18;
869
 
               }
870
 
               {
871
 
                    E Tb, Tc, T1c, T1d;
872
 
                    Tb = ri[WS(ris, 7)];
873
 
                    Tc = ri[WS(ris, 24)];
874
 
                    Td = Tb + Tc;
875
 
                    T1b = Tb - Tc;
876
 
                    T1c = ii[WS(iis, 7)];
877
 
                    T1d = ii[WS(iis, 24)];
878
 
                    T1e = T1c + T1d;
879
 
                    T4I = T1d - T1c;
880
 
               }
881
 
               {
882
 
                    E T7, Te, T1a, T1f;
883
 
                    T15 = T11 - T14;
884
 
                    T3t = T11 + T14;
885
 
                    T3U = T2J - T2M;
886
 
                    T2N = T2J + T2M;
887
 
                    T7 = T3 + T6;
888
 
                    Te = Ta + Td;
889
 
                    Tf = T7 + Te;
890
 
                    T6b = T7 - Te;
891
 
                    {
892
 
                         E T6s, T6t, T4H, T4K;
893
 
                         T6s = T4J + T4I;
894
 
                         T6t = T5n - T5m;
895
 
                         T6u = T6s + T6t;
896
 
                         T6R = T6t - T6s;
897
 
                         T4H = T3 - T6;
898
 
                         T4K = T4I - T4J;
899
 
                         T4L = T4H + T4K;
900
 
                         T5J = T4H - T4K;
901
 
                    }
902
 
                    T1a = T16 - T19;
903
 
                    T1f = T1b - T1e;
904
 
                    T1g = KP707106781 * (T1a + T1f);
905
 
                    T3V = KP707106781 * (T1a - T1f);
906
 
                    {
907
 
                         E T5o, T5p, T2G, T2H;
908
 
                         T5o = T5m + T5n;
909
 
                         T5p = Ta - Td;
910
 
                         T5q = T5o - T5p;
911
 
                         T5U = T5p + T5o;
912
 
                         T2G = T16 + T19;
913
 
                         T2H = T1b + T1e;
914
 
                         T2I = KP707106781 * (T2G - T2H);
915
 
                         T3u = KP707106781 * (T2G + T2H);
916
 
                    }
917
 
               }
918
 
          }
919
 
          {
920
 
               E Ti, T1i, T1q, T4N, Tl, T1n, T1l, T4O, Tp, T1t, T1B, T4S, Ts, T1y, T1w;
921
 
               E T4T;
922
 
               {
923
 
                    E Tg, Th, T1o, T1p;
924
 
                    Tg = ri[WS(ris, 4)];
925
 
                    Th = ri[WS(ris, 27)];
926
 
                    Ti = Tg + Th;
927
 
                    T1i = Tg - Th;
928
 
                    T1o = ii[WS(iis, 4)];
929
 
                    T1p = ii[WS(iis, 27)];
930
 
                    T1q = T1o + T1p;
931
 
                    T4N = T1o - T1p;
932
 
               }
933
 
               {
934
 
                    E Tj, Tk, T1j, T1k;
935
 
                    Tj = ri[WS(ris, 20)];
936
 
                    Tk = ri[WS(ris, 11)];
937
 
                    Tl = Tj + Tk;
938
 
                    T1n = Tj - Tk;
939
 
                    T1j = ii[WS(iis, 20)];
940
 
                    T1k = ii[WS(iis, 11)];
941
 
                    T1l = T1j + T1k;
942
 
                    T4O = T1j - T1k;
943
 
               }
944
 
               {
945
 
                    E Tn, To, T1z, T1A;
946
 
                    Tn = ri[WS(ris, 3)];
947
 
                    To = ri[WS(ris, 28)];
948
 
                    Tp = Tn + To;
949
 
                    T1t = Tn - To;
950
 
                    T1z = ii[WS(iis, 3)];
951
 
                    T1A = ii[WS(iis, 28)];
952
 
                    T1B = T1z + T1A;
953
 
                    T4S = T1A - T1z;
954
 
               }
955
 
               {
956
 
                    E Tq, Tr, T1u, T1v;
957
 
                    Tq = ri[WS(ris, 12)];
958
 
                    Tr = ri[WS(ris, 19)];
959
 
                    Ts = Tq + Tr;
960
 
                    T1y = Tq - Tr;
961
 
                    T1u = ii[WS(iis, 12)];
962
 
                    T1v = ii[WS(iis, 19)];
963
 
                    T1w = T1u + T1v;
964
 
                    T4T = T1u - T1v;
965
 
               }
966
 
               {
967
 
                    E Tm, Tt, T4R, T4U;
968
 
                    Tm = Ti + Tl;
969
 
                    Tt = Tp + Ts;
970
 
                    Tu = Tm + Tt;
971
 
                    T6v = Tm - Tt;
972
 
                    T4R = Tp - Ts;
973
 
                    T4U = T4S - T4T;
974
 
                    T4V = T4R + T4U;
975
 
                    T5s = T4U - T4R;
976
 
               }
977
 
               {
978
 
                    E T6c, T6d, T1m, T1r;
979
 
                    T6c = T4T + T4S;
980
 
                    T6d = T4O + T4N;
981
 
                    T6e = T6c - T6d;
982
 
                    T6Q = T6d + T6c;
983
 
                    T1m = T1i - T1l;
984
 
                    T1r = T1n + T1q;
985
 
                    T1s = FNMS(KP382683432, T1r, KP923879532 * T1m);
986
 
                    T2D = FMA(KP382683432, T1m, KP923879532 * T1r);
987
 
               }
988
 
               {
989
 
                    E T1x, T1C, T3z, T3A;
990
 
                    T1x = T1t - T1w;
991
 
                    T1C = T1y - T1B;
992
 
                    T1D = FMA(KP923879532, T1x, KP382683432 * T1C);
993
 
                    T2E = FNMS(KP382683432, T1x, KP923879532 * T1C);
994
 
                    T3z = T1t + T1w;
995
 
                    T3A = T1y + T1B;
996
 
                    T3B = FNMS(KP923879532, T3A, KP382683432 * T3z);
997
 
                    T3Y = FMA(KP923879532, T3z, KP382683432 * T3A);
998
 
               }
999
 
               {
1000
 
                    E T4M, T4P, T3w, T3x;
1001
 
                    T4M = Ti - Tl;
1002
 
                    T4P = T4N - T4O;
1003
 
                    T4Q = T4M - T4P;
1004
 
                    T5r = T4M + T4P;
1005
 
                    T3w = T1i + T1l;
1006
 
                    T3x = T1q - T1n;
1007
 
                    T3y = FNMS(KP923879532, T3x, KP382683432 * T3w);
1008
 
                    T3X = FMA(KP923879532, T3w, KP382683432 * T3x);
1009
 
               }
1010
 
          }
1011
 
          {
1012
 
               E Ty, T1G, T23, T54, TB, T20, T1J, T55, TI, T4Z, T1U, T1Y, TF, T50, T1P;
1013
 
               E T1X;
1014
 
               {
1015
 
                    E Tw, Tx, T1H, T1I;
1016
 
                    Tw = ri[WS(ris, 2)];
1017
 
                    Tx = ri[WS(ris, 29)];
1018
 
                    Ty = Tw + Tx;
1019
 
                    T1G = Tw - Tx;
1020
 
                    {
1021
 
                         E T21, T22, Tz, TA;
1022
 
                         T21 = ii[WS(iis, 2)];
1023
 
                         T22 = ii[WS(iis, 29)];
1024
 
                         T23 = T21 + T22;
1025
 
                         T54 = T21 - T22;
1026
 
                         Tz = ri[WS(ris, 18)];
1027
 
                         TA = ri[WS(ris, 13)];
1028
 
                         TB = Tz + TA;
1029
 
                         T20 = Tz - TA;
1030
 
                    }
1031
 
                    T1H = ii[WS(iis, 18)];
1032
 
                    T1I = ii[WS(iis, 13)];
1033
 
                    T1J = T1H + T1I;
1034
 
                    T55 = T1H - T1I;
1035
 
                    {
1036
 
                         E TG, TH, T1Q, T1R, T1S, T1T;
1037
 
                         TG = ri[WS(ris, 5)];
1038
 
                         TH = ri[WS(ris, 26)];
1039
 
                         T1Q = TG - TH;
1040
 
                         T1R = ii[WS(iis, 5)];
1041
 
                         T1S = ii[WS(iis, 26)];
1042
 
                         T1T = T1R + T1S;
1043
 
                         TI = TG + TH;
1044
 
                         T4Z = T1S - T1R;
1045
 
                         T1U = T1Q - T1T;
1046
 
                         T1Y = T1Q + T1T;
1047
 
                    }
1048
 
                    {
1049
 
                         E TD, TE, T1L, T1M, T1N, T1O;
1050
 
                         TD = ri[WS(ris, 10)];
1051
 
                         TE = ri[WS(ris, 21)];
1052
 
                         T1L = TD - TE;
1053
 
                         T1M = ii[WS(iis, 10)];
1054
 
                         T1N = ii[WS(iis, 21)];
1055
 
                         T1O = T1M + T1N;
1056
 
                         TF = TD + TE;
1057
 
                         T50 = T1M - T1N;
1058
 
                         T1P = T1L - T1O;
1059
 
                         T1X = T1L + T1O;
1060
 
                    }
1061
 
               }
1062
 
               {
1063
 
                    E TC, TJ, T53, T56;
1064
 
                    TC = Ty + TB;
1065
 
                    TJ = TF + TI;
1066
 
                    TK = TC + TJ;
1067
 
                    T6g = TC - TJ;
1068
 
                    T53 = TF - TI;
1069
 
                    T56 = T54 - T55;
1070
 
                    T57 = T53 + T56;
1071
 
                    T5N = T56 - T53;
1072
 
               }
1073
 
               {
1074
 
                    E T6h, T6i, T1K, T1V;
1075
 
                    T6h = T55 + T54;
1076
 
                    T6i = T50 + T4Z;
1077
 
                    T6j = T6h - T6i;
1078
 
                    T6N = T6i + T6h;
1079
 
                    T1K = T1G - T1J;
1080
 
                    T1V = KP707106781 * (T1P + T1U);
1081
 
                    T1W = T1K + T1V;
1082
 
                    T34 = T1K - T1V;
1083
 
               }
1084
 
               {
1085
 
                    E T1Z, T24, T3H, T3I;
1086
 
                    T1Z = KP707106781 * (T1X - T1Y);
1087
 
                    T24 = T20 + T23;
1088
 
                    T25 = T1Z + T24;
1089
 
                    T35 = T24 - T1Z;
1090
 
                    T3H = KP707106781 * (T1P - T1U);
1091
 
                    T3I = T23 - T20;
1092
 
                    T3J = T3H + T3I;
1093
 
                    T4j = T3I - T3H;
1094
 
               }
1095
 
               {
1096
 
                    E T4Y, T51, T3E, T3F;
1097
 
                    T4Y = Ty - TB;
1098
 
                    T51 = T4Z - T50;
1099
 
                    T52 = T4Y + T51;
1100
 
                    T5M = T4Y - T51;
1101
 
                    T3E = T1G + T1J;
1102
 
                    T3F = KP707106781 * (T1X + T1Y);
1103
 
                    T3G = T3E - T3F;
1104
 
                    T4i = T3E + T3F;
1105
 
               }
1106
 
          }
1107
 
          {
1108
 
               E TN, T27, T2u, T5f, TQ, T2r, T2a, T5g, TX, T5a, T2l, T2p, TU, T5b, T2g;
1109
 
               E T2o;
1110
 
               {
1111
 
                    E TL, TM, T28, T29;
1112
 
                    TL = ri[WS(ris, 1)];
1113
 
                    TM = ri[WS(ris, 30)];
1114
 
                    TN = TL + TM;
1115
 
                    T27 = TL - TM;
1116
 
                    {
1117
 
                         E T2s, T2t, TO, TP;
1118
 
                         T2s = ii[WS(iis, 1)];
1119
 
                         T2t = ii[WS(iis, 30)];
1120
 
                         T2u = T2s + T2t;
1121
 
                         T5f = T2t - T2s;
1122
 
                         TO = ri[WS(ris, 14)];
1123
 
                         TP = ri[WS(ris, 17)];
1124
 
                         TQ = TO + TP;
1125
 
                         T2r = TO - TP;
1126
 
                    }
1127
 
                    T28 = ii[WS(iis, 14)];
1128
 
                    T29 = ii[WS(iis, 17)];
1129
 
                    T2a = T28 + T29;
1130
 
                    T5g = T28 - T29;
1131
 
                    {
1132
 
                         E TV, TW, T2h, T2i, T2j, T2k;
1133
 
                         TV = ri[WS(ris, 9)];
1134
 
                         TW = ri[WS(ris, 22)];
1135
 
                         T2h = TV - TW;
1136
 
                         T2i = ii[WS(iis, 9)];
1137
 
                         T2j = ii[WS(iis, 22)];
1138
 
                         T2k = T2i + T2j;
1139
 
                         TX = TV + TW;
1140
 
                         T5a = T2j - T2i;
1141
 
                         T2l = T2h - T2k;
1142
 
                         T2p = T2h + T2k;
1143
 
                    }
1144
 
                    {
1145
 
                         E TS, TT, T2c, T2d, T2e, T2f;
1146
 
                         TS = ri[WS(ris, 6)];
1147
 
                         TT = ri[WS(ris, 25)];
1148
 
                         T2c = TS - TT;
1149
 
                         T2d = ii[WS(iis, 6)];
1150
 
                         T2e = ii[WS(iis, 25)];
1151
 
                         T2f = T2d + T2e;
1152
 
                         TU = TS + TT;
1153
 
                         T5b = T2d - T2e;
1154
 
                         T2g = T2c - T2f;
1155
 
                         T2o = T2c + T2f;
1156
 
                    }
1157
 
               }
1158
 
               {
1159
 
                    E TR, TY, T5e, T5h;
1160
 
                    TR = TN + TQ;
1161
 
                    TY = TU + TX;
1162
 
                    TZ = TR + TY;
1163
 
                    T6l = TR - TY;
1164
 
                    T5e = TU - TX;
1165
 
                    T5h = T5f - T5g;
1166
 
                    T5i = T5e + T5h;
1167
 
                    T5Q = T5h - T5e;
1168
 
               }
1169
 
               {
1170
 
                    E T6m, T6n, T2b, T2m;
1171
 
                    T6m = T5g + T5f;
1172
 
                    T6n = T5b + T5a;
1173
 
                    T6o = T6m - T6n;
1174
 
                    T6M = T6n + T6m;
1175
 
                    T2b = T27 - T2a;
1176
 
                    T2m = KP707106781 * (T2g + T2l);
1177
 
                    T2n = T2b + T2m;
1178
 
                    T37 = T2b - T2m;
1179
 
               }
1180
 
               {
1181
 
                    E T2q, T2v, T3O, T3P;
1182
 
                    T2q = KP707106781 * (T2o - T2p);
1183
 
                    T2v = T2r - T2u;
1184
 
                    T2w = T2q + T2v;
1185
 
                    T38 = T2v - T2q;
1186
 
                    T3O = KP707106781 * (T2g - T2l);
1187
 
                    T3P = T2r + T2u;
1188
 
                    T3Q = T3O - T3P;
1189
 
                    T4m = T3O + T3P;
1190
 
               }
1191
 
               {
1192
 
                    E T59, T5c, T3L, T3M;
1193
 
                    T59 = TN - TQ;
1194
 
                    T5c = T5a - T5b;
1195
 
                    T5d = T59 + T5c;
1196
 
                    T5P = T59 - T5c;
1197
 
                    T3L = T27 + T2a;
1198
 
                    T3M = KP707106781 * (T2o + T2p);
1199
 
                    T3N = T3L - T3M;
1200
 
                    T4l = T3L + T3M;
1201
 
               }
1202
 
          }
1203
 
          {
1204
 
               E Tv, T10, T6X, T6Y, T6Z, T70;
1205
 
               Tv = Tf + Tu;
1206
 
               T10 = TK + TZ;
1207
 
               T6X = Tv - T10;
1208
 
               T6Y = T6N + T6M;
1209
 
               T6Z = T6R - T6Q;
1210
 
               T70 = T6Y + T6Z;
1211
 
               O[0] = KP2_000000000 * (Tv + T10);
1212
 
               O[WS(os, 32)] = KP2_000000000 * (T6Z - T6Y);
1213
 
               O[WS(os, 16)] = KP1_414213562 * (T6X + T70);
1214
 
               O[WS(os, 48)] = KP1_414213562 * (T70 - T6X);
1215
 
          }
1216
 
          {
1217
 
               E T6P, T6V, T6U, T6W;
1218
 
               {
1219
 
                    E T6L, T6O, T6S, T6T;
1220
 
                    T6L = Tf - Tu;
1221
 
                    T6O = T6M - T6N;
1222
 
                    T6P = T6L + T6O;
1223
 
                    T6V = T6L - T6O;
1224
 
                    T6S = T6Q + T6R;
1225
 
                    T6T = TK - TZ;
1226
 
                    T6U = T6S - T6T;
1227
 
                    T6W = T6T + T6S;
1228
 
               }
1229
 
               O[WS(os, 8)] = FMA(KP1_847759065, T6P, KP765366864 * T6U);
1230
 
               O[WS(os, 56)] = FNMS(KP1_847759065, T6V, KP765366864 * T6W);
1231
 
               O[WS(os, 40)] = FNMS(KP765366864, T6P, KP1_847759065 * T6U);
1232
 
               O[WS(os, 24)] = FMA(KP765366864, T6V, KP1_847759065 * T6W);
1233
 
          }
1234
 
          {
1235
 
               E T6f, T6w, T6G, T6D, T6z, T6E, T6q, T6H;
1236
 
               T6f = T6b + T6e;
1237
 
               T6w = T6u - T6v;
1238
 
               T6G = T6v + T6u;
1239
 
               T6D = T6b - T6e;
1240
 
               {
1241
 
                    E T6x, T6y, T6k, T6p;
1242
 
                    T6x = T6g + T6j;
1243
 
                    T6y = T6o - T6l;
1244
 
                    T6z = KP707106781 * (T6x + T6y);
1245
 
                    T6E = KP707106781 * (T6y - T6x);
1246
 
                    T6k = T6g - T6j;
1247
 
                    T6p = T6l + T6o;
1248
 
                    T6q = KP707106781 * (T6k + T6p);
1249
 
                    T6H = KP707106781 * (T6k - T6p);
1250
 
               }
1251
 
               {
1252
 
                    E T6r, T6A, T6J, T6K;
1253
 
                    T6r = T6f + T6q;
1254
 
                    T6A = T6w - T6z;
1255
 
                    O[WS(os, 4)] = FMA(KP1_961570560, T6r, KP390180644 * T6A);
1256
 
                    O[WS(os, 36)] = FNMS(KP390180644, T6r, KP1_961570560 * T6A);
1257
 
                    T6J = T6D - T6E;
1258
 
                    T6K = T6H + T6G;
1259
 
                    O[WS(os, 28)] = FMA(KP390180644, T6J, KP1_961570560 * T6K);
1260
 
                    O[WS(os, 60)] = FNMS(KP1_961570560, T6J, KP390180644 * T6K);
1261
 
               }
1262
 
               {
1263
 
                    E T6B, T6C, T6F, T6I;
1264
 
                    T6B = T6f - T6q;
1265
 
                    T6C = T6z + T6w;
1266
 
                    O[WS(os, 20)] = FMA(KP1_111140466, T6B, KP1_662939224 * T6C);
1267
 
                    O[WS(os, 52)] = FNMS(KP1_662939224, T6B, KP1_111140466 * T6C);
1268
 
                    T6F = T6D + T6E;
1269
 
                    T6I = T6G - T6H;
1270
 
                    O[WS(os, 12)] = FMA(KP1_662939224, T6F, KP1_111140466 * T6I);
1271
 
                    O[WS(os, 44)] = FNMS(KP1_111140466, T6F, KP1_662939224 * T6I);
1272
 
               }
1273
 
          }
1274
 
          {
1275
 
               E T5L, T63, T5W, T66, T5S, T67, T5Z, T64, T5K, T5V;
1276
 
               T5K = KP707106781 * (T5s - T5r);
1277
 
               T5L = T5J + T5K;
1278
 
               T63 = T5J - T5K;
1279
 
               T5V = KP707106781 * (T4Q - T4V);
1280
 
               T5W = T5U - T5V;
1281
 
               T66 = T5V + T5U;
1282
 
               {
1283
 
                    E T5O, T5R, T5X, T5Y;
1284
 
                    T5O = FNMS(KP923879532, T5N, KP382683432 * T5M);
1285
 
                    T5R = FMA(KP382683432, T5P, KP923879532 * T5Q);
1286
 
                    T5S = T5O + T5R;
1287
 
                    T67 = T5O - T5R;
1288
 
                    T5X = FMA(KP923879532, T5M, KP382683432 * T5N);
1289
 
                    T5Y = FNMS(KP923879532, T5P, KP382683432 * T5Q);
1290
 
                    T5Z = T5X + T5Y;
1291
 
                    T64 = T5Y - T5X;
1292
 
               }
1293
 
               {
1294
 
                    E T5T, T60, T69, T6a;
1295
 
                    T5T = T5L + T5S;
1296
 
                    T60 = T5W - T5Z;
1297
 
                    O[WS(os, 6)] = FMA(KP1_913880671, T5T, KP580569354 * T60);
1298
 
                    O[WS(os, 38)] = FNMS(KP580569354, T5T, KP1_913880671 * T60);
1299
 
                    T69 = T63 - T64;
1300
 
                    T6a = T67 + T66;
1301
 
                    O[WS(os, 30)] = FMA(KP196034280, T69, KP1_990369453 * T6a);
1302
 
                    O[WS(os, 62)] = FNMS(KP1_990369453, T69, KP196034280 * T6a);
1303
 
               }
1304
 
               {
1305
 
                    E T61, T62, T65, T68;
1306
 
                    T61 = T5L - T5S;
1307
 
                    T62 = T5Z + T5W;
1308
 
                    O[WS(os, 22)] = FMA(KP942793473, T61, KP1_763842528 * T62);
1309
 
                    O[WS(os, 54)] = FNMS(KP1_763842528, T61, KP942793473 * T62);
1310
 
                    T65 = T63 + T64;
1311
 
                    T68 = T66 - T67;
1312
 
                    O[WS(os, 14)] = FMA(KP1_546020906, T65, KP1_268786568 * T68);
1313
 
                    O[WS(os, 46)] = FNMS(KP1_268786568, T65, KP1_546020906 * T68);
1314
 
               }
1315
 
          }
1316
 
          {
1317
 
               E T4X, T5B, T5u, T5E, T5k, T5F, T5x, T5C, T4W, T5t;
1318
 
               T4W = KP707106781 * (T4Q + T4V);
1319
 
               T4X = T4L + T4W;
1320
 
               T5B = T4L - T4W;
1321
 
               T5t = KP707106781 * (T5r + T5s);
1322
 
               T5u = T5q - T5t;
1323
 
               T5E = T5t + T5q;
1324
 
               {
1325
 
                    E T58, T5j, T5v, T5w;
1326
 
                    T58 = FNMS(KP382683432, T57, KP923879532 * T52);
1327
 
                    T5j = FMA(KP923879532, T5d, KP382683432 * T5i);
1328
 
                    T5k = T58 + T5j;
1329
 
                    T5F = T58 - T5j;
1330
 
                    T5v = FMA(KP382683432, T52, KP923879532 * T57);
1331
 
                    T5w = FNMS(KP382683432, T5d, KP923879532 * T5i);
1332
 
                    T5x = T5v + T5w;
1333
 
                    T5C = T5w - T5v;
1334
 
               }
1335
 
               {
1336
 
                    E T5l, T5y, T5H, T5I;
1337
 
                    T5l = T4X + T5k;
1338
 
                    T5y = T5u - T5x;
1339
 
                    O[WS(os, 2)] = FMA(KP1_990369453, T5l, KP196034280 * T5y);
1340
 
                    O[WS(os, 34)] = FNMS(KP196034280, T5l, KP1_990369453 * T5y);
1341
 
                    T5H = T5B - T5C;
1342
 
                    T5I = T5F + T5E;
1343
 
                    O[WS(os, 26)] = FMA(KP580569354, T5H, KP1_913880671 * T5I);
1344
 
                    O[WS(os, 58)] = FNMS(KP1_913880671, T5H, KP580569354 * T5I);
1345
 
               }
1346
 
               {
1347
 
                    E T5z, T5A, T5D, T5G;
1348
 
                    T5z = T4X - T5k;
1349
 
                    T5A = T5x + T5u;
1350
 
                    O[WS(os, 18)] = FMA(KP1_268786568, T5z, KP1_546020906 * T5A);
1351
 
                    O[WS(os, 50)] = FNMS(KP1_546020906, T5z, KP1_268786568 * T5A);
1352
 
                    T5D = T5B + T5C;
1353
 
                    T5G = T5E - T5F;
1354
 
                    O[WS(os, 10)] = FMA(KP1_763842528, T5D, KP942793473 * T5G);
1355
 
                    O[WS(os, 42)] = FNMS(KP942793473, T5D, KP1_763842528 * T5G);
1356
 
               }
1357
 
          }
1358
 
          {
1359
 
               E T33, T3l, T3h, T3m, T3a, T3p, T3e, T3o;
1360
 
               {
1361
 
                    E T31, T32, T3f, T3g;
1362
 
                    T31 = T15 - T1g;
1363
 
                    T32 = T2E - T2D;
1364
 
                    T33 = T31 + T32;
1365
 
                    T3l = T31 - T32;
1366
 
                    T3f = FMA(KP831469612, T34, KP555570233 * T35);
1367
 
                    T3g = FNMS(KP831469612, T37, KP555570233 * T38);
1368
 
                    T3h = T3f + T3g;
1369
 
                    T3m = T3g - T3f;
1370
 
               }
1371
 
               {
1372
 
                    E T36, T39, T3c, T3d;
1373
 
                    T36 = FNMS(KP831469612, T35, KP555570233 * T34);
1374
 
                    T39 = FMA(KP555570233, T37, KP831469612 * T38);
1375
 
                    T3a = T36 + T39;
1376
 
                    T3p = T36 - T39;
1377
 
                    T3c = T2I - T2N;
1378
 
                    T3d = T1s - T1D;
1379
 
                    T3e = T3c - T3d;
1380
 
                    T3o = T3d + T3c;
1381
 
               }
1382
 
               {
1383
 
                    E T3b, T3i, T3r, T3s;
1384
 
                    T3b = T33 + T3a;
1385
 
                    T3i = T3e - T3h;
1386
 
                    O[WS(os, 5)] = FMA(KP1_940062506, T3b, KP485960359 * T3i);
1387
 
                    O[WS(os, 37)] = FNMS(KP485960359, T3b, KP1_940062506 * T3i);
1388
 
                    T3r = T3l - T3m;
1389
 
                    T3s = T3p + T3o;
1390
 
                    O[WS(os, 29)] = FMA(KP293460948, T3r, KP1_978353019 * T3s);
1391
 
                    O[WS(os, 61)] = FNMS(KP1_978353019, T3r, KP293460948 * T3s);
1392
 
               }
1393
 
               {
1394
 
                    E T3j, T3k, T3n, T3q;
1395
 
                    T3j = T33 - T3a;
1396
 
                    T3k = T3h + T3e;
1397
 
                    O[WS(os, 21)] = FMA(KP1_028205488, T3j, KP1_715457220 * T3k);
1398
 
                    O[WS(os, 53)] = FNMS(KP1_715457220, T3j, KP1_028205488 * T3k);
1399
 
                    T3n = T3l + T3m;
1400
 
                    T3q = T3o - T3p;
1401
 
                    O[WS(os, 13)] = FMA(KP1_606415062, T3n, KP1_191398608 * T3q);
1402
 
                    O[WS(os, 45)] = FNMS(KP1_191398608, T3n, KP1_606415062 * T3q);
1403
 
               }
1404
 
          }
1405
 
          {
1406
 
               E T4h, T4z, T4v, T4A, T4o, T4D, T4s, T4C;
1407
 
               {
1408
 
                    E T4f, T4g, T4t, T4u;
1409
 
                    T4f = T3t + T3u;
1410
 
                    T4g = T3X + T3Y;
1411
 
                    T4h = T4f - T4g;
1412
 
                    T4z = T4f + T4g;
1413
 
                    T4t = FMA(KP980785280, T4i, KP195090322 * T4j);
1414
 
                    T4u = FMA(KP980785280, T4l, KP195090322 * T4m);
1415
 
                    T4v = T4t - T4u;
1416
 
                    T4A = T4t + T4u;
1417
 
               }
1418
 
               {
1419
 
                    E T4k, T4n, T4q, T4r;
1420
 
                    T4k = FNMS(KP980785280, T4j, KP195090322 * T4i);
1421
 
                    T4n = FNMS(KP980785280, T4m, KP195090322 * T4l);
1422
 
                    T4o = T4k + T4n;
1423
 
                    T4D = T4k - T4n;
1424
 
                    T4q = T3V + T3U;
1425
 
                    T4r = T3y - T3B;
1426
 
                    T4s = T4q - T4r;
1427
 
                    T4C = T4r + T4q;
1428
 
               }
1429
 
               {
1430
 
                    E T4p, T4w, T4F, T4G;
1431
 
                    T4p = T4h + T4o;
1432
 
                    T4w = T4s - T4v;
1433
 
                    O[WS(os, 7)] = FMA(KP1_883088130, T4p, KP673779706 * T4w);
1434
 
                    O[WS(os, 39)] = FNMS(KP673779706, T4p, KP1_883088130 * T4w);
1435
 
                    T4F = T4z + T4A;
1436
 
                    T4G = T4D + T4C;
1437
 
                    O[WS(os, 31)] = FMA(KP098135348, T4F, KP1_997590912 * T4G);
1438
 
                    O[WS(os, 63)] = FNMS(KP1_997590912, T4F, KP098135348 * T4G);
1439
 
               }
1440
 
               {
1441
 
                    E T4x, T4y, T4B, T4E;
1442
 
                    T4x = T4h - T4o;
1443
 
                    T4y = T4v + T4s;
1444
 
                    O[WS(os, 23)] = FMA(KP855110186, T4x, KP1_807978586 * T4y);
1445
 
                    O[WS(os, 55)] = FNMS(KP1_807978586, T4x, KP855110186 * T4y);
1446
 
                    T4B = T4z - T4A;
1447
 
                    T4E = T4C - T4D;
1448
 
                    O[WS(os, 15)] = FMA(KP1_481902250, T4B, KP1_343117909 * T4E);
1449
 
                    O[WS(os, 47)] = FNMS(KP1_343117909, T4B, KP1_481902250 * T4E);
1450
 
               }
1451
 
          }
1452
 
          {
1453
 
               E T1F, T2T, T2P, T2W, T2y, T2X, T2C, T2U;
1454
 
               {
1455
 
                    E T1h, T1E, T2F, T2O;
1456
 
                    T1h = T15 + T1g;
1457
 
                    T1E = T1s + T1D;
1458
 
                    T1F = T1h + T1E;
1459
 
                    T2T = T1h - T1E;
1460
 
                    T2F = T2D + T2E;
1461
 
                    T2O = T2I + T2N;
1462
 
                    T2P = T2F + T2O;
1463
 
                    T2W = T2F - T2O;
1464
 
               }
1465
 
               {
1466
 
                    E T26, T2x, T2A, T2B;
1467
 
                    T26 = FNMS(KP195090322, T25, KP980785280 * T1W);
1468
 
                    T2x = FMA(KP980785280, T2n, KP195090322 * T2w);
1469
 
                    T2y = T26 + T2x;
1470
 
                    T2X = T26 - T2x;
1471
 
                    T2A = FMA(KP195090322, T1W, KP980785280 * T25);
1472
 
                    T2B = FNMS(KP195090322, T2n, KP980785280 * T2w);
1473
 
                    T2C = T2A + T2B;
1474
 
                    T2U = T2B - T2A;
1475
 
               }
1476
 
               {
1477
 
                    E T2z, T2Q, T2Z, T30;
1478
 
                    T2z = T1F + T2y;
1479
 
                    T2Q = T2C + T2P;
1480
 
                    O[WS(os, 1)] = FNMS(KP098135348, T2Q, KP1_997590912 * T2z);
1481
 
                    O[WS(os, 33)] = -(FMA(KP098135348, T2z, KP1_997590912 * T2Q));
1482
 
                    T2Z = T2T - T2U;
1483
 
                    T30 = T2X + T2W;
1484
 
                    O[WS(os, 25)] = FMA(KP673779706, T2Z, KP1_883088130 * T30);
1485
 
                    O[WS(os, 57)] = FNMS(KP1_883088130, T2Z, KP673779706 * T30);
1486
 
               }
1487
 
               {
1488
 
                    E T2R, T2S, T2V, T2Y;
1489
 
                    T2R = T1F - T2y;
1490
 
                    T2S = T2C - T2P;
1491
 
                    O[WS(os, 17)] = FMA(KP1_343117909, T2R, KP1_481902250 * T2S);
1492
 
                    O[WS(os, 49)] = FNMS(KP1_481902250, T2R, KP1_343117909 * T2S);
1493
 
                    T2V = T2T + T2U;
1494
 
                    T2Y = T2W - T2X;
1495
 
                    O[WS(os, 9)] = FMA(KP1_807978586, T2V, KP855110186 * T2Y);
1496
 
                    O[WS(os, 41)] = FNMS(KP855110186, T2V, KP1_807978586 * T2Y);
1497
 
               }
1498
 
          }
1499
 
          {
1500
 
               E T3D, T47, T43, T48, T3S, T4b, T40, T4a;
1501
 
               {
1502
 
                    E T3v, T3C, T41, T42;
1503
 
                    T3v = T3t - T3u;
1504
 
                    T3C = T3y + T3B;
1505
 
                    T3D = T3v + T3C;
1506
 
                    T47 = T3v - T3C;
1507
 
                    T41 = FMA(KP555570233, T3G, KP831469612 * T3J);
1508
 
                    T42 = FNMS(KP555570233, T3N, KP831469612 * T3Q);
1509
 
                    T43 = T41 + T42;
1510
 
                    T48 = T42 - T41;
1511
 
               }
1512
 
               {
1513
 
                    E T3K, T3R, T3W, T3Z;
1514
 
                    T3K = FNMS(KP555570233, T3J, KP831469612 * T3G);
1515
 
                    T3R = FMA(KP831469612, T3N, KP555570233 * T3Q);
1516
 
                    T3S = T3K + T3R;
1517
 
                    T4b = T3K - T3R;
1518
 
                    T3W = T3U - T3V;
1519
 
                    T3Z = T3X - T3Y;
1520
 
                    T40 = T3W - T3Z;
1521
 
                    T4a = T3Z + T3W;
1522
 
               }
1523
 
               {
1524
 
                    E T3T, T44, T4d, T4e;
1525
 
                    T3T = T3D + T3S;
1526
 
                    T44 = T40 - T43;
1527
 
                    O[WS(os, 3)] = FMA(KP1_978353019, T3T, KP293460948 * T44);
1528
 
                    O[WS(os, 35)] = FNMS(KP293460948, T3T, KP1_978353019 * T44);
1529
 
                    T4d = T47 - T48;
1530
 
                    T4e = T4b + T4a;
1531
 
                    O[WS(os, 27)] = FMA(KP485960359, T4d, KP1_940062506 * T4e);
1532
 
                    O[WS(os, 59)] = FNMS(KP1_940062506, T4d, KP485960359 * T4e);
1533
 
               }
1534
 
               {
1535
 
                    E T45, T46, T49, T4c;
1536
 
                    T45 = T3D - T3S;
1537
 
                    T46 = T43 + T40;
1538
 
                    O[WS(os, 19)] = FMA(KP1_191398608, T45, KP1_606415062 * T46);
1539
 
                    O[WS(os, 51)] = FNMS(KP1_606415062, T45, KP1_191398608 * T46);
1540
 
                    T49 = T47 + T48;
1541
 
                    T4c = T4a - T4b;
1542
 
                    O[WS(os, 11)] = FMA(KP1_715457220, T49, KP1_028205488 * T4c);
1543
 
                    O[WS(os, 43)] = FNMS(KP1_028205488, T49, KP1_715457220 * T4c);
1544
 
               }
1545
 
          }
1546
 
     }
1547
 
}
1548
 
 
1549
 
static const khc2r_desc desc = { 64, "hc2rIII_64", {342, 116, 92, 0}, &GENUS, 0, 0, 0, 0, 0 };
1550
 
 
1551
 
void X(codelet_hc2rIII_64) (planner *p) {
1552
 
     X(khc2rIII_register) (p, hc2rIII_64, &desc);
1553
 
}
1554
 
 
1555
 
#endif                          /* HAVE_FMA */