Coverage Report

Created: 2026-07-25 06:31

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/fftw3/dft/scalar/codelets/n1_16.c
Line
Count
Source
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 Sat Jul 25 06:26:37 UTC 2026 */
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 16 -name n1_16 -include dft/scalar/n.h */
29
30
/*
31
 * This function contains 144 FP additions, 40 FP multiplications,
32
 * (or, 104 additions, 0 multiplications, 40 fused multiply/add),
33
 * 50 stack variables, 3 constants, and 64 memory accesses
34
 */
35
#include "dft/scalar/n.h"
36
37
static void n1_16(const R *ri, const R *ii, R *ro, R *io, stride is, stride os, INT v, INT ivs, INT ovs)
38
{
39
     DK(KP923879532, +0.923879532511286756128183189396788286822416626);
40
     DK(KP414213562, +0.414213562373095048801688724209698078569671875);
41
     DK(KP707106781, +0.707106781186547524400844362104849039284835938);
42
     {
43
    INT i;
44
    for (i = v; i > 0; i = i - 1, ri = ri + ivs, ii = ii + ivs, ro = ro + ovs, io = io + ovs, MAKE_VOLATILE_STRIDE(64, is), MAKE_VOLATILE_STRIDE(64, os)) {
45
         E T7, T1R, T25, TC, TN, T1x, T1H, T1l, Tt, T22, T2h, T1b, T1g, T1E, T1Z;
46
         E T1D, Te, T1S, T26, TJ, TQ, T1m, T1n, TT, Tm, T1X, T2g, T10, T15, T1B;
47
         E T1U, T1A;
48
         {
49
        E T3, TL, Ty, T1k, T6, T1j, TB, TM;
50
        {
51
       E T1, T2, Tw, Tx;
52
       T1 = ri[0];
53
       T2 = ri[WS(is, 8)];
54
       T3 = T1 + T2;
55
       TL = T1 - T2;
56
       Tw = ii[0];
57
       Tx = ii[WS(is, 8)];
58
       Ty = Tw + Tx;
59
       T1k = Tw - Tx;
60
        }
61
        {
62
       E T4, T5, Tz, TA;
63
       T4 = ri[WS(is, 4)];
64
       T5 = ri[WS(is, 12)];
65
       T6 = T4 + T5;
66
       T1j = T4 - T5;
67
       Tz = ii[WS(is, 4)];
68
       TA = ii[WS(is, 12)];
69
       TB = Tz + TA;
70
       TM = Tz - TA;
71
        }
72
        T7 = T3 + T6;
73
        T1R = T3 - T6;
74
        T25 = Ty - TB;
75
        TC = Ty + TB;
76
        TN = TL - TM;
77
        T1x = TL + TM;
78
        T1H = T1k - T1j;
79
        T1l = T1j + T1k;
80
         }
81
         {
82
        E Tp, T1c, T1a, T20, Ts, T17, T1f, T21;
83
        {
84
       E Tn, To, T18, T19;
85
       Tn = ri[WS(is, 15)];
86
       To = ri[WS(is, 7)];
87
       Tp = Tn + To;
88
       T1c = Tn - To;
89
       T18 = ii[WS(is, 15)];
90
       T19 = ii[WS(is, 7)];
91
       T1a = T18 - T19;
92
       T20 = T18 + T19;
93
        }
94
        {
95
       E Tq, Tr, T1d, T1e;
96
       Tq = ri[WS(is, 3)];
97
       Tr = ri[WS(is, 11)];
98
       Ts = Tq + Tr;
99
       T17 = Tq - Tr;
100
       T1d = ii[WS(is, 3)];
101
       T1e = ii[WS(is, 11)];
102
       T1f = T1d - T1e;
103
       T21 = T1d + T1e;
104
        }
105
        Tt = Tp + Ts;
106
        T22 = T20 - T21;
107
        T2h = T20 + T21;
108
        T1b = T17 + T1a;
109
        T1g = T1c - T1f;
110
        T1E = T1a - T17;
111
        T1Z = Tp - Ts;
112
        T1D = T1c + T1f;
113
         }
114
         {
115
        E Ta, TP, TF, TO, Td, TR, TI, TS;
116
        {
117
       E T8, T9, TD, TE;
118
       T8 = ri[WS(is, 2)];
119
       T9 = ri[WS(is, 10)];
120
       Ta = T8 + T9;
121
       TP = T8 - T9;
122
       TD = ii[WS(is, 2)];
123
       TE = ii[WS(is, 10)];
124
       TF = TD + TE;
125
       TO = TD - TE;
126
        }
127
        {
128
       E Tb, Tc, TG, TH;
129
       Tb = ri[WS(is, 14)];
130
       Tc = ri[WS(is, 6)];
131
       Td = Tb + Tc;
132
       TR = Tb - Tc;
133
       TG = ii[WS(is, 14)];
134
       TH = ii[WS(is, 6)];
135
       TI = TG + TH;
136
       TS = TG - TH;
137
        }
138
        Te = Ta + Td;
139
        T1S = TF - TI;
140
        T26 = Td - Ta;
141
        TJ = TF + TI;
142
        TQ = TO - TP;
143
        T1m = TR - TS;
144
        T1n = TP + TO;
145
        TT = TR + TS;
146
         }
147
         {
148
        E Ti, T11, TZ, T1V, Tl, TW, T14, T1W;
149
        {
150
       E Tg, Th, TX, TY;
151
       Tg = ri[WS(is, 1)];
152
       Th = ri[WS(is, 9)];
153
       Ti = Tg + Th;
154
       T11 = Tg - Th;
155
       TX = ii[WS(is, 1)];
156
       TY = ii[WS(is, 9)];
157
       TZ = TX - TY;
158
       T1V = TX + TY;
159
        }
160
        {
161
       E Tj, Tk, T12, T13;
162
       Tj = ri[WS(is, 5)];
163
       Tk = ri[WS(is, 13)];
164
       Tl = Tj + Tk;
165
       TW = Tj - Tk;
166
       T12 = ii[WS(is, 5)];
167
       T13 = ii[WS(is, 13)];
168
       T14 = T12 - T13;
169
       T1W = T12 + T13;
170
        }
171
        Tm = Ti + Tl;
172
        T1X = T1V - T1W;
173
        T2g = T1V + T1W;
174
        T10 = TW + TZ;
175
        T15 = T11 - T14;
176
        T1B = TZ - TW;
177
        T1U = Ti - Tl;
178
        T1A = T11 + T14;
179
         }
180
         {
181
        E Tf, Tu, T2j, T2k;
182
        Tf = T7 + Te;
183
        Tu = Tm + Tt;
184
        ro[WS(os, 8)] = Tf - Tu;
185
        ro[0] = Tf + Tu;
186
        T2j = TC + TJ;
187
        T2k = T2g + T2h;
188
        io[WS(os, 8)] = T2j - T2k;
189
        io[0] = T2j + T2k;
190
         }
191
         {
192
        E Tv, TK, T2f, T2i;
193
        Tv = Tt - Tm;
194
        TK = TC - TJ;
195
        io[WS(os, 4)] = Tv + TK;
196
        io[WS(os, 12)] = TK - Tv;
197
        T2f = T7 - Te;
198
        T2i = T2g - T2h;
199
        ro[WS(os, 12)] = T2f - T2i;
200
        ro[WS(os, 4)] = T2f + T2i;
201
         }
202
         {
203
        E T1T, T27, T24, T28, T1Y, T23;
204
        T1T = T1R + T1S;
205
        T27 = T25 - T26;
206
        T1Y = T1U + T1X;
207
        T23 = T1Z - T22;
208
        T24 = T1Y + T23;
209
        T28 = T23 - T1Y;
210
        ro[WS(os, 10)] = FNMS(KP707106781, T24, T1T);
211
        io[WS(os, 6)] = FMA(KP707106781, T28, T27);
212
        ro[WS(os, 2)] = FMA(KP707106781, T24, T1T);
213
        io[WS(os, 14)] = FNMS(KP707106781, T28, T27);
214
         }
215
         {
216
        E T29, T2d, T2c, T2e, T2a, T2b;
217
        T29 = T1R - T1S;
218
        T2d = T26 + T25;
219
        T2a = T1X - T1U;
220
        T2b = T1Z + T22;
221
        T2c = T2a - T2b;
222
        T2e = T2a + T2b;
223
        ro[WS(os, 14)] = FNMS(KP707106781, T2c, T29);
224
        io[WS(os, 2)] = FMA(KP707106781, T2e, T2d);
225
        ro[WS(os, 6)] = FMA(KP707106781, T2c, T29);
226
        io[WS(os, 10)] = FNMS(KP707106781, T2e, T2d);
227
         }
228
         {
229
        E TV, T1v, T1p, T1r, T1i, T1q, T1u, T1w, TU, T1o;
230
        TU = TQ - TT;
231
        TV = FMA(KP707106781, TU, TN);
232
        T1v = FNMS(KP707106781, TU, TN);
233
        T1o = T1m - T1n;
234
        T1p = FNMS(KP707106781, T1o, T1l);
235
        T1r = FMA(KP707106781, T1o, T1l);
236
        {
237
       E T16, T1h, T1s, T1t;
238
       T16 = FMA(KP414213562, T15, T10);
239
       T1h = FNMS(KP414213562, T1g, T1b);
240
       T1i = T16 - T1h;
241
       T1q = T16 + T1h;
242
       T1s = FMA(KP414213562, T1b, T1g);
243
       T1t = FNMS(KP414213562, T10, T15);
244
       T1u = T1s - T1t;
245
       T1w = T1t + T1s;
246
        }
247
        ro[WS(os, 11)] = FNMS(KP923879532, T1i, TV);
248
        io[WS(os, 11)] = FNMS(KP923879532, T1u, T1r);
249
        ro[WS(os, 3)] = FMA(KP923879532, T1i, TV);
250
        io[WS(os, 3)] = FMA(KP923879532, T1u, T1r);
251
        io[WS(os, 7)] = FNMS(KP923879532, T1q, T1p);
252
        ro[WS(os, 7)] = FNMS(KP923879532, T1w, T1v);
253
        io[WS(os, 15)] = FMA(KP923879532, T1q, T1p);
254
        ro[WS(os, 15)] = FMA(KP923879532, T1w, T1v);
255
         }
256
         {
257
        E T1z, T1L, T1J, T1P, T1G, T1K, T1O, T1Q, T1y, T1I;
258
        T1y = T1n + T1m;
259
        T1z = FMA(KP707106781, T1y, T1x);
260
        T1L = FNMS(KP707106781, T1y, T1x);
261
        T1I = TQ + TT;
262
        T1J = FNMS(KP707106781, T1I, T1H);
263
        T1P = FMA(KP707106781, T1I, T1H);
264
        {
265
       E T1C, T1F, T1M, T1N;
266
       T1C = FMA(KP414213562, T1B, T1A);
267
       T1F = FNMS(KP414213562, T1E, T1D);
268
       T1G = T1C + T1F;
269
       T1K = T1F - T1C;
270
       T1M = FNMS(KP414213562, T1A, T1B);
271
       T1N = FMA(KP414213562, T1D, T1E);
272
       T1O = T1M - T1N;
273
       T1Q = T1M + T1N;
274
        }
275
        ro[WS(os, 9)] = FNMS(KP923879532, T1G, T1z);
276
        io[WS(os, 9)] = FNMS(KP923879532, T1Q, T1P);
277
        ro[WS(os, 1)] = FMA(KP923879532, T1G, T1z);
278
        io[WS(os, 1)] = FMA(KP923879532, T1Q, T1P);
279
        io[WS(os, 13)] = FNMS(KP923879532, T1K, T1J);
280
        ro[WS(os, 13)] = FNMS(KP923879532, T1O, T1L);
281
        io[WS(os, 5)] = FMA(KP923879532, T1K, T1J);
282
        ro[WS(os, 5)] = FMA(KP923879532, T1O, T1L);
283
         }
284
    }
285
     }
286
}
287
288
static const kdft_desc desc = { 16, "n1_16", { 104, 0, 40, 0 }, &GENUS, 0, 0, 0, 0 };
289
290
void X(codelet_n1_16) (planner *p) { X(kdft_register) (p, n1_16, &desc);
291
}
292
293
#else
294
295
/* Generated by: ../../../genfft/gen_notw.native -compact -variables 4 -pipeline-latency 4 -n 16 -name n1_16 -include dft/scalar/n.h */
296
297
/*
298
 * This function contains 144 FP additions, 24 FP multiplications,
299
 * (or, 136 additions, 16 multiplications, 8 fused multiply/add),
300
 * 50 stack variables, 3 constants, and 64 memory accesses
301
 */
302
#include "dft/scalar/n.h"
303
304
static void n1_16(const R *ri, const R *ii, R *ro, R *io, stride is, stride os, INT v, INT ivs, INT ovs)
305
9
{
306
9
     DK(KP382683432, +0.382683432365089771728459984030398866761344562);
307
9
     DK(KP923879532, +0.923879532511286756128183189396788286822416626);
308
9
     DK(KP707106781, +0.707106781186547524400844362104849039284835938);
309
9
     {
310
9
    INT i;
311
124
    for (i = v; i > 0; i = i - 1, ri = ri + ivs, ii = ii + ivs, ro = ro + ovs, io = io + ovs, MAKE_VOLATILE_STRIDE(64, is), MAKE_VOLATILE_STRIDE(64, os)) {
312
115
         E T7, T1R, T25, TC, TN, T1x, T1H, T1l, Tt, T22, T2h, T1b, T1g, T1E, T1Z;
313
115
         E T1D, Te, T1S, T26, TJ, TQ, T1m, T1n, TT, Tm, T1X, T2g, T10, T15, T1B;
314
115
         E T1U, T1A;
315
115
         {
316
115
        E T3, TL, Ty, T1k, T6, T1j, TB, TM;
317
115
        {
318
115
       E T1, T2, Tw, Tx;
319
115
       T1 = ri[0];
320
115
       T2 = ri[WS(is, 8)];
321
115
       T3 = T1 + T2;
322
115
       TL = T1 - T2;
323
115
       Tw = ii[0];
324
115
       Tx = ii[WS(is, 8)];
325
115
       Ty = Tw + Tx;
326
115
       T1k = Tw - Tx;
327
115
        }
328
115
        {
329
115
       E T4, T5, Tz, TA;
330
115
       T4 = ri[WS(is, 4)];
331
115
       T5 = ri[WS(is, 12)];
332
115
       T6 = T4 + T5;
333
115
       T1j = T4 - T5;
334
115
       Tz = ii[WS(is, 4)];
335
115
       TA = ii[WS(is, 12)];
336
115
       TB = Tz + TA;
337
115
       TM = Tz - TA;
338
115
        }
339
115
        T7 = T3 + T6;
340
115
        T1R = T3 - T6;
341
115
        T25 = Ty - TB;
342
115
        TC = Ty + TB;
343
115
        TN = TL - TM;
344
115
        T1x = TL + TM;
345
115
        T1H = T1k - T1j;
346
115
        T1l = T1j + T1k;
347
115
         }
348
115
         {
349
115
        E Tp, T17, T1f, T20, Ts, T1c, T1a, T21;
350
115
        {
351
115
       E Tn, To, T1d, T1e;
352
115
       Tn = ri[WS(is, 15)];
353
115
       To = ri[WS(is, 7)];
354
115
       Tp = Tn + To;
355
115
       T17 = Tn - To;
356
115
       T1d = ii[WS(is, 15)];
357
115
       T1e = ii[WS(is, 7)];
358
115
       T1f = T1d - T1e;
359
115
       T20 = T1d + T1e;
360
115
        }
361
115
        {
362
115
       E Tq, Tr, T18, T19;
363
115
       Tq = ri[WS(is, 3)];
364
115
       Tr = ri[WS(is, 11)];
365
115
       Ts = Tq + Tr;
366
115
       T1c = Tq - Tr;
367
115
       T18 = ii[WS(is, 3)];
368
115
       T19 = ii[WS(is, 11)];
369
115
       T1a = T18 - T19;
370
115
       T21 = T18 + T19;
371
115
        }
372
115
        Tt = Tp + Ts;
373
115
        T22 = T20 - T21;
374
115
        T2h = T20 + T21;
375
115
        T1b = T17 - T1a;
376
115
        T1g = T1c + T1f;
377
115
        T1E = T1f - T1c;
378
115
        T1Z = Tp - Ts;
379
115
        T1D = T17 + T1a;
380
115
         }
381
115
         {
382
115
        E Ta, TP, TF, TO, Td, TR, TI, TS;
383
115
        {
384
115
       E T8, T9, TD, TE;
385
115
       T8 = ri[WS(is, 2)];
386
115
       T9 = ri[WS(is, 10)];
387
115
       Ta = T8 + T9;
388
115
       TP = T8 - T9;
389
115
       TD = ii[WS(is, 2)];
390
115
       TE = ii[WS(is, 10)];
391
115
       TF = TD + TE;
392
115
       TO = TD - TE;
393
115
        }
394
115
        {
395
115
       E Tb, Tc, TG, TH;
396
115
       Tb = ri[WS(is, 14)];
397
115
       Tc = ri[WS(is, 6)];
398
115
       Td = Tb + Tc;
399
115
       TR = Tb - Tc;
400
115
       TG = ii[WS(is, 14)];
401
115
       TH = ii[WS(is, 6)];
402
115
       TI = TG + TH;
403
115
       TS = TG - TH;
404
115
        }
405
115
        Te = Ta + Td;
406
115
        T1S = TF - TI;
407
115
        T26 = Td - Ta;
408
115
        TJ = TF + TI;
409
115
        TQ = TO - TP;
410
115
        T1m = TR - TS;
411
115
        T1n = TP + TO;
412
115
        TT = TR + TS;
413
115
         }
414
115
         {
415
115
        E Ti, T11, TZ, T1V, Tl, TW, T14, T1W;
416
115
        {
417
115
       E Tg, Th, TX, TY;
418
115
       Tg = ri[WS(is, 1)];
419
115
       Th = ri[WS(is, 9)];
420
115
       Ti = Tg + Th;
421
115
       T11 = Tg - Th;
422
115
       TX = ii[WS(is, 1)];
423
115
       TY = ii[WS(is, 9)];
424
115
       TZ = TX - TY;
425
115
       T1V = TX + TY;
426
115
        }
427
115
        {
428
115
       E Tj, Tk, T12, T13;
429
115
       Tj = ri[WS(is, 5)];
430
115
       Tk = ri[WS(is, 13)];
431
115
       Tl = Tj + Tk;
432
115
       TW = Tj - Tk;
433
115
       T12 = ii[WS(is, 5)];
434
115
       T13 = ii[WS(is, 13)];
435
115
       T14 = T12 - T13;
436
115
       T1W = T12 + T13;
437
115
        }
438
115
        Tm = Ti + Tl;
439
115
        T1X = T1V - T1W;
440
115
        T2g = T1V + T1W;
441
115
        T10 = TW + TZ;
442
115
        T15 = T11 - T14;
443
115
        T1B = T11 + T14;
444
115
        T1U = Ti - Tl;
445
115
        T1A = TZ - TW;
446
115
         }
447
115
         {
448
115
        E Tf, Tu, T2j, T2k;
449
115
        Tf = T7 + Te;
450
115
        Tu = Tm + Tt;
451
115
        ro[WS(os, 8)] = Tf - Tu;
452
115
        ro[0] = Tf + Tu;
453
115
        T2j = TC + TJ;
454
115
        T2k = T2g + T2h;
455
115
        io[WS(os, 8)] = T2j - T2k;
456
115
        io[0] = T2j + T2k;
457
115
         }
458
115
         {
459
115
        E Tv, TK, T2f, T2i;
460
115
        Tv = Tt - Tm;
461
115
        TK = TC - TJ;
462
115
        io[WS(os, 4)] = Tv + TK;
463
115
        io[WS(os, 12)] = TK - Tv;
464
115
        T2f = T7 - Te;
465
115
        T2i = T2g - T2h;
466
115
        ro[WS(os, 12)] = T2f - T2i;
467
115
        ro[WS(os, 4)] = T2f + T2i;
468
115
         }
469
115
         {
470
115
        E T1T, T27, T24, T28, T1Y, T23;
471
115
        T1T = T1R + T1S;
472
115
        T27 = T25 - T26;
473
115
        T1Y = T1U + T1X;
474
115
        T23 = T1Z - T22;
475
115
        T24 = KP707106781 * (T1Y + T23);
476
115
        T28 = KP707106781 * (T23 - T1Y);
477
115
        ro[WS(os, 10)] = T1T - T24;
478
115
        io[WS(os, 6)] = T27 + T28;
479
115
        ro[WS(os, 2)] = T1T + T24;
480
115
        io[WS(os, 14)] = T27 - T28;
481
115
         }
482
115
         {
483
115
        E T29, T2d, T2c, T2e, T2a, T2b;
484
115
        T29 = T1R - T1S;
485
115
        T2d = T26 + T25;
486
115
        T2a = T1X - T1U;
487
115
        T2b = T1Z + T22;
488
115
        T2c = KP707106781 * (T2a - T2b);
489
115
        T2e = KP707106781 * (T2a + T2b);
490
115
        ro[WS(os, 14)] = T29 - T2c;
491
115
        io[WS(os, 2)] = T2d + T2e;
492
115
        ro[WS(os, 6)] = T29 + T2c;
493
115
        io[WS(os, 10)] = T2d - T2e;
494
115
         }
495
115
         {
496
115
        E TV, T1r, T1p, T1v, T1i, T1q, T1u, T1w, TU, T1o;
497
115
        TU = KP707106781 * (TQ - TT);
498
115
        TV = TN + TU;
499
115
        T1r = TN - TU;
500
115
        T1o = KP707106781 * (T1m - T1n);
501
115
        T1p = T1l - T1o;
502
115
        T1v = T1l + T1o;
503
115
        {
504
115
       E T16, T1h, T1s, T1t;
505
115
       T16 = FMA(KP923879532, T10, KP382683432 * T15);
506
115
       T1h = FNMS(KP923879532, T1g, KP382683432 * T1b);
507
115
       T1i = T16 + T1h;
508
115
       T1q = T1h - T16;
509
115
       T1s = FNMS(KP923879532, T15, KP382683432 * T10);
510
115
       T1t = FMA(KP382683432, T1g, KP923879532 * T1b);
511
115
       T1u = T1s - T1t;
512
115
       T1w = T1s + T1t;
513
115
        }
514
115
        ro[WS(os, 11)] = TV - T1i;
515
115
        io[WS(os, 11)] = T1v - T1w;
516
115
        ro[WS(os, 3)] = TV + T1i;
517
115
        io[WS(os, 3)] = T1v + T1w;
518
115
        io[WS(os, 15)] = T1p - T1q;
519
115
        ro[WS(os, 15)] = T1r - T1u;
520
115
        io[WS(os, 7)] = T1p + T1q;
521
115
        ro[WS(os, 7)] = T1r + T1u;
522
115
         }
523
115
         {
524
115
        E T1z, T1L, T1J, T1P, T1G, T1K, T1O, T1Q, T1y, T1I;
525
115
        T1y = KP707106781 * (T1n + T1m);
526
115
        T1z = T1x + T1y;
527
115
        T1L = T1x - T1y;
528
115
        T1I = KP707106781 * (TQ + TT);
529
115
        T1J = T1H - T1I;
530
115
        T1P = T1H + T1I;
531
115
        {
532
115
       E T1C, T1F, T1M, T1N;
533
115
       T1C = FMA(KP382683432, T1A, KP923879532 * T1B);
534
115
       T1F = FNMS(KP382683432, T1E, KP923879532 * T1D);
535
115
       T1G = T1C + T1F;
536
115
       T1K = T1F - T1C;
537
115
       T1M = FNMS(KP382683432, T1B, KP923879532 * T1A);
538
115
       T1N = FMA(KP923879532, T1E, KP382683432 * T1D);
539
115
       T1O = T1M - T1N;
540
115
       T1Q = T1M + T1N;
541
115
        }
542
115
        ro[WS(os, 9)] = T1z - T1G;
543
115
        io[WS(os, 9)] = T1P - T1Q;
544
115
        ro[WS(os, 1)] = T1z + T1G;
545
115
        io[WS(os, 1)] = T1P + T1Q;
546
115
        io[WS(os, 13)] = T1J - T1K;
547
115
        ro[WS(os, 13)] = T1L - T1O;
548
115
        io[WS(os, 5)] = T1J + T1K;
549
115
        ro[WS(os, 5)] = T1L + T1O;
550
115
         }
551
115
    }
552
9
     }
553
9
}
554
555
static const kdft_desc desc = { 16, "n1_16", { 136, 16, 8, 0 }, &GENUS, 0, 0, 0, 0 };
556
557
1
void X(codelet_n1_16) (planner *p) { X(kdft_register) (p, n1_16, &desc);
558
1
}
559
560
#endif