37
37
static void hc2cfdft2_4(R *Rp, R *Ip, R *Rm, R *Im, const R *W, stride rs, INT mb, INT me, INT ms)
39
39
DK(KP500000000, +0.500000000000000000000000000000000000000000000);
41
for (m = mb, W = W + ((mb - 1) * 4); m < me; m = m + 1, Rp = Rp + ms, Ip = Ip + ms, Rm = Rm - ms, Im = Im - ms, W = W + 4, MAKE_VOLATILE_STRIDE(rs)) {
48
E Tc, T6, Tp, Tj, Tw, Tt, T9, TE, To, TC, Ta, Tr, Tf, Tl, Tm;
56
Tc = FNMS(T4, T2, Tb);
80
E Tq, Tk, TB, Ty, Tu, TI, TG, TF;
81
Tq = FNMS(T4, Tp, To);
85
Tg = FNMS(Tc, Tf, Ta);
87
TD = FNMS(T5, Tr, TC);
102
Rp[0] = KP500000000 * (TH + TI);
103
Rm[WS(rs, 1)] = KP500000000 * (TH - TI);
104
Rm[0] = KP500000000 * (Tz - TA);
105
Im[WS(rs, 1)] = KP500000000 * (Tv - Tk);
106
Ip[0] = KP500000000 * (Tk + Tv);
107
Im[0] = KP500000000 * (TG - TB);
108
Rp[WS(rs, 1)] = KP500000000 * (Tz + TA);
109
Ip[WS(rs, 1)] = KP500000000 * (TB + TG);
42
for (m = mb, W = W + ((mb - 1) * 4); m < me; m = m + 1, Rp = Rp + ms, Ip = Ip + ms, Rm = Rm - ms, Im = Im - ms, W = W + 4, MAKE_VOLATILE_STRIDE(rs)) {
49
E Tc, T6, Tp, Tj, Tw, Tt, T9, TE, To, TC, Ta, Tr, Tf, Tl, Tm;
57
Tc = FNMS(T4, T2, Tb);
81
E Tq, Tk, TB, Ty, Tu, TI, TG, TF;
82
Tq = FNMS(T4, Tp, To);
86
Tg = FNMS(Tc, Tf, Ta);
88
TD = FNMS(T5, Tr, TC);
103
Rp[0] = KP500000000 * (TH + TI);
104
Rm[WS(rs, 1)] = KP500000000 * (TH - TI);
105
Rm[0] = KP500000000 * (Tz - TA);
106
Im[WS(rs, 1)] = KP500000000 * (Tv - Tk);
107
Ip[0] = KP500000000 * (Tk + Tv);
108
Im[0] = KP500000000 * (TG - TB);
109
Rp[WS(rs, 1)] = KP500000000 * (Tz + TA);
110
Ip[WS(rs, 1)] = KP500000000 * (TB + TG);
138
140
static void hc2cfdft2_4(R *Rp, R *Ip, R *Rm, R *Im, const R *W, stride rs, INT mb, INT me, INT ms)
140
142
DK(KP500000000, +0.500000000000000000000000000000000000000000000);
142
for (m = mb, W = W + ((mb - 1) * 4); m < me; m = m + 1, Rp = Rp + ms, Ip = Ip + ms, Rm = Rm - ms, Im = Im - ms, W = W + 4, MAKE_VOLATILE_STRIDE(rs)) {
143
E T1, T3, T2, T4, T5, T9;
148
T5 = FMA(T1, T2, T3 * T4);
149
T9 = FNMS(T3, T2, T1 * T4);
151
E Tg, Tr, Tm, Tx, Td, Tw, Tp, Ts;
153
E Te, Tf, Tl, Ti, Tj, Tk;
162
Tm = FNMS(T3, Tl, T1 * Tk);
163
Tx = FMA(T3, Tk, T1 * Tl);
178
Td = FNMS(T9, Tc, T5 * T8);
179
Tw = FNMS(T4, Tn, T2 * To);
180
Tp = FMA(T2, Tn, T4 * To);
181
Ts = FMA(T5, Tc, T9 * T8);
187
Ip[0] = KP500000000 * (Th + Tq);
188
Im[WS(rs, 1)] = KP500000000 * (Tq - Th);
191
Rm[WS(rs, 1)] = KP500000000 * (Tz - TA);
192
Rp[0] = KP500000000 * (Tz + TA);
198
Rm[0] = KP500000000 * (Tt - Tu);
199
Rp[WS(rs, 1)] = KP500000000 * (Tt + Tu);
202
Ip[WS(rs, 1)] = KP500000000 * (Tv + Ty);
203
Im[0] = KP500000000 * (Ty - Tv);
145
for (m = mb, W = W + ((mb - 1) * 4); m < me; m = m + 1, Rp = Rp + ms, Ip = Ip + ms, Rm = Rm - ms, Im = Im - ms, W = W + 4, MAKE_VOLATILE_STRIDE(rs)) {
146
E T1, T3, T2, T4, T5, T9;
151
T5 = FMA(T1, T2, T3 * T4);
152
T9 = FNMS(T3, T2, T1 * T4);
154
E Tg, Tr, Tm, Tx, Td, Tw, Tp, Ts;
156
E Te, Tf, Tl, Ti, Tj, Tk;
165
Tm = FNMS(T3, Tl, T1 * Tk);
166
Tx = FMA(T3, Tk, T1 * Tl);
181
Td = FNMS(T9, Tc, T5 * T8);
182
Tw = FNMS(T4, Tn, T2 * To);
183
Tp = FMA(T2, Tn, T4 * To);
184
Ts = FMA(T5, Tc, T9 * T8);
190
Ip[0] = KP500000000 * (Th + Tq);
191
Im[WS(rs, 1)] = KP500000000 * (Tq - Th);
194
Rm[WS(rs, 1)] = KP500000000 * (Tz - TA);
195
Rp[0] = KP500000000 * (Tz + TA);
201
Rm[0] = KP500000000 * (Tt - Tu);
202
Rp[WS(rs, 1)] = KP500000000 * (Tt + Tu);
205
Ip[WS(rs, 1)] = KP500000000 * (Tv + Ty);
206
Im[0] = KP500000000 * (Ty - Tv);