/* * Copyright (c) 2003 Matteo Frigo * Copyright (c) 2003 Massachusetts Institute of Technology * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * */ /* This file was automatically generated --- DO NOT EDIT */ /* Generated on Sat Jul 5 21:30:32 EDT 2003 */ #include "codelet-dft.h" /* Generated by: /homee/stevenj/cvs/fftw3.0.1/genfft/gen_twiddle -compact -variables 4 -twiddle-log3 -n 64 -name t2_64 -include t.h */ /* * This function contains 1154 FP additions, 660 FP multiplications, * (or, 880 additions, 386 multiplications, 274 fused multiply/add), * 382 stack variables, and 256 memory accesses */ /* * Generator Id's : * $Id: t2_64.c,v 1.1 2008/10/17 06:11:09 scuri Exp $ * $Id: t2_64.c,v 1.1 2008/10/17 06:11:09 scuri Exp $ * $Id: t2_64.c,v 1.1 2008/10/17 06:11:09 scuri Exp $ */ #include "t.h" static const R *t2_64(R *ri, R *ii, const R *W, stride ios, int m, int dist) { DK(KP290284677, +0.290284677254462367636192375817395274691476278); DK(KP956940335, +0.956940335732208864935797886980269969482849206); DK(KP881921264, +0.881921264348355029712756863660388349508442621); DK(KP471396736, +0.471396736825997648556387625905254377657460319); DK(KP098017140, +0.098017140329560601994195563888641845861136673); DK(KP995184726, +0.995184726672196886244836953109479921575474869); DK(KP773010453, +0.773010453362736960810906609758469800971041293); DK(KP634393284, +0.634393284163645498215171613225493370675687095); DK(KP555570233, +0.555570233019602224742830813948532874374937191); DK(KP831469612, +0.831469612302545237078788377617905756738560812); DK(KP980785280, +0.980785280403230449126182236134239036973933731); DK(KP195090322, +0.195090322016128267848284868477022240927691618); DK(KP707106781, +0.707106781186547524400844362104849039284835938); DK(KP923879532, +0.923879532511286756128183189396788286822416626); DK(KP382683432, +0.382683432365089771728459984030398866761344562); int i; for (i = m; i > 0; i = i - 1, ri = ri + dist, ii = ii + dist, W = W + 10) { E T1, Ti1, Tp, Tt, TH, TL, T6a, T6c, T4J, T4H, T1g, T91, T7W, T7m, T2O; E T4j, T7P, T4P, T8y, T2w, T8t, T2Z, T8e, T48, T1z, T7s, T1I, T7t, T8p, Ten; E T1Y, T7D, T2t, T7O, T7L, Te6, T3N, T8E, T7A, Te0, T4C, TeA, T8S, T9v, T65; E Tfi, T9J, Taq, T6K, Tf6, Ta2, Ta5, T73, Tfc, Tad, Tag, T3z, T83, T3u, T82; E T81, T84, T15, T9K, T68, T7j, T43, T9w, T4F, T8G, T5l, TeL, T9k, T9n, T6o; E Tf2, T9Q, T9R, T6z, Tf3, T9T, T9W, To, Ts, T4o, T8u, T4U, T92, T5a, TeT; E T8V, T8Y, T5G, TeG, T97, T9e, T27, T7X, T2T, T7E, T7b, Tai, T6T, Ta3, Tf7; E Ta8, T7Q, T2H, T2c, T76, Tah, T7F, T4d, T8z, TG, TK, T69, T6b, T3b, T87; E T5u, T9l, TeM, T9q, T88, T89, T3o, T86, T5P, T9f, TeH, T9a, T34, T8f, T1r; E T7n, T3S, T8F, T4G, T4I; T1 = ri[0]; Ti1 = ii[0]; Tp = ri[WS(ios, 32)]; Tt = ii[WS(ios, 32)]; TH = ri[WS(ios, 16)]; TL = ii[WS(ios, 16)]; T6a = ri[WS(ios, 47)]; T6c = ii[WS(ios, 47)]; T4J = ii[WS(ios, 49)]; T4H = ri[WS(ios, 49)]; { E T12, T14, T1b, T1f, T1q, T1m, T1w, T1y, T1D, T1H, T1S, T1M, T1N, T1W, T2M; E T2g, T2b, T29, T26, T22, T2i, T2E, T2G, T2v, T2u, T2r, T2n, T2N, T3a, T38; E T3l, T3n, T3r, T3t, T33, T31, T2Y, T2W, T4g, T2S, T2Q, T3w, T3y, T3E, T3G; E T3P, T3J, T3L, T3R, T4a, T4c, T47, T46, T42, T40, T4i, T6P, T6R, T6M, T6L; E T6I, T6G, T6W, T6Y, T74, T75, T5I, T78, T7a, T6x, T6v, T6s, T6q, T6h, T6m; E T6k, T6g, T5N, T5L, T5Z, T63, T66, T67, T5H, T54, T4D, T4A, T4y, T4n, T4l; E T4E, T4X, T4Z, T4T, T4R, T4O, T4N, T58, T5s, T5q, T5x, T5z, T5C, T5E, T5n; E T5m, T5j, T5h, T5d, T5e, Ta, Ty, Tf, Tw, T2, Tj, T3, Tc, T1E, T1B; E T1F, T1A, T1R, T3x, T2m, T3K, T61, T1V, T60, T3I, T51, T52, T2V, T56, T5X; E T3v, T55, T2X, T2q, T5W, T4w, T6E, Ta0, T8Q, Tac, T72, Tb, Tg, Th, T3e; E T3f, T3h, T1a, T2x, T2B, TU, TV, TY, T1e, T2y, T2A, TC, TD, T1u, Tk; E Tl, Tm, T39, T3U, T3W, T37, T3T, T3X, TQ, TR, TZ, T3c, T3d, T3i, Tx; E Tz, T1t, TN, TX, T2f, T5V, Tao, T2h, T3D, T4f, T4h, T3F, T3q, T3s; T12 = ri[WS(ios, 48)]; T14 = ii[WS(ios, 48)]; T1b = ri[WS(ios, 8)]; T1f = ii[WS(ios, 8)]; T1q = ii[WS(ios, 40)]; T1m = ri[WS(ios, 40)]; T1w = ri[WS(ios, 56)]; T1y = ii[WS(ios, 56)]; T1D = ri[WS(ios, 24)]; T1H = ii[WS(ios, 24)]; T1S = ri[WS(ios, 36)]; T1M = ri[WS(ios, 4)]; T1N = ii[WS(ios, 4)]; T1W = ii[WS(ios, 36)]; T2M = ri[WS(ios, 2)]; T2g = ri[WS(ios, 60)]; T2b = ii[WS(ios, 52)]; T29 = ri[WS(ios, 52)]; T26 = ii[WS(ios, 20)]; T22 = ri[WS(ios, 20)]; T2i = ii[WS(ios, 60)]; T2E = ri[WS(ios, 44)]; T2G = ii[WS(ios, 44)]; T2v = ii[WS(ios, 12)]; T2u = ri[WS(ios, 12)]; T2r = ii[WS(ios, 28)]; T2n = ri[WS(ios, 28)]; T2N = ii[WS(ios, 2)]; T3a = ii[WS(ios, 10)]; T38 = ri[WS(ios, 10)]; T3l = ri[WS(ios, 42)]; T3n = ii[WS(ios, 42)]; T3r = ri[WS(ios, 58)]; T3t = ii[WS(ios, 58)]; T33 = ii[WS(ios, 50)]; T31 = ri[WS(ios, 50)]; T2Y = ii[WS(ios, 18)]; T2W = ri[WS(ios, 18)]; T4g = ri[WS(ios, 54)]; T2S = ii[WS(ios, 34)]; T2Q = ri[WS(ios, 34)]; T3w = ri[WS(ios, 26)]; T3y = ii[WS(ios, 26)]; T3E = ri[WS(ios, 62)]; T3G = ii[WS(ios, 62)]; T3P = ri[WS(ios, 14)]; T3J = ri[WS(ios, 30)]; T3L = ii[WS(ios, 30)]; T3R = ii[WS(ios, 14)]; T4a = ri[WS(ios, 38)]; T4c = ii[WS(ios, 38)]; T47 = ii[WS(ios, 6)]; T46 = ri[WS(ios, 6)]; T42 = ii[WS(ios, 46)]; T40 = ri[WS(ios, 46)]; T4i = ii[WS(ios, 54)]; T6P = ri[WS(ios, 51)]; T6R = ii[WS(ios, 51)]; T6M = ii[WS(ios, 19)]; T6L = ri[WS(ios, 19)]; T6I = ii[WS(ios, 35)]; T6G = ri[WS(ios, 35)]; T6W = ri[WS(ios, 59)]; T6Y = ii[WS(ios, 59)]; T74 = ri[WS(ios, 11)]; T75 = ii[WS(ios, 11)]; T5I = ii[WS(ios, 13)]; T78 = ri[WS(ios, 43)]; T7a = ii[WS(ios, 43)]; T6x = ii[WS(ios, 23)]; T6v = ri[WS(ios, 23)]; T6s = ii[WS(ios, 55)]; T6q = ri[WS(ios, 55)]; T6h = ii[WS(ios, 7)]; T6m = ii[WS(ios, 39)]; T6k = ri[WS(ios, 39)]; T6g = ri[WS(ios, 7)]; T5N = ii[WS(ios, 45)]; T5L = ri[WS(ios, 45)]; T5Z = ri[WS(ios, 31)]; T63 = ii[WS(ios, 31)]; T66 = ri[WS(ios, 15)]; T67 = ii[WS(ios, 15)]; T5H = ri[WS(ios, 13)]; T54 = ri[WS(ios, 25)]; T4D = ri[WS(ios, 17)]; T4A = ii[WS(ios, 33)]; T4y = ri[WS(ios, 33)]; T4n = ii[WS(ios, 22)]; T4l = ri[WS(ios, 22)]; T4E = ii[WS(ios, 17)]; T4X = ri[WS(ios, 57)]; T4Z = ii[WS(ios, 57)]; T4T = ii[WS(ios, 41)]; T4R = ri[WS(ios, 41)]; T4O = ii[WS(ios, 9)]; T4N = ri[WS(ios, 9)]; T58 = ii[WS(ios, 25)]; T5s = ii[WS(ios, 53)]; T5q = ri[WS(ios, 53)]; T5x = ri[WS(ios, 61)]; T5z = ii[WS(ios, 61)]; T5C = ri[WS(ios, 29)]; T5E = ii[WS(ios, 29)]; T5n = ii[WS(ios, 21)]; T5m = ri[WS(ios, 21)]; T5j = ii[WS(ios, 37)]; T5h = ri[WS(ios, 37)]; T5d = ri[WS(ios, 5)]; T5e = ii[WS(ios, 5)]; { E T4u, T4v, T5T, T5U, T6C, T6D, T70, T71, T4, T7, T5, T8, TO, TP, T1U; E T2p, T18, T2k, T2l, T2o, TT, TS, T19, T1c, T1T, T1P, T1Q, T1d; T4u = ri[WS(ios, 1)]; T4v = ii[WS(ios, 1)]; T5T = ri[WS(ios, 63)]; T5U = ii[WS(ios, 63)]; T6C = ri[WS(ios, 3)]; T6D = ii[WS(ios, 3)]; T70 = ri[WS(ios, 27)]; T71 = ii[WS(ios, 27)]; { E T6, Te, T9, Td; T4 = W[2]; T7 = W[3]; T5 = W[0]; T8 = W[1]; T6 = T4 * T5; Te = T7 * T5; T9 = T7 * T8; Td = T4 * T8; Ta = T6 - T9; Ty = Td - Te; Tf = Td + Te; Tw = T6 + T9; T2 = W[6]; Tj = W[7]; T3 = W[4]; Tc = W[5]; TO = T3 * T4; TP = Tc * T7; T1U = Tj * T3; T2p = Tj * T5; T18 = T3 * T5; T2k = T2 * T5; T2l = Tj * T8; T2o = T2 * T8; TT = Tc * T4; TS = T3 * T7; T19 = Tc * T8; T1c = T3 * T8; T1E = T2 * T7; T1T = T2 * Tc; T1B = Tj * T7; T1F = Tj * T4; T1P = T2 * T3; T1Q = Tj * Tc; T1A = T2 * T4; T1d = Tc * T5; } T1R = T1P - T1Q; T3x = T2o - T2p; T2m = T2k - T2l; T3K = T1E + T1F; T61 = Tj * Ta; T1V = T1T + T1U; T60 = T2 * Tf; T3I = T1A - T1B; T51 = T2 * Tw; T52 = Tj * Ty; T2V = T1P + T1Q; T56 = Tj * Tw; T5X = Tj * Tf; T3v = T2k + T2l; T55 = T2 * Ty; T2X = T1T - T1U; T2q = T2o + T2p; T5W = T2 * Ta; T4w = FMA(T5, T4u, T8 * T4v); T6E = FMA(T4, T6C, T7 * T6D); Ta0 = FNMS(T7, T6C, T4 * T6D); T8Q = FNMS(T8, T4u, T5 * T4v); Tac = FNMS(Tj, T70, T2 * T71); T72 = FMA(T2, T70, Tj * T71); Tb = T3 * Ta; Tg = Tc * Tf; Th = Tb + Tg; T3e = TS - TT; T3f = Tj * T3e; T3h = T2 * T3e; T1a = T18 + T19; T2x = T2 * T1a; T2B = Tj * T1a; TU = TS + TT; TV = Tj * TU; TY = T2 * TU; T1e = T1c - T1d; T2y = Tj * T1e; T2A = T2 * T1e; TC = T3 * Ty; TD = Tc * Tw; T1u = TC + TD; Tk = T3 * Tf; Tl = Tc * Ta; Tm = Tk - Tl; T39 = T1c + T1d; T3U = Tj * T39; T3W = T2 * T39; T37 = T18 - T19; T3T = T2 * T37; T3X = Tj * T37; TQ = TO - TP; TR = T2 * TQ; TZ = Tj * TQ; T3c = TO + TP; T3d = T2 * T3c; T3i = Tj * T3c; Tx = T3 * Tw; Tz = Tc * Ty; T1t = Tx - Tz; TN = W[8]; TX = W[9]; T2f = FMA(TN, T4, TX * T7); T5V = FMA(TN, T5T, TX * T5U); Tao = FNMS(TX, T5T, TN * T5U); T2h = FNMS(TX, T4, TN * T7); T3D = FMA(TN, T5, TX * T8); T4f = FMA(TN, T3, TX * Tc); T4h = FNMS(TX, T3, TN * Tc); T3F = FNMS(TX, T5, TN * T8); } T1g = FNMS(T1e, T1f, T1a * T1b); T91 = FNMS(Tc, T4N, T3 * T4O); T7W = FMA(Ty, T2M, Tw * T2N); T7m = FMA(T1e, T1b, T1a * T1f); T2O = FNMS(Ty, T2N, Tw * T2M); T4j = FNMS(T4h, T4i, T4f * T4g); T7P = FNMS(TU, T2u, TQ * T2v); T4P = FMA(T3, T4N, Tc * T4O); T8y = FMA(T3e, T46, T3c * T47); T2w = FMA(TQ, T2u, TU * T2v); { E T1v, T1x, T1O, T1X; T8t = FMA(T4h, T4g, T4f * T4i); T2Z = FNMS(T2X, T2Y, T2V * T2W); T8e = FMA(T2X, T2W, T2V * T2Y); T48 = FNMS(T3e, T47, T3c * T46); T1v = FMA(TN, T1t, TX * T1u); T1x = FNMS(TX, T1t, TN * T1u); T1z = FNMS(T1x, T1y, T1v * T1w); T7s = FMA(T1x, T1w, T1v * T1y); { E T1C, T1G, T8n, T8o; T1C = T1A + T1B; T1G = T1E - T1F; T1I = FNMS(T1G, T1H, T1C * T1D); T7t = FMA(T1G, T1D, T1C * T1H); T8n = FMA(T3F, T3E, T3D * T3G); T8o = FNMS(T3K, T3J, T3I * T3L); T8p = T8n - T8o; Ten = T8n + T8o; } T1O = FMA(Ta, T1M, Tf * T1N); T1X = FMA(T1R, T1S, T1V * T1W); T1Y = T1O + T1X; T7D = T1O - T1X; { E T2j, T2s, T7J, T7K; T2j = FNMS(T2h, T2i, T2f * T2g); T2s = FMA(T2m, T2n, T2q * T2r); T2t = T2j + T2s; T7O = T2j - T2s; T7J = FMA(T2h, T2g, T2f * T2i); T7K = FNMS(T2q, T2n, T2m * T2r); T7L = T7J - T7K; Te6 = T7J + T7K; } } { E T3H, T3M, T7y, T7z; T3H = FNMS(T3F, T3G, T3D * T3E); T3M = FMA(T3I, T3J, T3K * T3L); T3N = T3H + T3M; T8E = T3H - T3M; T7y = FNMS(Tf, T1M, Ta * T1N); T7z = FNMS(T1V, T1S, T1R * T1W); T7A = T7y - T7z; Te0 = T7y + T7z; } { E T4B, T8R, T4x, T4z; T4x = T3d + T3f; T4z = T3h - T3i; T4B = FNMS(T4z, T4A, T4x * T4y); T8R = FMA(T4z, T4y, T4x * T4A); T4C = T4w + T4B; TeA = T8Q + T8R; T8S = T8Q - T8R; T9v = T4w - T4B; } { E T64, Tap, T5Y, T62; T5Y = T5W - T5X; T62 = T60 + T61; T64 = FMA(T5Y, T5Z, T62 * T63); Tap = FNMS(T62, T5Z, T5Y * T63); T65 = T5V + T64; Tfi = Tao + Tap; T9J = T5V - T64; Taq = Tao - Tap; } { E T6J, Ta1, T6F, T6H; T6F = T2x + T2y; T6H = T2A - T2B; T6J = FNMS(T6H, T6I, T6F * T6G); Ta1 = FMA(T6H, T6G, T6F * T6I); T6K = T6E + T6J; Tf6 = Ta0 + Ta1; Ta2 = Ta0 - Ta1; Ta5 = T6E - T6J; } { E T6Z, Tab, T6V, T6X; T6V = FMA(TN, Ta, TX * Tf); T6X = FNMS(TX, Ta, TN * Tf); T6Z = FNMS(T6X, T6Y, T6V * T6W); Tab = FMA(T6X, T6W, T6V * T6Y); T73 = T6Z + T72; Tfc = Tab + Tac; Tad = Tab - Tac; Tag = T6Z - T72; } T3z = FNMS(T3x, T3y, T3v * T3w); T83 = FMA(T3x, T3w, T3v * T3y); T3q = FNMS(TX, Tm, TN * Th); T3s = FMA(TN, Tm, TX * Th); T3u = FMA(T3q, T3r, T3s * T3t); T82 = FNMS(T3s, T3r, T3q * T3t); T81 = T3u - T3z; T84 = T82 - T83; { E TW, T10, T11, T13; TW = TR + TV; T10 = TY - TZ; T11 = FNMS(TX, T10, TN * TW); T13 = FMA(TN, T10, TX * TW); T15 = FMA(T11, T12, T13 * T14); T9K = FMA(T10, T66, TW * T67); T68 = FNMS(T10, T67, TW * T66); T7j = FNMS(T13, T12, T11 * T14); } { E T3V, T3Y, T3Z, T41; T3V = T3T + T3U; T3Y = T3W - T3X; T3Z = FNMS(TX, T3Y, TN * T3V); T41 = FMA(TN, T3Y, TX * T3V); T43 = FMA(T3Z, T40, T41 * T42); T9w = FMA(T3Y, T4D, T3V * T4E); T4F = FNMS(T3Y, T4E, T3V * T4D); T8G = FNMS(T41, T40, T3Z * T42); } { E T5f, T9i, T5k, T9j, T5g, T5i; T5f = FNMS(Tm, T5e, Th * T5d); T9i = FMA(Tm, T5d, Th * T5e); T5g = T3T - T3U; T5i = T3W + T3X; T5k = FMA(T5g, T5h, T5i * T5j); T9j = FNMS(T5i, T5h, T5g * T5j); T5l = T5f + T5k; TeL = T9i + T9j; T9k = T9i - T9j; T9n = T5f - T5k; } { E T6i, T9O, T6n, T9P, T6j, T6l; T6i = FMA(T1t, T6g, T1u * T6h); T9O = FNMS(T1u, T6g, T1t * T6h); T6j = TR - TV; T6l = TY + TZ; T6n = FMA(T6j, T6k, T6l * T6m); T9P = FNMS(T6l, T6k, T6j * T6m); T6o = T6i + T6n; Tf2 = T9O + T9P; T9Q = T9O - T9P; T9R = T6i - T6n; } { E T6t, T9U, T6y, T9V; { E T6p, T6r, T6u, T6w; T6p = FNMS(TX, T1e, TN * T1a); T6r = FMA(TN, T1e, TX * T1a); T6t = FMA(T6p, T6q, T6r * T6s); T9U = FNMS(T6r, T6q, T6p * T6s); T6u = T5W + T5X; T6w = T60 - T61; T6y = FNMS(T6w, T6x, T6u * T6v); T9V = FMA(T6w, T6v, T6u * T6x); } T6z = T6t + T6y; Tf3 = T9U + T9V; T9T = T6t - T6y; T9W = T9U - T9V; } { E Ti, Tn, T4k, Tq, Tr, T4m, T4Q, T4S; Ti = T2 * Th; Tn = Tj * Tm; T4k = Ti - Tn; Tq = T2 * Tm; Tr = Tj * Th; T4m = Tq + Tr; To = Ti + Tn; Ts = Tq - Tr; T4o = FMA(T4k, T4l, T4m * T4n); T8u = FNMS(T4m, T4l, T4k * T4n); T4Q = FMA(TN, T4k, TX * T4m); T4S = FNMS(TX, T4k, TN * T4m); T4U = FNMS(T4S, T4T, T4Q * T4R); T92 = FMA(T4S, T4R, T4Q * T4T); } { E T50, T8W, T59, T8X; { E T4W, T4Y, T53, T57; T4W = FNMS(TX, T3e, TN * T3c); T4Y = FMA(TN, T3e, TX * T3c); T50 = FMA(T4W, T4X, T4Y * T4Z); T8W = FNMS(T4Y, T4X, T4W * T4Z); T53 = T51 - T52; T57 = T55 + T56; T59 = FMA(T53, T54, T57 * T58); T8X = FNMS(T57, T54, T53 * T58); } T5a = T50 + T59; TeT = T8W + T8X; T8V = T50 - T59; T8Y = T8W - T8X; } { E T5A, T9c, T5F, T9d; { E T5w, T5y, T5B, T5D; T5w = FNMS(TX, Ty, TN * Tw); T5y = FMA(TN, Ty, TX * Tw); T5A = FMA(T5w, T5x, T5y * T5z); T9c = FNMS(T5y, T5x, T5w * T5z); T5B = T51 + T52; T5D = T55 - T56; T5F = FNMS(T5D, T5E, T5B * T5C); T9d = FMA(T5D, T5C, T5B * T5E); } T5G = T5A + T5F; TeG = T9c + T9d; T97 = T5A - T5F; T9e = T9c - T9d; } { E T21, T2P, T25, T2R, T77, T79; { E T1Z, T20, T23, T24; T1Z = T2 * T1t; T20 = Tj * T1u; T21 = T1Z + T20; T2P = T1Z - T20; T23 = T2 * T1u; T24 = Tj * T1t; T25 = T23 - T24; T2R = T23 + T24; } T27 = FNMS(T25, T26, T21 * T22); T7X = FNMS(T2R, T2Q, T2P * T2S); T2T = FMA(T2P, T2Q, T2R * T2S); T7E = FMA(T25, T22, T21 * T26); T77 = FNMS(TX, T25, TN * T21); T79 = FMA(TN, T25, TX * T21); T7b = FMA(T77, T78, T79 * T7a); Tai = FNMS(T79, T78, T77 * T7a); } { E T6S, Ta7, T2D, Ta6, T2F, T6N; { E T6O, T6Q, T2z, T2C; T6O = FMA(TN, TQ, TX * TU); T6Q = FNMS(TX, TQ, TN * TU); T6S = FNMS(T6Q, T6R, T6O * T6P); Ta7 = FMA(T6Q, T6P, T6O * T6R); T2z = T2x - T2y; T2C = T2A + T2B; T2D = FMA(TN, T2z, TX * T2C); Ta6 = FNMS(T2C, T6L, T2z * T6M); T2F = FNMS(TX, T2z, TN * T2C); T6N = FMA(T2z, T6L, T2C * T6M); } T6T = T6N + T6S; Ta3 = T6N - T6S; Tf7 = Ta6 + Ta7; Ta8 = Ta6 - Ta7; T7Q = FMA(T2F, T2E, T2D * T2G); T2H = FNMS(T2F, T2G, T2D * T2E); } { E TA, TE, TB, TF, TJ, TI, T2a, T28, T49, T4b; TA = Tx + Tz; TE = TC - TD; TB = T2 * TA; TF = Tj * TE; TJ = Tj * TA; TI = T2 * TE; T2a = FMA(TN, TE, TX * TA); T28 = FNMS(TX, TE, TN * TA); T2c = FMA(T28, T29, T2a * T2b); T76 = FNMS(TE, T75, TA * T74); Tah = FMA(TE, T74, TA * T75); T7F = FNMS(T2a, T29, T28 * T2b); T49 = TB + TF; T4b = TI - TJ; T4d = FNMS(T4b, T4c, T49 * T4a); T8z = FMA(T4b, T4a, T49 * T4c); TG = TB - TF; TK = TI + TJ; T69 = FMA(TN, TG, TX * TK); T6b = FNMS(TX, TG, TN * TK); } { E T5t, T9p, T3k, T9o, T3m, T5o; T3b = FMA(T37, T38, T39 * T3a); T87 = FNMS(T39, T38, T37 * T3a); { E T5p, T5r, T3g, T3j; T5p = FMA(TN, T37, TX * T39); T5r = FNMS(TX, T37, TN * T39); T5t = FNMS(T5r, T5s, T5p * T5q); T9p = FMA(T5r, T5q, T5p * T5s); T3g = T3d - T3f; T3j = T3h + T3i; T3k = FMA(TN, T3g, TX * T3j); T9o = FNMS(T3j, T5m, T3g * T5n); T3m = FNMS(TX, T3g, TN * T3j); T5o = FMA(T3g, T5m, T3j * T5n); } T5u = T5o + T5t; T9l = T5o - T5t; TeM = T9o + T9p; T9q = T9o - T9p; T88 = FMA(T3m, T3l, T3k * T3n); T89 = T87 - T88; T3o = FNMS(T3m, T3n, T3k * T3l); T86 = T3b - T3o; } { E T5O, T99, T1i, T1n, T1o, T1k, T30, T5J, T98, T32; { E T5K, T5M, T1h, T1j; T5K = FNMS(TX, T2X, TN * T2V); T5M = FMA(TN, T2X, TX * T2V); T5O = FMA(T5K, T5L, T5M * T5N); T99 = FNMS(T5M, T5L, T5K * T5N); T1h = Tb - Tg; T1j = Tk + Tl; T1i = T2 * T1h; T1n = T2 * T1j; T1o = Tj * T1h; T1k = Tj * T1j; T30 = FMA(TN, T1h, TX * T1j); T5J = FMA(T1h, T5H, T1j * T5I); T98 = FNMS(T1j, T5H, T1h * T5I); T32 = FNMS(TX, T1h, TN * T1j); } T5P = T5J + T5O; T9f = T5J - T5O; TeH = T98 + T99; T9a = T98 - T99; T34 = FNMS(T32, T33, T30 * T31); T8f = FMA(T32, T31, T30 * T33); { E T1l, T1p, T3O, T3Q; T1l = T1i - T1k; T1p = T1n + T1o; T1r = FMA(T1l, T1m, T1p * T1q); T7n = FNMS(T1p, T1m, T1l * T1q); T3O = T1i + T1k; T3Q = T1n - T1o; T3S = FNMS(T3Q, T3R, T3O * T3P); T8F = FMA(T3Q, T3P, T3O * T3R); T4G = FNMS(TX, T3Q, TN * T3O); T4I = FMA(TN, T3Q, TX * T3O); } } } { E T5R, TgT, TgY, ThE, T9t, Tbe, T9G, Tbb, Tcl, Tdq, Tcs, Tdn, TeP, Tg4, TeY; E Tg1, T7e, Th4, ThJ, Th9, Tfp, Tg8, Tfg, Tgb, T2K, TgC, Tih, ThX, TfQ, TiL; E Tea, Tiv, Tam, Tbl, TcL, Tdu, Taz, Tbi, TcE, Tdx, T7U, Tjv, Tdc, Tjh, Tb0; E TjL, TbU, TiZ, T8D, Tb5, Tc8, Tdi, T8M, Tb6, Tc5, Tdh, T4r, Thz, Tex, Tfz; E TfX, Tgl, TgN, Thj, T8m, TaI, Tdg, TdG, Tb4, Tbu, Tc2, TcU, T3C, Thy, Tem; E Tfy, TfU, Tgk, TgI, Thi, T6B, Th1, Tfm, Tga, Th8, ThI, T9Z, Tbh, Taw, Tbk; E TcI, Tdw, Tf5, Tg7, Tcx, Tdt, T5c, TgV, TeV, Tg0, TgS, ThD, TeE, Tg3, T96; E Tbd, Tce, Tdp, Tcp, Tdm, T9D, Tba, T1L, Tgz, Ti4, Tii, Tiy, TiM, TdZ, TfN; E T7x, TaX, Tj4, Tji, Tjy, TjM, TbN, Td9; { E T5v, T5Q, TgW, TgX; T5v = T5l + T5u; T5Q = T5G + T5P; T5R = T5v + T5Q; TgT = T5Q - T5v; TgW = TeL + TeM; TgX = TeG + TeH; TgY = TgW - TgX; ThE = TgW + TgX; } { E T9h, T9F, T9s, T9E; { E T9b, T9g, T9m, T9r; T9b = T97 - T9a; T9g = T9e + T9f; T9h = FNMS(KP923879532, T9g, KP382683432 * T9b); T9F = FMA(KP382683432, T9g, KP923879532 * T9b); T9m = T9k + T9l; T9r = T9n - T9q; T9s = FMA(KP923879532, T9m, KP382683432 * T9r); T9E = FNMS(KP923879532, T9r, KP382683432 * T9m); } T9t = T9h - T9s; Tbe = T9E + T9F; T9G = T9E - T9F; Tbb = T9s + T9h; } { E Tch, Tcr, Tck, Tcq; { E Tcf, Tcg, Tci, Tcj; Tcf = T97 + T9a; Tcg = T9e - T9f; Tch = FNMS(KP382683432, Tcg, KP923879532 * Tcf); Tcr = FMA(KP923879532, Tcg, KP382683432 * Tcf); Tci = T9k - T9l; Tcj = T9n + T9q; Tck = FMA(KP382683432, Tci, KP923879532 * Tcj); Tcq = FNMS(KP382683432, Tcj, KP923879532 * Tci); } Tcl = Tch - Tck; Tdq = Tcq + Tcr; Tcs = Tcq - Tcr; Tdn = Tck + Tch; } { E TeJ, TeX, TeO, TeW; { E TeF, TeI, TeK, TeN; TeF = T5G - T5P; TeI = TeG - TeH; TeJ = TeF - TeI; TeX = TeF + TeI; TeK = T5l - T5u; TeN = TeL - TeM; TeO = TeK + TeN; TeW = TeN - TeK; } TeP = KP707106781 * (TeJ - TeO); Tg4 = KP707106781 * (TeW + TeX); TeY = KP707106781 * (TeW - TeX); Tg1 = KP707106781 * (TeO + TeJ); } { E T6U, Th2, T7d, Tfb, Tfe, Th3, Tfa, Tfo, Tfn, Tff; T6U = T6K + T6T; Th2 = Tf6 + Tf7; { E T7c, Tfd, Tf8, Tf9; T7c = T76 + T7b; T7d = T73 + T7c; Tfb = T73 - T7c; Tfd = Tah + Tai; Tfe = Tfc - Tfd; Th3 = Tfc + Tfd; Tf8 = Tf6 - Tf7; Tf9 = T6K - T6T; Tfa = Tf8 - Tf9; Tfo = Tf9 + Tf8; } T7e = T6U + T7d; Th4 = Th2 - Th3; ThJ = Th2 + Th3; Th9 = T7d - T6U; Tfn = Tfb - Tfe; Tfp = KP707106781 * (Tfn - Tfo); Tg8 = KP707106781 * (Tfo + Tfn); Tff = Tfb + Tfe; Tfg = KP707106781 * (Tfa - Tff); Tgb = KP707106781 * (Tfa + Tff); } { E T2e, Te3, Te8, TgB, T2J, Te5, Te2, TgA; { E T2d, Te7, T2I, Te1; T2d = T27 + T2c; T2e = T1Y + T2d; Te3 = T1Y - T2d; Te7 = T7P + T7Q; Te8 = Te6 - Te7; TgB = Te6 + Te7; T2I = T2w + T2H; T2J = T2t + T2I; Te5 = T2t - T2I; Te1 = T7E + T7F; Te2 = Te0 - Te1; TgA = Te0 + Te1; } T2K = T2e + T2J; TgC = TgA - TgB; Tih = T2J - T2e; ThX = TgA + TgB; { E TfO, TfP, Te4, Te9; TfO = Te3 + Te2; TfP = Te5 - Te8; TfQ = KP707106781 * (TfO + TfP); TiL = KP707106781 * (TfP - TfO); Te4 = Te2 - Te3; Te9 = Te5 + Te8; Tea = KP707106781 * (Te4 - Te9); Tiv = KP707106781 * (Te4 + Te9); } } { E Taf, TcB, Tak, TcC, Taa, Tay, TcA, TcK, Tae, Taj; Tae = T76 - T7b; Taf = Tad + Tae; TcB = Tad - Tae; Taj = Tah - Tai; Tak = Tag - Taj; TcC = Tag + Taj; { E Ta4, Ta9, Tcy, Tcz; Ta4 = Ta2 + Ta3; Ta9 = Ta5 - Ta8; Taa = FNMS(KP923879532, Ta9, KP382683432 * Ta4); Tay = FMA(KP923879532, Ta4, KP382683432 * Ta9); Tcy = Ta2 - Ta3; Tcz = Ta5 + Ta8; TcA = FNMS(KP382683432, Tcz, KP923879532 * Tcy); TcK = FMA(KP382683432, Tcy, KP923879532 * Tcz); } { E Tal, TcJ, Tax, TcD; Tal = FMA(KP382683432, Taf, KP923879532 * Tak); Tam = Taa - Tal; Tbl = Taa + Tal; TcJ = FNMS(KP382683432, TcB, KP923879532 * TcC); TcL = TcJ - TcK; Tdu = TcK + TcJ; Tax = FNMS(KP923879532, Taf, KP382683432 * Tak); Taz = Tax - Tay; Tbi = Tay + Tax; TcD = FMA(KP923879532, TcB, KP382683432 * TcC); TcE = TcA - TcD; Tdx = TcA + TcD; } } { E T7C, TbO, T7S, TbS, T7H, TbP, T7N, TbR; { E T7B, T7R, T7G, T7M; T7B = T27 - T2c; T7C = T7A + T7B; TbO = T7A - T7B; T7R = T7P - T7Q; T7S = T7O - T7R; TbS = T7O + T7R; T7G = T7E - T7F; T7H = T7D - T7G; TbP = T7D + T7G; T7M = T2w - T2H; T7N = T7L + T7M; TbR = T7L - T7M; } { E T7I, T7T, Tda, Tdb; T7I = FNMS(KP923879532, T7H, KP382683432 * T7C); T7T = FMA(KP382683432, T7N, KP923879532 * T7S); T7U = T7I - T7T; Tjv = T7I + T7T; Tda = FMA(KP382683432, TbO, KP923879532 * TbP); Tdb = FNMS(KP382683432, TbR, KP923879532 * TbS); Tdc = Tda + Tdb; Tjh = Tdb - Tda; } { E TaY, TaZ, TbQ, TbT; TaY = FMA(KP923879532, T7C, KP382683432 * T7H); TaZ = FNMS(KP923879532, T7N, KP382683432 * T7S); Tb0 = TaY + TaZ; TjL = TaZ - TaY; TbQ = FNMS(KP382683432, TbP, KP923879532 * TbO); TbT = FMA(KP923879532, TbR, KP382683432 * TbS); TbU = TbQ - TbT; TiZ = TbQ + TbT; } } { E T8r, Tc6, T8I, Tc3, T8w, T8K, T8B, T8J, T8q, T8H; T8q = T3S - T43; T8r = T8p + T8q; Tc6 = T8p - T8q; T8H = T8F - T8G; T8I = T8E - T8H; Tc3 = T8E + T8H; { E T8s, T8v, T8x, T8A; T8s = T4j - T4o; T8v = T8t - T8u; T8w = T8s - T8v; T8K = T8s + T8v; T8x = T48 - T4d; T8A = T8y - T8z; T8B = T8x + T8A; T8J = T8A - T8x; } { E T8C, Tc7, T8L, Tc4; T8C = KP707106781 * (T8w - T8B); T8D = T8r - T8C; Tb5 = T8r + T8C; Tc7 = KP707106781 * (T8J + T8K); Tc8 = Tc6 - Tc7; Tdi = Tc6 + Tc7; T8L = KP707106781 * (T8J - T8K); T8M = T8I - T8L; Tb6 = T8I + T8L; Tc4 = KP707106781 * (T8B + T8w); Tc5 = Tc3 - Tc4; Tdh = Tc3 + Tc4; } } { E T45, Tes, Tep, TgK, T4q, Teq, Tev, TgL, T44, Teo, Ter, Tew; T44 = T3S + T43; T45 = T3N + T44; Tes = T3N - T44; Teo = T8F + T8G; Tep = Ten - Teo; TgK = Ten + Teo; { E T4e, T4p, Tet, Teu; T4e = T48 + T4d; T4p = T4j + T4o; T4q = T4e + T4p; Teq = T4p - T4e; Tet = T8y + T8z; Teu = T8t + T8u; Tev = Tet - Teu; TgL = Tet + Teu; } T4r = T45 + T4q; Thz = TgK + TgL; Ter = Tep - Teq; Tew = Tes - Tev; Tex = FMA(KP382683432, Ter, KP923879532 * Tew); Tfz = FNMS(KP923879532, Ter, KP382683432 * Tew); { E TfV, TfW, TgJ, TgM; TfV = Tep + Teq; TfW = Tes + Tev; TfX = FMA(KP923879532, TfV, KP382683432 * TfW); Tgl = FNMS(KP382683432, TfV, KP923879532 * TfW); TgJ = T45 - T4q; TgM = TgK - TgL; TgN = TgJ + TgM; Thj = TgJ - TgM; } } { E T80, TbW, T8k, TbX, T8b, Tc0, T8h, TbZ; { E T7Y, T7Z, T8i, T8j; T7Y = T7W - T7X; T7Z = T2Z - T34; T80 = T7Y + T7Z; TbW = T7Y - T7Z; T8i = T89 - T86; T8j = T81 + T84; T8k = KP707106781 * (T8i - T8j); TbX = KP707106781 * (T8i + T8j); } { E T85, T8a, T8d, T8g; T85 = T81 - T84; T8a = T86 + T89; T8b = KP707106781 * (T85 - T8a); Tc0 = KP707106781 * (T8a + T85); T8d = T2O - T2T; T8g = T8e - T8f; T8h = T8d - T8g; TbZ = T8d + T8g; } { E T8c, T8l, Tde, Tdf; T8c = T80 - T8b; T8l = T8h - T8k; T8m = FNMS(KP980785280, T8l, KP195090322 * T8c); TaI = FMA(KP980785280, T8c, KP195090322 * T8l); Tde = TbW + TbX; Tdf = TbZ + Tc0; Tdg = FNMS(KP195090322, Tdf, KP980785280 * Tde); TdG = FMA(KP980785280, Tdf, KP195090322 * Tde); } { E Tb2, Tb3, TbY, Tc1; Tb2 = T80 + T8b; Tb3 = T8h + T8k; Tb4 = FNMS(KP555570233, Tb3, KP831469612 * Tb2); Tbu = FMA(KP555570233, Tb2, KP831469612 * Tb3); TbY = TbW - TbX; Tc1 = TbZ - Tc0; Tc2 = FNMS(KP831469612, Tc1, KP555570233 * TbY); TcU = FMA(KP555570233, Tc1, KP831469612 * TbY); } } { E T36, Teh, Tek, TgF, T3B, Tef, Tee, TgE, Teg, Tel; { E T2U, T35, Tei, Tej; T2U = T2O + T2T; T35 = T2Z + T34; T36 = T2U + T35; Teh = T2U - T35; Tei = T87 + T88; Tej = T82 + T83; Tek = Tei - Tej; TgF = Tei + Tej; } { E T3p, T3A, Tec, Ted; T3p = T3b + T3o; T3A = T3u + T3z; T3B = T3p + T3A; Tef = T3A - T3p; Tec = T7W + T7X; Ted = T8e + T8f; Tee = Tec - Ted; TgE = Tec + Ted; } T3C = T36 + T3B; Thy = TgE + TgF; Teg = Tee - Tef; Tel = Teh - Tek; Tem = FNMS(KP923879532, Tel, KP382683432 * Teg); Tfy = FMA(KP923879532, Teg, KP382683432 * Tel); { E TfS, TfT, TgG, TgH; TfS = Tee + Tef; TfT = Teh + Tek; TfU = FNMS(KP382683432, TfT, KP923879532 * TfS); Tgk = FMA(KP382683432, TfS, KP923879532 * TfT); TgG = TgE - TgF; TgH = T36 - T3B; TgI = TgG - TgH; Thi = TgH + TgG; } } { E T6A, Tfl, Th7, Tf4, T6e, Tar, T9Y, TcH, Tav, Tcw, T9M, Tfj; T6A = T6o + T6z; Tfl = T6z - T6o; Th7 = Tf2 + Tf3; Tf4 = Tf2 - Tf3; { E T6d, T9S, T9X, Tat, Tau, T9L; T6d = FNMS(T6b, T6c, T69 * T6a); T6e = T68 + T6d; Tar = T68 - T6d; T9S = T9Q - T9R; T9X = T9T + T9W; T9Y = KP707106781 * (T9S - T9X); TcH = KP707106781 * (T9S + T9X); Tat = T9T - T9W; Tau = T9R + T9Q; Tav = KP707106781 * (Tat - Tau); Tcw = KP707106781 * (Tau + Tat); T9L = FMA(T6b, T6a, T69 * T6c); T9M = T9K - T9L; Tfj = T9K + T9L; } { E T6f, Tfk, Th6, T9N; T6f = T65 + T6e; T6B = T6f + T6A; Th1 = T6f - T6A; Tfk = Tfi - Tfj; Tfm = Tfk - Tfl; Tga = Tfk + Tfl; Th6 = Tfi + Tfj; Th8 = Th6 - Th7; ThI = Th6 + Th7; T9N = T9J - T9M; T9Z = T9N - T9Y; Tbh = T9N + T9Y; } { E Tas, TcG, Tf1, Tcv; Tas = Taq + Tar; Taw = Tas - Tav; Tbk = Tas + Tav; TcG = Taq - Tar; TcI = TcG - TcH; Tdw = TcG + TcH; Tf1 = T65 - T6e; Tf5 = Tf1 - Tf4; Tg7 = Tf1 + Tf4; Tcv = T9J + T9M; Tcx = Tcv - Tcw; Tdt = Tcv + Tcw; } } { E T8Z, T9B, T5b, TeD, TeU, TgR, T94, T9A, T4L, T8T, T9y, TeB, T4V; T8Z = T8V - T8Y; T9B = T8V + T8Y; T4V = T4P + T4U; T5b = T4V + T5a; TeD = T5a - T4V; { E TeS, T90, T93, T4K, T9x; TeS = T91 + T92; TeU = TeS - TeT; TgR = TeS + TeT; T90 = T4P - T4U; T93 = T91 - T92; T94 = T90 + T93; T9A = T93 - T90; T4K = FMA(T4G, T4H, T4I * T4J); T4L = T4F + T4K; T8T = T4F - T4K; T9x = FNMS(T4I, T4H, T4G * T4J); T9y = T9w - T9x; TeB = T9w + T9x; } { E T4M, TeR, TgQ, TeC; T4M = T4C + T4L; T5c = T4M + T5b; TgV = T4M - T5b; TeR = T4C - T4L; TeV = TeR - TeU; Tg0 = TeR + TeU; TgQ = TeA + TeB; TgS = TgQ - TgR; ThD = TgQ + TgR; TeC = TeA - TeB; TeE = TeC - TeD; Tg3 = TeC + TeD; } { E T8U, T95, Tcc, Tcd; T8U = T8S + T8T; T95 = KP707106781 * (T8Z - T94); T96 = T8U - T95; Tbd = T8U + T95; Tcc = T8S - T8T; Tcd = KP707106781 * (T9A + T9B); Tce = Tcc - Tcd; Tdp = Tcc + Tcd; } { E Tcn, Tco, T9z, T9C; Tcn = T9v + T9y; Tco = KP707106781 * (T94 + T8Z); Tcp = Tcn - Tco; Tdm = Tcn + Tco; T9z = T9v - T9y; T9C = KP707106781 * (T9A - T9B); T9D = T9z - T9C; Tba = T9z + T9C; } } { E Tv, T7h, TdY, ThY, Ti2, Tj1, T16, Tj2, T1K, Tiw, T7q, TbK, T7v, TbL, T7k; E ThZ, T7r, T7u, T7i; { E Tu, TdW, TdX, Ti0, TM; Tu = FNMS(Ts, Tt, To * Tp); Tv = T1 + Tu; T7h = T1 - Tu; TdW = T7m + T7n; TdX = T7s + T7t; TdY = TdW - TdX; ThY = TdW + TdX; Ti0 = FMA(Ts, Tp, To * Tt); Ti2 = Ti0 + Ti1; Tj1 = Ti1 - Ti0; TM = FMA(TG, TH, TK * TL); T16 = TM + T15; Tj2 = TM - T15; } { E T1s, T1J, T7o, T7p; T1s = T1g + T1r; T1J = T1z + T1I; T1K = T1s + T1J; Tiw = T1J - T1s; T7o = T7m - T7n; T7p = T1g - T1r; T7q = T7o - T7p; TbK = T7p + T7o; } T7r = T1z - T1I; T7u = T7s - T7t; T7v = T7r + T7u; TbL = T7r - T7u; T7i = FNMS(TK, TH, TG * TL); T7k = T7i - T7j; ThZ = T7i + T7j; { E T17, Ti3, Tix, TdV; T17 = Tv + T16; T1L = T17 + T1K; Tgz = T17 - T1K; Ti3 = ThZ + Ti2; Ti4 = ThY + Ti3; Tii = Ti3 - ThY; Tix = Ti2 - ThZ; Tiy = Tiw + Tix; TiM = Tix - Tiw; TdV = Tv - T16; TdZ = TdV - TdY; TfN = TdV + TdY; } { E T7l, T7w, Tj0, Tj3; T7l = T7h - T7k; T7w = KP707106781 * (T7q - T7v); T7x = T7l - T7w; TaX = T7l + T7w; Tj0 = KP707106781 * (T7q + T7v); Tj3 = Tj1 - Tj2; Tj4 = Tj0 + Tj3; Tji = Tj3 - Tj0; } { E Tjw, Tjx, TbJ, TbM; Tjw = KP707106781 * (TbL - TbK); Tjx = Tj2 + Tj1; Tjy = Tjw + Tjx; TjM = Tjx - Tjw; TbJ = T7h + T7k; TbM = KP707106781 * (TbK + TbL); TbN = TbJ - TbM; Td9 = TbJ + TbM; } } { E T4t, ThR, Ti6, Ti8, T7g, Ti7, ThU, ThV; { E T2L, T4s, ThW, Ti5; T2L = T1L + T2K; T4s = T3C + T4r; T4t = T2L + T4s; ThR = T2L - T4s; ThW = Thy + Thz; Ti5 = ThX + Ti4; Ti6 = ThW + Ti5; Ti8 = Ti5 - ThW; } { E T5S, T7f, ThS, ThT; T5S = T5c + T5R; T7f = T6B + T7e; T7g = T5S + T7f; Ti7 = T7f - T5S; ThS = ThD + ThE; ThT = ThI + ThJ; ThU = ThS - ThT; ThV = ThS + ThT; } ri[WS(ios, 32)] = T4t - T7g; ii[WS(ios, 32)] = Ti6 - ThV; ri[0] = T4t + T7g; ii[0] = ThV + Ti6; ri[WS(ios, 48)] = ThR - ThU; ii[WS(ios, 48)] = Ti8 - Ti7; ri[WS(ios, 16)] = ThR + ThU; ii[WS(ios, 16)] = Ti7 + Ti8; } { E ThB, ThN, Tic, Tie, ThG, ThO, ThL, ThP; { E Thx, ThA, Tia, Tib; Thx = T1L - T2K; ThA = Thy - Thz; ThB = Thx + ThA; ThN = Thx - ThA; Tia = T4r - T3C; Tib = Ti4 - ThX; Tic = Tia + Tib; Tie = Tib - Tia; } { E ThC, ThF, ThH, ThK; ThC = T5c - T5R; ThF = ThD - ThE; ThG = ThC + ThF; ThO = ThF - ThC; ThH = T6B - T7e; ThK = ThI - ThJ; ThL = ThH - ThK; ThP = ThH + ThK; } { E ThM, Ti9, ThQ, Tid; ThM = KP707106781 * (ThG + ThL); ri[WS(ios, 40)] = ThB - ThM; ri[WS(ios, 8)] = ThB + ThM; Ti9 = KP707106781 * (ThO + ThP); ii[WS(ios, 8)] = Ti9 + Tic; ii[WS(ios, 40)] = Tic - Ti9; ThQ = KP707106781 * (ThO - ThP); ri[WS(ios, 56)] = ThN - ThQ; ri[WS(ios, 24)] = ThN + ThQ; Tid = KP707106781 * (ThL - ThG); ii[WS(ios, 24)] = Tid + Tie; ii[WS(ios, 56)] = Tie - Tid; } } { E TgP, Thd, Tiq, Tis, Th0, The, Thb, Thf; { E TgD, TgO, Tio, Tip; TgD = Tgz - TgC; TgO = KP707106781 * (TgI - TgN); TgP = TgD + TgO; Thd = TgD - TgO; Tio = KP707106781 * (Thj - Thi); Tip = Tii - Tih; Tiq = Tio + Tip; Tis = Tip - Tio; } { E TgU, TgZ, Th5, Tha; TgU = TgS - TgT; TgZ = TgV - TgY; Th0 = FMA(KP923879532, TgU, KP382683432 * TgZ); The = FNMS(KP923879532, TgZ, KP382683432 * TgU); Th5 = Th1 - Th4; Tha = Th8 - Th9; Thb = FNMS(KP923879532, Tha, KP382683432 * Th5); Thf = FMA(KP382683432, Tha, KP923879532 * Th5); } { E Thc, Tin, Thg, Tir; Thc = Th0 + Thb; ri[WS(ios, 44)] = TgP - Thc; ri[WS(ios, 12)] = TgP + Thc; Tin = The + Thf; ii[WS(ios, 12)] = Tin + Tiq; ii[WS(ios, 44)] = Tiq - Tin; Thg = The - Thf; ri[WS(ios, 60)] = Thd - Thg; ri[WS(ios, 28)] = Thd + Thg; Tir = Thb - Th0; ii[WS(ios, 28)] = Tir + Tis; ii[WS(ios, 60)] = Tis - Tir; } } { E TfB, TfJ, TiO, TiQ, TfE, TfK, TfH, TfL; { E Tfx, TfA, TiK, TiN; Tfx = TdZ + Tea; TfA = Tfy + Tfz; TfB = Tfx + TfA; TfJ = Tfx - TfA; TiK = Tem + Tex; TiN = TiL + TiM; TiO = TiK + TiN; TiQ = TiN - TiK; } { E TfC, TfD, TfF, TfG; TfC = TeE + TeP; TfD = TeV + TeY; TfE = FMA(KP555570233, TfC, KP831469612 * TfD); TfK = FNMS(KP555570233, TfD, KP831469612 * TfC); TfF = Tf5 + Tfg; TfG = Tfm + Tfp; TfH = FNMS(KP555570233, TfG, KP831469612 * TfF); TfL = FMA(KP831469612, TfG, KP555570233 * TfF); } { E TfI, TiJ, TfM, TiP; TfI = TfE + TfH; ri[WS(ios, 38)] = TfB - TfI; ri[WS(ios, 6)] = TfB + TfI; TiJ = TfK + TfL; ii[WS(ios, 6)] = TiJ + TiO; ii[WS(ios, 38)] = TiO - TiJ; TfM = TfK - TfL; ri[WS(ios, 54)] = TfJ - TfM; ri[WS(ios, 22)] = TfJ + TfM; TiP = TfH - TfE; ii[WS(ios, 22)] = TiP + TiQ; ii[WS(ios, 54)] = TiQ - TiP; } } { E Thl, Tht, Tik, Tim, Tho, Thu, Thr, Thv; { E Thh, Thk, Tig, Tij; Thh = Tgz + TgC; Thk = KP707106781 * (Thi + Thj); Thl = Thh + Thk; Tht = Thh - Thk; Tig = KP707106781 * (TgI + TgN); Tij = Tih + Tii; Tik = Tig + Tij; Tim = Tij - Tig; } { E Thm, Thn, Thp, Thq; Thm = TgS + TgT; Thn = TgV + TgY; Tho = FMA(KP382683432, Thm, KP923879532 * Thn); Thu = FNMS(KP382683432, Thn, KP923879532 * Thm); Thp = Th1 + Th4; Thq = Th8 + Th9; Thr = FNMS(KP382683432, Thq, KP923879532 * Thp); Thv = FMA(KP923879532, Thq, KP382683432 * Thp); } { E Ths, Tif, Thw, Til; Ths = Tho + Thr; ri[WS(ios, 36)] = Thl - Ths; ri[WS(ios, 4)] = Thl + Ths; Tif = Thu + Thv; ii[WS(ios, 4)] = Tif + Tik; ii[WS(ios, 36)] = Tik - Tif; Thw = Thu - Thv; ri[WS(ios, 52)] = Tht - Thw; ri[WS(ios, 20)] = Tht + Thw; Til = Thr - Tho; ii[WS(ios, 20)] = Til + Tim; ii[WS(ios, 52)] = Tim - Til; } } { E Tez, Tft, TiU, TiW, Tf0, Tfu, Tfr, Tfv; { E Teb, Tey, TiS, TiT; Teb = TdZ - Tea; Tey = Tem - Tex; Tez = Teb + Tey; Tft = Teb - Tey; TiS = Tfz - Tfy; TiT = TiM - TiL; TiU = TiS + TiT; TiW = TiT - TiS; } { E TeQ, TeZ, Tfh, Tfq; TeQ = TeE - TeP; TeZ = TeV - TeY; Tf0 = FMA(KP980785280, TeQ, KP195090322 * TeZ); Tfu = FNMS(KP980785280, TeZ, KP195090322 * TeQ); Tfh = Tf5 - Tfg; Tfq = Tfm - Tfp; Tfr = FNMS(KP980785280, Tfq, KP195090322 * Tfh); Tfv = FMA(KP195090322, Tfq, KP980785280 * Tfh); } { E Tfs, TiR, Tfw, TiV; Tfs = Tf0 + Tfr; ri[WS(ios, 46)] = Tez - Tfs; ri[WS(ios, 14)] = Tez + Tfs; TiR = Tfu + Tfv; ii[WS(ios, 14)] = TiR + TiU; ii[WS(ios, 46)] = TiU - TiR; Tfw = Tfu - Tfv; ri[WS(ios, 62)] = Tft - Tfw; ri[WS(ios, 30)] = Tft + Tfw; TiV = Tfr - Tf0; ii[WS(ios, 30)] = TiV + TiW; ii[WS(ios, 62)] = TiW - TiV; } } { E TfZ, Tgf, TiG, TiI, Tg6, Tgg, Tgd, Tgh; { E TfR, TfY, TiE, TiF; TfR = TfN - TfQ; TfY = TfU - TfX; TfZ = TfR + TfY; Tgf = TfR - TfY; TiE = Tgl - Tgk; TiF = Tiy - Tiv; TiG = TiE + TiF; TiI = TiF - TiE; } { E Tg2, Tg5, Tg9, Tgc; Tg2 = Tg0 - Tg1; Tg5 = Tg3 - Tg4; Tg6 = FMA(KP555570233, Tg2, KP831469612 * Tg5); Tgg = FNMS(KP831469612, Tg2, KP555570233 * Tg5); Tg9 = Tg7 - Tg8; Tgc = Tga - Tgb; Tgd = FNMS(KP831469612, Tgc, KP555570233 * Tg9); Tgh = FMA(KP831469612, Tg9, KP555570233 * Tgc); } { E Tge, TiD, Tgi, TiH; Tge = Tg6 + Tgd; ri[WS(ios, 42)] = TfZ - Tge; ri[WS(ios, 10)] = TfZ + Tge; TiD = Tgg + Tgh; ii[WS(ios, 10)] = TiD + TiG; ii[WS(ios, 42)] = TiG - TiD; Tgi = Tgg - Tgh; ri[WS(ios, 58)] = Tgf - Tgi; ri[WS(ios, 26)] = Tgf + Tgi; TiH = Tgd - Tg6; ii[WS(ios, 26)] = TiH + TiI; ii[WS(ios, 58)] = TiI - TiH; } } { E Tgn, Tgv, TiA, TiC, Tgq, Tgw, Tgt, Tgx; { E Tgj, Tgm, Tiu, Tiz; Tgj = TfN + TfQ; Tgm = Tgk + Tgl; Tgn = Tgj + Tgm; Tgv = Tgj - Tgm; Tiu = TfU + TfX; Tiz = Tiv + Tiy; TiA = Tiu + Tiz; TiC = Tiz - Tiu; } { E Tgo, Tgp, Tgr, Tgs; Tgo = Tg0 + Tg1; Tgp = Tg3 + Tg4; Tgq = FMA(KP980785280, Tgo, KP195090322 * Tgp); Tgw = FNMS(KP195090322, Tgo, KP980785280 * Tgp); Tgr = Tg7 + Tg8; Tgs = Tga + Tgb; Tgt = FNMS(KP195090322, Tgs, KP980785280 * Tgr); Tgx = FMA(KP195090322, Tgr, KP980785280 * Tgs); } { E Tgu, Tit, Tgy, TiB; Tgu = Tgq + Tgt; ri[WS(ios, 34)] = Tgn - Tgu; ri[WS(ios, 2)] = Tgn + Tgu; Tit = Tgw + Tgx; ii[WS(ios, 2)] = Tit + TiA; ii[WS(ios, 34)] = TiA - Tit; Tgy = Tgw - Tgx; ri[WS(ios, 50)] = Tgv - Tgy; ri[WS(ios, 18)] = Tgv + Tgy; TiB = Tgt - Tgq; ii[WS(ios, 18)] = TiB + TiC; ii[WS(ios, 50)] = TiC - TiB; } } { E T7V, TjN, TjT, TaH, T8O, TjK, TaK, TjS, TaO, TaU, T9I, TaE, TaR, TaV, TaB; E TaF, T8N; T7V = T7x - T7U; TjN = TjL + TjM; TjT = TjM - TjL; TaH = T7x + T7U; T8N = FMA(KP195090322, T8D, KP980785280 * T8M); T8O = T8m - T8N; TjK = T8m + T8N; { E TaJ, TaM, TaN, T9u, T9H; TaJ = FNMS(KP980785280, T8D, KP195090322 * T8M); TaK = TaI + TaJ; TjS = TaJ - TaI; TaM = T96 + T9t; TaN = T9D + T9G; TaO = FMA(KP634393284, TaM, KP773010453 * TaN); TaU = FNMS(KP634393284, TaN, KP773010453 * TaM); T9u = T96 - T9t; T9H = T9D - T9G; T9I = FMA(KP995184726, T9u, KP098017140 * T9H); TaE = FNMS(KP995184726, T9H, KP098017140 * T9u); { E TaP, TaQ, Tan, TaA; TaP = T9Z + Tam; TaQ = Taw + Taz; TaR = FNMS(KP634393284, TaQ, KP773010453 * TaP); TaV = FMA(KP773010453, TaQ, KP634393284 * TaP); Tan = T9Z - Tam; TaA = Taw - Taz; TaB = FNMS(KP995184726, TaA, KP098017140 * Tan); TaF = FMA(KP098017140, TaA, KP995184726 * Tan); } } { E T8P, TaC, TjR, TjU; T8P = T7V + T8O; TaC = T9I + TaB; ri[WS(ios, 47)] = T8P - TaC; ri[WS(ios, 15)] = T8P + TaC; TjR = TaE + TaF; TjU = TjS + TjT; ii[WS(ios, 15)] = TjR + TjU; ii[WS(ios, 47)] = TjU - TjR; } { E TaD, TaG, TjV, TjW; TaD = T7V - T8O; TaG = TaE - TaF; ri[WS(ios, 63)] = TaD - TaG; ri[WS(ios, 31)] = TaD + TaG; TjV = TaB - T9I; TjW = TjT - TjS; ii[WS(ios, 31)] = TjV + TjW; ii[WS(ios, 63)] = TjW - TjV; } { E TaL, TaS, TjJ, TjO; TaL = TaH + TaK; TaS = TaO + TaR; ri[WS(ios, 39)] = TaL - TaS; ri[WS(ios, 7)] = TaL + TaS; TjJ = TaU + TaV; TjO = TjK + TjN; ii[WS(ios, 7)] = TjJ + TjO; ii[WS(ios, 39)] = TjO - TjJ; } { E TaT, TaW, TjP, TjQ; TaT = TaH - TaK; TaW = TaU - TaV; ri[WS(ios, 55)] = TaT - TaW; ri[WS(ios, 23)] = TaT + TaW; TjP = TaR - TaO; TjQ = TjN - TjK; ii[WS(ios, 23)] = TjP + TjQ; ii[WS(ios, 55)] = TjQ - TjP; } } { E TbV, Tjj, Tjp, TcT, Tca, Tjg, TcW, Tjo, Td0, Td6, Tcu, TcQ, Td3, Td7, TcN; E TcR, Tc9; TbV = TbN - TbU; Tjj = Tjh + Tji; Tjp = Tji - Tjh; TcT = TbN + TbU; Tc9 = FMA(KP831469612, Tc5, KP555570233 * Tc8); Tca = Tc2 - Tc9; Tjg = Tc2 + Tc9; { E TcV, TcY, TcZ, Tcm, Tct; TcV = FNMS(KP831469612, Tc8, KP555570233 * Tc5); TcW = TcU + TcV; Tjo = TcV - TcU; TcY = Tce + Tcl; TcZ = Tcp + Tcs; Td0 = FMA(KP471396736, TcY, KP881921264 * TcZ); Td6 = FNMS(KP471396736, TcZ, KP881921264 * TcY); Tcm = Tce - Tcl; Tct = Tcp - Tcs; Tcu = FMA(KP956940335, Tcm, KP290284677 * Tct); TcQ = FNMS(KP956940335, Tct, KP290284677 * Tcm); { E Td1, Td2, TcF, TcM; Td1 = Tcx + TcE; Td2 = TcI + TcL; Td3 = FNMS(KP471396736, Td2, KP881921264 * Td1); Td7 = FMA(KP881921264, Td2, KP471396736 * Td1); TcF = Tcx - TcE; TcM = TcI - TcL; TcN = FNMS(KP956940335, TcM, KP290284677 * TcF); TcR = FMA(KP290284677, TcM, KP956940335 * TcF); } } { E Tcb, TcO, Tjn, Tjq; Tcb = TbV + Tca; TcO = Tcu + TcN; ri[WS(ios, 45)] = Tcb - TcO; ri[WS(ios, 13)] = Tcb + TcO; Tjn = TcQ + TcR; Tjq = Tjo + Tjp; ii[WS(ios, 13)] = Tjn + Tjq; ii[WS(ios, 45)] = Tjq - Tjn; } { E TcP, TcS, Tjr, Tjs; TcP = TbV - Tca; TcS = TcQ - TcR; ri[WS(ios, 61)] = TcP - TcS; ri[WS(ios, 29)] = TcP + TcS; Tjr = TcN - Tcu; Tjs = Tjp - Tjo; ii[WS(ios, 29)] = Tjr + Tjs; ii[WS(ios, 61)] = Tjs - Tjr; } { E TcX, Td4, Tjf, Tjk; TcX = TcT + TcW; Td4 = Td0 + Td3; ri[WS(ios, 37)] = TcX - Td4; ri[WS(ios, 5)] = TcX + Td4; Tjf = Td6 + Td7; Tjk = Tjg + Tjj; ii[WS(ios, 5)] = Tjf + Tjk; ii[WS(ios, 37)] = Tjk - Tjf; } { E Td5, Td8, Tjl, Tjm; Td5 = TcT - TcW; Td8 = Td6 - Td7; ri[WS(ios, 53)] = Td5 - Td8; ri[WS(ios, 21)] = Td5 + Td8; Tjl = Td3 - Td0; Tjm = Tjj - Tjg; ii[WS(ios, 21)] = Tjl + Tjm; ii[WS(ios, 53)] = Tjm - Tjl; } } { E Tb1, Tjz, TjF, Tbt, Tb8, Tju, Tbw, TjE, TbA, TbG, Tbg, Tbq, TbD, TbH, Tbn; E Tbr, Tb7; Tb1 = TaX - Tb0; Tjz = Tjv + Tjy; TjF = Tjy - Tjv; Tbt = TaX + Tb0; Tb7 = FMA(KP831469612, Tb5, KP555570233 * Tb6); Tb8 = Tb4 - Tb7; Tju = Tb4 + Tb7; { E Tbv, Tby, Tbz, Tbc, Tbf; Tbv = FNMS(KP555570233, Tb5, KP831469612 * Tb6); Tbw = Tbu + Tbv; TjE = Tbv - Tbu; Tby = Tba + Tbb; Tbz = Tbd + Tbe; TbA = FMA(KP956940335, Tby, KP290284677 * Tbz); TbG = FNMS(KP290284677, Tby, KP956940335 * Tbz); Tbc = Tba - Tbb; Tbf = Tbd - Tbe; Tbg = FMA(KP471396736, Tbc, KP881921264 * Tbf); Tbq = FNMS(KP881921264, Tbc, KP471396736 * Tbf); { E TbB, TbC, Tbj, Tbm; TbB = Tbh + Tbi; TbC = Tbk + Tbl; TbD = FNMS(KP290284677, TbC, KP956940335 * TbB); TbH = FMA(KP290284677, TbB, KP956940335 * TbC); Tbj = Tbh - Tbi; Tbm = Tbk - Tbl; Tbn = FNMS(KP881921264, Tbm, KP471396736 * Tbj); Tbr = FMA(KP881921264, Tbj, KP471396736 * Tbm); } } { E Tb9, Tbo, TjD, TjG; Tb9 = Tb1 + Tb8; Tbo = Tbg + Tbn; ri[WS(ios, 43)] = Tb9 - Tbo; ri[WS(ios, 11)] = Tb9 + Tbo; TjD = Tbq + Tbr; TjG = TjE + TjF; ii[WS(ios, 11)] = TjD + TjG; ii[WS(ios, 43)] = TjG - TjD; } { E Tbp, Tbs, TjH, TjI; Tbp = Tb1 - Tb8; Tbs = Tbq - Tbr; ri[WS(ios, 59)] = Tbp - Tbs; ri[WS(ios, 27)] = Tbp + Tbs; TjH = Tbn - Tbg; TjI = TjF - TjE; ii[WS(ios, 27)] = TjH + TjI; ii[WS(ios, 59)] = TjI - TjH; } { E Tbx, TbE, Tjt, TjA; Tbx = Tbt + Tbw; TbE = TbA + TbD; ri[WS(ios, 35)] = Tbx - TbE; ri[WS(ios, 3)] = Tbx + TbE; Tjt = TbG + TbH; TjA = Tju + Tjz; ii[WS(ios, 3)] = Tjt + TjA; ii[WS(ios, 35)] = TjA - Tjt; } { E TbF, TbI, TjB, TjC; TbF = Tbt - Tbw; TbI = TbG - TbH; ri[WS(ios, 51)] = TbF - TbI; ri[WS(ios, 19)] = TbF + TbI; TjB = TbD - TbA; TjC = Tjz - Tju; ii[WS(ios, 19)] = TjB + TjC; ii[WS(ios, 51)] = TjC - TjB; } } { E Tdd, Tj5, Tjb, TdF, Tdk, TiY, TdI, Tja, TdM, TdS, Tds, TdC, TdP, TdT, Tdz; E TdD, Tdj; Tdd = Td9 - Tdc; Tj5 = TiZ + Tj4; Tjb = Tj4 - TiZ; TdF = Td9 + Tdc; Tdj = FMA(KP195090322, Tdh, KP980785280 * Tdi); Tdk = Tdg - Tdj; TiY = Tdg + Tdj; { E TdH, TdK, TdL, Tdo, Tdr; TdH = FNMS(KP195090322, Tdi, KP980785280 * Tdh); TdI = TdG + TdH; Tja = TdH - TdG; TdK = Tdm + Tdn; TdL = Tdp + Tdq; TdM = FMA(KP995184726, TdK, KP098017140 * TdL); TdS = FNMS(KP098017140, TdK, KP995184726 * TdL); Tdo = Tdm - Tdn; Tdr = Tdp - Tdq; Tds = FMA(KP634393284, Tdo, KP773010453 * Tdr); TdC = FNMS(KP773010453, Tdo, KP634393284 * Tdr); { E TdN, TdO, Tdv, Tdy; TdN = Tdt + Tdu; TdO = Tdw + Tdx; TdP = FNMS(KP098017140, TdO, KP995184726 * TdN); TdT = FMA(KP098017140, TdN, KP995184726 * TdO); Tdv = Tdt - Tdu; Tdy = Tdw - Tdx; Tdz = FNMS(KP773010453, Tdy, KP634393284 * Tdv); TdD = FMA(KP773010453, Tdv, KP634393284 * Tdy); } } { E Tdl, TdA, Tj9, Tjc; Tdl = Tdd + Tdk; TdA = Tds + Tdz; ri[WS(ios, 41)] = Tdl - TdA; ri[WS(ios, 9)] = Tdl + TdA; Tj9 = TdC + TdD; Tjc = Tja + Tjb; ii[WS(ios, 9)] = Tj9 + Tjc; ii[WS(ios, 41)] = Tjc - Tj9; } { E TdB, TdE, Tjd, Tje; TdB = Tdd - Tdk; TdE = TdC - TdD; ri[WS(ios, 57)] = TdB - TdE; ri[WS(ios, 25)] = TdB + TdE; Tjd = Tdz - Tds; Tje = Tjb - Tja; ii[WS(ios, 25)] = Tjd + Tje; ii[WS(ios, 57)] = Tje - Tjd; } { E TdJ, TdQ, TiX, Tj6; TdJ = TdF + TdI; TdQ = TdM + TdP; ri[WS(ios, 33)] = TdJ - TdQ; ri[WS(ios, 1)] = TdJ + TdQ; TiX = TdS + TdT; Tj6 = TiY + Tj5; ii[WS(ios, 1)] = TiX + Tj6; ii[WS(ios, 33)] = Tj6 - TiX; } { E TdR, TdU, Tj7, Tj8; TdR = TdF - TdI; TdU = TdS - TdT; ri[WS(ios, 49)] = TdR - TdU; ri[WS(ios, 17)] = TdR + TdU; Tj7 = TdP - TdM; Tj8 = Tj5 - TiY; ii[WS(ios, 17)] = Tj7 + Tj8; ii[WS(ios, 49)] = Tj8 - Tj7; } } } } return W; } static const tw_instr twinstr[] = { {TW_COS, 0, 1}, {TW_SIN, 0, 1}, {TW_COS, 0, 3}, {TW_SIN, 0, 3}, {TW_COS, 0, 9}, {TW_SIN, 0, 9}, {TW_COS, 0, 27}, {TW_SIN, 0, 27}, {TW_COS, 0, 63}, {TW_SIN, 0, 63}, {TW_NEXT, 1, 0} }; static const ct_desc desc = { 64, "t2_64", twinstr, {880, 386, 274, 0}, &GENUS, 0, 0, 0 }; void X(codelet_t2_64) (planner *p) { X(kdft_dit_register) (p, t2_64, &desc); }