To check out this repository please hg clone the following URL, or open the URL using EasyMercurial or your preferred Mercurial client.

The primary repository for this project is hosted at https://github.com/sonic-visualiser/sv-dependency-builds .
This repository is a read-only copy which is updated automatically every hour.

Statistics Download as Zip
| Branch: | Tag: | Revision:

root / src / fftw-3.3.8 / dft / scalar / codelets / t1_25.c @ 167:bd3cc4d1df30

History | View | Annotate | Download (46.5 KB)

1
/*
2
 * Copyright (c) 2003, 2007-14 Matteo Frigo
3
 * Copyright (c) 2003, 2007-14 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., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
18
 *
19
 */
20

    
21
/* This file was automatically generated --- DO NOT EDIT */
22
/* Generated on Thu May 24 08:04:16 EDT 2018 */
23

    
24
#include "dft/codelet-dft.h"
25

    
26
#if defined(ARCH_PREFERS_FMA) || defined(ISA_EXTENSION_PREFERS_FMA)
27

    
28
/* Generated by: ../../../genfft/gen_twiddle.native -fma -compact -variables 4 -pipeline-latency 4 -n 25 -name t1_25 -include dft/scalar/t.h */
29

    
30
/*
31
 * This function contains 400 FP additions, 364 FP multiplications,
32
 * (or, 84 additions, 48 multiplications, 316 fused multiply/add),
33
 * 138 stack variables, 47 constants, and 100 memory accesses
34
 */
35
#include "dft/scalar/t.h"
36

    
37
static void t1_25(R *ri, R *ii, const R *W, stride rs, INT mb, INT me, INT ms)
38
{
39
     DK(KP860541664, +0.860541664367944677098261680920518816412804187);
40
     DK(KP560319534, +0.560319534973832390111614715371676131169633784);
41
     DK(KP681693190, +0.681693190061530575150324149145440022633095390);
42
     DK(KP949179823, +0.949179823508441261575555465843363271711583843);
43
     DK(KP557913902, +0.557913902031834264187699648465567037992437152);
44
     DK(KP249506682, +0.249506682107067890488084201715862638334226305);
45
     DK(KP614372930, +0.614372930789563808870829930444362096004872855);
46
     DK(KP621716863, +0.621716863012209892444754556304102309693593202);
47
     DK(KP998026728, +0.998026728428271561952336806863450553336905220);
48
     DK(KP906616052, +0.906616052148196230441134447086066874408359177);
49
     DK(KP845997307, +0.845997307939530944175097360758058292389769300);
50
     DK(KP968479752, +0.968479752739016373193524836781420152702090879);
51
     DK(KP994076283, +0.994076283785401014123185814696322018529298887);
52
     DK(KP772036680, +0.772036680810363904029489473607579825330539880);
53
     DK(KP734762448, +0.734762448793050413546343770063151342619912334);
54
     DK(KP062914667, +0.062914667253649757225485955897349402364686947);
55
     DK(KP943557151, +0.943557151597354104399655195398983005179443399);
56
     DK(KP803003575, +0.803003575438660414833440593570376004635464850);
57
     DK(KP554608978, +0.554608978404018097464974850792216217022558774);
58
     DK(KP248028675, +0.248028675328619457762448260696444630363259177);
59
     DK(KP525970792, +0.525970792408939708442463226536226366643874659);
60
     DK(KP726211448, +0.726211448929902658173535992263577167607493062);
61
     DK(KP833417178, +0.833417178328688677408962550243238843138996060);
62
     DK(KP921177326, +0.921177326965143320250447435415066029359282231);
63
     DK(KP541454447, +0.541454447536312777046285590082819509052033189);
64
     DK(KP242145790, +0.242145790282157779872542093866183953459003101);
65
     DK(KP683113946, +0.683113946453479238701949862233725244439656928);
66
     DK(KP559154169, +0.559154169276087864842202529084232643714075927);
67
     DK(KP992114701, +0.992114701314477831049793042785778521453036709);
68
     DK(KP968583161, +0.968583161128631119490168375464735813836012403);
69
     DK(KP851038619, +0.851038619207379630836264138867114231259902550);
70
     DK(KP912018591, +0.912018591466481957908415381764119056233607330);
71
     DK(KP912575812, +0.912575812670962425556968549836277086778922727);
72
     DK(KP470564281, +0.470564281212251493087595091036643380879947982);
73
     DK(KP827271945, +0.827271945972475634034355757144307982555673741);
74
     DK(KP126329378, +0.126329378446108174786050455341811215027378105);
75
     DK(KP904730450, +0.904730450839922351881287709692877908104763647);
76
     DK(KP831864738, +0.831864738706457140726048799369896829771167132);
77
     DK(KP871714437, +0.871714437527667770979999223229522602943903653);
78
     DK(KP549754652, +0.549754652192770074288023275540779861653779767);
79
     DK(KP634619297, +0.634619297544148100711287640319130485732531031);
80
     DK(KP939062505, +0.939062505817492352556001843133229685779824606);
81
     DK(KP256756360, +0.256756360367726783319498520922669048172391148);
82
     DK(KP951056516, +0.951056516295153572116439333379382143405698634);
83
     DK(KP559016994, +0.559016994374947424102293417182819058860154590);
84
     DK(KP250000000, +0.250000000000000000000000000000000000000000000);
85
     DK(KP618033988, +0.618033988749894848204586834365638117720309180);
86
     {
87
          INT m;
88
          for (m = mb, W = W + (mb * 48); m < me; m = m + 1, ri = ri + ms, ii = ii + ms, W = W + 48, MAKE_VOLATILE_STRIDE(50, rs)) {
89
               E T1, T6X, T3Y, T5G, T7c, T7C, Ts, T3L, T3M, T6W, T77, T78, T4P, T5T, T4W;
90
               E T5Q, T2G, T5S, T4M, T3G, T5P, T4T, T45, T65, T4c, T68, T11, T64, T42, T2Z;
91
               E T67, T49, T4k, T61, T4r, T5Y, T1z, T5X, T4o, T3d, T60, T4h, T4A, T5M, T4H;
92
               E T5J, T28, T5L, T4x, T3s, T5I, T4E;
93
               {
94
                    E T7, T3P, Tq, T3W, Tk, T3U, Td, T3R;
95
                    T1 = ri[0];
96
                    T6X = ii[0];
97
                    {
98
                         E T3, T6, T4, T3O, T2, T5;
99
                         T3 = ri[WS(rs, 5)];
100
                         T6 = ii[WS(rs, 5)];
101
                         T2 = W[8];
102
                         T4 = T2 * T3;
103
                         T3O = T2 * T6;
104
                         T5 = W[9];
105
                         T7 = FMA(T5, T6, T4);
106
                         T3P = FNMS(T5, T3, T3O);
107
                    }
108
                    {
109
                         E Tm, Tp, Tn, T3V, Tl, To;
110
                         Tm = ri[WS(rs, 15)];
111
                         Tp = ii[WS(rs, 15)];
112
                         Tl = W[28];
113
                         Tn = Tl * Tm;
114
                         T3V = Tl * Tp;
115
                         To = W[29];
116
                         Tq = FMA(To, Tp, Tn);
117
                         T3W = FNMS(To, Tm, T3V);
118
                    }
119
                    {
120
                         E Tg, Tj, Th, T3T, Tf, Ti;
121
                         Tg = ri[WS(rs, 10)];
122
                         Tj = ii[WS(rs, 10)];
123
                         Tf = W[18];
124
                         Th = Tf * Tg;
125
                         T3T = Tf * Tj;
126
                         Ti = W[19];
127
                         Tk = FMA(Ti, Tj, Th);
128
                         T3U = FNMS(Ti, Tg, T3T);
129
                    }
130
                    {
131
                         E T9, Tc, Ta, T3Q, T8, Tb;
132
                         T9 = ri[WS(rs, 20)];
133
                         Tc = ii[WS(rs, 20)];
134
                         T8 = W[38];
135
                         Ta = T8 * T9;
136
                         T3Q = T8 * Tc;
137
                         Tb = W[39];
138
                         Td = FMA(Tb, Tc, Ta);
139
                         T3R = FNMS(Tb, T9, T3Q);
140
                    }
141
                    {
142
                         E T3S, T3X, T7a, T7b;
143
                         T3S = T3P - T3R;
144
                         T3X = T3U - T3W;
145
                         T3Y = FMA(KP618033988, T3X, T3S);
146
                         T5G = FNMS(KP618033988, T3S, T3X);
147
                         T7a = T7 - Td;
148
                         T7b = Tk - Tq;
149
                         T7c = FMA(KP618033988, T7b, T7a);
150
                         T7C = FNMS(KP618033988, T7a, T7b);
151
                    }
152
                    {
153
                         E Te, Tr, T6U, T6V;
154
                         Te = T7 + Td;
155
                         Tr = Tk + Tq;
156
                         Ts = Te + Tr;
157
                         T3L = FNMS(KP250000000, Ts, T1);
158
                         T3M = Te - Tr;
159
                         T6U = T3P + T3R;
160
                         T6V = T3U + T3W;
161
                         T6W = T6U + T6V;
162
                         T77 = FNMS(KP250000000, T6W, T6X);
163
                         T78 = T6U - T6V;
164
                    }
165
               }
166
               {
167
                    E T2e, T3u, T2x, T3B, T2D, T3D, T2E, T3E, T2k, T3w, T2q, T3y, T2r, T3z;
168
                    {
169
                         E T2a, T2d, T2b, T3t, T29, T2c;
170
                         T2a = ri[WS(rs, 3)];
171
                         T2d = ii[WS(rs, 3)];
172
                         T29 = W[4];
173
                         T2b = T29 * T2a;
174
                         T3t = T29 * T2d;
175
                         T2c = W[5];
176
                         T2e = FMA(T2c, T2d, T2b);
177
                         T3u = FNMS(T2c, T2a, T3t);
178
                    }
179
                    {
180
                         E T2t, T2w, T2u, T3A, T2z, T2C, T2A, T3C, T2s, T2y, T2v, T2B;
181
                         T2t = ri[WS(rs, 13)];
182
                         T2w = ii[WS(rs, 13)];
183
                         T2s = W[24];
184
                         T2u = T2s * T2t;
185
                         T3A = T2s * T2w;
186
                         T2z = ri[WS(rs, 18)];
187
                         T2C = ii[WS(rs, 18)];
188
                         T2y = W[34];
189
                         T2A = T2y * T2z;
190
                         T3C = T2y * T2C;
191
                         T2v = W[25];
192
                         T2x = FMA(T2v, T2w, T2u);
193
                         T3B = FNMS(T2v, T2t, T3A);
194
                         T2B = W[35];
195
                         T2D = FMA(T2B, T2C, T2A);
196
                         T3D = FNMS(T2B, T2z, T3C);
197
                         T2E = T2x + T2D;
198
                         T3E = T3B + T3D;
199
                    }
200
                    {
201
                         E T2g, T2j, T2h, T3v, T2m, T2p, T2n, T3x, T2f, T2l, T2i, T2o;
202
                         T2g = ri[WS(rs, 8)];
203
                         T2j = ii[WS(rs, 8)];
204
                         T2f = W[14];
205
                         T2h = T2f * T2g;
206
                         T3v = T2f * T2j;
207
                         T2m = ri[WS(rs, 23)];
208
                         T2p = ii[WS(rs, 23)];
209
                         T2l = W[44];
210
                         T2n = T2l * T2m;
211
                         T3x = T2l * T2p;
212
                         T2i = W[15];
213
                         T2k = FMA(T2i, T2j, T2h);
214
                         T3w = FNMS(T2i, T2g, T3v);
215
                         T2o = W[45];
216
                         T2q = FMA(T2o, T2p, T2n);
217
                         T3y = FNMS(T2o, T2m, T3x);
218
                         T2r = T2k + T2q;
219
                         T3z = T3w + T3y;
220
                    }
221
                    {
222
                         E T4N, T4O, T4U, T4V;
223
                         T4N = T3y - T3w;
224
                         T4O = T3D - T3B;
225
                         T4P = FMA(KP618033988, T4O, T4N);
226
                         T5T = FNMS(KP618033988, T4N, T4O);
227
                         T4U = T2k - T2q;
228
                         T4V = T2x - T2D;
229
                         T4W = FMA(KP618033988, T4V, T4U);
230
                         T5Q = FNMS(KP618033988, T4U, T4V);
231
                    }
232
                    {
233
                         E T4L, T2F, T4K, T4S, T3F, T4R;
234
                         T4L = T2E - T2r;
235
                         T2F = T2r + T2E;
236
                         T4K = FNMS(KP250000000, T2F, T2e);
237
                         T2G = T2e + T2F;
238
                         T5S = FMA(KP559016994, T4L, T4K);
239
                         T4M = FNMS(KP559016994, T4L, T4K);
240
                         T4S = T3E - T3z;
241
                         T3F = T3z + T3E;
242
                         T4R = FNMS(KP250000000, T3F, T3u);
243
                         T3G = T3u + T3F;
244
                         T5P = FMA(KP559016994, T4S, T4R);
245
                         T4T = FNMS(KP559016994, T4S, T4R);
246
                    }
247
               }
248
               {
249
                    E Tz, T2N, TS, T2U, TY, T2W, TZ, T2X, TF, T2P, TL, T2R, TM, T2S;
250
                    {
251
                         E Tv, Ty, Tw, T2M, Tu, Tx;
252
                         Tv = ri[WS(rs, 1)];
253
                         Ty = ii[WS(rs, 1)];
254
                         Tu = W[0];
255
                         Tw = Tu * Tv;
256
                         T2M = Tu * Ty;
257
                         Tx = W[1];
258
                         Tz = FMA(Tx, Ty, Tw);
259
                         T2N = FNMS(Tx, Tv, T2M);
260
                    }
261
                    {
262
                         E TO, TR, TP, T2T, TU, TX, TV, T2V, TN, TT, TQ, TW;
263
                         TO = ri[WS(rs, 11)];
264
                         TR = ii[WS(rs, 11)];
265
                         TN = W[20];
266
                         TP = TN * TO;
267
                         T2T = TN * TR;
268
                         TU = ri[WS(rs, 16)];
269
                         TX = ii[WS(rs, 16)];
270
                         TT = W[30];
271
                         TV = TT * TU;
272
                         T2V = TT * TX;
273
                         TQ = W[21];
274
                         TS = FMA(TQ, TR, TP);
275
                         T2U = FNMS(TQ, TO, T2T);
276
                         TW = W[31];
277
                         TY = FMA(TW, TX, TV);
278
                         T2W = FNMS(TW, TU, T2V);
279
                         TZ = TS + TY;
280
                         T2X = T2U + T2W;
281
                    }
282
                    {
283
                         E TB, TE, TC, T2O, TH, TK, TI, T2Q, TA, TG, TD, TJ;
284
                         TB = ri[WS(rs, 6)];
285
                         TE = ii[WS(rs, 6)];
286
                         TA = W[10];
287
                         TC = TA * TB;
288
                         T2O = TA * TE;
289
                         TH = ri[WS(rs, 21)];
290
                         TK = ii[WS(rs, 21)];
291
                         TG = W[40];
292
                         TI = TG * TH;
293
                         T2Q = TG * TK;
294
                         TD = W[11];
295
                         TF = FMA(TD, TE, TC);
296
                         T2P = FNMS(TD, TB, T2O);
297
                         TJ = W[41];
298
                         TL = FMA(TJ, TK, TI);
299
                         T2R = FNMS(TJ, TH, T2Q);
300
                         TM = TF + TL;
301
                         T2S = T2P + T2R;
302
                    }
303
                    {
304
                         E T43, T44, T4a, T4b;
305
                         T43 = T2P - T2R;
306
                         T44 = T2W - T2U;
307
                         T45 = FNMS(KP618033988, T44, T43);
308
                         T65 = FMA(KP618033988, T43, T44);
309
                         T4a = TL - TF;
310
                         T4b = TY - TS;
311
                         T4c = FMA(KP618033988, T4b, T4a);
312
                         T68 = FNMS(KP618033988, T4a, T4b);
313
                    }
314
                    {
315
                         E T41, T10, T40, T48, T2Y, T47;
316
                         T41 = TM - TZ;
317
                         T10 = TM + TZ;
318
                         T40 = FNMS(KP250000000, T10, Tz);
319
                         T11 = Tz + T10;
320
                         T64 = FNMS(KP559016994, T41, T40);
321
                         T42 = FMA(KP559016994, T41, T40);
322
                         T48 = T2S - T2X;
323
                         T2Y = T2S + T2X;
324
                         T47 = FNMS(KP250000000, T2Y, T2N);
325
                         T2Z = T2N + T2Y;
326
                         T67 = FNMS(KP559016994, T48, T47);
327
                         T49 = FMA(KP559016994, T48, T47);
328
                    }
329
               }
330
               {
331
                    E T17, T31, T1q, T38, T1w, T3a, T1x, T3b, T1d, T33, T1j, T35, T1k, T36;
332
                    {
333
                         E T13, T16, T14, T30, T12, T15;
334
                         T13 = ri[WS(rs, 4)];
335
                         T16 = ii[WS(rs, 4)];
336
                         T12 = W[6];
337
                         T14 = T12 * T13;
338
                         T30 = T12 * T16;
339
                         T15 = W[7];
340
                         T17 = FMA(T15, T16, T14);
341
                         T31 = FNMS(T15, T13, T30);
342
                    }
343
                    {
344
                         E T1m, T1p, T1n, T37, T1s, T1v, T1t, T39, T1l, T1r, T1o, T1u;
345
                         T1m = ri[WS(rs, 14)];
346
                         T1p = ii[WS(rs, 14)];
347
                         T1l = W[26];
348
                         T1n = T1l * T1m;
349
                         T37 = T1l * T1p;
350
                         T1s = ri[WS(rs, 19)];
351
                         T1v = ii[WS(rs, 19)];
352
                         T1r = W[36];
353
                         T1t = T1r * T1s;
354
                         T39 = T1r * T1v;
355
                         T1o = W[27];
356
                         T1q = FMA(T1o, T1p, T1n);
357
                         T38 = FNMS(T1o, T1m, T37);
358
                         T1u = W[37];
359
                         T1w = FMA(T1u, T1v, T1t);
360
                         T3a = FNMS(T1u, T1s, T39);
361
                         T1x = T1q + T1w;
362
                         T3b = T38 + T3a;
363
                    }
364
                    {
365
                         E T19, T1c, T1a, T32, T1f, T1i, T1g, T34, T18, T1e, T1b, T1h;
366
                         T19 = ri[WS(rs, 9)];
367
                         T1c = ii[WS(rs, 9)];
368
                         T18 = W[16];
369
                         T1a = T18 * T19;
370
                         T32 = T18 * T1c;
371
                         T1f = ri[WS(rs, 24)];
372
                         T1i = ii[WS(rs, 24)];
373
                         T1e = W[46];
374
                         T1g = T1e * T1f;
375
                         T34 = T1e * T1i;
376
                         T1b = W[17];
377
                         T1d = FMA(T1b, T1c, T1a);
378
                         T33 = FNMS(T1b, T19, T32);
379
                         T1h = W[47];
380
                         T1j = FMA(T1h, T1i, T1g);
381
                         T35 = FNMS(T1h, T1f, T34);
382
                         T1k = T1d + T1j;
383
                         T36 = T33 + T35;
384
                    }
385
                    {
386
                         E T4i, T4j, T4p, T4q;
387
                         T4i = T1j - T1d;
388
                         T4j = T1w - T1q;
389
                         T4k = FMA(KP618033988, T4j, T4i);
390
                         T61 = FNMS(KP618033988, T4i, T4j);
391
                         T4p = T35 - T33;
392
                         T4q = T3a - T38;
393
                         T4r = FMA(KP618033988, T4q, T4p);
394
                         T5Y = FNMS(KP618033988, T4p, T4q);
395
                    }
396
                    {
397
                         E T4n, T1y, T4m, T4g, T3c, T4f;
398
                         T4n = T1k - T1x;
399
                         T1y = T1k + T1x;
400
                         T4m = FNMS(KP250000000, T1y, T17);
401
                         T1z = T17 + T1y;
402
                         T5X = FNMS(KP559016994, T4n, T4m);
403
                         T4o = FMA(KP559016994, T4n, T4m);
404
                         T4g = T3b - T36;
405
                         T3c = T36 + T3b;
406
                         T4f = FNMS(KP250000000, T3c, T31);
407
                         T3d = T31 + T3c;
408
                         T60 = FMA(KP559016994, T4g, T4f);
409
                         T4h = FNMS(KP559016994, T4g, T4f);
410
                    }
411
               }
412
               {
413
                    E T1G, T3g, T1Z, T3n, T25, T3p, T26, T3q, T1M, T3i, T1S, T3k, T1T, T3l;
414
                    {
415
                         E T1C, T1F, T1D, T3f, T1B, T1E;
416
                         T1C = ri[WS(rs, 2)];
417
                         T1F = ii[WS(rs, 2)];
418
                         T1B = W[2];
419
                         T1D = T1B * T1C;
420
                         T3f = T1B * T1F;
421
                         T1E = W[3];
422
                         T1G = FMA(T1E, T1F, T1D);
423
                         T3g = FNMS(T1E, T1C, T3f);
424
                    }
425
                    {
426
                         E T1V, T1Y, T1W, T3m, T21, T24, T22, T3o, T1U, T20, T1X, T23;
427
                         T1V = ri[WS(rs, 12)];
428
                         T1Y = ii[WS(rs, 12)];
429
                         T1U = W[22];
430
                         T1W = T1U * T1V;
431
                         T3m = T1U * T1Y;
432
                         T21 = ri[WS(rs, 17)];
433
                         T24 = ii[WS(rs, 17)];
434
                         T20 = W[32];
435
                         T22 = T20 * T21;
436
                         T3o = T20 * T24;
437
                         T1X = W[23];
438
                         T1Z = FMA(T1X, T1Y, T1W);
439
                         T3n = FNMS(T1X, T1V, T3m);
440
                         T23 = W[33];
441
                         T25 = FMA(T23, T24, T22);
442
                         T3p = FNMS(T23, T21, T3o);
443
                         T26 = T1Z + T25;
444
                         T3q = T3n + T3p;
445
                    }
446
                    {
447
                         E T1I, T1L, T1J, T3h, T1O, T1R, T1P, T3j, T1H, T1N, T1K, T1Q;
448
                         T1I = ri[WS(rs, 7)];
449
                         T1L = ii[WS(rs, 7)];
450
                         T1H = W[12];
451
                         T1J = T1H * T1I;
452
                         T3h = T1H * T1L;
453
                         T1O = ri[WS(rs, 22)];
454
                         T1R = ii[WS(rs, 22)];
455
                         T1N = W[42];
456
                         T1P = T1N * T1O;
457
                         T3j = T1N * T1R;
458
                         T1K = W[13];
459
                         T1M = FMA(T1K, T1L, T1J);
460
                         T3i = FNMS(T1K, T1I, T3h);
461
                         T1Q = W[43];
462
                         T1S = FMA(T1Q, T1R, T1P);
463
                         T3k = FNMS(T1Q, T1O, T3j);
464
                         T1T = T1M + T1S;
465
                         T3l = T3i + T3k;
466
                    }
467
                    {
468
                         E T4y, T4z, T4F, T4G;
469
                         T4y = T3k - T3i;
470
                         T4z = T3n - T3p;
471
                         T4A = FNMS(KP618033988, T4z, T4y);
472
                         T5M = FMA(KP618033988, T4y, T4z);
473
                         T4F = T1S - T1M;
474
                         T4G = T25 - T1Z;
475
                         T4H = FMA(KP618033988, T4G, T4F);
476
                         T5J = FNMS(KP618033988, T4F, T4G);
477
                    }
478
                    {
479
                         E T4w, T27, T4v, T4D, T3r, T4C;
480
                         T4w = T26 - T1T;
481
                         T27 = T1T + T26;
482
                         T4v = FNMS(KP250000000, T27, T1G);
483
                         T28 = T1G + T27;
484
                         T5L = FMA(KP559016994, T4w, T4v);
485
                         T4x = FNMS(KP559016994, T4w, T4v);
486
                         T4D = T3q - T3l;
487
                         T3r = T3l + T3q;
488
                         T4C = FNMS(KP250000000, T3r, T3g);
489
                         T3s = T3g + T3r;
490
                         T5I = FMA(KP559016994, T4D, T4C);
491
                         T4E = FNMS(KP559016994, T4D, T4C);
492
                    }
493
               }
494
               {
495
                    E T3I, T3K, Tt, T2I, T2J, T2K, T3J, T2L;
496
                    {
497
                         E T3e, T3H, T1A, T2H;
498
                         T3e = T2Z - T3d;
499
                         T3H = T3s - T3G;
500
                         T3I = FMA(KP618033988, T3H, T3e);
501
                         T3K = FNMS(KP618033988, T3e, T3H);
502
                         Tt = T1 + Ts;
503
                         T1A = T11 + T1z;
504
                         T2H = T28 + T2G;
505
                         T2I = T1A + T2H;
506
                         T2J = FNMS(KP250000000, T2I, Tt);
507
                         T2K = T1A - T2H;
508
                    }
509
                    ri[0] = Tt + T2I;
510
                    T3J = FNMS(KP559016994, T2K, T2J);
511
                    ri[WS(rs, 10)] = FNMS(KP951056516, T3K, T3J);
512
                    ri[WS(rs, 15)] = FMA(KP951056516, T3K, T3J);
513
                    T2L = FMA(KP559016994, T2K, T2J);
514
                    ri[WS(rs, 20)] = FNMS(KP951056516, T3I, T2L);
515
                    ri[WS(rs, 5)] = FMA(KP951056516, T3I, T2L);
516
               }
517
               {
518
                    E T74, T76, T6Y, T6T, T6Z, T70, T75, T71;
519
                    {
520
                         E T72, T73, T6R, T6S;
521
                         T72 = T11 - T1z;
522
                         T73 = T28 - T2G;
523
                         T74 = FMA(KP618033988, T73, T72);
524
                         T76 = FNMS(KP618033988, T72, T73);
525
                         T6Y = T6W + T6X;
526
                         T6R = T2Z + T3d;
527
                         T6S = T3s + T3G;
528
                         T6T = T6R + T6S;
529
                         T6Z = FNMS(KP250000000, T6T, T6Y);
530
                         T70 = T6R - T6S;
531
                    }
532
                    ii[0] = T6T + T6Y;
533
                    T75 = FNMS(KP559016994, T70, T6Z);
534
                    ii[WS(rs, 10)] = FMA(KP951056516, T76, T75);
535
                    ii[WS(rs, 15)] = FNMS(KP951056516, T76, T75);
536
                    T71 = FMA(KP559016994, T70, T6Z);
537
                    ii[WS(rs, 5)] = FNMS(KP951056516, T74, T71);
538
                    ii[WS(rs, 20)] = FMA(KP951056516, T74, T71);
539
               }
540
               {
541
                    E T3Z, T5d, T7d, T7p, T56, T59, T7l, T7k, T7e, T7f, T7g, T4u, T4Z, T50, T5y;
542
                    E T5B, T7x, T7w, T7q, T7r, T7s, T5k, T5r, T5s, T3N, T79;
543
                    T3N = FMA(KP559016994, T3M, T3L);
544
                    T3Z = FMA(KP951056516, T3Y, T3N);
545
                    T5d = FNMS(KP951056516, T3Y, T3N);
546
                    T79 = FMA(KP559016994, T78, T77);
547
                    T7d = FNMS(KP951056516, T7c, T79);
548
                    T7p = FMA(KP951056516, T7c, T79);
549
                    {
550
                         E T4e, T54, T4Y, T58, T4t, T55, T4J, T57;
551
                         {
552
                              E T46, T4d, T4Q, T4X;
553
                              T46 = FMA(KP951056516, T45, T42);
554
                              T4d = FMA(KP951056516, T4c, T49);
555
                              T4e = FMA(KP256756360, T4d, T46);
556
                              T54 = FNMS(KP256756360, T46, T4d);
557
                              T4Q = FNMS(KP951056516, T4P, T4M);
558
                              T4X = FNMS(KP951056516, T4W, T4T);
559
                              T4Y = FMA(KP939062505, T4X, T4Q);
560
                              T58 = FNMS(KP939062505, T4Q, T4X);
561
                         }
562
                         {
563
                              E T4l, T4s, T4B, T4I;
564
                              T4l = FMA(KP951056516, T4k, T4h);
565
                              T4s = FNMS(KP951056516, T4r, T4o);
566
                              T4t = FMA(KP634619297, T4s, T4l);
567
                              T55 = FNMS(KP634619297, T4l, T4s);
568
                              T4B = FNMS(KP951056516, T4A, T4x);
569
                              T4I = FMA(KP951056516, T4H, T4E);
570
                              T4J = FMA(KP549754652, T4I, T4B);
571
                              T57 = FNMS(KP549754652, T4B, T4I);
572
                         }
573
                         T56 = FMA(KP871714437, T55, T54);
574
                         T59 = FNMS(KP831864738, T58, T57);
575
                         T7l = FNMS(KP831864738, T4Y, T4J);
576
                         T7k = FNMS(KP871714437, T4t, T4e);
577
                         T7e = FNMS(KP871714437, T55, T54);
578
                         T7f = FMA(KP831864738, T58, T57);
579
                         T7g = FMA(KP904730450, T7f, T7e);
580
                         T4u = FMA(KP871714437, T4t, T4e);
581
                         T4Z = FMA(KP831864738, T4Y, T4J);
582
                         T50 = FMA(KP904730450, T4Z, T4u);
583
                    }
584
                    {
585
                         E T5g, T5z, T5q, T5x, T5j, T5A, T5n, T5w;
586
                         {
587
                              E T5e, T5f, T5o, T5p;
588
                              T5e = FMA(KP951056516, T4P, T4M);
589
                              T5f = FMA(KP951056516, T4W, T4T);
590
                              T5g = FNMS(KP126329378, T5f, T5e);
591
                              T5z = FMA(KP126329378, T5e, T5f);
592
                              T5o = FNMS(KP951056516, T4k, T4h);
593
                              T5p = FMA(KP951056516, T4r, T4o);
594
                              T5q = FMA(KP827271945, T5p, T5o);
595
                              T5x = FNMS(KP827271945, T5o, T5p);
596
                         }
597
                         {
598
                              E T5h, T5i, T5l, T5m;
599
                              T5h = FNMS(KP951056516, T4H, T4E);
600
                              T5i = FMA(KP951056516, T4A, T4x);
601
                              T5j = FNMS(KP470564281, T5i, T5h);
602
                              T5A = FMA(KP470564281, T5h, T5i);
603
                              T5l = FNMS(KP951056516, T4c, T49);
604
                              T5m = FNMS(KP951056516, T45, T42);
605
                              T5n = FMA(KP634619297, T5m, T5l);
606
                              T5w = FNMS(KP634619297, T5l, T5m);
607
                         }
608
                         T5y = FMA(KP912575812, T5x, T5w);
609
                         T5B = FNMS(KP912018591, T5A, T5z);
610
                         T7x = FMA(KP912018591, T5j, T5g);
611
                         T7w = FMA(KP912575812, T5q, T5n);
612
                         T7q = FMA(KP912018591, T5A, T5z);
613
                         T7r = FNMS(KP912575812, T5x, T5w);
614
                         T7s = FMA(KP851038619, T7r, T7q);
615
                         T5k = FNMS(KP912018591, T5j, T5g);
616
                         T5r = FNMS(KP912575812, T5q, T5n);
617
                         T5s = FNMS(KP851038619, T5r, T5k);
618
                    }
619
                    ri[WS(rs, 1)] = FMA(KP968583161, T50, T3Z);
620
                    ii[WS(rs, 1)] = FMA(KP968583161, T7g, T7d);
621
                    ri[WS(rs, 4)] = FNMS(KP992114701, T5s, T5d);
622
                    ii[WS(rs, 4)] = FNMS(KP992114701, T7s, T7p);
623
                    {
624
                         E T5a, T5c, T53, T5b, T51, T52;
625
                         T5a = FMA(KP559154169, T59, T56);
626
                         T5c = FNMS(KP683113946, T56, T59);
627
                         T51 = FNMS(KP242145790, T50, T3Z);
628
                         T52 = FNMS(KP904730450, T4Z, T4u);
629
                         T53 = FMA(KP541454447, T52, T51);
630
                         T5b = FNMS(KP541454447, T52, T51);
631
                         ri[WS(rs, 6)] = FMA(KP921177326, T5a, T53);
632
                         ri[WS(rs, 16)] = FMA(KP833417178, T5c, T5b);
633
                         ri[WS(rs, 21)] = FNMS(KP921177326, T5a, T53);
634
                         ri[WS(rs, 11)] = FNMS(KP833417178, T5c, T5b);
635
                    }
636
                    {
637
                         E T7m, T7o, T7j, T7n, T7h, T7i;
638
                         T7m = FMA(KP559154169, T7l, T7k);
639
                         T7o = FNMS(KP683113946, T7k, T7l);
640
                         T7h = FNMS(KP242145790, T7g, T7d);
641
                         T7i = FNMS(KP904730450, T7f, T7e);
642
                         T7j = FMA(KP541454447, T7i, T7h);
643
                         T7n = FNMS(KP541454447, T7i, T7h);
644
                         ii[WS(rs, 6)] = FNMS(KP921177326, T7m, T7j);
645
                         ii[WS(rs, 16)] = FNMS(KP833417178, T7o, T7n);
646
                         ii[WS(rs, 21)] = FMA(KP921177326, T7m, T7j);
647
                         ii[WS(rs, 11)] = FMA(KP833417178, T7o, T7n);
648
                    }
649
                    {
650
                         E T5C, T5E, T5v, T5D, T5t, T5u;
651
                         T5C = FNMS(KP726211448, T5B, T5y);
652
                         T5E = FMA(KP525970792, T5y, T5B);
653
                         T5t = FMA(KP248028675, T5s, T5d);
654
                         T5u = FMA(KP851038619, T5r, T5k);
655
                         T5v = FMA(KP554608978, T5u, T5t);
656
                         T5D = FNMS(KP554608978, T5u, T5t);
657
                         ri[WS(rs, 9)] = FNMS(KP803003575, T5C, T5v);
658
                         ri[WS(rs, 19)] = FMA(KP943557151, T5E, T5D);
659
                         ri[WS(rs, 24)] = FMA(KP803003575, T5C, T5v);
660
                         ri[WS(rs, 14)] = FNMS(KP943557151, T5E, T5D);
661
                    }
662
                    {
663
                         E T7y, T7A, T7v, T7z, T7t, T7u;
664
                         T7y = FMA(KP726211448, T7x, T7w);
665
                         T7A = FNMS(KP525970792, T7w, T7x);
666
                         T7t = FMA(KP248028675, T7s, T7p);
667
                         T7u = FNMS(KP851038619, T7r, T7q);
668
                         T7v = FMA(KP554608978, T7u, T7t);
669
                         T7z = FNMS(KP554608978, T7u, T7t);
670
                         ii[WS(rs, 9)] = FNMS(KP803003575, T7y, T7v);
671
                         ii[WS(rs, 19)] = FNMS(KP943557151, T7A, T7z);
672
                         ii[WS(rs, 24)] = FMA(KP803003575, T7y, T7v);
673
                         ii[WS(rs, 14)] = FMA(KP943557151, T7A, T7z);
674
                    }
675
               }
676
               {
677
                    E T5H, T6p, T7D, T7P, T6i, T6l, T7X, T7W, T7Q, T7R, T7S, T5W, T6b, T6c, T6K;
678
                    E T6N, T7L, T7K, T7E, T7F, T7G, T6w, T6D, T6E, T5F, T7B;
679
                    T5F = FNMS(KP559016994, T3M, T3L);
680
                    T5H = FMA(KP951056516, T5G, T5F);
681
                    T6p = FNMS(KP951056516, T5G, T5F);
682
                    T7B = FNMS(KP559016994, T78, T77);
683
                    T7D = FMA(KP951056516, T7C, T7B);
684
                    T7P = FNMS(KP951056516, T7C, T7B);
685
                    {
686
                         E T5O, T6j, T6a, T6h, T5V, T6k, T63, T6g;
687
                         {
688
                              E T5K, T5N, T66, T69;
689
                              T5K = FMA(KP951056516, T5J, T5I);
690
                              T5N = FMA(KP951056516, T5M, T5L);
691
                              T5O = FMA(KP062914667, T5N, T5K);
692
                              T6j = FNMS(KP062914667, T5K, T5N);
693
                              T66 = FNMS(KP951056516, T65, T64);
694
                              T69 = FMA(KP951056516, T68, T67);
695
                              T6a = FMA(KP939062505, T69, T66);
696
                              T6h = FNMS(KP939062505, T66, T69);
697
                         }
698
                         {
699
                              E T5R, T5U, T5Z, T62;
700
                              T5R = FNMS(KP951056516, T5Q, T5P);
701
                              T5U = FNMS(KP951056516, T5T, T5S);
702
                              T5V = FNMS(KP827271945, T5U, T5R);
703
                              T6k = FMA(KP827271945, T5R, T5U);
704
                              T5Z = FNMS(KP951056516, T5Y, T5X);
705
                              T62 = FMA(KP951056516, T61, T60);
706
                              T63 = FNMS(KP126329378, T62, T5Z);
707
                              T6g = FMA(KP126329378, T5Z, T62);
708
                         }
709
                         T6i = FMA(KP734762448, T6h, T6g);
710
                         T6l = FNMS(KP772036680, T6k, T6j);
711
                         T7X = FNMS(KP772036680, T5V, T5O);
712
                         T7W = FMA(KP734762448, T6a, T63);
713
                         T7Q = FMA(KP772036680, T6k, T6j);
714
                         T7R = FNMS(KP734762448, T6h, T6g);
715
                         T7S = FMA(KP994076283, T7R, T7Q);
716
                         T5W = FMA(KP772036680, T5V, T5O);
717
                         T6b = FNMS(KP734762448, T6a, T63);
718
                         T6c = FNMS(KP994076283, T6b, T5W);
719
                    }
720
                    {
721
                         E T6s, T6L, T6C, T6J, T6v, T6M, T6z, T6I;
722
                         {
723
                              E T6q, T6r, T6A, T6B;
724
                              T6q = FMA(KP951056516, T5Q, T5P);
725
                              T6r = FMA(KP951056516, T5T, T5S);
726
                              T6s = FMA(KP062914667, T6r, T6q);
727
                              T6L = FNMS(KP062914667, T6q, T6r);
728
                              T6A = FMA(KP951056516, T65, T64);
729
                              T6B = FNMS(KP951056516, T68, T67);
730
                              T6C = FMA(KP549754652, T6B, T6A);
731
                              T6J = FNMS(KP549754652, T6A, T6B);
732
                         }
733
                         {
734
                              E T6t, T6u, T6x, T6y;
735
                              T6t = FNMS(KP951056516, T5J, T5I);
736
                              T6u = FNMS(KP951056516, T5M, T5L);
737
                              T6v = FMA(KP634619297, T6u, T6t);
738
                              T6M = FNMS(KP634619297, T6t, T6u);
739
                              T6x = FNMS(KP951056516, T61, T60);
740
                              T6y = FMA(KP951056516, T5Y, T5X);
741
                              T6z = FNMS(KP470564281, T6y, T6x);
742
                              T6I = FMA(KP470564281, T6x, T6y);
743
                         }
744
                         T6K = FMA(KP968479752, T6J, T6I);
745
                         T6N = FNMS(KP845997307, T6M, T6L);
746
                         T7L = FNMS(KP845997307, T6v, T6s);
747
                         T7K = FNMS(KP968479752, T6C, T6z);
748
                         T7E = FMA(KP845997307, T6M, T6L);
749
                         T7F = FNMS(KP968479752, T6J, T6I);
750
                         T7G = FMA(KP906616052, T7F, T7E);
751
                         T6w = FMA(KP845997307, T6v, T6s);
752
                         T6D = FMA(KP968479752, T6C, T6z);
753
                         T6E = FMA(KP906616052, T6D, T6w);
754
                    }
755
                    ri[WS(rs, 3)] = FMA(KP998026728, T6c, T5H);
756
                    ii[WS(rs, 3)] = FNMS(KP998026728, T7S, T7P);
757
                    ri[WS(rs, 2)] = FMA(KP998026728, T6E, T6p);
758
                    ii[WS(rs, 2)] = FNMS(KP998026728, T7G, T7D);
759
                    {
760
                         E T6m, T6o, T6f, T6n, T6d, T6e;
761
                         T6m = FNMS(KP621716863, T6l, T6i);
762
                         T6o = FMA(KP614372930, T6i, T6l);
763
                         T6d = FNMS(KP249506682, T6c, T5H);
764
                         T6e = FMA(KP994076283, T6b, T5W);
765
                         T6f = FNMS(KP557913902, T6e, T6d);
766
                         T6n = FMA(KP557913902, T6e, T6d);
767
                         ri[WS(rs, 23)] = FNMS(KP943557151, T6m, T6f);
768
                         ri[WS(rs, 13)] = FMA(KP949179823, T6o, T6n);
769
                         ri[WS(rs, 8)] = FMA(KP943557151, T6m, T6f);
770
                         ri[WS(rs, 18)] = FNMS(KP949179823, T6o, T6n);
771
                    }
772
                    {
773
                         E T7Y, T80, T7V, T7Z, T7T, T7U;
774
                         T7Y = FMA(KP621716863, T7X, T7W);
775
                         T80 = FNMS(KP614372930, T7W, T7X);
776
                         T7T = FMA(KP249506682, T7S, T7P);
777
                         T7U = FNMS(KP994076283, T7R, T7Q);
778
                         T7V = FMA(KP557913902, T7U, T7T);
779
                         T7Z = FNMS(KP557913902, T7U, T7T);
780
                         ii[WS(rs, 8)] = FNMS(KP943557151, T7Y, T7V);
781
                         ii[WS(rs, 18)] = FNMS(KP949179823, T80, T7Z);
782
                         ii[WS(rs, 23)] = FMA(KP943557151, T7Y, T7V);
783
                         ii[WS(rs, 13)] = FMA(KP949179823, T80, T7Z);
784
                    }
785
                    {
786
                         E T6O, T6Q, T6H, T6P, T6F, T6G;
787
                         T6O = FMA(KP681693190, T6N, T6K);
788
                         T6Q = FNMS(KP560319534, T6K, T6N);
789
                         T6F = FNMS(KP249506682, T6E, T6p);
790
                         T6G = FNMS(KP906616052, T6D, T6w);
791
                         T6H = FNMS(KP557913902, T6G, T6F);
792
                         T6P = FMA(KP557913902, T6G, T6F);
793
                         ri[WS(rs, 22)] = FNMS(KP860541664, T6O, T6H);
794
                         ri[WS(rs, 17)] = FMA(KP949179823, T6Q, T6P);
795
                         ri[WS(rs, 7)] = FMA(KP860541664, T6O, T6H);
796
                         ri[WS(rs, 12)] = FNMS(KP949179823, T6Q, T6P);
797
                    }
798
                    {
799
                         E T7M, T7O, T7J, T7N, T7H, T7I;
800
                         T7M = FMA(KP681693190, T7L, T7K);
801
                         T7O = FNMS(KP560319534, T7K, T7L);
802
                         T7H = FMA(KP249506682, T7G, T7D);
803
                         T7I = FNMS(KP906616052, T7F, T7E);
804
                         T7J = FMA(KP557913902, T7I, T7H);
805
                         T7N = FNMS(KP557913902, T7I, T7H);
806
                         ii[WS(rs, 7)] = FMA(KP860541664, T7M, T7J);
807
                         ii[WS(rs, 17)] = FMA(KP949179823, T7O, T7N);
808
                         ii[WS(rs, 22)] = FNMS(KP860541664, T7M, T7J);
809
                         ii[WS(rs, 12)] = FNMS(KP949179823, T7O, T7N);
810
                    }
811
               }
812
          }
813
     }
814
}
815

    
816
static const tw_instr twinstr[] = {
817
     {TW_FULL, 0, 25},
818
     {TW_NEXT, 1, 0}
819
};
820

    
821
static const ct_desc desc = { 25, "t1_25", twinstr, &GENUS, {84, 48, 316, 0}, 0, 0, 0 };
822

    
823
void X(codelet_t1_25) (planner *p) {
824
     X(kdft_dit_register) (p, t1_25, &desc);
825
}
826
#else
827

    
828
/* Generated by: ../../../genfft/gen_twiddle.native -compact -variables 4 -pipeline-latency 4 -n 25 -name t1_25 -include dft/scalar/t.h */
829

    
830
/*
831
 * This function contains 400 FP additions, 280 FP multiplications,
832
 * (or, 260 additions, 140 multiplications, 140 fused multiply/add),
833
 * 101 stack variables, 20 constants, and 100 memory accesses
834
 */
835
#include "dft/scalar/t.h"
836

    
837
static void t1_25(R *ri, R *ii, const R *W, stride rs, INT mb, INT me, INT ms)
838
{
839
     DK(KP998026728, +0.998026728428271561952336806863450553336905220);
840
     DK(KP062790519, +0.062790519529313376076178224565631133122484832);
841
     DK(KP425779291, +0.425779291565072648862502445744251703979973042);
842
     DK(KP904827052, +0.904827052466019527713668647932697593970413911);
843
     DK(KP992114701, +0.992114701314477831049793042785778521453036709);
844
     DK(KP125333233, +0.125333233564304245373118759816508793942918247);
845
     DK(KP637423989, +0.637423989748689710176712811676016195434917298);
846
     DK(KP770513242, +0.770513242775789230803009636396177847271667672);
847
     DK(KP684547105, +0.684547105928688673732283357621209269889519233);
848
     DK(KP728968627, +0.728968627421411523146730319055259111372571664);
849
     DK(KP481753674, +0.481753674101715274987191502872129653528542010);
850
     DK(KP876306680, +0.876306680043863587308115903922062583399064238);
851
     DK(KP844327925, +0.844327925502015078548558063966681505381659241);
852
     DK(KP535826794, +0.535826794978996618271308767867639978063575346);
853
     DK(KP248689887, +0.248689887164854788242283746006447968417567406);
854
     DK(KP968583161, +0.968583161128631119490168375464735813836012403);
855
     DK(KP587785252, +0.587785252292473129168705954639072768597652438);
856
     DK(KP951056516, +0.951056516295153572116439333379382143405698634);
857
     DK(KP250000000, +0.250000000000000000000000000000000000000000000);
858
     DK(KP559016994, +0.559016994374947424102293417182819058860154590);
859
     {
860
          INT m;
861
          for (m = mb, W = W + (mb * 48); m < me; m = m + 1, ri = ri + ms, ii = ii + ms, W = W + 48, MAKE_VOLATILE_STRIDE(50, rs)) {
862
               E T1, T6b, T2l, T6o, To, T2m, T6a, T6p, T6t, T6S, T2u, T4I, T2i, T60, T3O;
863
               E T5D, T4r, T58, T3Z, T5C, T4q, T5b, TS, T5W, T2G, T5s, T4g, T4M, T2R, T5t;
864
               E T4h, T4P, T1l, T5X, T33, T5w, T4j, T4W, T3e, T5v, T4k, T4T, T1P, T5Z, T3r;
865
               E T5z, T4o, T51, T3C, T5A, T4n, T54;
866
               {
867
                    E T6, T2o, Tb, T2p, Tc, T68, Th, T2r, Tm, T2s, Tn, T69;
868
                    T1 = ri[0];
869
                    T6b = ii[0];
870
                    {
871
                         E T3, T5, T2, T4;
872
                         T3 = ri[WS(rs, 5)];
873
                         T5 = ii[WS(rs, 5)];
874
                         T2 = W[8];
875
                         T4 = W[9];
876
                         T6 = FMA(T2, T3, T4 * T5);
877
                         T2o = FNMS(T4, T3, T2 * T5);
878
                    }
879
                    {
880
                         E T8, Ta, T7, T9;
881
                         T8 = ri[WS(rs, 20)];
882
                         Ta = ii[WS(rs, 20)];
883
                         T7 = W[38];
884
                         T9 = W[39];
885
                         Tb = FMA(T7, T8, T9 * Ta);
886
                         T2p = FNMS(T9, T8, T7 * Ta);
887
                    }
888
                    Tc = T6 + Tb;
889
                    T68 = T2o + T2p;
890
                    {
891
                         E Te, Tg, Td, Tf;
892
                         Te = ri[WS(rs, 10)];
893
                         Tg = ii[WS(rs, 10)];
894
                         Td = W[18];
895
                         Tf = W[19];
896
                         Th = FMA(Td, Te, Tf * Tg);
897
                         T2r = FNMS(Tf, Te, Td * Tg);
898
                    }
899
                    {
900
                         E Tj, Tl, Ti, Tk;
901
                         Tj = ri[WS(rs, 15)];
902
                         Tl = ii[WS(rs, 15)];
903
                         Ti = W[28];
904
                         Tk = W[29];
905
                         Tm = FMA(Ti, Tj, Tk * Tl);
906
                         T2s = FNMS(Tk, Tj, Ti * Tl);
907
                    }
908
                    Tn = Th + Tm;
909
                    T69 = T2r + T2s;
910
                    T2l = KP559016994 * (Tc - Tn);
911
                    T6o = KP559016994 * (T68 - T69);
912
                    To = Tc + Tn;
913
                    T2m = FNMS(KP250000000, To, T1);
914
                    T6a = T68 + T69;
915
                    T6p = FNMS(KP250000000, T6a, T6b);
916
                    {
917
                         E T6r, T6s, T2q, T2t;
918
                         T6r = T6 - Tb;
919
                         T6s = Th - Tm;
920
                         T6t = FMA(KP951056516, T6r, KP587785252 * T6s);
921
                         T6S = FNMS(KP587785252, T6r, KP951056516 * T6s);
922
                         T2q = T2o - T2p;
923
                         T2t = T2r - T2s;
924
                         T2u = FMA(KP951056516, T2q, KP587785252 * T2t);
925
                         T4I = FNMS(KP587785252, T2q, KP951056516 * T2t);
926
                    }
927
               }
928
               {
929
                    E T1U, T3S, T3J, T3M, T3X, T3W, T3P, T3Q, T3T, T25, T2g, T2h;
930
                    {
931
                         E T1R, T1T, T1Q, T1S;
932
                         T1R = ri[WS(rs, 3)];
933
                         T1T = ii[WS(rs, 3)];
934
                         T1Q = W[4];
935
                         T1S = W[5];
936
                         T1U = FMA(T1Q, T1R, T1S * T1T);
937
                         T3S = FNMS(T1S, T1R, T1Q * T1T);
938
                    }
939
                    {
940
                         E T1Z, T3H, T2f, T3L, T24, T3I, T2a, T3K;
941
                         {
942
                              E T1W, T1Y, T1V, T1X;
943
                              T1W = ri[WS(rs, 8)];
944
                              T1Y = ii[WS(rs, 8)];
945
                              T1V = W[14];
946
                              T1X = W[15];
947
                              T1Z = FMA(T1V, T1W, T1X * T1Y);
948
                              T3H = FNMS(T1X, T1W, T1V * T1Y);
949
                         }
950
                         {
951
                              E T2c, T2e, T2b, T2d;
952
                              T2c = ri[WS(rs, 18)];
953
                              T2e = ii[WS(rs, 18)];
954
                              T2b = W[34];
955
                              T2d = W[35];
956
                              T2f = FMA(T2b, T2c, T2d * T2e);
957
                              T3L = FNMS(T2d, T2c, T2b * T2e);
958
                         }
959
                         {
960
                              E T21, T23, T20, T22;
961
                              T21 = ri[WS(rs, 23)];
962
                              T23 = ii[WS(rs, 23)];
963
                              T20 = W[44];
964
                              T22 = W[45];
965
                              T24 = FMA(T20, T21, T22 * T23);
966
                              T3I = FNMS(T22, T21, T20 * T23);
967
                         }
968
                         {
969
                              E T27, T29, T26, T28;
970
                              T27 = ri[WS(rs, 13)];
971
                              T29 = ii[WS(rs, 13)];
972
                              T26 = W[24];
973
                              T28 = W[25];
974
                              T2a = FMA(T26, T27, T28 * T29);
975
                              T3K = FNMS(T28, T27, T26 * T29);
976
                         }
977
                         T3J = T3H - T3I;
978
                         T3M = T3K - T3L;
979
                         T3X = T2a - T2f;
980
                         T3W = T1Z - T24;
981
                         T3P = T3H + T3I;
982
                         T3Q = T3K + T3L;
983
                         T3T = T3P + T3Q;
984
                         T25 = T1Z + T24;
985
                         T2g = T2a + T2f;
986
                         T2h = T25 + T2g;
987
                    }
988
                    T2i = T1U + T2h;
989
                    T60 = T3S + T3T;
990
                    {
991
                         E T3N, T57, T3G, T56, T3E, T3F;
992
                         T3N = FMA(KP951056516, T3J, KP587785252 * T3M);
993
                         T57 = FNMS(KP587785252, T3J, KP951056516 * T3M);
994
                         T3E = KP559016994 * (T25 - T2g);
995
                         T3F = FNMS(KP250000000, T2h, T1U);
996
                         T3G = T3E + T3F;
997
                         T56 = T3F - T3E;
998
                         T3O = T3G + T3N;
999
                         T5D = T56 + T57;
1000
                         T4r = T3G - T3N;
1001
                         T58 = T56 - T57;
1002
                    }
1003
                    {
1004
                         E T3Y, T59, T3V, T5a, T3R, T3U;
1005
                         T3Y = FMA(KP951056516, T3W, KP587785252 * T3X);
1006
                         T59 = FNMS(KP587785252, T3W, KP951056516 * T3X);
1007
                         T3R = KP559016994 * (T3P - T3Q);
1008
                         T3U = FNMS(KP250000000, T3T, T3S);
1009
                         T3V = T3R + T3U;
1010
                         T5a = T3U - T3R;
1011
                         T3Z = T3V - T3Y;
1012
                         T5C = T5a - T59;
1013
                         T4q = T3Y + T3V;
1014
                         T5b = T59 + T5a;
1015
                    }
1016
               }
1017
               {
1018
                    E Tu, T2K, T2B, T2E, T2P, T2O, T2H, T2I, T2L, TF, TQ, TR;
1019
                    {
1020
                         E Tr, Tt, Tq, Ts;
1021
                         Tr = ri[WS(rs, 1)];
1022
                         Tt = ii[WS(rs, 1)];
1023
                         Tq = W[0];
1024
                         Ts = W[1];
1025
                         Tu = FMA(Tq, Tr, Ts * Tt);
1026
                         T2K = FNMS(Ts, Tr, Tq * Tt);
1027
                    }
1028
                    {
1029
                         E Tz, T2z, TP, T2D, TE, T2A, TK, T2C;
1030
                         {
1031
                              E Tw, Ty, Tv, Tx;
1032
                              Tw = ri[WS(rs, 6)];
1033
                              Ty = ii[WS(rs, 6)];
1034
                              Tv = W[10];
1035
                              Tx = W[11];
1036
                              Tz = FMA(Tv, Tw, Tx * Ty);
1037
                              T2z = FNMS(Tx, Tw, Tv * Ty);
1038
                         }
1039
                         {
1040
                              E TM, TO, TL, TN;
1041
                              TM = ri[WS(rs, 16)];
1042
                              TO = ii[WS(rs, 16)];
1043
                              TL = W[30];
1044
                              TN = W[31];
1045
                              TP = FMA(TL, TM, TN * TO);
1046
                              T2D = FNMS(TN, TM, TL * TO);
1047
                         }
1048
                         {
1049
                              E TB, TD, TA, TC;
1050
                              TB = ri[WS(rs, 21)];
1051
                              TD = ii[WS(rs, 21)];
1052
                              TA = W[40];
1053
                              TC = W[41];
1054
                              TE = FMA(TA, TB, TC * TD);
1055
                              T2A = FNMS(TC, TB, TA * TD);
1056
                         }
1057
                         {
1058
                              E TH, TJ, TG, TI;
1059
                              TH = ri[WS(rs, 11)];
1060
                              TJ = ii[WS(rs, 11)];
1061
                              TG = W[20];
1062
                              TI = W[21];
1063
                              TK = FMA(TG, TH, TI * TJ);
1064
                              T2C = FNMS(TI, TH, TG * TJ);
1065
                         }
1066
                         T2B = T2z - T2A;
1067
                         T2E = T2C - T2D;
1068
                         T2P = TK - TP;
1069
                         T2O = Tz - TE;
1070
                         T2H = T2z + T2A;
1071
                         T2I = T2C + T2D;
1072
                         T2L = T2H + T2I;
1073
                         TF = Tz + TE;
1074
                         TQ = TK + TP;
1075
                         TR = TF + TQ;
1076
                    }
1077
                    TS = Tu + TR;
1078
                    T5W = T2K + T2L;
1079
                    {
1080
                         E T2F, T4L, T2y, T4K, T2w, T2x;
1081
                         T2F = FMA(KP951056516, T2B, KP587785252 * T2E);
1082
                         T4L = FNMS(KP587785252, T2B, KP951056516 * T2E);
1083
                         T2w = KP559016994 * (TF - TQ);
1084
                         T2x = FNMS(KP250000000, TR, Tu);
1085
                         T2y = T2w + T2x;
1086
                         T4K = T2x - T2w;
1087
                         T2G = T2y + T2F;
1088
                         T5s = T4K + T4L;
1089
                         T4g = T2y - T2F;
1090
                         T4M = T4K - T4L;
1091
                    }
1092
                    {
1093
                         E T2Q, T4N, T2N, T4O, T2J, T2M;
1094
                         T2Q = FMA(KP951056516, T2O, KP587785252 * T2P);
1095
                         T4N = FNMS(KP587785252, T2O, KP951056516 * T2P);
1096
                         T2J = KP559016994 * (T2H - T2I);
1097
                         T2M = FNMS(KP250000000, T2L, T2K);
1098
                         T2N = T2J + T2M;
1099
                         T4O = T2M - T2J;
1100
                         T2R = T2N - T2Q;
1101
                         T5t = T4O - T4N;
1102
                         T4h = T2Q + T2N;
1103
                         T4P = T4N + T4O;
1104
                    }
1105
               }
1106
               {
1107
                    E TX, T37, T2Y, T31, T3c, T3b, T34, T35, T38, T18, T1j, T1k;
1108
                    {
1109
                         E TU, TW, TT, TV;
1110
                         TU = ri[WS(rs, 4)];
1111
                         TW = ii[WS(rs, 4)];
1112
                         TT = W[6];
1113
                         TV = W[7];
1114
                         TX = FMA(TT, TU, TV * TW);
1115
                         T37 = FNMS(TV, TU, TT * TW);
1116
                    }
1117
                    {
1118
                         E T12, T2W, T1i, T30, T17, T2X, T1d, T2Z;
1119
                         {
1120
                              E TZ, T11, TY, T10;
1121
                              TZ = ri[WS(rs, 9)];
1122
                              T11 = ii[WS(rs, 9)];
1123
                              TY = W[16];
1124
                              T10 = W[17];
1125
                              T12 = FMA(TY, TZ, T10 * T11);
1126
                              T2W = FNMS(T10, TZ, TY * T11);
1127
                         }
1128
                         {
1129
                              E T1f, T1h, T1e, T1g;
1130
                              T1f = ri[WS(rs, 19)];
1131
                              T1h = ii[WS(rs, 19)];
1132
                              T1e = W[36];
1133
                              T1g = W[37];
1134
                              T1i = FMA(T1e, T1f, T1g * T1h);
1135
                              T30 = FNMS(T1g, T1f, T1e * T1h);
1136
                         }
1137
                         {
1138
                              E T14, T16, T13, T15;
1139
                              T14 = ri[WS(rs, 24)];
1140
                              T16 = ii[WS(rs, 24)];
1141
                              T13 = W[46];
1142
                              T15 = W[47];
1143
                              T17 = FMA(T13, T14, T15 * T16);
1144
                              T2X = FNMS(T15, T14, T13 * T16);
1145
                         }
1146
                         {
1147
                              E T1a, T1c, T19, T1b;
1148
                              T1a = ri[WS(rs, 14)];
1149
                              T1c = ii[WS(rs, 14)];
1150
                              T19 = W[26];
1151
                              T1b = W[27];
1152
                              T1d = FMA(T19, T1a, T1b * T1c);
1153
                              T2Z = FNMS(T1b, T1a, T19 * T1c);
1154
                         }
1155
                         T2Y = T2W - T2X;
1156
                         T31 = T2Z - T30;
1157
                         T3c = T1d - T1i;
1158
                         T3b = T12 - T17;
1159
                         T34 = T2W + T2X;
1160
                         T35 = T2Z + T30;
1161
                         T38 = T34 + T35;
1162
                         T18 = T12 + T17;
1163
                         T1j = T1d + T1i;
1164
                         T1k = T18 + T1j;
1165
                    }
1166
                    T1l = TX + T1k;
1167
                    T5X = T37 + T38;
1168
                    {
1169
                         E T32, T4V, T2V, T4U, T2T, T2U;
1170
                         T32 = FMA(KP951056516, T2Y, KP587785252 * T31);
1171
                         T4V = FNMS(KP587785252, T2Y, KP951056516 * T31);
1172
                         T2T = KP559016994 * (T18 - T1j);
1173
                         T2U = FNMS(KP250000000, T1k, TX);
1174
                         T2V = T2T + T2U;
1175
                         T4U = T2U - T2T;
1176
                         T33 = T2V + T32;
1177
                         T5w = T4U + T4V;
1178
                         T4j = T2V - T32;
1179
                         T4W = T4U - T4V;
1180
                    }
1181
                    {
1182
                         E T3d, T4R, T3a, T4S, T36, T39;
1183
                         T3d = FMA(KP951056516, T3b, KP587785252 * T3c);
1184
                         T4R = FNMS(KP587785252, T3b, KP951056516 * T3c);
1185
                         T36 = KP559016994 * (T34 - T35);
1186
                         T39 = FNMS(KP250000000, T38, T37);
1187
                         T3a = T36 + T39;
1188
                         T4S = T39 - T36;
1189
                         T3e = T3a - T3d;
1190
                         T5v = T4S - T4R;
1191
                         T4k = T3d + T3a;
1192
                         T4T = T4R + T4S;
1193
                    }
1194
               }
1195
               {
1196
                    E T1r, T3v, T3m, T3p, T3A, T3z, T3s, T3t, T3w, T1C, T1N, T1O;
1197
                    {
1198
                         E T1o, T1q, T1n, T1p;
1199
                         T1o = ri[WS(rs, 2)];
1200
                         T1q = ii[WS(rs, 2)];
1201
                         T1n = W[2];
1202
                         T1p = W[3];
1203
                         T1r = FMA(T1n, T1o, T1p * T1q);
1204
                         T3v = FNMS(T1p, T1o, T1n * T1q);
1205
                    }
1206
                    {
1207
                         E T1w, T3k, T1M, T3o, T1B, T3l, T1H, T3n;
1208
                         {
1209
                              E T1t, T1v, T1s, T1u;
1210
                              T1t = ri[WS(rs, 7)];
1211
                              T1v = ii[WS(rs, 7)];
1212
                              T1s = W[12];
1213
                              T1u = W[13];
1214
                              T1w = FMA(T1s, T1t, T1u * T1v);
1215
                              T3k = FNMS(T1u, T1t, T1s * T1v);
1216
                         }
1217
                         {
1218
                              E T1J, T1L, T1I, T1K;
1219
                              T1J = ri[WS(rs, 17)];
1220
                              T1L = ii[WS(rs, 17)];
1221
                              T1I = W[32];
1222
                              T1K = W[33];
1223
                              T1M = FMA(T1I, T1J, T1K * T1L);
1224
                              T3o = FNMS(T1K, T1J, T1I * T1L);
1225
                         }
1226
                         {
1227
                              E T1y, T1A, T1x, T1z;
1228
                              T1y = ri[WS(rs, 22)];
1229
                              T1A = ii[WS(rs, 22)];
1230
                              T1x = W[42];
1231
                              T1z = W[43];
1232
                              T1B = FMA(T1x, T1y, T1z * T1A);
1233
                              T3l = FNMS(T1z, T1y, T1x * T1A);
1234
                         }
1235
                         {
1236
                              E T1E, T1G, T1D, T1F;
1237
                              T1E = ri[WS(rs, 12)];
1238
                              T1G = ii[WS(rs, 12)];
1239
                              T1D = W[22];
1240
                              T1F = W[23];
1241
                              T1H = FMA(T1D, T1E, T1F * T1G);
1242
                              T3n = FNMS(T1F, T1E, T1D * T1G);
1243
                         }
1244
                         T3m = T3k - T3l;
1245
                         T3p = T3n - T3o;
1246
                         T3A = T1H - T1M;
1247
                         T3z = T1w - T1B;
1248
                         T3s = T3k + T3l;
1249
                         T3t = T3n + T3o;
1250
                         T3w = T3s + T3t;
1251
                         T1C = T1w + T1B;
1252
                         T1N = T1H + T1M;
1253
                         T1O = T1C + T1N;
1254
                    }
1255
                    T1P = T1r + T1O;
1256
                    T5Z = T3v + T3w;
1257
                    {
1258
                         E T3q, T50, T3j, T4Z, T3h, T3i;
1259
                         T3q = FMA(KP951056516, T3m, KP587785252 * T3p);
1260
                         T50 = FNMS(KP587785252, T3m, KP951056516 * T3p);
1261
                         T3h = KP559016994 * (T1C - T1N);
1262
                         T3i = FNMS(KP250000000, T1O, T1r);
1263
                         T3j = T3h + T3i;
1264
                         T4Z = T3i - T3h;
1265
                         T3r = T3j + T3q;
1266
                         T5z = T4Z + T50;
1267
                         T4o = T3j - T3q;
1268
                         T51 = T4Z - T50;
1269
                    }
1270
                    {
1271
                         E T3B, T52, T3y, T53, T3u, T3x;
1272
                         T3B = FMA(KP951056516, T3z, KP587785252 * T3A);
1273
                         T52 = FNMS(KP587785252, T3z, KP951056516 * T3A);
1274
                         T3u = KP559016994 * (T3s - T3t);
1275
                         T3x = FNMS(KP250000000, T3w, T3v);
1276
                         T3y = T3u + T3x;
1277
                         T53 = T3x - T3u;
1278
                         T3C = T3y - T3B;
1279
                         T5A = T53 - T52;
1280
                         T4n = T3B + T3y;
1281
                         T54 = T52 + T53;
1282
                    }
1283
               }
1284
               {
1285
                    E T62, T64, Tp, T2k, T5T, T5U, T63, T5V;
1286
                    {
1287
                         E T5Y, T61, T1m, T2j;
1288
                         T5Y = T5W - T5X;
1289
                         T61 = T5Z - T60;
1290
                         T62 = FMA(KP951056516, T5Y, KP587785252 * T61);
1291
                         T64 = FNMS(KP587785252, T5Y, KP951056516 * T61);
1292
                         Tp = T1 + To;
1293
                         T1m = TS + T1l;
1294
                         T2j = T1P + T2i;
1295
                         T2k = T1m + T2j;
1296
                         T5T = KP559016994 * (T1m - T2j);
1297
                         T5U = FNMS(KP250000000, T2k, Tp);
1298
                    }
1299
                    ri[0] = Tp + T2k;
1300
                    T63 = T5U - T5T;
1301
                    ri[WS(rs, 10)] = T63 - T64;
1302
                    ri[WS(rs, 15)] = T63 + T64;
1303
                    T5V = T5T + T5U;
1304
                    ri[WS(rs, 20)] = T5V - T62;
1305
                    ri[WS(rs, 5)] = T5V + T62;
1306
               }
1307
               {
1308
                    E T6i, T6j, T6c, T67, T6d, T6e, T6k, T6f;
1309
                    {
1310
                         E T6g, T6h, T65, T66;
1311
                         T6g = TS - T1l;
1312
                         T6h = T1P - T2i;
1313
                         T6i = FMA(KP951056516, T6g, KP587785252 * T6h);
1314
                         T6j = FNMS(KP587785252, T6g, KP951056516 * T6h);
1315
                         T6c = T6a + T6b;
1316
                         T65 = T5W + T5X;
1317
                         T66 = T5Z + T60;
1318
                         T67 = T65 + T66;
1319
                         T6d = KP559016994 * (T65 - T66);
1320
                         T6e = FNMS(KP250000000, T67, T6c);
1321
                    }
1322
                    ii[0] = T67 + T6c;
1323
                    T6k = T6e - T6d;
1324
                    ii[WS(rs, 10)] = T6j + T6k;
1325
                    ii[WS(rs, 15)] = T6k - T6j;
1326
                    T6f = T6d + T6e;
1327
                    ii[WS(rs, 5)] = T6f - T6i;
1328
                    ii[WS(rs, 20)] = T6i + T6f;
1329
               }
1330
               {
1331
                    E T2v, T4f, T6u, T6G, T42, T6z, T43, T6y, T4A, T6H, T4D, T6F, T4u, T6L, T4v;
1332
                    E T6K, T48, T6v, T4b, T6n, T2n, T6q;
1333
                    T2n = T2l + T2m;
1334
                    T2v = T2n + T2u;
1335
                    T4f = T2n - T2u;
1336
                    T6q = T6o + T6p;
1337
                    T6u = T6q - T6t;
1338
                    T6G = T6t + T6q;
1339
                    {
1340
                         E T2S, T3f, T3g, T3D, T40, T41;
1341
                         T2S = FMA(KP968583161, T2G, KP248689887 * T2R);
1342
                         T3f = FMA(KP535826794, T33, KP844327925 * T3e);
1343
                         T3g = T2S + T3f;
1344
                         T3D = FMA(KP876306680, T3r, KP481753674 * T3C);
1345
                         T40 = FMA(KP728968627, T3O, KP684547105 * T3Z);
1346
                         T41 = T3D + T40;
1347
                         T42 = T3g + T41;
1348
                         T6z = T3D - T40;
1349
                         T43 = KP559016994 * (T3g - T41);
1350
                         T6y = T2S - T3f;
1351
                    }
1352
                    {
1353
                         E T4y, T4z, T6D, T4B, T4C, T6E;
1354
                         T4y = FNMS(KP844327925, T4g, KP535826794 * T4h);
1355
                         T4z = FNMS(KP637423989, T4k, KP770513242 * T4j);
1356
                         T6D = T4y + T4z;
1357
                         T4B = FMA(KP125333233, T4r, KP992114701 * T4q);
1358
                         T4C = FMA(KP904827052, T4o, KP425779291 * T4n);
1359
                         T6E = T4C + T4B;
1360
                         T4A = T4y - T4z;
1361
                         T6H = KP559016994 * (T6D + T6E);
1362
                         T4D = T4B - T4C;
1363
                         T6F = T6D - T6E;
1364
                    }
1365
                    {
1366
                         E T4i, T4l, T4m, T4p, T4s, T4t;
1367
                         T4i = FMA(KP535826794, T4g, KP844327925 * T4h);
1368
                         T4l = FMA(KP637423989, T4j, KP770513242 * T4k);
1369
                         T4m = T4i - T4l;
1370
                         T4p = FNMS(KP425779291, T4o, KP904827052 * T4n);
1371
                         T4s = FNMS(KP992114701, T4r, KP125333233 * T4q);
1372
                         T4t = T4p + T4s;
1373
                         T4u = T4m + T4t;
1374
                         T6L = T4p - T4s;
1375
                         T4v = KP559016994 * (T4m - T4t);
1376
                         T6K = T4i + T4l;
1377
                    }
1378
                    {
1379
                         E T46, T47, T6l, T49, T4a, T6m;
1380
                         T46 = FNMS(KP248689887, T2G, KP968583161 * T2R);
1381
                         T47 = FNMS(KP844327925, T33, KP535826794 * T3e);
1382
                         T6l = T46 + T47;
1383
                         T49 = FNMS(KP481753674, T3r, KP876306680 * T3C);
1384
                         T4a = FNMS(KP684547105, T3O, KP728968627 * T3Z);
1385
                         T6m = T49 + T4a;
1386
                         T48 = T46 - T47;
1387
                         T6v = KP559016994 * (T6l - T6m);
1388
                         T4b = T49 - T4a;
1389
                         T6n = T6l + T6m;
1390
                    }
1391
                    ri[WS(rs, 1)] = T2v + T42;
1392
                    ii[WS(rs, 1)] = T6n + T6u;
1393
                    ri[WS(rs, 4)] = T4f + T4u;
1394
                    ii[WS(rs, 4)] = T6F + T6G;
1395
                    {
1396
                         E T4c, T4e, T45, T4d, T44;
1397
                         T4c = FMA(KP951056516, T48, KP587785252 * T4b);
1398
                         T4e = FNMS(KP587785252, T48, KP951056516 * T4b);
1399
                         T44 = FNMS(KP250000000, T42, T2v);
1400
                         T45 = T43 + T44;
1401
                         T4d = T44 - T43;
1402
                         ri[WS(rs, 21)] = T45 - T4c;
1403
                         ri[WS(rs, 16)] = T4d + T4e;
1404
                         ri[WS(rs, 6)] = T45 + T4c;
1405
                         ri[WS(rs, 11)] = T4d - T4e;
1406
                    }
1407
                    {
1408
                         E T6A, T6B, T6x, T6C, T6w;
1409
                         T6A = FMA(KP951056516, T6y, KP587785252 * T6z);
1410
                         T6B = FNMS(KP587785252, T6y, KP951056516 * T6z);
1411
                         T6w = FNMS(KP250000000, T6n, T6u);
1412
                         T6x = T6v + T6w;
1413
                         T6C = T6w - T6v;
1414
                         ii[WS(rs, 6)] = T6x - T6A;
1415
                         ii[WS(rs, 16)] = T6C - T6B;
1416
                         ii[WS(rs, 21)] = T6A + T6x;
1417
                         ii[WS(rs, 11)] = T6B + T6C;
1418
                    }
1419
                    {
1420
                         E T4E, T4G, T4x, T4F, T4w;
1421
                         T4E = FMA(KP951056516, T4A, KP587785252 * T4D);
1422
                         T4G = FNMS(KP587785252, T4A, KP951056516 * T4D);
1423
                         T4w = FNMS(KP250000000, T4u, T4f);
1424
                         T4x = T4v + T4w;
1425
                         T4F = T4w - T4v;
1426
                         ri[WS(rs, 24)] = T4x - T4E;
1427
                         ri[WS(rs, 19)] = T4F + T4G;
1428
                         ri[WS(rs, 9)] = T4x + T4E;
1429
                         ri[WS(rs, 14)] = T4F - T4G;
1430
                    }
1431
                    {
1432
                         E T6M, T6N, T6J, T6O, T6I;
1433
                         T6M = FMA(KP951056516, T6K, KP587785252 * T6L);
1434
                         T6N = FNMS(KP587785252, T6K, KP951056516 * T6L);
1435
                         T6I = FNMS(KP250000000, T6F, T6G);
1436
                         T6J = T6H + T6I;
1437
                         T6O = T6I - T6H;
1438
                         ii[WS(rs, 9)] = T6J - T6M;
1439
                         ii[WS(rs, 19)] = T6O - T6N;
1440
                         ii[WS(rs, 24)] = T6M + T6J;
1441
                         ii[WS(rs, 14)] = T6N + T6O;
1442
                    }
1443
               }
1444
               {
1445
                    E T4J, T5r, T6U, T76, T5e, T6Z, T5f, T6Y, T5M, T77, T5P, T75, T5G, T7b, T5H;
1446
                    E T7a, T5k, T6V, T5n, T6R, T4H, T6T;
1447
                    T4H = T2m - T2l;
1448
                    T4J = T4H - T4I;
1449
                    T5r = T4H + T4I;
1450
                    T6T = T6p - T6o;
1451
                    T6U = T6S + T6T;
1452
                    T76 = T6T - T6S;
1453
                    {
1454
                         E T4Q, T4X, T4Y, T55, T5c, T5d;
1455
                         T4Q = FMA(KP876306680, T4M, KP481753674 * T4P);
1456
                         T4X = FNMS(KP425779291, T4W, KP904827052 * T4T);
1457
                         T4Y = T4Q + T4X;
1458
                         T55 = FMA(KP535826794, T51, KP844327925 * T54);
1459
                         T5c = FMA(KP062790519, T58, KP998026728 * T5b);
1460
                         T5d = T55 + T5c;
1461
                         T5e = T4Y + T5d;
1462
                         T6Z = T55 - T5c;
1463
                         T5f = KP559016994 * (T4Y - T5d);
1464
                         T6Y = T4Q - T4X;
1465
                    }
1466
                    {
1467
                         E T5K, T5L, T73, T5N, T5O, T74;
1468
                         T5K = FNMS(KP684547105, T5s, KP728968627 * T5t);
1469
                         T5L = FMA(KP125333233, T5w, KP992114701 * T5v);
1470
                         T73 = T5K - T5L;
1471
                         T5N = FNMS(KP998026728, T5z, KP062790519 * T5A);
1472
                         T5O = FMA(KP770513242, T5D, KP637423989 * T5C);
1473
                         T74 = T5N - T5O;
1474
                         T5M = T5K + T5L;
1475
                         T77 = KP559016994 * (T73 - T74);
1476
                         T5P = T5N + T5O;
1477
                         T75 = T73 + T74;
1478
                    }
1479
                    {
1480
                         E T5u, T5x, T5y, T5B, T5E, T5F;
1481
                         T5u = FMA(KP728968627, T5s, KP684547105 * T5t);
1482
                         T5x = FNMS(KP992114701, T5w, KP125333233 * T5v);
1483
                         T5y = T5u + T5x;
1484
                         T5B = FMA(KP062790519, T5z, KP998026728 * T5A);
1485
                         T5E = FNMS(KP637423989, T5D, KP770513242 * T5C);
1486
                         T5F = T5B + T5E;
1487
                         T5G = T5y + T5F;
1488
                         T7b = T5B - T5E;
1489
                         T5H = KP559016994 * (T5y - T5F);
1490
                         T7a = T5u - T5x;
1491
                    }
1492
                    {
1493
                         E T5i, T5j, T6P, T5l, T5m, T6Q;
1494
                         T5i = FNMS(KP481753674, T4M, KP876306680 * T4P);
1495
                         T5j = FMA(KP904827052, T4W, KP425779291 * T4T);
1496
                         T6P = T5i - T5j;
1497
                         T5l = FNMS(KP844327925, T51, KP535826794 * T54);
1498
                         T5m = FNMS(KP998026728, T58, KP062790519 * T5b);
1499
                         T6Q = T5l + T5m;
1500
                         T5k = T5i + T5j;
1501
                         T6V = KP559016994 * (T6P - T6Q);
1502
                         T5n = T5l - T5m;
1503
                         T6R = T6P + T6Q;
1504
                    }
1505
                    ri[WS(rs, 2)] = T4J + T5e;
1506
                    ii[WS(rs, 2)] = T6R + T6U;
1507
                    ri[WS(rs, 3)] = T5r + T5G;
1508
                    ii[WS(rs, 3)] = T75 + T76;
1509
                    {
1510
                         E T5o, T5q, T5h, T5p, T5g;
1511
                         T5o = FMA(KP951056516, T5k, KP587785252 * T5n);
1512
                         T5q = FNMS(KP587785252, T5k, KP951056516 * T5n);
1513
                         T5g = FNMS(KP250000000, T5e, T4J);
1514
                         T5h = T5f + T5g;
1515
                         T5p = T5g - T5f;
1516
                         ri[WS(rs, 22)] = T5h - T5o;
1517
                         ri[WS(rs, 17)] = T5p + T5q;
1518
                         ri[WS(rs, 7)] = T5h + T5o;
1519
                         ri[WS(rs, 12)] = T5p - T5q;
1520
                    }
1521
                    {
1522
                         E T70, T71, T6X, T72, T6W;
1523
                         T70 = FMA(KP951056516, T6Y, KP587785252 * T6Z);
1524
                         T71 = FNMS(KP587785252, T6Y, KP951056516 * T6Z);
1525
                         T6W = FNMS(KP250000000, T6R, T6U);
1526
                         T6X = T6V + T6W;
1527
                         T72 = T6W - T6V;
1528
                         ii[WS(rs, 7)] = T6X - T70;
1529
                         ii[WS(rs, 17)] = T72 - T71;
1530
                         ii[WS(rs, 22)] = T70 + T6X;
1531
                         ii[WS(rs, 12)] = T71 + T72;
1532
                    }
1533
                    {
1534
                         E T5Q, T5S, T5J, T5R, T5I;
1535
                         T5Q = FMA(KP951056516, T5M, KP587785252 * T5P);
1536
                         T5S = FNMS(KP587785252, T5M, KP951056516 * T5P);
1537
                         T5I = FNMS(KP250000000, T5G, T5r);
1538
                         T5J = T5H + T5I;
1539
                         T5R = T5I - T5H;
1540
                         ri[WS(rs, 23)] = T5J - T5Q;
1541
                         ri[WS(rs, 18)] = T5R + T5S;
1542
                         ri[WS(rs, 8)] = T5J + T5Q;
1543
                         ri[WS(rs, 13)] = T5R - T5S;
1544
                    }
1545
                    {
1546
                         E T7c, T7d, T79, T7e, T78;
1547
                         T7c = FMA(KP951056516, T7a, KP587785252 * T7b);
1548
                         T7d = FNMS(KP587785252, T7a, KP951056516 * T7b);
1549
                         T78 = FNMS(KP250000000, T75, T76);
1550
                         T79 = T77 + T78;
1551
                         T7e = T78 - T77;
1552
                         ii[WS(rs, 8)] = T79 - T7c;
1553
                         ii[WS(rs, 18)] = T7e - T7d;
1554
                         ii[WS(rs, 23)] = T7c + T79;
1555
                         ii[WS(rs, 13)] = T7d + T7e;
1556
                    }
1557
               }
1558
          }
1559
     }
1560
}
1561

    
1562
static const tw_instr twinstr[] = {
1563
     {TW_FULL, 0, 25},
1564
     {TW_NEXT, 1, 0}
1565
};
1566

    
1567
static const ct_desc desc = { 25, "t1_25", twinstr, &GENUS, {260, 140, 140, 0}, 0, 0, 0 };
1568

    
1569
void X(codelet_t1_25) (planner *p) {
1570
     X(kdft_dit_register) (p, t1_25, &desc);
1571
}
1572
#endif