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 / n1_25.c @ 167:bd3cc4d1df30

History | View | Annotate | Download (38.1 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:12 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_notw.native -fma -compact -variables 4 -pipeline-latency 4 -n 25 -name n1_25 -include dft/scalar/n.h */
29

    
30
/*
31
 * This function contains 352 FP additions, 268 FP multiplications,
32
 * (or, 84 additions, 0 multiplications, 268 fused multiply/add),
33
 * 128 stack variables, 47 constants, and 100 memory accesses
34
 */
35
#include "dft/scalar/n.h"
36

    
37
static void n1_25(const R *ri, const R *ii, R *ro, R *io, stride is, stride os, INT v, INT ivs, INT ovs)
38
{
39
     DK(KP803003575, +0.803003575438660414833440593570376004635464850);
40
     DK(KP554608978, +0.554608978404018097464974850792216217022558774);
41
     DK(KP248028675, +0.248028675328619457762448260696444630363259177);
42
     DK(KP726211448, +0.726211448929902658173535992263577167607493062);
43
     DK(KP525970792, +0.525970792408939708442463226536226366643874659);
44
     DK(KP992114701, +0.992114701314477831049793042785778521453036709);
45
     DK(KP851038619, +0.851038619207379630836264138867114231259902550);
46
     DK(KP912575812, +0.912575812670962425556968549836277086778922727);
47
     DK(KP912018591, +0.912018591466481957908415381764119056233607330);
48
     DK(KP943557151, +0.943557151597354104399655195398983005179443399);
49
     DK(KP614372930, +0.614372930789563808870829930444362096004872855);
50
     DK(KP621716863, +0.621716863012209892444754556304102309693593202);
51
     DK(KP994076283, +0.994076283785401014123185814696322018529298887);
52
     DK(KP734762448, +0.734762448793050413546343770063151342619912334);
53
     DK(KP126329378, +0.126329378446108174786050455341811215027378105);
54
     DK(KP772036680, +0.772036680810363904029489473607579825330539880);
55
     DK(KP827271945, +0.827271945972475634034355757144307982555673741);
56
     DK(KP860541664, +0.860541664367944677098261680920518816412804187);
57
     DK(KP949179823, +0.949179823508441261575555465843363271711583843);
58
     DK(KP557913902, +0.557913902031834264187699648465567037992437152);
59
     DK(KP249506682, +0.249506682107067890488084201715862638334226305);
60
     DK(KP681693190, +0.681693190061530575150324149145440022633095390);
61
     DK(KP560319534, +0.560319534973832390111614715371676131169633784);
62
     DK(KP998026728, +0.998026728428271561952336806863450553336905220);
63
     DK(KP906616052, +0.906616052148196230441134447086066874408359177);
64
     DK(KP968479752, +0.968479752739016373193524836781420152702090879);
65
     DK(KP470564281, +0.470564281212251493087595091036643380879947982);
66
     DK(KP845997307, +0.845997307939530944175097360758058292389769300);
67
     DK(KP062914667, +0.062914667253649757225485955897349402364686947);
68
     DK(KP833417178, +0.833417178328688677408962550243238843138996060);
69
     DK(KP921177326, +0.921177326965143320250447435415066029359282231);
70
     DK(KP541454447, +0.541454447536312777046285590082819509052033189);
71
     DK(KP242145790, +0.242145790282157779872542093866183953459003101);
72
     DK(KP683113946, +0.683113946453479238701949862233725244439656928);
73
     DK(KP559154169, +0.559154169276087864842202529084232643714075927);
74
     DK(KP968583161, +0.968583161128631119490168375464735813836012403);
75
     DK(KP904730450, +0.904730450839922351881287709692877908104763647);
76
     DK(KP831864738, +0.831864738706457140726048799369896829771167132);
77
     DK(KP939062505, +0.939062505817492352556001843133229685779824606);
78
     DK(KP549754652, +0.549754652192770074288023275540779861653779767);
79
     DK(KP871714437, +0.871714437527667770979999223229522602943903653);
80
     DK(KP634619297, +0.634619297544148100711287640319130485732531031);
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 i;
88
          for (i = v; i > 0; i = i - 1, ri = ri + ivs, ii = ii + ivs, ro = ro + ovs, io = io + ovs, MAKE_VOLATILE_STRIDE(100, is), MAKE_VOLATILE_STRIDE(100, os)) {
89
               E T9, T4Q, T1U, T3b, T45, T1D, T46, T3e, T1R, T4P, Ti, Tr, Ts, TY, T17;
90
               E T1E, T22, T5f, T3z, T4z, T2o, T5b, T3C, T4s, T2h, T5c, T3D, T4p, T29, T5e;
91
               E T3A, T4w, TB, TK, TL, T1h, T1q, T1F, T2x, T57, T3v, T4a, T2T, T55, T3s;
92
               E T4k, T2M, T54, T3t, T4h, T2E, T58, T3w, T4d;
93
               {
94
                    E T1, T4, T7, T8, T1T, T1S, T39, T3a;
95
                    T1 = ri[0];
96
                    {
97
                         E T2, T3, T5, T6;
98
                         T2 = ri[WS(is, 5)];
99
                         T3 = ri[WS(is, 20)];
100
                         T4 = T2 + T3;
101
                         T5 = ri[WS(is, 10)];
102
                         T6 = ri[WS(is, 15)];
103
                         T7 = T5 + T6;
104
                         T8 = T4 + T7;
105
                         T1T = T5 - T6;
106
                         T1S = T2 - T3;
107
                    }
108
                    T9 = T1 + T8;
109
                    T4Q = FNMS(KP618033988, T1S, T1T);
110
                    T1U = FMA(KP618033988, T1T, T1S);
111
                    T39 = FNMS(KP250000000, T8, T1);
112
                    T3a = T4 - T7;
113
                    T3b = FMA(KP559016994, T3a, T39);
114
                    T45 = FNMS(KP559016994, T3a, T39);
115
               }
116
               {
117
                    E T1v, T1y, T1B, T1C, T3d, T3c, T1P, T1Q;
118
                    T1v = ii[0];
119
                    {
120
                         E T1w, T1x, T1z, T1A;
121
                         T1w = ii[WS(is, 5)];
122
                         T1x = ii[WS(is, 20)];
123
                         T1y = T1w + T1x;
124
                         T1z = ii[WS(is, 10)];
125
                         T1A = ii[WS(is, 15)];
126
                         T1B = T1z + T1A;
127
                         T1C = T1y + T1B;
128
                         T3d = T1z - T1A;
129
                         T3c = T1w - T1x;
130
                    }
131
                    T1D = T1v + T1C;
132
                    T46 = FNMS(KP618033988, T3c, T3d);
133
                    T3e = FMA(KP618033988, T3d, T3c);
134
                    T1P = FNMS(KP250000000, T1C, T1v);
135
                    T1Q = T1y - T1B;
136
                    T1R = FMA(KP559016994, T1Q, T1P);
137
                    T4P = FNMS(KP559016994, T1Q, T1P);
138
               }
139
               {
140
                    E Ta, TQ, Tj, TZ, Th, T24, T1Z, T20, TX, T27, T1X, T26, Tq, T2m, T2c;
141
                    E T2l, T16, T2j, T2e, T2f;
142
                    Ta = ri[WS(is, 1)];
143
                    TQ = ii[WS(is, 1)];
144
                    Tj = ri[WS(is, 4)];
145
                    TZ = ii[WS(is, 4)];
146
                    {
147
                         E Tb, Tc, Td, Te, Tf, Tg;
148
                         Tb = ri[WS(is, 6)];
149
                         Tc = ri[WS(is, 21)];
150
                         Td = Tb + Tc;
151
                         Te = ri[WS(is, 11)];
152
                         Tf = ri[WS(is, 16)];
153
                         Tg = Te + Tf;
154
                         Th = Td + Tg;
155
                         T24 = Td - Tg;
156
                         T1Z = Tc - Tb;
157
                         T20 = Tf - Te;
158
                    }
159
                    {
160
                         E TR, TS, TT, TU, TV, TW;
161
                         TR = ii[WS(is, 6)];
162
                         TS = ii[WS(is, 21)];
163
                         TT = TR + TS;
164
                         TU = ii[WS(is, 11)];
165
                         TV = ii[WS(is, 16)];
166
                         TW = TU + TV;
167
                         TX = TT + TW;
168
                         T27 = TV - TU;
169
                         T1X = TT - TW;
170
                         T26 = TR - TS;
171
                    }
172
                    {
173
                         E Tk, Tl, Tm, Tn, To, Tp;
174
                         Tk = ri[WS(is, 9)];
175
                         Tl = ri[WS(is, 24)];
176
                         Tm = Tk + Tl;
177
                         Tn = ri[WS(is, 14)];
178
                         To = ri[WS(is, 19)];
179
                         Tp = Tn + To;
180
                         Tq = Tm + Tp;
181
                         T2m = To - Tn;
182
                         T2c = Tm - Tp;
183
                         T2l = Tl - Tk;
184
                    }
185
                    {
186
                         E T10, T11, T12, T13, T14, T15;
187
                         T10 = ii[WS(is, 9)];
188
                         T11 = ii[WS(is, 24)];
189
                         T12 = T10 + T11;
190
                         T13 = ii[WS(is, 14)];
191
                         T14 = ii[WS(is, 19)];
192
                         T15 = T13 + T14;
193
                         T16 = T12 + T15;
194
                         T2j = T15 - T12;
195
                         T2e = T11 - T10;
196
                         T2f = T14 - T13;
197
                    }
198
                    Ti = Ta + Th;
199
                    Tr = Tj + Tq;
200
                    Ts = Ti + Tr;
201
                    TY = TQ + TX;
202
                    T17 = TZ + T16;
203
                    T1E = TY + T17;
204
                    {
205
                         E T21, T4y, T1Y, T4x, T1W;
206
                         T21 = FMA(KP618033988, T20, T1Z);
207
                         T4y = FNMS(KP618033988, T1Z, T20);
208
                         T1W = FNMS(KP250000000, TX, TQ);
209
                         T1Y = FMA(KP559016994, T1X, T1W);
210
                         T4x = FNMS(KP559016994, T1X, T1W);
211
                         T22 = FMA(KP951056516, T21, T1Y);
212
                         T5f = FNMS(KP951056516, T4y, T4x);
213
                         T3z = FNMS(KP951056516, T21, T1Y);
214
                         T4z = FMA(KP951056516, T4y, T4x);
215
                    }
216
                    {
217
                         E T2n, T4r, T2k, T4q, T2i;
218
                         T2n = FMA(KP618033988, T2m, T2l);
219
                         T4r = FNMS(KP618033988, T2l, T2m);
220
                         T2i = FNMS(KP250000000, T16, TZ);
221
                         T2k = FNMS(KP559016994, T2j, T2i);
222
                         T4q = FMA(KP559016994, T2j, T2i);
223
                         T2o = FMA(KP951056516, T2n, T2k);
224
                         T5b = FNMS(KP951056516, T4r, T4q);
225
                         T3C = FNMS(KP951056516, T2n, T2k);
226
                         T4s = FMA(KP951056516, T4r, T4q);
227
                    }
228
                    {
229
                         E T2g, T4o, T2d, T4n, T2b;
230
                         T2g = FMA(KP618033988, T2f, T2e);
231
                         T4o = FNMS(KP618033988, T2e, T2f);
232
                         T2b = FMS(KP250000000, Tq, Tj);
233
                         T2d = FNMS(KP559016994, T2c, T2b);
234
                         T4n = FMA(KP559016994, T2c, T2b);
235
                         T2h = FMA(KP951056516, T2g, T2d);
236
                         T5c = FNMS(KP951056516, T4o, T4n);
237
                         T3D = FNMS(KP951056516, T2g, T2d);
238
                         T4p = FMA(KP951056516, T4o, T4n);
239
                    }
240
                    {
241
                         E T28, T4v, T25, T4u, T23;
242
                         T28 = FNMS(KP618033988, T27, T26);
243
                         T4v = FMA(KP618033988, T26, T27);
244
                         T23 = FNMS(KP250000000, Th, Ta);
245
                         T25 = FMA(KP559016994, T24, T23);
246
                         T4u = FNMS(KP559016994, T24, T23);
247
                         T29 = FMA(KP951056516, T28, T25);
248
                         T5e = FMA(KP951056516, T4v, T4u);
249
                         T3A = FNMS(KP951056516, T28, T25);
250
                         T4w = FNMS(KP951056516, T4v, T4u);
251
                    }
252
               }
253
               {
254
                    E Tt, T19, TC, T1i, TA, T2z, T2u, T2v, T1g, T2C, T2s, T2B, TJ, T2O, T2J;
255
                    E T2K, T1p, T2R, T2H, T2Q;
256
                    Tt = ri[WS(is, 2)];
257
                    T19 = ii[WS(is, 2)];
258
                    TC = ri[WS(is, 3)];
259
                    T1i = ii[WS(is, 3)];
260
                    {
261
                         E Tu, Tv, Tw, Tx, Ty, Tz;
262
                         Tu = ri[WS(is, 7)];
263
                         Tv = ri[WS(is, 22)];
264
                         Tw = Tu + Tv;
265
                         Tx = ri[WS(is, 12)];
266
                         Ty = ri[WS(is, 17)];
267
                         Tz = Tx + Ty;
268
                         TA = Tw + Tz;
269
                         T2z = Tz - Tw;
270
                         T2u = Tv - Tu;
271
                         T2v = Ty - Tx;
272
                    }
273
                    {
274
                         E T1a, T1b, T1c, T1d, T1e, T1f;
275
                         T1a = ii[WS(is, 7)];
276
                         T1b = ii[WS(is, 22)];
277
                         T1c = T1a + T1b;
278
                         T1d = ii[WS(is, 12)];
279
                         T1e = ii[WS(is, 17)];
280
                         T1f = T1d + T1e;
281
                         T1g = T1c + T1f;
282
                         T2C = T1d - T1e;
283
                         T2s = T1f - T1c;
284
                         T2B = T1b - T1a;
285
                    }
286
                    {
287
                         E TD, TE, TF, TG, TH, TI;
288
                         TD = ri[WS(is, 8)];
289
                         TE = ri[WS(is, 23)];
290
                         TF = TD + TE;
291
                         TG = ri[WS(is, 13)];
292
                         TH = ri[WS(is, 18)];
293
                         TI = TG + TH;
294
                         TJ = TF + TI;
295
                         T2O = TI - TF;
296
                         T2J = TD - TE;
297
                         T2K = TG - TH;
298
                    }
299
                    {
300
                         E T1j, T1k, T1l, T1m, T1n, T1o;
301
                         T1j = ii[WS(is, 8)];
302
                         T1k = ii[WS(is, 23)];
303
                         T1l = T1j + T1k;
304
                         T1m = ii[WS(is, 13)];
305
                         T1n = ii[WS(is, 18)];
306
                         T1o = T1m + T1n;
307
                         T1p = T1l + T1o;
308
                         T2R = T1n - T1m;
309
                         T2H = T1o - T1l;
310
                         T2Q = T1k - T1j;
311
                    }
312
                    TB = Tt + TA;
313
                    TK = TC + TJ;
314
                    TL = TB + TK;
315
                    T1h = T19 + T1g;
316
                    T1q = T1i + T1p;
317
                    T1F = T1h + T1q;
318
                    {
319
                         E T2w, T49, T2t, T48, T2r;
320
                         T2w = FMA(KP618033988, T2v, T2u);
321
                         T49 = FNMS(KP618033988, T2u, T2v);
322
                         T2r = FNMS(KP250000000, T1g, T19);
323
                         T2t = FNMS(KP559016994, T2s, T2r);
324
                         T48 = FMA(KP559016994, T2s, T2r);
325
                         T2x = FMA(KP951056516, T2w, T2t);
326
                         T57 = FNMS(KP951056516, T49, T48);
327
                         T3v = FNMS(KP951056516, T2w, T2t);
328
                         T4a = FMA(KP951056516, T49, T48);
329
                    }
330
                    {
331
                         E T2S, T4j, T2P, T4i, T2N;
332
                         T2S = FMA(KP618033988, T2R, T2Q);
333
                         T4j = FNMS(KP618033988, T2Q, T2R);
334
                         T2N = FNMS(KP250000000, TJ, TC);
335
                         T2P = FNMS(KP559016994, T2O, T2N);
336
                         T4i = FMA(KP559016994, T2O, T2N);
337
                         T2T = FNMS(KP951056516, T2S, T2P);
338
                         T55 = FMA(KP951056516, T4j, T4i);
339
                         T3s = FMA(KP951056516, T2S, T2P);
340
                         T4k = FNMS(KP951056516, T4j, T4i);
341
                    }
342
                    {
343
                         E T2L, T4g, T2I, T4f, T2G;
344
                         T2L = FMA(KP618033988, T2K, T2J);
345
                         T4g = FNMS(KP618033988, T2J, T2K);
346
                         T2G = FNMS(KP250000000, T1p, T1i);
347
                         T2I = FNMS(KP559016994, T2H, T2G);
348
                         T4f = FMA(KP559016994, T2H, T2G);
349
                         T2M = FNMS(KP951056516, T2L, T2I);
350
                         T54 = FMA(KP951056516, T4g, T4f);
351
                         T3t = FMA(KP951056516, T2L, T2I);
352
                         T4h = FNMS(KP951056516, T4g, T4f);
353
                    }
354
                    {
355
                         E T2D, T4c, T2A, T4b, T2y;
356
                         T2D = FNMS(KP618033988, T2C, T2B);
357
                         T4c = FMA(KP618033988, T2B, T2C);
358
                         T2y = FNMS(KP250000000, TA, Tt);
359
                         T2A = FNMS(KP559016994, T2z, T2y);
360
                         T4b = FMA(KP559016994, T2z, T2y);
361
                         T2E = FNMS(KP951056516, T2D, T2A);
362
                         T58 = FNMS(KP951056516, T4c, T4b);
363
                         T3w = FMA(KP951056516, T2D, T2A);
364
                         T4d = FMA(KP951056516, T4c, T4b);
365
                    }
366
               }
367
               {
368
                    E TO, TM, TN, T1s, T1u, T18, T1r, T1t, TP;
369
                    TO = Ts - TL;
370
                    TM = Ts + TL;
371
                    TN = FNMS(KP250000000, TM, T9);
372
                    T18 = TY - T17;
373
                    T1r = T1h - T1q;
374
                    T1s = FMA(KP618033988, T1r, T18);
375
                    T1u = FNMS(KP618033988, T18, T1r);
376
                    ro[0] = T9 + TM;
377
                    T1t = FNMS(KP559016994, TO, TN);
378
                    ro[WS(os, 10)] = FNMS(KP951056516, T1u, T1t);
379
                    ro[WS(os, 15)] = FMA(KP951056516, T1u, T1t);
380
                    TP = FMA(KP559016994, TO, TN);
381
                    ro[WS(os, 20)] = FNMS(KP951056516, T1s, TP);
382
                    ro[WS(os, 5)] = FMA(KP951056516, T1s, TP);
383
               }
384
               {
385
                    E T1I, T1G, T1H, T1M, T1O, T1K, T1L, T1N, T1J;
386
                    T1I = T1E - T1F;
387
                    T1G = T1E + T1F;
388
                    T1H = FNMS(KP250000000, T1G, T1D);
389
                    T1K = Ti - Tr;
390
                    T1L = TB - TK;
391
                    T1M = FMA(KP618033988, T1L, T1K);
392
                    T1O = FNMS(KP618033988, T1K, T1L);
393
                    io[0] = T1D + T1G;
394
                    T1N = FNMS(KP559016994, T1I, T1H);
395
                    io[WS(os, 10)] = FMA(KP951056516, T1O, T1N);
396
                    io[WS(os, 15)] = FNMS(KP951056516, T1O, T1N);
397
                    T1J = FMA(KP559016994, T1I, T1H);
398
                    io[WS(os, 5)] = FNMS(KP951056516, T1M, T1J);
399
                    io[WS(os, 20)] = FMA(KP951056516, T1M, T1J);
400
               }
401
               {
402
                    E T1V, T3f, T2W, T3n, T2Y, T3m, T32, T3k, T35, T3i;
403
                    T1V = FNMS(KP951056516, T1U, T1R);
404
                    T3f = FMA(KP951056516, T3e, T3b);
405
                    {
406
                         E T2a, T2p, T2q, T2F, T2U, T2V;
407
                         T2a = FNMS(KP256756360, T29, T22);
408
                         T2p = FMA(KP634619297, T2o, T2h);
409
                         T2q = FMA(KP871714437, T2p, T2a);
410
                         T2F = FNMS(KP549754652, T2E, T2x);
411
                         T2U = FNMS(KP939062505, T2T, T2M);
412
                         T2V = FMA(KP831864738, T2U, T2F);
413
                         T2W = FMA(KP904730450, T2V, T2q);
414
                         T3n = FNMS(KP831864738, T2U, T2F);
415
                         T2Y = FNMS(KP904730450, T2V, T2q);
416
                         T3m = FNMS(KP871714437, T2p, T2a);
417
                    }
418
                    {
419
                         E T30, T31, T3g, T33, T34, T3h;
420
                         T30 = FMA(KP256756360, T22, T29);
421
                         T31 = FNMS(KP634619297, T2h, T2o);
422
                         T3g = FMA(KP871714437, T31, T30);
423
                         T33 = FMA(KP549754652, T2x, T2E);
424
                         T34 = FMA(KP939062505, T2M, T2T);
425
                         T3h = FMA(KP831864738, T34, T33);
426
                         T32 = FNMS(KP871714437, T31, T30);
427
                         T3k = FNMS(KP904730450, T3h, T3g);
428
                         T35 = FNMS(KP831864738, T34, T33);
429
                         T3i = FMA(KP904730450, T3h, T3g);
430
                    }
431
                    io[WS(os, 1)] = FMA(KP968583161, T2W, T1V);
432
                    ro[WS(os, 1)] = FMA(KP968583161, T3i, T3f);
433
                    {
434
                         E T36, T38, T2Z, T37, T2X;
435
                         T36 = FMA(KP559154169, T35, T32);
436
                         T38 = FNMS(KP683113946, T32, T35);
437
                         T2X = FNMS(KP242145790, T2W, T1V);
438
                         T2Z = FMA(KP541454447, T2Y, T2X);
439
                         T37 = FNMS(KP541454447, T2Y, T2X);
440
                         io[WS(os, 6)] = FNMS(KP921177326, T36, T2Z);
441
                         io[WS(os, 11)] = FMA(KP833417178, T38, T37);
442
                         io[WS(os, 21)] = FMA(KP921177326, T36, T2Z);
443
                         io[WS(os, 16)] = FNMS(KP833417178, T38, T37);
444
                    }
445
                    {
446
                         E T3o, T3q, T3l, T3p, T3j;
447
                         T3o = FMA(KP559154169, T3n, T3m);
448
                         T3q = FNMS(KP683113946, T3m, T3n);
449
                         T3j = FNMS(KP242145790, T3i, T3f);
450
                         T3l = FMA(KP541454447, T3k, T3j);
451
                         T3p = FNMS(KP541454447, T3k, T3j);
452
                         ro[WS(os, 6)] = FMA(KP921177326, T3o, T3l);
453
                         ro[WS(os, 16)] = FMA(KP833417178, T3q, T3p);
454
                         ro[WS(os, 21)] = FNMS(KP921177326, T3o, T3l);
455
                         ro[WS(os, 11)] = FNMS(KP833417178, T3q, T3p);
456
                    }
457
               }
458
               {
459
                    E T53, T5j, T5i, T5A, T5u, T5v, T5q, T5D, T5s, T5C;
460
                    T53 = FNMS(KP951056516, T46, T45);
461
                    T5j = FMA(KP951056516, T4Q, T4P);
462
                    {
463
                         E T56, T59, T5a, T5d, T5g, T5h;
464
                         T56 = FMA(KP062914667, T55, T54);
465
                         T59 = FMA(KP634619297, T58, T57);
466
                         T5a = FMA(KP845997307, T59, T56);
467
                         T5d = FMA(KP470564281, T5c, T5b);
468
                         T5g = FMA(KP549754652, T5f, T5e);
469
                         T5h = FMA(KP968479752, T5g, T5d);
470
                         T5i = FMA(KP906616052, T5h, T5a);
471
                         T5A = FNMS(KP906616052, T5h, T5a);
472
                         T5u = FNMS(KP845997307, T59, T56);
473
                         T5v = FNMS(KP968479752, T5g, T5d);
474
                    }
475
                    {
476
                         E T5k, T5l, T5m, T5n, T5o, T5p;
477
                         T5k = FNMS(KP062914667, T54, T55);
478
                         T5l = FNMS(KP634619297, T57, T58);
479
                         T5m = FMA(KP845997307, T5l, T5k);
480
                         T5n = FNMS(KP470564281, T5b, T5c);
481
                         T5o = FNMS(KP549754652, T5e, T5f);
482
                         T5p = FMA(KP968479752, T5o, T5n);
483
                         T5q = FNMS(KP906616052, T5p, T5m);
484
                         T5D = FNMS(KP845997307, T5l, T5k);
485
                         T5s = FMA(KP906616052, T5p, T5m);
486
                         T5C = FNMS(KP968479752, T5o, T5n);
487
                    }
488
                    ro[WS(os, 2)] = FMA(KP998026728, T5i, T53);
489
                    io[WS(os, 2)] = FNMS(KP998026728, T5q, T5j);
490
                    {
491
                         E T5w, T5y, T5t, T5x, T5r;
492
                         T5w = FNMS(KP560319534, T5v, T5u);
493
                         T5y = FMA(KP681693190, T5u, T5v);
494
                         T5r = FMA(KP249506682, T5q, T5j);
495
                         T5t = FNMS(KP557913902, T5s, T5r);
496
                         T5x = FMA(KP557913902, T5s, T5r);
497
                         io[WS(os, 12)] = FNMS(KP949179823, T5w, T5t);
498
                         io[WS(os, 22)] = FNMS(KP860541664, T5y, T5x);
499
                         io[WS(os, 17)] = FMA(KP949179823, T5w, T5t);
500
                         io[WS(os, 7)] = FMA(KP860541664, T5y, T5x);
501
                    }
502
                    {
503
                         E T5E, T5G, T5B, T5F, T5z;
504
                         T5E = FNMS(KP681693190, T5D, T5C);
505
                         T5G = FMA(KP560319534, T5C, T5D);
506
                         T5z = FNMS(KP249506682, T5i, T53);
507
                         T5B = FNMS(KP557913902, T5A, T5z);
508
                         T5F = FMA(KP557913902, T5A, T5z);
509
                         ro[WS(os, 22)] = FMA(KP860541664, T5E, T5B);
510
                         ro[WS(os, 17)] = FMA(KP949179823, T5G, T5F);
511
                         ro[WS(os, 7)] = FNMS(KP860541664, T5E, T5B);
512
                         ro[WS(os, 12)] = FNMS(KP949179823, T5G, T5F);
513
                    }
514
               }
515
               {
516
                    E T47, T4R, T4C, T4Z, T4E, T4Y, T4I, T4W, T4L, T4U;
517
                    T47 = FMA(KP951056516, T46, T45);
518
                    T4R = FNMS(KP951056516, T4Q, T4P);
519
                    {
520
                         E T4e, T4l, T4m, T4t, T4A, T4B;
521
                         T4e = FMA(KP062914667, T4d, T4a);
522
                         T4l = FNMS(KP827271945, T4k, T4h);
523
                         T4m = FMA(KP772036680, T4l, T4e);
524
                         T4t = FMA(KP126329378, T4s, T4p);
525
                         T4A = FMA(KP939062505, T4z, T4w);
526
                         T4B = FMA(KP734762448, T4A, T4t);
527
                         T4C = FMA(KP994076283, T4B, T4m);
528
                         T4Z = FNMS(KP734762448, T4A, T4t);
529
                         T4E = FNMS(KP994076283, T4B, T4m);
530
                         T4Y = FNMS(KP772036680, T4l, T4e);
531
                    }
532
                    {
533
                         E T4G, T4H, T4T, T4J, T4K, T4S;
534
                         T4G = FNMS(KP126329378, T4p, T4s);
535
                         T4H = FNMS(KP939062505, T4w, T4z);
536
                         T4T = FNMS(KP734762448, T4H, T4G);
537
                         T4J = FNMS(KP062914667, T4a, T4d);
538
                         T4K = FMA(KP827271945, T4h, T4k);
539
                         T4S = FMA(KP772036680, T4K, T4J);
540
                         T4I = FMA(KP734762448, T4H, T4G);
541
                         T4W = FNMS(KP994076283, T4T, T4S);
542
                         T4L = FNMS(KP772036680, T4K, T4J);
543
                         T4U = FMA(KP994076283, T4T, T4S);
544
                    }
545
                    ro[WS(os, 3)] = FMA(KP998026728, T4C, T47);
546
                    io[WS(os, 3)] = FNMS(KP998026728, T4U, T4R);
547
                    {
548
                         E T4M, T4O, T4F, T4N, T4D;
549
                         T4M = FNMS(KP621716863, T4L, T4I);
550
                         T4O = FMA(KP614372930, T4I, T4L);
551
                         T4D = FNMS(KP249506682, T4C, T47);
552
                         T4F = FNMS(KP557913902, T4E, T4D);
553
                         T4N = FMA(KP557913902, T4E, T4D);
554
                         ro[WS(os, 23)] = FNMS(KP943557151, T4M, T4F);
555
                         ro[WS(os, 13)] = FMA(KP949179823, T4O, T4N);
556
                         ro[WS(os, 8)] = FMA(KP943557151, T4M, T4F);
557
                         ro[WS(os, 18)] = FNMS(KP949179823, T4O, T4N);
558
                    }
559
                    {
560
                         E T50, T52, T4X, T51, T4V;
561
                         T50 = FMA(KP614372930, T4Z, T4Y);
562
                         T52 = FNMS(KP621716863, T4Y, T4Z);
563
                         T4V = FMA(KP249506682, T4U, T4R);
564
                         T4X = FNMS(KP557913902, T4W, T4V);
565
                         T51 = FMA(KP557913902, T4W, T4V);
566
                         io[WS(os, 13)] = FMA(KP949179823, T50, T4X);
567
                         io[WS(os, 23)] = FNMS(KP943557151, T52, T51);
568
                         io[WS(os, 18)] = FNMS(KP949179823, T50, T4X);
569
                         io[WS(os, 8)] = FMA(KP943557151, T52, T51);
570
                    }
571
               }
572
               {
573
                    E T3r, T3H, T3G, T3Y, T3S, T3T, T3O, T41, T3Q, T40;
574
                    T3r = FNMS(KP951056516, T3e, T3b);
575
                    T3H = FMA(KP951056516, T1U, T1R);
576
                    {
577
                         E T3u, T3x, T3y, T3B, T3E, T3F;
578
                         T3u = FNMS(KP126329378, T3t, T3s);
579
                         T3x = FNMS(KP470564281, T3w, T3v);
580
                         T3y = FNMS(KP912018591, T3x, T3u);
581
                         T3B = FMA(KP634619297, T3A, T3z);
582
                         T3E = FNMS(KP827271945, T3D, T3C);
583
                         T3F = FNMS(KP912575812, T3E, T3B);
584
                         T3G = FNMS(KP851038619, T3F, T3y);
585
                         T3Y = FMA(KP851038619, T3F, T3y);
586
                         T3S = FMA(KP912018591, T3x, T3u);
587
                         T3T = FMA(KP912575812, T3E, T3B);
588
                    }
589
                    {
590
                         E T3I, T3J, T3K, T3L, T3M, T3N;
591
                         T3I = FMA(KP126329378, T3s, T3t);
592
                         T3J = FMA(KP470564281, T3v, T3w);
593
                         T3K = FMA(KP912018591, T3J, T3I);
594
                         T3L = FNMS(KP634619297, T3z, T3A);
595
                         T3M = FMA(KP827271945, T3C, T3D);
596
                         T3N = FMA(KP912575812, T3M, T3L);
597
                         T3O = FMA(KP851038619, T3N, T3K);
598
                         T41 = FNMS(KP912018591, T3J, T3I);
599
                         T3Q = FNMS(KP851038619, T3N, T3K);
600
                         T40 = FNMS(KP912575812, T3M, T3L);
601
                    }
602
                    ro[WS(os, 4)] = FNMS(KP992114701, T3G, T3r);
603
                    io[WS(os, 4)] = FNMS(KP992114701, T3O, T3H);
604
                    {
605
                         E T3U, T3W, T3R, T3V, T3P;
606
                         T3U = FNMS(KP525970792, T3T, T3S);
607
                         T3W = FMA(KP726211448, T3S, T3T);
608
                         T3P = FMA(KP248028675, T3O, T3H);
609
                         T3R = FNMS(KP554608978, T3Q, T3P);
610
                         T3V = FMA(KP554608978, T3Q, T3P);
611
                         io[WS(os, 14)] = FMA(KP943557151, T3U, T3R);
612
                         io[WS(os, 24)] = FMA(KP803003575, T3W, T3V);
613
                         io[WS(os, 19)] = FNMS(KP943557151, T3U, T3R);
614
                         io[WS(os, 9)] = FNMS(KP803003575, T3W, T3V);
615
                    }
616
                    {
617
                         E T42, T44, T3Z, T43, T3X;
618
                         T42 = FNMS(KP726211448, T41, T40);
619
                         T44 = FMA(KP525970792, T40, T41);
620
                         T3X = FMA(KP248028675, T3G, T3r);
621
                         T3Z = FMA(KP554608978, T3Y, T3X);
622
                         T43 = FNMS(KP554608978, T3Y, T3X);
623
                         ro[WS(os, 9)] = FNMS(KP803003575, T42, T3Z);
624
                         ro[WS(os, 19)] = FMA(KP943557151, T44, T43);
625
                         ro[WS(os, 24)] = FMA(KP803003575, T42, T3Z);
626
                         ro[WS(os, 14)] = FNMS(KP943557151, T44, T43);
627
                    }
628
               }
629
          }
630
     }
631
}
632

    
633
static const kdft_desc desc = { 25, "n1_25", {84, 0, 268, 0}, &GENUS, 0, 0, 0, 0 };
634

    
635
void X(codelet_n1_25) (planner *p) {
636
     X(kdft_register) (p, n1_25, &desc);
637
}
638

    
639
#else
640

    
641
/* Generated by: ../../../genfft/gen_notw.native -compact -variables 4 -pipeline-latency 4 -n 25 -name n1_25 -include dft/scalar/n.h */
642

    
643
/*
644
 * This function contains 352 FP additions, 184 FP multiplications,
645
 * (or, 260 additions, 92 multiplications, 92 fused multiply/add),
646
 * 101 stack variables, 20 constants, and 100 memory accesses
647
 */
648
#include "dft/scalar/n.h"
649

    
650
static void n1_25(const R *ri, const R *ii, R *ro, R *io, stride is, stride os, INT v, INT ivs, INT ovs)
651
{
652
     DK(KP425779291, +0.425779291565072648862502445744251703979973042);
653
     DK(KP904827052, +0.904827052466019527713668647932697593970413911);
654
     DK(KP637423989, +0.637423989748689710176712811676016195434917298);
655
     DK(KP770513242, +0.770513242775789230803009636396177847271667672);
656
     DK(KP998026728, +0.998026728428271561952336806863450553336905220);
657
     DK(KP062790519, +0.062790519529313376076178224565631133122484832);
658
     DK(KP992114701, +0.992114701314477831049793042785778521453036709);
659
     DK(KP125333233, +0.125333233564304245373118759816508793942918247);
660
     DK(KP684547105, +0.684547105928688673732283357621209269889519233);
661
     DK(KP728968627, +0.728968627421411523146730319055259111372571664);
662
     DK(KP481753674, +0.481753674101715274987191502872129653528542010);
663
     DK(KP876306680, +0.876306680043863587308115903922062583399064238);
664
     DK(KP844327925, +0.844327925502015078548558063966681505381659241);
665
     DK(KP535826794, +0.535826794978996618271308767867639978063575346);
666
     DK(KP248689887, +0.248689887164854788242283746006447968417567406);
667
     DK(KP968583161, +0.968583161128631119490168375464735813836012403);
668
     DK(KP250000000, +0.250000000000000000000000000000000000000000000);
669
     DK(KP559016994, +0.559016994374947424102293417182819058860154590);
670
     DK(KP587785252, +0.587785252292473129168705954639072768597652438);
671
     DK(KP951056516, +0.951056516295153572116439333379382143405698634);
672
     {
673
          INT i;
674
          for (i = v; i > 0; i = i - 1, ri = ri + ivs, ii = ii + ivs, ro = ro + ovs, io = io + ovs, MAKE_VOLATILE_STRIDE(100, is), MAKE_VOLATILE_STRIDE(100, os)) {
675
               E T9, T4u, T2T, TP, T3H, TW, T5y, T3I, T2Q, T4v, Ti, Tr, Ts, T5m, T5n;
676
               E T5v, T18, T4G, T34, T3M, T1G, T4J, T38, T3T, T1v, T4K, T37, T3W, T1j, T4H;
677
               E T35, T3P, TB, TK, TL, T5p, T5q, T5w, T1T, T4N, T3c, T41, T2r, T4Q, T3e;
678
               E T4b, T2g, T4R, T3f, T48, T24, T4O, T3b, T44;
679
               {
680
                    E T1, T4, T7, T8, T2S, T2R, TN, TO;
681
                    T1 = ri[0];
682
                    {
683
                         E T2, T3, T5, T6;
684
                         T2 = ri[WS(is, 5)];
685
                         T3 = ri[WS(is, 20)];
686
                         T4 = T2 + T3;
687
                         T5 = ri[WS(is, 10)];
688
                         T6 = ri[WS(is, 15)];
689
                         T7 = T5 + T6;
690
                         T8 = T4 + T7;
691
                         T2S = T5 - T6;
692
                         T2R = T2 - T3;
693
                    }
694
                    T9 = T1 + T8;
695
                    T4u = FNMS(KP587785252, T2R, KP951056516 * T2S);
696
                    T2T = FMA(KP951056516, T2R, KP587785252 * T2S);
697
                    TN = KP559016994 * (T4 - T7);
698
                    TO = FNMS(KP250000000, T8, T1);
699
                    TP = TN + TO;
700
                    T3H = TO - TN;
701
               }
702
               {
703
                    E T2N, T2K, T2L, TS, T2O, TV, T2M, T2P;
704
                    T2N = ii[0];
705
                    {
706
                         E TQ, TR, TT, TU;
707
                         TQ = ii[WS(is, 5)];
708
                         TR = ii[WS(is, 20)];
709
                         T2K = TQ + TR;
710
                         TT = ii[WS(is, 10)];
711
                         TU = ii[WS(is, 15)];
712
                         T2L = TT + TU;
713
                         TS = TQ - TR;
714
                         T2O = T2K + T2L;
715
                         TV = TT - TU;
716
                    }
717
                    TW = FMA(KP951056516, TS, KP587785252 * TV);
718
                    T5y = T2N + T2O;
719
                    T3I = FNMS(KP587785252, TS, KP951056516 * TV);
720
                    T2M = KP559016994 * (T2K - T2L);
721
                    T2P = FNMS(KP250000000, T2O, T2N);
722
                    T2Q = T2M + T2P;
723
                    T4v = T2P - T2M;
724
               }
725
               {
726
                    E Ta, T1c, Tj, T1z, Th, T1h, TY, T1g, T13, T1d, T16, T1b, Tq, T1E, T1l;
727
                    E T1D, T1q, T1A, T1t, T1y;
728
                    Ta = ri[WS(is, 1)];
729
                    T1c = ii[WS(is, 1)];
730
                    Tj = ri[WS(is, 4)];
731
                    T1z = ii[WS(is, 4)];
732
                    {
733
                         E Tb, Tc, Td, Te, Tf, Tg;
734
                         Tb = ri[WS(is, 6)];
735
                         Tc = ri[WS(is, 21)];
736
                         Td = Tb + Tc;
737
                         Te = ri[WS(is, 11)];
738
                         Tf = ri[WS(is, 16)];
739
                         Tg = Te + Tf;
740
                         Th = Td + Tg;
741
                         T1h = Te - Tf;
742
                         TY = KP559016994 * (Td - Tg);
743
                         T1g = Tb - Tc;
744
                    }
745
                    {
746
                         E T11, T12, T19, T14, T15, T1a;
747
                         T11 = ii[WS(is, 6)];
748
                         T12 = ii[WS(is, 21)];
749
                         T19 = T11 + T12;
750
                         T14 = ii[WS(is, 11)];
751
                         T15 = ii[WS(is, 16)];
752
                         T1a = T14 + T15;
753
                         T13 = T11 - T12;
754
                         T1d = T19 + T1a;
755
                         T16 = T14 - T15;
756
                         T1b = KP559016994 * (T19 - T1a);
757
                    }
758
                    {
759
                         E Tk, Tl, Tm, Tn, To, Tp;
760
                         Tk = ri[WS(is, 9)];
761
                         Tl = ri[WS(is, 24)];
762
                         Tm = Tk + Tl;
763
                         Tn = ri[WS(is, 14)];
764
                         To = ri[WS(is, 19)];
765
                         Tp = Tn + To;
766
                         Tq = Tm + Tp;
767
                         T1E = Tn - To;
768
                         T1l = KP559016994 * (Tm - Tp);
769
                         T1D = Tk - Tl;
770
                    }
771
                    {
772
                         E T1o, T1p, T1w, T1r, T1s, T1x;
773
                         T1o = ii[WS(is, 9)];
774
                         T1p = ii[WS(is, 24)];
775
                         T1w = T1o + T1p;
776
                         T1r = ii[WS(is, 14)];
777
                         T1s = ii[WS(is, 19)];
778
                         T1x = T1r + T1s;
779
                         T1q = T1o - T1p;
780
                         T1A = T1w + T1x;
781
                         T1t = T1r - T1s;
782
                         T1y = KP559016994 * (T1w - T1x);
783
                    }
784
                    Ti = Ta + Th;
785
                    Tr = Tj + Tq;
786
                    Ts = Ti + Tr;
787
                    T5m = T1c + T1d;
788
                    T5n = T1z + T1A;
789
                    T5v = T5m + T5n;
790
                    {
791
                         E T17, T3L, T10, T3K, TZ;
792
                         T17 = FMA(KP951056516, T13, KP587785252 * T16);
793
                         T3L = FNMS(KP587785252, T13, KP951056516 * T16);
794
                         TZ = FNMS(KP250000000, Th, Ta);
795
                         T10 = TY + TZ;
796
                         T3K = TZ - TY;
797
                         T18 = T10 + T17;
798
                         T4G = T3K + T3L;
799
                         T34 = T10 - T17;
800
                         T3M = T3K - T3L;
801
                    }
802
                    {
803
                         E T1F, T3R, T1C, T3S, T1B;
804
                         T1F = FMA(KP951056516, T1D, KP587785252 * T1E);
805
                         T3R = FNMS(KP587785252, T1D, KP951056516 * T1E);
806
                         T1B = FNMS(KP250000000, T1A, T1z);
807
                         T1C = T1y + T1B;
808
                         T3S = T1B - T1y;
809
                         T1G = T1C - T1F;
810
                         T4J = T3S - T3R;
811
                         T38 = T1F + T1C;
812
                         T3T = T3R + T3S;
813
                    }
814
                    {
815
                         E T1u, T3V, T1n, T3U, T1m;
816
                         T1u = FMA(KP951056516, T1q, KP587785252 * T1t);
817
                         T3V = FNMS(KP587785252, T1q, KP951056516 * T1t);
818
                         T1m = FNMS(KP250000000, Tq, Tj);
819
                         T1n = T1l + T1m;
820
                         T3U = T1m - T1l;
821
                         T1v = T1n + T1u;
822
                         T4K = T3U + T3V;
823
                         T37 = T1n - T1u;
824
                         T3W = T3U - T3V;
825
                    }
826
                    {
827
                         E T1i, T3N, T1f, T3O, T1e;
828
                         T1i = FMA(KP951056516, T1g, KP587785252 * T1h);
829
                         T3N = FNMS(KP587785252, T1g, KP951056516 * T1h);
830
                         T1e = FNMS(KP250000000, T1d, T1c);
831
                         T1f = T1b + T1e;
832
                         T3O = T1e - T1b;
833
                         T1j = T1f - T1i;
834
                         T4H = T3O - T3N;
835
                         T35 = T1i + T1f;
836
                         T3P = T3N + T3O;
837
                    }
838
               }
839
               {
840
                    E Tt, T1X, TC, T2k, TA, T22, T1J, T21, T1O, T1Y, T1R, T1W, TJ, T2p, T26;
841
                    E T2o, T2b, T2l, T2e, T2j;
842
                    Tt = ri[WS(is, 2)];
843
                    T1X = ii[WS(is, 2)];
844
                    TC = ri[WS(is, 3)];
845
                    T2k = ii[WS(is, 3)];
846
                    {
847
                         E Tu, Tv, Tw, Tx, Ty, Tz;
848
                         Tu = ri[WS(is, 7)];
849
                         Tv = ri[WS(is, 22)];
850
                         Tw = Tu + Tv;
851
                         Tx = ri[WS(is, 12)];
852
                         Ty = ri[WS(is, 17)];
853
                         Tz = Tx + Ty;
854
                         TA = Tw + Tz;
855
                         T22 = Tx - Ty;
856
                         T1J = KP559016994 * (Tw - Tz);
857
                         T21 = Tu - Tv;
858
                    }
859
                    {
860
                         E T1M, T1N, T1U, T1P, T1Q, T1V;
861
                         T1M = ii[WS(is, 7)];
862
                         T1N = ii[WS(is, 22)];
863
                         T1U = T1M + T1N;
864
                         T1P = ii[WS(is, 12)];
865
                         T1Q = ii[WS(is, 17)];
866
                         T1V = T1P + T1Q;
867
                         T1O = T1M - T1N;
868
                         T1Y = T1U + T1V;
869
                         T1R = T1P - T1Q;
870
                         T1W = KP559016994 * (T1U - T1V);
871
                    }
872
                    {
873
                         E TD, TE, TF, TG, TH, TI;
874
                         TD = ri[WS(is, 8)];
875
                         TE = ri[WS(is, 23)];
876
                         TF = TD + TE;
877
                         TG = ri[WS(is, 13)];
878
                         TH = ri[WS(is, 18)];
879
                         TI = TG + TH;
880
                         TJ = TF + TI;
881
                         T2p = TG - TH;
882
                         T26 = KP559016994 * (TF - TI);
883
                         T2o = TD - TE;
884
                    }
885
                    {
886
                         E T29, T2a, T2h, T2c, T2d, T2i;
887
                         T29 = ii[WS(is, 8)];
888
                         T2a = ii[WS(is, 23)];
889
                         T2h = T29 + T2a;
890
                         T2c = ii[WS(is, 13)];
891
                         T2d = ii[WS(is, 18)];
892
                         T2i = T2c + T2d;
893
                         T2b = T29 - T2a;
894
                         T2l = T2h + T2i;
895
                         T2e = T2c - T2d;
896
                         T2j = KP559016994 * (T2h - T2i);
897
                    }
898
                    TB = Tt + TA;
899
                    TK = TC + TJ;
900
                    TL = TB + TK;
901
                    T5p = T1X + T1Y;
902
                    T5q = T2k + T2l;
903
                    T5w = T5p + T5q;
904
                    {
905
                         E T1S, T40, T1L, T3Z, T1K;
906
                         T1S = FMA(KP951056516, T1O, KP587785252 * T1R);
907
                         T40 = FNMS(KP587785252, T1O, KP951056516 * T1R);
908
                         T1K = FNMS(KP250000000, TA, Tt);
909
                         T1L = T1J + T1K;
910
                         T3Z = T1K - T1J;
911
                         T1T = T1L + T1S;
912
                         T4N = T3Z + T40;
913
                         T3c = T1L - T1S;
914
                         T41 = T3Z - T40;
915
                    }
916
                    {
917
                         E T2q, T49, T2n, T4a, T2m;
918
                         T2q = FMA(KP951056516, T2o, KP587785252 * T2p);
919
                         T49 = FNMS(KP587785252, T2o, KP951056516 * T2p);
920
                         T2m = FNMS(KP250000000, T2l, T2k);
921
                         T2n = T2j + T2m;
922
                         T4a = T2m - T2j;
923
                         T2r = T2n - T2q;
924
                         T4Q = T4a - T49;
925
                         T3e = T2q + T2n;
926
                         T4b = T49 + T4a;
927
                    }
928
                    {
929
                         E T2f, T47, T28, T46, T27;
930
                         T2f = FMA(KP951056516, T2b, KP587785252 * T2e);
931
                         T47 = FNMS(KP587785252, T2b, KP951056516 * T2e);
932
                         T27 = FNMS(KP250000000, TJ, TC);
933
                         T28 = T26 + T27;
934
                         T46 = T27 - T26;
935
                         T2g = T28 + T2f;
936
                         T4R = T46 + T47;
937
                         T3f = T28 - T2f;
938
                         T48 = T46 - T47;
939
                    }
940
                    {
941
                         E T23, T42, T20, T43, T1Z;
942
                         T23 = FMA(KP951056516, T21, KP587785252 * T22);
943
                         T42 = FNMS(KP587785252, T21, KP951056516 * T22);
944
                         T1Z = FNMS(KP250000000, T1Y, T1X);
945
                         T20 = T1W + T1Z;
946
                         T43 = T1Z - T1W;
947
                         T24 = T20 - T23;
948
                         T4O = T43 - T42;
949
                         T3b = T23 + T20;
950
                         T44 = T42 + T43;
951
                    }
952
               }
953
               {
954
                    E T5j, TM, T5k, T5s, T5u, T5o, T5r, T5t, T5l;
955
                    T5j = KP559016994 * (Ts - TL);
956
                    TM = Ts + TL;
957
                    T5k = FNMS(KP250000000, TM, T9);
958
                    T5o = T5m - T5n;
959
                    T5r = T5p - T5q;
960
                    T5s = FMA(KP951056516, T5o, KP587785252 * T5r);
961
                    T5u = FNMS(KP587785252, T5o, KP951056516 * T5r);
962
                    ro[0] = T9 + TM;
963
                    T5t = T5k - T5j;
964
                    ro[WS(os, 10)] = T5t - T5u;
965
                    ro[WS(os, 15)] = T5t + T5u;
966
                    T5l = T5j + T5k;
967
                    ro[WS(os, 20)] = T5l - T5s;
968
                    ro[WS(os, 5)] = T5l + T5s;
969
               }
970
               {
971
                    E T5x, T5z, T5A, T5E, T5F, T5C, T5D, T5G, T5B;
972
                    T5x = KP559016994 * (T5v - T5w);
973
                    T5z = T5v + T5w;
974
                    T5A = FNMS(KP250000000, T5z, T5y);
975
                    T5C = Ti - Tr;
976
                    T5D = TB - TK;
977
                    T5E = FMA(KP951056516, T5C, KP587785252 * T5D);
978
                    T5F = FNMS(KP587785252, T5C, KP951056516 * T5D);
979
                    io[0] = T5y + T5z;
980
                    T5G = T5A - T5x;
981
                    io[WS(os, 10)] = T5F + T5G;
982
                    io[WS(os, 15)] = T5G - T5F;
983
                    T5B = T5x + T5A;
984
                    io[WS(os, 5)] = T5B - T5E;
985
                    io[WS(os, 20)] = T5E + T5B;
986
               }
987
               {
988
                    E TX, T2U, T2u, T2Z, T2v, T2Y, T2A, T2V, T2D, T2J;
989
                    TX = TP + TW;
990
                    T2U = T2Q - T2T;
991
                    {
992
                         E T1k, T1H, T1I, T25, T2s, T2t;
993
                         T1k = FMA(KP968583161, T18, KP248689887 * T1j);
994
                         T1H = FMA(KP535826794, T1v, KP844327925 * T1G);
995
                         T1I = T1k + T1H;
996
                         T25 = FMA(KP876306680, T1T, KP481753674 * T24);
997
                         T2s = FMA(KP728968627, T2g, KP684547105 * T2r);
998
                         T2t = T25 + T2s;
999
                         T2u = T1I + T2t;
1000
                         T2Z = T25 - T2s;
1001
                         T2v = KP559016994 * (T1I - T2t);
1002
                         T2Y = T1k - T1H;
1003
                    }
1004
                    {
1005
                         E T2y, T2z, T2H, T2B, T2C, T2I;
1006
                         T2y = FNMS(KP248689887, T18, KP968583161 * T1j);
1007
                         T2z = FNMS(KP844327925, T1v, KP535826794 * T1G);
1008
                         T2H = T2y + T2z;
1009
                         T2B = FNMS(KP481753674, T1T, KP876306680 * T24);
1010
                         T2C = FNMS(KP684547105, T2g, KP728968627 * T2r);
1011
                         T2I = T2B + T2C;
1012
                         T2A = T2y - T2z;
1013
                         T2V = T2H + T2I;
1014
                         T2D = T2B - T2C;
1015
                         T2J = KP559016994 * (T2H - T2I);
1016
                    }
1017
                    ro[WS(os, 1)] = TX + T2u;
1018
                    io[WS(os, 1)] = T2U + T2V;
1019
                    {
1020
                         E T2E, T2G, T2x, T2F, T2w;
1021
                         T2E = FMA(KP951056516, T2A, KP587785252 * T2D);
1022
                         T2G = FNMS(KP587785252, T2A, KP951056516 * T2D);
1023
                         T2w = FNMS(KP250000000, T2u, TX);
1024
                         T2x = T2v + T2w;
1025
                         T2F = T2w - T2v;
1026
                         ro[WS(os, 21)] = T2x - T2E;
1027
                         ro[WS(os, 16)] = T2F + T2G;
1028
                         ro[WS(os, 6)] = T2x + T2E;
1029
                         ro[WS(os, 11)] = T2F - T2G;
1030
                    }
1031
                    {
1032
                         E T30, T31, T2X, T32, T2W;
1033
                         T30 = FMA(KP951056516, T2Y, KP587785252 * T2Z);
1034
                         T31 = FNMS(KP587785252, T2Y, KP951056516 * T2Z);
1035
                         T2W = FNMS(KP250000000, T2V, T2U);
1036
                         T2X = T2J + T2W;
1037
                         T32 = T2W - T2J;
1038
                         io[WS(os, 6)] = T2X - T30;
1039
                         io[WS(os, 16)] = T32 - T31;
1040
                         io[WS(os, 21)] = T30 + T2X;
1041
                         io[WS(os, 11)] = T31 + T32;
1042
                    }
1043
               }
1044
               {
1045
                    E T4F, T52, T4U, T5b, T56, T57, T51, T5f, T53, T5e;
1046
                    T4F = T3H + T3I;
1047
                    T52 = T4v - T4u;
1048
                    {
1049
                         E T4I, T4L, T4M, T4P, T4S, T4T;
1050
                         T4I = FMA(KP728968627, T4G, KP684547105 * T4H);
1051
                         T4L = FNMS(KP992114701, T4K, KP125333233 * T4J);
1052
                         T4M = T4I + T4L;
1053
                         T4P = FMA(KP062790519, T4N, KP998026728 * T4O);
1054
                         T4S = FNMS(KP637423989, T4R, KP770513242 * T4Q);
1055
                         T4T = T4P + T4S;
1056
                         T4U = T4M + T4T;
1057
                         T5b = KP559016994 * (T4M - T4T);
1058
                         T56 = T4I - T4L;
1059
                         T57 = T4P - T4S;
1060
                    }
1061
                    {
1062
                         E T4V, T4W, T4X, T4Y, T4Z, T50;
1063
                         T4V = FNMS(KP684547105, T4G, KP728968627 * T4H);
1064
                         T4W = FMA(KP125333233, T4K, KP992114701 * T4J);
1065
                         T4X = T4V - T4W;
1066
                         T4Y = FNMS(KP998026728, T4N, KP062790519 * T4O);
1067
                         T4Z = FMA(KP770513242, T4R, KP637423989 * T4Q);
1068
                         T50 = T4Y - T4Z;
1069
                         T51 = KP559016994 * (T4X - T50);
1070
                         T5f = T4Y + T4Z;
1071
                         T53 = T4X + T50;
1072
                         T5e = T4V + T4W;
1073
                    }
1074
                    ro[WS(os, 3)] = T4F + T4U;
1075
                    io[WS(os, 3)] = T52 + T53;
1076
                    {
1077
                         E T58, T59, T55, T5a, T54;
1078
                         T58 = FMA(KP951056516, T56, KP587785252 * T57);
1079
                         T59 = FNMS(KP587785252, T56, KP951056516 * T57);
1080
                         T54 = FNMS(KP250000000, T53, T52);
1081
                         T55 = T51 + T54;
1082
                         T5a = T54 - T51;
1083
                         io[WS(os, 8)] = T55 - T58;
1084
                         io[WS(os, 18)] = T5a - T59;
1085
                         io[WS(os, 23)] = T58 + T55;
1086
                         io[WS(os, 13)] = T59 + T5a;
1087
                    }
1088
                    {
1089
                         E T5g, T5i, T5d, T5h, T5c;
1090
                         T5g = FMA(KP951056516, T5e, KP587785252 * T5f);
1091
                         T5i = FNMS(KP587785252, T5e, KP951056516 * T5f);
1092
                         T5c = FNMS(KP250000000, T4U, T4F);
1093
                         T5d = T5b + T5c;
1094
                         T5h = T5c - T5b;
1095
                         ro[WS(os, 23)] = T5d - T5g;
1096
                         ro[WS(os, 18)] = T5h + T5i;
1097
                         ro[WS(os, 8)] = T5d + T5g;
1098
                         ro[WS(os, 13)] = T5h - T5i;
1099
                    }
1100
               }
1101
               {
1102
                    E T3J, T4w, T4e, T4B, T4f, T4A, T4k, T4x, T4n, T4t;
1103
                    T3J = T3H - T3I;
1104
                    T4w = T4u + T4v;
1105
                    {
1106
                         E T3Q, T3X, T3Y, T45, T4c, T4d;
1107
                         T3Q = FMA(KP876306680, T3M, KP481753674 * T3P);
1108
                         T3X = FNMS(KP425779291, T3W, KP904827052 * T3T);
1109
                         T3Y = T3Q + T3X;
1110
                         T45 = FMA(KP535826794, T41, KP844327925 * T44);
1111
                         T4c = FMA(KP062790519, T48, KP998026728 * T4b);
1112
                         T4d = T45 + T4c;
1113
                         T4e = T3Y + T4d;
1114
                         T4B = T45 - T4c;
1115
                         T4f = KP559016994 * (T3Y - T4d);
1116
                         T4A = T3Q - T3X;
1117
                    }
1118
                    {
1119
                         E T4i, T4j, T4r, T4l, T4m, T4s;
1120
                         T4i = FNMS(KP481753674, T3M, KP876306680 * T3P);
1121
                         T4j = FMA(KP904827052, T3W, KP425779291 * T3T);
1122
                         T4r = T4i - T4j;
1123
                         T4l = FNMS(KP844327925, T41, KP535826794 * T44);
1124
                         T4m = FNMS(KP998026728, T48, KP062790519 * T4b);
1125
                         T4s = T4l + T4m;
1126
                         T4k = T4i + T4j;
1127
                         T4x = T4r + T4s;
1128
                         T4n = T4l - T4m;
1129
                         T4t = KP559016994 * (T4r - T4s);
1130
                    }
1131
                    ro[WS(os, 2)] = T3J + T4e;
1132
                    io[WS(os, 2)] = T4w + T4x;
1133
                    {
1134
                         E T4o, T4q, T4h, T4p, T4g;
1135
                         T4o = FMA(KP951056516, T4k, KP587785252 * T4n);
1136
                         T4q = FNMS(KP587785252, T4k, KP951056516 * T4n);
1137
                         T4g = FNMS(KP250000000, T4e, T3J);
1138
                         T4h = T4f + T4g;
1139
                         T4p = T4g - T4f;
1140
                         ro[WS(os, 22)] = T4h - T4o;
1141
                         ro[WS(os, 17)] = T4p + T4q;
1142
                         ro[WS(os, 7)] = T4h + T4o;
1143
                         ro[WS(os, 12)] = T4p - T4q;
1144
                    }
1145
                    {
1146
                         E T4C, T4D, T4z, T4E, T4y;
1147
                         T4C = FMA(KP951056516, T4A, KP587785252 * T4B);
1148
                         T4D = FNMS(KP587785252, T4A, KP951056516 * T4B);
1149
                         T4y = FNMS(KP250000000, T4x, T4w);
1150
                         T4z = T4t + T4y;
1151
                         T4E = T4y - T4t;
1152
                         io[WS(os, 7)] = T4z - T4C;
1153
                         io[WS(os, 17)] = T4E - T4D;
1154
                         io[WS(os, 22)] = T4C + T4z;
1155
                         io[WS(os, 12)] = T4D + T4E;
1156
                    }
1157
               }
1158
               {
1159
                    E T33, T3j, T3i, T3z, T3r, T3s, T3q, T3D, T3v, T3C;
1160
                    T33 = TP - TW;
1161
                    T3j = T2T + T2Q;
1162
                    {
1163
                         E T36, T39, T3a, T3d, T3g, T3h;
1164
                         T36 = FMA(KP535826794, T34, KP844327925 * T35);
1165
                         T39 = FMA(KP637423989, T37, KP770513242 * T38);
1166
                         T3a = T36 - T39;
1167
                         T3d = FNMS(KP425779291, T3c, KP904827052 * T3b);
1168
                         T3g = FNMS(KP992114701, T3f, KP125333233 * T3e);
1169
                         T3h = T3d + T3g;
1170
                         T3i = T3a + T3h;
1171
                         T3z = KP559016994 * (T3a - T3h);
1172
                         T3r = T3d - T3g;
1173
                         T3s = T36 + T39;
1174
                    }
1175
                    {
1176
                         E T3k, T3l, T3m, T3n, T3o, T3p;
1177
                         T3k = FNMS(KP844327925, T34, KP535826794 * T35);
1178
                         T3l = FNMS(KP637423989, T38, KP770513242 * T37);
1179
                         T3m = T3k + T3l;
1180
                         T3n = FMA(KP904827052, T3c, KP425779291 * T3b);
1181
                         T3o = FMA(KP125333233, T3f, KP992114701 * T3e);
1182
                         T3p = T3n + T3o;
1183
                         T3q = T3m - T3p;
1184
                         T3D = T3o - T3n;
1185
                         T3v = KP559016994 * (T3m + T3p);
1186
                         T3C = T3k - T3l;
1187
                    }
1188
                    ro[WS(os, 4)] = T33 + T3i;
1189
                    io[WS(os, 4)] = T3j + T3q;
1190
                    {
1191
                         E T3t, T3y, T3w, T3x, T3u;
1192
                         T3t = FNMS(KP587785252, T3s, KP951056516 * T3r);
1193
                         T3y = FMA(KP951056516, T3s, KP587785252 * T3r);
1194
                         T3u = FNMS(KP250000000, T3q, T3j);
1195
                         T3w = T3u - T3v;
1196
                         T3x = T3u + T3v;
1197
                         io[WS(os, 14)] = T3t + T3w;
1198
                         io[WS(os, 24)] = T3y + T3x;
1199
                         io[WS(os, 19)] = T3w - T3t;
1200
                         io[WS(os, 9)] = T3x - T3y;
1201
                    }
1202
                    {
1203
                         E T3E, T3G, T3B, T3F, T3A;
1204
                         T3E = FMA(KP951056516, T3C, KP587785252 * T3D);
1205
                         T3G = FNMS(KP587785252, T3C, KP951056516 * T3D);
1206
                         T3A = FNMS(KP250000000, T3i, T33);
1207
                         T3B = T3z + T3A;
1208
                         T3F = T3A - T3z;
1209
                         ro[WS(os, 24)] = T3B - T3E;
1210
                         ro[WS(os, 19)] = T3F + T3G;
1211
                         ro[WS(os, 9)] = T3B + T3E;
1212
                         ro[WS(os, 14)] = T3F - T3G;
1213
                    }
1214
               }
1215
          }
1216
     }
1217
}
1218

    
1219
static const kdft_desc desc = { 25, "n1_25", {260, 92, 92, 0}, &GENUS, 0, 0, 0, 0 };
1220

    
1221
void X(codelet_n1_25) (planner *p) {
1222
     X(kdft_register) (p, n1_25, &desc);
1223
}
1224

    
1225
#endif