annotate src/fftw-3.3.8/rdft/scalar/r2cb/hb_64.c @ 83:ae30d91d2ffe

Replace these with versions built using an older toolset (so as to avoid ABI compatibilities when linking on Ubuntu 14.04 for packaging purposes)
author Chris Cannam
date Fri, 07 Feb 2020 11:51:13 +0000
parents d0c2a83c1364
children
rev   line source
Chris@82 1 /*
Chris@82 2 * Copyright (c) 2003, 2007-14 Matteo Frigo
Chris@82 3 * Copyright (c) 2003, 2007-14 Massachusetts Institute of Technology
Chris@82 4 *
Chris@82 5 * This program is free software; you can redistribute it and/or modify
Chris@82 6 * it under the terms of the GNU General Public License as published by
Chris@82 7 * the Free Software Foundation; either version 2 of the License, or
Chris@82 8 * (at your option) any later version.
Chris@82 9 *
Chris@82 10 * This program is distributed in the hope that it will be useful,
Chris@82 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
Chris@82 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
Chris@82 13 * GNU General Public License for more details.
Chris@82 14 *
Chris@82 15 * You should have received a copy of the GNU General Public License
Chris@82 16 * along with this program; if not, write to the Free Software
Chris@82 17 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Chris@82 18 *
Chris@82 19 */
Chris@82 20
Chris@82 21 /* This file was automatically generated --- DO NOT EDIT */
Chris@82 22 /* Generated on Thu May 24 08:07:33 EDT 2018 */
Chris@82 23
Chris@82 24 #include "rdft/codelet-rdft.h"
Chris@82 25
Chris@82 26 #if defined(ARCH_PREFERS_FMA) || defined(ISA_EXTENSION_PREFERS_FMA)
Chris@82 27
Chris@82 28 /* Generated by: ../../../genfft/gen_hc2hc.native -fma -compact -variables 4 -pipeline-latency 4 -sign 1 -n 64 -dif -name hb_64 -include rdft/scalar/hb.h */
Chris@82 29
Chris@82 30 /*
Chris@82 31 * This function contains 1038 FP additions, 644 FP multiplications,
Chris@82 32 * (or, 520 additions, 126 multiplications, 518 fused multiply/add),
Chris@82 33 * 192 stack variables, 15 constants, and 256 memory accesses
Chris@82 34 */
Chris@82 35 #include "rdft/scalar/hb.h"
Chris@82 36
Chris@82 37 static void hb_64(R *cr, R *ci, const R *W, stride rs, INT mb, INT me, INT ms)
Chris@82 38 {
Chris@82 39 DK(KP881921264, +0.881921264348355029712756863660388349508442621);
Chris@82 40 DK(KP534511135, +0.534511135950791641089685961295362908582039528);
Chris@82 41 DK(KP956940335, +0.956940335732208864935797886980269969482849206);
Chris@82 42 DK(KP303346683, +0.303346683607342391675883946941299872384187453);
Chris@82 43 DK(KP995184726, +0.995184726672196886244836953109479921575474869);
Chris@82 44 DK(KP098491403, +0.098491403357164253077197521291327432293052451);
Chris@82 45 DK(KP831469612, +0.831469612302545237078788377617905756738560812);
Chris@82 46 DK(KP773010453, +0.773010453362736960810906609758469800971041293);
Chris@82 47 DK(KP820678790, +0.820678790828660330972281985331011598767386482);
Chris@82 48 DK(KP980785280, +0.980785280403230449126182236134239036973933731);
Chris@82 49 DK(KP923879532, +0.923879532511286756128183189396788286822416626);
Chris@82 50 DK(KP668178637, +0.668178637919298919997757686523080761552472251);
Chris@82 51 DK(KP198912367, +0.198912367379658006911597622644676228597850501);
Chris@82 52 DK(KP414213562, +0.414213562373095048801688724209698078569671875);
Chris@82 53 DK(KP707106781, +0.707106781186547524400844362104849039284835938);
Chris@82 54 {
Chris@82 55 INT m;
Chris@82 56 for (m = mb, W = W + ((mb - 1) * 126); m < me; m = m + 1, cr = cr + ms, ci = ci - ms, W = W + 126, MAKE_VOLATILE_STRIDE(128, rs)) {
Chris@82 57 E Tv, Thy, T5B, T7n, Tey, TfP, TjB, Tkl, T2k, T6U, T2H, T7o, Tia, TiH, Tj8;
Chris@82 58 E Tk8, T5E, T6V, T9N, Tbz, T9Q, Tb7, Tev, Tgh, T8G, Tb6, T8N, TbA, TcU, TfO;
Chris@82 59 E Td5, Tgi, T10, Ti3, Tje, TjC, ThF, TiI, Tds, TeA, Tjb, TjD, Tdh, TeB, TfT;
Chris@82 60 E Tgl, TfW, Tgk, T39, T7r, T5H, T6Z, T8V, TbC, T9S, Tbb, T3A, T7q, T5G, T72;
Chris@82 61 E T92, TbD, T9T, Tbe, T1w, ThH, Tjq, Tke, Tjt, Tkf, ThO, TiK, Tec, TgT, Tfc;
Chris@82 62 E Tgb, Tel, TgU, Tfd, Tg8, T5a, T82, T83, T5n, T6i, T77, T7a, T6j, T9f, Tcb;
Chris@82 63 E Tcc, T9m, Tar, Tbj, Tbm, Tas, T21, ThQ, Tjj, Tkb, Tjm, Tkc, ThX, TiL, TdL;
Chris@82 64 E TgW, Tf9, Tg4, TdU, TgX, Tfa, Tg1, T4h, T7Z, T80, T4u, T6f, T7e, T7h, T6g;
Chris@82 65 E T9y, Tce, Tcf, T9F, Tau, Tbq, Tbt, Tav;
Chris@82 66 {
Chris@82 67 E T3, T6, T7, T5t, T24, Tes, Ter, T27, Ti4, T5w, Ta, TcR, Td, TcS, Te;
Chris@82 68 E T2d, Ti5, T5z, T5y, T2i, Tm, Td3, Ti7, T2p, T2u, T8I, Td0, T8H, Tt, TcY;
Chris@82 69 E Ti8, T2A, T2F, T8L, TcX, T8K;
Chris@82 70 {
Chris@82 71 E T1, T2, T4, T5;
Chris@82 72 T1 = cr[0];
Chris@82 73 T2 = ci[WS(rs, 31)];
Chris@82 74 T3 = T1 + T2;
Chris@82 75 T4 = cr[WS(rs, 16)];
Chris@82 76 T5 = ci[WS(rs, 15)];
Chris@82 77 T6 = T4 + T5;
Chris@82 78 T7 = T3 + T6;
Chris@82 79 T5t = T4 - T5;
Chris@82 80 T24 = T1 - T2;
Chris@82 81 }
Chris@82 82 {
Chris@82 83 E T25, T26, T5u, T5v;
Chris@82 84 T25 = ci[WS(rs, 47)];
Chris@82 85 T26 = cr[WS(rs, 48)];
Chris@82 86 Tes = T25 - T26;
Chris@82 87 T5u = ci[WS(rs, 63)];
Chris@82 88 T5v = cr[WS(rs, 32)];
Chris@82 89 Ter = T5u - T5v;
Chris@82 90 T27 = T25 + T26;
Chris@82 91 Ti4 = Ter + Tes;
Chris@82 92 T5w = T5u + T5v;
Chris@82 93 }
Chris@82 94 {
Chris@82 95 E T29, T2h, T2e, T2c;
Chris@82 96 {
Chris@82 97 E T8, T9, T2f, T2g;
Chris@82 98 T8 = cr[WS(rs, 8)];
Chris@82 99 T9 = ci[WS(rs, 23)];
Chris@82 100 Ta = T8 + T9;
Chris@82 101 T29 = T8 - T9;
Chris@82 102 T2f = ci[WS(rs, 39)];
Chris@82 103 T2g = cr[WS(rs, 56)];
Chris@82 104 T2h = T2f + T2g;
Chris@82 105 TcR = T2f - T2g;
Chris@82 106 }
Chris@82 107 {
Chris@82 108 E Tb, Tc, T2a, T2b;
Chris@82 109 Tb = ci[WS(rs, 7)];
Chris@82 110 Tc = cr[WS(rs, 24)];
Chris@82 111 Td = Tb + Tc;
Chris@82 112 T2e = Tb - Tc;
Chris@82 113 T2a = ci[WS(rs, 55)];
Chris@82 114 T2b = cr[WS(rs, 40)];
Chris@82 115 T2c = T2a + T2b;
Chris@82 116 TcS = T2a - T2b;
Chris@82 117 }
Chris@82 118 Te = Ta + Td;
Chris@82 119 T2d = T29 - T2c;
Chris@82 120 Ti5 = TcS + TcR;
Chris@82 121 T5z = T2e + T2h;
Chris@82 122 T5y = T29 + T2c;
Chris@82 123 T2i = T2e - T2h;
Chris@82 124 }
Chris@82 125 {
Chris@82 126 E Ti, T2l, T2t, Td1, Tl, T2q, T2o, Td2;
Chris@82 127 {
Chris@82 128 E Tg, Th, T2r, T2s;
Chris@82 129 Tg = cr[WS(rs, 4)];
Chris@82 130 Th = ci[WS(rs, 27)];
Chris@82 131 Ti = Tg + Th;
Chris@82 132 T2l = Tg - Th;
Chris@82 133 T2r = ci[WS(rs, 59)];
Chris@82 134 T2s = cr[WS(rs, 36)];
Chris@82 135 T2t = T2r + T2s;
Chris@82 136 Td1 = T2r - T2s;
Chris@82 137 }
Chris@82 138 {
Chris@82 139 E Tj, Tk, T2m, T2n;
Chris@82 140 Tj = cr[WS(rs, 20)];
Chris@82 141 Tk = ci[WS(rs, 11)];
Chris@82 142 Tl = Tj + Tk;
Chris@82 143 T2q = Tj - Tk;
Chris@82 144 T2m = ci[WS(rs, 43)];
Chris@82 145 T2n = cr[WS(rs, 52)];
Chris@82 146 T2o = T2m + T2n;
Chris@82 147 Td2 = T2m - T2n;
Chris@82 148 }
Chris@82 149 Tm = Ti + Tl;
Chris@82 150 Td3 = Td1 - Td2;
Chris@82 151 Ti7 = Td1 + Td2;
Chris@82 152 T2p = T2l - T2o;
Chris@82 153 T2u = T2q + T2t;
Chris@82 154 T8I = T2l + T2o;
Chris@82 155 Td0 = Ti - Tl;
Chris@82 156 T8H = T2t - T2q;
Chris@82 157 }
Chris@82 158 {
Chris@82 159 E Tp, T2w, T2E, TcV, Ts, T2B, T2z, TcW;
Chris@82 160 {
Chris@82 161 E Tn, To, T2C, T2D;
Chris@82 162 Tn = ci[WS(rs, 3)];
Chris@82 163 To = cr[WS(rs, 28)];
Chris@82 164 Tp = Tn + To;
Chris@82 165 T2w = Tn - To;
Chris@82 166 T2C = ci[WS(rs, 35)];
Chris@82 167 T2D = cr[WS(rs, 60)];
Chris@82 168 T2E = T2C + T2D;
Chris@82 169 TcV = T2C - T2D;
Chris@82 170 }
Chris@82 171 {
Chris@82 172 E Tq, Tr, T2x, T2y;
Chris@82 173 Tq = cr[WS(rs, 12)];
Chris@82 174 Tr = ci[WS(rs, 19)];
Chris@82 175 Ts = Tq + Tr;
Chris@82 176 T2B = Tq - Tr;
Chris@82 177 T2x = ci[WS(rs, 51)];
Chris@82 178 T2y = cr[WS(rs, 44)];
Chris@82 179 T2z = T2x + T2y;
Chris@82 180 TcW = T2x - T2y;
Chris@82 181 }
Chris@82 182 Tt = Tp + Ts;
Chris@82 183 TcY = Tp - Ts;
Chris@82 184 Ti8 = TcV + TcW;
Chris@82 185 T2A = T2w - T2z;
Chris@82 186 T2F = T2B - T2E;
Chris@82 187 T8L = T2w + T2z;
Chris@82 188 TcX = TcV - TcW;
Chris@82 189 T8K = T2B + T2E;
Chris@82 190 }
Chris@82 191 {
Chris@82 192 E Tf, Tu, T5x, T5A;
Chris@82 193 Tf = T7 + Te;
Chris@82 194 Tu = Tm + Tt;
Chris@82 195 Tv = Tf + Tu;
Chris@82 196 Thy = Tf - Tu;
Chris@82 197 T5x = T5t + T5w;
Chris@82 198 T5A = T5y - T5z;
Chris@82 199 T5B = FMA(KP707106781, T5A, T5x);
Chris@82 200 T7n = FNMS(KP707106781, T5A, T5x);
Chris@82 201 }
Chris@82 202 {
Chris@82 203 E Tew, Tex, Tjz, TjA;
Chris@82 204 Tew = Td0 - Td3;
Chris@82 205 Tex = TcY + TcX;
Chris@82 206 Tey = Tew - Tex;
Chris@82 207 TfP = Tew + Tex;
Chris@82 208 Tjz = Ti4 - Ti5;
Chris@82 209 TjA = Tm - Tt;
Chris@82 210 TjB = Tjz - TjA;
Chris@82 211 Tkl = TjA + Tjz;
Chris@82 212 }
Chris@82 213 {
Chris@82 214 E T28, T2j, T2v, T2G;
Chris@82 215 T28 = T24 - T27;
Chris@82 216 T2j = T2d + T2i;
Chris@82 217 T2k = FMA(KP707106781, T2j, T28);
Chris@82 218 T6U = FNMS(KP707106781, T2j, T28);
Chris@82 219 T2v = FNMS(KP414213562, T2u, T2p);
Chris@82 220 T2G = FMA(KP414213562, T2F, T2A);
Chris@82 221 T2H = T2v + T2G;
Chris@82 222 T7o = T2v - T2G;
Chris@82 223 }
Chris@82 224 {
Chris@82 225 E Ti6, Ti9, Tj6, Tj7;
Chris@82 226 Ti6 = Ti4 + Ti5;
Chris@82 227 Ti9 = Ti7 + Ti8;
Chris@82 228 Tia = Ti6 - Ti9;
Chris@82 229 TiH = Ti6 + Ti9;
Chris@82 230 Tj6 = T7 - Te;
Chris@82 231 Tj7 = Ti8 - Ti7;
Chris@82 232 Tj8 = Tj6 - Tj7;
Chris@82 233 Tk8 = Tj6 + Tj7;
Chris@82 234 }
Chris@82 235 {
Chris@82 236 E T5C, T5D, T9L, T9M;
Chris@82 237 T5C = FMA(KP414213562, T2p, T2u);
Chris@82 238 T5D = FNMS(KP414213562, T2A, T2F);
Chris@82 239 T5E = T5C + T5D;
Chris@82 240 T6V = T5D - T5C;
Chris@82 241 T9L = T5w - T5t;
Chris@82 242 T9M = T2d - T2i;
Chris@82 243 T9N = FMA(KP707106781, T9M, T9L);
Chris@82 244 Tbz = FNMS(KP707106781, T9M, T9L);
Chris@82 245 }
Chris@82 246 {
Chris@82 247 E T9O, T9P, Tet, Teu;
Chris@82 248 T9O = FMA(KP414213562, T8H, T8I);
Chris@82 249 T9P = FMA(KP414213562, T8K, T8L);
Chris@82 250 T9Q = T9O - T9P;
Chris@82 251 Tb7 = T9O + T9P;
Chris@82 252 Tet = Ter - Tes;
Chris@82 253 Teu = Ta - Td;
Chris@82 254 Tev = Tet - Teu;
Chris@82 255 Tgh = Teu + Tet;
Chris@82 256 }
Chris@82 257 {
Chris@82 258 E T8E, T8F, T8J, T8M;
Chris@82 259 T8E = T24 + T27;
Chris@82 260 T8F = T5y + T5z;
Chris@82 261 T8G = FNMS(KP707106781, T8F, T8E);
Chris@82 262 Tb6 = FMA(KP707106781, T8F, T8E);
Chris@82 263 T8J = FNMS(KP414213562, T8I, T8H);
Chris@82 264 T8M = FNMS(KP414213562, T8L, T8K);
Chris@82 265 T8N = T8J + T8M;
Chris@82 266 TbA = T8M - T8J;
Chris@82 267 }
Chris@82 268 {
Chris@82 269 E TcQ, TcT, TcZ, Td4;
Chris@82 270 TcQ = T3 - T6;
Chris@82 271 TcT = TcR - TcS;
Chris@82 272 TcU = TcQ - TcT;
Chris@82 273 TfO = TcQ + TcT;
Chris@82 274 TcZ = TcX - TcY;
Chris@82 275 Td4 = Td0 + Td3;
Chris@82 276 Td5 = TcZ - Td4;
Chris@82 277 Tgi = Td4 + TcZ;
Chris@82 278 }
Chris@82 279 }
Chris@82 280 {
Chris@82 281 E TC, Tdn, ThC, T3e, T3v, T8S, Tdk, T8P, TY, Tdf, ThA, T2S, T2X, T36, Tda;
Chris@82 282 E T35, TJ, Tdq, ThD, T3j, T3o, T3x, Tdl, T3w, TR, Tdc, Thz, T2N, T34, T8Z;
Chris@82 283 E Td9, T8W;
Chris@82 284 {
Chris@82 285 E Ty, T3r, T3u, Tdj, TB, T3a, T3d, Tdi;
Chris@82 286 {
Chris@82 287 E Tw, Tx, T3s, T3t;
Chris@82 288 Tw = cr[WS(rs, 2)];
Chris@82 289 Tx = ci[WS(rs, 29)];
Chris@82 290 Ty = Tw + Tx;
Chris@82 291 T3r = Tw - Tx;
Chris@82 292 T3s = ci[WS(rs, 45)];
Chris@82 293 T3t = cr[WS(rs, 50)];
Chris@82 294 T3u = T3s + T3t;
Chris@82 295 Tdj = T3s - T3t;
Chris@82 296 }
Chris@82 297 {
Chris@82 298 E Tz, TA, T3b, T3c;
Chris@82 299 Tz = cr[WS(rs, 18)];
Chris@82 300 TA = ci[WS(rs, 13)];
Chris@82 301 TB = Tz + TA;
Chris@82 302 T3a = Tz - TA;
Chris@82 303 T3b = ci[WS(rs, 61)];
Chris@82 304 T3c = cr[WS(rs, 34)];
Chris@82 305 T3d = T3b + T3c;
Chris@82 306 Tdi = T3b - T3c;
Chris@82 307 }
Chris@82 308 TC = Ty + TB;
Chris@82 309 Tdn = Ty - TB;
Chris@82 310 ThC = Tdi + Tdj;
Chris@82 311 T3e = T3a + T3d;
Chris@82 312 T3v = T3r - T3u;
Chris@82 313 T8S = T3r + T3u;
Chris@82 314 Tdk = Tdi - Tdj;
Chris@82 315 T8P = T3d - T3a;
Chris@82 316 }
Chris@82 317 {
Chris@82 318 E TU, T2O, T2W, Tdd, TX, T2T, T2R, Tde;
Chris@82 319 {
Chris@82 320 E TS, TT, T2U, T2V;
Chris@82 321 TS = cr[WS(rs, 6)];
Chris@82 322 TT = ci[WS(rs, 25)];
Chris@82 323 TU = TS + TT;
Chris@82 324 T2O = TS - TT;
Chris@82 325 T2U = ci[WS(rs, 41)];
Chris@82 326 T2V = cr[WS(rs, 54)];
Chris@82 327 T2W = T2U + T2V;
Chris@82 328 Tdd = T2U - T2V;
Chris@82 329 }
Chris@82 330 {
Chris@82 331 E TV, TW, T2P, T2Q;
Chris@82 332 TV = ci[WS(rs, 9)];
Chris@82 333 TW = cr[WS(rs, 22)];
Chris@82 334 TX = TV + TW;
Chris@82 335 T2T = TV - TW;
Chris@82 336 T2P = ci[WS(rs, 57)];
Chris@82 337 T2Q = cr[WS(rs, 38)];
Chris@82 338 T2R = T2P + T2Q;
Chris@82 339 Tde = T2P - T2Q;
Chris@82 340 }
Chris@82 341 TY = TU + TX;
Chris@82 342 Tdf = Tdd - Tde;
Chris@82 343 ThA = Tde + Tdd;
Chris@82 344 T2S = T2O + T2R;
Chris@82 345 T2X = T2T + T2W;
Chris@82 346 T36 = T2T - T2W;
Chris@82 347 Tda = TU - TX;
Chris@82 348 T35 = T2O - T2R;
Chris@82 349 }
Chris@82 350 {
Chris@82 351 E TF, T3f, T3n, Tdo, TI, T3k, T3i, Tdp;
Chris@82 352 {
Chris@82 353 E TD, TE, T3l, T3m;
Chris@82 354 TD = cr[WS(rs, 10)];
Chris@82 355 TE = ci[WS(rs, 21)];
Chris@82 356 TF = TD + TE;
Chris@82 357 T3f = TD - TE;
Chris@82 358 T3l = ci[WS(rs, 37)];
Chris@82 359 T3m = cr[WS(rs, 58)];
Chris@82 360 T3n = T3l + T3m;
Chris@82 361 Tdo = T3l - T3m;
Chris@82 362 }
Chris@82 363 {
Chris@82 364 E TG, TH, T3g, T3h;
Chris@82 365 TG = ci[WS(rs, 5)];
Chris@82 366 TH = cr[WS(rs, 26)];
Chris@82 367 TI = TG + TH;
Chris@82 368 T3k = TG - TH;
Chris@82 369 T3g = ci[WS(rs, 53)];
Chris@82 370 T3h = cr[WS(rs, 42)];
Chris@82 371 T3i = T3g + T3h;
Chris@82 372 Tdp = T3g - T3h;
Chris@82 373 }
Chris@82 374 TJ = TF + TI;
Chris@82 375 Tdq = Tdo - Tdp;
Chris@82 376 ThD = Tdp + Tdo;
Chris@82 377 T3j = T3f + T3i;
Chris@82 378 T3o = T3k + T3n;
Chris@82 379 T3x = T3k - T3n;
Chris@82 380 Tdl = TF - TI;
Chris@82 381 T3w = T3f - T3i;
Chris@82 382 }
Chris@82 383 {
Chris@82 384 E TN, T30, T33, Td8, TQ, T2J, T2M, Td7;
Chris@82 385 {
Chris@82 386 E TL, TM, T31, T32;
Chris@82 387 TL = ci[WS(rs, 1)];
Chris@82 388 TM = cr[WS(rs, 30)];
Chris@82 389 TN = TL + TM;
Chris@82 390 T30 = TL - TM;
Chris@82 391 T31 = ci[WS(rs, 49)];
Chris@82 392 T32 = cr[WS(rs, 46)];
Chris@82 393 T33 = T31 + T32;
Chris@82 394 Td8 = T31 - T32;
Chris@82 395 }
Chris@82 396 {
Chris@82 397 E TO, TP, T2K, T2L;
Chris@82 398 TO = cr[WS(rs, 14)];
Chris@82 399 TP = ci[WS(rs, 17)];
Chris@82 400 TQ = TO + TP;
Chris@82 401 T2J = TO - TP;
Chris@82 402 T2K = ci[WS(rs, 33)];
Chris@82 403 T2L = cr[WS(rs, 62)];
Chris@82 404 T2M = T2K + T2L;
Chris@82 405 Td7 = T2K - T2L;
Chris@82 406 }
Chris@82 407 TR = TN + TQ;
Chris@82 408 Tdc = TN - TQ;
Chris@82 409 Thz = Td7 + Td8;
Chris@82 410 T2N = T2J - T2M;
Chris@82 411 T34 = T30 - T33;
Chris@82 412 T8Z = T30 + T33;
Chris@82 413 Td9 = Td7 - Td8;
Chris@82 414 T8W = T2J + T2M;
Chris@82 415 }
Chris@82 416 {
Chris@82 417 E TK, TZ, Tdm, Tdr;
Chris@82 418 TK = TC + TJ;
Chris@82 419 TZ = TR + TY;
Chris@82 420 T10 = TK + TZ;
Chris@82 421 Ti3 = TK - TZ;
Chris@82 422 {
Chris@82 423 E Tjc, Tjd, ThB, ThE;
Chris@82 424 Tjc = TC - TJ;
Chris@82 425 Tjd = ThC - ThD;
Chris@82 426 Tje = Tjc + Tjd;
Chris@82 427 TjC = Tjc - Tjd;
Chris@82 428 ThB = Thz + ThA;
Chris@82 429 ThE = ThC + ThD;
Chris@82 430 ThF = ThB - ThE;
Chris@82 431 TiI = ThE + ThB;
Chris@82 432 }
Chris@82 433 Tdm = Tdk - Tdl;
Chris@82 434 Tdr = Tdn - Tdq;
Chris@82 435 Tds = FNMS(KP414213562, Tdr, Tdm);
Chris@82 436 TeA = FMA(KP414213562, Tdm, Tdr);
Chris@82 437 {
Chris@82 438 E Tj9, Tja, Tdb, Tdg;
Chris@82 439 Tj9 = Thz - ThA;
Chris@82 440 Tja = TR - TY;
Chris@82 441 Tjb = Tj9 - Tja;
Chris@82 442 TjD = Tja + Tj9;
Chris@82 443 Tdb = Td9 - Tda;
Chris@82 444 Tdg = Tdc - Tdf;
Chris@82 445 Tdh = FMA(KP414213562, Tdg, Tdb);
Chris@82 446 TeB = FNMS(KP414213562, Tdb, Tdg);
Chris@82 447 }
Chris@82 448 }
Chris@82 449 {
Chris@82 450 E TfR, TfS, TfU, TfV;
Chris@82 451 TfR = Tda + Td9;
Chris@82 452 TfS = Tdc + Tdf;
Chris@82 453 TfT = FNMS(KP414213562, TfS, TfR);
Chris@82 454 Tgl = FMA(KP414213562, TfR, TfS);
Chris@82 455 TfU = Tdl + Tdk;
Chris@82 456 TfV = Tdn + Tdq;
Chris@82 457 TfW = FMA(KP414213562, TfV, TfU);
Chris@82 458 Tgk = FNMS(KP414213562, TfU, TfV);
Chris@82 459 {
Chris@82 460 E T2Z, T6X, T38, T6Y, T2Y, T37;
Chris@82 461 T2Y = T2S - T2X;
Chris@82 462 T2Z = FMA(KP707106781, T2Y, T2N);
Chris@82 463 T6X = FNMS(KP707106781, T2Y, T2N);
Chris@82 464 T37 = T35 + T36;
Chris@82 465 T38 = FMA(KP707106781, T37, T34);
Chris@82 466 T6Y = FNMS(KP707106781, T37, T34);
Chris@82 467 T39 = FNMS(KP198912367, T38, T2Z);
Chris@82 468 T7r = FNMS(KP668178637, T6X, T6Y);
Chris@82 469 T5H = FMA(KP198912367, T2Z, T38);
Chris@82 470 T6Z = FMA(KP668178637, T6Y, T6X);
Chris@82 471 }
Chris@82 472 }
Chris@82 473 {
Chris@82 474 E T8R, Tb9, T8U, Tba, T8Q, T8T;
Chris@82 475 T8Q = T3x - T3w;
Chris@82 476 T8R = FNMS(KP707106781, T8Q, T8P);
Chris@82 477 Tb9 = FMA(KP707106781, T8Q, T8P);
Chris@82 478 T8T = T3j + T3o;
Chris@82 479 T8U = FNMS(KP707106781, T8T, T8S);
Chris@82 480 Tba = FMA(KP707106781, T8T, T8S);
Chris@82 481 T8V = FMA(KP668178637, T8U, T8R);
Chris@82 482 TbC = FMA(KP198912367, Tb9, Tba);
Chris@82 483 T9S = FNMS(KP668178637, T8R, T8U);
Chris@82 484 Tbb = FNMS(KP198912367, Tba, Tb9);
Chris@82 485 }
Chris@82 486 {
Chris@82 487 E T3q, T70, T3z, T71, T3p, T3y;
Chris@82 488 T3p = T3j - T3o;
Chris@82 489 T3q = FMA(KP707106781, T3p, T3e);
Chris@82 490 T70 = FNMS(KP707106781, T3p, T3e);
Chris@82 491 T3y = T3w + T3x;
Chris@82 492 T3z = FMA(KP707106781, T3y, T3v);
Chris@82 493 T71 = FNMS(KP707106781, T3y, T3v);
Chris@82 494 T3A = FMA(KP198912367, T3z, T3q);
Chris@82 495 T7q = FMA(KP668178637, T70, T71);
Chris@82 496 T5G = FNMS(KP198912367, T3q, T3z);
Chris@82 497 T72 = FNMS(KP668178637, T71, T70);
Chris@82 498 }
Chris@82 499 {
Chris@82 500 E T8Y, Tbc, T91, Tbd, T8X, T90;
Chris@82 501 T8X = T35 - T36;
Chris@82 502 T8Y = FNMS(KP707106781, T8X, T8W);
Chris@82 503 Tbc = FMA(KP707106781, T8X, T8W);
Chris@82 504 T90 = T2S + T2X;
Chris@82 505 T91 = FNMS(KP707106781, T90, T8Z);
Chris@82 506 Tbd = FMA(KP707106781, T90, T8Z);
Chris@82 507 T92 = FMA(KP668178637, T91, T8Y);
Chris@82 508 TbD = FMA(KP198912367, Tbc, Tbd);
Chris@82 509 T9T = FNMS(KP668178637, T8Y, T91);
Chris@82 510 Tbe = FNMS(KP198912367, Tbd, Tbc);
Chris@82 511 }
Chris@82 512 }
Chris@82 513 {
Chris@82 514 E T18, Ted, ThI, T4A, T5f, T9g, TdY, T95, T1u, Te4, ThM, T52, T57, T9c, Te1;
Chris@82 515 E T9b, T1f, Teg, ThJ, T4F, T4K, T5h, TdZ, T5g, T1n, Te9, ThL, T4R, T4W, T99;
Chris@82 516 E Te6, T98;
Chris@82 517 {
Chris@82 518 E T14, T5b, T5e, TdX, T17, T4w, T4z, TdW;
Chris@82 519 {
Chris@82 520 E T12, T13, T5c, T5d;
Chris@82 521 T12 = cr[WS(rs, 1)];
Chris@82 522 T13 = ci[WS(rs, 30)];
Chris@82 523 T14 = T12 + T13;
Chris@82 524 T5b = T12 - T13;
Chris@82 525 T5c = ci[WS(rs, 46)];
Chris@82 526 T5d = cr[WS(rs, 49)];
Chris@82 527 T5e = T5c + T5d;
Chris@82 528 TdX = T5c - T5d;
Chris@82 529 }
Chris@82 530 {
Chris@82 531 E T15, T16, T4x, T4y;
Chris@82 532 T15 = cr[WS(rs, 17)];
Chris@82 533 T16 = ci[WS(rs, 14)];
Chris@82 534 T17 = T15 + T16;
Chris@82 535 T4w = T15 - T16;
Chris@82 536 T4x = ci[WS(rs, 62)];
Chris@82 537 T4y = cr[WS(rs, 33)];
Chris@82 538 T4z = T4x + T4y;
Chris@82 539 TdW = T4x - T4y;
Chris@82 540 }
Chris@82 541 T18 = T14 + T17;
Chris@82 542 Ted = T14 - T17;
Chris@82 543 ThI = TdW + TdX;
Chris@82 544 T4A = T4w + T4z;
Chris@82 545 T5f = T5b - T5e;
Chris@82 546 T9g = T5b + T5e;
Chris@82 547 TdY = TdW - TdX;
Chris@82 548 T95 = T4z - T4w;
Chris@82 549 }
Chris@82 550 {
Chris@82 551 E T1q, T53, T56, Te3, T1t, T4Y, T51, Te2;
Chris@82 552 {
Chris@82 553 E T1o, T1p, T54, T55;
Chris@82 554 T1o = ci[WS(rs, 2)];
Chris@82 555 T1p = cr[WS(rs, 29)];
Chris@82 556 T1q = T1o + T1p;
Chris@82 557 T53 = T1o - T1p;
Chris@82 558 T54 = ci[WS(rs, 50)];
Chris@82 559 T55 = cr[WS(rs, 45)];
Chris@82 560 T56 = T54 + T55;
Chris@82 561 Te3 = T54 - T55;
Chris@82 562 }
Chris@82 563 {
Chris@82 564 E T1r, T1s, T4Z, T50;
Chris@82 565 T1r = cr[WS(rs, 13)];
Chris@82 566 T1s = ci[WS(rs, 18)];
Chris@82 567 T1t = T1r + T1s;
Chris@82 568 T4Y = T1r - T1s;
Chris@82 569 T4Z = ci[WS(rs, 34)];
Chris@82 570 T50 = cr[WS(rs, 61)];
Chris@82 571 T51 = T4Z + T50;
Chris@82 572 Te2 = T4Z - T50;
Chris@82 573 }
Chris@82 574 T1u = T1q + T1t;
Chris@82 575 Te4 = Te2 - Te3;
Chris@82 576 ThM = Te2 + Te3;
Chris@82 577 T52 = T4Y - T51;
Chris@82 578 T57 = T53 - T56;
Chris@82 579 T9c = T4Y + T51;
Chris@82 580 Te1 = T1q - T1t;
Chris@82 581 T9b = T53 + T56;
Chris@82 582 }
Chris@82 583 {
Chris@82 584 E T1b, T4B, T4J, Tee, T1e, T4G, T4E, Tef;
Chris@82 585 {
Chris@82 586 E T19, T1a, T4H, T4I;
Chris@82 587 T19 = cr[WS(rs, 9)];
Chris@82 588 T1a = ci[WS(rs, 22)];
Chris@82 589 T1b = T19 + T1a;
Chris@82 590 T4B = T19 - T1a;
Chris@82 591 T4H = ci[WS(rs, 38)];
Chris@82 592 T4I = cr[WS(rs, 57)];
Chris@82 593 T4J = T4H + T4I;
Chris@82 594 Tee = T4H - T4I;
Chris@82 595 }
Chris@82 596 {
Chris@82 597 E T1c, T1d, T4C, T4D;
Chris@82 598 T1c = ci[WS(rs, 6)];
Chris@82 599 T1d = cr[WS(rs, 25)];
Chris@82 600 T1e = T1c + T1d;
Chris@82 601 T4G = T1c - T1d;
Chris@82 602 T4C = ci[WS(rs, 54)];
Chris@82 603 T4D = cr[WS(rs, 41)];
Chris@82 604 T4E = T4C + T4D;
Chris@82 605 Tef = T4C - T4D;
Chris@82 606 }
Chris@82 607 T1f = T1b + T1e;
Chris@82 608 Teg = Tee - Tef;
Chris@82 609 ThJ = Tef + Tee;
Chris@82 610 T4F = T4B + T4E;
Chris@82 611 T4K = T4G + T4J;
Chris@82 612 T5h = T4G - T4J;
Chris@82 613 TdZ = T1b - T1e;
Chris@82 614 T5g = T4B - T4E;
Chris@82 615 }
Chris@82 616 {
Chris@82 617 E T1j, T4S, T4V, Te8, T1m, T4N, T4Q, Te7;
Chris@82 618 {
Chris@82 619 E T1h, T1i, T4T, T4U;
Chris@82 620 T1h = cr[WS(rs, 5)];
Chris@82 621 T1i = ci[WS(rs, 26)];
Chris@82 622 T1j = T1h + T1i;
Chris@82 623 T4S = T1h - T1i;
Chris@82 624 T4T = ci[WS(rs, 42)];
Chris@82 625 T4U = cr[WS(rs, 53)];
Chris@82 626 T4V = T4T + T4U;
Chris@82 627 Te8 = T4T - T4U;
Chris@82 628 }
Chris@82 629 {
Chris@82 630 E T1k, T1l, T4O, T4P;
Chris@82 631 T1k = cr[WS(rs, 21)];
Chris@82 632 T1l = ci[WS(rs, 10)];
Chris@82 633 T1m = T1k + T1l;
Chris@82 634 T4N = T1k - T1l;
Chris@82 635 T4O = ci[WS(rs, 58)];
Chris@82 636 T4P = cr[WS(rs, 37)];
Chris@82 637 T4Q = T4O + T4P;
Chris@82 638 Te7 = T4O - T4P;
Chris@82 639 }
Chris@82 640 T1n = T1j + T1m;
Chris@82 641 Te9 = Te7 - Te8;
Chris@82 642 ThL = Te7 + Te8;
Chris@82 643 T4R = T4N + T4Q;
Chris@82 644 T4W = T4S - T4V;
Chris@82 645 T99 = T4Q - T4N;
Chris@82 646 Te6 = T1j - T1m;
Chris@82 647 T98 = T4S + T4V;
Chris@82 648 }
Chris@82 649 {
Chris@82 650 E T1g, T1v, Tjo, Tjp;
Chris@82 651 T1g = T18 + T1f;
Chris@82 652 T1v = T1n + T1u;
Chris@82 653 T1w = T1g + T1v;
Chris@82 654 ThH = T1g - T1v;
Chris@82 655 Tjo = ThI - ThJ;
Chris@82 656 Tjp = T1n - T1u;
Chris@82 657 Tjq = Tjo - Tjp;
Chris@82 658 Tke = Tjp + Tjo;
Chris@82 659 }
Chris@82 660 {
Chris@82 661 E Tjr, Tjs, ThK, ThN;
Chris@82 662 Tjr = T18 - T1f;
Chris@82 663 Tjs = ThM - ThL;
Chris@82 664 Tjt = Tjr - Tjs;
Chris@82 665 Tkf = Tjr + Tjs;
Chris@82 666 ThK = ThI + ThJ;
Chris@82 667 ThN = ThL + ThM;
Chris@82 668 ThO = ThK - ThN;
Chris@82 669 TiK = ThK + ThN;
Chris@82 670 }
Chris@82 671 {
Chris@82 672 E Te0, Tg9, Teb, Tga, Te5, Tea;
Chris@82 673 Te0 = TdY - TdZ;
Chris@82 674 Tg9 = Ted + Teg;
Chris@82 675 Te5 = Te1 + Te4;
Chris@82 676 Tea = Te6 - Te9;
Chris@82 677 Teb = Te5 - Tea;
Chris@82 678 Tga = Tea + Te5;
Chris@82 679 Tec = FNMS(KP707106781, Teb, Te0);
Chris@82 680 TgT = FMA(KP707106781, Tga, Tg9);
Chris@82 681 Tfc = FMA(KP707106781, Teb, Te0);
Chris@82 682 Tgb = FNMS(KP707106781, Tga, Tg9);
Chris@82 683 }
Chris@82 684 {
Chris@82 685 E Teh, Tg6, Tek, Tg7, Tei, Tej;
Chris@82 686 Teh = Ted - Teg;
Chris@82 687 Tg6 = TdZ + TdY;
Chris@82 688 Tei = Te6 + Te9;
Chris@82 689 Tej = Te4 - Te1;
Chris@82 690 Tek = Tei - Tej;
Chris@82 691 Tg7 = Tei + Tej;
Chris@82 692 Tel = FNMS(KP707106781, Tek, Teh);
Chris@82 693 TgU = FMA(KP707106781, Tg7, Tg6);
Chris@82 694 Tfd = FMA(KP707106781, Tek, Teh);
Chris@82 695 Tg8 = FNMS(KP707106781, Tg7, Tg6);
Chris@82 696 }
Chris@82 697 {
Chris@82 698 E T4M, T78, T5j, T75, T59, T76, T5m, T79, T4L, T5i;
Chris@82 699 T4L = T4F - T4K;
Chris@82 700 T4M = FMA(KP707106781, T4L, T4A);
Chris@82 701 T78 = FNMS(KP707106781, T4L, T4A);
Chris@82 702 T5i = T5g + T5h;
Chris@82 703 T5j = FMA(KP707106781, T5i, T5f);
Chris@82 704 T75 = FNMS(KP707106781, T5i, T5f);
Chris@82 705 {
Chris@82 706 E T4X, T58, T5k, T5l;
Chris@82 707 T4X = FMA(KP414213562, T4W, T4R);
Chris@82 708 T58 = FNMS(KP414213562, T57, T52);
Chris@82 709 T59 = T4X + T58;
Chris@82 710 T76 = T4X - T58;
Chris@82 711 T5k = FNMS(KP414213562, T4R, T4W);
Chris@82 712 T5l = FMA(KP414213562, T52, T57);
Chris@82 713 T5m = T5k + T5l;
Chris@82 714 T79 = T5l - T5k;
Chris@82 715 }
Chris@82 716 T5a = FNMS(KP923879532, T59, T4M);
Chris@82 717 T82 = FMA(KP923879532, T79, T78);
Chris@82 718 T83 = FMA(KP923879532, T76, T75);
Chris@82 719 T5n = FNMS(KP923879532, T5m, T5j);
Chris@82 720 T6i = FMA(KP923879532, T59, T4M);
Chris@82 721 T77 = FNMS(KP923879532, T76, T75);
Chris@82 722 T7a = FNMS(KP923879532, T79, T78);
Chris@82 723 T6j = FMA(KP923879532, T5m, T5j);
Chris@82 724 }
Chris@82 725 {
Chris@82 726 E T97, Tbk, T9i, Tbh, T9e, Tbi, T9l, Tbl, T96, T9h;
Chris@82 727 T96 = T5h - T5g;
Chris@82 728 T97 = FNMS(KP707106781, T96, T95);
Chris@82 729 Tbk = FMA(KP707106781, T96, T95);
Chris@82 730 T9h = T4F + T4K;
Chris@82 731 T9i = FNMS(KP707106781, T9h, T9g);
Chris@82 732 Tbh = FMA(KP707106781, T9h, T9g);
Chris@82 733 {
Chris@82 734 E T9a, T9d, T9j, T9k;
Chris@82 735 T9a = FMA(KP414213562, T99, T98);
Chris@82 736 T9d = FMA(KP414213562, T9c, T9b);
Chris@82 737 T9e = T9a - T9d;
Chris@82 738 Tbi = T9a + T9d;
Chris@82 739 T9j = FNMS(KP414213562, T98, T99);
Chris@82 740 T9k = FNMS(KP414213562, T9b, T9c);
Chris@82 741 T9l = T9j + T9k;
Chris@82 742 Tbl = T9j - T9k;
Chris@82 743 }
Chris@82 744 T9f = FNMS(KP923879532, T9e, T97);
Chris@82 745 Tcb = FMA(KP923879532, Tbl, Tbk);
Chris@82 746 Tcc = FMA(KP923879532, Tbi, Tbh);
Chris@82 747 T9m = FMA(KP923879532, T9l, T9i);
Chris@82 748 Tar = FNMS(KP923879532, T9l, T9i);
Chris@82 749 Tbj = FNMS(KP923879532, Tbi, Tbh);
Chris@82 750 Tbm = FNMS(KP923879532, Tbl, Tbk);
Chris@82 751 Tas = FMA(KP923879532, T9e, T97);
Chris@82 752 }
Chris@82 753 }
Chris@82 754 {
Chris@82 755 E T1D, TdM, ThR, T3H, T4m, T9z, Tdx, T9o, T1Z, TdD, ThV, T49, T4e, T9s, TdA;
Chris@82 756 E T9r, T1K, TdP, ThS, T3M, T3R, T4o, Tdy, T4n, T1S, TdI, ThU, T3Y, T43, T9v;
Chris@82 757 E TdF, T9u;
Chris@82 758 {
Chris@82 759 E T1z, T4i, T4l, Tdw, T1C, T3D, T3G, Tdv;
Chris@82 760 {
Chris@82 761 E T1x, T1y, T4j, T4k;
Chris@82 762 T1x = ci[0];
Chris@82 763 T1y = cr[WS(rs, 31)];
Chris@82 764 T1z = T1x + T1y;
Chris@82 765 T4i = T1x - T1y;
Chris@82 766 T4j = ci[WS(rs, 48)];
Chris@82 767 T4k = cr[WS(rs, 47)];
Chris@82 768 T4l = T4j + T4k;
Chris@82 769 Tdw = T4j - T4k;
Chris@82 770 }
Chris@82 771 {
Chris@82 772 E T1A, T1B, T3E, T3F;
Chris@82 773 T1A = cr[WS(rs, 15)];
Chris@82 774 T1B = ci[WS(rs, 16)];
Chris@82 775 T1C = T1A + T1B;
Chris@82 776 T3D = T1A - T1B;
Chris@82 777 T3E = ci[WS(rs, 32)];
Chris@82 778 T3F = cr[WS(rs, 63)];
Chris@82 779 T3G = T3E + T3F;
Chris@82 780 Tdv = T3E - T3F;
Chris@82 781 }
Chris@82 782 T1D = T1z + T1C;
Chris@82 783 TdM = T1z - T1C;
Chris@82 784 ThR = Tdv + Tdw;
Chris@82 785 T3H = T3D - T3G;
Chris@82 786 T4m = T4i - T4l;
Chris@82 787 T9z = T4i + T4l;
Chris@82 788 Tdx = Tdv - Tdw;
Chris@82 789 T9o = T3D + T3G;
Chris@82 790 }
Chris@82 791 {
Chris@82 792 E T1V, T4a, T4d, TdC, T1Y, T45, T48, TdB;
Chris@82 793 {
Chris@82 794 E T1T, T1U, T4b, T4c;
Chris@82 795 T1T = ci[WS(rs, 4)];
Chris@82 796 T1U = cr[WS(rs, 27)];
Chris@82 797 T1V = T1T + T1U;
Chris@82 798 T4a = T1T - T1U;
Chris@82 799 T4b = ci[WS(rs, 52)];
Chris@82 800 T4c = cr[WS(rs, 43)];
Chris@82 801 T4d = T4b + T4c;
Chris@82 802 TdC = T4b - T4c;
Chris@82 803 }
Chris@82 804 {
Chris@82 805 E T1W, T1X, T46, T47;
Chris@82 806 T1W = cr[WS(rs, 11)];
Chris@82 807 T1X = ci[WS(rs, 20)];
Chris@82 808 T1Y = T1W + T1X;
Chris@82 809 T45 = T1W - T1X;
Chris@82 810 T46 = ci[WS(rs, 36)];
Chris@82 811 T47 = cr[WS(rs, 59)];
Chris@82 812 T48 = T46 + T47;
Chris@82 813 TdB = T46 - T47;
Chris@82 814 }
Chris@82 815 T1Z = T1V + T1Y;
Chris@82 816 TdD = TdB - TdC;
Chris@82 817 ThV = TdB + TdC;
Chris@82 818 T49 = T45 - T48;
Chris@82 819 T4e = T4a - T4d;
Chris@82 820 T9s = T45 + T48;
Chris@82 821 TdA = T1V - T1Y;
Chris@82 822 T9r = T4a + T4d;
Chris@82 823 }
Chris@82 824 {
Chris@82 825 E T1G, T3I, T3Q, TdN, T1J, T3N, T3L, TdO;
Chris@82 826 {
Chris@82 827 E T1E, T1F, T3O, T3P;
Chris@82 828 T1E = cr[WS(rs, 7)];
Chris@82 829 T1F = ci[WS(rs, 24)];
Chris@82 830 T1G = T1E + T1F;
Chris@82 831 T3I = T1E - T1F;
Chris@82 832 T3O = ci[WS(rs, 40)];
Chris@82 833 T3P = cr[WS(rs, 55)];
Chris@82 834 T3Q = T3O + T3P;
Chris@82 835 TdN = T3O - T3P;
Chris@82 836 }
Chris@82 837 {
Chris@82 838 E T1H, T1I, T3J, T3K;
Chris@82 839 T1H = ci[WS(rs, 8)];
Chris@82 840 T1I = cr[WS(rs, 23)];
Chris@82 841 T1J = T1H + T1I;
Chris@82 842 T3N = T1H - T1I;
Chris@82 843 T3J = ci[WS(rs, 56)];
Chris@82 844 T3K = cr[WS(rs, 39)];
Chris@82 845 T3L = T3J + T3K;
Chris@82 846 TdO = T3J - T3K;
Chris@82 847 }
Chris@82 848 T1K = T1G + T1J;
Chris@82 849 TdP = TdN - TdO;
Chris@82 850 ThS = TdO + TdN;
Chris@82 851 T3M = T3I + T3L;
Chris@82 852 T3R = T3N + T3Q;
Chris@82 853 T4o = T3N - T3Q;
Chris@82 854 Tdy = T1G - T1J;
Chris@82 855 T4n = T3I - T3L;
Chris@82 856 }
Chris@82 857 {
Chris@82 858 E T1O, T3Z, T42, TdH, T1R, T3U, T3X, TdG;
Chris@82 859 {
Chris@82 860 E T1M, T1N, T40, T41;
Chris@82 861 T1M = cr[WS(rs, 3)];
Chris@82 862 T1N = ci[WS(rs, 28)];
Chris@82 863 T1O = T1M + T1N;
Chris@82 864 T3Z = T1M - T1N;
Chris@82 865 T40 = ci[WS(rs, 44)];
Chris@82 866 T41 = cr[WS(rs, 51)];
Chris@82 867 T42 = T40 + T41;
Chris@82 868 TdH = T40 - T41;
Chris@82 869 }
Chris@82 870 {
Chris@82 871 E T1P, T1Q, T3V, T3W;
Chris@82 872 T1P = cr[WS(rs, 19)];
Chris@82 873 T1Q = ci[WS(rs, 12)];
Chris@82 874 T1R = T1P + T1Q;
Chris@82 875 T3U = T1P - T1Q;
Chris@82 876 T3V = ci[WS(rs, 60)];
Chris@82 877 T3W = cr[WS(rs, 35)];
Chris@82 878 T3X = T3V + T3W;
Chris@82 879 TdG = T3V - T3W;
Chris@82 880 }
Chris@82 881 T1S = T1O + T1R;
Chris@82 882 TdI = TdG - TdH;
Chris@82 883 ThU = TdG + TdH;
Chris@82 884 T3Y = T3U + T3X;
Chris@82 885 T43 = T3Z - T42;
Chris@82 886 T9v = T3U - T3X;
Chris@82 887 TdF = T1O - T1R;
Chris@82 888 T9u = T3Z + T42;
Chris@82 889 }
Chris@82 890 {
Chris@82 891 E T1L, T20, Tjh, Tji;
Chris@82 892 T1L = T1D + T1K;
Chris@82 893 T20 = T1S + T1Z;
Chris@82 894 T21 = T1L + T20;
Chris@82 895 ThQ = T1L - T20;
Chris@82 896 Tjh = ThR - ThS;
Chris@82 897 Tji = T1S - T1Z;
Chris@82 898 Tjj = Tjh - Tji;
Chris@82 899 Tkb = Tji + Tjh;
Chris@82 900 }
Chris@82 901 {
Chris@82 902 E Tjk, Tjl, ThT, ThW;
Chris@82 903 Tjk = T1D - T1K;
Chris@82 904 Tjl = ThV - ThU;
Chris@82 905 Tjm = Tjk - Tjl;
Chris@82 906 Tkc = Tjk + Tjl;
Chris@82 907 ThT = ThR + ThS;
Chris@82 908 ThW = ThU + ThV;
Chris@82 909 ThX = ThT - ThW;
Chris@82 910 TiL = ThT + ThW;
Chris@82 911 }
Chris@82 912 {
Chris@82 913 E Tdz, Tg2, TdK, Tg3, TdE, TdJ;
Chris@82 914 Tdz = Tdx - Tdy;
Chris@82 915 Tg2 = TdM + TdP;
Chris@82 916 TdE = TdA + TdD;
Chris@82 917 TdJ = TdF - TdI;
Chris@82 918 TdK = TdE - TdJ;
Chris@82 919 Tg3 = TdJ + TdE;
Chris@82 920 TdL = FNMS(KP707106781, TdK, Tdz);
Chris@82 921 TgW = FMA(KP707106781, Tg3, Tg2);
Chris@82 922 Tf9 = FMA(KP707106781, TdK, Tdz);
Chris@82 923 Tg4 = FNMS(KP707106781, Tg3, Tg2);
Chris@82 924 }
Chris@82 925 {
Chris@82 926 E TdQ, TfZ, TdT, Tg0, TdR, TdS;
Chris@82 927 TdQ = TdM - TdP;
Chris@82 928 TfZ = Tdy + Tdx;
Chris@82 929 TdR = TdF + TdI;
Chris@82 930 TdS = TdD - TdA;
Chris@82 931 TdT = TdR - TdS;
Chris@82 932 Tg0 = TdR + TdS;
Chris@82 933 TdU = FNMS(KP707106781, TdT, TdQ);
Chris@82 934 TgX = FMA(KP707106781, Tg0, TfZ);
Chris@82 935 Tfa = FMA(KP707106781, TdT, TdQ);
Chris@82 936 Tg1 = FNMS(KP707106781, Tg0, TfZ);
Chris@82 937 }
Chris@82 938 {
Chris@82 939 E T3T, T7f, T4q, T7c, T4g, T7d, T4t, T7g, T3S, T4p;
Chris@82 940 T3S = T3M - T3R;
Chris@82 941 T3T = FMA(KP707106781, T3S, T3H);
Chris@82 942 T7f = FNMS(KP707106781, T3S, T3H);
Chris@82 943 T4p = T4n + T4o;
Chris@82 944 T4q = FMA(KP707106781, T4p, T4m);
Chris@82 945 T7c = FNMS(KP707106781, T4p, T4m);
Chris@82 946 {
Chris@82 947 E T44, T4f, T4r, T4s;
Chris@82 948 T44 = FMA(KP414213562, T43, T3Y);
Chris@82 949 T4f = FNMS(KP414213562, T4e, T49);
Chris@82 950 T4g = T44 + T4f;
Chris@82 951 T7d = T44 - T4f;
Chris@82 952 T4r = FNMS(KP414213562, T3Y, T43);
Chris@82 953 T4s = FMA(KP414213562, T49, T4e);
Chris@82 954 T4t = T4r + T4s;
Chris@82 955 T7g = T4s - T4r;
Chris@82 956 }
Chris@82 957 T4h = FNMS(KP923879532, T4g, T3T);
Chris@82 958 T7Z = FMA(KP923879532, T7g, T7f);
Chris@82 959 T80 = FMA(KP923879532, T7d, T7c);
Chris@82 960 T4u = FNMS(KP923879532, T4t, T4q);
Chris@82 961 T6f = FMA(KP923879532, T4g, T3T);
Chris@82 962 T7e = FNMS(KP923879532, T7d, T7c);
Chris@82 963 T7h = FNMS(KP923879532, T7g, T7f);
Chris@82 964 T6g = FMA(KP923879532, T4t, T4q);
Chris@82 965 }
Chris@82 966 {
Chris@82 967 E T9q, Tbr, T9B, Tbo, T9x, Tbp, T9E, Tbs, T9p, T9A;
Chris@82 968 T9p = T4n - T4o;
Chris@82 969 T9q = FNMS(KP707106781, T9p, T9o);
Chris@82 970 Tbr = FMA(KP707106781, T9p, T9o);
Chris@82 971 T9A = T3M + T3R;
Chris@82 972 T9B = FNMS(KP707106781, T9A, T9z);
Chris@82 973 Tbo = FMA(KP707106781, T9A, T9z);
Chris@82 974 {
Chris@82 975 E T9t, T9w, T9C, T9D;
Chris@82 976 T9t = FMA(KP414213562, T9s, T9r);
Chris@82 977 T9w = FNMS(KP414213562, T9v, T9u);
Chris@82 978 T9x = T9t - T9w;
Chris@82 979 Tbp = T9w + T9t;
Chris@82 980 T9C = FMA(KP414213562, T9u, T9v);
Chris@82 981 T9D = FNMS(KP414213562, T9r, T9s);
Chris@82 982 T9E = T9C - T9D;
Chris@82 983 Tbs = T9C + T9D;
Chris@82 984 }
Chris@82 985 T9y = FNMS(KP923879532, T9x, T9q);
Chris@82 986 Tce = FMA(KP923879532, Tbs, Tbr);
Chris@82 987 Tcf = FMA(KP923879532, Tbp, Tbo);
Chris@82 988 T9F = FNMS(KP923879532, T9E, T9B);
Chris@82 989 Tau = FMA(KP923879532, T9E, T9B);
Chris@82 990 Tbq = FNMS(KP923879532, Tbp, Tbo);
Chris@82 991 Tbt = FNMS(KP923879532, Tbs, Tbr);
Chris@82 992 Tav = FMA(KP923879532, T9x, T9q);
Chris@82 993 }
Chris@82 994 }
Chris@82 995 {
Chris@82 996 E T11, T22, TiE, TiJ, TiM, TiN;
Chris@82 997 T11 = Tv + T10;
Chris@82 998 T22 = T1w + T21;
Chris@82 999 TiE = T11 - T22;
Chris@82 1000 TiJ = TiH + TiI;
Chris@82 1001 TiM = TiK + TiL;
Chris@82 1002 TiN = TiJ - TiM;
Chris@82 1003 cr[0] = T11 + T22;
Chris@82 1004 ci[0] = TiJ + TiM;
Chris@82 1005 {
Chris@82 1006 E TiD, TiF, TiG, TiO;
Chris@82 1007 TiD = W[62];
Chris@82 1008 TiF = TiD * TiE;
Chris@82 1009 TiG = W[63];
Chris@82 1010 TiO = TiG * TiE;
Chris@82 1011 cr[WS(rs, 32)] = FNMS(TiG, TiN, TiF);
Chris@82 1012 ci[WS(rs, 32)] = FMA(TiD, TiN, TiO);
Chris@82 1013 }
Chris@82 1014 }
Chris@82 1015 {
Chris@82 1016 E TiS, Tj0, TiX, Tj3;
Chris@82 1017 {
Chris@82 1018 E TiQ, TiR, TiV, TiW;
Chris@82 1019 TiQ = Tv - T10;
Chris@82 1020 TiR = TiL - TiK;
Chris@82 1021 TiS = TiQ - TiR;
Chris@82 1022 Tj0 = TiQ + TiR;
Chris@82 1023 TiV = TiH - TiI;
Chris@82 1024 TiW = T1w - T21;
Chris@82 1025 TiX = TiV - TiW;
Chris@82 1026 Tj3 = TiW + TiV;
Chris@82 1027 }
Chris@82 1028 {
Chris@82 1029 E TiT, TiY, TiP, TiU;
Chris@82 1030 TiP = W[94];
Chris@82 1031 TiT = TiP * TiS;
Chris@82 1032 TiY = TiP * TiX;
Chris@82 1033 TiU = W[95];
Chris@82 1034 cr[WS(rs, 48)] = FNMS(TiU, TiX, TiT);
Chris@82 1035 ci[WS(rs, 48)] = FMA(TiU, TiS, TiY);
Chris@82 1036 }
Chris@82 1037 {
Chris@82 1038 E Tj1, Tj4, TiZ, Tj2;
Chris@82 1039 TiZ = W[30];
Chris@82 1040 Tj1 = TiZ * Tj0;
Chris@82 1041 Tj4 = TiZ * Tj3;
Chris@82 1042 Tj2 = W[31];
Chris@82 1043 cr[WS(rs, 16)] = FNMS(Tj2, Tj3, Tj1);
Chris@82 1044 ci[WS(rs, 16)] = FMA(Tj2, Tj0, Tj4);
Chris@82 1045 }
Chris@82 1046 }
Chris@82 1047 {
Chris@82 1048 E Tib, Tie, Tiy, Tiq, Ti0, TiB, Tii, Tiv;
Chris@82 1049 Tib = Ti3 + Tia;
Chris@82 1050 {
Chris@82 1051 E Tio, Tic, Tid, Tip;
Chris@82 1052 Tio = Thy - ThF;
Chris@82 1053 Tic = ThH + ThO;
Chris@82 1054 Tid = ThX - ThQ;
Chris@82 1055 Tip = Tid - Tic;
Chris@82 1056 Tie = Tic + Tid;
Chris@82 1057 Tiy = FMA(KP707106781, Tip, Tio);
Chris@82 1058 Tiq = FNMS(KP707106781, Tip, Tio);
Chris@82 1059 }
Chris@82 1060 {
Chris@82 1061 E ThG, Tit, ThZ, Tiu, ThP, ThY;
Chris@82 1062 ThG = Thy + ThF;
Chris@82 1063 Tit = Tia - Ti3;
Chris@82 1064 ThP = ThH - ThO;
Chris@82 1065 ThY = ThQ + ThX;
Chris@82 1066 ThZ = ThP + ThY;
Chris@82 1067 Tiu = ThP - ThY;
Chris@82 1068 Ti0 = FNMS(KP707106781, ThZ, ThG);
Chris@82 1069 TiB = FMA(KP707106781, Tiu, Tit);
Chris@82 1070 Tii = FMA(KP707106781, ThZ, ThG);
Chris@82 1071 Tiv = FNMS(KP707106781, Tiu, Tit);
Chris@82 1072 }
Chris@82 1073 {
Chris@82 1074 E Tir, Tiw, Tin, Tis;
Chris@82 1075 Tin = W[110];
Chris@82 1076 Tir = Tin * Tiq;
Chris@82 1077 Tiw = Tin * Tiv;
Chris@82 1078 Tis = W[111];
Chris@82 1079 cr[WS(rs, 56)] = FNMS(Tis, Tiv, Tir);
Chris@82 1080 ci[WS(rs, 56)] = FMA(Tis, Tiq, Tiw);
Chris@82 1081 }
Chris@82 1082 {
Chris@82 1083 E Tiz, TiC, Tix, TiA;
Chris@82 1084 Tix = W[46];
Chris@82 1085 Tiz = Tix * Tiy;
Chris@82 1086 TiC = Tix * TiB;
Chris@82 1087 TiA = W[47];
Chris@82 1088 cr[WS(rs, 24)] = FNMS(TiA, TiB, Tiz);
Chris@82 1089 ci[WS(rs, 24)] = FMA(TiA, Tiy, TiC);
Chris@82 1090 }
Chris@82 1091 {
Chris@82 1092 E Tif, Ti2, Tig, Thx, Ti1;
Chris@82 1093 Tif = FNMS(KP707106781, Tie, Tib);
Chris@82 1094 Ti2 = W[79];
Chris@82 1095 Tig = Ti2 * Ti0;
Chris@82 1096 Thx = W[78];
Chris@82 1097 Ti1 = Thx * Ti0;
Chris@82 1098 cr[WS(rs, 40)] = FNMS(Ti2, Tif, Ti1);
Chris@82 1099 ci[WS(rs, 40)] = FMA(Thx, Tif, Tig);
Chris@82 1100 }
Chris@82 1101 {
Chris@82 1102 E Til, Tik, Tim, Tih, Tij;
Chris@82 1103 Til = FMA(KP707106781, Tie, Tib);
Chris@82 1104 Tik = W[15];
Chris@82 1105 Tim = Tik * Tii;
Chris@82 1106 Tih = W[14];
Chris@82 1107 Tij = Tih * Tii;
Chris@82 1108 cr[WS(rs, 8)] = FNMS(Tik, Til, Tij);
Chris@82 1109 ci[WS(rs, 8)] = FMA(Tih, Til, Tim);
Chris@82 1110 }
Chris@82 1111 }
Chris@82 1112 {
Chris@82 1113 E Tjw, Tk2, Tk5, TjF, TjI, TjU, TjZ, TjM;
Chris@82 1114 {
Chris@82 1115 E TjE, TjX, Tjg, TjS, TjG, TjH, TjT, Tjv, TjY, Tjf, Tjn, Tju;
Chris@82 1116 TjE = TjC - TjD;
Chris@82 1117 TjX = FNMS(KP707106781, TjE, TjB);
Chris@82 1118 Tjf = Tjb - Tje;
Chris@82 1119 Tjg = FMA(KP707106781, Tjf, Tj8);
Chris@82 1120 TjS = FNMS(KP707106781, Tjf, Tj8);
Chris@82 1121 TjG = FMA(KP414213562, Tjq, Tjt);
Chris@82 1122 TjH = FNMS(KP414213562, Tjj, Tjm);
Chris@82 1123 TjT = TjG + TjH;
Chris@82 1124 Tjn = FMA(KP414213562, Tjm, Tjj);
Chris@82 1125 Tju = FNMS(KP414213562, Tjt, Tjq);
Chris@82 1126 Tjv = Tjn - Tju;
Chris@82 1127 TjY = Tju + Tjn;
Chris@82 1128 Tjw = FNMS(KP923879532, Tjv, Tjg);
Chris@82 1129 Tk2 = FMA(KP923879532, TjT, TjS);
Chris@82 1130 Tk5 = FMA(KP923879532, TjY, TjX);
Chris@82 1131 TjF = FMA(KP707106781, TjE, TjB);
Chris@82 1132 TjI = TjG - TjH;
Chris@82 1133 TjU = FNMS(KP923879532, TjT, TjS);
Chris@82 1134 TjZ = FNMS(KP923879532, TjY, TjX);
Chris@82 1135 TjM = FMA(KP923879532, Tjv, Tjg);
Chris@82 1136 }
Chris@82 1137 {
Chris@82 1138 E TjV, Tk0, TjR, TjW;
Chris@82 1139 TjR = W[54];
Chris@82 1140 TjV = TjR * TjU;
Chris@82 1141 Tk0 = TjR * TjZ;
Chris@82 1142 TjW = W[55];
Chris@82 1143 cr[WS(rs, 28)] = FNMS(TjW, TjZ, TjV);
Chris@82 1144 ci[WS(rs, 28)] = FMA(TjW, TjU, Tk0);
Chris@82 1145 }
Chris@82 1146 {
Chris@82 1147 E Tk3, Tk6, Tk1, Tk4;
Chris@82 1148 Tk1 = W[118];
Chris@82 1149 Tk3 = Tk1 * Tk2;
Chris@82 1150 Tk6 = Tk1 * Tk5;
Chris@82 1151 Tk4 = W[119];
Chris@82 1152 cr[WS(rs, 60)] = FNMS(Tk4, Tk5, Tk3);
Chris@82 1153 ci[WS(rs, 60)] = FMA(Tk4, Tk2, Tk6);
Chris@82 1154 }
Chris@82 1155 {
Chris@82 1156 E TjJ, Tjy, TjK, Tj5, Tjx;
Chris@82 1157 TjJ = FNMS(KP923879532, TjI, TjF);
Chris@82 1158 Tjy = W[87];
Chris@82 1159 TjK = Tjy * Tjw;
Chris@82 1160 Tj5 = W[86];
Chris@82 1161 Tjx = Tj5 * Tjw;
Chris@82 1162 cr[WS(rs, 44)] = FNMS(Tjy, TjJ, Tjx);
Chris@82 1163 ci[WS(rs, 44)] = FMA(Tj5, TjJ, TjK);
Chris@82 1164 }
Chris@82 1165 {
Chris@82 1166 E TjP, TjO, TjQ, TjL, TjN;
Chris@82 1167 TjP = FMA(KP923879532, TjI, TjF);
Chris@82 1168 TjO = W[23];
Chris@82 1169 TjQ = TjO * TjM;
Chris@82 1170 TjL = W[22];
Chris@82 1171 TjN = TjL * TjM;
Chris@82 1172 cr[WS(rs, 12)] = FNMS(TjO, TjP, TjN);
Chris@82 1173 ci[WS(rs, 12)] = FMA(TjL, TjP, TjQ);
Chris@82 1174 }
Chris@82 1175 }
Chris@82 1176 {
Chris@82 1177 E Tki, TkK, TkN, Tkn, Tkq, TkC, TkH, Tku;
Chris@82 1178 {
Chris@82 1179 E Tkm, TkF, Tka, TkA, Tko, Tkp, TkB, Tkh, TkG, Tk9, Tkd, Tkg;
Chris@82 1180 Tkm = Tje + Tjb;
Chris@82 1181 TkF = FMA(KP707106781, Tkm, Tkl);
Chris@82 1182 Tk9 = TjC + TjD;
Chris@82 1183 Tka = FNMS(KP707106781, Tk9, Tk8);
Chris@82 1184 TkA = FMA(KP707106781, Tk9, Tk8);
Chris@82 1185 Tko = FNMS(KP414213562, Tke, Tkf);
Chris@82 1186 Tkp = FMA(KP414213562, Tkb, Tkc);
Chris@82 1187 TkB = Tko + Tkp;
Chris@82 1188 Tkd = FNMS(KP414213562, Tkc, Tkb);
Chris@82 1189 Tkg = FMA(KP414213562, Tkf, Tke);
Chris@82 1190 Tkh = Tkd - Tkg;
Chris@82 1191 TkG = Tkg + Tkd;
Chris@82 1192 Tki = FNMS(KP923879532, Tkh, Tka);
Chris@82 1193 TkK = FMA(KP923879532, TkB, TkA);
Chris@82 1194 TkN = FMA(KP923879532, TkG, TkF);
Chris@82 1195 Tkn = FNMS(KP707106781, Tkm, Tkl);
Chris@82 1196 Tkq = Tko - Tkp;
Chris@82 1197 TkC = FNMS(KP923879532, TkB, TkA);
Chris@82 1198 TkH = FNMS(KP923879532, TkG, TkF);
Chris@82 1199 Tku = FMA(KP923879532, Tkh, Tka);
Chris@82 1200 }
Chris@82 1201 {
Chris@82 1202 E TkD, TkI, Tkz, TkE;
Chris@82 1203 Tkz = W[70];
Chris@82 1204 TkD = Tkz * TkC;
Chris@82 1205 TkI = Tkz * TkH;
Chris@82 1206 TkE = W[71];
Chris@82 1207 cr[WS(rs, 36)] = FNMS(TkE, TkH, TkD);
Chris@82 1208 ci[WS(rs, 36)] = FMA(TkE, TkC, TkI);
Chris@82 1209 }
Chris@82 1210 {
Chris@82 1211 E TkL, TkO, TkJ, TkM;
Chris@82 1212 TkJ = W[6];
Chris@82 1213 TkL = TkJ * TkK;
Chris@82 1214 TkO = TkJ * TkN;
Chris@82 1215 TkM = W[7];
Chris@82 1216 cr[WS(rs, 4)] = FNMS(TkM, TkN, TkL);
Chris@82 1217 ci[WS(rs, 4)] = FMA(TkM, TkK, TkO);
Chris@82 1218 }
Chris@82 1219 {
Chris@82 1220 E Tkr, Tkk, Tks, Tk7, Tkj;
Chris@82 1221 Tkr = FNMS(KP923879532, Tkq, Tkn);
Chris@82 1222 Tkk = W[103];
Chris@82 1223 Tks = Tkk * Tki;
Chris@82 1224 Tk7 = W[102];
Chris@82 1225 Tkj = Tk7 * Tki;
Chris@82 1226 cr[WS(rs, 52)] = FNMS(Tkk, Tkr, Tkj);
Chris@82 1227 ci[WS(rs, 52)] = FMA(Tk7, Tkr, Tks);
Chris@82 1228 }
Chris@82 1229 {
Chris@82 1230 E Tkx, Tkw, Tky, Tkt, Tkv;
Chris@82 1231 Tkx = FMA(KP923879532, Tkq, Tkn);
Chris@82 1232 Tkw = W[39];
Chris@82 1233 Tky = Tkw * Tku;
Chris@82 1234 Tkt = W[38];
Chris@82 1235 Tkv = Tkt * Tku;
Chris@82 1236 cr[WS(rs, 20)] = FNMS(Tkw, Tkx, Tkv);
Chris@82 1237 ci[WS(rs, 20)] = FMA(Tkt, Tkx, Tky);
Chris@82 1238 }
Chris@82 1239 }
Chris@82 1240 {
Chris@82 1241 E T5q, T66, T69, T5J, T5M, T5Y, T63, T5Q;
Chris@82 1242 {
Chris@82 1243 E T5F, T5I, T61, T5K, T5L, T5X, T3C, T5W, T5p, T62;
Chris@82 1244 T5F = FNMS(KP923879532, T5E, T5B);
Chris@82 1245 T5I = T5G - T5H;
Chris@82 1246 T61 = FNMS(KP980785280, T5I, T5F);
Chris@82 1247 T5K = FMA(KP820678790, T5a, T5n);
Chris@82 1248 T5L = FNMS(KP820678790, T4h, T4u);
Chris@82 1249 T5X = T5K + T5L;
Chris@82 1250 {
Chris@82 1251 E T2I, T3B, T4v, T5o;
Chris@82 1252 T2I = FNMS(KP923879532, T2H, T2k);
Chris@82 1253 T3B = T39 - T3A;
Chris@82 1254 T3C = FMA(KP980785280, T3B, T2I);
Chris@82 1255 T5W = FNMS(KP980785280, T3B, T2I);
Chris@82 1256 T4v = FMA(KP820678790, T4u, T4h);
Chris@82 1257 T5o = FNMS(KP820678790, T5n, T5a);
Chris@82 1258 T5p = T4v - T5o;
Chris@82 1259 T62 = T5o + T4v;
Chris@82 1260 }
Chris@82 1261 T5q = FNMS(KP773010453, T5p, T3C);
Chris@82 1262 T66 = FMA(KP773010453, T5X, T5W);
Chris@82 1263 T69 = FMA(KP773010453, T62, T61);
Chris@82 1264 T5J = FMA(KP980785280, T5I, T5F);
Chris@82 1265 T5M = T5K - T5L;
Chris@82 1266 T5Y = FNMS(KP773010453, T5X, T5W);
Chris@82 1267 T63 = FNMS(KP773010453, T62, T61);
Chris@82 1268 T5Q = FMA(KP773010453, T5p, T3C);
Chris@82 1269 }
Chris@82 1270 {
Chris@82 1271 E T5Z, T64, T5V, T60;
Chris@82 1272 T5V = W[48];
Chris@82 1273 T5Z = T5V * T5Y;
Chris@82 1274 T64 = T5V * T63;
Chris@82 1275 T60 = W[49];
Chris@82 1276 cr[WS(rs, 25)] = FNMS(T60, T63, T5Z);
Chris@82 1277 ci[WS(rs, 25)] = FMA(T60, T5Y, T64);
Chris@82 1278 }
Chris@82 1279 {
Chris@82 1280 E T67, T6a, T65, T68;
Chris@82 1281 T65 = W[112];
Chris@82 1282 T67 = T65 * T66;
Chris@82 1283 T6a = T65 * T69;
Chris@82 1284 T68 = W[113];
Chris@82 1285 cr[WS(rs, 57)] = FNMS(T68, T69, T67);
Chris@82 1286 ci[WS(rs, 57)] = FMA(T68, T66, T6a);
Chris@82 1287 }
Chris@82 1288 {
Chris@82 1289 E T5N, T5s, T5O, T23, T5r;
Chris@82 1290 T5N = FNMS(KP773010453, T5M, T5J);
Chris@82 1291 T5s = W[81];
Chris@82 1292 T5O = T5s * T5q;
Chris@82 1293 T23 = W[80];
Chris@82 1294 T5r = T23 * T5q;
Chris@82 1295 cr[WS(rs, 41)] = FNMS(T5s, T5N, T5r);
Chris@82 1296 ci[WS(rs, 41)] = FMA(T23, T5N, T5O);
Chris@82 1297 }
Chris@82 1298 {
Chris@82 1299 E T5T, T5S, T5U, T5P, T5R;
Chris@82 1300 T5T = FMA(KP773010453, T5M, T5J);
Chris@82 1301 T5S = W[17];
Chris@82 1302 T5U = T5S * T5Q;
Chris@82 1303 T5P = W[16];
Chris@82 1304 T5R = T5P * T5Q;
Chris@82 1305 cr[WS(rs, 9)] = FNMS(T5S, T5T, T5R);
Chris@82 1306 ci[WS(rs, 9)] = FMA(T5P, T5T, T5U);
Chris@82 1307 }
Chris@82 1308 }
Chris@82 1309 {
Chris@82 1310 E Tge, TgG, TgK, Tgr, Tgu, TgC, TgF, Tgx;
Chris@82 1311 {
Chris@82 1312 E Tg5, Tgc, Tgd, Tgj, Tgm, Tgn, TfY, TgA, Tgq, TgB;
Chris@82 1313 Tg5 = FMA(KP668178637, Tg4, Tg1);
Chris@82 1314 Tgc = FNMS(KP668178637, Tgb, Tg8);
Chris@82 1315 Tgd = Tg5 - Tgc;
Chris@82 1316 Tgj = FNMS(KP707106781, Tgi, Tgh);
Chris@82 1317 Tgm = Tgk - Tgl;
Chris@82 1318 Tgn = FMA(KP923879532, Tgm, Tgj);
Chris@82 1319 {
Chris@82 1320 E TfQ, TfX, Tgo, Tgp;
Chris@82 1321 TfQ = FNMS(KP707106781, TfP, TfO);
Chris@82 1322 TfX = TfT - TfW;
Chris@82 1323 TfY = FMA(KP923879532, TfX, TfQ);
Chris@82 1324 TgA = FNMS(KP923879532, TfX, TfQ);
Chris@82 1325 Tgo = FMA(KP668178637, Tg8, Tgb);
Chris@82 1326 Tgp = FNMS(KP668178637, Tg1, Tg4);
Chris@82 1327 Tgq = Tgo - Tgp;
Chris@82 1328 TgB = Tgo + Tgp;
Chris@82 1329 }
Chris@82 1330 Tge = FNMS(KP831469612, Tgd, TfY);
Chris@82 1331 TgG = Tgc + Tg5;
Chris@82 1332 TgK = FMA(KP831469612, TgB, TgA);
Chris@82 1333 Tgr = FNMS(KP831469612, Tgq, Tgn);
Chris@82 1334 Tgu = FMA(KP831469612, Tgd, TfY);
Chris@82 1335 TgC = FNMS(KP831469612, TgB, TgA);
Chris@82 1336 TgF = FNMS(KP923879532, Tgm, Tgj);
Chris@82 1337 Tgx = FMA(KP831469612, Tgq, Tgn);
Chris@82 1338 }
Chris@82 1339 {
Chris@82 1340 E Tgf, Tgs, TfN, Tgg;
Chris@82 1341 TfN = W[82];
Chris@82 1342 Tgf = TfN * Tge;
Chris@82 1343 Tgs = TfN * Tgr;
Chris@82 1344 Tgg = W[83];
Chris@82 1345 cr[WS(rs, 42)] = FNMS(Tgg, Tgr, Tgf);
Chris@82 1346 ci[WS(rs, 42)] = FMA(Tgg, Tge, Tgs);
Chris@82 1347 }
Chris@82 1348 {
Chris@82 1349 E Tgv, Tgy, Tgt, Tgw;
Chris@82 1350 Tgt = W[18];
Chris@82 1351 Tgv = Tgt * Tgu;
Chris@82 1352 Tgy = Tgt * Tgx;
Chris@82 1353 Tgw = W[19];
Chris@82 1354 cr[WS(rs, 10)] = FNMS(Tgw, Tgx, Tgv);
Chris@82 1355 ci[WS(rs, 10)] = FMA(Tgw, Tgu, Tgy);
Chris@82 1356 }
Chris@82 1357 {
Chris@82 1358 E TgH, TgE, TgI, Tgz, TgD;
Chris@82 1359 TgH = FNMS(KP831469612, TgG, TgF);
Chris@82 1360 TgE = W[51];
Chris@82 1361 TgI = TgE * TgC;
Chris@82 1362 Tgz = W[50];
Chris@82 1363 TgD = Tgz * TgC;
Chris@82 1364 cr[WS(rs, 26)] = FNMS(TgE, TgH, TgD);
Chris@82 1365 ci[WS(rs, 26)] = FMA(Tgz, TgH, TgI);
Chris@82 1366 }
Chris@82 1367 {
Chris@82 1368 E TgN, TgM, TgO, TgJ, TgL;
Chris@82 1369 TgN = FMA(KP831469612, TgG, TgF);
Chris@82 1370 TgM = W[115];
Chris@82 1371 TgO = TgM * TgK;
Chris@82 1372 TgJ = W[114];
Chris@82 1373 TgL = TgJ * TgK;
Chris@82 1374 cr[WS(rs, 58)] = FNMS(TgM, TgN, TgL);
Chris@82 1375 ci[WS(rs, 58)] = FMA(TgJ, TgN, TgO);
Chris@82 1376 }
Chris@82 1377 }
Chris@82 1378 {
Chris@82 1379 E Th0, Ths, Thv, Th5, Th8, Thk, Thp, Thc;
Chris@82 1380 {
Chris@82 1381 E Th3, Th4, Thn, Th6, Th7, Thj, TgS, Thi, TgZ, Tho;
Chris@82 1382 Th3 = FMA(KP707106781, Tgi, Tgh);
Chris@82 1383 Th4 = TfW + TfT;
Chris@82 1384 Thn = FNMS(KP923879532, Th4, Th3);
Chris@82 1385 Th6 = FMA(KP198912367, TgT, TgU);
Chris@82 1386 Th7 = FNMS(KP198912367, TgW, TgX);
Chris@82 1387 Thj = Th7 - Th6;
Chris@82 1388 {
Chris@82 1389 E TgQ, TgR, TgV, TgY;
Chris@82 1390 TgQ = FMA(KP707106781, TfP, TfO);
Chris@82 1391 TgR = Tgk + Tgl;
Chris@82 1392 TgS = FMA(KP923879532, TgR, TgQ);
Chris@82 1393 Thi = FNMS(KP923879532, TgR, TgQ);
Chris@82 1394 TgV = FNMS(KP198912367, TgU, TgT);
Chris@82 1395 TgY = FMA(KP198912367, TgX, TgW);
Chris@82 1396 TgZ = TgV + TgY;
Chris@82 1397 Tho = TgV - TgY;
Chris@82 1398 }
Chris@82 1399 Th0 = FNMS(KP980785280, TgZ, TgS);
Chris@82 1400 Ths = FMA(KP980785280, Thj, Thi);
Chris@82 1401 Thv = FMA(KP980785280, Tho, Thn);
Chris@82 1402 Th5 = FMA(KP923879532, Th4, Th3);
Chris@82 1403 Th8 = Th6 + Th7;
Chris@82 1404 Thk = FNMS(KP980785280, Thj, Thi);
Chris@82 1405 Thp = FNMS(KP980785280, Tho, Thn);
Chris@82 1406 Thc = FMA(KP980785280, TgZ, TgS);
Chris@82 1407 }
Chris@82 1408 {
Chris@82 1409 E Thl, Thq, Thh, Thm;
Chris@82 1410 Thh = W[98];
Chris@82 1411 Thl = Thh * Thk;
Chris@82 1412 Thq = Thh * Thp;
Chris@82 1413 Thm = W[99];
Chris@82 1414 cr[WS(rs, 50)] = FNMS(Thm, Thp, Thl);
Chris@82 1415 ci[WS(rs, 50)] = FMA(Thm, Thk, Thq);
Chris@82 1416 }
Chris@82 1417 {
Chris@82 1418 E Tht, Thw, Thr, Thu;
Chris@82 1419 Thr = W[34];
Chris@82 1420 Tht = Thr * Ths;
Chris@82 1421 Thw = Thr * Thv;
Chris@82 1422 Thu = W[35];
Chris@82 1423 cr[WS(rs, 18)] = FNMS(Thu, Thv, Tht);
Chris@82 1424 ci[WS(rs, 18)] = FMA(Thu, Ths, Thw);
Chris@82 1425 }
Chris@82 1426 {
Chris@82 1427 E Th9, Th2, Tha, TgP, Th1;
Chris@82 1428 Th9 = FNMS(KP980785280, Th8, Th5);
Chris@82 1429 Th2 = W[67];
Chris@82 1430 Tha = Th2 * Th0;
Chris@82 1431 TgP = W[66];
Chris@82 1432 Th1 = TgP * Th0;
Chris@82 1433 cr[WS(rs, 34)] = FNMS(Th2, Th9, Th1);
Chris@82 1434 ci[WS(rs, 34)] = FMA(TgP, Th9, Tha);
Chris@82 1435 }
Chris@82 1436 {
Chris@82 1437 E Thf, The, Thg, Thb, Thd;
Chris@82 1438 Thf = FMA(KP980785280, Th8, Th5);
Chris@82 1439 The = W[3];
Chris@82 1440 Thg = The * Thc;
Chris@82 1441 Thb = W[2];
Chris@82 1442 Thd = Thb * Thc;
Chris@82 1443 cr[WS(rs, 2)] = FNMS(The, Thf, Thd);
Chris@82 1444 ci[WS(rs, 2)] = FMA(Thb, Thf, Thg);
Chris@82 1445 }
Chris@82 1446 }
Chris@82 1447 {
Chris@82 1448 E T6m, T6O, T6R, T6r, T6u, T6G, T6L, T6y;
Chris@82 1449 {
Chris@82 1450 E T6p, T6q, T6J, T6s, T6t, T6F, T6e, T6E, T6l, T6K;
Chris@82 1451 T6p = FMA(KP923879532, T5E, T5B);
Chris@82 1452 T6q = T3A + T39;
Chris@82 1453 T6J = FMA(KP980785280, T6q, T6p);
Chris@82 1454 T6s = FNMS(KP098491403, T6i, T6j);
Chris@82 1455 T6t = FMA(KP098491403, T6f, T6g);
Chris@82 1456 T6F = T6s + T6t;
Chris@82 1457 {
Chris@82 1458 E T6c, T6d, T6h, T6k;
Chris@82 1459 T6c = FMA(KP923879532, T2H, T2k);
Chris@82 1460 T6d = T5G + T5H;
Chris@82 1461 T6e = FNMS(KP980785280, T6d, T6c);
Chris@82 1462 T6E = FMA(KP980785280, T6d, T6c);
Chris@82 1463 T6h = FNMS(KP098491403, T6g, T6f);
Chris@82 1464 T6k = FMA(KP098491403, T6j, T6i);
Chris@82 1465 T6l = T6h - T6k;
Chris@82 1466 T6K = T6k + T6h;
Chris@82 1467 }
Chris@82 1468 T6m = FNMS(KP995184726, T6l, T6e);
Chris@82 1469 T6O = FMA(KP995184726, T6F, T6E);
Chris@82 1470 T6R = FMA(KP995184726, T6K, T6J);
Chris@82 1471 T6r = FNMS(KP980785280, T6q, T6p);
Chris@82 1472 T6u = T6s - T6t;
Chris@82 1473 T6G = FNMS(KP995184726, T6F, T6E);
Chris@82 1474 T6L = FNMS(KP995184726, T6K, T6J);
Chris@82 1475 T6y = FMA(KP995184726, T6l, T6e);
Chris@82 1476 }
Chris@82 1477 {
Chris@82 1478 E T6H, T6M, T6D, T6I;
Chris@82 1479 T6D = W[64];
Chris@82 1480 T6H = T6D * T6G;
Chris@82 1481 T6M = T6D * T6L;
Chris@82 1482 T6I = W[65];
Chris@82 1483 cr[WS(rs, 33)] = FNMS(T6I, T6L, T6H);
Chris@82 1484 ci[WS(rs, 33)] = FMA(T6I, T6G, T6M);
Chris@82 1485 }
Chris@82 1486 {
Chris@82 1487 E T6P, T6S, T6N, T6Q;
Chris@82 1488 T6N = W[0];
Chris@82 1489 T6P = T6N * T6O;
Chris@82 1490 T6S = T6N * T6R;
Chris@82 1491 T6Q = W[1];
Chris@82 1492 cr[WS(rs, 1)] = FNMS(T6Q, T6R, T6P);
Chris@82 1493 ci[WS(rs, 1)] = FMA(T6Q, T6O, T6S);
Chris@82 1494 }
Chris@82 1495 {
Chris@82 1496 E T6v, T6o, T6w, T6b, T6n;
Chris@82 1497 T6v = FNMS(KP995184726, T6u, T6r);
Chris@82 1498 T6o = W[97];
Chris@82 1499 T6w = T6o * T6m;
Chris@82 1500 T6b = W[96];
Chris@82 1501 T6n = T6b * T6m;
Chris@82 1502 cr[WS(rs, 49)] = FNMS(T6o, T6v, T6n);
Chris@82 1503 ci[WS(rs, 49)] = FMA(T6b, T6v, T6w);
Chris@82 1504 }
Chris@82 1505 {
Chris@82 1506 E T6B, T6A, T6C, T6x, T6z;
Chris@82 1507 T6B = FMA(KP995184726, T6u, T6r);
Chris@82 1508 T6A = W[33];
Chris@82 1509 T6C = T6A * T6y;
Chris@82 1510 T6x = W[32];
Chris@82 1511 T6z = T6x * T6y;
Chris@82 1512 cr[WS(rs, 17)] = FNMS(T6A, T6B, T6z);
Chris@82 1513 ci[WS(rs, 17)] = FMA(T6x, T6B, T6C);
Chris@82 1514 }
Chris@82 1515 }
Chris@82 1516 {
Chris@82 1517 E Tbw, Tc2, Tc5, TbF, TbI, TbU, TbZ, TbM;
Chris@82 1518 {
Chris@82 1519 E TbB, TbE, TbX, TbG, TbH, TbT, Tbg, TbS, Tbv, TbY;
Chris@82 1520 TbB = FMA(KP923879532, TbA, Tbz);
Chris@82 1521 TbE = TbC - TbD;
Chris@82 1522 TbX = FNMS(KP980785280, TbE, TbB);
Chris@82 1523 TbG = FMA(KP820678790, Tbj, Tbm);
Chris@82 1524 TbH = FMA(KP820678790, Tbq, Tbt);
Chris@82 1525 TbT = TbG + TbH;
Chris@82 1526 {
Chris@82 1527 E Tb8, Tbf, Tbn, Tbu;
Chris@82 1528 Tb8 = FNMS(KP923879532, Tb7, Tb6);
Chris@82 1529 Tbf = Tbb + Tbe;
Chris@82 1530 Tbg = FNMS(KP980785280, Tbf, Tb8);
Chris@82 1531 TbS = FMA(KP980785280, Tbf, Tb8);
Chris@82 1532 Tbn = FNMS(KP820678790, Tbm, Tbj);
Chris@82 1533 Tbu = FNMS(KP820678790, Tbt, Tbq);
Chris@82 1534 Tbv = Tbn + Tbu;
Chris@82 1535 TbY = Tbn - Tbu;
Chris@82 1536 }
Chris@82 1537 Tbw = FNMS(KP773010453, Tbv, Tbg);
Chris@82 1538 Tc2 = FMA(KP773010453, TbT, TbS);
Chris@82 1539 Tc5 = FNMS(KP773010453, TbY, TbX);
Chris@82 1540 TbF = FMA(KP980785280, TbE, TbB);
Chris@82 1541 TbI = TbG - TbH;
Chris@82 1542 TbU = FNMS(KP773010453, TbT, TbS);
Chris@82 1543 TbZ = FMA(KP773010453, TbY, TbX);
Chris@82 1544 TbM = FMA(KP773010453, Tbv, Tbg);
Chris@82 1545 }
Chris@82 1546 {
Chris@82 1547 E TbV, Tc0, TbR, TbW;
Chris@82 1548 TbR = W[44];
Chris@82 1549 TbV = TbR * TbU;
Chris@82 1550 Tc0 = TbR * TbZ;
Chris@82 1551 TbW = W[45];
Chris@82 1552 cr[WS(rs, 23)] = FNMS(TbW, TbZ, TbV);
Chris@82 1553 ci[WS(rs, 23)] = FMA(TbW, TbU, Tc0);
Chris@82 1554 }
Chris@82 1555 {
Chris@82 1556 E Tc3, Tc6, Tc1, Tc4;
Chris@82 1557 Tc1 = W[108];
Chris@82 1558 Tc3 = Tc1 * Tc2;
Chris@82 1559 Tc6 = Tc1 * Tc5;
Chris@82 1560 Tc4 = W[109];
Chris@82 1561 cr[WS(rs, 55)] = FNMS(Tc4, Tc5, Tc3);
Chris@82 1562 ci[WS(rs, 55)] = FMA(Tc4, Tc2, Tc6);
Chris@82 1563 }
Chris@82 1564 {
Chris@82 1565 E TbJ, Tby, TbK, Tb5, Tbx;
Chris@82 1566 TbJ = FNMS(KP773010453, TbI, TbF);
Chris@82 1567 Tby = W[77];
Chris@82 1568 TbK = Tby * Tbw;
Chris@82 1569 Tb5 = W[76];
Chris@82 1570 Tbx = Tb5 * Tbw;
Chris@82 1571 cr[WS(rs, 39)] = FNMS(Tby, TbJ, Tbx);
Chris@82 1572 ci[WS(rs, 39)] = FMA(Tb5, TbJ, TbK);
Chris@82 1573 }
Chris@82 1574 {
Chris@82 1575 E TbP, TbO, TbQ, TbL, TbN;
Chris@82 1576 TbP = FMA(KP773010453, TbI, TbF);
Chris@82 1577 TbO = W[13];
Chris@82 1578 TbQ = TbO * TbM;
Chris@82 1579 TbL = W[12];
Chris@82 1580 TbN = TbL * TbM;
Chris@82 1581 cr[WS(rs, 7)] = FNMS(TbO, TbP, TbN);
Chris@82 1582 ci[WS(rs, 7)] = FMA(TbL, TbP, TbQ);
Chris@82 1583 }
Chris@82 1584 }
Chris@82 1585 {
Chris@82 1586 E Tay, Tb0, Tb3, TaD, TaG, TaS, TaX, TaK;
Chris@82 1587 {
Chris@82 1588 E TaB, TaC, TaV, TaE, TaF, TaR, Taq, TaQ, Tax, TaW;
Chris@82 1589 TaB = FMA(KP923879532, T9Q, T9N);
Chris@82 1590 TaC = T8V - T92;
Chris@82 1591 TaV = FNMS(KP831469612, TaC, TaB);
Chris@82 1592 TaE = FMA(KP303346683, Tar, Tas);
Chris@82 1593 TaF = FMA(KP303346683, Tau, Tav);
Chris@82 1594 TaR = TaE + TaF;
Chris@82 1595 {
Chris@82 1596 E Tao, Tap, Tat, Taw;
Chris@82 1597 Tao = FNMS(KP923879532, T8N, T8G);
Chris@82 1598 Tap = T9S + T9T;
Chris@82 1599 Taq = FMA(KP831469612, Tap, Tao);
Chris@82 1600 TaQ = FNMS(KP831469612, Tap, Tao);
Chris@82 1601 Tat = FNMS(KP303346683, Tas, Tar);
Chris@82 1602 Taw = FNMS(KP303346683, Tav, Tau);
Chris@82 1603 Tax = Tat + Taw;
Chris@82 1604 TaW = Tat - Taw;
Chris@82 1605 }
Chris@82 1606 Tay = FNMS(KP956940335, Tax, Taq);
Chris@82 1607 Tb0 = FMA(KP956940335, TaR, TaQ);
Chris@82 1608 Tb3 = FNMS(KP956940335, TaW, TaV);
Chris@82 1609 TaD = FMA(KP831469612, TaC, TaB);
Chris@82 1610 TaG = TaE - TaF;
Chris@82 1611 TaS = FNMS(KP956940335, TaR, TaQ);
Chris@82 1612 TaX = FMA(KP956940335, TaW, TaV);
Chris@82 1613 TaK = FMA(KP956940335, Tax, Taq);
Chris@82 1614 }
Chris@82 1615 {
Chris@82 1616 E TaT, TaY, TaP, TaU;
Chris@82 1617 TaP = W[36];
Chris@82 1618 TaT = TaP * TaS;
Chris@82 1619 TaY = TaP * TaX;
Chris@82 1620 TaU = W[37];
Chris@82 1621 cr[WS(rs, 19)] = FNMS(TaU, TaX, TaT);
Chris@82 1622 ci[WS(rs, 19)] = FMA(TaU, TaS, TaY);
Chris@82 1623 }
Chris@82 1624 {
Chris@82 1625 E Tb1, Tb4, TaZ, Tb2;
Chris@82 1626 TaZ = W[100];
Chris@82 1627 Tb1 = TaZ * Tb0;
Chris@82 1628 Tb4 = TaZ * Tb3;
Chris@82 1629 Tb2 = W[101];
Chris@82 1630 cr[WS(rs, 51)] = FNMS(Tb2, Tb3, Tb1);
Chris@82 1631 ci[WS(rs, 51)] = FMA(Tb2, Tb0, Tb4);
Chris@82 1632 }
Chris@82 1633 {
Chris@82 1634 E TaH, TaA, TaI, Tan, Taz;
Chris@82 1635 TaH = FNMS(KP956940335, TaG, TaD);
Chris@82 1636 TaA = W[69];
Chris@82 1637 TaI = TaA * Tay;
Chris@82 1638 Tan = W[68];
Chris@82 1639 Taz = Tan * Tay;
Chris@82 1640 cr[WS(rs, 35)] = FNMS(TaA, TaH, Taz);
Chris@82 1641 ci[WS(rs, 35)] = FMA(Tan, TaH, TaI);
Chris@82 1642 }
Chris@82 1643 {
Chris@82 1644 E TaN, TaM, TaO, TaJ, TaL;
Chris@82 1645 TaN = FMA(KP956940335, TaG, TaD);
Chris@82 1646 TaM = W[5];
Chris@82 1647 TaO = TaM * TaK;
Chris@82 1648 TaJ = W[4];
Chris@82 1649 TaL = TaJ * TaK;
Chris@82 1650 cr[WS(rs, 3)] = FNMS(TaM, TaN, TaL);
Chris@82 1651 ci[WS(rs, 3)] = FMA(TaJ, TaN, TaO);
Chris@82 1652 }
Chris@82 1653 }
Chris@82 1654 {
Chris@82 1655 E Tfg, TfI, TfL, Tfl, Tfo, TfA, TfF, Tfs;
Chris@82 1656 {
Chris@82 1657 E Tfj, Tfk, TfD, Tfm, Tfn, Tfz, Tf8, Tfy, Tff, TfE;
Chris@82 1658 Tfj = FNMS(KP707106781, Tey, Tev);
Chris@82 1659 Tfk = Tds + Tdh;
Chris@82 1660 TfD = FMA(KP923879532, Tfk, Tfj);
Chris@82 1661 Tfm = FMA(KP198912367, Tfc, Tfd);
Chris@82 1662 Tfn = FNMS(KP198912367, Tf9, Tfa);
Chris@82 1663 Tfz = Tfm + Tfn;
Chris@82 1664 {
Chris@82 1665 E Tf6, Tf7, Tfb, Tfe;
Chris@82 1666 Tf6 = FNMS(KP707106781, Td5, TcU);
Chris@82 1667 Tf7 = TeA + TeB;
Chris@82 1668 Tf8 = FNMS(KP923879532, Tf7, Tf6);
Chris@82 1669 Tfy = FMA(KP923879532, Tf7, Tf6);
Chris@82 1670 Tfb = FMA(KP198912367, Tfa, Tf9);
Chris@82 1671 Tfe = FNMS(KP198912367, Tfd, Tfc);
Chris@82 1672 Tff = Tfb - Tfe;
Chris@82 1673 TfE = Tfe + Tfb;
Chris@82 1674 }
Chris@82 1675 Tfg = FNMS(KP980785280, Tff, Tf8);
Chris@82 1676 TfI = FMA(KP980785280, Tfz, Tfy);
Chris@82 1677 TfL = FMA(KP980785280, TfE, TfD);
Chris@82 1678 Tfl = FNMS(KP923879532, Tfk, Tfj);
Chris@82 1679 Tfo = Tfm - Tfn;
Chris@82 1680 TfA = FNMS(KP980785280, Tfz, Tfy);
Chris@82 1681 TfF = FNMS(KP980785280, TfE, TfD);
Chris@82 1682 Tfs = FMA(KP980785280, Tff, Tf8);
Chris@82 1683 }
Chris@82 1684 {
Chris@82 1685 E TfB, TfG, Tfx, TfC;
Chris@82 1686 Tfx = W[58];
Chris@82 1687 TfB = Tfx * TfA;
Chris@82 1688 TfG = Tfx * TfF;
Chris@82 1689 TfC = W[59];
Chris@82 1690 cr[WS(rs, 30)] = FNMS(TfC, TfF, TfB);
Chris@82 1691 ci[WS(rs, 30)] = FMA(TfC, TfA, TfG);
Chris@82 1692 }
Chris@82 1693 {
Chris@82 1694 E TfJ, TfM, TfH, TfK;
Chris@82 1695 TfH = W[122];
Chris@82 1696 TfJ = TfH * TfI;
Chris@82 1697 TfM = TfH * TfL;
Chris@82 1698 TfK = W[123];
Chris@82 1699 cr[WS(rs, 62)] = FNMS(TfK, TfL, TfJ);
Chris@82 1700 ci[WS(rs, 62)] = FMA(TfK, TfI, TfM);
Chris@82 1701 }
Chris@82 1702 {
Chris@82 1703 E Tfp, Tfi, Tfq, Tf5, Tfh;
Chris@82 1704 Tfp = FNMS(KP980785280, Tfo, Tfl);
Chris@82 1705 Tfi = W[91];
Chris@82 1706 Tfq = Tfi * Tfg;
Chris@82 1707 Tf5 = W[90];
Chris@82 1708 Tfh = Tf5 * Tfg;
Chris@82 1709 cr[WS(rs, 46)] = FNMS(Tfi, Tfp, Tfh);
Chris@82 1710 ci[WS(rs, 46)] = FMA(Tf5, Tfp, Tfq);
Chris@82 1711 }
Chris@82 1712 {
Chris@82 1713 E Tfv, Tfu, Tfw, Tfr, Tft;
Chris@82 1714 Tfv = FMA(KP980785280, Tfo, Tfl);
Chris@82 1715 Tfu = W[27];
Chris@82 1716 Tfw = Tfu * Tfs;
Chris@82 1717 Tfr = W[26];
Chris@82 1718 Tft = Tfr * Tfs;
Chris@82 1719 cr[WS(rs, 14)] = FNMS(Tfu, Tfv, Tft);
Chris@82 1720 ci[WS(rs, 14)] = FMA(Tfr, Tfv, Tfw);
Chris@82 1721 }
Chris@82 1722 }
Chris@82 1723 {
Chris@82 1724 E T7k, T7Q, T7T, T7t, T7w, T7I, T7N, T7A;
Chris@82 1725 {
Chris@82 1726 E T7p, T7s, T7L, T7u, T7v, T7H, T74, T7G, T7j, T7M;
Chris@82 1727 T7p = FMA(KP923879532, T7o, T7n);
Chris@82 1728 T7s = T7q - T7r;
Chris@82 1729 T7L = FNMS(KP831469612, T7s, T7p);
Chris@82 1730 T7u = FMA(KP534511135, T77, T7a);
Chris@82 1731 T7v = FNMS(KP534511135, T7e, T7h);
Chris@82 1732 T7H = T7v - T7u;
Chris@82 1733 {
Chris@82 1734 E T6W, T73, T7b, T7i;
Chris@82 1735 T6W = FMA(KP923879532, T6V, T6U);
Chris@82 1736 T73 = T6Z - T72;
Chris@82 1737 T74 = FMA(KP831469612, T73, T6W);
Chris@82 1738 T7G = FNMS(KP831469612, T73, T6W);
Chris@82 1739 T7b = FNMS(KP534511135, T7a, T77);
Chris@82 1740 T7i = FMA(KP534511135, T7h, T7e);
Chris@82 1741 T7j = T7b + T7i;
Chris@82 1742 T7M = T7b - T7i;
Chris@82 1743 }
Chris@82 1744 T7k = FNMS(KP881921264, T7j, T74);
Chris@82 1745 T7Q = FMA(KP881921264, T7H, T7G);
Chris@82 1746 T7T = FMA(KP881921264, T7M, T7L);
Chris@82 1747 T7t = FMA(KP831469612, T7s, T7p);
Chris@82 1748 T7w = T7u + T7v;
Chris@82 1749 T7I = FNMS(KP881921264, T7H, T7G);
Chris@82 1750 T7N = FNMS(KP881921264, T7M, T7L);
Chris@82 1751 T7A = FMA(KP881921264, T7j, T74);
Chris@82 1752 }
Chris@82 1753 {
Chris@82 1754 E T7J, T7O, T7F, T7K;
Chris@82 1755 T7F = W[104];
Chris@82 1756 T7J = T7F * T7I;
Chris@82 1757 T7O = T7F * T7N;
Chris@82 1758 T7K = W[105];
Chris@82 1759 cr[WS(rs, 53)] = FNMS(T7K, T7N, T7J);
Chris@82 1760 ci[WS(rs, 53)] = FMA(T7K, T7I, T7O);
Chris@82 1761 }
Chris@82 1762 {
Chris@82 1763 E T7R, T7U, T7P, T7S;
Chris@82 1764 T7P = W[40];
Chris@82 1765 T7R = T7P * T7Q;
Chris@82 1766 T7U = T7P * T7T;
Chris@82 1767 T7S = W[41];
Chris@82 1768 cr[WS(rs, 21)] = FNMS(T7S, T7T, T7R);
Chris@82 1769 ci[WS(rs, 21)] = FMA(T7S, T7Q, T7U);
Chris@82 1770 }
Chris@82 1771 {
Chris@82 1772 E T7x, T7m, T7y, T6T, T7l;
Chris@82 1773 T7x = FNMS(KP881921264, T7w, T7t);
Chris@82 1774 T7m = W[73];
Chris@82 1775 T7y = T7m * T7k;
Chris@82 1776 T6T = W[72];
Chris@82 1777 T7l = T6T * T7k;
Chris@82 1778 cr[WS(rs, 37)] = FNMS(T7m, T7x, T7l);
Chris@82 1779 ci[WS(rs, 37)] = FMA(T6T, T7x, T7y);
Chris@82 1780 }
Chris@82 1781 {
Chris@82 1782 E T7D, T7C, T7E, T7z, T7B;
Chris@82 1783 T7D = FMA(KP881921264, T7w, T7t);
Chris@82 1784 T7C = W[9];
Chris@82 1785 T7E = T7C * T7A;
Chris@82 1786 T7z = W[8];
Chris@82 1787 T7B = T7z * T7A;
Chris@82 1788 cr[WS(rs, 5)] = FNMS(T7C, T7D, T7B);
Chris@82 1789 ci[WS(rs, 5)] = FMA(T7z, T7D, T7E);
Chris@82 1790 }
Chris@82 1791 }
Chris@82 1792 {
Chris@82 1793 E T86, T8u, T8y, T8f, T8i, T8q, T8t, T8l;
Chris@82 1794 {
Chris@82 1795 E T81, T84, T85, T89, T8a, T8b, T7Y, T8o, T8e, T8p;
Chris@82 1796 T81 = FMA(KP303346683, T80, T7Z);
Chris@82 1797 T84 = FNMS(KP303346683, T83, T82);
Chris@82 1798 T85 = T81 - T84;
Chris@82 1799 T89 = FNMS(KP923879532, T7o, T7n);
Chris@82 1800 T8a = T72 + T6Z;
Chris@82 1801 T8b = FNMS(KP831469612, T8a, T89);
Chris@82 1802 {
Chris@82 1803 E T7W, T7X, T8c, T8d;
Chris@82 1804 T7W = FNMS(KP923879532, T6V, T6U);
Chris@82 1805 T7X = T7q + T7r;
Chris@82 1806 T7Y = FNMS(KP831469612, T7X, T7W);
Chris@82 1807 T8o = FMA(KP831469612, T7X, T7W);
Chris@82 1808 T8c = FMA(KP303346683, T82, T83);
Chris@82 1809 T8d = FNMS(KP303346683, T7Z, T80);
Chris@82 1810 T8e = T8c - T8d;
Chris@82 1811 T8p = T8c + T8d;
Chris@82 1812 }
Chris@82 1813 T86 = FNMS(KP956940335, T85, T7Y);
Chris@82 1814 T8u = T84 + T81;
Chris@82 1815 T8y = FMA(KP956940335, T8p, T8o);
Chris@82 1816 T8f = FNMS(KP956940335, T8e, T8b);
Chris@82 1817 T8i = FMA(KP956940335, T85, T7Y);
Chris@82 1818 T8q = FNMS(KP956940335, T8p, T8o);
Chris@82 1819 T8t = FMA(KP831469612, T8a, T89);
Chris@82 1820 T8l = FMA(KP956940335, T8e, T8b);
Chris@82 1821 }
Chris@82 1822 {
Chris@82 1823 E T87, T8g, T7V, T88;
Chris@82 1824 T7V = W[88];
Chris@82 1825 T87 = T7V * T86;
Chris@82 1826 T8g = T7V * T8f;
Chris@82 1827 T88 = W[89];
Chris@82 1828 cr[WS(rs, 45)] = FNMS(T88, T8f, T87);
Chris@82 1829 ci[WS(rs, 45)] = FMA(T88, T86, T8g);
Chris@82 1830 }
Chris@82 1831 {
Chris@82 1832 E T8j, T8m, T8h, T8k;
Chris@82 1833 T8h = W[24];
Chris@82 1834 T8j = T8h * T8i;
Chris@82 1835 T8m = T8h * T8l;
Chris@82 1836 T8k = W[25];
Chris@82 1837 cr[WS(rs, 13)] = FNMS(T8k, T8l, T8j);
Chris@82 1838 ci[WS(rs, 13)] = FMA(T8k, T8i, T8m);
Chris@82 1839 }
Chris@82 1840 {
Chris@82 1841 E T8v, T8s, T8w, T8n, T8r;
Chris@82 1842 T8v = FNMS(KP956940335, T8u, T8t);
Chris@82 1843 T8s = W[57];
Chris@82 1844 T8w = T8s * T8q;
Chris@82 1845 T8n = W[56];
Chris@82 1846 T8r = T8n * T8q;
Chris@82 1847 cr[WS(rs, 29)] = FNMS(T8s, T8v, T8r);
Chris@82 1848 ci[WS(rs, 29)] = FMA(T8n, T8v, T8w);
Chris@82 1849 }
Chris@82 1850 {
Chris@82 1851 E T8B, T8A, T8C, T8x, T8z;
Chris@82 1852 T8B = FMA(KP956940335, T8u, T8t);
Chris@82 1853 T8A = W[121];
Chris@82 1854 T8C = T8A * T8y;
Chris@82 1855 T8x = W[120];
Chris@82 1856 T8z = T8x * T8y;
Chris@82 1857 cr[WS(rs, 61)] = FNMS(T8A, T8B, T8z);
Chris@82 1858 ci[WS(rs, 61)] = FMA(T8x, T8B, T8C);
Chris@82 1859 }
Chris@82 1860 }
Chris@82 1861 {
Chris@82 1862 E T9I, Tai, Tal, T9V, T9Y, Taa, Taf, Ta2;
Chris@82 1863 {
Chris@82 1864 E T9R, T9U, Tad, T9W, T9X, Ta9, T94, Ta8, T9H, Tae;
Chris@82 1865 T9R = FNMS(KP923879532, T9Q, T9N);
Chris@82 1866 T9U = T9S - T9T;
Chris@82 1867 Tad = FNMS(KP831469612, T9U, T9R);
Chris@82 1868 T9W = FMA(KP534511135, T9f, T9m);
Chris@82 1869 T9X = FMA(KP534511135, T9y, T9F);
Chris@82 1870 Ta9 = T9W + T9X;
Chris@82 1871 {
Chris@82 1872 E T8O, T93, T9n, T9G;
Chris@82 1873 T8O = FMA(KP923879532, T8N, T8G);
Chris@82 1874 T93 = T8V + T92;
Chris@82 1875 T94 = FNMS(KP831469612, T93, T8O);
Chris@82 1876 Ta8 = FMA(KP831469612, T93, T8O);
Chris@82 1877 T9n = FNMS(KP534511135, T9m, T9f);
Chris@82 1878 T9G = FNMS(KP534511135, T9F, T9y);
Chris@82 1879 T9H = T9n + T9G;
Chris@82 1880 Tae = T9G - T9n;
Chris@82 1881 }
Chris@82 1882 T9I = FMA(KP881921264, T9H, T94);
Chris@82 1883 Tai = FMA(KP881921264, Ta9, Ta8);
Chris@82 1884 Tal = FNMS(KP881921264, Tae, Tad);
Chris@82 1885 T9V = FMA(KP831469612, T9U, T9R);
Chris@82 1886 T9Y = T9W - T9X;
Chris@82 1887 Taa = FNMS(KP881921264, Ta9, Ta8);
Chris@82 1888 Taf = FMA(KP881921264, Tae, Tad);
Chris@82 1889 Ta2 = FNMS(KP881921264, T9H, T94);
Chris@82 1890 }
Chris@82 1891 {
Chris@82 1892 E Tab, Tag, Ta7, Tac;
Chris@82 1893 Ta7 = W[52];
Chris@82 1894 Tab = Ta7 * Taa;
Chris@82 1895 Tag = Ta7 * Taf;
Chris@82 1896 Tac = W[53];
Chris@82 1897 cr[WS(rs, 27)] = FNMS(Tac, Taf, Tab);
Chris@82 1898 ci[WS(rs, 27)] = FMA(Tac, Taa, Tag);
Chris@82 1899 }
Chris@82 1900 {
Chris@82 1901 E Taj, Tam, Tah, Tak;
Chris@82 1902 Tah = W[116];
Chris@82 1903 Taj = Tah * Tai;
Chris@82 1904 Tam = Tah * Tal;
Chris@82 1905 Tak = W[117];
Chris@82 1906 cr[WS(rs, 59)] = FNMS(Tak, Tal, Taj);
Chris@82 1907 ci[WS(rs, 59)] = FMA(Tak, Tai, Tam);
Chris@82 1908 }
Chris@82 1909 {
Chris@82 1910 E T9Z, T9K, Ta0, T8D, T9J;
Chris@82 1911 T9Z = FNMS(KP881921264, T9Y, T9V);
Chris@82 1912 T9K = W[85];
Chris@82 1913 Ta0 = T9K * T9I;
Chris@82 1914 T8D = W[84];
Chris@82 1915 T9J = T8D * T9I;
Chris@82 1916 cr[WS(rs, 43)] = FNMS(T9K, T9Z, T9J);
Chris@82 1917 ci[WS(rs, 43)] = FMA(T8D, T9Z, Ta0);
Chris@82 1918 }
Chris@82 1919 {
Chris@82 1920 E Ta5, Ta4, Ta6, Ta1, Ta3;
Chris@82 1921 Ta5 = FMA(KP881921264, T9Y, T9V);
Chris@82 1922 Ta4 = W[21];
Chris@82 1923 Ta6 = Ta4 * Ta2;
Chris@82 1924 Ta1 = W[20];
Chris@82 1925 Ta3 = Ta1 * Ta2;
Chris@82 1926 cr[WS(rs, 11)] = FNMS(Ta4, Ta5, Ta3);
Chris@82 1927 ci[WS(rs, 11)] = FMA(Ta1, Ta5, Ta6);
Chris@82 1928 }
Chris@82 1929 }
Chris@82 1930 {
Chris@82 1931 E Teo, Tf0, Tf3, TeD, TeG, TeS, TeX, TeK;
Chris@82 1932 {
Chris@82 1933 E Tez, TeC, TeV, TeE, TeF, TeR, Tdu, TeQ, Ten, TeW;
Chris@82 1934 Tez = FMA(KP707106781, Tey, Tev);
Chris@82 1935 TeC = TeA - TeB;
Chris@82 1936 TeV = FMA(KP923879532, TeC, Tez);
Chris@82 1937 TeE = FNMS(KP668178637, Tec, Tel);
Chris@82 1938 TeF = FMA(KP668178637, TdL, TdU);
Chris@82 1939 TeR = TeE + TeF;
Chris@82 1940 {
Chris@82 1941 E Td6, Tdt, TdV, Tem;
Chris@82 1942 Td6 = FMA(KP707106781, Td5, TcU);
Chris@82 1943 Tdt = Tdh - Tds;
Chris@82 1944 Tdu = FNMS(KP923879532, Tdt, Td6);
Chris@82 1945 TeQ = FMA(KP923879532, Tdt, Td6);
Chris@82 1946 TdV = FNMS(KP668178637, TdU, TdL);
Chris@82 1947 Tem = FMA(KP668178637, Tel, Tec);
Chris@82 1948 Ten = TdV - Tem;
Chris@82 1949 TeW = Tem + TdV;
Chris@82 1950 }
Chris@82 1951 Teo = FNMS(KP831469612, Ten, Tdu);
Chris@82 1952 Tf0 = FMA(KP831469612, TeR, TeQ);
Chris@82 1953 Tf3 = FMA(KP831469612, TeW, TeV);
Chris@82 1954 TeD = FNMS(KP923879532, TeC, Tez);
Chris@82 1955 TeG = TeE - TeF;
Chris@82 1956 TeS = FNMS(KP831469612, TeR, TeQ);
Chris@82 1957 TeX = FNMS(KP831469612, TeW, TeV);
Chris@82 1958 TeK = FMA(KP831469612, Ten, Tdu);
Chris@82 1959 }
Chris@82 1960 {
Chris@82 1961 E TeT, TeY, TeP, TeU;
Chris@82 1962 TeP = W[74];
Chris@82 1963 TeT = TeP * TeS;
Chris@82 1964 TeY = TeP * TeX;
Chris@82 1965 TeU = W[75];
Chris@82 1966 cr[WS(rs, 38)] = FNMS(TeU, TeX, TeT);
Chris@82 1967 ci[WS(rs, 38)] = FMA(TeU, TeS, TeY);
Chris@82 1968 }
Chris@82 1969 {
Chris@82 1970 E Tf1, Tf4, TeZ, Tf2;
Chris@82 1971 TeZ = W[10];
Chris@82 1972 Tf1 = TeZ * Tf0;
Chris@82 1973 Tf4 = TeZ * Tf3;
Chris@82 1974 Tf2 = W[11];
Chris@82 1975 cr[WS(rs, 6)] = FNMS(Tf2, Tf3, Tf1);
Chris@82 1976 ci[WS(rs, 6)] = FMA(Tf2, Tf0, Tf4);
Chris@82 1977 }
Chris@82 1978 {
Chris@82 1979 E TeH, Teq, TeI, TcP, Tep;
Chris@82 1980 TeH = FNMS(KP831469612, TeG, TeD);
Chris@82 1981 Teq = W[107];
Chris@82 1982 TeI = Teq * Teo;
Chris@82 1983 TcP = W[106];
Chris@82 1984 Tep = TcP * Teo;
Chris@82 1985 cr[WS(rs, 54)] = FNMS(Teq, TeH, Tep);
Chris@82 1986 ci[WS(rs, 54)] = FMA(TcP, TeH, TeI);
Chris@82 1987 }
Chris@82 1988 {
Chris@82 1989 E TeN, TeM, TeO, TeJ, TeL;
Chris@82 1990 TeN = FMA(KP831469612, TeG, TeD);
Chris@82 1991 TeM = W[43];
Chris@82 1992 TeO = TeM * TeK;
Chris@82 1993 TeJ = W[42];
Chris@82 1994 TeL = TeJ * TeK;
Chris@82 1995 cr[WS(rs, 22)] = FNMS(TeM, TeN, TeL);
Chris@82 1996 ci[WS(rs, 22)] = FMA(TeJ, TeN, TeO);
Chris@82 1997 }
Chris@82 1998 }
Chris@82 1999 {
Chris@82 2000 E Tci, TcK, TcN, Tcn, Tcq, TcC, TcH, Tcu;
Chris@82 2001 {
Chris@82 2002 E Tcl, Tcm, TcF, Tco, Tcp, TcB, Tca, TcA, Tch, TcG;
Chris@82 2003 Tcl = FNMS(KP923879532, TbA, Tbz);
Chris@82 2004 Tcm = Tbe - Tbb;
Chris@82 2005 TcF = FNMS(KP980785280, Tcm, Tcl);
Chris@82 2006 Tco = FMA(KP098491403, Tcb, Tcc);
Chris@82 2007 Tcp = FMA(KP098491403, Tce, Tcf);
Chris@82 2008 TcB = Tco + Tcp;
Chris@82 2009 {
Chris@82 2010 E Tc8, Tc9, Tcd, Tcg;
Chris@82 2011 Tc8 = FMA(KP923879532, Tb7, Tb6);
Chris@82 2012 Tc9 = TbC + TbD;
Chris@82 2013 Tca = FNMS(KP980785280, Tc9, Tc8);
Chris@82 2014 TcA = FMA(KP980785280, Tc9, Tc8);
Chris@82 2015 Tcd = FNMS(KP098491403, Tcc, Tcb);
Chris@82 2016 Tcg = FNMS(KP098491403, Tcf, Tce);
Chris@82 2017 Tch = Tcd + Tcg;
Chris@82 2018 TcG = Tcg - Tcd;
Chris@82 2019 }
Chris@82 2020 Tci = FMA(KP995184726, Tch, Tca);
Chris@82 2021 TcK = FMA(KP995184726, TcB, TcA);
Chris@82 2022 TcN = FNMS(KP995184726, TcG, TcF);
Chris@82 2023 Tcn = FMA(KP980785280, Tcm, Tcl);
Chris@82 2024 Tcq = Tco - Tcp;
Chris@82 2025 TcC = FNMS(KP995184726, TcB, TcA);
Chris@82 2026 TcH = FMA(KP995184726, TcG, TcF);
Chris@82 2027 Tcu = FNMS(KP995184726, Tch, Tca);
Chris@82 2028 }
Chris@82 2029 {
Chris@82 2030 E TcD, TcI, Tcz, TcE;
Chris@82 2031 Tcz = W[60];
Chris@82 2032 TcD = Tcz * TcC;
Chris@82 2033 TcI = Tcz * TcH;
Chris@82 2034 TcE = W[61];
Chris@82 2035 cr[WS(rs, 31)] = FNMS(TcE, TcH, TcD);
Chris@82 2036 ci[WS(rs, 31)] = FMA(TcE, TcC, TcI);
Chris@82 2037 }
Chris@82 2038 {
Chris@82 2039 E TcL, TcO, TcJ, TcM;
Chris@82 2040 TcJ = W[124];
Chris@82 2041 TcL = TcJ * TcK;
Chris@82 2042 TcO = TcJ * TcN;
Chris@82 2043 TcM = W[125];
Chris@82 2044 cr[WS(rs, 63)] = FNMS(TcM, TcN, TcL);
Chris@82 2045 ci[WS(rs, 63)] = FMA(TcM, TcK, TcO);
Chris@82 2046 }
Chris@82 2047 {
Chris@82 2048 E Tcr, Tck, Tcs, Tc7, Tcj;
Chris@82 2049 Tcr = FNMS(KP995184726, Tcq, Tcn);
Chris@82 2050 Tck = W[93];
Chris@82 2051 Tcs = Tck * Tci;
Chris@82 2052 Tc7 = W[92];
Chris@82 2053 Tcj = Tc7 * Tci;
Chris@82 2054 cr[WS(rs, 47)] = FNMS(Tck, Tcr, Tcj);
Chris@82 2055 ci[WS(rs, 47)] = FMA(Tc7, Tcr, Tcs);
Chris@82 2056 }
Chris@82 2057 {
Chris@82 2058 E Tcx, Tcw, Tcy, Tct, Tcv;
Chris@82 2059 Tcx = FMA(KP995184726, Tcq, Tcn);
Chris@82 2060 Tcw = W[29];
Chris@82 2061 Tcy = Tcw * Tcu;
Chris@82 2062 Tct = W[28];
Chris@82 2063 Tcv = Tct * Tcu;
Chris@82 2064 cr[WS(rs, 15)] = FNMS(Tcw, Tcx, Tcv);
Chris@82 2065 ci[WS(rs, 15)] = FMA(Tct, Tcx, Tcy);
Chris@82 2066 }
Chris@82 2067 }
Chris@82 2068 }
Chris@82 2069 }
Chris@82 2070 }
Chris@82 2071
Chris@82 2072 static const tw_instr twinstr[] = {
Chris@82 2073 {TW_FULL, 1, 64},
Chris@82 2074 {TW_NEXT, 1, 0}
Chris@82 2075 };
Chris@82 2076
Chris@82 2077 static const hc2hc_desc desc = { 64, "hb_64", twinstr, &GENUS, {520, 126, 518, 0} };
Chris@82 2078
Chris@82 2079 void X(codelet_hb_64) (planner *p) {
Chris@82 2080 X(khc2hc_register) (p, hb_64, &desc);
Chris@82 2081 }
Chris@82 2082 #else
Chris@82 2083
Chris@82 2084 /* Generated by: ../../../genfft/gen_hc2hc.native -compact -variables 4 -pipeline-latency 4 -sign 1 -n 64 -dif -name hb_64 -include rdft/scalar/hb.h */
Chris@82 2085
Chris@82 2086 /*
Chris@82 2087 * This function contains 1038 FP additions, 500 FP multiplications,
Chris@82 2088 * (or, 808 additions, 270 multiplications, 230 fused multiply/add),
Chris@82 2089 * 196 stack variables, 15 constants, and 256 memory accesses
Chris@82 2090 */
Chris@82 2091 #include "rdft/scalar/hb.h"
Chris@82 2092
Chris@82 2093 static void hb_64(R *cr, R *ci, const R *W, stride rs, INT mb, INT me, INT ms)
Chris@82 2094 {
Chris@82 2095 DK(KP098017140, +0.098017140329560601994195563888641845861136673);
Chris@82 2096 DK(KP995184726, +0.995184726672196886244836953109479921575474869);
Chris@82 2097 DK(KP773010453, +0.773010453362736960810906609758469800971041293);
Chris@82 2098 DK(KP634393284, +0.634393284163645498215171613225493370675687095);
Chris@82 2099 DK(KP471396736, +0.471396736825997648556387625905254377657460319);
Chris@82 2100 DK(KP881921264, +0.881921264348355029712756863660388349508442621);
Chris@82 2101 DK(KP956940335, +0.956940335732208864935797886980269969482849206);
Chris@82 2102 DK(KP290284677, +0.290284677254462367636192375817395274691476278);
Chris@82 2103 DK(KP195090322, +0.195090322016128267848284868477022240927691618);
Chris@82 2104 DK(KP980785280, +0.980785280403230449126182236134239036973933731);
Chris@82 2105 DK(KP555570233, +0.555570233019602224742830813948532874374937191);
Chris@82 2106 DK(KP831469612, +0.831469612302545237078788377617905756738560812);
Chris@82 2107 DK(KP382683432, +0.382683432365089771728459984030398866761344562);
Chris@82 2108 DK(KP923879532, +0.923879532511286756128183189396788286822416626);
Chris@82 2109 DK(KP707106781, +0.707106781186547524400844362104849039284835938);
Chris@82 2110 {
Chris@82 2111 INT m;
Chris@82 2112 for (m = mb, W = W + ((mb - 1) * 126); m < me; m = m + 1, cr = cr + ms, ci = ci - ms, W = W + 126, MAKE_VOLATILE_STRIDE(128, rs)) {
Chris@82 2113 E Tf, T8C, Tfa, Thk, Tgg, ThM, T2c, T5O, T4K, T6g, Tag, TdE, TcA, Te6, T7P;
Chris@82 2114 E T94, TK, T7o, T38, T4P, Tfv, Thn, T5W, T6j, Tb0, TdK, Tfs, Tho, T8K, T97;
Chris@82 2115 E Tb7, TdL, TZ, T7l, T2P, T4Q, Tfo, Thq, T5T, T6k, TaH, TdH, Tfl, Thr, T8H;
Chris@82 2116 E T98, TaO, TdI, Tu, T95, Tfh, ThN, Tgj, Thl, T2v, T6h, T4N, T5P, Tav, Te7;
Chris@82 2117 E TcD, TdF, T7S, T8D, T1L, T20, T7A, T7D, T7G, T7H, T40, T62, Tg1, Thv, Tg8;
Chris@82 2118 E Thz, Tg5, Thw, T4t, T5Z, T4j, T60, T4w, T63, TbY, TdS, Tcd, TdQ, TfU, Thy;
Chris@82 2119 E T8P, T9z, T8S, T9A, Tcl, TdP, Tco, TdT, T1g, T1v, T7r, T7u, T7x, T7y, T3j;
Chris@82 2120 E T69, TfI, ThD, TfP, ThG, TfM, ThC, T3M, T66, T3C, T67, T3P, T6a, Tbl, TdZ;
Chris@82 2121 E TbA, TdX, TfB, ThF, T8W, T9C, T8Z, T9D, TbI, TdW, TbL, Te0;
Chris@82 2122 {
Chris@82 2123 E T3, Ta6, T6, Tcu, T4I, Ta7, T4F, Tcv, Td, Tcy, T27, Tae, Ta, Tcx, T2a;
Chris@82 2124 E Tab;
Chris@82 2125 {
Chris@82 2126 E T1, T2, T4D, T4E;
Chris@82 2127 T1 = cr[0];
Chris@82 2128 T2 = ci[WS(rs, 31)];
Chris@82 2129 T3 = T1 + T2;
Chris@82 2130 Ta6 = T1 - T2;
Chris@82 2131 {
Chris@82 2132 E T4, T5, T4G, T4H;
Chris@82 2133 T4 = cr[WS(rs, 16)];
Chris@82 2134 T5 = ci[WS(rs, 15)];
Chris@82 2135 T6 = T4 + T5;
Chris@82 2136 Tcu = T4 - T5;
Chris@82 2137 T4G = ci[WS(rs, 47)];
Chris@82 2138 T4H = cr[WS(rs, 48)];
Chris@82 2139 T4I = T4G - T4H;
Chris@82 2140 Ta7 = T4G + T4H;
Chris@82 2141 }
Chris@82 2142 T4D = ci[WS(rs, 63)];
Chris@82 2143 T4E = cr[WS(rs, 32)];
Chris@82 2144 T4F = T4D - T4E;
Chris@82 2145 Tcv = T4D + T4E;
Chris@82 2146 {
Chris@82 2147 E Tb, Tc, Tac, T25, T26, Tad;
Chris@82 2148 Tb = ci[WS(rs, 7)];
Chris@82 2149 Tc = cr[WS(rs, 24)];
Chris@82 2150 Tac = Tb - Tc;
Chris@82 2151 T25 = ci[WS(rs, 39)];
Chris@82 2152 T26 = cr[WS(rs, 56)];
Chris@82 2153 Tad = T25 + T26;
Chris@82 2154 Td = Tb + Tc;
Chris@82 2155 Tcy = Tac + Tad;
Chris@82 2156 T27 = T25 - T26;
Chris@82 2157 Tae = Tac - Tad;
Chris@82 2158 }
Chris@82 2159 {
Chris@82 2160 E T8, T9, Ta9, T28, T29, Taa;
Chris@82 2161 T8 = cr[WS(rs, 8)];
Chris@82 2162 T9 = ci[WS(rs, 23)];
Chris@82 2163 Ta9 = T8 - T9;
Chris@82 2164 T28 = ci[WS(rs, 55)];
Chris@82 2165 T29 = cr[WS(rs, 40)];
Chris@82 2166 Taa = T28 + T29;
Chris@82 2167 Ta = T8 + T9;
Chris@82 2168 Tcx = Ta9 + Taa;
Chris@82 2169 T2a = T28 - T29;
Chris@82 2170 Tab = Ta9 - Taa;
Chris@82 2171 }
Chris@82 2172 }
Chris@82 2173 {
Chris@82 2174 E T7, Te, Tf8, Tf9;
Chris@82 2175 T7 = T3 + T6;
Chris@82 2176 Te = Ta + Td;
Chris@82 2177 Tf = T7 + Te;
Chris@82 2178 T8C = T7 - Te;
Chris@82 2179 Tf8 = Ta6 + Ta7;
Chris@82 2180 Tf9 = KP707106781 * (Tcx + Tcy);
Chris@82 2181 Tfa = Tf8 - Tf9;
Chris@82 2182 Thk = Tf8 + Tf9;
Chris@82 2183 }
Chris@82 2184 {
Chris@82 2185 E Tge, Tgf, T24, T2b;
Chris@82 2186 Tge = Tcv - Tcu;
Chris@82 2187 Tgf = KP707106781 * (Tab - Tae);
Chris@82 2188 Tgg = Tge + Tgf;
Chris@82 2189 ThM = Tge - Tgf;
Chris@82 2190 T24 = T3 - T6;
Chris@82 2191 T2b = T27 - T2a;
Chris@82 2192 T2c = T24 + T2b;
Chris@82 2193 T5O = T24 - T2b;
Chris@82 2194 }
Chris@82 2195 {
Chris@82 2196 E T4C, T4J, Ta8, Taf;
Chris@82 2197 T4C = Ta - Td;
Chris@82 2198 T4J = T4F - T4I;
Chris@82 2199 T4K = T4C + T4J;
Chris@82 2200 T6g = T4J - T4C;
Chris@82 2201 Ta8 = Ta6 - Ta7;
Chris@82 2202 Taf = KP707106781 * (Tab + Tae);
Chris@82 2203 Tag = Ta8 - Taf;
Chris@82 2204 TdE = Ta8 + Taf;
Chris@82 2205 }
Chris@82 2206 {
Chris@82 2207 E Tcw, Tcz, T7N, T7O;
Chris@82 2208 Tcw = Tcu + Tcv;
Chris@82 2209 Tcz = KP707106781 * (Tcx - Tcy);
Chris@82 2210 TcA = Tcw - Tcz;
Chris@82 2211 Te6 = Tcw + Tcz;
Chris@82 2212 T7N = T4F + T4I;
Chris@82 2213 T7O = T2a + T27;
Chris@82 2214 T7P = T7N + T7O;
Chris@82 2215 T94 = T7N - T7O;
Chris@82 2216 }
Chris@82 2217 }
Chris@82 2218 {
Chris@82 2219 E TC, Tb1, T2Z, TaQ, T2X, Tb2, T7m, TaR, TJ, Tb4, Tb5, T2Q, T36, TaV, TaY;
Chris@82 2220 E T7n, Tfq, Tfr;
Chris@82 2221 {
Chris@82 2222 E Tw, Tx, Ty, Tz, TA, TB;
Chris@82 2223 Tw = cr[WS(rs, 2)];
Chris@82 2224 Tx = ci[WS(rs, 29)];
Chris@82 2225 Ty = Tw + Tx;
Chris@82 2226 Tz = cr[WS(rs, 18)];
Chris@82 2227 TA = ci[WS(rs, 13)];
Chris@82 2228 TB = Tz + TA;
Chris@82 2229 TC = Ty + TB;
Chris@82 2230 Tb1 = Tz - TA;
Chris@82 2231 T2Z = Ty - TB;
Chris@82 2232 TaQ = Tw - Tx;
Chris@82 2233 }
Chris@82 2234 {
Chris@82 2235 E T2R, T2S, T2T, T2U, T2V, T2W;
Chris@82 2236 T2R = ci[WS(rs, 61)];
Chris@82 2237 T2S = cr[WS(rs, 34)];
Chris@82 2238 T2T = T2R - T2S;
Chris@82 2239 T2U = ci[WS(rs, 45)];
Chris@82 2240 T2V = cr[WS(rs, 50)];
Chris@82 2241 T2W = T2U - T2V;
Chris@82 2242 T2X = T2T - T2W;
Chris@82 2243 Tb2 = T2R + T2S;
Chris@82 2244 T7m = T2T + T2W;
Chris@82 2245 TaR = T2U + T2V;
Chris@82 2246 }
Chris@82 2247 {
Chris@82 2248 E TF, TaT, T35, TaU, TI, TaW, T32, TaX;
Chris@82 2249 {
Chris@82 2250 E TD, TE, T33, T34;
Chris@82 2251 TD = cr[WS(rs, 10)];
Chris@82 2252 TE = ci[WS(rs, 21)];
Chris@82 2253 TF = TD + TE;
Chris@82 2254 TaT = TD - TE;
Chris@82 2255 T33 = ci[WS(rs, 53)];
Chris@82 2256 T34 = cr[WS(rs, 42)];
Chris@82 2257 T35 = T33 - T34;
Chris@82 2258 TaU = T33 + T34;
Chris@82 2259 }
Chris@82 2260 {
Chris@82 2261 E TG, TH, T30, T31;
Chris@82 2262 TG = ci[WS(rs, 5)];
Chris@82 2263 TH = cr[WS(rs, 26)];
Chris@82 2264 TI = TG + TH;
Chris@82 2265 TaW = TG - TH;
Chris@82 2266 T30 = ci[WS(rs, 37)];
Chris@82 2267 T31 = cr[WS(rs, 58)];
Chris@82 2268 T32 = T30 - T31;
Chris@82 2269 TaX = T30 + T31;
Chris@82 2270 }
Chris@82 2271 TJ = TF + TI;
Chris@82 2272 Tb4 = TaT + TaU;
Chris@82 2273 Tb5 = TaW + TaX;
Chris@82 2274 T2Q = TF - TI;
Chris@82 2275 T36 = T32 - T35;
Chris@82 2276 TaV = TaT - TaU;
Chris@82 2277 TaY = TaW - TaX;
Chris@82 2278 T7n = T35 + T32;
Chris@82 2279 }
Chris@82 2280 TK = TC + TJ;
Chris@82 2281 T7o = T7m + T7n;
Chris@82 2282 {
Chris@82 2283 E T2Y, T37, Tft, Tfu;
Chris@82 2284 T2Y = T2Q + T2X;
Chris@82 2285 T37 = T2Z + T36;
Chris@82 2286 T38 = FMA(KP923879532, T2Y, KP382683432 * T37);
Chris@82 2287 T4P = FNMS(KP382683432, T2Y, KP923879532 * T37);
Chris@82 2288 Tft = TaQ + TaR;
Chris@82 2289 Tfu = KP707106781 * (Tb4 + Tb5);
Chris@82 2290 Tfv = Tft - Tfu;
Chris@82 2291 Thn = Tft + Tfu;
Chris@82 2292 }
Chris@82 2293 {
Chris@82 2294 E T5U, T5V, TaS, TaZ;
Chris@82 2295 T5U = T2X - T2Q;
Chris@82 2296 T5V = T2Z - T36;
Chris@82 2297 T5W = FMA(KP382683432, T5U, KP923879532 * T5V);
Chris@82 2298 T6j = FNMS(KP923879532, T5U, KP382683432 * T5V);
Chris@82 2299 TaS = TaQ - TaR;
Chris@82 2300 TaZ = KP707106781 * (TaV + TaY);
Chris@82 2301 Tb0 = TaS - TaZ;
Chris@82 2302 TdK = TaS + TaZ;
Chris@82 2303 }
Chris@82 2304 Tfq = Tb2 - Tb1;
Chris@82 2305 Tfr = KP707106781 * (TaV - TaY);
Chris@82 2306 Tfs = Tfq + Tfr;
Chris@82 2307 Tho = Tfq - Tfr;
Chris@82 2308 {
Chris@82 2309 E T8I, T8J, Tb3, Tb6;
Chris@82 2310 T8I = TC - TJ;
Chris@82 2311 T8J = T7m - T7n;
Chris@82 2312 T8K = T8I + T8J;
Chris@82 2313 T97 = T8I - T8J;
Chris@82 2314 Tb3 = Tb1 + Tb2;
Chris@82 2315 Tb6 = KP707106781 * (Tb4 - Tb5);
Chris@82 2316 Tb7 = Tb3 - Tb6;
Chris@82 2317 TdL = Tb3 + Tb6;
Chris@82 2318 }
Chris@82 2319 }
Chris@82 2320 {
Chris@82 2321 E TR, TaI, T2G, Tax, T2E, TaJ, T7j, Tay, TY, TaL, TaM, T2x, T2N, TaC, TaF;
Chris@82 2322 E T7k, Tfj, Tfk;
Chris@82 2323 {
Chris@82 2324 E TL, TM, TN, TO, TP, TQ;
Chris@82 2325 TL = ci[WS(rs, 1)];
Chris@82 2326 TM = cr[WS(rs, 30)];
Chris@82 2327 TN = TL + TM;
Chris@82 2328 TO = cr[WS(rs, 14)];
Chris@82 2329 TP = ci[WS(rs, 17)];
Chris@82 2330 TQ = TO + TP;
Chris@82 2331 TR = TN + TQ;
Chris@82 2332 TaI = TL - TM;
Chris@82 2333 T2G = TN - TQ;
Chris@82 2334 Tax = TO - TP;
Chris@82 2335 }
Chris@82 2336 {
Chris@82 2337 E T2y, T2z, T2A, T2B, T2C, T2D;
Chris@82 2338 T2y = ci[WS(rs, 33)];
Chris@82 2339 T2z = cr[WS(rs, 62)];
Chris@82 2340 T2A = T2y - T2z;
Chris@82 2341 T2B = ci[WS(rs, 49)];
Chris@82 2342 T2C = cr[WS(rs, 46)];
Chris@82 2343 T2D = T2B - T2C;
Chris@82 2344 T2E = T2A - T2D;
Chris@82 2345 TaJ = T2B + T2C;
Chris@82 2346 T7j = T2A + T2D;
Chris@82 2347 Tay = T2y + T2z;
Chris@82 2348 }
Chris@82 2349 {
Chris@82 2350 E TU, TaA, T2M, TaB, TX, TaD, T2J, TaE;
Chris@82 2351 {
Chris@82 2352 E TS, TT, T2K, T2L;
Chris@82 2353 TS = cr[WS(rs, 6)];
Chris@82 2354 TT = ci[WS(rs, 25)];
Chris@82 2355 TU = TS + TT;
Chris@82 2356 TaA = TS - TT;
Chris@82 2357 T2K = ci[WS(rs, 57)];
Chris@82 2358 T2L = cr[WS(rs, 38)];
Chris@82 2359 T2M = T2K - T2L;
Chris@82 2360 TaB = T2K + T2L;
Chris@82 2361 }
Chris@82 2362 {
Chris@82 2363 E TV, TW, T2H, T2I;
Chris@82 2364 TV = ci[WS(rs, 9)];
Chris@82 2365 TW = cr[WS(rs, 22)];
Chris@82 2366 TX = TV + TW;
Chris@82 2367 TaD = TV - TW;
Chris@82 2368 T2H = ci[WS(rs, 41)];
Chris@82 2369 T2I = cr[WS(rs, 54)];
Chris@82 2370 T2J = T2H - T2I;
Chris@82 2371 TaE = T2H + T2I;
Chris@82 2372 }
Chris@82 2373 TY = TU + TX;
Chris@82 2374 TaL = TaA - TaB;
Chris@82 2375 TaM = TaD - TaE;
Chris@82 2376 T2x = TU - TX;
Chris@82 2377 T2N = T2J - T2M;
Chris@82 2378 TaC = TaA + TaB;
Chris@82 2379 TaF = TaD + TaE;
Chris@82 2380 T7k = T2M + T2J;
Chris@82 2381 }
Chris@82 2382 TZ = TR + TY;
Chris@82 2383 T7l = T7j + T7k;
Chris@82 2384 {
Chris@82 2385 E T2F, T2O, Tfm, Tfn;
Chris@82 2386 T2F = T2x + T2E;
Chris@82 2387 T2O = T2G + T2N;
Chris@82 2388 T2P = FNMS(KP382683432, T2O, KP923879532 * T2F);
Chris@82 2389 T4Q = FMA(KP382683432, T2F, KP923879532 * T2O);
Chris@82 2390 Tfm = TaI + TaJ;
Chris@82 2391 Tfn = KP707106781 * (TaC + TaF);
Chris@82 2392 Tfo = Tfm - Tfn;
Chris@82 2393 Thq = Tfm + Tfn;
Chris@82 2394 }
Chris@82 2395 {
Chris@82 2396 E T5R, T5S, Taz, TaG;
Chris@82 2397 T5R = T2E - T2x;
Chris@82 2398 T5S = T2G - T2N;
Chris@82 2399 T5T = FNMS(KP923879532, T5S, KP382683432 * T5R);
Chris@82 2400 T6k = FMA(KP923879532, T5R, KP382683432 * T5S);
Chris@82 2401 Taz = Tax - Tay;
Chris@82 2402 TaG = KP707106781 * (TaC - TaF);
Chris@82 2403 TaH = Taz - TaG;
Chris@82 2404 TdH = Taz + TaG;
Chris@82 2405 }
Chris@82 2406 Tfj = KP707106781 * (TaL - TaM);
Chris@82 2407 Tfk = Tax + Tay;
Chris@82 2408 Tfl = Tfj - Tfk;
Chris@82 2409 Thr = Tfk + Tfj;
Chris@82 2410 {
Chris@82 2411 E T8F, T8G, TaK, TaN;
Chris@82 2412 T8F = T7j - T7k;
Chris@82 2413 T8G = TR - TY;
Chris@82 2414 T8H = T8F - T8G;
Chris@82 2415 T98 = T8G + T8F;
Chris@82 2416 TaK = TaI - TaJ;
Chris@82 2417 TaN = KP707106781 * (TaL + TaM);
Chris@82 2418 TaO = TaK - TaN;
Chris@82 2419 TdI = TaK + TaN;
Chris@82 2420 }
Chris@82 2421 }
Chris@82 2422 {
Chris@82 2423 E Ti, T2j, Tl, T2g, T2d, T2k, Tfc, Tfb, Tat, Taq, Tp, T2s, Ts, T2p, T2m;
Chris@82 2424 E T2t, Tff, Tfe, Tam, Taj;
Chris@82 2425 {
Chris@82 2426 E Tar, Tas, Tao, Tap;
Chris@82 2427 {
Chris@82 2428 E Tg, Th, T2h, T2i;
Chris@82 2429 Tg = cr[WS(rs, 4)];
Chris@82 2430 Th = ci[WS(rs, 27)];
Chris@82 2431 Ti = Tg + Th;
Chris@82 2432 Tar = Tg - Th;
Chris@82 2433 T2h = ci[WS(rs, 43)];
Chris@82 2434 T2i = cr[WS(rs, 52)];
Chris@82 2435 T2j = T2h - T2i;
Chris@82 2436 Tas = T2h + T2i;
Chris@82 2437 }
Chris@82 2438 {
Chris@82 2439 E Tj, Tk, T2e, T2f;
Chris@82 2440 Tj = cr[WS(rs, 20)];
Chris@82 2441 Tk = ci[WS(rs, 11)];
Chris@82 2442 Tl = Tj + Tk;
Chris@82 2443 Tao = Tj - Tk;
Chris@82 2444 T2e = ci[WS(rs, 59)];
Chris@82 2445 T2f = cr[WS(rs, 36)];
Chris@82 2446 T2g = T2e - T2f;
Chris@82 2447 Tap = T2e + T2f;
Chris@82 2448 }
Chris@82 2449 T2d = Ti - Tl;
Chris@82 2450 T2k = T2g - T2j;
Chris@82 2451 Tfc = Tap - Tao;
Chris@82 2452 Tfb = Tar + Tas;
Chris@82 2453 Tat = Tar - Tas;
Chris@82 2454 Taq = Tao + Tap;
Chris@82 2455 }
Chris@82 2456 {
Chris@82 2457 E Tak, Tal, Tah, Tai;
Chris@82 2458 {
Chris@82 2459 E Tn, To, T2q, T2r;
Chris@82 2460 Tn = ci[WS(rs, 3)];
Chris@82 2461 To = cr[WS(rs, 28)];
Chris@82 2462 Tp = Tn + To;
Chris@82 2463 Tak = Tn - To;
Chris@82 2464 T2q = ci[WS(rs, 51)];
Chris@82 2465 T2r = cr[WS(rs, 44)];
Chris@82 2466 T2s = T2q - T2r;
Chris@82 2467 Tal = T2q + T2r;
Chris@82 2468 }
Chris@82 2469 {
Chris@82 2470 E Tq, Tr, T2n, T2o;
Chris@82 2471 Tq = cr[WS(rs, 12)];
Chris@82 2472 Tr = ci[WS(rs, 19)];
Chris@82 2473 Ts = Tq + Tr;
Chris@82 2474 Tah = Tq - Tr;
Chris@82 2475 T2n = ci[WS(rs, 35)];
Chris@82 2476 T2o = cr[WS(rs, 60)];
Chris@82 2477 T2p = T2n - T2o;
Chris@82 2478 Tai = T2n + T2o;
Chris@82 2479 }
Chris@82 2480 T2m = Tp - Ts;
Chris@82 2481 T2t = T2p - T2s;
Chris@82 2482 Tff = Tah + Tai;
Chris@82 2483 Tfe = Tak + Tal;
Chris@82 2484 Tam = Tak - Tal;
Chris@82 2485 Taj = Tah - Tai;
Chris@82 2486 }
Chris@82 2487 {
Chris@82 2488 E Tm, Tt, Tfd, Tfg;
Chris@82 2489 Tm = Ti + Tl;
Chris@82 2490 Tt = Tp + Ts;
Chris@82 2491 Tu = Tm + Tt;
Chris@82 2492 T95 = Tm - Tt;
Chris@82 2493 Tfd = FNMS(KP923879532, Tfc, KP382683432 * Tfb);
Chris@82 2494 Tfg = FNMS(KP923879532, Tff, KP382683432 * Tfe);
Chris@82 2495 Tfh = Tfd + Tfg;
Chris@82 2496 ThN = Tfd - Tfg;
Chris@82 2497 }
Chris@82 2498 {
Chris@82 2499 E Tgh, Tgi, T2l, T2u;
Chris@82 2500 Tgh = FMA(KP382683432, Tfc, KP923879532 * Tfb);
Chris@82 2501 Tgi = FMA(KP382683432, Tff, KP923879532 * Tfe);
Chris@82 2502 Tgj = Tgh - Tgi;
Chris@82 2503 Thl = Tgh + Tgi;
Chris@82 2504 T2l = T2d - T2k;
Chris@82 2505 T2u = T2m + T2t;
Chris@82 2506 T2v = KP707106781 * (T2l + T2u);
Chris@82 2507 T6h = KP707106781 * (T2l - T2u);
Chris@82 2508 }
Chris@82 2509 {
Chris@82 2510 E T4L, T4M, Tan, Tau;
Chris@82 2511 T4L = T2d + T2k;
Chris@82 2512 T4M = T2t - T2m;
Chris@82 2513 T4N = KP707106781 * (T4L + T4M);
Chris@82 2514 T5P = KP707106781 * (T4M - T4L);
Chris@82 2515 Tan = FNMS(KP382683432, Tam, KP923879532 * Taj);
Chris@82 2516 Tau = FMA(KP923879532, Taq, KP382683432 * Tat);
Chris@82 2517 Tav = Tan - Tau;
Chris@82 2518 Te7 = Tau + Tan;
Chris@82 2519 }
Chris@82 2520 {
Chris@82 2521 E TcB, TcC, T7Q, T7R;
Chris@82 2522 TcB = FNMS(KP382683432, Taq, KP923879532 * Tat);
Chris@82 2523 TcC = FMA(KP382683432, Taj, KP923879532 * Tam);
Chris@82 2524 TcD = TcB - TcC;
Chris@82 2525 TdF = TcB + TcC;
Chris@82 2526 T7Q = T2g + T2j;
Chris@82 2527 T7R = T2p + T2s;
Chris@82 2528 T7S = T7Q + T7R;
Chris@82 2529 T8D = T7R - T7Q;
Chris@82 2530 }
Chris@82 2531 }
Chris@82 2532 {
Chris@82 2533 E T1z, T1C, T1D, Tcf, TbO, T4o, T4r, T7B, Tcg, TbP, T1G, T3Y, T1J, T3V, T1K;
Chris@82 2534 E T7C, Tcj, Tci, TbW, TbT, T1S, TfV, TfW, T41, T48, Tc8, Tcb, T7E, T1Z, TfY;
Chris@82 2535 E TfZ, T4a, T4h, Tc1, Tc4, T7F;
Chris@82 2536 {
Chris@82 2537 E T1x, T1y, T1A, T1B;
Chris@82 2538 T1x = ci[0];
Chris@82 2539 T1y = cr[WS(rs, 31)];
Chris@82 2540 T1z = T1x + T1y;
Chris@82 2541 T1A = cr[WS(rs, 15)];
Chris@82 2542 T1B = ci[WS(rs, 16)];
Chris@82 2543 T1C = T1A + T1B;
Chris@82 2544 T1D = T1z + T1C;
Chris@82 2545 Tcf = T1A - T1B;
Chris@82 2546 TbO = T1x - T1y;
Chris@82 2547 }
Chris@82 2548 {
Chris@82 2549 E T4m, T4n, T4p, T4q;
Chris@82 2550 T4m = ci[WS(rs, 32)];
Chris@82 2551 T4n = cr[WS(rs, 63)];
Chris@82 2552 T4o = T4m - T4n;
Chris@82 2553 T4p = ci[WS(rs, 48)];
Chris@82 2554 T4q = cr[WS(rs, 47)];
Chris@82 2555 T4r = T4p - T4q;
Chris@82 2556 T7B = T4o + T4r;
Chris@82 2557 Tcg = T4m + T4n;
Chris@82 2558 TbP = T4p + T4q;
Chris@82 2559 }
Chris@82 2560 {
Chris@82 2561 E TbR, TbS, TbU, TbV;
Chris@82 2562 {
Chris@82 2563 E T1E, T1F, T3W, T3X;
Chris@82 2564 T1E = cr[WS(rs, 7)];
Chris@82 2565 T1F = ci[WS(rs, 24)];
Chris@82 2566 T1G = T1E + T1F;
Chris@82 2567 TbR = T1E - T1F;
Chris@82 2568 T3W = ci[WS(rs, 56)];
Chris@82 2569 T3X = cr[WS(rs, 39)];
Chris@82 2570 T3Y = T3W - T3X;
Chris@82 2571 TbS = T3W + T3X;
Chris@82 2572 }
Chris@82 2573 {
Chris@82 2574 E T1H, T1I, T3T, T3U;
Chris@82 2575 T1H = ci[WS(rs, 8)];
Chris@82 2576 T1I = cr[WS(rs, 23)];
Chris@82 2577 T1J = T1H + T1I;
Chris@82 2578 TbU = T1H - T1I;
Chris@82 2579 T3T = ci[WS(rs, 40)];
Chris@82 2580 T3U = cr[WS(rs, 55)];
Chris@82 2581 T3V = T3T - T3U;
Chris@82 2582 TbV = T3T + T3U;
Chris@82 2583 }
Chris@82 2584 T1K = T1G + T1J;
Chris@82 2585 T7C = T3Y + T3V;
Chris@82 2586 Tcj = TbU + TbV;
Chris@82 2587 Tci = TbR + TbS;
Chris@82 2588 TbW = TbU - TbV;
Chris@82 2589 TbT = TbR - TbS;
Chris@82 2590 }
Chris@82 2591 {
Chris@82 2592 E T1O, Tc9, T47, Tca, T1R, Tc6, T44, Tc7;
Chris@82 2593 {
Chris@82 2594 E T1M, T1N, T45, T46;
Chris@82 2595 T1M = cr[WS(rs, 3)];
Chris@82 2596 T1N = ci[WS(rs, 28)];
Chris@82 2597 T1O = T1M + T1N;
Chris@82 2598 Tc9 = T1M - T1N;
Chris@82 2599 T45 = ci[WS(rs, 44)];
Chris@82 2600 T46 = cr[WS(rs, 51)];
Chris@82 2601 T47 = T45 - T46;
Chris@82 2602 Tca = T45 + T46;
Chris@82 2603 }
Chris@82 2604 {
Chris@82 2605 E T1P, T1Q, T42, T43;
Chris@82 2606 T1P = cr[WS(rs, 19)];
Chris@82 2607 T1Q = ci[WS(rs, 12)];
Chris@82 2608 T1R = T1P + T1Q;
Chris@82 2609 Tc6 = T1P - T1Q;
Chris@82 2610 T42 = ci[WS(rs, 60)];
Chris@82 2611 T43 = cr[WS(rs, 35)];
Chris@82 2612 T44 = T42 - T43;
Chris@82 2613 Tc7 = T42 + T43;
Chris@82 2614 }
Chris@82 2615 T1S = T1O + T1R;
Chris@82 2616 TfV = Tc9 + Tca;
Chris@82 2617 TfW = Tc7 - Tc6;
Chris@82 2618 T41 = T1O - T1R;
Chris@82 2619 T48 = T44 - T47;
Chris@82 2620 Tc8 = Tc6 + Tc7;
Chris@82 2621 Tcb = Tc9 - Tca;
Chris@82 2622 T7E = T44 + T47;
Chris@82 2623 }
Chris@82 2624 {
Chris@82 2625 E T1V, Tc2, T4g, Tc3, T1Y, TbZ, T4d, Tc0;
Chris@82 2626 {
Chris@82 2627 E T1T, T1U, T4e, T4f;
Chris@82 2628 T1T = ci[WS(rs, 4)];
Chris@82 2629 T1U = cr[WS(rs, 27)];
Chris@82 2630 T1V = T1T + T1U;
Chris@82 2631 Tc2 = T1T - T1U;
Chris@82 2632 T4e = ci[WS(rs, 52)];
Chris@82 2633 T4f = cr[WS(rs, 43)];
Chris@82 2634 T4g = T4e - T4f;
Chris@82 2635 Tc3 = T4e + T4f;
Chris@82 2636 }
Chris@82 2637 {
Chris@82 2638 E T1W, T1X, T4b, T4c;
Chris@82 2639 T1W = cr[WS(rs, 11)];
Chris@82 2640 T1X = ci[WS(rs, 20)];
Chris@82 2641 T1Y = T1W + T1X;
Chris@82 2642 TbZ = T1W - T1X;
Chris@82 2643 T4b = ci[WS(rs, 36)];
Chris@82 2644 T4c = cr[WS(rs, 59)];
Chris@82 2645 T4d = T4b - T4c;
Chris@82 2646 Tc0 = T4b + T4c;
Chris@82 2647 }
Chris@82 2648 T1Z = T1V + T1Y;
Chris@82 2649 TfY = Tc2 + Tc3;
Chris@82 2650 TfZ = TbZ + Tc0;
Chris@82 2651 T4a = T1V - T1Y;
Chris@82 2652 T4h = T4d - T4g;
Chris@82 2653 Tc1 = TbZ - Tc0;
Chris@82 2654 Tc4 = Tc2 - Tc3;
Chris@82 2655 T7F = T4d + T4g;
Chris@82 2656 }
Chris@82 2657 T1L = T1D + T1K;
Chris@82 2658 T20 = T1S + T1Z;
Chris@82 2659 T7A = T1L - T20;
Chris@82 2660 T7D = T7B + T7C;
Chris@82 2661 T7G = T7E + T7F;
Chris@82 2662 T7H = T7D - T7G;
Chris@82 2663 {
Chris@82 2664 E T3S, T3Z, TfX, Tg0;
Chris@82 2665 T3S = T1z - T1C;
Chris@82 2666 T3Z = T3V - T3Y;
Chris@82 2667 T40 = T3S + T3Z;
Chris@82 2668 T62 = T3S - T3Z;
Chris@82 2669 TfX = FNMS(KP923879532, TfW, KP382683432 * TfV);
Chris@82 2670 Tg0 = FNMS(KP923879532, TfZ, KP382683432 * TfY);
Chris@82 2671 Tg1 = TfX + Tg0;
Chris@82 2672 Thv = TfX - Tg0;
Chris@82 2673 }
Chris@82 2674 {
Chris@82 2675 E Tg6, Tg7, Tg3, Tg4;
Chris@82 2676 Tg6 = FMA(KP382683432, TfW, KP923879532 * TfV);
Chris@82 2677 Tg7 = FMA(KP382683432, TfZ, KP923879532 * TfY);
Chris@82 2678 Tg8 = Tg6 - Tg7;
Chris@82 2679 Thz = Tg6 + Tg7;
Chris@82 2680 Tg3 = KP707106781 * (TbT - TbW);
Chris@82 2681 Tg4 = Tcf + Tcg;
Chris@82 2682 Tg5 = Tg3 - Tg4;
Chris@82 2683 Thw = Tg4 + Tg3;
Chris@82 2684 }
Chris@82 2685 {
Chris@82 2686 E T4l, T4s, T49, T4i;
Chris@82 2687 T4l = T1G - T1J;
Chris@82 2688 T4s = T4o - T4r;
Chris@82 2689 T4t = T4l + T4s;
Chris@82 2690 T5Z = T4s - T4l;
Chris@82 2691 T49 = T41 - T48;
Chris@82 2692 T4i = T4a + T4h;
Chris@82 2693 T4j = KP707106781 * (T49 + T4i);
Chris@82 2694 T60 = KP707106781 * (T49 - T4i);
Chris@82 2695 }
Chris@82 2696 {
Chris@82 2697 E T4u, T4v, TbQ, TbX;
Chris@82 2698 T4u = T41 + T48;
Chris@82 2699 T4v = T4h - T4a;
Chris@82 2700 T4w = KP707106781 * (T4u + T4v);
Chris@82 2701 T63 = KP707106781 * (T4v - T4u);
Chris@82 2702 TbQ = TbO - TbP;
Chris@82 2703 TbX = KP707106781 * (TbT + TbW);
Chris@82 2704 TbY = TbQ - TbX;
Chris@82 2705 TdS = TbQ + TbX;
Chris@82 2706 }
Chris@82 2707 {
Chris@82 2708 E Tc5, Tcc, TfS, TfT;
Chris@82 2709 Tc5 = FNMS(KP382683432, Tc4, KP923879532 * Tc1);
Chris@82 2710 Tcc = FMA(KP923879532, Tc8, KP382683432 * Tcb);
Chris@82 2711 Tcd = Tc5 - Tcc;
Chris@82 2712 TdQ = Tcc + Tc5;
Chris@82 2713 TfS = TbO + TbP;
Chris@82 2714 TfT = KP707106781 * (Tci + Tcj);
Chris@82 2715 TfU = TfS - TfT;
Chris@82 2716 Thy = TfS + TfT;
Chris@82 2717 }
Chris@82 2718 {
Chris@82 2719 E T8N, T8O, T8Q, T8R;
Chris@82 2720 T8N = T7B - T7C;
Chris@82 2721 T8O = T1S - T1Z;
Chris@82 2722 T8P = T8N - T8O;
Chris@82 2723 T9z = T8O + T8N;
Chris@82 2724 T8Q = T1D - T1K;
Chris@82 2725 T8R = T7F - T7E;
Chris@82 2726 T8S = T8Q - T8R;
Chris@82 2727 T9A = T8Q + T8R;
Chris@82 2728 }
Chris@82 2729 {
Chris@82 2730 E Tch, Tck, Tcm, Tcn;
Chris@82 2731 Tch = Tcf - Tcg;
Chris@82 2732 Tck = KP707106781 * (Tci - Tcj);
Chris@82 2733 Tcl = Tch - Tck;
Chris@82 2734 TdP = Tch + Tck;
Chris@82 2735 Tcm = FNMS(KP382683432, Tc8, KP923879532 * Tcb);
Chris@82 2736 Tcn = FMA(KP382683432, Tc1, KP923879532 * Tc4);
Chris@82 2737 Tco = Tcm - Tcn;
Chris@82 2738 TdT = Tcm + Tcn;
Chris@82 2739 }
Chris@82 2740 }
Chris@82 2741 {
Chris@82 2742 E T14, T17, T18, TbC, Tbb, T3H, T3K, T7s, TbD, Tbc, T1b, T3h, T1e, T3e, T1f;
Chris@82 2743 E T7t, TbG, TbF, Tbj, Tbg, T1n, TfC, TfD, T3k, T3r, Tbv, Tby, T7v, T1u, TfF;
Chris@82 2744 E TfG, T3t, T3A, Tbo, Tbr, T7w;
Chris@82 2745 {
Chris@82 2746 E T12, T13, T15, T16;
Chris@82 2747 T12 = cr[WS(rs, 1)];
Chris@82 2748 T13 = ci[WS(rs, 30)];
Chris@82 2749 T14 = T12 + T13;
Chris@82 2750 T15 = cr[WS(rs, 17)];
Chris@82 2751 T16 = ci[WS(rs, 14)];
Chris@82 2752 T17 = T15 + T16;
Chris@82 2753 T18 = T14 + T17;
Chris@82 2754 TbC = T15 - T16;
Chris@82 2755 Tbb = T12 - T13;
Chris@82 2756 }
Chris@82 2757 {
Chris@82 2758 E T3F, T3G, T3I, T3J;
Chris@82 2759 T3F = ci[WS(rs, 62)];
Chris@82 2760 T3G = cr[WS(rs, 33)];
Chris@82 2761 T3H = T3F - T3G;
Chris@82 2762 T3I = ci[WS(rs, 46)];
Chris@82 2763 T3J = cr[WS(rs, 49)];
Chris@82 2764 T3K = T3I - T3J;
Chris@82 2765 T7s = T3H + T3K;
Chris@82 2766 TbD = T3F + T3G;
Chris@82 2767 Tbc = T3I + T3J;
Chris@82 2768 }
Chris@82 2769 {
Chris@82 2770 E Tbe, Tbf, Tbh, Tbi;
Chris@82 2771 {
Chris@82 2772 E T19, T1a, T3f, T3g;
Chris@82 2773 T19 = cr[WS(rs, 9)];
Chris@82 2774 T1a = ci[WS(rs, 22)];
Chris@82 2775 T1b = T19 + T1a;
Chris@82 2776 Tbe = T19 - T1a;
Chris@82 2777 T3f = ci[WS(rs, 54)];
Chris@82 2778 T3g = cr[WS(rs, 41)];
Chris@82 2779 T3h = T3f - T3g;
Chris@82 2780 Tbf = T3f + T3g;
Chris@82 2781 }
Chris@82 2782 {
Chris@82 2783 E T1c, T1d, T3c, T3d;
Chris@82 2784 T1c = ci[WS(rs, 6)];
Chris@82 2785 T1d = cr[WS(rs, 25)];
Chris@82 2786 T1e = T1c + T1d;
Chris@82 2787 Tbh = T1c - T1d;
Chris@82 2788 T3c = ci[WS(rs, 38)];
Chris@82 2789 T3d = cr[WS(rs, 57)];
Chris@82 2790 T3e = T3c - T3d;
Chris@82 2791 Tbi = T3c + T3d;
Chris@82 2792 }
Chris@82 2793 T1f = T1b + T1e;
Chris@82 2794 T7t = T3h + T3e;
Chris@82 2795 TbG = Tbh + Tbi;
Chris@82 2796 TbF = Tbe + Tbf;
Chris@82 2797 Tbj = Tbh - Tbi;
Chris@82 2798 Tbg = Tbe - Tbf;
Chris@82 2799 }
Chris@82 2800 {
Chris@82 2801 E T1j, Tbw, T3q, Tbx, T1m, Tbt, T3n, Tbu;
Chris@82 2802 {
Chris@82 2803 E T1h, T1i, T3o, T3p;
Chris@82 2804 T1h = cr[WS(rs, 5)];
Chris@82 2805 T1i = ci[WS(rs, 26)];
Chris@82 2806 T1j = T1h + T1i;
Chris@82 2807 Tbw = T1h - T1i;
Chris@82 2808 T3o = ci[WS(rs, 42)];
Chris@82 2809 T3p = cr[WS(rs, 53)];
Chris@82 2810 T3q = T3o - T3p;
Chris@82 2811 Tbx = T3o + T3p;
Chris@82 2812 }
Chris@82 2813 {
Chris@82 2814 E T1k, T1l, T3l, T3m;
Chris@82 2815 T1k = cr[WS(rs, 21)];
Chris@82 2816 T1l = ci[WS(rs, 10)];
Chris@82 2817 T1m = T1k + T1l;
Chris@82 2818 Tbt = T1k - T1l;
Chris@82 2819 T3l = ci[WS(rs, 58)];
Chris@82 2820 T3m = cr[WS(rs, 37)];
Chris@82 2821 T3n = T3l - T3m;
Chris@82 2822 Tbu = T3l + T3m;
Chris@82 2823 }
Chris@82 2824 T1n = T1j + T1m;
Chris@82 2825 TfC = Tbw + Tbx;
Chris@82 2826 TfD = Tbu - Tbt;
Chris@82 2827 T3k = T1j - T1m;
Chris@82 2828 T3r = T3n - T3q;
Chris@82 2829 Tbv = Tbt + Tbu;
Chris@82 2830 Tby = Tbw - Tbx;
Chris@82 2831 T7v = T3n + T3q;
Chris@82 2832 }
Chris@82 2833 {
Chris@82 2834 E T1q, Tbp, T3z, Tbq, T1t, Tbm, T3w, Tbn;
Chris@82 2835 {
Chris@82 2836 E T1o, T1p, T3x, T3y;
Chris@82 2837 T1o = ci[WS(rs, 2)];
Chris@82 2838 T1p = cr[WS(rs, 29)];
Chris@82 2839 T1q = T1o + T1p;
Chris@82 2840 Tbp = T1o - T1p;
Chris@82 2841 T3x = ci[WS(rs, 50)];
Chris@82 2842 T3y = cr[WS(rs, 45)];
Chris@82 2843 T3z = T3x - T3y;
Chris@82 2844 Tbq = T3x + T3y;
Chris@82 2845 }
Chris@82 2846 {
Chris@82 2847 E T1r, T1s, T3u, T3v;
Chris@82 2848 T1r = cr[WS(rs, 13)];
Chris@82 2849 T1s = ci[WS(rs, 18)];
Chris@82 2850 T1t = T1r + T1s;
Chris@82 2851 Tbm = T1r - T1s;
Chris@82 2852 T3u = ci[WS(rs, 34)];
Chris@82 2853 T3v = cr[WS(rs, 61)];
Chris@82 2854 T3w = T3u - T3v;
Chris@82 2855 Tbn = T3u + T3v;
Chris@82 2856 }
Chris@82 2857 T1u = T1q + T1t;
Chris@82 2858 TfF = Tbp + Tbq;
Chris@82 2859 TfG = Tbm + Tbn;
Chris@82 2860 T3t = T1q - T1t;
Chris@82 2861 T3A = T3w - T3z;
Chris@82 2862 Tbo = Tbm - Tbn;
Chris@82 2863 Tbr = Tbp - Tbq;
Chris@82 2864 T7w = T3w + T3z;
Chris@82 2865 }
Chris@82 2866 T1g = T18 + T1f;
Chris@82 2867 T1v = T1n + T1u;
Chris@82 2868 T7r = T1g - T1v;
Chris@82 2869 T7u = T7s + T7t;
Chris@82 2870 T7x = T7v + T7w;
Chris@82 2871 T7y = T7u - T7x;
Chris@82 2872 {
Chris@82 2873 E T3b, T3i, TfE, TfH;
Chris@82 2874 T3b = T14 - T17;
Chris@82 2875 T3i = T3e - T3h;
Chris@82 2876 T3j = T3b + T3i;
Chris@82 2877 T69 = T3b - T3i;
Chris@82 2878 TfE = FNMS(KP923879532, TfD, KP382683432 * TfC);
Chris@82 2879 TfH = FNMS(KP923879532, TfG, KP382683432 * TfF);
Chris@82 2880 TfI = TfE + TfH;
Chris@82 2881 ThD = TfE - TfH;
Chris@82 2882 }
Chris@82 2883 {
Chris@82 2884 E TfN, TfO, TfK, TfL;
Chris@82 2885 TfN = FMA(KP382683432, TfD, KP923879532 * TfC);
Chris@82 2886 TfO = FMA(KP382683432, TfG, KP923879532 * TfF);
Chris@82 2887 TfP = TfN - TfO;
Chris@82 2888 ThG = TfN + TfO;
Chris@82 2889 TfK = TbD - TbC;
Chris@82 2890 TfL = KP707106781 * (Tbg - Tbj);
Chris@82 2891 TfM = TfK + TfL;
Chris@82 2892 ThC = TfK - TfL;
Chris@82 2893 }
Chris@82 2894 {
Chris@82 2895 E T3E, T3L, T3s, T3B;
Chris@82 2896 T3E = T1b - T1e;
Chris@82 2897 T3L = T3H - T3K;
Chris@82 2898 T3M = T3E + T3L;
Chris@82 2899 T66 = T3L - T3E;
Chris@82 2900 T3s = T3k - T3r;
Chris@82 2901 T3B = T3t + T3A;
Chris@82 2902 T3C = KP707106781 * (T3s + T3B);
Chris@82 2903 T67 = KP707106781 * (T3s - T3B);
Chris@82 2904 }
Chris@82 2905 {
Chris@82 2906 E T3N, T3O, Tbd, Tbk;
Chris@82 2907 T3N = T3k + T3r;
Chris@82 2908 T3O = T3A - T3t;
Chris@82 2909 T3P = KP707106781 * (T3N + T3O);
Chris@82 2910 T6a = KP707106781 * (T3O - T3N);
Chris@82 2911 Tbd = Tbb - Tbc;
Chris@82 2912 Tbk = KP707106781 * (Tbg + Tbj);
Chris@82 2913 Tbl = Tbd - Tbk;
Chris@82 2914 TdZ = Tbd + Tbk;
Chris@82 2915 }
Chris@82 2916 {
Chris@82 2917 E Tbs, Tbz, Tfz, TfA;
Chris@82 2918 Tbs = FNMS(KP382683432, Tbr, KP923879532 * Tbo);
Chris@82 2919 Tbz = FMA(KP923879532, Tbv, KP382683432 * Tby);
Chris@82 2920 TbA = Tbs - Tbz;
Chris@82 2921 TdX = Tbz + Tbs;
Chris@82 2922 Tfz = Tbb + Tbc;
Chris@82 2923 TfA = KP707106781 * (TbF + TbG);
Chris@82 2924 TfB = Tfz - TfA;
Chris@82 2925 ThF = Tfz + TfA;
Chris@82 2926 }
Chris@82 2927 {
Chris@82 2928 E T8U, T8V, T8X, T8Y;
Chris@82 2929 T8U = T7s - T7t;
Chris@82 2930 T8V = T1n - T1u;
Chris@82 2931 T8W = T8U - T8V;
Chris@82 2932 T9C = T8V + T8U;
Chris@82 2933 T8X = T18 - T1f;
Chris@82 2934 T8Y = T7w - T7v;
Chris@82 2935 T8Z = T8X - T8Y;
Chris@82 2936 T9D = T8X + T8Y;
Chris@82 2937 }
Chris@82 2938 {
Chris@82 2939 E TbE, TbH, TbJ, TbK;
Chris@82 2940 TbE = TbC + TbD;
Chris@82 2941 TbH = KP707106781 * (TbF - TbG);
Chris@82 2942 TbI = TbE - TbH;
Chris@82 2943 TdW = TbE + TbH;
Chris@82 2944 TbJ = FNMS(KP382683432, Tbv, KP923879532 * Tby);
Chris@82 2945 TbK = FMA(KP382683432, Tbo, KP923879532 * Tbr);
Chris@82 2946 TbL = TbJ - TbK;
Chris@82 2947 Te0 = TbJ + TbK;
Chris@82 2948 }
Chris@82 2949 }
Chris@82 2950 {
Chris@82 2951 E T11, T8q, T8n, T8r, T22, T8v, T8k, T8u;
Chris@82 2952 {
Chris@82 2953 E Tv, T10, T8l, T8m;
Chris@82 2954 Tv = Tf + Tu;
Chris@82 2955 T10 = TK + TZ;
Chris@82 2956 T11 = Tv + T10;
Chris@82 2957 T8q = Tv - T10;
Chris@82 2958 T8l = T7u + T7x;
Chris@82 2959 T8m = T7D + T7G;
Chris@82 2960 T8n = T8l + T8m;
Chris@82 2961 T8r = T8m - T8l;
Chris@82 2962 }
Chris@82 2963 {
Chris@82 2964 E T1w, T21, T8i, T8j;
Chris@82 2965 T1w = T1g + T1v;
Chris@82 2966 T21 = T1L + T20;
Chris@82 2967 T22 = T1w + T21;
Chris@82 2968 T8v = T1w - T21;
Chris@82 2969 T8i = T7P + T7S;
Chris@82 2970 T8j = T7o + T7l;
Chris@82 2971 T8k = T8i + T8j;
Chris@82 2972 T8u = T8i - T8j;
Chris@82 2973 }
Chris@82 2974 cr[0] = T11 + T22;
Chris@82 2975 ci[0] = T8k + T8n;
Chris@82 2976 {
Chris@82 2977 E T8g, T8o, T8f, T8h;
Chris@82 2978 T8g = T11 - T22;
Chris@82 2979 T8o = T8k - T8n;
Chris@82 2980 T8f = W[62];
Chris@82 2981 T8h = W[63];
Chris@82 2982 cr[WS(rs, 32)] = FNMS(T8h, T8o, T8f * T8g);
Chris@82 2983 ci[WS(rs, 32)] = FMA(T8h, T8g, T8f * T8o);
Chris@82 2984 }
Chris@82 2985 {
Chris@82 2986 E T8s, T8w, T8p, T8t;
Chris@82 2987 T8s = T8q - T8r;
Chris@82 2988 T8w = T8u - T8v;
Chris@82 2989 T8p = W[94];
Chris@82 2990 T8t = W[95];
Chris@82 2991 cr[WS(rs, 48)] = FNMS(T8t, T8w, T8p * T8s);
Chris@82 2992 ci[WS(rs, 48)] = FMA(T8p, T8w, T8t * T8s);
Chris@82 2993 }
Chris@82 2994 {
Chris@82 2995 E T8y, T8A, T8x, T8z;
Chris@82 2996 T8y = T8q + T8r;
Chris@82 2997 T8A = T8v + T8u;
Chris@82 2998 T8x = W[30];
Chris@82 2999 T8z = W[31];
Chris@82 3000 cr[WS(rs, 16)] = FNMS(T8z, T8A, T8x * T8y);
Chris@82 3001 ci[WS(rs, 16)] = FMA(T8x, T8A, T8z * T8y);
Chris@82 3002 }
Chris@82 3003 }
Chris@82 3004 {
Chris@82 3005 E T9y, T9U, T9N, T9V, T9F, T9Z, T9K, T9Y;
Chris@82 3006 {
Chris@82 3007 E T9w, T9x, T9L, T9M;
Chris@82 3008 T9w = T8C + T8D;
Chris@82 3009 T9x = KP707106781 * (T97 + T98);
Chris@82 3010 T9y = T9w - T9x;
Chris@82 3011 T9U = T9w + T9x;
Chris@82 3012 T9L = FNMS(KP382683432, T9C, KP923879532 * T9D);
Chris@82 3013 T9M = FMA(KP382683432, T9z, KP923879532 * T9A);
Chris@82 3014 T9N = T9L - T9M;
Chris@82 3015 T9V = T9L + T9M;
Chris@82 3016 }
Chris@82 3017 {
Chris@82 3018 E T9B, T9E, T9I, T9J;
Chris@82 3019 T9B = FNMS(KP382683432, T9A, KP923879532 * T9z);
Chris@82 3020 T9E = FMA(KP923879532, T9C, KP382683432 * T9D);
Chris@82 3021 T9F = T9B - T9E;
Chris@82 3022 T9Z = T9E + T9B;
Chris@82 3023 T9I = T95 + T94;
Chris@82 3024 T9J = KP707106781 * (T8K + T8H);
Chris@82 3025 T9K = T9I - T9J;
Chris@82 3026 T9Y = T9I + T9J;
Chris@82 3027 }
Chris@82 3028 {
Chris@82 3029 E T9G, T9O, T9v, T9H;
Chris@82 3030 T9G = T9y - T9F;
Chris@82 3031 T9O = T9K - T9N;
Chris@82 3032 T9v = W[102];
Chris@82 3033 T9H = W[103];
Chris@82 3034 cr[WS(rs, 52)] = FNMS(T9H, T9O, T9v * T9G);
Chris@82 3035 ci[WS(rs, 52)] = FMA(T9H, T9G, T9v * T9O);
Chris@82 3036 }
Chris@82 3037 {
Chris@82 3038 E Ta2, Ta4, Ta1, Ta3;
Chris@82 3039 Ta2 = T9U + T9V;
Chris@82 3040 Ta4 = T9Y + T9Z;
Chris@82 3041 Ta1 = W[6];
Chris@82 3042 Ta3 = W[7];
Chris@82 3043 cr[WS(rs, 4)] = FNMS(Ta3, Ta4, Ta1 * Ta2);
Chris@82 3044 ci[WS(rs, 4)] = FMA(Ta1, Ta4, Ta3 * Ta2);
Chris@82 3045 }
Chris@82 3046 {
Chris@82 3047 E T9Q, T9S, T9P, T9R;
Chris@82 3048 T9Q = T9y + T9F;
Chris@82 3049 T9S = T9K + T9N;
Chris@82 3050 T9P = W[38];
Chris@82 3051 T9R = W[39];
Chris@82 3052 cr[WS(rs, 20)] = FNMS(T9R, T9S, T9P * T9Q);
Chris@82 3053 ci[WS(rs, 20)] = FMA(T9R, T9Q, T9P * T9S);
Chris@82 3054 }
Chris@82 3055 {
Chris@82 3056 E T9W, Ta0, T9T, T9X;
Chris@82 3057 T9W = T9U - T9V;
Chris@82 3058 Ta0 = T9Y - T9Z;
Chris@82 3059 T9T = W[70];
Chris@82 3060 T9X = W[71];
Chris@82 3061 cr[WS(rs, 36)] = FNMS(T9X, Ta0, T9T * T9W);
Chris@82 3062 ci[WS(rs, 36)] = FMA(T9T, Ta0, T9X * T9W);
Chris@82 3063 }
Chris@82 3064 }
Chris@82 3065 {
Chris@82 3066 E T8M, T9k, T9d, T9l, T91, T9p, T9a, T9o;
Chris@82 3067 {
Chris@82 3068 E T8E, T8L, T9b, T9c;
Chris@82 3069 T8E = T8C - T8D;
Chris@82 3070 T8L = KP707106781 * (T8H - T8K);
Chris@82 3071 T8M = T8E - T8L;
Chris@82 3072 T9k = T8E + T8L;
Chris@82 3073 T9b = FNMS(KP923879532, T8W, KP382683432 * T8Z);
Chris@82 3074 T9c = FMA(KP923879532, T8P, KP382683432 * T8S);
Chris@82 3075 T9d = T9b - T9c;
Chris@82 3076 T9l = T9b + T9c;
Chris@82 3077 }
Chris@82 3078 {
Chris@82 3079 E T8T, T90, T96, T99;
Chris@82 3080 T8T = FNMS(KP923879532, T8S, KP382683432 * T8P);
Chris@82 3081 T90 = FMA(KP382683432, T8W, KP923879532 * T8Z);
Chris@82 3082 T91 = T8T - T90;
Chris@82 3083 T9p = T90 + T8T;
Chris@82 3084 T96 = T94 - T95;
Chris@82 3085 T99 = KP707106781 * (T97 - T98);
Chris@82 3086 T9a = T96 - T99;
Chris@82 3087 T9o = T96 + T99;
Chris@82 3088 }
Chris@82 3089 {
Chris@82 3090 E T92, T9e, T8B, T93;
Chris@82 3091 T92 = T8M - T91;
Chris@82 3092 T9e = T9a - T9d;
Chris@82 3093 T8B = W[118];
Chris@82 3094 T93 = W[119];
Chris@82 3095 cr[WS(rs, 60)] = FNMS(T93, T9e, T8B * T92);
Chris@82 3096 ci[WS(rs, 60)] = FMA(T93, T92, T8B * T9e);
Chris@82 3097 }
Chris@82 3098 {
Chris@82 3099 E T9s, T9u, T9r, T9t;
Chris@82 3100 T9s = T9k + T9l;
Chris@82 3101 T9u = T9o + T9p;
Chris@82 3102 T9r = W[22];
Chris@82 3103 T9t = W[23];
Chris@82 3104 cr[WS(rs, 12)] = FNMS(T9t, T9u, T9r * T9s);
Chris@82 3105 ci[WS(rs, 12)] = FMA(T9r, T9u, T9t * T9s);
Chris@82 3106 }
Chris@82 3107 {
Chris@82 3108 E T9g, T9i, T9f, T9h;
Chris@82 3109 T9g = T8M + T91;
Chris@82 3110 T9i = T9a + T9d;
Chris@82 3111 T9f = W[54];
Chris@82 3112 T9h = W[55];
Chris@82 3113 cr[WS(rs, 28)] = FNMS(T9h, T9i, T9f * T9g);
Chris@82 3114 ci[WS(rs, 28)] = FMA(T9h, T9g, T9f * T9i);
Chris@82 3115 }
Chris@82 3116 {
Chris@82 3117 E T9m, T9q, T9j, T9n;
Chris@82 3118 T9m = T9k - T9l;
Chris@82 3119 T9q = T9o - T9p;
Chris@82 3120 T9j = W[86];
Chris@82 3121 T9n = W[87];
Chris@82 3122 cr[WS(rs, 44)] = FNMS(T9n, T9q, T9j * T9m);
Chris@82 3123 ci[WS(rs, 44)] = FMA(T9j, T9q, T9n * T9m);
Chris@82 3124 }
Chris@82 3125 }
Chris@82 3126 {
Chris@82 3127 E T7q, T84, T7X, T85, T7J, T89, T7U, T88;
Chris@82 3128 {
Chris@82 3129 E T7i, T7p, T7V, T7W;
Chris@82 3130 T7i = Tf - Tu;
Chris@82 3131 T7p = T7l - T7o;
Chris@82 3132 T7q = T7i + T7p;
Chris@82 3133 T84 = T7i - T7p;
Chris@82 3134 T7V = T7r + T7y;
Chris@82 3135 T7W = T7H - T7A;
Chris@82 3136 T7X = KP707106781 * (T7V + T7W);
Chris@82 3137 T85 = KP707106781 * (T7W - T7V);
Chris@82 3138 }
Chris@82 3139 {
Chris@82 3140 E T7z, T7I, T7M, T7T;
Chris@82 3141 T7z = T7r - T7y;
Chris@82 3142 T7I = T7A + T7H;
Chris@82 3143 T7J = KP707106781 * (T7z + T7I);
Chris@82 3144 T89 = KP707106781 * (T7z - T7I);
Chris@82 3145 T7M = TK - TZ;
Chris@82 3146 T7T = T7P - T7S;
Chris@82 3147 T7U = T7M + T7T;
Chris@82 3148 T88 = T7T - T7M;
Chris@82 3149 }
Chris@82 3150 {
Chris@82 3151 E T7K, T7Y, T7h, T7L;
Chris@82 3152 T7K = T7q - T7J;
Chris@82 3153 T7Y = T7U - T7X;
Chris@82 3154 T7h = W[78];
Chris@82 3155 T7L = W[79];
Chris@82 3156 cr[WS(rs, 40)] = FNMS(T7L, T7Y, T7h * T7K);
Chris@82 3157 ci[WS(rs, 40)] = FMA(T7L, T7K, T7h * T7Y);
Chris@82 3158 }
Chris@82 3159 {
Chris@82 3160 E T8c, T8e, T8b, T8d;
Chris@82 3161 T8c = T84 + T85;
Chris@82 3162 T8e = T88 + T89;
Chris@82 3163 T8b = W[46];
Chris@82 3164 T8d = W[47];
Chris@82 3165 cr[WS(rs, 24)] = FNMS(T8d, T8e, T8b * T8c);
Chris@82 3166 ci[WS(rs, 24)] = FMA(T8b, T8e, T8d * T8c);
Chris@82 3167 }
Chris@82 3168 {
Chris@82 3169 E T80, T82, T7Z, T81;
Chris@82 3170 T80 = T7q + T7J;
Chris@82 3171 T82 = T7U + T7X;
Chris@82 3172 T7Z = W[14];
Chris@82 3173 T81 = W[15];
Chris@82 3174 cr[WS(rs, 8)] = FNMS(T81, T82, T7Z * T80);
Chris@82 3175 ci[WS(rs, 8)] = FMA(T81, T80, T7Z * T82);
Chris@82 3176 }
Chris@82 3177 {
Chris@82 3178 E T86, T8a, T83, T87;
Chris@82 3179 T86 = T84 - T85;
Chris@82 3180 T8a = T88 - T89;
Chris@82 3181 T83 = W[110];
Chris@82 3182 T87 = W[111];
Chris@82 3183 cr[WS(rs, 56)] = FNMS(T87, T8a, T83 * T86);
Chris@82 3184 ci[WS(rs, 56)] = FMA(T83, T8a, T87 * T86);
Chris@82 3185 }
Chris@82 3186 }
Chris@82 3187 {
Chris@82 3188 E T6K, T76, T6W, T7a, T6R, T7b, T6Z, T77;
Chris@82 3189 {
Chris@82 3190 E T6I, T6J, T6U, T6V;
Chris@82 3191 T6I = T5O + T5P;
Chris@82 3192 T6J = T6j + T6k;
Chris@82 3193 T6K = T6I - T6J;
Chris@82 3194 T76 = T6I + T6J;
Chris@82 3195 T6U = T6g + T6h;
Chris@82 3196 T6V = T5W + T5T;
Chris@82 3197 T6W = T6U - T6V;
Chris@82 3198 T7a = T6U + T6V;
Chris@82 3199 {
Chris@82 3200 E T6N, T6Y, T6Q, T6X;
Chris@82 3201 {
Chris@82 3202 E T6L, T6M, T6O, T6P;
Chris@82 3203 T6L = T5Z + T60;
Chris@82 3204 T6M = T62 + T63;
Chris@82 3205 T6N = FNMS(KP555570233, T6M, KP831469612 * T6L);
Chris@82 3206 T6Y = FMA(KP555570233, T6L, KP831469612 * T6M);
Chris@82 3207 T6O = T66 + T67;
Chris@82 3208 T6P = T69 + T6a;
Chris@82 3209 T6Q = FMA(KP831469612, T6O, KP555570233 * T6P);
Chris@82 3210 T6X = FNMS(KP555570233, T6O, KP831469612 * T6P);
Chris@82 3211 }
Chris@82 3212 T6R = T6N - T6Q;
Chris@82 3213 T7b = T6Q + T6N;
Chris@82 3214 T6Z = T6X - T6Y;
Chris@82 3215 T77 = T6X + T6Y;
Chris@82 3216 }
Chris@82 3217 }
Chris@82 3218 {
Chris@82 3219 E T6S, T70, T6H, T6T;
Chris@82 3220 T6S = T6K - T6R;
Chris@82 3221 T70 = T6W - T6Z;
Chris@82 3222 T6H = W[106];
Chris@82 3223 T6T = W[107];
Chris@82 3224 cr[WS(rs, 54)] = FNMS(T6T, T70, T6H * T6S);
Chris@82 3225 ci[WS(rs, 54)] = FMA(T6T, T6S, T6H * T70);
Chris@82 3226 }
Chris@82 3227 {
Chris@82 3228 E T7e, T7g, T7d, T7f;
Chris@82 3229 T7e = T76 + T77;
Chris@82 3230 T7g = T7a + T7b;
Chris@82 3231 T7d = W[10];
Chris@82 3232 T7f = W[11];
Chris@82 3233 cr[WS(rs, 6)] = FNMS(T7f, T7g, T7d * T7e);
Chris@82 3234 ci[WS(rs, 6)] = FMA(T7d, T7g, T7f * T7e);
Chris@82 3235 }
Chris@82 3236 {
Chris@82 3237 E T72, T74, T71, T73;
Chris@82 3238 T72 = T6K + T6R;
Chris@82 3239 T74 = T6W + T6Z;
Chris@82 3240 T71 = W[42];
Chris@82 3241 T73 = W[43];
Chris@82 3242 cr[WS(rs, 22)] = FNMS(T73, T74, T71 * T72);
Chris@82 3243 ci[WS(rs, 22)] = FMA(T73, T72, T71 * T74);
Chris@82 3244 }
Chris@82 3245 {
Chris@82 3246 E T78, T7c, T75, T79;
Chris@82 3247 T78 = T76 - T77;
Chris@82 3248 T7c = T7a - T7b;
Chris@82 3249 T75 = W[74];
Chris@82 3250 T79 = W[75];
Chris@82 3251 cr[WS(rs, 38)] = FNMS(T79, T7c, T75 * T78);
Chris@82 3252 ci[WS(rs, 38)] = FMA(T75, T7c, T79 * T78);
Chris@82 3253 }
Chris@82 3254 }
Chris@82 3255 {
Chris@82 3256 E T3a, T52, T4S, T56, T4z, T57, T4V, T53;
Chris@82 3257 {
Chris@82 3258 E T2w, T39, T4O, T4R;
Chris@82 3259 T2w = T2c - T2v;
Chris@82 3260 T39 = T2P - T38;
Chris@82 3261 T3a = T2w + T39;
Chris@82 3262 T52 = T2w - T39;
Chris@82 3263 T4O = T4K - T4N;
Chris@82 3264 T4R = T4P - T4Q;
Chris@82 3265 T4S = T4O + T4R;
Chris@82 3266 T56 = T4O - T4R;
Chris@82 3267 {
Chris@82 3268 E T3R, T4T, T4y, T4U;
Chris@82 3269 {
Chris@82 3270 E T3D, T3Q, T4k, T4x;
Chris@82 3271 T3D = T3j - T3C;
Chris@82 3272 T3Q = T3M - T3P;
Chris@82 3273 T3R = FNMS(KP831469612, T3Q, KP555570233 * T3D);
Chris@82 3274 T4T = FMA(KP831469612, T3D, KP555570233 * T3Q);
Chris@82 3275 T4k = T40 - T4j;
Chris@82 3276 T4x = T4t - T4w;
Chris@82 3277 T4y = FMA(KP555570233, T4k, KP831469612 * T4x);
Chris@82 3278 T4U = FNMS(KP831469612, T4k, KP555570233 * T4x);
Chris@82 3279 }
Chris@82 3280 T4z = T3R + T4y;
Chris@82 3281 T57 = T3R - T4y;
Chris@82 3282 T4V = T4T + T4U;
Chris@82 3283 T53 = T4U - T4T;
Chris@82 3284 }
Chris@82 3285 }
Chris@82 3286 {
Chris@82 3287 E T4A, T4W, T23, T4B;
Chris@82 3288 T4A = T3a - T4z;
Chris@82 3289 T4W = T4S - T4V;
Chris@82 3290 T23 = W[82];
Chris@82 3291 T4B = W[83];
Chris@82 3292 cr[WS(rs, 42)] = FNMS(T4B, T4W, T23 * T4A);
Chris@82 3293 ci[WS(rs, 42)] = FMA(T4B, T4A, T23 * T4W);
Chris@82 3294 }
Chris@82 3295 {
Chris@82 3296 E T5a, T5c, T59, T5b;
Chris@82 3297 T5a = T52 + T53;
Chris@82 3298 T5c = T56 + T57;
Chris@82 3299 T59 = W[50];
Chris@82 3300 T5b = W[51];
Chris@82 3301 cr[WS(rs, 26)] = FNMS(T5b, T5c, T59 * T5a);
Chris@82 3302 ci[WS(rs, 26)] = FMA(T59, T5c, T5b * T5a);
Chris@82 3303 }
Chris@82 3304 {
Chris@82 3305 E T4Y, T50, T4X, T4Z;
Chris@82 3306 T4Y = T3a + T4z;
Chris@82 3307 T50 = T4S + T4V;
Chris@82 3308 T4X = W[18];
Chris@82 3309 T4Z = W[19];
Chris@82 3310 cr[WS(rs, 10)] = FNMS(T4Z, T50, T4X * T4Y);
Chris@82 3311 ci[WS(rs, 10)] = FMA(T4Z, T4Y, T4X * T50);
Chris@82 3312 }
Chris@82 3313 {
Chris@82 3314 E T54, T58, T51, T55;
Chris@82 3315 T54 = T52 - T53;
Chris@82 3316 T58 = T56 - T57;
Chris@82 3317 T51 = W[114];
Chris@82 3318 T55 = W[115];
Chris@82 3319 cr[WS(rs, 58)] = FNMS(T55, T58, T51 * T54);
Chris@82 3320 ci[WS(rs, 58)] = FMA(T51, T58, T55 * T54);
Chris@82 3321 }
Chris@82 3322 }
Chris@82 3323 {
Chris@82 3324 E T5g, T5C, T5s, T5G, T5n, T5H, T5v, T5D;
Chris@82 3325 {
Chris@82 3326 E T5e, T5f, T5q, T5r;
Chris@82 3327 T5e = T2c + T2v;
Chris@82 3328 T5f = T4P + T4Q;
Chris@82 3329 T5g = T5e + T5f;
Chris@82 3330 T5C = T5e - T5f;
Chris@82 3331 T5q = T4K + T4N;
Chris@82 3332 T5r = T38 + T2P;
Chris@82 3333 T5s = T5q + T5r;
Chris@82 3334 T5G = T5q - T5r;
Chris@82 3335 {
Chris@82 3336 E T5j, T5t, T5m, T5u;
Chris@82 3337 {
Chris@82 3338 E T5h, T5i, T5k, T5l;
Chris@82 3339 T5h = T3j + T3C;
Chris@82 3340 T5i = T3M + T3P;
Chris@82 3341 T5j = FNMS(KP195090322, T5i, KP980785280 * T5h);
Chris@82 3342 T5t = FMA(KP195090322, T5h, KP980785280 * T5i);
Chris@82 3343 T5k = T40 + T4j;
Chris@82 3344 T5l = T4t + T4w;
Chris@82 3345 T5m = FMA(KP980785280, T5k, KP195090322 * T5l);
Chris@82 3346 T5u = FNMS(KP195090322, T5k, KP980785280 * T5l);
Chris@82 3347 }
Chris@82 3348 T5n = T5j + T5m;
Chris@82 3349 T5H = T5j - T5m;
Chris@82 3350 T5v = T5t + T5u;
Chris@82 3351 T5D = T5u - T5t;
Chris@82 3352 }
Chris@82 3353 }
Chris@82 3354 {
Chris@82 3355 E T5o, T5w, T5d, T5p;
Chris@82 3356 T5o = T5g - T5n;
Chris@82 3357 T5w = T5s - T5v;
Chris@82 3358 T5d = W[66];
Chris@82 3359 T5p = W[67];
Chris@82 3360 cr[WS(rs, 34)] = FNMS(T5p, T5w, T5d * T5o);
Chris@82 3361 ci[WS(rs, 34)] = FMA(T5p, T5o, T5d * T5w);
Chris@82 3362 }
Chris@82 3363 {
Chris@82 3364 E T5K, T5M, T5J, T5L;
Chris@82 3365 T5K = T5C + T5D;
Chris@82 3366 T5M = T5G + T5H;
Chris@82 3367 T5J = W[34];
Chris@82 3368 T5L = W[35];
Chris@82 3369 cr[WS(rs, 18)] = FNMS(T5L, T5M, T5J * T5K);
Chris@82 3370 ci[WS(rs, 18)] = FMA(T5J, T5M, T5L * T5K);
Chris@82 3371 }
Chris@82 3372 {
Chris@82 3373 E T5y, T5A, T5x, T5z;
Chris@82 3374 T5y = T5g + T5n;
Chris@82 3375 T5A = T5s + T5v;
Chris@82 3376 T5x = W[2];
Chris@82 3377 T5z = W[3];
Chris@82 3378 cr[WS(rs, 2)] = FNMS(T5z, T5A, T5x * T5y);
Chris@82 3379 ci[WS(rs, 2)] = FMA(T5z, T5y, T5x * T5A);
Chris@82 3380 }
Chris@82 3381 {
Chris@82 3382 E T5E, T5I, T5B, T5F;
Chris@82 3383 T5E = T5C - T5D;
Chris@82 3384 T5I = T5G - T5H;
Chris@82 3385 T5B = W[98];
Chris@82 3386 T5F = W[99];
Chris@82 3387 cr[WS(rs, 50)] = FNMS(T5F, T5I, T5B * T5E);
Chris@82 3388 ci[WS(rs, 50)] = FMA(T5B, T5I, T5F * T5E);
Chris@82 3389 }
Chris@82 3390 }
Chris@82 3391 {
Chris@82 3392 E T5Y, T6w, T6m, T6A, T6d, T6B, T6p, T6x;
Chris@82 3393 {
Chris@82 3394 E T5Q, T5X, T6i, T6l;
Chris@82 3395 T5Q = T5O - T5P;
Chris@82 3396 T5X = T5T - T5W;
Chris@82 3397 T5Y = T5Q - T5X;
Chris@82 3398 T6w = T5Q + T5X;
Chris@82 3399 T6i = T6g - T6h;
Chris@82 3400 T6l = T6j - T6k;
Chris@82 3401 T6m = T6i - T6l;
Chris@82 3402 T6A = T6i + T6l;
Chris@82 3403 {
Chris@82 3404 E T65, T6o, T6c, T6n;
Chris@82 3405 {
Chris@82 3406 E T61, T64, T68, T6b;
Chris@82 3407 T61 = T5Z - T60;
Chris@82 3408 T64 = T62 - T63;
Chris@82 3409 T65 = FNMS(KP980785280, T64, KP195090322 * T61);
Chris@82 3410 T6o = FMA(KP980785280, T61, KP195090322 * T64);
Chris@82 3411 T68 = T66 - T67;
Chris@82 3412 T6b = T69 - T6a;
Chris@82 3413 T6c = FMA(KP195090322, T68, KP980785280 * T6b);
Chris@82 3414 T6n = FNMS(KP980785280, T68, KP195090322 * T6b);
Chris@82 3415 }
Chris@82 3416 T6d = T65 - T6c;
Chris@82 3417 T6B = T6c + T65;
Chris@82 3418 T6p = T6n - T6o;
Chris@82 3419 T6x = T6n + T6o;
Chris@82 3420 }
Chris@82 3421 }
Chris@82 3422 {
Chris@82 3423 E T6e, T6q, T5N, T6f;
Chris@82 3424 T6e = T5Y - T6d;
Chris@82 3425 T6q = T6m - T6p;
Chris@82 3426 T5N = W[122];
Chris@82 3427 T6f = W[123];
Chris@82 3428 cr[WS(rs, 62)] = FNMS(T6f, T6q, T5N * T6e);
Chris@82 3429 ci[WS(rs, 62)] = FMA(T6f, T6e, T5N * T6q);
Chris@82 3430 }
Chris@82 3431 {
Chris@82 3432 E T6E, T6G, T6D, T6F;
Chris@82 3433 T6E = T6w + T6x;
Chris@82 3434 T6G = T6A + T6B;
Chris@82 3435 T6D = W[26];
Chris@82 3436 T6F = W[27];
Chris@82 3437 cr[WS(rs, 14)] = FNMS(T6F, T6G, T6D * T6E);
Chris@82 3438 ci[WS(rs, 14)] = FMA(T6D, T6G, T6F * T6E);
Chris@82 3439 }
Chris@82 3440 {
Chris@82 3441 E T6s, T6u, T6r, T6t;
Chris@82 3442 T6s = T5Y + T6d;
Chris@82 3443 T6u = T6m + T6p;
Chris@82 3444 T6r = W[58];
Chris@82 3445 T6t = W[59];
Chris@82 3446 cr[WS(rs, 30)] = FNMS(T6t, T6u, T6r * T6s);
Chris@82 3447 ci[WS(rs, 30)] = FMA(T6t, T6s, T6r * T6u);
Chris@82 3448 }
Chris@82 3449 {
Chris@82 3450 E T6y, T6C, T6v, T6z;
Chris@82 3451 T6y = T6w - T6x;
Chris@82 3452 T6C = T6A - T6B;
Chris@82 3453 T6v = W[90];
Chris@82 3454 T6z = W[91];
Chris@82 3455 cr[WS(rs, 46)] = FNMS(T6z, T6C, T6v * T6y);
Chris@82 3456 ci[WS(rs, 46)] = FMA(T6v, T6C, T6z * T6y);
Chris@82 3457 }
Chris@82 3458 }
Chris@82 3459 {
Chris@82 3460 E Tba, Tdw, TcS, Tdi, TcI, Tds, TcW, Td6, Tcr, TcX, TcL, TcT, Tdd, Tdx, Tdl;
Chris@82 3461 E Tdt;
Chris@82 3462 {
Chris@82 3463 E Taw, Tdg, Tb9, Tdh, TaP, Tb8;
Chris@82 3464 Taw = Tag - Tav;
Chris@82 3465 Tdg = TcA + TcD;
Chris@82 3466 TaP = FNMS(KP831469612, TaO, KP555570233 * TaH);
Chris@82 3467 Tb8 = FMA(KP831469612, Tb0, KP555570233 * Tb7);
Chris@82 3468 Tb9 = TaP - Tb8;
Chris@82 3469 Tdh = Tb8 + TaP;
Chris@82 3470 Tba = Taw + Tb9;
Chris@82 3471 Tdw = Tdg - Tdh;
Chris@82 3472 TcS = Taw - Tb9;
Chris@82 3473 Tdi = Tdg + Tdh;
Chris@82 3474 }
Chris@82 3475 {
Chris@82 3476 E TcE, Td4, TcH, Td5, TcF, TcG;
Chris@82 3477 TcE = TcA - TcD;
Chris@82 3478 Td4 = Tag + Tav;
Chris@82 3479 TcF = FNMS(KP831469612, Tb7, KP555570233 * Tb0);
Chris@82 3480 TcG = FMA(KP555570233, TaO, KP831469612 * TaH);
Chris@82 3481 TcH = TcF - TcG;
Chris@82 3482 Td5 = TcF + TcG;
Chris@82 3483 TcI = TcE + TcH;
Chris@82 3484 Tds = Td4 - Td5;
Chris@82 3485 TcW = TcE - TcH;
Chris@82 3486 Td6 = Td4 + Td5;
Chris@82 3487 }
Chris@82 3488 {
Chris@82 3489 E TbN, TcJ, Tcq, TcK;
Chris@82 3490 {
Chris@82 3491 E TbB, TbM, Tce, Tcp;
Chris@82 3492 TbB = Tbl - TbA;
Chris@82 3493 TbM = TbI - TbL;
Chris@82 3494 TbN = FNMS(KP956940335, TbM, KP290284677 * TbB);
Chris@82 3495 TcJ = FMA(KP956940335, TbB, KP290284677 * TbM);
Chris@82 3496 Tce = TbY - Tcd;
Chris@82 3497 Tcp = Tcl - Tco;
Chris@82 3498 Tcq = FMA(KP290284677, Tce, KP956940335 * Tcp);
Chris@82 3499 TcK = FNMS(KP956940335, Tce, KP290284677 * Tcp);
Chris@82 3500 }
Chris@82 3501 Tcr = TbN + Tcq;
Chris@82 3502 TcX = TbN - Tcq;
Chris@82 3503 TcL = TcJ + TcK;
Chris@82 3504 TcT = TcK - TcJ;
Chris@82 3505 }
Chris@82 3506 {
Chris@82 3507 E Td9, Tdj, Tdc, Tdk;
Chris@82 3508 {
Chris@82 3509 E Td7, Td8, Tda, Tdb;
Chris@82 3510 Td7 = Tbl + TbA;
Chris@82 3511 Td8 = TbI + TbL;
Chris@82 3512 Td9 = FNMS(KP471396736, Td8, KP881921264 * Td7);
Chris@82 3513 Tdj = FMA(KP471396736, Td7, KP881921264 * Td8);
Chris@82 3514 Tda = TbY + Tcd;
Chris@82 3515 Tdb = Tcl + Tco;
Chris@82 3516 Tdc = FMA(KP881921264, Tda, KP471396736 * Tdb);
Chris@82 3517 Tdk = FNMS(KP471396736, Tda, KP881921264 * Tdb);
Chris@82 3518 }
Chris@82 3519 Tdd = Td9 + Tdc;
Chris@82 3520 Tdx = Td9 - Tdc;
Chris@82 3521 Tdl = Tdj + Tdk;
Chris@82 3522 Tdt = Tdk - Tdj;
Chris@82 3523 }
Chris@82 3524 {
Chris@82 3525 E Tcs, TcM, Ta5, Tct;
Chris@82 3526 Tcs = Tba - Tcr;
Chris@82 3527 TcM = TcI - TcL;
Chris@82 3528 Ta5 = W[88];
Chris@82 3529 Tct = W[89];
Chris@82 3530 cr[WS(rs, 45)] = FNMS(Tct, TcM, Ta5 * Tcs);
Chris@82 3531 ci[WS(rs, 45)] = FMA(Tct, Tcs, Ta5 * TcM);
Chris@82 3532 }
Chris@82 3533 {
Chris@82 3534 E Tdu, Tdy, Tdr, Tdv;
Chris@82 3535 Tdu = Tds - Tdt;
Chris@82 3536 Tdy = Tdw - Tdx;
Chris@82 3537 Tdr = W[104];
Chris@82 3538 Tdv = W[105];
Chris@82 3539 cr[WS(rs, 53)] = FNMS(Tdv, Tdy, Tdr * Tdu);
Chris@82 3540 ci[WS(rs, 53)] = FMA(Tdr, Tdy, Tdv * Tdu);
Chris@82 3541 }
Chris@82 3542 {
Chris@82 3543 E TdA, TdC, Tdz, TdB;
Chris@82 3544 TdA = Tds + Tdt;
Chris@82 3545 TdC = Tdw + Tdx;
Chris@82 3546 Tdz = W[40];
Chris@82 3547 TdB = W[41];
Chris@82 3548 cr[WS(rs, 21)] = FNMS(TdB, TdC, Tdz * TdA);
Chris@82 3549 ci[WS(rs, 21)] = FMA(Tdz, TdC, TdB * TdA);
Chris@82 3550 }
Chris@82 3551 {
Chris@82 3552 E TcO, TcQ, TcN, TcP;
Chris@82 3553 TcO = Tba + Tcr;
Chris@82 3554 TcQ = TcI + TcL;
Chris@82 3555 TcN = W[24];
Chris@82 3556 TcP = W[25];
Chris@82 3557 cr[WS(rs, 13)] = FNMS(TcP, TcQ, TcN * TcO);
Chris@82 3558 ci[WS(rs, 13)] = FMA(TcP, TcO, TcN * TcQ);
Chris@82 3559 }
Chris@82 3560 {
Chris@82 3561 E TcU, TcY, TcR, TcV;
Chris@82 3562 TcU = TcS - TcT;
Chris@82 3563 TcY = TcW - TcX;
Chris@82 3564 TcR = W[120];
Chris@82 3565 TcV = W[121];
Chris@82 3566 cr[WS(rs, 61)] = FNMS(TcV, TcY, TcR * TcU);
Chris@82 3567 ci[WS(rs, 61)] = FMA(TcR, TcY, TcV * TcU);
Chris@82 3568 }
Chris@82 3569 {
Chris@82 3570 E Tde, Tdm, Td3, Tdf;
Chris@82 3571 Tde = Td6 - Tdd;
Chris@82 3572 Tdm = Tdi - Tdl;
Chris@82 3573 Td3 = W[72];
Chris@82 3574 Tdf = W[73];
Chris@82 3575 cr[WS(rs, 37)] = FNMS(Tdf, Tdm, Td3 * Tde);
Chris@82 3576 ci[WS(rs, 37)] = FMA(Tdf, Tde, Td3 * Tdm);
Chris@82 3577 }
Chris@82 3578 {
Chris@82 3579 E Tdo, Tdq, Tdn, Tdp;
Chris@82 3580 Tdo = Td6 + Tdd;
Chris@82 3581 Tdq = Tdi + Tdl;
Chris@82 3582 Tdn = W[8];
Chris@82 3583 Tdp = W[9];
Chris@82 3584 cr[WS(rs, 5)] = FNMS(Tdp, Tdq, Tdn * Tdo);
Chris@82 3585 ci[WS(rs, 5)] = FMA(Tdp, Tdo, Tdn * Tdq);
Chris@82 3586 }
Chris@82 3587 {
Chris@82 3588 E Td0, Td2, TcZ, Td1;
Chris@82 3589 Td0 = TcS + TcT;
Chris@82 3590 Td2 = TcW + TcX;
Chris@82 3591 TcZ = W[56];
Chris@82 3592 Td1 = W[57];
Chris@82 3593 cr[WS(rs, 29)] = FNMS(Td1, Td2, TcZ * Td0);
Chris@82 3594 ci[WS(rs, 29)] = FMA(TcZ, Td2, Td1 * Td0);
Chris@82 3595 }
Chris@82 3596 }
Chris@82 3597 {
Chris@82 3598 E Tfy, Thc, Tgy, TgY, Tgo, Th8, TgC, TgM, Tgb, TgD, Tgr, Tgz, TgT, Thd, Th1;
Chris@82 3599 E Th9;
Chris@82 3600 {
Chris@82 3601 E Tfi, TgW, Tfx, TgX, Tfp, Tfw;
Chris@82 3602 Tfi = Tfa - Tfh;
Chris@82 3603 TgW = Tgg + Tgj;
Chris@82 3604 Tfp = FNMS(KP555570233, Tfo, KP831469612 * Tfl);
Chris@82 3605 Tfw = FMA(KP831469612, Tfs, KP555570233 * Tfv);
Chris@82 3606 Tfx = Tfp - Tfw;
Chris@82 3607 TgX = Tfw + Tfp;
Chris@82 3608 Tfy = Tfi + Tfx;
Chris@82 3609 Thc = TgW - TgX;
Chris@82 3610 Tgy = Tfi - Tfx;
Chris@82 3611 TgY = TgW + TgX;
Chris@82 3612 }
Chris@82 3613 {
Chris@82 3614 E Tgk, TgK, Tgn, TgL, Tgl, Tgm;
Chris@82 3615 Tgk = Tgg - Tgj;
Chris@82 3616 TgK = Tfa + Tfh;
Chris@82 3617 Tgl = FNMS(KP555570233, Tfs, KP831469612 * Tfv);
Chris@82 3618 Tgm = FMA(KP555570233, Tfl, KP831469612 * Tfo);
Chris@82 3619 Tgn = Tgl - Tgm;
Chris@82 3620 TgL = Tgl + Tgm;
Chris@82 3621 Tgo = Tgk + Tgn;
Chris@82 3622 Th8 = TgK - TgL;
Chris@82 3623 TgC = Tgk - Tgn;
Chris@82 3624 TgM = TgK + TgL;
Chris@82 3625 }
Chris@82 3626 {
Chris@82 3627 E TfR, Tgp, Tga, Tgq;
Chris@82 3628 {
Chris@82 3629 E TfJ, TfQ, Tg2, Tg9;
Chris@82 3630 TfJ = TfB - TfI;
Chris@82 3631 TfQ = TfM - TfP;
Chris@82 3632 TfR = FNMS(KP881921264, TfQ, KP471396736 * TfJ);
Chris@82 3633 Tgp = FMA(KP881921264, TfJ, KP471396736 * TfQ);
Chris@82 3634 Tg2 = TfU - Tg1;
Chris@82 3635 Tg9 = Tg5 - Tg8;
Chris@82 3636 Tga = FMA(KP471396736, Tg2, KP881921264 * Tg9);
Chris@82 3637 Tgq = FNMS(KP881921264, Tg2, KP471396736 * Tg9);
Chris@82 3638 }
Chris@82 3639 Tgb = TfR + Tga;
Chris@82 3640 TgD = TfR - Tga;
Chris@82 3641 Tgr = Tgp + Tgq;
Chris@82 3642 Tgz = Tgq - Tgp;
Chris@82 3643 }
Chris@82 3644 {
Chris@82 3645 E TgP, TgZ, TgS, Th0;
Chris@82 3646 {
Chris@82 3647 E TgN, TgO, TgQ, TgR;
Chris@82 3648 TgN = TfB + TfI;
Chris@82 3649 TgO = TfM + TfP;
Chris@82 3650 TgP = FNMS(KP290284677, TgO, KP956940335 * TgN);
Chris@82 3651 TgZ = FMA(KP290284677, TgN, KP956940335 * TgO);
Chris@82 3652 TgQ = TfU + Tg1;
Chris@82 3653 TgR = Tg5 + Tg8;
Chris@82 3654 TgS = FMA(KP956940335, TgQ, KP290284677 * TgR);
Chris@82 3655 Th0 = FNMS(KP290284677, TgQ, KP956940335 * TgR);
Chris@82 3656 }
Chris@82 3657 TgT = TgP + TgS;
Chris@82 3658 Thd = TgP - TgS;
Chris@82 3659 Th1 = TgZ + Th0;
Chris@82 3660 Th9 = Th0 - TgZ;
Chris@82 3661 }
Chris@82 3662 {
Chris@82 3663 E Tgc, Tgs, Tf7, Tgd;
Chris@82 3664 Tgc = Tfy - Tgb;
Chris@82 3665 Tgs = Tgo - Tgr;
Chris@82 3666 Tf7 = W[84];
Chris@82 3667 Tgd = W[85];
Chris@82 3668 cr[WS(rs, 43)] = FNMS(Tgd, Tgs, Tf7 * Tgc);
Chris@82 3669 ci[WS(rs, 43)] = FMA(Tgd, Tgc, Tf7 * Tgs);
Chris@82 3670 }
Chris@82 3671 {
Chris@82 3672 E Tha, The, Th7, Thb;
Chris@82 3673 Tha = Th8 - Th9;
Chris@82 3674 The = Thc - Thd;
Chris@82 3675 Th7 = W[100];
Chris@82 3676 Thb = W[101];
Chris@82 3677 cr[WS(rs, 51)] = FNMS(Thb, The, Th7 * Tha);
Chris@82 3678 ci[WS(rs, 51)] = FMA(Th7, The, Thb * Tha);
Chris@82 3679 }
Chris@82 3680 {
Chris@82 3681 E Thg, Thi, Thf, Thh;
Chris@82 3682 Thg = Th8 + Th9;
Chris@82 3683 Thi = Thc + Thd;
Chris@82 3684 Thf = W[36];
Chris@82 3685 Thh = W[37];
Chris@82 3686 cr[WS(rs, 19)] = FNMS(Thh, Thi, Thf * Thg);
Chris@82 3687 ci[WS(rs, 19)] = FMA(Thf, Thi, Thh * Thg);
Chris@82 3688 }
Chris@82 3689 {
Chris@82 3690 E Tgu, Tgw, Tgt, Tgv;
Chris@82 3691 Tgu = Tfy + Tgb;
Chris@82 3692 Tgw = Tgo + Tgr;
Chris@82 3693 Tgt = W[20];
Chris@82 3694 Tgv = W[21];
Chris@82 3695 cr[WS(rs, 11)] = FNMS(Tgv, Tgw, Tgt * Tgu);
Chris@82 3696 ci[WS(rs, 11)] = FMA(Tgv, Tgu, Tgt * Tgw);
Chris@82 3697 }
Chris@82 3698 {
Chris@82 3699 E TgA, TgE, Tgx, TgB;
Chris@82 3700 TgA = Tgy - Tgz;
Chris@82 3701 TgE = TgC - TgD;
Chris@82 3702 Tgx = W[116];
Chris@82 3703 TgB = W[117];
Chris@82 3704 cr[WS(rs, 59)] = FNMS(TgB, TgE, Tgx * TgA);
Chris@82 3705 ci[WS(rs, 59)] = FMA(Tgx, TgE, TgB * TgA);
Chris@82 3706 }
Chris@82 3707 {
Chris@82 3708 E TgU, Th2, TgJ, TgV;
Chris@82 3709 TgU = TgM - TgT;
Chris@82 3710 Th2 = TgY - Th1;
Chris@82 3711 TgJ = W[68];
Chris@82 3712 TgV = W[69];
Chris@82 3713 cr[WS(rs, 35)] = FNMS(TgV, Th2, TgJ * TgU);
Chris@82 3714 ci[WS(rs, 35)] = FMA(TgV, TgU, TgJ * Th2);
Chris@82 3715 }
Chris@82 3716 {
Chris@82 3717 E Th4, Th6, Th3, Th5;
Chris@82 3718 Th4 = TgM + TgT;
Chris@82 3719 Th6 = TgY + Th1;
Chris@82 3720 Th3 = W[4];
Chris@82 3721 Th5 = W[5];
Chris@82 3722 cr[WS(rs, 3)] = FNMS(Th5, Th6, Th3 * Th4);
Chris@82 3723 ci[WS(rs, 3)] = FMA(Th5, Th4, Th3 * Th6);
Chris@82 3724 }
Chris@82 3725 {
Chris@82 3726 E TgG, TgI, TgF, TgH;
Chris@82 3727 TgG = Tgy + Tgz;
Chris@82 3728 TgI = TgC + TgD;
Chris@82 3729 TgF = W[52];
Chris@82 3730 TgH = W[53];
Chris@82 3731 cr[WS(rs, 27)] = FNMS(TgH, TgI, TgF * TgG);
Chris@82 3732 ci[WS(rs, 27)] = FMA(TgF, TgI, TgH * TgG);
Chris@82 3733 }
Chris@82 3734 }
Chris@82 3735 {
Chris@82 3736 E TdO, Tf0, Tem, TeM, Tec, TeW, Teq, TeA, Te3, Ter, Tef, Ten, TeH, Tf1, TeP;
Chris@82 3737 E TeX;
Chris@82 3738 {
Chris@82 3739 E TdG, TeK, TdN, TeL, TdJ, TdM;
Chris@82 3740 TdG = TdE - TdF;
Chris@82 3741 TeK = Te6 + Te7;
Chris@82 3742 TdJ = FNMS(KP195090322, TdI, KP980785280 * TdH);
Chris@82 3743 TdM = FMA(KP195090322, TdK, KP980785280 * TdL);
Chris@82 3744 TdN = TdJ - TdM;
Chris@82 3745 TeL = TdM + TdJ;
Chris@82 3746 TdO = TdG - TdN;
Chris@82 3747 Tf0 = TeK + TeL;
Chris@82 3748 Tem = TdG + TdN;
Chris@82 3749 TeM = TeK - TeL;
Chris@82 3750 }
Chris@82 3751 {
Chris@82 3752 E Te8, Tey, Teb, Tez, Te9, Tea;
Chris@82 3753 Te8 = Te6 - Te7;
Chris@82 3754 Tey = TdE + TdF;
Chris@82 3755 Te9 = FNMS(KP195090322, TdL, KP980785280 * TdK);
Chris@82 3756 Tea = FMA(KP980785280, TdI, KP195090322 * TdH);
Chris@82 3757 Teb = Te9 - Tea;
Chris@82 3758 Tez = Te9 + Tea;
Chris@82 3759 Tec = Te8 - Teb;
Chris@82 3760 TeW = Tey + Tez;
Chris@82 3761 Teq = Te8 + Teb;
Chris@82 3762 TeA = Tey - Tez;
Chris@82 3763 }
Chris@82 3764 {
Chris@82 3765 E TdV, Tee, Te2, Ted;
Chris@82 3766 {
Chris@82 3767 E TdR, TdU, TdY, Te1;
Chris@82 3768 TdR = TdP - TdQ;
Chris@82 3769 TdU = TdS - TdT;
Chris@82 3770 TdV = FNMS(KP773010453, TdU, KP634393284 * TdR);
Chris@82 3771 Tee = FMA(KP773010453, TdR, KP634393284 * TdU);
Chris@82 3772 TdY = TdW - TdX;
Chris@82 3773 Te1 = TdZ - Te0;
Chris@82 3774 Te2 = FMA(KP634393284, TdY, KP773010453 * Te1);
Chris@82 3775 Ted = FNMS(KP773010453, TdY, KP634393284 * Te1);
Chris@82 3776 }
Chris@82 3777 Te3 = TdV - Te2;
Chris@82 3778 Ter = Te2 + TdV;
Chris@82 3779 Tef = Ted - Tee;
Chris@82 3780 Ten = Ted + Tee;
Chris@82 3781 }
Chris@82 3782 {
Chris@82 3783 E TeD, TeO, TeG, TeN;
Chris@82 3784 {
Chris@82 3785 E TeB, TeC, TeE, TeF;
Chris@82 3786 TeB = TdP + TdQ;
Chris@82 3787 TeC = TdS + TdT;
Chris@82 3788 TeD = FNMS(KP098017140, TeC, KP995184726 * TeB);
Chris@82 3789 TeO = FMA(KP098017140, TeB, KP995184726 * TeC);
Chris@82 3790 TeE = TdW + TdX;
Chris@82 3791 TeF = TdZ + Te0;
Chris@82 3792 TeG = FMA(KP995184726, TeE, KP098017140 * TeF);
Chris@82 3793 TeN = FNMS(KP098017140, TeE, KP995184726 * TeF);
Chris@82 3794 }
Chris@82 3795 TeH = TeD - TeG;
Chris@82 3796 Tf1 = TeG + TeD;
Chris@82 3797 TeP = TeN - TeO;
Chris@82 3798 TeX = TeN + TeO;
Chris@82 3799 }
Chris@82 3800 {
Chris@82 3801 E Te4, Teg, TdD, Te5;
Chris@82 3802 Te4 = TdO - Te3;
Chris@82 3803 Teg = Tec - Tef;
Chris@82 3804 TdD = W[112];
Chris@82 3805 Te5 = W[113];
Chris@82 3806 cr[WS(rs, 57)] = FNMS(Te5, Teg, TdD * Te4);
Chris@82 3807 ci[WS(rs, 57)] = FMA(Te5, Te4, TdD * Teg);
Chris@82 3808 }
Chris@82 3809 {
Chris@82 3810 E TeY, Tf2, TeV, TeZ;
Chris@82 3811 TeY = TeW - TeX;
Chris@82 3812 Tf2 = Tf0 - Tf1;
Chris@82 3813 TeV = W[64];
Chris@82 3814 TeZ = W[65];
Chris@82 3815 cr[WS(rs, 33)] = FNMS(TeZ, Tf2, TeV * TeY);
Chris@82 3816 ci[WS(rs, 33)] = FMA(TeV, Tf2, TeZ * TeY);
Chris@82 3817 }
Chris@82 3818 {
Chris@82 3819 E Tf4, Tf6, Tf3, Tf5;
Chris@82 3820 Tf4 = TeW + TeX;
Chris@82 3821 Tf6 = Tf0 + Tf1;
Chris@82 3822 Tf3 = W[0];
Chris@82 3823 Tf5 = W[1];
Chris@82 3824 cr[WS(rs, 1)] = FNMS(Tf5, Tf6, Tf3 * Tf4);
Chris@82 3825 ci[WS(rs, 1)] = FMA(Tf3, Tf6, Tf5 * Tf4);
Chris@82 3826 }
Chris@82 3827 {
Chris@82 3828 E Tei, Tek, Teh, Tej;
Chris@82 3829 Tei = TdO + Te3;
Chris@82 3830 Tek = Tec + Tef;
Chris@82 3831 Teh = W[48];
Chris@82 3832 Tej = W[49];
Chris@82 3833 cr[WS(rs, 25)] = FNMS(Tej, Tek, Teh * Tei);
Chris@82 3834 ci[WS(rs, 25)] = FMA(Tej, Tei, Teh * Tek);
Chris@82 3835 }
Chris@82 3836 {
Chris@82 3837 E Teo, Tes, Tel, Tep;
Chris@82 3838 Teo = Tem - Ten;
Chris@82 3839 Tes = Teq - Ter;
Chris@82 3840 Tel = W[80];
Chris@82 3841 Tep = W[81];
Chris@82 3842 cr[WS(rs, 41)] = FNMS(Tep, Tes, Tel * Teo);
Chris@82 3843 ci[WS(rs, 41)] = FMA(Tel, Tes, Tep * Teo);
Chris@82 3844 }
Chris@82 3845 {
Chris@82 3846 E TeI, TeQ, Tex, TeJ;
Chris@82 3847 TeI = TeA - TeH;
Chris@82 3848 TeQ = TeM - TeP;
Chris@82 3849 Tex = W[96];
Chris@82 3850 TeJ = W[97];
Chris@82 3851 cr[WS(rs, 49)] = FNMS(TeJ, TeQ, Tex * TeI);
Chris@82 3852 ci[WS(rs, 49)] = FMA(TeJ, TeI, Tex * TeQ);
Chris@82 3853 }
Chris@82 3854 {
Chris@82 3855 E TeS, TeU, TeR, TeT;
Chris@82 3856 TeS = TeA + TeH;
Chris@82 3857 TeU = TeM + TeP;
Chris@82 3858 TeR = W[32];
Chris@82 3859 TeT = W[33];
Chris@82 3860 cr[WS(rs, 17)] = FNMS(TeT, TeU, TeR * TeS);
Chris@82 3861 ci[WS(rs, 17)] = FMA(TeT, TeS, TeR * TeU);
Chris@82 3862 }
Chris@82 3863 {
Chris@82 3864 E Teu, Tew, Tet, Tev;
Chris@82 3865 Teu = Tem + Ten;
Chris@82 3866 Tew = Teq + Ter;
Chris@82 3867 Tet = W[16];
Chris@82 3868 Tev = W[17];
Chris@82 3869 cr[WS(rs, 9)] = FNMS(Tev, Tew, Tet * Teu);
Chris@82 3870 ci[WS(rs, 9)] = FMA(Tet, Tew, Tev * Teu);
Chris@82 3871 }
Chris@82 3872 }
Chris@82 3873 {
Chris@82 3874 E Thu, TiG, Ti2, Tis, ThS, TiC, Ti6, Tig, ThJ, Ti7, ThV, Ti3, Tin, TiH, Tiv;
Chris@82 3875 E TiD;
Chris@82 3876 {
Chris@82 3877 E Thm, Tiq, Tht, Tir, Thp, Ths;
Chris@82 3878 Thm = Thk - Thl;
Chris@82 3879 Tiq = ThM - ThN;
Chris@82 3880 Thp = FNMS(KP980785280, Tho, KP195090322 * Thn);
Chris@82 3881 Ths = FNMS(KP980785280, Thr, KP195090322 * Thq);
Chris@82 3882 Tht = Thp + Ths;
Chris@82 3883 Tir = Thp - Ths;
Chris@82 3884 Thu = Thm - Tht;
Chris@82 3885 TiG = Tiq - Tir;
Chris@82 3886 Ti2 = Thm + Tht;
Chris@82 3887 Tis = Tiq + Tir;
Chris@82 3888 }
Chris@82 3889 {
Chris@82 3890 E ThO, Tie, ThR, Tif, ThP, ThQ;
Chris@82 3891 ThO = ThM + ThN;
Chris@82 3892 Tie = Thk + Thl;
Chris@82 3893 ThP = FMA(KP195090322, Tho, KP980785280 * Thn);
Chris@82 3894 ThQ = FMA(KP195090322, Thr, KP980785280 * Thq);
Chris@82 3895 ThR = ThP - ThQ;
Chris@82 3896 Tif = ThP + ThQ;
Chris@82 3897 ThS = ThO - ThR;
Chris@82 3898 TiC = Tie + Tif;
Chris@82 3899 Ti6 = ThO + ThR;
Chris@82 3900 Tig = Tie - Tif;
Chris@82 3901 }
Chris@82 3902 {
Chris@82 3903 E ThB, ThU, ThI, ThT;
Chris@82 3904 {
Chris@82 3905 E Thx, ThA, ThE, ThH;
Chris@82 3906 Thx = Thv - Thw;
Chris@82 3907 ThA = Thy - Thz;
Chris@82 3908 ThB = FNMS(KP634393284, ThA, KP773010453 * Thx);
Chris@82 3909 ThU = FMA(KP634393284, Thx, KP773010453 * ThA);
Chris@82 3910 ThE = ThC + ThD;
Chris@82 3911 ThH = ThF - ThG;
Chris@82 3912 ThI = FMA(KP773010453, ThE, KP634393284 * ThH);
Chris@82 3913 ThT = FNMS(KP634393284, ThE, KP773010453 * ThH);
Chris@82 3914 }
Chris@82 3915 ThJ = ThB - ThI;
Chris@82 3916 Ti7 = ThI + ThB;
Chris@82 3917 ThV = ThT - ThU;
Chris@82 3918 Ti3 = ThT + ThU;
Chris@82 3919 }
Chris@82 3920 {
Chris@82 3921 E Tij, Tit, Tim, Tiu;
Chris@82 3922 {
Chris@82 3923 E Tih, Tii, Tik, Til;
Chris@82 3924 Tih = ThF + ThG;
Chris@82 3925 Tii = ThC - ThD;
Chris@82 3926 Tij = FNMS(KP995184726, Tii, KP098017140 * Tih);
Chris@82 3927 Tit = FMA(KP098017140, Tii, KP995184726 * Tih);
Chris@82 3928 Tik = Thy + Thz;
Chris@82 3929 Til = Thw + Thv;
Chris@82 3930 Tim = FNMS(KP995184726, Til, KP098017140 * Tik);
Chris@82 3931 Tiu = FMA(KP098017140, Til, KP995184726 * Tik);
Chris@82 3932 }
Chris@82 3933 Tin = Tij + Tim;
Chris@82 3934 TiH = Tij - Tim;
Chris@82 3935 Tiv = Tit - Tiu;
Chris@82 3936 TiD = Tit + Tiu;
Chris@82 3937 }
Chris@82 3938 {
Chris@82 3939 E ThK, ThW, Thj, ThL;
Chris@82 3940 ThK = Thu - ThJ;
Chris@82 3941 ThW = ThS - ThV;
Chris@82 3942 Thj = W[108];
Chris@82 3943 ThL = W[109];
Chris@82 3944 cr[WS(rs, 55)] = FNMS(ThL, ThW, Thj * ThK);
Chris@82 3945 ci[WS(rs, 55)] = FMA(ThL, ThK, Thj * ThW);
Chris@82 3946 }
Chris@82 3947 {
Chris@82 3948 E TiE, TiI, TiB, TiF;
Chris@82 3949 TiE = TiC - TiD;
Chris@82 3950 TiI = TiG + TiH;
Chris@82 3951 TiB = W[60];
Chris@82 3952 TiF = W[61];
Chris@82 3953 cr[WS(rs, 31)] = FNMS(TiF, TiI, TiB * TiE);
Chris@82 3954 ci[WS(rs, 31)] = FMA(TiB, TiI, TiF * TiE);
Chris@82 3955 }
Chris@82 3956 {
Chris@82 3957 E TiK, TiM, TiJ, TiL;
Chris@82 3958 TiK = TiC + TiD;
Chris@82 3959 TiM = TiG - TiH;
Chris@82 3960 TiJ = W[124];
Chris@82 3961 TiL = W[125];
Chris@82 3962 cr[WS(rs, 63)] = FNMS(TiL, TiM, TiJ * TiK);
Chris@82 3963 ci[WS(rs, 63)] = FMA(TiJ, TiM, TiL * TiK);
Chris@82 3964 }
Chris@82 3965 {
Chris@82 3966 E ThY, Ti0, ThX, ThZ;
Chris@82 3967 ThY = Thu + ThJ;
Chris@82 3968 Ti0 = ThS + ThV;
Chris@82 3969 ThX = W[44];
Chris@82 3970 ThZ = W[45];
Chris@82 3971 cr[WS(rs, 23)] = FNMS(ThZ, Ti0, ThX * ThY);
Chris@82 3972 ci[WS(rs, 23)] = FMA(ThZ, ThY, ThX * Ti0);
Chris@82 3973 }
Chris@82 3974 {
Chris@82 3975 E Ti4, Ti8, Ti1, Ti5;
Chris@82 3976 Ti4 = Ti2 - Ti3;
Chris@82 3977 Ti8 = Ti6 - Ti7;
Chris@82 3978 Ti1 = W[76];
Chris@82 3979 Ti5 = W[77];
Chris@82 3980 cr[WS(rs, 39)] = FNMS(Ti5, Ti8, Ti1 * Ti4);
Chris@82 3981 ci[WS(rs, 39)] = FMA(Ti1, Ti8, Ti5 * Ti4);
Chris@82 3982 }
Chris@82 3983 {
Chris@82 3984 E Tio, Tiw, Tid, Tip;
Chris@82 3985 Tio = Tig - Tin;
Chris@82 3986 Tiw = Tis - Tiv;
Chris@82 3987 Tid = W[92];
Chris@82 3988 Tip = W[93];
Chris@82 3989 cr[WS(rs, 47)] = FNMS(Tip, Tiw, Tid * Tio);
Chris@82 3990 ci[WS(rs, 47)] = FMA(Tip, Tio, Tid * Tiw);
Chris@82 3991 }
Chris@82 3992 {
Chris@82 3993 E Tiy, TiA, Tix, Tiz;
Chris@82 3994 Tiy = Tig + Tin;
Chris@82 3995 TiA = Tis + Tiv;
Chris@82 3996 Tix = W[28];
Chris@82 3997 Tiz = W[29];
Chris@82 3998 cr[WS(rs, 15)] = FNMS(Tiz, TiA, Tix * Tiy);
Chris@82 3999 ci[WS(rs, 15)] = FMA(Tiz, Tiy, Tix * TiA);
Chris@82 4000 }
Chris@82 4001 {
Chris@82 4002 E Tia, Tic, Ti9, Tib;
Chris@82 4003 Tia = Ti2 + Ti3;
Chris@82 4004 Tic = Ti6 + Ti7;
Chris@82 4005 Ti9 = W[12];
Chris@82 4006 Tib = W[13];
Chris@82 4007 cr[WS(rs, 7)] = FNMS(Tib, Tic, Ti9 * Tia);
Chris@82 4008 ci[WS(rs, 7)] = FMA(Ti9, Tic, Tib * Tia);
Chris@82 4009 }
Chris@82 4010 }
Chris@82 4011 }
Chris@82 4012 }
Chris@82 4013 }
Chris@82 4014
Chris@82 4015 static const tw_instr twinstr[] = {
Chris@82 4016 {TW_FULL, 1, 64},
Chris@82 4017 {TW_NEXT, 1, 0}
Chris@82 4018 };
Chris@82 4019
Chris@82 4020 static const hc2hc_desc desc = { 64, "hb_64", twinstr, &GENUS, {808, 270, 230, 0} };
Chris@82 4021
Chris@82 4022 void X(codelet_hb_64) (planner *p) {
Chris@82 4023 X(khc2hc_register) (p, hb_64, &desc);
Chris@82 4024 }
Chris@82 4025 #endif