annotate src/fftw-3.3.3/dft/scalar/codelets/n1_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 37bf6b4a2645
children
rev   line source
Chris@10 1 /*
Chris@10 2 * Copyright (c) 2003, 2007-11 Matteo Frigo
Chris@10 3 * Copyright (c) 2003, 2007-11 Massachusetts Institute of Technology
Chris@10 4 *
Chris@10 5 * This program is free software; you can redistribute it and/or modify
Chris@10 6 * it under the terms of the GNU General Public License as published by
Chris@10 7 * the Free Software Foundation; either version 2 of the License, or
Chris@10 8 * (at your option) any later version.
Chris@10 9 *
Chris@10 10 * This program is distributed in the hope that it will be useful,
Chris@10 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
Chris@10 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
Chris@10 13 * GNU General Public License for more details.
Chris@10 14 *
Chris@10 15 * You should have received a copy of the GNU General Public License
Chris@10 16 * along with this program; if not, write to the Free Software
Chris@10 17 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Chris@10 18 *
Chris@10 19 */
Chris@10 20
Chris@10 21 /* This file was automatically generated --- DO NOT EDIT */
Chris@10 22 /* Generated on Sun Nov 25 07:35:46 EST 2012 */
Chris@10 23
Chris@10 24 #include "codelet-dft.h"
Chris@10 25
Chris@10 26 #ifdef HAVE_FMA
Chris@10 27
Chris@10 28 /* Generated by: ../../../genfft/gen_notw.native -fma -reorder-insns -schedule-for-pipeline -compact -variables 4 -pipeline-latency 4 -n 64 -name n1_64 -include n.h */
Chris@10 29
Chris@10 30 /*
Chris@10 31 * This function contains 912 FP additions, 392 FP multiplications,
Chris@10 32 * (or, 520 additions, 0 multiplications, 392 fused multiply/add),
Chris@10 33 * 202 stack variables, 15 constants, and 256 memory accesses
Chris@10 34 */
Chris@10 35 #include "n.h"
Chris@10 36
Chris@10 37 static void n1_64(const R *ri, const R *ii, R *ro, R *io, stride is, stride os, INT v, INT ivs, INT ovs)
Chris@10 38 {
Chris@10 39 DK(KP956940335, +0.956940335732208864935797886980269969482849206);
Chris@10 40 DK(KP881921264, +0.881921264348355029712756863660388349508442621);
Chris@10 41 DK(KP534511135, +0.534511135950791641089685961295362908582039528);
Chris@10 42 DK(KP303346683, +0.303346683607342391675883946941299872384187453);
Chris@10 43 DK(KP995184726, +0.995184726672196886244836953109479921575474869);
Chris@10 44 DK(KP773010453, +0.773010453362736960810906609758469800971041293);
Chris@10 45 DK(KP820678790, +0.820678790828660330972281985331011598767386482);
Chris@10 46 DK(KP098491403, +0.098491403357164253077197521291327432293052451);
Chris@10 47 DK(KP980785280, +0.980785280403230449126182236134239036973933731);
Chris@10 48 DK(KP831469612, +0.831469612302545237078788377617905756738560812);
Chris@10 49 DK(KP668178637, +0.668178637919298919997757686523080761552472251);
Chris@10 50 DK(KP198912367, +0.198912367379658006911597622644676228597850501);
Chris@10 51 DK(KP923879532, +0.923879532511286756128183189396788286822416626);
Chris@10 52 DK(KP707106781, +0.707106781186547524400844362104849039284835938);
Chris@10 53 DK(KP414213562, +0.414213562373095048801688724209698078569671875);
Chris@10 54 {
Chris@10 55 INT i;
Chris@10 56 for (i = v; i > 0; i = i - 1, ri = ri + ivs, ii = ii + ivs, ro = ro + ovs, io = io + ovs, MAKE_VOLATILE_STRIDE(256, is), MAKE_VOLATILE_STRIDE(256, os)) {
Chris@10 57 E T9b, T9e;
Chris@10 58 {
Chris@10 59 E T7B, T37, T5Z, T8F, Td9, Tf, TcB, TbB, T7C, T62, TdH, T2i, Tcb, Tah, T8G;
Chris@10 60 E T3e, Tu, TdI, Tak, TbC, TbD, Tan, Tda, T2x, T65, T3m, T8I, T7G, T8J, T7J;
Chris@10 61 E T64, T3t, Tdd, TK, Tce, Tas, Tcf, Tav, Tdc, T2N, T6G, T3G, T9k, T7O, T9l;
Chris@10 62 E T7R, T6H, T3N, TdA, T1L, Tct, Tbs, Teo, Tdx, T6Y, T5j, T6V, T5Q, T9z, T8y;
Chris@10 63 E Tcw, Tbb, T9C, T8n, Tdf, TZ, Tch, Taz, Tci, TaC, Tdg, T32, T6J, T3Z, T9n;
Chris@10 64 E T7V, T9o, T7Y, T6K, T46, Tdp, T1g, Tcm, Tb1, Tej, Tdm, T6R, T4q, T6O, T4X;
Chris@10 65 E T9s, T8f, Tcp, TaK, T9v, T84, Tdn, T1v, Tcq, Tb4, Tek, Tds, T6P, T4N, T6S;
Chris@10 66 E T50, T9w, T8i, Tcn, TaV, T9t, T8b, Tdy, T20, Tcx, Tbv, Tep, TdD, T8q, T6W;
Chris@10 67 E T5G, T6Z, T5T, T8t, T9D, T8B, Tcu, Tbm, T8l, T8m;
Chris@10 68 {
Chris@10 69 E T3s, T3p, T3M, T3J;
Chris@10 70 {
Chris@10 71 E Taf, T3d, T3a, Tag;
Chris@10 72 {
Chris@10 73 E T35, T3, T5Y, T26, T5X, T6, T36, T29, Tb, T39, Ta, T38, T2d, Tc, T2e;
Chris@10 74 E T2f;
Chris@10 75 {
Chris@10 76 E T4, T5, T27, T28;
Chris@10 77 {
Chris@10 78 E T1, T2, T24, T25;
Chris@10 79 T1 = ri[0];
Chris@10 80 T2 = ri[WS(is, 32)];
Chris@10 81 T24 = ii[0];
Chris@10 82 T25 = ii[WS(is, 32)];
Chris@10 83 T4 = ri[WS(is, 16)];
Chris@10 84 T35 = T1 - T2;
Chris@10 85 T3 = T1 + T2;
Chris@10 86 T5Y = T24 - T25;
Chris@10 87 T26 = T24 + T25;
Chris@10 88 T5 = ri[WS(is, 48)];
Chris@10 89 T27 = ii[WS(is, 16)];
Chris@10 90 T28 = ii[WS(is, 48)];
Chris@10 91 }
Chris@10 92 {
Chris@10 93 E T8, T9, T2b, T2c;
Chris@10 94 T8 = ri[WS(is, 8)];
Chris@10 95 T5X = T4 - T5;
Chris@10 96 T6 = T4 + T5;
Chris@10 97 T36 = T27 - T28;
Chris@10 98 T29 = T27 + T28;
Chris@10 99 T9 = ri[WS(is, 40)];
Chris@10 100 T2b = ii[WS(is, 8)];
Chris@10 101 T2c = ii[WS(is, 40)];
Chris@10 102 Tb = ri[WS(is, 56)];
Chris@10 103 T39 = T8 - T9;
Chris@10 104 Ta = T8 + T9;
Chris@10 105 T38 = T2b - T2c;
Chris@10 106 T2d = T2b + T2c;
Chris@10 107 Tc = ri[WS(is, 24)];
Chris@10 108 T2e = ii[WS(is, 56)];
Chris@10 109 T2f = ii[WS(is, 24)];
Chris@10 110 }
Chris@10 111 }
Chris@10 112 {
Chris@10 113 E T3b, T3c, T2g, T7, Te, Tbz, Td;
Chris@10 114 T7B = T35 + T36;
Chris@10 115 T37 = T35 - T36;
Chris@10 116 T3b = Tb - Tc;
Chris@10 117 Td = Tb + Tc;
Chris@10 118 T3c = T2e - T2f;
Chris@10 119 T2g = T2e + T2f;
Chris@10 120 T5Z = T5X + T5Y;
Chris@10 121 T8F = T5Y - T5X;
Chris@10 122 Taf = T3 - T6;
Chris@10 123 T7 = T3 + T6;
Chris@10 124 Te = Ta + Td;
Chris@10 125 Tbz = Td - Ta;
Chris@10 126 {
Chris@10 127 E T2a, T60, T61, TbA, T2h;
Chris@10 128 TbA = T26 - T29;
Chris@10 129 T2a = T26 + T29;
Chris@10 130 T3d = T3b + T3c;
Chris@10 131 T60 = T3b - T3c;
Chris@10 132 Td9 = T7 - Te;
Chris@10 133 Tf = T7 + Te;
Chris@10 134 TcB = TbA - Tbz;
Chris@10 135 TbB = Tbz + TbA;
Chris@10 136 T61 = T39 + T38;
Chris@10 137 T3a = T38 - T39;
Chris@10 138 T2h = T2d + T2g;
Chris@10 139 Tag = T2d - T2g;
Chris@10 140 T7C = T61 + T60;
Chris@10 141 T62 = T60 - T61;
Chris@10 142 TdH = T2a - T2h;
Chris@10 143 T2i = T2a + T2h;
Chris@10 144 }
Chris@10 145 }
Chris@10 146 }
Chris@10 147 {
Chris@10 148 E T3j, Ti, T3h, T2l, T3g, Tl, T3k, T2o, Tq, T3q, Tp, T3o, T2s, Tr, T2t;
Chris@10 149 E T2u;
Chris@10 150 {
Chris@10 151 E Tj, Tk, T2m, T2n;
Chris@10 152 {
Chris@10 153 E Tg, Th, T2j, T2k;
Chris@10 154 Tg = ri[WS(is, 4)];
Chris@10 155 Tcb = Taf - Tag;
Chris@10 156 Tah = Taf + Tag;
Chris@10 157 T8G = T3a + T3d;
Chris@10 158 T3e = T3a - T3d;
Chris@10 159 Th = ri[WS(is, 36)];
Chris@10 160 T2j = ii[WS(is, 4)];
Chris@10 161 T2k = ii[WS(is, 36)];
Chris@10 162 Tj = ri[WS(is, 20)];
Chris@10 163 T3j = Tg - Th;
Chris@10 164 Ti = Tg + Th;
Chris@10 165 T3h = T2j - T2k;
Chris@10 166 T2l = T2j + T2k;
Chris@10 167 Tk = ri[WS(is, 52)];
Chris@10 168 T2m = ii[WS(is, 20)];
Chris@10 169 T2n = ii[WS(is, 52)];
Chris@10 170 }
Chris@10 171 {
Chris@10 172 E Tn, To, T2q, T2r;
Chris@10 173 Tn = ri[WS(is, 60)];
Chris@10 174 T3g = Tj - Tk;
Chris@10 175 Tl = Tj + Tk;
Chris@10 176 T3k = T2m - T2n;
Chris@10 177 T2o = T2m + T2n;
Chris@10 178 To = ri[WS(is, 28)];
Chris@10 179 T2q = ii[WS(is, 60)];
Chris@10 180 T2r = ii[WS(is, 28)];
Chris@10 181 Tq = ri[WS(is, 12)];
Chris@10 182 T3q = Tn - To;
Chris@10 183 Tp = Tn + To;
Chris@10 184 T3o = T2q - T2r;
Chris@10 185 T2s = T2q + T2r;
Chris@10 186 Tr = ri[WS(is, 44)];
Chris@10 187 T2t = ii[WS(is, 12)];
Chris@10 188 T2u = ii[WS(is, 44)];
Chris@10 189 }
Chris@10 190 }
Chris@10 191 {
Chris@10 192 E T3n, T3r, T2p, T2w;
Chris@10 193 {
Chris@10 194 E Tai, Tm, T2v, Tal, Tt, Taj, Ts, Tam;
Chris@10 195 Tai = Ti - Tl;
Chris@10 196 Tm = Ti + Tl;
Chris@10 197 T3n = Tq - Tr;
Chris@10 198 Ts = Tq + Tr;
Chris@10 199 T3r = T2t - T2u;
Chris@10 200 T2v = T2t + T2u;
Chris@10 201 Tal = Tp - Ts;
Chris@10 202 Tt = Tp + Ts;
Chris@10 203 Taj = T2l - T2o;
Chris@10 204 T2p = T2l + T2o;
Chris@10 205 Tam = T2s - T2v;
Chris@10 206 T2w = T2s + T2v;
Chris@10 207 Tu = Tm + Tt;
Chris@10 208 TdI = Tt - Tm;
Chris@10 209 Tak = Tai + Taj;
Chris@10 210 TbC = Taj - Tai;
Chris@10 211 TbD = Tal + Tam;
Chris@10 212 Tan = Tal - Tam;
Chris@10 213 }
Chris@10 214 {
Chris@10 215 E T7F, T7E, T3i, T3l, T7H, T7I;
Chris@10 216 T7F = T3h - T3g;
Chris@10 217 T3i = T3g + T3h;
Chris@10 218 T3l = T3j - T3k;
Chris@10 219 T7E = T3j + T3k;
Chris@10 220 Tda = T2p - T2w;
Chris@10 221 T2x = T2p + T2w;
Chris@10 222 T65 = FNMS(KP414213562, T3i, T3l);
Chris@10 223 T3m = FMA(KP414213562, T3l, T3i);
Chris@10 224 T3s = T3q - T3r;
Chris@10 225 T7H = T3q + T3r;
Chris@10 226 T7I = T3o - T3n;
Chris@10 227 T3p = T3n + T3o;
Chris@10 228 T8I = FNMS(KP414213562, T7E, T7F);
Chris@10 229 T7G = FMA(KP414213562, T7F, T7E);
Chris@10 230 T8J = FMA(KP414213562, T7H, T7I);
Chris@10 231 T7J = FNMS(KP414213562, T7I, T7H);
Chris@10 232 }
Chris@10 233 }
Chris@10 234 }
Chris@10 235 }
Chris@10 236 {
Chris@10 237 E T3H, Ty, T3x, T2B, T3w, TB, T3I, T2E, TI, T2L, T3z, TF, T3E, T3K, T2I;
Chris@10 238 E T3A;
Chris@10 239 {
Chris@10 240 E T2z, T2A, Tz, TA, Tw, Tx, T2C, T2D;
Chris@10 241 Tw = ri[WS(is, 2)];
Chris@10 242 Tx = ri[WS(is, 34)];
Chris@10 243 T2z = ii[WS(is, 2)];
Chris@10 244 T64 = FMA(KP414213562, T3p, T3s);
Chris@10 245 T3t = FNMS(KP414213562, T3s, T3p);
Chris@10 246 T3H = Tw - Tx;
Chris@10 247 Ty = Tw + Tx;
Chris@10 248 T2A = ii[WS(is, 34)];
Chris@10 249 Tz = ri[WS(is, 18)];
Chris@10 250 TA = ri[WS(is, 50)];
Chris@10 251 T2C = ii[WS(is, 18)];
Chris@10 252 T3x = T2z - T2A;
Chris@10 253 T2B = T2z + T2A;
Chris@10 254 T3w = Tz - TA;
Chris@10 255 TB = Tz + TA;
Chris@10 256 T2D = ii[WS(is, 50)];
Chris@10 257 {
Chris@10 258 E T2J, T3C, T2K, TG, TH;
Chris@10 259 TG = ri[WS(is, 58)];
Chris@10 260 TH = ri[WS(is, 26)];
Chris@10 261 T2J = ii[WS(is, 58)];
Chris@10 262 T3I = T2C - T2D;
Chris@10 263 T2E = T2C + T2D;
Chris@10 264 T3C = TG - TH;
Chris@10 265 TI = TG + TH;
Chris@10 266 T2K = ii[WS(is, 26)];
Chris@10 267 {
Chris@10 268 E T2G, T2H, TD, TE, T3D;
Chris@10 269 TD = ri[WS(is, 10)];
Chris@10 270 TE = ri[WS(is, 42)];
Chris@10 271 T3D = T2J - T2K;
Chris@10 272 T2L = T2J + T2K;
Chris@10 273 T2G = ii[WS(is, 10)];
Chris@10 274 T3z = TD - TE;
Chris@10 275 TF = TD + TE;
Chris@10 276 T2H = ii[WS(is, 42)];
Chris@10 277 T3E = T3C - T3D;
Chris@10 278 T3K = T3C + T3D;
Chris@10 279 T2I = T2G + T2H;
Chris@10 280 T3A = T2G - T2H;
Chris@10 281 }
Chris@10 282 }
Chris@10 283 }
Chris@10 284 {
Chris@10 285 E T3L, T3B, T2F, T2M;
Chris@10 286 {
Chris@10 287 E Tat, Taq, Tar, TC, TJ, Tau;
Chris@10 288 Tat = Ty - TB;
Chris@10 289 TC = Ty + TB;
Chris@10 290 TJ = TF + TI;
Chris@10 291 Taq = TI - TF;
Chris@10 292 T3L = T3A - T3z;
Chris@10 293 T3B = T3z + T3A;
Chris@10 294 Tdd = TC - TJ;
Chris@10 295 TK = TC + TJ;
Chris@10 296 Tar = T2B - T2E;
Chris@10 297 T2F = T2B + T2E;
Chris@10 298 Tau = T2I - T2L;
Chris@10 299 T2M = T2I + T2L;
Chris@10 300 Tce = Tar - Taq;
Chris@10 301 Tas = Taq + Tar;
Chris@10 302 Tcf = Tat - Tau;
Chris@10 303 Tav = Tat + Tau;
Chris@10 304 }
Chris@10 305 {
Chris@10 306 E T7M, T7Q, T7N, T3y, T3F, T7P;
Chris@10 307 T7M = T3x - T3w;
Chris@10 308 T3y = T3w + T3x;
Chris@10 309 T3F = T3B - T3E;
Chris@10 310 T7Q = T3B + T3E;
Chris@10 311 Tdc = T2F - T2M;
Chris@10 312 T2N = T2F + T2M;
Chris@10 313 T6G = FMA(KP707106781, T3F, T3y);
Chris@10 314 T3G = FNMS(KP707106781, T3F, T3y);
Chris@10 315 T7N = T3L + T3K;
Chris@10 316 T3M = T3K - T3L;
Chris@10 317 T3J = T3H - T3I;
Chris@10 318 T7P = T3H + T3I;
Chris@10 319 T9k = FNMS(KP707106781, T7N, T7M);
Chris@10 320 T7O = FMA(KP707106781, T7N, T7M);
Chris@10 321 T9l = FNMS(KP707106781, T7Q, T7P);
Chris@10 322 T7R = FMA(KP707106781, T7Q, T7P);
Chris@10 323 }
Chris@10 324 }
Chris@10 325 }
Chris@10 326 {
Chris@10 327 E T5I, T1z, Tb8, T56, T53, T1C, Tb9, T5L, T1J, Tbq, T58, T1G, T5N, T5h, Tbp;
Chris@10 328 E T5b;
Chris@10 329 {
Chris@10 330 E T54, T55, T1A, T1B, T1x, T1y, T5J, T5K;
Chris@10 331 T1x = ri[WS(is, 63)];
Chris@10 332 T1y = ri[WS(is, 31)];
Chris@10 333 T54 = ii[WS(is, 63)];
Chris@10 334 T6H = FMA(KP707106781, T3M, T3J);
Chris@10 335 T3N = FNMS(KP707106781, T3M, T3J);
Chris@10 336 T5I = T1x - T1y;
Chris@10 337 T1z = T1x + T1y;
Chris@10 338 T55 = ii[WS(is, 31)];
Chris@10 339 T1A = ri[WS(is, 15)];
Chris@10 340 T1B = ri[WS(is, 47)];
Chris@10 341 T5J = ii[WS(is, 15)];
Chris@10 342 Tb8 = T54 + T55;
Chris@10 343 T56 = T54 - T55;
Chris@10 344 T53 = T1A - T1B;
Chris@10 345 T1C = T1A + T1B;
Chris@10 346 T5K = ii[WS(is, 47)];
Chris@10 347 {
Chris@10 348 E T5e, T5d, T5f, T1H, T1I;
Chris@10 349 T1H = ri[WS(is, 55)];
Chris@10 350 T1I = ri[WS(is, 23)];
Chris@10 351 T5e = ii[WS(is, 55)];
Chris@10 352 Tb9 = T5J + T5K;
Chris@10 353 T5L = T5J - T5K;
Chris@10 354 T5d = T1H - T1I;
Chris@10 355 T1J = T1H + T1I;
Chris@10 356 T5f = ii[WS(is, 23)];
Chris@10 357 {
Chris@10 358 E T59, T5a, T1E, T1F, T5g;
Chris@10 359 T1E = ri[WS(is, 7)];
Chris@10 360 T1F = ri[WS(is, 39)];
Chris@10 361 T5g = T5e - T5f;
Chris@10 362 Tbq = T5e + T5f;
Chris@10 363 T59 = ii[WS(is, 7)];
Chris@10 364 T58 = T1E - T1F;
Chris@10 365 T1G = T1E + T1F;
Chris@10 366 T5a = ii[WS(is, 39)];
Chris@10 367 T5N = T5d + T5g;
Chris@10 368 T5h = T5d - T5g;
Chris@10 369 Tbp = T59 + T5a;
Chris@10 370 T5b = T59 - T5a;
Chris@10 371 }
Chris@10 372 }
Chris@10 373 }
Chris@10 374 {
Chris@10 375 E Tb7, T5O, Tba, T57, T5i, T8x, T8w, T5M, T5P;
Chris@10 376 {
Chris@10 377 E Tbo, T5c, Tbr, Tdw, T1D, T1K, Tdv;
Chris@10 378 Tbo = T1z - T1C;
Chris@10 379 T1D = T1z + T1C;
Chris@10 380 T1K = T1G + T1J;
Chris@10 381 Tb7 = T1J - T1G;
Chris@10 382 T5c = T58 + T5b;
Chris@10 383 T5O = T5b - T58;
Chris@10 384 TdA = T1D - T1K;
Chris@10 385 T1L = T1D + T1K;
Chris@10 386 Tbr = Tbp - Tbq;
Chris@10 387 Tdw = Tbp + Tbq;
Chris@10 388 Tba = Tb8 - Tb9;
Chris@10 389 Tdv = Tb8 + Tb9;
Chris@10 390 T8l = T56 - T53;
Chris@10 391 T57 = T53 + T56;
Chris@10 392 Tct = Tbo - Tbr;
Chris@10 393 Tbs = Tbo + Tbr;
Chris@10 394 Teo = Tdv + Tdw;
Chris@10 395 Tdx = Tdv - Tdw;
Chris@10 396 T5i = T5c - T5h;
Chris@10 397 T8x = T5c + T5h;
Chris@10 398 }
Chris@10 399 T8w = T5I + T5L;
Chris@10 400 T5M = T5I - T5L;
Chris@10 401 T5P = T5N - T5O;
Chris@10 402 T8m = T5O + T5N;
Chris@10 403 T6Y = FMA(KP707106781, T5i, T57);
Chris@10 404 T5j = FNMS(KP707106781, T5i, T57);
Chris@10 405 T6V = FMA(KP707106781, T5P, T5M);
Chris@10 406 T5Q = FNMS(KP707106781, T5P, T5M);
Chris@10 407 T9z = FNMS(KP707106781, T8x, T8w);
Chris@10 408 T8y = FMA(KP707106781, T8x, T8w);
Chris@10 409 Tcw = Tba - Tb7;
Chris@10 410 Tbb = Tb7 + Tba;
Chris@10 411 }
Chris@10 412 }
Chris@10 413 }
Chris@10 414 {
Chris@10 415 E T82, T83, T45, T42, T87, T8a;
Chris@10 416 {
Chris@10 417 E T40, TN, T3Q, T2Q, T3P, TQ, T41, T2T, TX, T30, T3S, TU, T3X, T43, T2X;
Chris@10 418 E T3T;
Chris@10 419 {
Chris@10 420 E T2O, T2P, TO, TP, TL, TM, T2R, T2S;
Chris@10 421 TL = ri[WS(is, 62)];
Chris@10 422 TM = ri[WS(is, 30)];
Chris@10 423 T2O = ii[WS(is, 62)];
Chris@10 424 T9C = FNMS(KP707106781, T8m, T8l);
Chris@10 425 T8n = FMA(KP707106781, T8m, T8l);
Chris@10 426 T40 = TL - TM;
Chris@10 427 TN = TL + TM;
Chris@10 428 T2P = ii[WS(is, 30)];
Chris@10 429 TO = ri[WS(is, 14)];
Chris@10 430 TP = ri[WS(is, 46)];
Chris@10 431 T2R = ii[WS(is, 14)];
Chris@10 432 T3Q = T2O - T2P;
Chris@10 433 T2Q = T2O + T2P;
Chris@10 434 T3P = TO - TP;
Chris@10 435 TQ = TO + TP;
Chris@10 436 T2S = ii[WS(is, 46)];
Chris@10 437 {
Chris@10 438 E T2Y, T3V, T2Z, TV, TW;
Chris@10 439 TV = ri[WS(is, 54)];
Chris@10 440 TW = ri[WS(is, 22)];
Chris@10 441 T2Y = ii[WS(is, 54)];
Chris@10 442 T41 = T2R - T2S;
Chris@10 443 T2T = T2R + T2S;
Chris@10 444 T3V = TV - TW;
Chris@10 445 TX = TV + TW;
Chris@10 446 T2Z = ii[WS(is, 22)];
Chris@10 447 {
Chris@10 448 E T2V, T2W, TS, TT, T3W;
Chris@10 449 TS = ri[WS(is, 6)];
Chris@10 450 TT = ri[WS(is, 38)];
Chris@10 451 T3W = T2Y - T2Z;
Chris@10 452 T30 = T2Y + T2Z;
Chris@10 453 T2V = ii[WS(is, 6)];
Chris@10 454 T3S = TS - TT;
Chris@10 455 TU = TS + TT;
Chris@10 456 T2W = ii[WS(is, 38)];
Chris@10 457 T3X = T3V - T3W;
Chris@10 458 T43 = T3V + T3W;
Chris@10 459 T2X = T2V + T2W;
Chris@10 460 T3T = T2V - T2W;
Chris@10 461 }
Chris@10 462 }
Chris@10 463 }
Chris@10 464 {
Chris@10 465 E T44, T3U, T2U, T31;
Chris@10 466 {
Chris@10 467 E TaA, Tax, Tay, TR, TY, TaB;
Chris@10 468 TaA = TN - TQ;
Chris@10 469 TR = TN + TQ;
Chris@10 470 TY = TU + TX;
Chris@10 471 Tax = TX - TU;
Chris@10 472 T44 = T3T - T3S;
Chris@10 473 T3U = T3S + T3T;
Chris@10 474 Tdf = TR - TY;
Chris@10 475 TZ = TR + TY;
Chris@10 476 Tay = T2Q - T2T;
Chris@10 477 T2U = T2Q + T2T;
Chris@10 478 TaB = T2X - T30;
Chris@10 479 T31 = T2X + T30;
Chris@10 480 Tch = Tay - Tax;
Chris@10 481 Taz = Tax + Tay;
Chris@10 482 Tci = TaA - TaB;
Chris@10 483 TaC = TaA + TaB;
Chris@10 484 }
Chris@10 485 {
Chris@10 486 E T7T, T7X, T7U, T3R, T3Y, T7W;
Chris@10 487 T7T = T3Q - T3P;
Chris@10 488 T3R = T3P + T3Q;
Chris@10 489 T3Y = T3U - T3X;
Chris@10 490 T7X = T3U + T3X;
Chris@10 491 Tdg = T2U - T31;
Chris@10 492 T32 = T2U + T31;
Chris@10 493 T6J = FMA(KP707106781, T3Y, T3R);
Chris@10 494 T3Z = FNMS(KP707106781, T3Y, T3R);
Chris@10 495 T7U = T44 + T43;
Chris@10 496 T45 = T43 - T44;
Chris@10 497 T42 = T40 - T41;
Chris@10 498 T7W = T40 + T41;
Chris@10 499 T9n = FNMS(KP707106781, T7U, T7T);
Chris@10 500 T7V = FMA(KP707106781, T7U, T7T);
Chris@10 501 T9o = FNMS(KP707106781, T7X, T7W);
Chris@10 502 T7Y = FMA(KP707106781, T7X, T7W);
Chris@10 503 }
Chris@10 504 }
Chris@10 505 }
Chris@10 506 {
Chris@10 507 E T4P, T14, TaH, T4d, T4a, T17, TaI, T4S, T1e, TaZ, T4f, T1b, T4U, T4o, TaY;
Chris@10 508 E T4i;
Chris@10 509 {
Chris@10 510 E T4b, T4c, T15, T16, T12, T13, T4Q, T4R;
Chris@10 511 T12 = ri[WS(is, 1)];
Chris@10 512 T13 = ri[WS(is, 33)];
Chris@10 513 T4b = ii[WS(is, 1)];
Chris@10 514 T6K = FMA(KP707106781, T45, T42);
Chris@10 515 T46 = FNMS(KP707106781, T45, T42);
Chris@10 516 T4P = T12 - T13;
Chris@10 517 T14 = T12 + T13;
Chris@10 518 T4c = ii[WS(is, 33)];
Chris@10 519 T15 = ri[WS(is, 17)];
Chris@10 520 T16 = ri[WS(is, 49)];
Chris@10 521 T4Q = ii[WS(is, 17)];
Chris@10 522 TaH = T4b + T4c;
Chris@10 523 T4d = T4b - T4c;
Chris@10 524 T4a = T15 - T16;
Chris@10 525 T17 = T15 + T16;
Chris@10 526 T4R = ii[WS(is, 49)];
Chris@10 527 {
Chris@10 528 E T4l, T4k, T4m, T1c, T1d;
Chris@10 529 T1c = ri[WS(is, 57)];
Chris@10 530 T1d = ri[WS(is, 25)];
Chris@10 531 T4l = ii[WS(is, 57)];
Chris@10 532 TaI = T4Q + T4R;
Chris@10 533 T4S = T4Q - T4R;
Chris@10 534 T4k = T1c - T1d;
Chris@10 535 T1e = T1c + T1d;
Chris@10 536 T4m = ii[WS(is, 25)];
Chris@10 537 {
Chris@10 538 E T4g, T4h, T19, T1a, T4n;
Chris@10 539 T19 = ri[WS(is, 9)];
Chris@10 540 T1a = ri[WS(is, 41)];
Chris@10 541 T4n = T4l - T4m;
Chris@10 542 TaZ = T4l + T4m;
Chris@10 543 T4g = ii[WS(is, 9)];
Chris@10 544 T4f = T19 - T1a;
Chris@10 545 T1b = T19 + T1a;
Chris@10 546 T4h = ii[WS(is, 41)];
Chris@10 547 T4U = T4k + T4n;
Chris@10 548 T4o = T4k - T4n;
Chris@10 549 TaY = T4g + T4h;
Chris@10 550 T4i = T4g - T4h;
Chris@10 551 }
Chris@10 552 }
Chris@10 553 }
Chris@10 554 {
Chris@10 555 E TaG, T4V, TaJ, T4e, T4p, T8e, T8d, T4T, T4W;
Chris@10 556 {
Chris@10 557 E TaX, T4j, Tb0, Tdl, T18, T1f, Tdk;
Chris@10 558 TaX = T14 - T17;
Chris@10 559 T18 = T14 + T17;
Chris@10 560 T1f = T1b + T1e;
Chris@10 561 TaG = T1e - T1b;
Chris@10 562 T4j = T4f + T4i;
Chris@10 563 T4V = T4i - T4f;
Chris@10 564 Tdp = T18 - T1f;
Chris@10 565 T1g = T18 + T1f;
Chris@10 566 Tb0 = TaY - TaZ;
Chris@10 567 Tdl = TaY + TaZ;
Chris@10 568 TaJ = TaH - TaI;
Chris@10 569 Tdk = TaH + TaI;
Chris@10 570 T82 = T4d - T4a;
Chris@10 571 T4e = T4a + T4d;
Chris@10 572 Tcm = TaX - Tb0;
Chris@10 573 Tb1 = TaX + Tb0;
Chris@10 574 Tej = Tdk + Tdl;
Chris@10 575 Tdm = Tdk - Tdl;
Chris@10 576 T4p = T4j - T4o;
Chris@10 577 T8e = T4j + T4o;
Chris@10 578 }
Chris@10 579 T8d = T4P + T4S;
Chris@10 580 T4T = T4P - T4S;
Chris@10 581 T4W = T4U - T4V;
Chris@10 582 T83 = T4V + T4U;
Chris@10 583 T6R = FMA(KP707106781, T4p, T4e);
Chris@10 584 T4q = FNMS(KP707106781, T4p, T4e);
Chris@10 585 T6O = FMA(KP707106781, T4W, T4T);
Chris@10 586 T4X = FNMS(KP707106781, T4W, T4T);
Chris@10 587 T9s = FNMS(KP707106781, T8e, T8d);
Chris@10 588 T8f = FMA(KP707106781, T8e, T8d);
Chris@10 589 Tcp = TaJ - TaG;
Chris@10 590 TaK = TaG + TaJ;
Chris@10 591 }
Chris@10 592 }
Chris@10 593 {
Chris@10 594 E T85, T4L, TaO, T1n, Tdq, TaN, T86, T4G, T4r, T1q, T4s, TaR, T4z, T4w, T1t;
Chris@10 595 E T4t;
Chris@10 596 {
Chris@10 597 E T4C, T1j, T4D, TaL, T4K, T4H, T1m, T4E;
Chris@10 598 {
Chris@10 599 E T4I, T4J, T1h, T1i, T1k, T1l;
Chris@10 600 T1h = ri[WS(is, 5)];
Chris@10 601 T1i = ri[WS(is, 37)];
Chris@10 602 T4I = ii[WS(is, 5)];
Chris@10 603 T9v = FNMS(KP707106781, T83, T82);
Chris@10 604 T84 = FMA(KP707106781, T83, T82);
Chris@10 605 T4C = T1h - T1i;
Chris@10 606 T1j = T1h + T1i;
Chris@10 607 T4J = ii[WS(is, 37)];
Chris@10 608 T1k = ri[WS(is, 21)];
Chris@10 609 T1l = ri[WS(is, 53)];
Chris@10 610 T4D = ii[WS(is, 21)];
Chris@10 611 TaL = T4I + T4J;
Chris@10 612 T4K = T4I - T4J;
Chris@10 613 T4H = T1k - T1l;
Chris@10 614 T1m = T1k + T1l;
Chris@10 615 T4E = ii[WS(is, 53)];
Chris@10 616 }
Chris@10 617 {
Chris@10 618 E T4x, T4y, T1r, T1s;
Chris@10 619 {
Chris@10 620 E T1o, T4F, TaM, T1p;
Chris@10 621 T1o = ri[WS(is, 61)];
Chris@10 622 T85 = T4K - T4H;
Chris@10 623 T4L = T4H + T4K;
Chris@10 624 TaO = T1j - T1m;
Chris@10 625 T1n = T1j + T1m;
Chris@10 626 T4F = T4D - T4E;
Chris@10 627 TaM = T4D + T4E;
Chris@10 628 T1p = ri[WS(is, 29)];
Chris@10 629 T4x = ii[WS(is, 61)];
Chris@10 630 Tdq = TaL + TaM;
Chris@10 631 TaN = TaL - TaM;
Chris@10 632 T86 = T4C + T4F;
Chris@10 633 T4G = T4C - T4F;
Chris@10 634 T4r = T1o - T1p;
Chris@10 635 T1q = T1o + T1p;
Chris@10 636 T4y = ii[WS(is, 29)];
Chris@10 637 }
Chris@10 638 T1r = ri[WS(is, 13)];
Chris@10 639 T1s = ri[WS(is, 45)];
Chris@10 640 T4s = ii[WS(is, 13)];
Chris@10 641 TaR = T4x + T4y;
Chris@10 642 T4z = T4x - T4y;
Chris@10 643 T4w = T1r - T1s;
Chris@10 644 T1t = T1r + T1s;
Chris@10 645 T4t = ii[WS(is, 45)];
Chris@10 646 }
Chris@10 647 }
Chris@10 648 {
Chris@10 649 E T88, TaP, T89, TaU, T4Z, T4B, T4M, T4Y, T8g, T8h;
Chris@10 650 {
Chris@10 651 E T4A, Tb2, Tdr, T4v, Tb3;
Chris@10 652 {
Chris@10 653 E TaQ, T1u, T4u, TaS, TaT;
Chris@10 654 T88 = T4z - T4w;
Chris@10 655 T4A = T4w + T4z;
Chris@10 656 TaQ = T1q - T1t;
Chris@10 657 T1u = T1q + T1t;
Chris@10 658 T4u = T4s - T4t;
Chris@10 659 TaS = T4s + T4t;
Chris@10 660 Tb2 = TaO + TaN;
Chris@10 661 TaP = TaN - TaO;
Chris@10 662 Tdr = TaR + TaS;
Chris@10 663 TaT = TaR - TaS;
Chris@10 664 T89 = T4r + T4u;
Chris@10 665 T4v = T4r - T4u;
Chris@10 666 Tdn = T1u - T1n;
Chris@10 667 T1v = T1n + T1u;
Chris@10 668 Tb3 = TaQ - TaT;
Chris@10 669 TaU = TaQ + TaT;
Chris@10 670 }
Chris@10 671 T4Z = FNMS(KP414213562, T4v, T4A);
Chris@10 672 T4B = FMA(KP414213562, T4A, T4v);
Chris@10 673 Tcq = Tb2 - Tb3;
Chris@10 674 Tb4 = Tb2 + Tb3;
Chris@10 675 Tek = Tdq + Tdr;
Chris@10 676 Tds = Tdq - Tdr;
Chris@10 677 T4M = FNMS(KP414213562, T4L, T4G);
Chris@10 678 T4Y = FMA(KP414213562, T4G, T4L);
Chris@10 679 }
Chris@10 680 T87 = FNMS(KP414213562, T86, T85);
Chris@10 681 T8g = FMA(KP414213562, T85, T86);
Chris@10 682 T6P = T4M + T4B;
Chris@10 683 T4N = T4B - T4M;
Chris@10 684 T6S = T4Y + T4Z;
Chris@10 685 T50 = T4Y - T4Z;
Chris@10 686 T8h = FNMS(KP414213562, T88, T89);
Chris@10 687 T8a = FMA(KP414213562, T89, T88);
Chris@10 688 T9w = T8g - T8h;
Chris@10 689 T8i = T8g + T8h;
Chris@10 690 Tcn = TaU - TaP;
Chris@10 691 TaV = TaP + TaU;
Chris@10 692 }
Chris@10 693 }
Chris@10 694 {
Chris@10 695 E T8o, T5E, Tbf, T1S, TdB, Tbe, T8p, T5z, T5k, T1V, T5l, Tbi, T5s, T5p, T1Y;
Chris@10 696 E T5m;
Chris@10 697 {
Chris@10 698 E T5v, T1O, T5w, Tbc, T5D, T5A, T1R, T5x;
Chris@10 699 {
Chris@10 700 E T5B, T5C, T1M, T1N, T1P, T1Q;
Chris@10 701 T1M = ri[WS(is, 3)];
Chris@10 702 T1N = ri[WS(is, 35)];
Chris@10 703 T5B = ii[WS(is, 3)];
Chris@10 704 T9t = T8a - T87;
Chris@10 705 T8b = T87 + T8a;
Chris@10 706 T5v = T1M - T1N;
Chris@10 707 T1O = T1M + T1N;
Chris@10 708 T5C = ii[WS(is, 35)];
Chris@10 709 T1P = ri[WS(is, 19)];
Chris@10 710 T1Q = ri[WS(is, 51)];
Chris@10 711 T5w = ii[WS(is, 19)];
Chris@10 712 Tbc = T5B + T5C;
Chris@10 713 T5D = T5B - T5C;
Chris@10 714 T5A = T1P - T1Q;
Chris@10 715 T1R = T1P + T1Q;
Chris@10 716 T5x = ii[WS(is, 51)];
Chris@10 717 }
Chris@10 718 {
Chris@10 719 E T5q, T5r, T1W, T1X;
Chris@10 720 {
Chris@10 721 E T1T, T5y, Tbd, T1U;
Chris@10 722 T1T = ri[WS(is, 59)];
Chris@10 723 T8o = T5D - T5A;
Chris@10 724 T5E = T5A + T5D;
Chris@10 725 Tbf = T1O - T1R;
Chris@10 726 T1S = T1O + T1R;
Chris@10 727 T5y = T5w - T5x;
Chris@10 728 Tbd = T5w + T5x;
Chris@10 729 T1U = ri[WS(is, 27)];
Chris@10 730 T5q = ii[WS(is, 59)];
Chris@10 731 TdB = Tbc + Tbd;
Chris@10 732 Tbe = Tbc - Tbd;
Chris@10 733 T8p = T5v + T5y;
Chris@10 734 T5z = T5v - T5y;
Chris@10 735 T5k = T1T - T1U;
Chris@10 736 T1V = T1T + T1U;
Chris@10 737 T5r = ii[WS(is, 27)];
Chris@10 738 }
Chris@10 739 T1W = ri[WS(is, 11)];
Chris@10 740 T1X = ri[WS(is, 43)];
Chris@10 741 T5l = ii[WS(is, 11)];
Chris@10 742 Tbi = T5q + T5r;
Chris@10 743 T5s = T5q - T5r;
Chris@10 744 T5p = T1W - T1X;
Chris@10 745 T1Y = T1W + T1X;
Chris@10 746 T5m = ii[WS(is, 43)];
Chris@10 747 }
Chris@10 748 }
Chris@10 749 {
Chris@10 750 E T8r, Tbg, T8s, Tbl, T5S, T5u, T5F, T5R, T8z, T8A;
Chris@10 751 {
Chris@10 752 E T5t, Tbt, TdC, T5o, Tbu;
Chris@10 753 {
Chris@10 754 E Tbh, T1Z, T5n, Tbj, Tbk;
Chris@10 755 T8r = T5s - T5p;
Chris@10 756 T5t = T5p + T5s;
Chris@10 757 Tbh = T1V - T1Y;
Chris@10 758 T1Z = T1V + T1Y;
Chris@10 759 T5n = T5l - T5m;
Chris@10 760 Tbj = T5l + T5m;
Chris@10 761 Tbt = Tbf + Tbe;
Chris@10 762 Tbg = Tbe - Tbf;
Chris@10 763 TdC = Tbi + Tbj;
Chris@10 764 Tbk = Tbi - Tbj;
Chris@10 765 T8s = T5k + T5n;
Chris@10 766 T5o = T5k - T5n;
Chris@10 767 Tdy = T1Z - T1S;
Chris@10 768 T20 = T1S + T1Z;
Chris@10 769 Tbu = Tbh - Tbk;
Chris@10 770 Tbl = Tbh + Tbk;
Chris@10 771 }
Chris@10 772 T5S = FNMS(KP414213562, T5o, T5t);
Chris@10 773 T5u = FMA(KP414213562, T5t, T5o);
Chris@10 774 Tcx = Tbt - Tbu;
Chris@10 775 Tbv = Tbt + Tbu;
Chris@10 776 Tep = TdB + TdC;
Chris@10 777 TdD = TdB - TdC;
Chris@10 778 T5F = FNMS(KP414213562, T5E, T5z);
Chris@10 779 T5R = FMA(KP414213562, T5z, T5E);
Chris@10 780 }
Chris@10 781 T8q = FNMS(KP414213562, T8p, T8o);
Chris@10 782 T8z = FMA(KP414213562, T8o, T8p);
Chris@10 783 T6W = T5F + T5u;
Chris@10 784 T5G = T5u - T5F;
Chris@10 785 T6Z = T5R + T5S;
Chris@10 786 T5T = T5R - T5S;
Chris@10 787 T8A = FNMS(KP414213562, T8r, T8s);
Chris@10 788 T8t = FMA(KP414213562, T8s, T8r);
Chris@10 789 T9D = T8z - T8A;
Chris@10 790 T8B = T8z + T8A;
Chris@10 791 Tcu = Tbl - Tbg;
Chris@10 792 Tbm = Tbg + Tbl;
Chris@10 793 }
Chris@10 794 }
Chris@10 795 }
Chris@10 796 {
Chris@10 797 E T9A, T8u, TbE, Tao, Td7, Td8;
Chris@10 798 {
Chris@10 799 E Teq, Ten, Tex, Teh, TeB, Tev, Tey, Tem, Te9, Tec;
Chris@10 800 {
Chris@10 801 E Tef, Teu, Tel, T11, Tei, Tet, T2y, TeI, T23, T22, T33, Teg, TeD, TeG, T34;
Chris@10 802 E TeH;
Chris@10 803 {
Chris@10 804 E TeE, TeF, Tv, T10, T1w, T21;
Chris@10 805 Tef = Tf - Tu;
Chris@10 806 Tv = Tf + Tu;
Chris@10 807 T10 = TK + TZ;
Chris@10 808 Teu = TZ - TK;
Chris@10 809 Tel = Tej - Tek;
Chris@10 810 TeE = Tej + Tek;
Chris@10 811 T9A = T8t - T8q;
Chris@10 812 T8u = T8q + T8t;
Chris@10 813 TeD = Tv - T10;
Chris@10 814 T11 = Tv + T10;
Chris@10 815 TeF = Teo + Tep;
Chris@10 816 Teq = Teo - Tep;
Chris@10 817 Tei = T1g - T1v;
Chris@10 818 T1w = T1g + T1v;
Chris@10 819 T21 = T1L + T20;
Chris@10 820 Ten = T1L - T20;
Chris@10 821 Tet = T2i - T2x;
Chris@10 822 T2y = T2i + T2x;
Chris@10 823 TeI = TeE + TeF;
Chris@10 824 TeG = TeE - TeF;
Chris@10 825 T23 = T21 - T1w;
Chris@10 826 T22 = T1w + T21;
Chris@10 827 T33 = T2N + T32;
Chris@10 828 Teg = T2N - T32;
Chris@10 829 }
Chris@10 830 ro[WS(os, 16)] = TeD + TeG;
Chris@10 831 ro[WS(os, 48)] = TeD - TeG;
Chris@10 832 ro[0] = T11 + T22;
Chris@10 833 ro[WS(os, 32)] = T11 - T22;
Chris@10 834 T34 = T2y - T33;
Chris@10 835 TeH = T2y + T33;
Chris@10 836 io[0] = TeH + TeI;
Chris@10 837 io[WS(os, 32)] = TeH - TeI;
Chris@10 838 io[WS(os, 48)] = T34 - T23;
Chris@10 839 io[WS(os, 16)] = T23 + T34;
Chris@10 840 Tex = Tef - Teg;
Chris@10 841 Teh = Tef + Teg;
Chris@10 842 TeB = Teu + Tet;
Chris@10 843 Tev = Tet - Teu;
Chris@10 844 Tey = Tel - Tei;
Chris@10 845 Tem = Tei + Tel;
Chris@10 846 }
Chris@10 847 {
Chris@10 848 E TdV, Tdb, TdJ, Te5, TdE, Tdz, Te6, Tdi, Teb, Te3, TdZ, TdY, TdW, TdM, TdR;
Chris@10 849 E Tdu;
Chris@10 850 {
Chris@10 851 E TdL, Tde, Tdh, TdK, Tez, Ter;
Chris@10 852 TdV = Td9 + Tda;
Chris@10 853 Tdb = Td9 - Tda;
Chris@10 854 TdJ = TdH - TdI;
Chris@10 855 Te5 = TdI + TdH;
Chris@10 856 Tez = Ten + Teq;
Chris@10 857 Ter = Ten - Teq;
Chris@10 858 TdL = Tdd + Tdc;
Chris@10 859 Tde = Tdc - Tdd;
Chris@10 860 {
Chris@10 861 E TeA, TeC, Tew, Tes;
Chris@10 862 TeA = Tey - Tez;
Chris@10 863 TeC = Tey + Tez;
Chris@10 864 Tew = Ter - Tem;
Chris@10 865 Tes = Tem + Ter;
Chris@10 866 ro[WS(os, 24)] = FMA(KP707106781, TeA, Tex);
Chris@10 867 ro[WS(os, 56)] = FNMS(KP707106781, TeA, Tex);
Chris@10 868 io[WS(os, 8)] = FMA(KP707106781, TeC, TeB);
Chris@10 869 io[WS(os, 40)] = FNMS(KP707106781, TeC, TeB);
Chris@10 870 io[WS(os, 24)] = FMA(KP707106781, Tew, Tev);
Chris@10 871 io[WS(os, 56)] = FNMS(KP707106781, Tew, Tev);
Chris@10 872 ro[WS(os, 8)] = FMA(KP707106781, Tes, Teh);
Chris@10 873 ro[WS(os, 40)] = FNMS(KP707106781, Tes, Teh);
Chris@10 874 Tdh = Tdf + Tdg;
Chris@10 875 TdK = Tdf - Tdg;
Chris@10 876 }
Chris@10 877 {
Chris@10 878 E Te1, Te2, Tdo, Tdt;
Chris@10 879 TdE = TdA - TdD;
Chris@10 880 Te1 = TdA + TdD;
Chris@10 881 Te2 = Tdy + Tdx;
Chris@10 882 Tdz = Tdx - Tdy;
Chris@10 883 Te6 = Tde + Tdh;
Chris@10 884 Tdi = Tde - Tdh;
Chris@10 885 Teb = FMA(KP414213562, Te1, Te2);
Chris@10 886 Te3 = FNMS(KP414213562, Te2, Te1);
Chris@10 887 TdZ = Tdn + Tdm;
Chris@10 888 Tdo = Tdm - Tdn;
Chris@10 889 Tdt = Tdp - Tds;
Chris@10 890 TdY = Tdp + Tds;
Chris@10 891 TdW = TdL + TdK;
Chris@10 892 TdM = TdK - TdL;
Chris@10 893 TdR = FNMS(KP414213562, Tdo, Tdt);
Chris@10 894 Tdu = FMA(KP414213562, Tdt, Tdo);
Chris@10 895 }
Chris@10 896 }
Chris@10 897 {
Chris@10 898 E TdT, Tea, Te0, TdU;
Chris@10 899 {
Chris@10 900 E Tdj, TdQ, TdF, TdP, TdN, TdS, TdO, TdG;
Chris@10 901 TdT = FNMS(KP707106781, Tdi, Tdb);
Chris@10 902 Tdj = FMA(KP707106781, Tdi, Tdb);
Chris@10 903 Tea = FNMS(KP414213562, TdY, TdZ);
Chris@10 904 Te0 = FMA(KP414213562, TdZ, TdY);
Chris@10 905 TdQ = FMA(KP414213562, Tdz, TdE);
Chris@10 906 TdF = FNMS(KP414213562, TdE, Tdz);
Chris@10 907 TdP = FMA(KP707106781, TdM, TdJ);
Chris@10 908 TdN = FNMS(KP707106781, TdM, TdJ);
Chris@10 909 TdS = TdQ - TdR;
Chris@10 910 TdU = TdR + TdQ;
Chris@10 911 TdO = Tdu + TdF;
Chris@10 912 TdG = Tdu - TdF;
Chris@10 913 io[WS(os, 12)] = FMA(KP923879532, TdS, TdP);
Chris@10 914 io[WS(os, 44)] = FNMS(KP923879532, TdS, TdP);
Chris@10 915 ro[WS(os, 12)] = FMA(KP923879532, TdG, Tdj);
Chris@10 916 ro[WS(os, 44)] = FNMS(KP923879532, TdG, Tdj);
Chris@10 917 io[WS(os, 60)] = FMA(KP923879532, TdO, TdN);
Chris@10 918 io[WS(os, 28)] = FNMS(KP923879532, TdO, TdN);
Chris@10 919 }
Chris@10 920 {
Chris@10 921 E Te8, Te7, Ted, Tee, TdX, Te4;
Chris@10 922 Te9 = FNMS(KP707106781, TdW, TdV);
Chris@10 923 TdX = FMA(KP707106781, TdW, TdV);
Chris@10 924 Te4 = Te0 + Te3;
Chris@10 925 Te8 = Te3 - Te0;
Chris@10 926 Te7 = FNMS(KP707106781, Te6, Te5);
Chris@10 927 Ted = FMA(KP707106781, Te6, Te5);
Chris@10 928 ro[WS(os, 60)] = FMA(KP923879532, TdU, TdT);
Chris@10 929 ro[WS(os, 28)] = FNMS(KP923879532, TdU, TdT);
Chris@10 930 ro[WS(os, 4)] = FMA(KP923879532, Te4, TdX);
Chris@10 931 ro[WS(os, 36)] = FNMS(KP923879532, Te4, TdX);
Chris@10 932 Tee = Tea + Teb;
Chris@10 933 Tec = Tea - Teb;
Chris@10 934 io[WS(os, 4)] = FMA(KP923879532, Tee, Ted);
Chris@10 935 io[WS(os, 36)] = FNMS(KP923879532, Tee, Ted);
Chris@10 936 io[WS(os, 20)] = FMA(KP923879532, Te8, Te7);
Chris@10 937 io[WS(os, 52)] = FNMS(KP923879532, Te8, Te7);
Chris@10 938 }
Chris@10 939 }
Chris@10 940 }
Chris@10 941 {
Chris@10 942 E TcP, Tcd, TcZ, TcD, Tcy, Tcv, TcT, Td0, Tck, Td4, TcX, TcS, TcK, Tcs, TcQ;
Chris@10 943 E TcG;
Chris@10 944 {
Chris@10 945 E TcF, Tcg, Tcj, TcE, TcV, TcW, Tcc, TcC, Tco, Tcr;
Chris@10 946 TbE = TbC + TbD;
Chris@10 947 Tcc = TbC - TbD;
Chris@10 948 TcC = Tan - Tak;
Chris@10 949 Tao = Tak + Tan;
Chris@10 950 TcF = FNMS(KP414213562, Tce, Tcf);
Chris@10 951 Tcg = FMA(KP414213562, Tcf, Tce);
Chris@10 952 ro[WS(os, 20)] = FMA(KP923879532, Tec, Te9);
Chris@10 953 ro[WS(os, 52)] = FNMS(KP923879532, Tec, Te9);
Chris@10 954 TcP = FNMS(KP707106781, Tcc, Tcb);
Chris@10 955 Tcd = FMA(KP707106781, Tcc, Tcb);
Chris@10 956 TcZ = FNMS(KP707106781, TcC, TcB);
Chris@10 957 TcD = FMA(KP707106781, TcC, TcB);
Chris@10 958 Tcj = FNMS(KP414213562, Tci, Tch);
Chris@10 959 TcE = FMA(KP414213562, Tch, Tci);
Chris@10 960 Tcy = FNMS(KP707106781, Tcx, Tcw);
Chris@10 961 TcV = FMA(KP707106781, Tcx, Tcw);
Chris@10 962 TcW = FMA(KP707106781, Tcu, Tct);
Chris@10 963 Tcv = FNMS(KP707106781, Tcu, Tct);
Chris@10 964 TcT = FMA(KP707106781, Tcn, Tcm);
Chris@10 965 Tco = FNMS(KP707106781, Tcn, Tcm);
Chris@10 966 Td0 = Tcg + Tcj;
Chris@10 967 Tck = Tcg - Tcj;
Chris@10 968 Td4 = FMA(KP198912367, TcV, TcW);
Chris@10 969 TcX = FNMS(KP198912367, TcW, TcV);
Chris@10 970 Tcr = FNMS(KP707106781, Tcq, Tcp);
Chris@10 971 TcS = FMA(KP707106781, Tcq, Tcp);
Chris@10 972 TcK = FNMS(KP668178637, Tco, Tcr);
Chris@10 973 Tcs = FMA(KP668178637, Tcr, Tco);
Chris@10 974 TcQ = TcF + TcE;
Chris@10 975 TcG = TcE - TcF;
Chris@10 976 }
Chris@10 977 {
Chris@10 978 E TcJ, Td5, TcU, TcM;
Chris@10 979 {
Chris@10 980 E Tcl, TcL, Tcz, TcN, TcH, TcO, TcI, TcA;
Chris@10 981 TcJ = FNMS(KP923879532, Tck, Tcd);
Chris@10 982 Tcl = FMA(KP923879532, Tck, Tcd);
Chris@10 983 Td5 = FNMS(KP198912367, TcS, TcT);
Chris@10 984 TcU = FMA(KP198912367, TcT, TcS);
Chris@10 985 TcL = FMA(KP668178637, Tcv, Tcy);
Chris@10 986 Tcz = FNMS(KP668178637, Tcy, Tcv);
Chris@10 987 TcN = FMA(KP923879532, TcG, TcD);
Chris@10 988 TcH = FNMS(KP923879532, TcG, TcD);
Chris@10 989 TcO = TcK + TcL;
Chris@10 990 TcM = TcK - TcL;
Chris@10 991 TcI = Tcz - Tcs;
Chris@10 992 TcA = Tcs + Tcz;
Chris@10 993 io[WS(os, 6)] = FMA(KP831469612, TcO, TcN);
Chris@10 994 io[WS(os, 38)] = FNMS(KP831469612, TcO, TcN);
Chris@10 995 ro[WS(os, 6)] = FMA(KP831469612, TcA, Tcl);
Chris@10 996 ro[WS(os, 38)] = FNMS(KP831469612, TcA, Tcl);
Chris@10 997 io[WS(os, 22)] = FMA(KP831469612, TcI, TcH);
Chris@10 998 io[WS(os, 54)] = FNMS(KP831469612, TcI, TcH);
Chris@10 999 }
Chris@10 1000 {
Chris@10 1001 E Td2, Td1, Td3, Td6, TcR, TcY;
Chris@10 1002 Td7 = FMA(KP923879532, TcQ, TcP);
Chris@10 1003 TcR = FNMS(KP923879532, TcQ, TcP);
Chris@10 1004 TcY = TcU - TcX;
Chris@10 1005 Td2 = TcU + TcX;
Chris@10 1006 Td1 = FMA(KP923879532, Td0, TcZ);
Chris@10 1007 Td3 = FNMS(KP923879532, Td0, TcZ);
Chris@10 1008 ro[WS(os, 22)] = FMA(KP831469612, TcM, TcJ);
Chris@10 1009 ro[WS(os, 54)] = FNMS(KP831469612, TcM, TcJ);
Chris@10 1010 ro[WS(os, 14)] = FMA(KP980785280, TcY, TcR);
Chris@10 1011 ro[WS(os, 46)] = FNMS(KP980785280, TcY, TcR);
Chris@10 1012 Td6 = Td4 - Td5;
Chris@10 1013 Td8 = Td5 + Td4;
Chris@10 1014 io[WS(os, 14)] = FMA(KP980785280, Td6, Td3);
Chris@10 1015 io[WS(os, 46)] = FNMS(KP980785280, Td6, Td3);
Chris@10 1016 io[WS(os, 62)] = FMA(KP980785280, Td2, Td1);
Chris@10 1017 io[WS(os, 30)] = FNMS(KP980785280, Td2, Td1);
Chris@10 1018 }
Chris@10 1019 }
Chris@10 1020 }
Chris@10 1021 }
Chris@10 1022 {
Chris@10 1023 E T3f, T66, T63, T3u, T7z, T7A, Tc5, Tc8;
Chris@10 1024 {
Chris@10 1025 E TbR, Tap, Tc1, TbF, Tbw, Tbn, TbV, Tc2, TaE, Tc7, TbZ, TbU, TbN, Tb6, TbS;
Chris@10 1026 E TbI;
Chris@10 1027 {
Chris@10 1028 E TbH, Taw, TaD, TbG, TbX, TbY, TaW, Tb5;
Chris@10 1029 TbH = FMA(KP414213562, Tas, Tav);
Chris@10 1030 Taw = FNMS(KP414213562, Tav, Tas);
Chris@10 1031 ro[WS(os, 62)] = FMA(KP980785280, Td8, Td7);
Chris@10 1032 ro[WS(os, 30)] = FNMS(KP980785280, Td8, Td7);
Chris@10 1033 TbR = FMA(KP707106781, Tao, Tah);
Chris@10 1034 Tap = FNMS(KP707106781, Tao, Tah);
Chris@10 1035 Tc1 = FMA(KP707106781, TbE, TbB);
Chris@10 1036 TbF = FNMS(KP707106781, TbE, TbB);
Chris@10 1037 TaD = FMA(KP414213562, TaC, Taz);
Chris@10 1038 TbG = FNMS(KP414213562, Taz, TaC);
Chris@10 1039 Tbw = FNMS(KP707106781, Tbv, Tbs);
Chris@10 1040 TbX = FMA(KP707106781, Tbv, Tbs);
Chris@10 1041 TbY = FMA(KP707106781, Tbm, Tbb);
Chris@10 1042 Tbn = FNMS(KP707106781, Tbm, Tbb);
Chris@10 1043 TbV = FMA(KP707106781, TaV, TaK);
Chris@10 1044 TaW = FNMS(KP707106781, TaV, TaK);
Chris@10 1045 Tc2 = Taw + TaD;
Chris@10 1046 TaE = Taw - TaD;
Chris@10 1047 Tc7 = FMA(KP198912367, TbX, TbY);
Chris@10 1048 TbZ = FNMS(KP198912367, TbY, TbX);
Chris@10 1049 Tb5 = FNMS(KP707106781, Tb4, Tb1);
Chris@10 1050 TbU = FMA(KP707106781, Tb4, Tb1);
Chris@10 1051 TbN = FNMS(KP668178637, TaW, Tb5);
Chris@10 1052 Tb6 = FMA(KP668178637, Tb5, TaW);
Chris@10 1053 TbS = TbH + TbG;
Chris@10 1054 TbI = TbG - TbH;
Chris@10 1055 }
Chris@10 1056 {
Chris@10 1057 E TbP, Tc6, TbW, TbQ;
Chris@10 1058 {
Chris@10 1059 E TaF, TbM, Tbx, TbL, TbJ, TbO, TbK, Tby;
Chris@10 1060 TbP = FNMS(KP923879532, TaE, Tap);
Chris@10 1061 TaF = FMA(KP923879532, TaE, Tap);
Chris@10 1062 Tc6 = FNMS(KP198912367, TbU, TbV);
Chris@10 1063 TbW = FMA(KP198912367, TbV, TbU);
Chris@10 1064 TbM = FMA(KP668178637, Tbn, Tbw);
Chris@10 1065 Tbx = FNMS(KP668178637, Tbw, Tbn);
Chris@10 1066 TbL = FMA(KP923879532, TbI, TbF);
Chris@10 1067 TbJ = FNMS(KP923879532, TbI, TbF);
Chris@10 1068 TbO = TbM - TbN;
Chris@10 1069 TbQ = TbN + TbM;
Chris@10 1070 TbK = Tb6 + Tbx;
Chris@10 1071 Tby = Tb6 - Tbx;
Chris@10 1072 io[WS(os, 10)] = FMA(KP831469612, TbO, TbL);
Chris@10 1073 io[WS(os, 42)] = FNMS(KP831469612, TbO, TbL);
Chris@10 1074 ro[WS(os, 10)] = FMA(KP831469612, Tby, TaF);
Chris@10 1075 ro[WS(os, 42)] = FNMS(KP831469612, Tby, TaF);
Chris@10 1076 io[WS(os, 58)] = FMA(KP831469612, TbK, TbJ);
Chris@10 1077 io[WS(os, 26)] = FNMS(KP831469612, TbK, TbJ);
Chris@10 1078 }
Chris@10 1079 {
Chris@10 1080 E Tc4, Tc3, Tc9, Tca, TbT, Tc0;
Chris@10 1081 Tc5 = FNMS(KP923879532, TbS, TbR);
Chris@10 1082 TbT = FMA(KP923879532, TbS, TbR);
Chris@10 1083 Tc0 = TbW + TbZ;
Chris@10 1084 Tc4 = TbZ - TbW;
Chris@10 1085 Tc3 = FNMS(KP923879532, Tc2, Tc1);
Chris@10 1086 Tc9 = FMA(KP923879532, Tc2, Tc1);
Chris@10 1087 ro[WS(os, 58)] = FMA(KP831469612, TbQ, TbP);
Chris@10 1088 ro[WS(os, 26)] = FNMS(KP831469612, TbQ, TbP);
Chris@10 1089 ro[WS(os, 2)] = FMA(KP980785280, Tc0, TbT);
Chris@10 1090 ro[WS(os, 34)] = FNMS(KP980785280, Tc0, TbT);
Chris@10 1091 Tca = Tc6 + Tc7;
Chris@10 1092 Tc8 = Tc6 - Tc7;
Chris@10 1093 io[WS(os, 2)] = FMA(KP980785280, Tca, Tc9);
Chris@10 1094 io[WS(os, 34)] = FNMS(KP980785280, Tca, Tc9);
Chris@10 1095 io[WS(os, 18)] = FMA(KP980785280, Tc4, Tc3);
Chris@10 1096 io[WS(os, 50)] = FNMS(KP980785280, Tc4, Tc3);
Chris@10 1097 }
Chris@10 1098 }
Chris@10 1099 }
Chris@10 1100 {
Chris@10 1101 E T7h, T6F, T70, T6X, T7x, T7m, T7w, T7p, T7s, T6M, T7c, T6U, T7r, T75, T7i;
Chris@10 1102 E T78;
Chris@10 1103 {
Chris@10 1104 E T6T, T6Q, T77, T6I, T6L, T76, T73, T74;
Chris@10 1105 {
Chris@10 1106 E T7k, T7l, T6D, T6E, T7n, T7o;
Chris@10 1107 T3f = FMA(KP707106781, T3e, T37);
Chris@10 1108 T6D = FNMS(KP707106781, T3e, T37);
Chris@10 1109 T6E = T65 + T64;
Chris@10 1110 T66 = T64 - T65;
Chris@10 1111 T6T = FNMS(KP923879532, T6S, T6R);
Chris@10 1112 T7k = FMA(KP923879532, T6S, T6R);
Chris@10 1113 ro[WS(os, 18)] = FMA(KP980785280, Tc8, Tc5);
Chris@10 1114 ro[WS(os, 50)] = FNMS(KP980785280, Tc8, Tc5);
Chris@10 1115 T7h = FMA(KP923879532, T6E, T6D);
Chris@10 1116 T6F = FNMS(KP923879532, T6E, T6D);
Chris@10 1117 T7l = FMA(KP923879532, T6P, T6O);
Chris@10 1118 T6Q = FNMS(KP923879532, T6P, T6O);
Chris@10 1119 T70 = FNMS(KP923879532, T6Z, T6Y);
Chris@10 1120 T7n = FMA(KP923879532, T6Z, T6Y);
Chris@10 1121 T7o = FMA(KP923879532, T6W, T6V);
Chris@10 1122 T6X = FNMS(KP923879532, T6W, T6V);
Chris@10 1123 T77 = FNMS(KP198912367, T6G, T6H);
Chris@10 1124 T6I = FMA(KP198912367, T6H, T6G);
Chris@10 1125 T7x = FNMS(KP098491403, T7k, T7l);
Chris@10 1126 T7m = FMA(KP098491403, T7l, T7k);
Chris@10 1127 T7w = FMA(KP098491403, T7n, T7o);
Chris@10 1128 T7p = FNMS(KP098491403, T7o, T7n);
Chris@10 1129 T6L = FNMS(KP198912367, T6K, T6J);
Chris@10 1130 T76 = FMA(KP198912367, T6J, T6K);
Chris@10 1131 }
Chris@10 1132 T63 = FMA(KP707106781, T62, T5Z);
Chris@10 1133 T73 = FNMS(KP707106781, T62, T5Z);
Chris@10 1134 T7s = T6I + T6L;
Chris@10 1135 T6M = T6I - T6L;
Chris@10 1136 T7c = FNMS(KP820678790, T6Q, T6T);
Chris@10 1137 T6U = FMA(KP820678790, T6T, T6Q);
Chris@10 1138 T74 = T3m + T3t;
Chris@10 1139 T3u = T3m - T3t;
Chris@10 1140 T7r = FMA(KP923879532, T74, T73);
Chris@10 1141 T75 = FNMS(KP923879532, T74, T73);
Chris@10 1142 T7i = T77 + T76;
Chris@10 1143 T78 = T76 - T77;
Chris@10 1144 }
Chris@10 1145 {
Chris@10 1146 E T7b, T6N, T7f, T79, T71, T7d;
Chris@10 1147 T7b = FNMS(KP980785280, T6M, T6F);
Chris@10 1148 T6N = FMA(KP980785280, T6M, T6F);
Chris@10 1149 T7f = FMA(KP980785280, T78, T75);
Chris@10 1150 T79 = FNMS(KP980785280, T78, T75);
Chris@10 1151 T71 = FNMS(KP820678790, T70, T6X);
Chris@10 1152 T7d = FMA(KP820678790, T6X, T70);
Chris@10 1153 {
Chris@10 1154 E T7u, T7t, T7v, T7y, T7j, T7q;
Chris@10 1155 T7z = FMA(KP980785280, T7i, T7h);
Chris@10 1156 T7j = FNMS(KP980785280, T7i, T7h);
Chris@10 1157 T7q = T7m - T7p;
Chris@10 1158 T7u = T7m + T7p;
Chris@10 1159 {
Chris@10 1160 E T7g, T7e, T72, T7a;
Chris@10 1161 T7g = T7c + T7d;
Chris@10 1162 T7e = T7c - T7d;
Chris@10 1163 T72 = T6U + T71;
Chris@10 1164 T7a = T71 - T6U;
Chris@10 1165 ro[WS(os, 23)] = FMA(KP773010453, T7e, T7b);
Chris@10 1166 ro[WS(os, 55)] = FNMS(KP773010453, T7e, T7b);
Chris@10 1167 io[WS(os, 7)] = FMA(KP773010453, T7g, T7f);
Chris@10 1168 io[WS(os, 39)] = FNMS(KP773010453, T7g, T7f);
Chris@10 1169 io[WS(os, 23)] = FMA(KP773010453, T7a, T79);
Chris@10 1170 io[WS(os, 55)] = FNMS(KP773010453, T7a, T79);
Chris@10 1171 ro[WS(os, 7)] = FMA(KP773010453, T72, T6N);
Chris@10 1172 ro[WS(os, 39)] = FNMS(KP773010453, T72, T6N);
Chris@10 1173 ro[WS(os, 47)] = FNMS(KP995184726, T7q, T7j);
Chris@10 1174 ro[WS(os, 15)] = FMA(KP995184726, T7q, T7j);
Chris@10 1175 }
Chris@10 1176 T7t = FMA(KP980785280, T7s, T7r);
Chris@10 1177 T7v = FNMS(KP980785280, T7s, T7r);
Chris@10 1178 T7y = T7w - T7x;
Chris@10 1179 T7A = T7x + T7w;
Chris@10 1180 io[WS(os, 15)] = FMA(KP995184726, T7y, T7v);
Chris@10 1181 io[WS(os, 47)] = FNMS(KP995184726, T7y, T7v);
Chris@10 1182 io[WS(os, 63)] = FMA(KP995184726, T7u, T7t);
Chris@10 1183 io[WS(os, 31)] = FNMS(KP995184726, T7u, T7t);
Chris@10 1184 }
Chris@10 1185 }
Chris@10 1186 }
Chris@10 1187 {
Chris@10 1188 E T7D, T8K, T8H, T7K, Tad, Tae, T6x, T6A;
Chris@10 1189 {
Chris@10 1190 E T9V, T9j, T9E, T9B, Tab, Ta0, Taa, Ta3, Ta6, T9q, T9Q, T9y, Ta5, T9J, T9W;
Chris@10 1191 E T9M;
Chris@10 1192 {
Chris@10 1193 E T9x, T9u, T9L, T9m, T9p, T9K, T9H, T9I;
Chris@10 1194 {
Chris@10 1195 E T9Y, T9Z, T9h, T9i, Ta1, Ta2;
Chris@10 1196 T7D = FMA(KP707106781, T7C, T7B);
Chris@10 1197 T9h = FNMS(KP707106781, T7C, T7B);
Chris@10 1198 T9i = T8I - T8J;
Chris@10 1199 T8K = T8I + T8J;
Chris@10 1200 T9x = FNMS(KP923879532, T9w, T9v);
Chris@10 1201 T9Y = FMA(KP923879532, T9w, T9v);
Chris@10 1202 ro[WS(os, 63)] = FMA(KP995184726, T7A, T7z);
Chris@10 1203 ro[WS(os, 31)] = FNMS(KP995184726, T7A, T7z);
Chris@10 1204 T9V = FNMS(KP923879532, T9i, T9h);
Chris@10 1205 T9j = FMA(KP923879532, T9i, T9h);
Chris@10 1206 T9Z = FMA(KP923879532, T9t, T9s);
Chris@10 1207 T9u = FNMS(KP923879532, T9t, T9s);
Chris@10 1208 T9E = FNMS(KP923879532, T9D, T9C);
Chris@10 1209 Ta1 = FMA(KP923879532, T9D, T9C);
Chris@10 1210 Ta2 = FMA(KP923879532, T9A, T9z);
Chris@10 1211 T9B = FNMS(KP923879532, T9A, T9z);
Chris@10 1212 T9L = FNMS(KP668178637, T9k, T9l);
Chris@10 1213 T9m = FMA(KP668178637, T9l, T9k);
Chris@10 1214 Tab = FNMS(KP303346683, T9Y, T9Z);
Chris@10 1215 Ta0 = FMA(KP303346683, T9Z, T9Y);
Chris@10 1216 Taa = FMA(KP303346683, Ta1, Ta2);
Chris@10 1217 Ta3 = FNMS(KP303346683, Ta2, Ta1);
Chris@10 1218 T9p = FNMS(KP668178637, T9o, T9n);
Chris@10 1219 T9K = FMA(KP668178637, T9n, T9o);
Chris@10 1220 }
Chris@10 1221 T8H = FMA(KP707106781, T8G, T8F);
Chris@10 1222 T9H = FNMS(KP707106781, T8G, T8F);
Chris@10 1223 Ta6 = T9m + T9p;
Chris@10 1224 T9q = T9m - T9p;
Chris@10 1225 T9Q = FNMS(KP534511135, T9u, T9x);
Chris@10 1226 T9y = FMA(KP534511135, T9x, T9u);
Chris@10 1227 T9I = T7J - T7G;
Chris@10 1228 T7K = T7G + T7J;
Chris@10 1229 Ta5 = FNMS(KP923879532, T9I, T9H);
Chris@10 1230 T9J = FMA(KP923879532, T9I, T9H);
Chris@10 1231 T9W = T9L + T9K;
Chris@10 1232 T9M = T9K - T9L;
Chris@10 1233 }
Chris@10 1234 {
Chris@10 1235 E T9P, T9r, T9T, T9N, T9F, T9R;
Chris@10 1236 T9P = FNMS(KP831469612, T9q, T9j);
Chris@10 1237 T9r = FMA(KP831469612, T9q, T9j);
Chris@10 1238 T9T = FMA(KP831469612, T9M, T9J);
Chris@10 1239 T9N = FNMS(KP831469612, T9M, T9J);
Chris@10 1240 T9F = FNMS(KP534511135, T9E, T9B);
Chris@10 1241 T9R = FMA(KP534511135, T9B, T9E);
Chris@10 1242 {
Chris@10 1243 E Ta8, Ta7, Ta9, Tac, T9X, Ta4;
Chris@10 1244 Tad = FMA(KP831469612, T9W, T9V);
Chris@10 1245 T9X = FNMS(KP831469612, T9W, T9V);
Chris@10 1246 Ta4 = Ta0 - Ta3;
Chris@10 1247 Ta8 = Ta0 + Ta3;
Chris@10 1248 {
Chris@10 1249 E T9U, T9S, T9G, T9O;
Chris@10 1250 T9U = T9Q + T9R;
Chris@10 1251 T9S = T9Q - T9R;
Chris@10 1252 T9G = T9y + T9F;
Chris@10 1253 T9O = T9F - T9y;
Chris@10 1254 ro[WS(os, 21)] = FMA(KP881921264, T9S, T9P);
Chris@10 1255 ro[WS(os, 53)] = FNMS(KP881921264, T9S, T9P);
Chris@10 1256 io[WS(os, 5)] = FMA(KP881921264, T9U, T9T);
Chris@10 1257 io[WS(os, 37)] = FNMS(KP881921264, T9U, T9T);
Chris@10 1258 io[WS(os, 21)] = FMA(KP881921264, T9O, T9N);
Chris@10 1259 io[WS(os, 53)] = FNMS(KP881921264, T9O, T9N);
Chris@10 1260 ro[WS(os, 5)] = FMA(KP881921264, T9G, T9r);
Chris@10 1261 ro[WS(os, 37)] = FNMS(KP881921264, T9G, T9r);
Chris@10 1262 ro[WS(os, 45)] = FNMS(KP956940335, Ta4, T9X);
Chris@10 1263 ro[WS(os, 13)] = FMA(KP956940335, Ta4, T9X);
Chris@10 1264 }
Chris@10 1265 Ta7 = FMA(KP831469612, Ta6, Ta5);
Chris@10 1266 Ta9 = FNMS(KP831469612, Ta6, Ta5);
Chris@10 1267 Tac = Taa - Tab;
Chris@10 1268 Tae = Tab + Taa;
Chris@10 1269 io[WS(os, 13)] = FMA(KP956940335, Tac, Ta9);
Chris@10 1270 io[WS(os, 45)] = FNMS(KP956940335, Tac, Ta9);
Chris@10 1271 io[WS(os, 61)] = FMA(KP956940335, Ta8, Ta7);
Chris@10 1272 io[WS(os, 29)] = FNMS(KP956940335, Ta8, Ta7);
Chris@10 1273 }
Chris@10 1274 }
Chris@10 1275 }
Chris@10 1276 {
Chris@10 1277 E T6j, T3v, T5U, T5H, T6y, T6o, T6z, T6r, T6u, T48, T6f, T52, T6t, T67, T6k;
Chris@10 1278 E T6a;
Chris@10 1279 {
Chris@10 1280 E T51, T4O, T69, T3O, T47, T68;
Chris@10 1281 {
Chris@10 1282 E T6m, T6n, T6p, T6q;
Chris@10 1283 T51 = FNMS(KP923879532, T50, T4X);
Chris@10 1284 T6m = FMA(KP923879532, T50, T4X);
Chris@10 1285 ro[WS(os, 61)] = FMA(KP956940335, Tae, Tad);
Chris@10 1286 ro[WS(os, 29)] = FNMS(KP956940335, Tae, Tad);
Chris@10 1287 T6j = FMA(KP923879532, T3u, T3f);
Chris@10 1288 T3v = FNMS(KP923879532, T3u, T3f);
Chris@10 1289 T6n = FMA(KP923879532, T4N, T4q);
Chris@10 1290 T4O = FNMS(KP923879532, T4N, T4q);
Chris@10 1291 T5U = FNMS(KP923879532, T5T, T5Q);
Chris@10 1292 T6p = FMA(KP923879532, T5T, T5Q);
Chris@10 1293 T6q = FMA(KP923879532, T5G, T5j);
Chris@10 1294 T5H = FNMS(KP923879532, T5G, T5j);
Chris@10 1295 T69 = FMA(KP668178637, T3G, T3N);
Chris@10 1296 T3O = FNMS(KP668178637, T3N, T3G);
Chris@10 1297 T6y = FNMS(KP303346683, T6m, T6n);
Chris@10 1298 T6o = FMA(KP303346683, T6n, T6m);
Chris@10 1299 T6z = FMA(KP303346683, T6p, T6q);
Chris@10 1300 T6r = FNMS(KP303346683, T6q, T6p);
Chris@10 1301 T47 = FMA(KP668178637, T46, T3Z);
Chris@10 1302 T68 = FNMS(KP668178637, T3Z, T46);
Chris@10 1303 }
Chris@10 1304 T6u = T3O + T47;
Chris@10 1305 T48 = T3O - T47;
Chris@10 1306 T6f = FNMS(KP534511135, T4O, T51);
Chris@10 1307 T52 = FMA(KP534511135, T51, T4O);
Chris@10 1308 T6t = FMA(KP923879532, T66, T63);
Chris@10 1309 T67 = FNMS(KP923879532, T66, T63);
Chris@10 1310 T6k = T69 + T68;
Chris@10 1311 T6a = T68 - T69;
Chris@10 1312 }
Chris@10 1313 {
Chris@10 1314 E T6h, T49, T6d, T6b, T5V, T6e;
Chris@10 1315 T6h = FNMS(KP831469612, T48, T3v);
Chris@10 1316 T49 = FMA(KP831469612, T48, T3v);
Chris@10 1317 T6d = FMA(KP831469612, T6a, T67);
Chris@10 1318 T6b = FNMS(KP831469612, T6a, T67);
Chris@10 1319 T5V = FNMS(KP534511135, T5U, T5H);
Chris@10 1320 T6e = FMA(KP534511135, T5H, T5U);
Chris@10 1321 {
Chris@10 1322 E T6w, T6v, T6B, T6C, T6l, T6s;
Chris@10 1323 T6x = FNMS(KP831469612, T6k, T6j);
Chris@10 1324 T6l = FMA(KP831469612, T6k, T6j);
Chris@10 1325 T6s = T6o + T6r;
Chris@10 1326 T6w = T6r - T6o;
Chris@10 1327 {
Chris@10 1328 E T6g, T6i, T5W, T6c;
Chris@10 1329 T6g = T6e - T6f;
Chris@10 1330 T6i = T6f + T6e;
Chris@10 1331 T5W = T52 - T5V;
Chris@10 1332 T6c = T52 + T5V;
Chris@10 1333 ro[WS(os, 59)] = FMA(KP881921264, T6i, T6h);
Chris@10 1334 ro[WS(os, 27)] = FNMS(KP881921264, T6i, T6h);
Chris@10 1335 io[WS(os, 11)] = FMA(KP881921264, T6g, T6d);
Chris@10 1336 io[WS(os, 43)] = FNMS(KP881921264, T6g, T6d);
Chris@10 1337 io[WS(os, 59)] = FMA(KP881921264, T6c, T6b);
Chris@10 1338 io[WS(os, 27)] = FNMS(KP881921264, T6c, T6b);
Chris@10 1339 ro[WS(os, 11)] = FMA(KP881921264, T5W, T49);
Chris@10 1340 ro[WS(os, 43)] = FNMS(KP881921264, T5W, T49);
Chris@10 1341 ro[WS(os, 35)] = FNMS(KP956940335, T6s, T6l);
Chris@10 1342 ro[WS(os, 3)] = FMA(KP956940335, T6s, T6l);
Chris@10 1343 }
Chris@10 1344 T6v = FNMS(KP831469612, T6u, T6t);
Chris@10 1345 T6B = FMA(KP831469612, T6u, T6t);
Chris@10 1346 T6C = T6y + T6z;
Chris@10 1347 T6A = T6y - T6z;
Chris@10 1348 io[WS(os, 3)] = FMA(KP956940335, T6C, T6B);
Chris@10 1349 io[WS(os, 35)] = FNMS(KP956940335, T6C, T6B);
Chris@10 1350 io[WS(os, 19)] = FMA(KP956940335, T6w, T6v);
Chris@10 1351 io[WS(os, 51)] = FNMS(KP956940335, T6w, T6v);
Chris@10 1352 }
Chris@10 1353 }
Chris@10 1354 }
Chris@10 1355 {
Chris@10 1356 E T8X, T7L, T8C, T8v, T9c, T92, T9d, T95, T98, T80, T8T, T8k, T97, T8L, T8Y;
Chris@10 1357 E T8O;
Chris@10 1358 {
Chris@10 1359 E T8j, T8c, T8N, T7S, T7Z, T8M;
Chris@10 1360 {
Chris@10 1361 E T90, T91, T93, T94;
Chris@10 1362 T8j = FNMS(KP923879532, T8i, T8f);
Chris@10 1363 T90 = FMA(KP923879532, T8i, T8f);
Chris@10 1364 ro[WS(os, 19)] = FMA(KP956940335, T6A, T6x);
Chris@10 1365 ro[WS(os, 51)] = FNMS(KP956940335, T6A, T6x);
Chris@10 1366 T8X = FMA(KP923879532, T7K, T7D);
Chris@10 1367 T7L = FNMS(KP923879532, T7K, T7D);
Chris@10 1368 T91 = FMA(KP923879532, T8b, T84);
Chris@10 1369 T8c = FNMS(KP923879532, T8b, T84);
Chris@10 1370 T8C = FNMS(KP923879532, T8B, T8y);
Chris@10 1371 T93 = FMA(KP923879532, T8B, T8y);
Chris@10 1372 T94 = FMA(KP923879532, T8u, T8n);
Chris@10 1373 T8v = FNMS(KP923879532, T8u, T8n);
Chris@10 1374 T8N = FMA(KP198912367, T7O, T7R);
Chris@10 1375 T7S = FNMS(KP198912367, T7R, T7O);
Chris@10 1376 T9c = FNMS(KP098491403, T90, T91);
Chris@10 1377 T92 = FMA(KP098491403, T91, T90);
Chris@10 1378 T9d = FMA(KP098491403, T93, T94);
Chris@10 1379 T95 = FNMS(KP098491403, T94, T93);
Chris@10 1380 T7Z = FMA(KP198912367, T7Y, T7V);
Chris@10 1381 T8M = FNMS(KP198912367, T7V, T7Y);
Chris@10 1382 }
Chris@10 1383 T98 = T7S + T7Z;
Chris@10 1384 T80 = T7S - T7Z;
Chris@10 1385 T8T = FNMS(KP820678790, T8c, T8j);
Chris@10 1386 T8k = FMA(KP820678790, T8j, T8c);
Chris@10 1387 T97 = FMA(KP923879532, T8K, T8H);
Chris@10 1388 T8L = FNMS(KP923879532, T8K, T8H);
Chris@10 1389 T8Y = T8N + T8M;
Chris@10 1390 T8O = T8M - T8N;
Chris@10 1391 }
Chris@10 1392 {
Chris@10 1393 E T8V, T81, T8R, T8P, T8D, T8S;
Chris@10 1394 T8V = FNMS(KP980785280, T80, T7L);
Chris@10 1395 T81 = FMA(KP980785280, T80, T7L);
Chris@10 1396 T8R = FMA(KP980785280, T8O, T8L);
Chris@10 1397 T8P = FNMS(KP980785280, T8O, T8L);
Chris@10 1398 T8D = FNMS(KP820678790, T8C, T8v);
Chris@10 1399 T8S = FMA(KP820678790, T8v, T8C);
Chris@10 1400 {
Chris@10 1401 E T9a, T99, T9f, T9g, T8Z, T96;
Chris@10 1402 T9b = FNMS(KP980785280, T8Y, T8X);
Chris@10 1403 T8Z = FMA(KP980785280, T8Y, T8X);
Chris@10 1404 T96 = T92 + T95;
Chris@10 1405 T9a = T95 - T92;
Chris@10 1406 {
Chris@10 1407 E T8U, T8W, T8E, T8Q;
Chris@10 1408 T8U = T8S - T8T;
Chris@10 1409 T8W = T8T + T8S;
Chris@10 1410 T8E = T8k - T8D;
Chris@10 1411 T8Q = T8k + T8D;
Chris@10 1412 ro[WS(os, 57)] = FMA(KP773010453, T8W, T8V);
Chris@10 1413 ro[WS(os, 25)] = FNMS(KP773010453, T8W, T8V);
Chris@10 1414 io[WS(os, 9)] = FMA(KP773010453, T8U, T8R);
Chris@10 1415 io[WS(os, 41)] = FNMS(KP773010453, T8U, T8R);
Chris@10 1416 io[WS(os, 57)] = FMA(KP773010453, T8Q, T8P);
Chris@10 1417 io[WS(os, 25)] = FNMS(KP773010453, T8Q, T8P);
Chris@10 1418 ro[WS(os, 9)] = FMA(KP773010453, T8E, T81);
Chris@10 1419 ro[WS(os, 41)] = FNMS(KP773010453, T8E, T81);
Chris@10 1420 ro[WS(os, 33)] = FNMS(KP995184726, T96, T8Z);
Chris@10 1421 ro[WS(os, 1)] = FMA(KP995184726, T96, T8Z);
Chris@10 1422 }
Chris@10 1423 T99 = FNMS(KP980785280, T98, T97);
Chris@10 1424 T9f = FMA(KP980785280, T98, T97);
Chris@10 1425 T9g = T9c + T9d;
Chris@10 1426 T9e = T9c - T9d;
Chris@10 1427 io[WS(os, 1)] = FMA(KP995184726, T9g, T9f);
Chris@10 1428 io[WS(os, 33)] = FNMS(KP995184726, T9g, T9f);
Chris@10 1429 io[WS(os, 17)] = FMA(KP995184726, T9a, T99);
Chris@10 1430 io[WS(os, 49)] = FNMS(KP995184726, T9a, T99);
Chris@10 1431 }
Chris@10 1432 }
Chris@10 1433 }
Chris@10 1434 }
Chris@10 1435 }
Chris@10 1436 }
Chris@10 1437 }
Chris@10 1438 ro[WS(os, 17)] = FMA(KP995184726, T9e, T9b);
Chris@10 1439 ro[WS(os, 49)] = FNMS(KP995184726, T9e, T9b);
Chris@10 1440 }
Chris@10 1441 }
Chris@10 1442 }
Chris@10 1443
Chris@10 1444 static const kdft_desc desc = { 64, "n1_64", {520, 0, 392, 0}, &GENUS, 0, 0, 0, 0 };
Chris@10 1445
Chris@10 1446 void X(codelet_n1_64) (planner *p) {
Chris@10 1447 X(kdft_register) (p, n1_64, &desc);
Chris@10 1448 }
Chris@10 1449
Chris@10 1450 #else /* HAVE_FMA */
Chris@10 1451
Chris@10 1452 /* Generated by: ../../../genfft/gen_notw.native -compact -variables 4 -pipeline-latency 4 -n 64 -name n1_64 -include n.h */
Chris@10 1453
Chris@10 1454 /*
Chris@10 1455 * This function contains 912 FP additions, 248 FP multiplications,
Chris@10 1456 * (or, 808 additions, 144 multiplications, 104 fused multiply/add),
Chris@10 1457 * 172 stack variables, 15 constants, and 256 memory accesses
Chris@10 1458 */
Chris@10 1459 #include "n.h"
Chris@10 1460
Chris@10 1461 static void n1_64(const R *ri, const R *ii, R *ro, R *io, stride is, stride os, INT v, INT ivs, INT ovs)
Chris@10 1462 {
Chris@10 1463 DK(KP773010453, +0.773010453362736960810906609758469800971041293);
Chris@10 1464 DK(KP634393284, +0.634393284163645498215171613225493370675687095);
Chris@10 1465 DK(KP098017140, +0.098017140329560601994195563888641845861136673);
Chris@10 1466 DK(KP995184726, +0.995184726672196886244836953109479921575474869);
Chris@10 1467 DK(KP881921264, +0.881921264348355029712756863660388349508442621);
Chris@10 1468 DK(KP471396736, +0.471396736825997648556387625905254377657460319);
Chris@10 1469 DK(KP290284677, +0.290284677254462367636192375817395274691476278);
Chris@10 1470 DK(KP956940335, +0.956940335732208864935797886980269969482849206);
Chris@10 1471 DK(KP831469612, +0.831469612302545237078788377617905756738560812);
Chris@10 1472 DK(KP555570233, +0.555570233019602224742830813948532874374937191);
Chris@10 1473 DK(KP195090322, +0.195090322016128267848284868477022240927691618);
Chris@10 1474 DK(KP980785280, +0.980785280403230449126182236134239036973933731);
Chris@10 1475 DK(KP923879532, +0.923879532511286756128183189396788286822416626);
Chris@10 1476 DK(KP382683432, +0.382683432365089771728459984030398866761344562);
Chris@10 1477 DK(KP707106781, +0.707106781186547524400844362104849039284835938);
Chris@10 1478 {
Chris@10 1479 INT i;
Chris@10 1480 for (i = v; i > 0; i = i - 1, ri = ri + ivs, ii = ii + ivs, ro = ro + ovs, io = io + ovs, MAKE_VOLATILE_STRIDE(256, is), MAKE_VOLATILE_STRIDE(256, os)) {
Chris@10 1481 E T37, T7B, T8F, T5Z, Tf, Td9, TbB, TcB, T62, T7C, T2i, TdH, Tah, Tcb, T3e;
Chris@10 1482 E T8G, Tu, TdI, Tak, TbD, Tan, TbC, T2x, Tda, T3m, T65, T7G, T8J, T7J, T8I;
Chris@10 1483 E T3t, T64, TK, Tdd, Tas, Tce, Tav, Tcf, T2N, Tdc, T3G, T6G, T7O, T9k, T7R;
Chris@10 1484 E T9l, T3N, T6H, T1L, Tdv, Tbs, Tcw, TdC, Teo, T5j, T6V, T5Q, T6Y, T8y, T9C;
Chris@10 1485 E Tbb, Tct, T8n, T9z, TZ, Tdf, Taz, Tch, TaC, Tci, T32, Tdg, T3Z, T6J, T7V;
Chris@10 1486 E T9n, T7Y, T9o, T46, T6K, T1g, Tdp, Tb1, Tcm, Tdm, Tej, T4q, T6R, T4X, T6O;
Chris@10 1487 E T8f, T9s, TaK, Tcp, T84, T9v, T1v, Tdn, Tb4, Tcq, Tds, Tek, T4N, T6P, T50;
Chris@10 1488 E T6S, T8i, T9w, TaV, Tcn, T8b, T9t, T20, TdD, Tbv, Tcu, Tdy, Tep, T5G, T6Z;
Chris@10 1489 E T5T, T6W, T8B, T9A, Tbm, Tcx, T8u, T9D;
Chris@10 1490 {
Chris@10 1491 E T3, T35, T26, T5Y, T6, T5X, T29, T36, Ta, T39, T2d, T38, Td, T3b, T2g;
Chris@10 1492 E T3c;
Chris@10 1493 {
Chris@10 1494 E T1, T2, T24, T25;
Chris@10 1495 T1 = ri[0];
Chris@10 1496 T2 = ri[WS(is, 32)];
Chris@10 1497 T3 = T1 + T2;
Chris@10 1498 T35 = T1 - T2;
Chris@10 1499 T24 = ii[0];
Chris@10 1500 T25 = ii[WS(is, 32)];
Chris@10 1501 T26 = T24 + T25;
Chris@10 1502 T5Y = T24 - T25;
Chris@10 1503 }
Chris@10 1504 {
Chris@10 1505 E T4, T5, T27, T28;
Chris@10 1506 T4 = ri[WS(is, 16)];
Chris@10 1507 T5 = ri[WS(is, 48)];
Chris@10 1508 T6 = T4 + T5;
Chris@10 1509 T5X = T4 - T5;
Chris@10 1510 T27 = ii[WS(is, 16)];
Chris@10 1511 T28 = ii[WS(is, 48)];
Chris@10 1512 T29 = T27 + T28;
Chris@10 1513 T36 = T27 - T28;
Chris@10 1514 }
Chris@10 1515 {
Chris@10 1516 E T8, T9, T2b, T2c;
Chris@10 1517 T8 = ri[WS(is, 8)];
Chris@10 1518 T9 = ri[WS(is, 40)];
Chris@10 1519 Ta = T8 + T9;
Chris@10 1520 T39 = T8 - T9;
Chris@10 1521 T2b = ii[WS(is, 8)];
Chris@10 1522 T2c = ii[WS(is, 40)];
Chris@10 1523 T2d = T2b + T2c;
Chris@10 1524 T38 = T2b - T2c;
Chris@10 1525 }
Chris@10 1526 {
Chris@10 1527 E Tb, Tc, T2e, T2f;
Chris@10 1528 Tb = ri[WS(is, 56)];
Chris@10 1529 Tc = ri[WS(is, 24)];
Chris@10 1530 Td = Tb + Tc;
Chris@10 1531 T3b = Tb - Tc;
Chris@10 1532 T2e = ii[WS(is, 56)];
Chris@10 1533 T2f = ii[WS(is, 24)];
Chris@10 1534 T2g = T2e + T2f;
Chris@10 1535 T3c = T2e - T2f;
Chris@10 1536 }
Chris@10 1537 {
Chris@10 1538 E T7, Te, T2a, T2h;
Chris@10 1539 T37 = T35 - T36;
Chris@10 1540 T7B = T35 + T36;
Chris@10 1541 T8F = T5Y - T5X;
Chris@10 1542 T5Z = T5X + T5Y;
Chris@10 1543 T7 = T3 + T6;
Chris@10 1544 Te = Ta + Td;
Chris@10 1545 Tf = T7 + Te;
Chris@10 1546 Td9 = T7 - Te;
Chris@10 1547 {
Chris@10 1548 E Tbz, TbA, T60, T61;
Chris@10 1549 Tbz = T26 - T29;
Chris@10 1550 TbA = Td - Ta;
Chris@10 1551 TbB = Tbz - TbA;
Chris@10 1552 TcB = TbA + Tbz;
Chris@10 1553 T60 = T3b - T3c;
Chris@10 1554 T61 = T39 + T38;
Chris@10 1555 T62 = KP707106781 * (T60 - T61);
Chris@10 1556 T7C = KP707106781 * (T61 + T60);
Chris@10 1557 }
Chris@10 1558 T2a = T26 + T29;
Chris@10 1559 T2h = T2d + T2g;
Chris@10 1560 T2i = T2a + T2h;
Chris@10 1561 TdH = T2a - T2h;
Chris@10 1562 {
Chris@10 1563 E Taf, Tag, T3a, T3d;
Chris@10 1564 Taf = T3 - T6;
Chris@10 1565 Tag = T2d - T2g;
Chris@10 1566 Tah = Taf - Tag;
Chris@10 1567 Tcb = Taf + Tag;
Chris@10 1568 T3a = T38 - T39;
Chris@10 1569 T3d = T3b + T3c;
Chris@10 1570 T3e = KP707106781 * (T3a - T3d);
Chris@10 1571 T8G = KP707106781 * (T3a + T3d);
Chris@10 1572 }
Chris@10 1573 }
Chris@10 1574 }
Chris@10 1575 {
Chris@10 1576 E Ti, T3j, T2l, T3h, Tl, T3g, T2o, T3k, Tp, T3q, T2s, T3o, Ts, T3n, T2v;
Chris@10 1577 E T3r;
Chris@10 1578 {
Chris@10 1579 E Tg, Th, T2j, T2k;
Chris@10 1580 Tg = ri[WS(is, 4)];
Chris@10 1581 Th = ri[WS(is, 36)];
Chris@10 1582 Ti = Tg + Th;
Chris@10 1583 T3j = Tg - Th;
Chris@10 1584 T2j = ii[WS(is, 4)];
Chris@10 1585 T2k = ii[WS(is, 36)];
Chris@10 1586 T2l = T2j + T2k;
Chris@10 1587 T3h = T2j - T2k;
Chris@10 1588 }
Chris@10 1589 {
Chris@10 1590 E Tj, Tk, T2m, T2n;
Chris@10 1591 Tj = ri[WS(is, 20)];
Chris@10 1592 Tk = ri[WS(is, 52)];
Chris@10 1593 Tl = Tj + Tk;
Chris@10 1594 T3g = Tj - Tk;
Chris@10 1595 T2m = ii[WS(is, 20)];
Chris@10 1596 T2n = ii[WS(is, 52)];
Chris@10 1597 T2o = T2m + T2n;
Chris@10 1598 T3k = T2m - T2n;
Chris@10 1599 }
Chris@10 1600 {
Chris@10 1601 E Tn, To, T2q, T2r;
Chris@10 1602 Tn = ri[WS(is, 60)];
Chris@10 1603 To = ri[WS(is, 28)];
Chris@10 1604 Tp = Tn + To;
Chris@10 1605 T3q = Tn - To;
Chris@10 1606 T2q = ii[WS(is, 60)];
Chris@10 1607 T2r = ii[WS(is, 28)];
Chris@10 1608 T2s = T2q + T2r;
Chris@10 1609 T3o = T2q - T2r;
Chris@10 1610 }
Chris@10 1611 {
Chris@10 1612 E Tq, Tr, T2t, T2u;
Chris@10 1613 Tq = ri[WS(is, 12)];
Chris@10 1614 Tr = ri[WS(is, 44)];
Chris@10 1615 Ts = Tq + Tr;
Chris@10 1616 T3n = Tq - Tr;
Chris@10 1617 T2t = ii[WS(is, 12)];
Chris@10 1618 T2u = ii[WS(is, 44)];
Chris@10 1619 T2v = T2t + T2u;
Chris@10 1620 T3r = T2t - T2u;
Chris@10 1621 }
Chris@10 1622 {
Chris@10 1623 E Tm, Tt, Tai, Taj;
Chris@10 1624 Tm = Ti + Tl;
Chris@10 1625 Tt = Tp + Ts;
Chris@10 1626 Tu = Tm + Tt;
Chris@10 1627 TdI = Tt - Tm;
Chris@10 1628 Tai = T2l - T2o;
Chris@10 1629 Taj = Ti - Tl;
Chris@10 1630 Tak = Tai - Taj;
Chris@10 1631 TbD = Taj + Tai;
Chris@10 1632 }
Chris@10 1633 {
Chris@10 1634 E Tal, Tam, T2p, T2w;
Chris@10 1635 Tal = Tp - Ts;
Chris@10 1636 Tam = T2s - T2v;
Chris@10 1637 Tan = Tal + Tam;
Chris@10 1638 TbC = Tal - Tam;
Chris@10 1639 T2p = T2l + T2o;
Chris@10 1640 T2w = T2s + T2v;
Chris@10 1641 T2x = T2p + T2w;
Chris@10 1642 Tda = T2p - T2w;
Chris@10 1643 }
Chris@10 1644 {
Chris@10 1645 E T3i, T3l, T7E, T7F;
Chris@10 1646 T3i = T3g + T3h;
Chris@10 1647 T3l = T3j - T3k;
Chris@10 1648 T3m = FNMS(KP923879532, T3l, KP382683432 * T3i);
Chris@10 1649 T65 = FMA(KP923879532, T3i, KP382683432 * T3l);
Chris@10 1650 T7E = T3h - T3g;
Chris@10 1651 T7F = T3j + T3k;
Chris@10 1652 T7G = FNMS(KP382683432, T7F, KP923879532 * T7E);
Chris@10 1653 T8J = FMA(KP382683432, T7E, KP923879532 * T7F);
Chris@10 1654 }
Chris@10 1655 {
Chris@10 1656 E T7H, T7I, T3p, T3s;
Chris@10 1657 T7H = T3o - T3n;
Chris@10 1658 T7I = T3q + T3r;
Chris@10 1659 T7J = FMA(KP923879532, T7H, KP382683432 * T7I);
Chris@10 1660 T8I = FNMS(KP382683432, T7H, KP923879532 * T7I);
Chris@10 1661 T3p = T3n + T3o;
Chris@10 1662 T3s = T3q - T3r;
Chris@10 1663 T3t = FMA(KP382683432, T3p, KP923879532 * T3s);
Chris@10 1664 T64 = FNMS(KP923879532, T3p, KP382683432 * T3s);
Chris@10 1665 }
Chris@10 1666 }
Chris@10 1667 {
Chris@10 1668 E Ty, T3H, T2B, T3x, TB, T3w, T2E, T3I, TI, T3L, T2L, T3B, TF, T3K, T2I;
Chris@10 1669 E T3E;
Chris@10 1670 {
Chris@10 1671 E Tw, Tx, T2C, T2D;
Chris@10 1672 Tw = ri[WS(is, 2)];
Chris@10 1673 Tx = ri[WS(is, 34)];
Chris@10 1674 Ty = Tw + Tx;
Chris@10 1675 T3H = Tw - Tx;
Chris@10 1676 {
Chris@10 1677 E T2z, T2A, Tz, TA;
Chris@10 1678 T2z = ii[WS(is, 2)];
Chris@10 1679 T2A = ii[WS(is, 34)];
Chris@10 1680 T2B = T2z + T2A;
Chris@10 1681 T3x = T2z - T2A;
Chris@10 1682 Tz = ri[WS(is, 18)];
Chris@10 1683 TA = ri[WS(is, 50)];
Chris@10 1684 TB = Tz + TA;
Chris@10 1685 T3w = Tz - TA;
Chris@10 1686 }
Chris@10 1687 T2C = ii[WS(is, 18)];
Chris@10 1688 T2D = ii[WS(is, 50)];
Chris@10 1689 T2E = T2C + T2D;
Chris@10 1690 T3I = T2C - T2D;
Chris@10 1691 {
Chris@10 1692 E TG, TH, T3z, T2J, T2K, T3A;
Chris@10 1693 TG = ri[WS(is, 58)];
Chris@10 1694 TH = ri[WS(is, 26)];
Chris@10 1695 T3z = TG - TH;
Chris@10 1696 T2J = ii[WS(is, 58)];
Chris@10 1697 T2K = ii[WS(is, 26)];
Chris@10 1698 T3A = T2J - T2K;
Chris@10 1699 TI = TG + TH;
Chris@10 1700 T3L = T3z + T3A;
Chris@10 1701 T2L = T2J + T2K;
Chris@10 1702 T3B = T3z - T3A;
Chris@10 1703 }
Chris@10 1704 {
Chris@10 1705 E TD, TE, T3C, T2G, T2H, T3D;
Chris@10 1706 TD = ri[WS(is, 10)];
Chris@10 1707 TE = ri[WS(is, 42)];
Chris@10 1708 T3C = TD - TE;
Chris@10 1709 T2G = ii[WS(is, 10)];
Chris@10 1710 T2H = ii[WS(is, 42)];
Chris@10 1711 T3D = T2G - T2H;
Chris@10 1712 TF = TD + TE;
Chris@10 1713 T3K = T3D - T3C;
Chris@10 1714 T2I = T2G + T2H;
Chris@10 1715 T3E = T3C + T3D;
Chris@10 1716 }
Chris@10 1717 }
Chris@10 1718 {
Chris@10 1719 E TC, TJ, Taq, Tar;
Chris@10 1720 TC = Ty + TB;
Chris@10 1721 TJ = TF + TI;
Chris@10 1722 TK = TC + TJ;
Chris@10 1723 Tdd = TC - TJ;
Chris@10 1724 Taq = T2B - T2E;
Chris@10 1725 Tar = TI - TF;
Chris@10 1726 Tas = Taq - Tar;
Chris@10 1727 Tce = Tar + Taq;
Chris@10 1728 }
Chris@10 1729 {
Chris@10 1730 E Tat, Tau, T2F, T2M;
Chris@10 1731 Tat = Ty - TB;
Chris@10 1732 Tau = T2I - T2L;
Chris@10 1733 Tav = Tat - Tau;
Chris@10 1734 Tcf = Tat + Tau;
Chris@10 1735 T2F = T2B + T2E;
Chris@10 1736 T2M = T2I + T2L;
Chris@10 1737 T2N = T2F + T2M;
Chris@10 1738 Tdc = T2F - T2M;
Chris@10 1739 }
Chris@10 1740 {
Chris@10 1741 E T3y, T3F, T7M, T7N;
Chris@10 1742 T3y = T3w + T3x;
Chris@10 1743 T3F = KP707106781 * (T3B - T3E);
Chris@10 1744 T3G = T3y - T3F;
Chris@10 1745 T6G = T3y + T3F;
Chris@10 1746 T7M = T3x - T3w;
Chris@10 1747 T7N = KP707106781 * (T3K + T3L);
Chris@10 1748 T7O = T7M - T7N;
Chris@10 1749 T9k = T7M + T7N;
Chris@10 1750 }
Chris@10 1751 {
Chris@10 1752 E T7P, T7Q, T3J, T3M;
Chris@10 1753 T7P = T3H + T3I;
Chris@10 1754 T7Q = KP707106781 * (T3E + T3B);
Chris@10 1755 T7R = T7P - T7Q;
Chris@10 1756 T9l = T7P + T7Q;
Chris@10 1757 T3J = T3H - T3I;
Chris@10 1758 T3M = KP707106781 * (T3K - T3L);
Chris@10 1759 T3N = T3J - T3M;
Chris@10 1760 T6H = T3J + T3M;
Chris@10 1761 }
Chris@10 1762 }
Chris@10 1763 {
Chris@10 1764 E T1z, T53, T5L, Tbo, T1C, T5I, T56, Tbp, T1J, Tb9, T5h, T5N, T1G, Tb8, T5c;
Chris@10 1765 E T5O;
Chris@10 1766 {
Chris@10 1767 E T1x, T1y, T54, T55;
Chris@10 1768 T1x = ri[WS(is, 63)];
Chris@10 1769 T1y = ri[WS(is, 31)];
Chris@10 1770 T1z = T1x + T1y;
Chris@10 1771 T53 = T1x - T1y;
Chris@10 1772 {
Chris@10 1773 E T5J, T5K, T1A, T1B;
Chris@10 1774 T5J = ii[WS(is, 63)];
Chris@10 1775 T5K = ii[WS(is, 31)];
Chris@10 1776 T5L = T5J - T5K;
Chris@10 1777 Tbo = T5J + T5K;
Chris@10 1778 T1A = ri[WS(is, 15)];
Chris@10 1779 T1B = ri[WS(is, 47)];
Chris@10 1780 T1C = T1A + T1B;
Chris@10 1781 T5I = T1A - T1B;
Chris@10 1782 }
Chris@10 1783 T54 = ii[WS(is, 15)];
Chris@10 1784 T55 = ii[WS(is, 47)];
Chris@10 1785 T56 = T54 - T55;
Chris@10 1786 Tbp = T54 + T55;
Chris@10 1787 {
Chris@10 1788 E T1H, T1I, T5d, T5e, T5f, T5g;
Chris@10 1789 T1H = ri[WS(is, 55)];
Chris@10 1790 T1I = ri[WS(is, 23)];
Chris@10 1791 T5d = T1H - T1I;
Chris@10 1792 T5e = ii[WS(is, 55)];
Chris@10 1793 T5f = ii[WS(is, 23)];
Chris@10 1794 T5g = T5e - T5f;
Chris@10 1795 T1J = T1H + T1I;
Chris@10 1796 Tb9 = T5e + T5f;
Chris@10 1797 T5h = T5d + T5g;
Chris@10 1798 T5N = T5d - T5g;
Chris@10 1799 }
Chris@10 1800 {
Chris@10 1801 E T1E, T1F, T5b, T58, T59, T5a;
Chris@10 1802 T1E = ri[WS(is, 7)];
Chris@10 1803 T1F = ri[WS(is, 39)];
Chris@10 1804 T5b = T1E - T1F;
Chris@10 1805 T58 = ii[WS(is, 7)];
Chris@10 1806 T59 = ii[WS(is, 39)];
Chris@10 1807 T5a = T58 - T59;
Chris@10 1808 T1G = T1E + T1F;
Chris@10 1809 Tb8 = T58 + T59;
Chris@10 1810 T5c = T5a - T5b;
Chris@10 1811 T5O = T5b + T5a;
Chris@10 1812 }
Chris@10 1813 }
Chris@10 1814 {
Chris@10 1815 E T1D, T1K, Tbq, Tbr;
Chris@10 1816 T1D = T1z + T1C;
Chris@10 1817 T1K = T1G + T1J;
Chris@10 1818 T1L = T1D + T1K;
Chris@10 1819 Tdv = T1D - T1K;
Chris@10 1820 Tbq = Tbo - Tbp;
Chris@10 1821 Tbr = T1J - T1G;
Chris@10 1822 Tbs = Tbq - Tbr;
Chris@10 1823 Tcw = Tbr + Tbq;
Chris@10 1824 }
Chris@10 1825 {
Chris@10 1826 E TdA, TdB, T57, T5i;
Chris@10 1827 TdA = Tbo + Tbp;
Chris@10 1828 TdB = Tb8 + Tb9;
Chris@10 1829 TdC = TdA - TdB;
Chris@10 1830 Teo = TdA + TdB;
Chris@10 1831 T57 = T53 - T56;
Chris@10 1832 T5i = KP707106781 * (T5c - T5h);
Chris@10 1833 T5j = T57 - T5i;
Chris@10 1834 T6V = T57 + T5i;
Chris@10 1835 }
Chris@10 1836 {
Chris@10 1837 E T5M, T5P, T8w, T8x;
Chris@10 1838 T5M = T5I + T5L;
Chris@10 1839 T5P = KP707106781 * (T5N - T5O);
Chris@10 1840 T5Q = T5M - T5P;
Chris@10 1841 T6Y = T5M + T5P;
Chris@10 1842 T8w = T5L - T5I;
Chris@10 1843 T8x = KP707106781 * (T5c + T5h);
Chris@10 1844 T8y = T8w - T8x;
Chris@10 1845 T9C = T8w + T8x;
Chris@10 1846 }
Chris@10 1847 {
Chris@10 1848 E Tb7, Tba, T8l, T8m;
Chris@10 1849 Tb7 = T1z - T1C;
Chris@10 1850 Tba = Tb8 - Tb9;
Chris@10 1851 Tbb = Tb7 - Tba;
Chris@10 1852 Tct = Tb7 + Tba;
Chris@10 1853 T8l = T53 + T56;
Chris@10 1854 T8m = KP707106781 * (T5O + T5N);
Chris@10 1855 T8n = T8l - T8m;
Chris@10 1856 T9z = T8l + T8m;
Chris@10 1857 }
Chris@10 1858 }
Chris@10 1859 {
Chris@10 1860 E TN, T40, T2Q, T3Q, TQ, T3P, T2T, T41, TX, T44, T30, T3U, TU, T43, T2X;
Chris@10 1861 E T3X;
Chris@10 1862 {
Chris@10 1863 E TL, TM, T2R, T2S;
Chris@10 1864 TL = ri[WS(is, 62)];
Chris@10 1865 TM = ri[WS(is, 30)];
Chris@10 1866 TN = TL + TM;
Chris@10 1867 T40 = TL - TM;
Chris@10 1868 {
Chris@10 1869 E T2O, T2P, TO, TP;
Chris@10 1870 T2O = ii[WS(is, 62)];
Chris@10 1871 T2P = ii[WS(is, 30)];
Chris@10 1872 T2Q = T2O + T2P;
Chris@10 1873 T3Q = T2O - T2P;
Chris@10 1874 TO = ri[WS(is, 14)];
Chris@10 1875 TP = ri[WS(is, 46)];
Chris@10 1876 TQ = TO + TP;
Chris@10 1877 T3P = TO - TP;
Chris@10 1878 }
Chris@10 1879 T2R = ii[WS(is, 14)];
Chris@10 1880 T2S = ii[WS(is, 46)];
Chris@10 1881 T2T = T2R + T2S;
Chris@10 1882 T41 = T2R - T2S;
Chris@10 1883 {
Chris@10 1884 E TV, TW, T3S, T2Y, T2Z, T3T;
Chris@10 1885 TV = ri[WS(is, 54)];
Chris@10 1886 TW = ri[WS(is, 22)];
Chris@10 1887 T3S = TV - TW;
Chris@10 1888 T2Y = ii[WS(is, 54)];
Chris@10 1889 T2Z = ii[WS(is, 22)];
Chris@10 1890 T3T = T2Y - T2Z;
Chris@10 1891 TX = TV + TW;
Chris@10 1892 T44 = T3S + T3T;
Chris@10 1893 T30 = T2Y + T2Z;
Chris@10 1894 T3U = T3S - T3T;
Chris@10 1895 }
Chris@10 1896 {
Chris@10 1897 E TS, TT, T3V, T2V, T2W, T3W;
Chris@10 1898 TS = ri[WS(is, 6)];
Chris@10 1899 TT = ri[WS(is, 38)];
Chris@10 1900 T3V = TS - TT;
Chris@10 1901 T2V = ii[WS(is, 6)];
Chris@10 1902 T2W = ii[WS(is, 38)];
Chris@10 1903 T3W = T2V - T2W;
Chris@10 1904 TU = TS + TT;
Chris@10 1905 T43 = T3W - T3V;
Chris@10 1906 T2X = T2V + T2W;
Chris@10 1907 T3X = T3V + T3W;
Chris@10 1908 }
Chris@10 1909 }
Chris@10 1910 {
Chris@10 1911 E TR, TY, Tax, Tay;
Chris@10 1912 TR = TN + TQ;
Chris@10 1913 TY = TU + TX;
Chris@10 1914 TZ = TR + TY;
Chris@10 1915 Tdf = TR - TY;
Chris@10 1916 Tax = T2Q - T2T;
Chris@10 1917 Tay = TX - TU;
Chris@10 1918 Taz = Tax - Tay;
Chris@10 1919 Tch = Tay + Tax;
Chris@10 1920 }
Chris@10 1921 {
Chris@10 1922 E TaA, TaB, T2U, T31;
Chris@10 1923 TaA = TN - TQ;
Chris@10 1924 TaB = T2X - T30;
Chris@10 1925 TaC = TaA - TaB;
Chris@10 1926 Tci = TaA + TaB;
Chris@10 1927 T2U = T2Q + T2T;
Chris@10 1928 T31 = T2X + T30;
Chris@10 1929 T32 = T2U + T31;
Chris@10 1930 Tdg = T2U - T31;
Chris@10 1931 }
Chris@10 1932 {
Chris@10 1933 E T3R, T3Y, T7T, T7U;
Chris@10 1934 T3R = T3P + T3Q;
Chris@10 1935 T3Y = KP707106781 * (T3U - T3X);
Chris@10 1936 T3Z = T3R - T3Y;
Chris@10 1937 T6J = T3R + T3Y;
Chris@10 1938 T7T = T40 + T41;
Chris@10 1939 T7U = KP707106781 * (T3X + T3U);
Chris@10 1940 T7V = T7T - T7U;
Chris@10 1941 T9n = T7T + T7U;
Chris@10 1942 }
Chris@10 1943 {
Chris@10 1944 E T7W, T7X, T42, T45;
Chris@10 1945 T7W = T3Q - T3P;
Chris@10 1946 T7X = KP707106781 * (T43 + T44);
Chris@10 1947 T7Y = T7W - T7X;
Chris@10 1948 T9o = T7W + T7X;
Chris@10 1949 T42 = T40 - T41;
Chris@10 1950 T45 = KP707106781 * (T43 - T44);
Chris@10 1951 T46 = T42 - T45;
Chris@10 1952 T6K = T42 + T45;
Chris@10 1953 }
Chris@10 1954 }
Chris@10 1955 {
Chris@10 1956 E T14, T4P, T4d, TaG, T17, T4a, T4S, TaH, T1e, TaZ, T4j, T4V, T1b, TaY, T4o;
Chris@10 1957 E T4U;
Chris@10 1958 {
Chris@10 1959 E T12, T13, T4Q, T4R;
Chris@10 1960 T12 = ri[WS(is, 1)];
Chris@10 1961 T13 = ri[WS(is, 33)];
Chris@10 1962 T14 = T12 + T13;
Chris@10 1963 T4P = T12 - T13;
Chris@10 1964 {
Chris@10 1965 E T4b, T4c, T15, T16;
Chris@10 1966 T4b = ii[WS(is, 1)];
Chris@10 1967 T4c = ii[WS(is, 33)];
Chris@10 1968 T4d = T4b - T4c;
Chris@10 1969 TaG = T4b + T4c;
Chris@10 1970 T15 = ri[WS(is, 17)];
Chris@10 1971 T16 = ri[WS(is, 49)];
Chris@10 1972 T17 = T15 + T16;
Chris@10 1973 T4a = T15 - T16;
Chris@10 1974 }
Chris@10 1975 T4Q = ii[WS(is, 17)];
Chris@10 1976 T4R = ii[WS(is, 49)];
Chris@10 1977 T4S = T4Q - T4R;
Chris@10 1978 TaH = T4Q + T4R;
Chris@10 1979 {
Chris@10 1980 E T1c, T1d, T4f, T4g, T4h, T4i;
Chris@10 1981 T1c = ri[WS(is, 57)];
Chris@10 1982 T1d = ri[WS(is, 25)];
Chris@10 1983 T4f = T1c - T1d;
Chris@10 1984 T4g = ii[WS(is, 57)];
Chris@10 1985 T4h = ii[WS(is, 25)];
Chris@10 1986 T4i = T4g - T4h;
Chris@10 1987 T1e = T1c + T1d;
Chris@10 1988 TaZ = T4g + T4h;
Chris@10 1989 T4j = T4f - T4i;
Chris@10 1990 T4V = T4f + T4i;
Chris@10 1991 }
Chris@10 1992 {
Chris@10 1993 E T19, T1a, T4k, T4l, T4m, T4n;
Chris@10 1994 T19 = ri[WS(is, 9)];
Chris@10 1995 T1a = ri[WS(is, 41)];
Chris@10 1996 T4k = T19 - T1a;
Chris@10 1997 T4l = ii[WS(is, 9)];
Chris@10 1998 T4m = ii[WS(is, 41)];
Chris@10 1999 T4n = T4l - T4m;
Chris@10 2000 T1b = T19 + T1a;
Chris@10 2001 TaY = T4l + T4m;
Chris@10 2002 T4o = T4k + T4n;
Chris@10 2003 T4U = T4n - T4k;
Chris@10 2004 }
Chris@10 2005 }
Chris@10 2006 {
Chris@10 2007 E T18, T1f, TaX, Tb0;
Chris@10 2008 T18 = T14 + T17;
Chris@10 2009 T1f = T1b + T1e;
Chris@10 2010 T1g = T18 + T1f;
Chris@10 2011 Tdp = T18 - T1f;
Chris@10 2012 TaX = T14 - T17;
Chris@10 2013 Tb0 = TaY - TaZ;
Chris@10 2014 Tb1 = TaX - Tb0;
Chris@10 2015 Tcm = TaX + Tb0;
Chris@10 2016 }
Chris@10 2017 {
Chris@10 2018 E Tdk, Tdl, T4e, T4p;
Chris@10 2019 Tdk = TaG + TaH;
Chris@10 2020 Tdl = TaY + TaZ;
Chris@10 2021 Tdm = Tdk - Tdl;
Chris@10 2022 Tej = Tdk + Tdl;
Chris@10 2023 T4e = T4a + T4d;
Chris@10 2024 T4p = KP707106781 * (T4j - T4o);
Chris@10 2025 T4q = T4e - T4p;
Chris@10 2026 T6R = T4e + T4p;
Chris@10 2027 }
Chris@10 2028 {
Chris@10 2029 E T4T, T4W, T8d, T8e;
Chris@10 2030 T4T = T4P - T4S;
Chris@10 2031 T4W = KP707106781 * (T4U - T4V);
Chris@10 2032 T4X = T4T - T4W;
Chris@10 2033 T6O = T4T + T4W;
Chris@10 2034 T8d = T4P + T4S;
Chris@10 2035 T8e = KP707106781 * (T4o + T4j);
Chris@10 2036 T8f = T8d - T8e;
Chris@10 2037 T9s = T8d + T8e;
Chris@10 2038 }
Chris@10 2039 {
Chris@10 2040 E TaI, TaJ, T82, T83;
Chris@10 2041 TaI = TaG - TaH;
Chris@10 2042 TaJ = T1e - T1b;
Chris@10 2043 TaK = TaI - TaJ;
Chris@10 2044 Tcp = TaJ + TaI;
Chris@10 2045 T82 = T4d - T4a;
Chris@10 2046 T83 = KP707106781 * (T4U + T4V);
Chris@10 2047 T84 = T82 - T83;
Chris@10 2048 T9v = T82 + T83;
Chris@10 2049 }
Chris@10 2050 }
Chris@10 2051 {
Chris@10 2052 E T1j, TaR, T1m, TaS, T4G, T4L, TaT, TaQ, T89, T88, T1q, TaM, T1t, TaN, T4v;
Chris@10 2053 E T4A, TaO, TaL, T86, T85;
Chris@10 2054 {
Chris@10 2055 E T4H, T4F, T4C, T4K;
Chris@10 2056 {
Chris@10 2057 E T1h, T1i, T4D, T4E;
Chris@10 2058 T1h = ri[WS(is, 5)];
Chris@10 2059 T1i = ri[WS(is, 37)];
Chris@10 2060 T1j = T1h + T1i;
Chris@10 2061 T4H = T1h - T1i;
Chris@10 2062 T4D = ii[WS(is, 5)];
Chris@10 2063 T4E = ii[WS(is, 37)];
Chris@10 2064 T4F = T4D - T4E;
Chris@10 2065 TaR = T4D + T4E;
Chris@10 2066 }
Chris@10 2067 {
Chris@10 2068 E T1k, T1l, T4I, T4J;
Chris@10 2069 T1k = ri[WS(is, 21)];
Chris@10 2070 T1l = ri[WS(is, 53)];
Chris@10 2071 T1m = T1k + T1l;
Chris@10 2072 T4C = T1k - T1l;
Chris@10 2073 T4I = ii[WS(is, 21)];
Chris@10 2074 T4J = ii[WS(is, 53)];
Chris@10 2075 T4K = T4I - T4J;
Chris@10 2076 TaS = T4I + T4J;
Chris@10 2077 }
Chris@10 2078 T4G = T4C + T4F;
Chris@10 2079 T4L = T4H - T4K;
Chris@10 2080 TaT = TaR - TaS;
Chris@10 2081 TaQ = T1j - T1m;
Chris@10 2082 T89 = T4H + T4K;
Chris@10 2083 T88 = T4F - T4C;
Chris@10 2084 }
Chris@10 2085 {
Chris@10 2086 E T4r, T4z, T4w, T4u;
Chris@10 2087 {
Chris@10 2088 E T1o, T1p, T4x, T4y;
Chris@10 2089 T1o = ri[WS(is, 61)];
Chris@10 2090 T1p = ri[WS(is, 29)];
Chris@10 2091 T1q = T1o + T1p;
Chris@10 2092 T4r = T1o - T1p;
Chris@10 2093 T4x = ii[WS(is, 61)];
Chris@10 2094 T4y = ii[WS(is, 29)];
Chris@10 2095 T4z = T4x - T4y;
Chris@10 2096 TaM = T4x + T4y;
Chris@10 2097 }
Chris@10 2098 {
Chris@10 2099 E T1r, T1s, T4s, T4t;
Chris@10 2100 T1r = ri[WS(is, 13)];
Chris@10 2101 T1s = ri[WS(is, 45)];
Chris@10 2102 T1t = T1r + T1s;
Chris@10 2103 T4w = T1r - T1s;
Chris@10 2104 T4s = ii[WS(is, 13)];
Chris@10 2105 T4t = ii[WS(is, 45)];
Chris@10 2106 T4u = T4s - T4t;
Chris@10 2107 TaN = T4s + T4t;
Chris@10 2108 }
Chris@10 2109 T4v = T4r - T4u;
Chris@10 2110 T4A = T4w + T4z;
Chris@10 2111 TaO = TaM - TaN;
Chris@10 2112 TaL = T1q - T1t;
Chris@10 2113 T86 = T4z - T4w;
Chris@10 2114 T85 = T4r + T4u;
Chris@10 2115 }
Chris@10 2116 {
Chris@10 2117 E T1n, T1u, Tb2, Tb3;
Chris@10 2118 T1n = T1j + T1m;
Chris@10 2119 T1u = T1q + T1t;
Chris@10 2120 T1v = T1n + T1u;
Chris@10 2121 Tdn = T1u - T1n;
Chris@10 2122 Tb2 = TaT - TaQ;
Chris@10 2123 Tb3 = TaL + TaO;
Chris@10 2124 Tb4 = KP707106781 * (Tb2 - Tb3);
Chris@10 2125 Tcq = KP707106781 * (Tb2 + Tb3);
Chris@10 2126 }
Chris@10 2127 {
Chris@10 2128 E Tdq, Tdr, T4B, T4M;
Chris@10 2129 Tdq = TaR + TaS;
Chris@10 2130 Tdr = TaM + TaN;
Chris@10 2131 Tds = Tdq - Tdr;
Chris@10 2132 Tek = Tdq + Tdr;
Chris@10 2133 T4B = FNMS(KP923879532, T4A, KP382683432 * T4v);
Chris@10 2134 T4M = FMA(KP923879532, T4G, KP382683432 * T4L);
Chris@10 2135 T4N = T4B - T4M;
Chris@10 2136 T6P = T4M + T4B;
Chris@10 2137 }
Chris@10 2138 {
Chris@10 2139 E T4Y, T4Z, T8g, T8h;
Chris@10 2140 T4Y = FNMS(KP923879532, T4L, KP382683432 * T4G);
Chris@10 2141 T4Z = FMA(KP382683432, T4A, KP923879532 * T4v);
Chris@10 2142 T50 = T4Y - T4Z;
Chris@10 2143 T6S = T4Y + T4Z;
Chris@10 2144 T8g = FNMS(KP382683432, T89, KP923879532 * T88);
Chris@10 2145 T8h = FMA(KP923879532, T86, KP382683432 * T85);
Chris@10 2146 T8i = T8g - T8h;
Chris@10 2147 T9w = T8g + T8h;
Chris@10 2148 }
Chris@10 2149 {
Chris@10 2150 E TaP, TaU, T87, T8a;
Chris@10 2151 TaP = TaL - TaO;
Chris@10 2152 TaU = TaQ + TaT;
Chris@10 2153 TaV = KP707106781 * (TaP - TaU);
Chris@10 2154 Tcn = KP707106781 * (TaU + TaP);
Chris@10 2155 T87 = FNMS(KP382683432, T86, KP923879532 * T85);
Chris@10 2156 T8a = FMA(KP382683432, T88, KP923879532 * T89);
Chris@10 2157 T8b = T87 - T8a;
Chris@10 2158 T9t = T8a + T87;
Chris@10 2159 }
Chris@10 2160 }
Chris@10 2161 {
Chris@10 2162 E T1O, Tbc, T1R, Tbd, T5o, T5t, Tbf, Tbe, T8p, T8o, T1V, Tbi, T1Y, Tbj, T5z;
Chris@10 2163 E T5E, Tbk, Tbh, T8s, T8r;
Chris@10 2164 {
Chris@10 2165 E T5p, T5n, T5k, T5s;
Chris@10 2166 {
Chris@10 2167 E T1M, T1N, T5l, T5m;
Chris@10 2168 T1M = ri[WS(is, 3)];
Chris@10 2169 T1N = ri[WS(is, 35)];
Chris@10 2170 T1O = T1M + T1N;
Chris@10 2171 T5p = T1M - T1N;
Chris@10 2172 T5l = ii[WS(is, 3)];
Chris@10 2173 T5m = ii[WS(is, 35)];
Chris@10 2174 T5n = T5l - T5m;
Chris@10 2175 Tbc = T5l + T5m;
Chris@10 2176 }
Chris@10 2177 {
Chris@10 2178 E T1P, T1Q, T5q, T5r;
Chris@10 2179 T1P = ri[WS(is, 19)];
Chris@10 2180 T1Q = ri[WS(is, 51)];
Chris@10 2181 T1R = T1P + T1Q;
Chris@10 2182 T5k = T1P - T1Q;
Chris@10 2183 T5q = ii[WS(is, 19)];
Chris@10 2184 T5r = ii[WS(is, 51)];
Chris@10 2185 T5s = T5q - T5r;
Chris@10 2186 Tbd = T5q + T5r;
Chris@10 2187 }
Chris@10 2188 T5o = T5k + T5n;
Chris@10 2189 T5t = T5p - T5s;
Chris@10 2190 Tbf = T1O - T1R;
Chris@10 2191 Tbe = Tbc - Tbd;
Chris@10 2192 T8p = T5p + T5s;
Chris@10 2193 T8o = T5n - T5k;
Chris@10 2194 }
Chris@10 2195 {
Chris@10 2196 E T5A, T5y, T5v, T5D;
Chris@10 2197 {
Chris@10 2198 E T1T, T1U, T5w, T5x;
Chris@10 2199 T1T = ri[WS(is, 59)];
Chris@10 2200 T1U = ri[WS(is, 27)];
Chris@10 2201 T1V = T1T + T1U;
Chris@10 2202 T5A = T1T - T1U;
Chris@10 2203 T5w = ii[WS(is, 59)];
Chris@10 2204 T5x = ii[WS(is, 27)];
Chris@10 2205 T5y = T5w - T5x;
Chris@10 2206 Tbi = T5w + T5x;
Chris@10 2207 }
Chris@10 2208 {
Chris@10 2209 E T1W, T1X, T5B, T5C;
Chris@10 2210 T1W = ri[WS(is, 11)];
Chris@10 2211 T1X = ri[WS(is, 43)];
Chris@10 2212 T1Y = T1W + T1X;
Chris@10 2213 T5v = T1W - T1X;
Chris@10 2214 T5B = ii[WS(is, 11)];
Chris@10 2215 T5C = ii[WS(is, 43)];
Chris@10 2216 T5D = T5B - T5C;
Chris@10 2217 Tbj = T5B + T5C;
Chris@10 2218 }
Chris@10 2219 T5z = T5v + T5y;
Chris@10 2220 T5E = T5A - T5D;
Chris@10 2221 Tbk = Tbi - Tbj;
Chris@10 2222 Tbh = T1V - T1Y;
Chris@10 2223 T8s = T5A + T5D;
Chris@10 2224 T8r = T5y - T5v;
Chris@10 2225 }
Chris@10 2226 {
Chris@10 2227 E T1S, T1Z, Tbt, Tbu;
Chris@10 2228 T1S = T1O + T1R;
Chris@10 2229 T1Z = T1V + T1Y;
Chris@10 2230 T20 = T1S + T1Z;
Chris@10 2231 TdD = T1Z - T1S;
Chris@10 2232 Tbt = Tbh - Tbk;
Chris@10 2233 Tbu = Tbf + Tbe;
Chris@10 2234 Tbv = KP707106781 * (Tbt - Tbu);
Chris@10 2235 Tcu = KP707106781 * (Tbu + Tbt);
Chris@10 2236 }
Chris@10 2237 {
Chris@10 2238 E Tdw, Tdx, T5u, T5F;
Chris@10 2239 Tdw = Tbc + Tbd;
Chris@10 2240 Tdx = Tbi + Tbj;
Chris@10 2241 Tdy = Tdw - Tdx;
Chris@10 2242 Tep = Tdw + Tdx;
Chris@10 2243 T5u = FNMS(KP923879532, T5t, KP382683432 * T5o);
Chris@10 2244 T5F = FMA(KP382683432, T5z, KP923879532 * T5E);
Chris@10 2245 T5G = T5u - T5F;
Chris@10 2246 T6Z = T5u + T5F;
Chris@10 2247 }
Chris@10 2248 {
Chris@10 2249 E T5R, T5S, T8z, T8A;
Chris@10 2250 T5R = FNMS(KP923879532, T5z, KP382683432 * T5E);
Chris@10 2251 T5S = FMA(KP923879532, T5o, KP382683432 * T5t);
Chris@10 2252 T5T = T5R - T5S;
Chris@10 2253 T6W = T5S + T5R;
Chris@10 2254 T8z = FNMS(KP382683432, T8r, KP923879532 * T8s);
Chris@10 2255 T8A = FMA(KP382683432, T8o, KP923879532 * T8p);
Chris@10 2256 T8B = T8z - T8A;
Chris@10 2257 T9A = T8A + T8z;
Chris@10 2258 }
Chris@10 2259 {
Chris@10 2260 E Tbg, Tbl, T8q, T8t;
Chris@10 2261 Tbg = Tbe - Tbf;
Chris@10 2262 Tbl = Tbh + Tbk;
Chris@10 2263 Tbm = KP707106781 * (Tbg - Tbl);
Chris@10 2264 Tcx = KP707106781 * (Tbg + Tbl);
Chris@10 2265 T8q = FNMS(KP382683432, T8p, KP923879532 * T8o);
Chris@10 2266 T8t = FMA(KP923879532, T8r, KP382683432 * T8s);
Chris@10 2267 T8u = T8q - T8t;
Chris@10 2268 T9D = T8q + T8t;
Chris@10 2269 }
Chris@10 2270 }
Chris@10 2271 {
Chris@10 2272 E T11, TeD, TeG, TeI, T22, T23, T34, TeH;
Chris@10 2273 {
Chris@10 2274 E Tv, T10, TeE, TeF;
Chris@10 2275 Tv = Tf + Tu;
Chris@10 2276 T10 = TK + TZ;
Chris@10 2277 T11 = Tv + T10;
Chris@10 2278 TeD = Tv - T10;
Chris@10 2279 TeE = Tej + Tek;
Chris@10 2280 TeF = Teo + Tep;
Chris@10 2281 TeG = TeE - TeF;
Chris@10 2282 TeI = TeE + TeF;
Chris@10 2283 }
Chris@10 2284 {
Chris@10 2285 E T1w, T21, T2y, T33;
Chris@10 2286 T1w = T1g + T1v;
Chris@10 2287 T21 = T1L + T20;
Chris@10 2288 T22 = T1w + T21;
Chris@10 2289 T23 = T21 - T1w;
Chris@10 2290 T2y = T2i + T2x;
Chris@10 2291 T33 = T2N + T32;
Chris@10 2292 T34 = T2y - T33;
Chris@10 2293 TeH = T2y + T33;
Chris@10 2294 }
Chris@10 2295 ro[WS(os, 32)] = T11 - T22;
Chris@10 2296 io[WS(os, 32)] = TeH - TeI;
Chris@10 2297 ro[0] = T11 + T22;
Chris@10 2298 io[0] = TeH + TeI;
Chris@10 2299 io[WS(os, 16)] = T23 + T34;
Chris@10 2300 ro[WS(os, 16)] = TeD + TeG;
Chris@10 2301 io[WS(os, 48)] = T34 - T23;
Chris@10 2302 ro[WS(os, 48)] = TeD - TeG;
Chris@10 2303 }
Chris@10 2304 {
Chris@10 2305 E Teh, Tex, Tev, TeB, Tem, Tey, Ter, Tez;
Chris@10 2306 {
Chris@10 2307 E Tef, Teg, Tet, Teu;
Chris@10 2308 Tef = Tf - Tu;
Chris@10 2309 Teg = T2N - T32;
Chris@10 2310 Teh = Tef + Teg;
Chris@10 2311 Tex = Tef - Teg;
Chris@10 2312 Tet = T2i - T2x;
Chris@10 2313 Teu = TZ - TK;
Chris@10 2314 Tev = Tet - Teu;
Chris@10 2315 TeB = Teu + Tet;
Chris@10 2316 }
Chris@10 2317 {
Chris@10 2318 E Tei, Tel, Ten, Teq;
Chris@10 2319 Tei = T1g - T1v;
Chris@10 2320 Tel = Tej - Tek;
Chris@10 2321 Tem = Tei + Tel;
Chris@10 2322 Tey = Tel - Tei;
Chris@10 2323 Ten = T1L - T20;
Chris@10 2324 Teq = Teo - Tep;
Chris@10 2325 Ter = Ten - Teq;
Chris@10 2326 Tez = Ten + Teq;
Chris@10 2327 }
Chris@10 2328 {
Chris@10 2329 E Tes, TeC, Tew, TeA;
Chris@10 2330 Tes = KP707106781 * (Tem + Ter);
Chris@10 2331 ro[WS(os, 40)] = Teh - Tes;
Chris@10 2332 ro[WS(os, 8)] = Teh + Tes;
Chris@10 2333 TeC = KP707106781 * (Tey + Tez);
Chris@10 2334 io[WS(os, 40)] = TeB - TeC;
Chris@10 2335 io[WS(os, 8)] = TeB + TeC;
Chris@10 2336 Tew = KP707106781 * (Ter - Tem);
Chris@10 2337 io[WS(os, 56)] = Tev - Tew;
Chris@10 2338 io[WS(os, 24)] = Tev + Tew;
Chris@10 2339 TeA = KP707106781 * (Tey - Tez);
Chris@10 2340 ro[WS(os, 56)] = Tex - TeA;
Chris@10 2341 ro[WS(os, 24)] = Tex + TeA;
Chris@10 2342 }
Chris@10 2343 }
Chris@10 2344 {
Chris@10 2345 E Tdb, TdV, Te5, TdJ, Tdi, Te6, Te3, Teb, TdM, TdW, Tdu, TdQ, Te0, Tea, TdF;
Chris@10 2346 E TdR;
Chris@10 2347 {
Chris@10 2348 E Tde, Tdh, Tdo, Tdt;
Chris@10 2349 Tdb = Td9 - Tda;
Chris@10 2350 TdV = Td9 + Tda;
Chris@10 2351 Te5 = TdI + TdH;
Chris@10 2352 TdJ = TdH - TdI;
Chris@10 2353 Tde = Tdc - Tdd;
Chris@10 2354 Tdh = Tdf + Tdg;
Chris@10 2355 Tdi = KP707106781 * (Tde - Tdh);
Chris@10 2356 Te6 = KP707106781 * (Tde + Tdh);
Chris@10 2357 {
Chris@10 2358 E Te1, Te2, TdK, TdL;
Chris@10 2359 Te1 = Tdv + Tdy;
Chris@10 2360 Te2 = TdD + TdC;
Chris@10 2361 Te3 = FNMS(KP382683432, Te2, KP923879532 * Te1);
Chris@10 2362 Teb = FMA(KP923879532, Te2, KP382683432 * Te1);
Chris@10 2363 TdK = Tdf - Tdg;
Chris@10 2364 TdL = Tdd + Tdc;
Chris@10 2365 TdM = KP707106781 * (TdK - TdL);
Chris@10 2366 TdW = KP707106781 * (TdL + TdK);
Chris@10 2367 }
Chris@10 2368 Tdo = Tdm - Tdn;
Chris@10 2369 Tdt = Tdp - Tds;
Chris@10 2370 Tdu = FMA(KP923879532, Tdo, KP382683432 * Tdt);
Chris@10 2371 TdQ = FNMS(KP923879532, Tdt, KP382683432 * Tdo);
Chris@10 2372 {
Chris@10 2373 E TdY, TdZ, Tdz, TdE;
Chris@10 2374 TdY = Tdn + Tdm;
Chris@10 2375 TdZ = Tdp + Tds;
Chris@10 2376 Te0 = FMA(KP382683432, TdY, KP923879532 * TdZ);
Chris@10 2377 Tea = FNMS(KP382683432, TdZ, KP923879532 * TdY);
Chris@10 2378 Tdz = Tdv - Tdy;
Chris@10 2379 TdE = TdC - TdD;
Chris@10 2380 TdF = FNMS(KP923879532, TdE, KP382683432 * Tdz);
Chris@10 2381 TdR = FMA(KP382683432, TdE, KP923879532 * Tdz);
Chris@10 2382 }
Chris@10 2383 }
Chris@10 2384 {
Chris@10 2385 E Tdj, TdG, TdT, TdU;
Chris@10 2386 Tdj = Tdb + Tdi;
Chris@10 2387 TdG = Tdu + TdF;
Chris@10 2388 ro[WS(os, 44)] = Tdj - TdG;
Chris@10 2389 ro[WS(os, 12)] = Tdj + TdG;
Chris@10 2390 TdT = TdJ + TdM;
Chris@10 2391 TdU = TdQ + TdR;
Chris@10 2392 io[WS(os, 44)] = TdT - TdU;
Chris@10 2393 io[WS(os, 12)] = TdT + TdU;
Chris@10 2394 }
Chris@10 2395 {
Chris@10 2396 E TdN, TdO, TdP, TdS;
Chris@10 2397 TdN = TdJ - TdM;
Chris@10 2398 TdO = TdF - Tdu;
Chris@10 2399 io[WS(os, 60)] = TdN - TdO;
Chris@10 2400 io[WS(os, 28)] = TdN + TdO;
Chris@10 2401 TdP = Tdb - Tdi;
Chris@10 2402 TdS = TdQ - TdR;
Chris@10 2403 ro[WS(os, 60)] = TdP - TdS;
Chris@10 2404 ro[WS(os, 28)] = TdP + TdS;
Chris@10 2405 }
Chris@10 2406 {
Chris@10 2407 E TdX, Te4, Ted, Tee;
Chris@10 2408 TdX = TdV + TdW;
Chris@10 2409 Te4 = Te0 + Te3;
Chris@10 2410 ro[WS(os, 36)] = TdX - Te4;
Chris@10 2411 ro[WS(os, 4)] = TdX + Te4;
Chris@10 2412 Ted = Te5 + Te6;
Chris@10 2413 Tee = Tea + Teb;
Chris@10 2414 io[WS(os, 36)] = Ted - Tee;
Chris@10 2415 io[WS(os, 4)] = Ted + Tee;
Chris@10 2416 }
Chris@10 2417 {
Chris@10 2418 E Te7, Te8, Te9, Tec;
Chris@10 2419 Te7 = Te5 - Te6;
Chris@10 2420 Te8 = Te3 - Te0;
Chris@10 2421 io[WS(os, 52)] = Te7 - Te8;
Chris@10 2422 io[WS(os, 20)] = Te7 + Te8;
Chris@10 2423 Te9 = TdV - TdW;
Chris@10 2424 Tec = Tea - Teb;
Chris@10 2425 ro[WS(os, 52)] = Te9 - Tec;
Chris@10 2426 ro[WS(os, 20)] = Te9 + Tec;
Chris@10 2427 }
Chris@10 2428 }
Chris@10 2429 {
Chris@10 2430 E Tcd, TcP, TcD, TcZ, Tck, Td0, TcX, Td5, Tcs, TcK, TcG, TcQ, TcU, Td4, Tcz;
Chris@10 2431 E TcL, Tcc, TcC;
Chris@10 2432 Tcc = KP707106781 * (TbD + TbC);
Chris@10 2433 Tcd = Tcb - Tcc;
Chris@10 2434 TcP = Tcb + Tcc;
Chris@10 2435 TcC = KP707106781 * (Tak + Tan);
Chris@10 2436 TcD = TcB - TcC;
Chris@10 2437 TcZ = TcB + TcC;
Chris@10 2438 {
Chris@10 2439 E Tcg, Tcj, TcV, TcW;
Chris@10 2440 Tcg = FNMS(KP382683432, Tcf, KP923879532 * Tce);
Chris@10 2441 Tcj = FMA(KP923879532, Tch, KP382683432 * Tci);
Chris@10 2442 Tck = Tcg - Tcj;
Chris@10 2443 Td0 = Tcg + Tcj;
Chris@10 2444 TcV = Tct + Tcu;
Chris@10 2445 TcW = Tcw + Tcx;
Chris@10 2446 TcX = FNMS(KP195090322, TcW, KP980785280 * TcV);
Chris@10 2447 Td5 = FMA(KP195090322, TcV, KP980785280 * TcW);
Chris@10 2448 }
Chris@10 2449 {
Chris@10 2450 E Tco, Tcr, TcE, TcF;
Chris@10 2451 Tco = Tcm - Tcn;
Chris@10 2452 Tcr = Tcp - Tcq;
Chris@10 2453 Tcs = FMA(KP555570233, Tco, KP831469612 * Tcr);
Chris@10 2454 TcK = FNMS(KP831469612, Tco, KP555570233 * Tcr);
Chris@10 2455 TcE = FNMS(KP382683432, Tch, KP923879532 * Tci);
Chris@10 2456 TcF = FMA(KP382683432, Tce, KP923879532 * Tcf);
Chris@10 2457 TcG = TcE - TcF;
Chris@10 2458 TcQ = TcF + TcE;
Chris@10 2459 }
Chris@10 2460 {
Chris@10 2461 E TcS, TcT, Tcv, Tcy;
Chris@10 2462 TcS = Tcm + Tcn;
Chris@10 2463 TcT = Tcp + Tcq;
Chris@10 2464 TcU = FMA(KP980785280, TcS, KP195090322 * TcT);
Chris@10 2465 Td4 = FNMS(KP195090322, TcS, KP980785280 * TcT);
Chris@10 2466 Tcv = Tct - Tcu;
Chris@10 2467 Tcy = Tcw - Tcx;
Chris@10 2468 Tcz = FNMS(KP831469612, Tcy, KP555570233 * Tcv);
Chris@10 2469 TcL = FMA(KP831469612, Tcv, KP555570233 * Tcy);
Chris@10 2470 }
Chris@10 2471 {
Chris@10 2472 E Tcl, TcA, TcN, TcO;
Chris@10 2473 Tcl = Tcd + Tck;
Chris@10 2474 TcA = Tcs + Tcz;
Chris@10 2475 ro[WS(os, 42)] = Tcl - TcA;
Chris@10 2476 ro[WS(os, 10)] = Tcl + TcA;
Chris@10 2477 TcN = TcD + TcG;
Chris@10 2478 TcO = TcK + TcL;
Chris@10 2479 io[WS(os, 42)] = TcN - TcO;
Chris@10 2480 io[WS(os, 10)] = TcN + TcO;
Chris@10 2481 }
Chris@10 2482 {
Chris@10 2483 E TcH, TcI, TcJ, TcM;
Chris@10 2484 TcH = TcD - TcG;
Chris@10 2485 TcI = Tcz - Tcs;
Chris@10 2486 io[WS(os, 58)] = TcH - TcI;
Chris@10 2487 io[WS(os, 26)] = TcH + TcI;
Chris@10 2488 TcJ = Tcd - Tck;
Chris@10 2489 TcM = TcK - TcL;
Chris@10 2490 ro[WS(os, 58)] = TcJ - TcM;
Chris@10 2491 ro[WS(os, 26)] = TcJ + TcM;
Chris@10 2492 }
Chris@10 2493 {
Chris@10 2494 E TcR, TcY, Td7, Td8;
Chris@10 2495 TcR = TcP + TcQ;
Chris@10 2496 TcY = TcU + TcX;
Chris@10 2497 ro[WS(os, 34)] = TcR - TcY;
Chris@10 2498 ro[WS(os, 2)] = TcR + TcY;
Chris@10 2499 Td7 = TcZ + Td0;
Chris@10 2500 Td8 = Td4 + Td5;
Chris@10 2501 io[WS(os, 34)] = Td7 - Td8;
Chris@10 2502 io[WS(os, 2)] = Td7 + Td8;
Chris@10 2503 }
Chris@10 2504 {
Chris@10 2505 E Td1, Td2, Td3, Td6;
Chris@10 2506 Td1 = TcZ - Td0;
Chris@10 2507 Td2 = TcX - TcU;
Chris@10 2508 io[WS(os, 50)] = Td1 - Td2;
Chris@10 2509 io[WS(os, 18)] = Td1 + Td2;
Chris@10 2510 Td3 = TcP - TcQ;
Chris@10 2511 Td6 = Td4 - Td5;
Chris@10 2512 ro[WS(os, 50)] = Td3 - Td6;
Chris@10 2513 ro[WS(os, 18)] = Td3 + Td6;
Chris@10 2514 }
Chris@10 2515 }
Chris@10 2516 {
Chris@10 2517 E Tap, TbR, TbF, Tc1, TaE, Tc2, TbZ, Tc7, Tb6, TbM, TbI, TbS, TbW, Tc6, Tbx;
Chris@10 2518 E TbN, Tao, TbE;
Chris@10 2519 Tao = KP707106781 * (Tak - Tan);
Chris@10 2520 Tap = Tah - Tao;
Chris@10 2521 TbR = Tah + Tao;
Chris@10 2522 TbE = KP707106781 * (TbC - TbD);
Chris@10 2523 TbF = TbB - TbE;
Chris@10 2524 Tc1 = TbB + TbE;
Chris@10 2525 {
Chris@10 2526 E Taw, TaD, TbX, TbY;
Chris@10 2527 Taw = FNMS(KP923879532, Tav, KP382683432 * Tas);
Chris@10 2528 TaD = FMA(KP382683432, Taz, KP923879532 * TaC);
Chris@10 2529 TaE = Taw - TaD;
Chris@10 2530 Tc2 = Taw + TaD;
Chris@10 2531 TbX = Tbb + Tbm;
Chris@10 2532 TbY = Tbs + Tbv;
Chris@10 2533 TbZ = FNMS(KP555570233, TbY, KP831469612 * TbX);
Chris@10 2534 Tc7 = FMA(KP831469612, TbY, KP555570233 * TbX);
Chris@10 2535 }
Chris@10 2536 {
Chris@10 2537 E TaW, Tb5, TbG, TbH;
Chris@10 2538 TaW = TaK - TaV;
Chris@10 2539 Tb5 = Tb1 - Tb4;
Chris@10 2540 Tb6 = FMA(KP980785280, TaW, KP195090322 * Tb5);
Chris@10 2541 TbM = FNMS(KP980785280, Tb5, KP195090322 * TaW);
Chris@10 2542 TbG = FNMS(KP923879532, Taz, KP382683432 * TaC);
Chris@10 2543 TbH = FMA(KP923879532, Tas, KP382683432 * Tav);
Chris@10 2544 TbI = TbG - TbH;
Chris@10 2545 TbS = TbH + TbG;
Chris@10 2546 }
Chris@10 2547 {
Chris@10 2548 E TbU, TbV, Tbn, Tbw;
Chris@10 2549 TbU = TaK + TaV;
Chris@10 2550 TbV = Tb1 + Tb4;
Chris@10 2551 TbW = FMA(KP555570233, TbU, KP831469612 * TbV);
Chris@10 2552 Tc6 = FNMS(KP555570233, TbV, KP831469612 * TbU);
Chris@10 2553 Tbn = Tbb - Tbm;
Chris@10 2554 Tbw = Tbs - Tbv;
Chris@10 2555 Tbx = FNMS(KP980785280, Tbw, KP195090322 * Tbn);
Chris@10 2556 TbN = FMA(KP195090322, Tbw, KP980785280 * Tbn);
Chris@10 2557 }
Chris@10 2558 {
Chris@10 2559 E TaF, Tby, TbP, TbQ;
Chris@10 2560 TaF = Tap + TaE;
Chris@10 2561 Tby = Tb6 + Tbx;
Chris@10 2562 ro[WS(os, 46)] = TaF - Tby;
Chris@10 2563 ro[WS(os, 14)] = TaF + Tby;
Chris@10 2564 TbP = TbF + TbI;
Chris@10 2565 TbQ = TbM + TbN;
Chris@10 2566 io[WS(os, 46)] = TbP - TbQ;
Chris@10 2567 io[WS(os, 14)] = TbP + TbQ;
Chris@10 2568 }
Chris@10 2569 {
Chris@10 2570 E TbJ, TbK, TbL, TbO;
Chris@10 2571 TbJ = TbF - TbI;
Chris@10 2572 TbK = Tbx - Tb6;
Chris@10 2573 io[WS(os, 62)] = TbJ - TbK;
Chris@10 2574 io[WS(os, 30)] = TbJ + TbK;
Chris@10 2575 TbL = Tap - TaE;
Chris@10 2576 TbO = TbM - TbN;
Chris@10 2577 ro[WS(os, 62)] = TbL - TbO;
Chris@10 2578 ro[WS(os, 30)] = TbL + TbO;
Chris@10 2579 }
Chris@10 2580 {
Chris@10 2581 E TbT, Tc0, Tc9, Tca;
Chris@10 2582 TbT = TbR + TbS;
Chris@10 2583 Tc0 = TbW + TbZ;
Chris@10 2584 ro[WS(os, 38)] = TbT - Tc0;
Chris@10 2585 ro[WS(os, 6)] = TbT + Tc0;
Chris@10 2586 Tc9 = Tc1 + Tc2;
Chris@10 2587 Tca = Tc6 + Tc7;
Chris@10 2588 io[WS(os, 38)] = Tc9 - Tca;
Chris@10 2589 io[WS(os, 6)] = Tc9 + Tca;
Chris@10 2590 }
Chris@10 2591 {
Chris@10 2592 E Tc3, Tc4, Tc5, Tc8;
Chris@10 2593 Tc3 = Tc1 - Tc2;
Chris@10 2594 Tc4 = TbZ - TbW;
Chris@10 2595 io[WS(os, 54)] = Tc3 - Tc4;
Chris@10 2596 io[WS(os, 22)] = Tc3 + Tc4;
Chris@10 2597 Tc5 = TbR - TbS;
Chris@10 2598 Tc8 = Tc6 - Tc7;
Chris@10 2599 ro[WS(os, 54)] = Tc5 - Tc8;
Chris@10 2600 ro[WS(os, 22)] = Tc5 + Tc8;
Chris@10 2601 }
Chris@10 2602 }
Chris@10 2603 {
Chris@10 2604 E T6F, T7h, T7m, T7w, T7p, T7x, T6M, T7s, T6U, T7c, T75, T7r, T78, T7i, T71;
Chris@10 2605 E T7d;
Chris@10 2606 {
Chris@10 2607 E T6D, T6E, T7k, T7l;
Chris@10 2608 T6D = T37 + T3e;
Chris@10 2609 T6E = T65 + T64;
Chris@10 2610 T6F = T6D - T6E;
Chris@10 2611 T7h = T6D + T6E;
Chris@10 2612 T7k = T6O + T6P;
Chris@10 2613 T7l = T6R + T6S;
Chris@10 2614 T7m = FMA(KP956940335, T7k, KP290284677 * T7l);
Chris@10 2615 T7w = FNMS(KP290284677, T7k, KP956940335 * T7l);
Chris@10 2616 }
Chris@10 2617 {
Chris@10 2618 E T7n, T7o, T6I, T6L;
Chris@10 2619 T7n = T6V + T6W;
Chris@10 2620 T7o = T6Y + T6Z;
Chris@10 2621 T7p = FNMS(KP290284677, T7o, KP956940335 * T7n);
Chris@10 2622 T7x = FMA(KP290284677, T7n, KP956940335 * T7o);
Chris@10 2623 T6I = FNMS(KP555570233, T6H, KP831469612 * T6G);
Chris@10 2624 T6L = FMA(KP831469612, T6J, KP555570233 * T6K);
Chris@10 2625 T6M = T6I - T6L;
Chris@10 2626 T7s = T6I + T6L;
Chris@10 2627 }
Chris@10 2628 {
Chris@10 2629 E T6Q, T6T, T73, T74;
Chris@10 2630 T6Q = T6O - T6P;
Chris@10 2631 T6T = T6R - T6S;
Chris@10 2632 T6U = FMA(KP471396736, T6Q, KP881921264 * T6T);
Chris@10 2633 T7c = FNMS(KP881921264, T6Q, KP471396736 * T6T);
Chris@10 2634 T73 = T5Z + T62;
Chris@10 2635 T74 = T3m + T3t;
Chris@10 2636 T75 = T73 - T74;
Chris@10 2637 T7r = T73 + T74;
Chris@10 2638 }
Chris@10 2639 {
Chris@10 2640 E T76, T77, T6X, T70;
Chris@10 2641 T76 = FNMS(KP555570233, T6J, KP831469612 * T6K);
Chris@10 2642 T77 = FMA(KP555570233, T6G, KP831469612 * T6H);
Chris@10 2643 T78 = T76 - T77;
Chris@10 2644 T7i = T77 + T76;
Chris@10 2645 T6X = T6V - T6W;
Chris@10 2646 T70 = T6Y - T6Z;
Chris@10 2647 T71 = FNMS(KP881921264, T70, KP471396736 * T6X);
Chris@10 2648 T7d = FMA(KP881921264, T6X, KP471396736 * T70);
Chris@10 2649 }
Chris@10 2650 {
Chris@10 2651 E T6N, T72, T7f, T7g;
Chris@10 2652 T6N = T6F + T6M;
Chris@10 2653 T72 = T6U + T71;
Chris@10 2654 ro[WS(os, 43)] = T6N - T72;
Chris@10 2655 ro[WS(os, 11)] = T6N + T72;
Chris@10 2656 T7f = T75 + T78;
Chris@10 2657 T7g = T7c + T7d;
Chris@10 2658 io[WS(os, 43)] = T7f - T7g;
Chris@10 2659 io[WS(os, 11)] = T7f + T7g;
Chris@10 2660 }
Chris@10 2661 {
Chris@10 2662 E T79, T7a, T7b, T7e;
Chris@10 2663 T79 = T75 - T78;
Chris@10 2664 T7a = T71 - T6U;
Chris@10 2665 io[WS(os, 59)] = T79 - T7a;
Chris@10 2666 io[WS(os, 27)] = T79 + T7a;
Chris@10 2667 T7b = T6F - T6M;
Chris@10 2668 T7e = T7c - T7d;
Chris@10 2669 ro[WS(os, 59)] = T7b - T7e;
Chris@10 2670 ro[WS(os, 27)] = T7b + T7e;
Chris@10 2671 }
Chris@10 2672 {
Chris@10 2673 E T7j, T7q, T7z, T7A;
Chris@10 2674 T7j = T7h + T7i;
Chris@10 2675 T7q = T7m + T7p;
Chris@10 2676 ro[WS(os, 35)] = T7j - T7q;
Chris@10 2677 ro[WS(os, 3)] = T7j + T7q;
Chris@10 2678 T7z = T7r + T7s;
Chris@10 2679 T7A = T7w + T7x;
Chris@10 2680 io[WS(os, 35)] = T7z - T7A;
Chris@10 2681 io[WS(os, 3)] = T7z + T7A;
Chris@10 2682 }
Chris@10 2683 {
Chris@10 2684 E T7t, T7u, T7v, T7y;
Chris@10 2685 T7t = T7r - T7s;
Chris@10 2686 T7u = T7p - T7m;
Chris@10 2687 io[WS(os, 51)] = T7t - T7u;
Chris@10 2688 io[WS(os, 19)] = T7t + T7u;
Chris@10 2689 T7v = T7h - T7i;
Chris@10 2690 T7y = T7w - T7x;
Chris@10 2691 ro[WS(os, 51)] = T7v - T7y;
Chris@10 2692 ro[WS(os, 19)] = T7v + T7y;
Chris@10 2693 }
Chris@10 2694 }
Chris@10 2695 {
Chris@10 2696 E T9j, T9V, Ta0, Taa, Ta3, Tab, T9q, Ta6, T9y, T9Q, T9J, Ta5, T9M, T9W, T9F;
Chris@10 2697 E T9R;
Chris@10 2698 {
Chris@10 2699 E T9h, T9i, T9Y, T9Z;
Chris@10 2700 T9h = T7B + T7C;
Chris@10 2701 T9i = T8J + T8I;
Chris@10 2702 T9j = T9h - T9i;
Chris@10 2703 T9V = T9h + T9i;
Chris@10 2704 T9Y = T9s + T9t;
Chris@10 2705 T9Z = T9v + T9w;
Chris@10 2706 Ta0 = FMA(KP995184726, T9Y, KP098017140 * T9Z);
Chris@10 2707 Taa = FNMS(KP098017140, T9Y, KP995184726 * T9Z);
Chris@10 2708 }
Chris@10 2709 {
Chris@10 2710 E Ta1, Ta2, T9m, T9p;
Chris@10 2711 Ta1 = T9z + T9A;
Chris@10 2712 Ta2 = T9C + T9D;
Chris@10 2713 Ta3 = FNMS(KP098017140, Ta2, KP995184726 * Ta1);
Chris@10 2714 Tab = FMA(KP098017140, Ta1, KP995184726 * Ta2);
Chris@10 2715 T9m = FNMS(KP195090322, T9l, KP980785280 * T9k);
Chris@10 2716 T9p = FMA(KP195090322, T9n, KP980785280 * T9o);
Chris@10 2717 T9q = T9m - T9p;
Chris@10 2718 Ta6 = T9m + T9p;
Chris@10 2719 }
Chris@10 2720 {
Chris@10 2721 E T9u, T9x, T9H, T9I;
Chris@10 2722 T9u = T9s - T9t;
Chris@10 2723 T9x = T9v - T9w;
Chris@10 2724 T9y = FMA(KP634393284, T9u, KP773010453 * T9x);
Chris@10 2725 T9Q = FNMS(KP773010453, T9u, KP634393284 * T9x);
Chris@10 2726 T9H = T8F + T8G;
Chris@10 2727 T9I = T7G + T7J;
Chris@10 2728 T9J = T9H - T9I;
Chris@10 2729 Ta5 = T9H + T9I;
Chris@10 2730 }
Chris@10 2731 {
Chris@10 2732 E T9K, T9L, T9B, T9E;
Chris@10 2733 T9K = FNMS(KP195090322, T9o, KP980785280 * T9n);
Chris@10 2734 T9L = FMA(KP980785280, T9l, KP195090322 * T9k);
Chris@10 2735 T9M = T9K - T9L;
Chris@10 2736 T9W = T9L + T9K;
Chris@10 2737 T9B = T9z - T9A;
Chris@10 2738 T9E = T9C - T9D;
Chris@10 2739 T9F = FNMS(KP773010453, T9E, KP634393284 * T9B);
Chris@10 2740 T9R = FMA(KP773010453, T9B, KP634393284 * T9E);
Chris@10 2741 }
Chris@10 2742 {
Chris@10 2743 E T9r, T9G, T9T, T9U;
Chris@10 2744 T9r = T9j + T9q;
Chris@10 2745 T9G = T9y + T9F;
Chris@10 2746 ro[WS(os, 41)] = T9r - T9G;
Chris@10 2747 ro[WS(os, 9)] = T9r + T9G;
Chris@10 2748 T9T = T9J + T9M;
Chris@10 2749 T9U = T9Q + T9R;
Chris@10 2750 io[WS(os, 41)] = T9T - T9U;
Chris@10 2751 io[WS(os, 9)] = T9T + T9U;
Chris@10 2752 }
Chris@10 2753 {
Chris@10 2754 E T9N, T9O, T9P, T9S;
Chris@10 2755 T9N = T9J - T9M;
Chris@10 2756 T9O = T9F - T9y;
Chris@10 2757 io[WS(os, 57)] = T9N - T9O;
Chris@10 2758 io[WS(os, 25)] = T9N + T9O;
Chris@10 2759 T9P = T9j - T9q;
Chris@10 2760 T9S = T9Q - T9R;
Chris@10 2761 ro[WS(os, 57)] = T9P - T9S;
Chris@10 2762 ro[WS(os, 25)] = T9P + T9S;
Chris@10 2763 }
Chris@10 2764 {
Chris@10 2765 E T9X, Ta4, Tad, Tae;
Chris@10 2766 T9X = T9V + T9W;
Chris@10 2767 Ta4 = Ta0 + Ta3;
Chris@10 2768 ro[WS(os, 33)] = T9X - Ta4;
Chris@10 2769 ro[WS(os, 1)] = T9X + Ta4;
Chris@10 2770 Tad = Ta5 + Ta6;
Chris@10 2771 Tae = Taa + Tab;
Chris@10 2772 io[WS(os, 33)] = Tad - Tae;
Chris@10 2773 io[WS(os, 1)] = Tad + Tae;
Chris@10 2774 }
Chris@10 2775 {
Chris@10 2776 E Ta7, Ta8, Ta9, Tac;
Chris@10 2777 Ta7 = Ta5 - Ta6;
Chris@10 2778 Ta8 = Ta3 - Ta0;
Chris@10 2779 io[WS(os, 49)] = Ta7 - Ta8;
Chris@10 2780 io[WS(os, 17)] = Ta7 + Ta8;
Chris@10 2781 Ta9 = T9V - T9W;
Chris@10 2782 Tac = Taa - Tab;
Chris@10 2783 ro[WS(os, 49)] = Ta9 - Tac;
Chris@10 2784 ro[WS(os, 17)] = Ta9 + Tac;
Chris@10 2785 }
Chris@10 2786 }
Chris@10 2787 {
Chris@10 2788 E T3v, T6j, T6o, T6y, T6r, T6z, T48, T6u, T52, T6e, T67, T6t, T6a, T6k, T5V;
Chris@10 2789 E T6f;
Chris@10 2790 {
Chris@10 2791 E T3f, T3u, T6m, T6n;
Chris@10 2792 T3f = T37 - T3e;
Chris@10 2793 T3u = T3m - T3t;
Chris@10 2794 T3v = T3f - T3u;
Chris@10 2795 T6j = T3f + T3u;
Chris@10 2796 T6m = T4q + T4N;
Chris@10 2797 T6n = T4X + T50;
Chris@10 2798 T6o = FMA(KP634393284, T6m, KP773010453 * T6n);
Chris@10 2799 T6y = FNMS(KP634393284, T6n, KP773010453 * T6m);
Chris@10 2800 }
Chris@10 2801 {
Chris@10 2802 E T6p, T6q, T3O, T47;
Chris@10 2803 T6p = T5j + T5G;
Chris@10 2804 T6q = T5Q + T5T;
Chris@10 2805 T6r = FNMS(KP634393284, T6q, KP773010453 * T6p);
Chris@10 2806 T6z = FMA(KP773010453, T6q, KP634393284 * T6p);
Chris@10 2807 T3O = FNMS(KP980785280, T3N, KP195090322 * T3G);
Chris@10 2808 T47 = FMA(KP195090322, T3Z, KP980785280 * T46);
Chris@10 2809 T48 = T3O - T47;
Chris@10 2810 T6u = T3O + T47;
Chris@10 2811 }
Chris@10 2812 {
Chris@10 2813 E T4O, T51, T63, T66;
Chris@10 2814 T4O = T4q - T4N;
Chris@10 2815 T51 = T4X - T50;
Chris@10 2816 T52 = FMA(KP995184726, T4O, KP098017140 * T51);
Chris@10 2817 T6e = FNMS(KP995184726, T51, KP098017140 * T4O);
Chris@10 2818 T63 = T5Z - T62;
Chris@10 2819 T66 = T64 - T65;
Chris@10 2820 T67 = T63 - T66;
Chris@10 2821 T6t = T63 + T66;
Chris@10 2822 }
Chris@10 2823 {
Chris@10 2824 E T68, T69, T5H, T5U;
Chris@10 2825 T68 = FNMS(KP980785280, T3Z, KP195090322 * T46);
Chris@10 2826 T69 = FMA(KP980785280, T3G, KP195090322 * T3N);
Chris@10 2827 T6a = T68 - T69;
Chris@10 2828 T6k = T69 + T68;
Chris@10 2829 T5H = T5j - T5G;
Chris@10 2830 T5U = T5Q - T5T;
Chris@10 2831 T5V = FNMS(KP995184726, T5U, KP098017140 * T5H);
Chris@10 2832 T6f = FMA(KP098017140, T5U, KP995184726 * T5H);
Chris@10 2833 }
Chris@10 2834 {
Chris@10 2835 E T49, T5W, T6h, T6i;
Chris@10 2836 T49 = T3v + T48;
Chris@10 2837 T5W = T52 + T5V;
Chris@10 2838 ro[WS(os, 47)] = T49 - T5W;
Chris@10 2839 ro[WS(os, 15)] = T49 + T5W;
Chris@10 2840 T6h = T67 + T6a;
Chris@10 2841 T6i = T6e + T6f;
Chris@10 2842 io[WS(os, 47)] = T6h - T6i;
Chris@10 2843 io[WS(os, 15)] = T6h + T6i;
Chris@10 2844 }
Chris@10 2845 {
Chris@10 2846 E T6b, T6c, T6d, T6g;
Chris@10 2847 T6b = T67 - T6a;
Chris@10 2848 T6c = T5V - T52;
Chris@10 2849 io[WS(os, 63)] = T6b - T6c;
Chris@10 2850 io[WS(os, 31)] = T6b + T6c;
Chris@10 2851 T6d = T3v - T48;
Chris@10 2852 T6g = T6e - T6f;
Chris@10 2853 ro[WS(os, 63)] = T6d - T6g;
Chris@10 2854 ro[WS(os, 31)] = T6d + T6g;
Chris@10 2855 }
Chris@10 2856 {
Chris@10 2857 E T6l, T6s, T6B, T6C;
Chris@10 2858 T6l = T6j + T6k;
Chris@10 2859 T6s = T6o + T6r;
Chris@10 2860 ro[WS(os, 39)] = T6l - T6s;
Chris@10 2861 ro[WS(os, 7)] = T6l + T6s;
Chris@10 2862 T6B = T6t + T6u;
Chris@10 2863 T6C = T6y + T6z;
Chris@10 2864 io[WS(os, 39)] = T6B - T6C;
Chris@10 2865 io[WS(os, 7)] = T6B + T6C;
Chris@10 2866 }
Chris@10 2867 {
Chris@10 2868 E T6v, T6w, T6x, T6A;
Chris@10 2869 T6v = T6t - T6u;
Chris@10 2870 T6w = T6r - T6o;
Chris@10 2871 io[WS(os, 55)] = T6v - T6w;
Chris@10 2872 io[WS(os, 23)] = T6v + T6w;
Chris@10 2873 T6x = T6j - T6k;
Chris@10 2874 T6A = T6y - T6z;
Chris@10 2875 ro[WS(os, 55)] = T6x - T6A;
Chris@10 2876 ro[WS(os, 23)] = T6x + T6A;
Chris@10 2877 }
Chris@10 2878 }
Chris@10 2879 {
Chris@10 2880 E T7L, T8X, T92, T9c, T95, T9d, T80, T98, T8k, T8S, T8L, T97, T8O, T8Y, T8D;
Chris@10 2881 E T8T;
Chris@10 2882 {
Chris@10 2883 E T7D, T7K, T90, T91;
Chris@10 2884 T7D = T7B - T7C;
Chris@10 2885 T7K = T7G - T7J;
Chris@10 2886 T7L = T7D - T7K;
Chris@10 2887 T8X = T7D + T7K;
Chris@10 2888 T90 = T84 + T8b;
Chris@10 2889 T91 = T8f + T8i;
Chris@10 2890 T92 = FMA(KP471396736, T90, KP881921264 * T91);
Chris@10 2891 T9c = FNMS(KP471396736, T91, KP881921264 * T90);
Chris@10 2892 }
Chris@10 2893 {
Chris@10 2894 E T93, T94, T7S, T7Z;
Chris@10 2895 T93 = T8n + T8u;
Chris@10 2896 T94 = T8y + T8B;
Chris@10 2897 T95 = FNMS(KP471396736, T94, KP881921264 * T93);
Chris@10 2898 T9d = FMA(KP881921264, T94, KP471396736 * T93);
Chris@10 2899 T7S = FNMS(KP831469612, T7R, KP555570233 * T7O);
Chris@10 2900 T7Z = FMA(KP831469612, T7V, KP555570233 * T7Y);
Chris@10 2901 T80 = T7S - T7Z;
Chris@10 2902 T98 = T7S + T7Z;
Chris@10 2903 }
Chris@10 2904 {
Chris@10 2905 E T8c, T8j, T8H, T8K;
Chris@10 2906 T8c = T84 - T8b;
Chris@10 2907 T8j = T8f - T8i;
Chris@10 2908 T8k = FMA(KP956940335, T8c, KP290284677 * T8j);
Chris@10 2909 T8S = FNMS(KP956940335, T8j, KP290284677 * T8c);
Chris@10 2910 T8H = T8F - T8G;
Chris@10 2911 T8K = T8I - T8J;
Chris@10 2912 T8L = T8H - T8K;
Chris@10 2913 T97 = T8H + T8K;
Chris@10 2914 }
Chris@10 2915 {
Chris@10 2916 E T8M, T8N, T8v, T8C;
Chris@10 2917 T8M = FNMS(KP831469612, T7Y, KP555570233 * T7V);
Chris@10 2918 T8N = FMA(KP555570233, T7R, KP831469612 * T7O);
Chris@10 2919 T8O = T8M - T8N;
Chris@10 2920 T8Y = T8N + T8M;
Chris@10 2921 T8v = T8n - T8u;
Chris@10 2922 T8C = T8y - T8B;
Chris@10 2923 T8D = FNMS(KP956940335, T8C, KP290284677 * T8v);
Chris@10 2924 T8T = FMA(KP290284677, T8C, KP956940335 * T8v);
Chris@10 2925 }
Chris@10 2926 {
Chris@10 2927 E T81, T8E, T8V, T8W;
Chris@10 2928 T81 = T7L + T80;
Chris@10 2929 T8E = T8k + T8D;
Chris@10 2930 ro[WS(os, 45)] = T81 - T8E;
Chris@10 2931 ro[WS(os, 13)] = T81 + T8E;
Chris@10 2932 T8V = T8L + T8O;
Chris@10 2933 T8W = T8S + T8T;
Chris@10 2934 io[WS(os, 45)] = T8V - T8W;
Chris@10 2935 io[WS(os, 13)] = T8V + T8W;
Chris@10 2936 }
Chris@10 2937 {
Chris@10 2938 E T8P, T8Q, T8R, T8U;
Chris@10 2939 T8P = T8L - T8O;
Chris@10 2940 T8Q = T8D - T8k;
Chris@10 2941 io[WS(os, 61)] = T8P - T8Q;
Chris@10 2942 io[WS(os, 29)] = T8P + T8Q;
Chris@10 2943 T8R = T7L - T80;
Chris@10 2944 T8U = T8S - T8T;
Chris@10 2945 ro[WS(os, 61)] = T8R - T8U;
Chris@10 2946 ro[WS(os, 29)] = T8R + T8U;
Chris@10 2947 }
Chris@10 2948 {
Chris@10 2949 E T8Z, T96, T9f, T9g;
Chris@10 2950 T8Z = T8X + T8Y;
Chris@10 2951 T96 = T92 + T95;
Chris@10 2952 ro[WS(os, 37)] = T8Z - T96;
Chris@10 2953 ro[WS(os, 5)] = T8Z + T96;
Chris@10 2954 T9f = T97 + T98;
Chris@10 2955 T9g = T9c + T9d;
Chris@10 2956 io[WS(os, 37)] = T9f - T9g;
Chris@10 2957 io[WS(os, 5)] = T9f + T9g;
Chris@10 2958 }
Chris@10 2959 {
Chris@10 2960 E T99, T9a, T9b, T9e;
Chris@10 2961 T99 = T97 - T98;
Chris@10 2962 T9a = T95 - T92;
Chris@10 2963 io[WS(os, 53)] = T99 - T9a;
Chris@10 2964 io[WS(os, 21)] = T99 + T9a;
Chris@10 2965 T9b = T8X - T8Y;
Chris@10 2966 T9e = T9c - T9d;
Chris@10 2967 ro[WS(os, 53)] = T9b - T9e;
Chris@10 2968 ro[WS(os, 21)] = T9b + T9e;
Chris@10 2969 }
Chris@10 2970 }
Chris@10 2971 }
Chris@10 2972 }
Chris@10 2973 }
Chris@10 2974
Chris@10 2975 static const kdft_desc desc = { 64, "n1_64", {808, 144, 104, 0}, &GENUS, 0, 0, 0, 0 };
Chris@10 2976
Chris@10 2977 void X(codelet_n1_64) (planner *p) {
Chris@10 2978 X(kdft_register) (p, n1_64, &desc);
Chris@10 2979 }
Chris@10 2980
Chris@10 2981 #endif /* HAVE_FMA */