Coverage Report

Created: 2025-06-22 06:45

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