Logo Search packages:      
Sourcecode: fftw3 version File versions  Download package

hf2_64.c

/*
 * 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:57:57 EDT 2003 */

#include "codelet-rdft.h"

/* Generated by: /homee/stevenj/cvs/fftw3.0.1/genfft/gen_hc2hc -compact -variables 4 -twiddle-log3 -n 64 -dit -name hf2_64 -include hf.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: algsimp.ml,v 1.7 2003/03/15 20:29:42 stevenj Exp $
 * $Id: fft.ml,v 1.2 2003/03/15 20:29:42 stevenj Exp $
 * $Id: gen_hc2hc.ml,v 1.9 2003/04/17 19:25:50 athena Exp $
 */

#include "hf.h"

static const R *hf2_64(R *rio, R *iio, 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 - 2; i > 0; i = i - 2, rio = rio + dist, iio = iio - dist, W = W + 10) {
        E T1, T1g, T91, T7W, T7m, T2O, T4j, T7P, T4P, T8y, T2w, T8t, T2Z, T8e, T48;
        E T1z, T7s, T1I, T7t, T8p, Ten, T1Y, T7D, T2t, T7O, T7L, Te6, T3N, T8E, T7A;
        E Te0, T4C, TeA, T8S, T9v, T65, Tfi, T9J, Taq, T6K, Tf6, Ta2, Ta5, T73, Tfc;
        E Tad, Tag, T3z, T83, T3u, T82, T81, T84, T15, T9K, T68, T7j, T43, T9w, T4F;
        E T8G, T5l, TeL, T9k, T9n, T6o, Tf2, T9Q, T9R, T6z, Tf3, T9T, T9W, To, Ts;
        E T4o, T8u, T4U, T92, T5a, TeT, T8V, T8Y, T5G, TeG, T97, T9e, T27, T7X, T2T;
        E T7E, T7b, Tai, T6T, Ta3, Tf7, Ta8, T7Q, T2H, T2c, T76, Tah, T7F, T4d, T8z;
        E TG, TK, T69, T6b, T3b, T87, T5u, T9l, TeM, T9q, T88, T89, T3o, T86, T5P;
        E T9f, TeH, T9a, T34, T8f, T1r, T7n, T3S, T8F, T4G, T4I, Tp, T6c, TH, T6a;
        E TL, Ti1, T4H, T4J, Tt;
        T1 = rio[0];
        {
             E T12, T67, T14, T66, T6s, T1b, T1f, T6q, T1m, T6x, T1w, T1q, T6v, T6h, T31;
             E T1D, T5I, T1y, T6g, T1S, T6m, T1N, T6W, T6Y, T1M, T6k, T1H, T2Y, T5L, T2W;
             E T5N, T2b, T74, T2g, T29, T75, T26, T78, T1W, T22, T7a, T6R, T2u, T6P, T2v;
             E T6L, T6M, T2E, T2G, T6I, T5Z, T2n, T63, T6G, T2r, T5H, T33, T5E, T2Q, T5z;
             E T5C, T2S, T2M, T5q, T3a, T38, T5s, T2N, T5x, T5n, T3l, T5m, T3n, T5h, T5j;
             E T3w, T3y, T58, T4a, T3t, T5d, T3r, T5e, T54, T4c, T4Z, T46, T4T, T4X, T47;
             E T4l, T4N, T4i, T4g, T4O, T4n, T4R, T4E, T40, T4D, T42, T4y, T4A, T3J, T3L;
             E T3R, T3G, T3E, T3P, T2i, 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 = rio[WS(ios, 48)];
             T67 = iio[-WS(ios, 48)];
             T14 = iio[-WS(ios, 15)];
             T66 = rio[WS(ios, 15)];
             T6s = iio[-WS(ios, 8)];
             T1b = rio[WS(ios, 8)];
             T1f = iio[-WS(ios, 55)];
             T6q = rio[WS(ios, 55)];
             T1m = rio[WS(ios, 40)];
             T6x = iio[-WS(ios, 40)];
             T1w = rio[WS(ios, 56)];
             T1q = iio[-WS(ios, 23)];
             T6v = rio[WS(ios, 23)];
             T6h = iio[-WS(ios, 56)];
             T31 = rio[WS(ios, 50)];
             T1D = rio[WS(ios, 24)];
             T5I = iio[-WS(ios, 50)];
             T1y = iio[-WS(ios, 7)];
             T6g = rio[WS(ios, 7)];
             T1S = rio[WS(ios, 36)];
             T6m = iio[-WS(ios, 24)];
             T1N = iio[-WS(ios, 59)];
             T6W = rio[WS(ios, 59)];
             T6Y = iio[-WS(ios, 4)];
             T1M = rio[WS(ios, 4)];
             T6k = rio[WS(ios, 39)];
             T1H = iio[-WS(ios, 39)];
             T2Y = iio[-WS(ios, 45)];
             T5L = rio[WS(ios, 45)];
             T2W = rio[WS(ios, 18)];
             T5N = iio[-WS(ios, 18)];
             T2b = iio[-WS(ios, 11)];
             T74 = rio[WS(ios, 11)];
             T2g = rio[WS(ios, 60)];
             T29 = rio[WS(ios, 52)];
             T75 = iio[-WS(ios, 52)];
             T26 = iio[-WS(ios, 43)];
             T78 = rio[WS(ios, 43)];
             T1W = iio[-WS(ios, 27)];
             T22 = rio[WS(ios, 20)];
             T7a = iio[-WS(ios, 20)];
             T6R = iio[-WS(ios, 12)];
             T2u = rio[WS(ios, 12)];
             T6P = rio[WS(ios, 51)];
             T2v = iio[-WS(ios, 51)];
             T6L = rio[WS(ios, 19)];
             T6M = iio[-WS(ios, 44)];
             T2E = rio[WS(ios, 44)];
             T2G = iio[-WS(ios, 19)];
             T6I = iio[-WS(ios, 28)];
             T5Z = rio[WS(ios, 31)];
             T2n = rio[WS(ios, 28)];
             T63 = iio[-WS(ios, 32)];
             T6G = rio[WS(ios, 35)];
             T2r = iio[-WS(ios, 35)];
             T5H = rio[WS(ios, 13)];
             T33 = iio[-WS(ios, 13)];
             T5E = iio[-WS(ios, 34)];
             T2Q = rio[WS(ios, 34)];
             T5z = iio[-WS(ios, 2)];
             T5C = rio[WS(ios, 29)];
             T2S = iio[-WS(ios, 29)];
             T2M = rio[WS(ios, 2)];
             T5q = rio[WS(ios, 53)];
             T3a = iio[-WS(ios, 53)];
             T38 = rio[WS(ios, 10)];
             T5s = iio[-WS(ios, 10)];
             T2N = iio[-WS(ios, 61)];
             T5x = rio[WS(ios, 61)];
             T5n = iio[-WS(ios, 42)];
             T3l = rio[WS(ios, 42)];
             T5m = rio[WS(ios, 21)];
             T3n = iio[-WS(ios, 21)];
             T5h = rio[WS(ios, 37)];
             T5j = iio[-WS(ios, 26)];
             T3w = rio[WS(ios, 26)];
             T3y = iio[-WS(ios, 37)];
             T58 = iio[-WS(ios, 38)];
             T4a = rio[WS(ios, 38)];
             T3t = iio[-WS(ios, 5)];
             T5d = rio[WS(ios, 5)];
             T3r = rio[WS(ios, 58)];
             T5e = iio[-WS(ios, 58)];
             T54 = rio[WS(ios, 25)];
             T4c = iio[-WS(ios, 25)];
             T4Z = iio[-WS(ios, 6)];
             T46 = rio[WS(ios, 6)];
             T4T = iio[-WS(ios, 22)];
             T4X = rio[WS(ios, 57)];
             T47 = iio[-WS(ios, 57)];
             T4l = rio[WS(ios, 22)];
             T4N = rio[WS(ios, 9)];
             T4i = iio[-WS(ios, 9)];
             T4g = rio[WS(ios, 54)];
             T4O = iio[-WS(ios, 54)];
             T4n = iio[-WS(ios, 41)];
             T4R = rio[WS(ios, 41)];
             T4E = iio[-WS(ios, 46)];
             T40 = rio[WS(ios, 46)];
             T4D = rio[WS(ios, 17)];
             T42 = iio[-WS(ios, 17)];
             T4y = rio[WS(ios, 33)];
             T4A = iio[-WS(ios, 30)];
             T3J = rio[WS(ios, 30)];
             T3L = iio[-WS(ios, 33)];
             T3R = iio[-WS(ios, 49)];
             T3G = iio[-WS(ios, 1)];
             T3E = rio[WS(ios, 62)];
             T3P = rio[WS(ios, 14)];
             T2i = iio[-WS(ios, 3)];
             {
                E T4u, T70, T71, T4v, T5T, T6C, T6D, T5U, T4, T7, T5, T8, TO, TP, T1U;
                E T2p, T18, T2k, T2l, T2o, TT, TS, T19, T1c, T1T, T1P, T1Q, T1d;
                T4u = rio[WS(ios, 1)];
                T70 = rio[WS(ios, 27)];
                T71 = iio[-WS(ios, 36)];
                T4v = iio[-WS(ios, 62)];
                T5T = rio[WS(ios, 63)];
                T6C = rio[WS(ios, 3)];
                T6D = iio[-WS(ios, 60)];
                T5U = iio[0];
                {
                   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);
                }
             }
        }
        Tp = rio[WS(ios, 32)];
        T6c = iio[-WS(ios, 16)];
        TH = rio[WS(ios, 16)];
        T6a = rio[WS(ios, 47)];
        TL = iio[-WS(ios, 47)];
        Ti1 = iio[-WS(ios, 63)];
        T4H = rio[WS(ios, 49)];
        T4J = iio[-WS(ios, 14)];
        Tt = iio[-WS(ios, 31)];
        {
             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;
                }
                iio[-WS(ios, 32)] = T4t - T7g;
                rio[WS(ios, 32)] = ThV - Ti6;
                rio[0] = T4t + T7g;
                iio[0] = ThV + Ti6;
                iio[-WS(ios, 48)] = ThR - ThU;
                rio[WS(ios, 48)] = Ti7 - Ti8;
                rio[WS(ios, 16)] = ThR + ThU;
                iio[-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);
                   iio[-WS(ios, 40)] = ThB - ThM;
                   rio[WS(ios, 8)] = ThB + ThM;
                   Ti9 = KP707106781 * (ThO + ThP);
                   rio[WS(ios, 40)] = Ti9 - Tic;
                   iio[-WS(ios, 8)] = Ti9 + Tic;
                   ThQ = KP707106781 * (ThO - ThP);
                   iio[-WS(ios, 56)] = ThN - ThQ;
                   rio[WS(ios, 24)] = ThN + ThQ;
                   Tid = KP707106781 * (ThL - ThG);
                   rio[WS(ios, 56)] = Tid - Tie;
                   iio[-WS(ios, 24)] = Tid + Tie;
                }
             }
             {
                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;
                   iio[-WS(ios, 44)] = TgP - Thc;
                   rio[WS(ios, 12)] = TgP + Thc;
                   Tin = The + Thf;
                   rio[WS(ios, 44)] = Tin - Tiq;
                   iio[-WS(ios, 12)] = Tin + Tiq;
                   Thg = The - Thf;
                   iio[-WS(ios, 60)] = Thd - Thg;
                   rio[WS(ios, 28)] = Thd + Thg;
                   Tir = Thb - Th0;
                   rio[WS(ios, 60)] = Tir - Tis;
                   iio[-WS(ios, 28)] = Tir + Tis;
                }
             }
             {
                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;
                   iio[-WS(ios, 38)] = TfB - TfI;
                   rio[WS(ios, 6)] = TfB + TfI;
                   TiJ = TfK + TfL;
                   rio[WS(ios, 38)] = TiJ - TiO;
                   iio[-WS(ios, 6)] = TiJ + TiO;
                   TfM = TfK - TfL;
                   iio[-WS(ios, 54)] = TfJ - TfM;
                   rio[WS(ios, 22)] = TfJ + TfM;
                   TiP = TfH - TfE;
                   rio[WS(ios, 54)] = TiP - TiQ;
                   iio[-WS(ios, 22)] = TiP + TiQ;
                }
             }
             {
                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;
                   iio[-WS(ios, 36)] = Thl - Ths;
                   rio[WS(ios, 4)] = Thl + Ths;
                   Tif = Thu + Thv;
                   rio[WS(ios, 36)] = Tif - Tik;
                   iio[-WS(ios, 4)] = Tif + Tik;
                   Thw = Thu - Thv;
                   iio[-WS(ios, 52)] = Tht - Thw;
                   rio[WS(ios, 20)] = Tht + Thw;
                   Til = Thr - Tho;
                   rio[WS(ios, 52)] = Til - Tim;
                   iio[-WS(ios, 20)] = Til + Tim;
                }
             }
             {
                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;
                   iio[-WS(ios, 46)] = Tez - Tfs;
                   rio[WS(ios, 14)] = Tez + Tfs;
                   TiR = Tfu + Tfv;
                   rio[WS(ios, 46)] = TiR - TiU;
                   iio[-WS(ios, 14)] = TiR + TiU;
                   Tfw = Tfu - Tfv;
                   iio[-WS(ios, 62)] = Tft - Tfw;
                   rio[WS(ios, 30)] = Tft + Tfw;
                   TiV = Tfr - Tf0;
                   rio[WS(ios, 62)] = TiV - TiW;
                   iio[-WS(ios, 30)] = TiV + TiW;
                }
             }
             {
                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;
                   iio[-WS(ios, 42)] = TfZ - Tge;
                   rio[WS(ios, 10)] = TfZ + Tge;
                   TiD = Tgg + Tgh;
                   rio[WS(ios, 42)] = TiD - TiG;
                   iio[-WS(ios, 10)] = TiD + TiG;
                   Tgi = Tgg - Tgh;
                   iio[-WS(ios, 58)] = Tgf - Tgi;
                   rio[WS(ios, 26)] = Tgf + Tgi;
                   TiH = Tgd - Tg6;
                   rio[WS(ios, 58)] = TiH - TiI;
                   iio[-WS(ios, 26)] = TiH + TiI;
                }
             }
             {
                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;
                   iio[-WS(ios, 34)] = Tgn - Tgu;
                   rio[WS(ios, 2)] = Tgn + Tgu;
                   Tit = Tgw + Tgx;
                   rio[WS(ios, 34)] = Tit - TiA;
                   iio[-WS(ios, 2)] = Tit + TiA;
                   Tgy = Tgw - Tgx;
                   iio[-WS(ios, 50)] = Tgv - Tgy;
                   rio[WS(ios, 18)] = Tgv + Tgy;
                   TiB = Tgt - Tgq;
                   rio[WS(ios, 50)] = TiB - TiC;
                   iio[-WS(ios, 18)] = TiB + TiC;
                }
             }
             {
                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;
                   iio[-WS(ios, 47)] = T8P - TaC;
                   rio[WS(ios, 15)] = T8P + TaC;
                   TjR = TaE + TaF;
                   TjU = TjS + TjT;
                   rio[WS(ios, 47)] = TjR - TjU;
                   iio[-WS(ios, 15)] = TjR + TjU;
                }
                {
                   E TaD, TaG, TjV, TjW;
                   TaD = T7V - T8O;
                   TaG = TaE - TaF;
                   iio[-WS(ios, 63)] = TaD - TaG;
                   rio[WS(ios, 31)] = TaD + TaG;
                   TjV = TaB - T9I;
                   TjW = TjT - TjS;
                   rio[WS(ios, 63)] = TjV - TjW;
                   iio[-WS(ios, 31)] = TjV + TjW;
                }
                {
                   E TaL, TaS, TjJ, TjO;
                   TaL = TaH + TaK;
                   TaS = TaO + TaR;
                   iio[-WS(ios, 39)] = TaL - TaS;
                   rio[WS(ios, 7)] = TaL + TaS;
                   TjJ = TaU + TaV;
                   TjO = TjK + TjN;
                   rio[WS(ios, 39)] = TjJ - TjO;
                   iio[-WS(ios, 7)] = TjJ + TjO;
                }
                {
                   E TaT, TaW, TjP, TjQ;
                   TaT = TaH - TaK;
                   TaW = TaU - TaV;
                   iio[-WS(ios, 55)] = TaT - TaW;
                   rio[WS(ios, 23)] = TaT + TaW;
                   TjP = TaR - TaO;
                   TjQ = TjN - TjK;
                   rio[WS(ios, 55)] = TjP - TjQ;
                   iio[-WS(ios, 23)] = TjP + TjQ;
                }
             }
             {
                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;
                   iio[-WS(ios, 45)] = Tcb - TcO;
                   rio[WS(ios, 13)] = Tcb + TcO;
                   Tjn = TcQ + TcR;
                   Tjq = Tjo + Tjp;
                   rio[WS(ios, 45)] = Tjn - Tjq;
                   iio[-WS(ios, 13)] = Tjn + Tjq;
                }
                {
                   E TcP, TcS, Tjr, Tjs;
                   TcP = TbV - Tca;
                   TcS = TcQ - TcR;
                   iio[-WS(ios, 61)] = TcP - TcS;
                   rio[WS(ios, 29)] = TcP + TcS;
                   Tjr = TcN - Tcu;
                   Tjs = Tjp - Tjo;
                   rio[WS(ios, 61)] = Tjr - Tjs;
                   iio[-WS(ios, 29)] = Tjr + Tjs;
                }
                {
                   E TcX, Td4, Tjf, Tjk;
                   TcX = TcT + TcW;
                   Td4 = Td0 + Td3;
                   iio[-WS(ios, 37)] = TcX - Td4;
                   rio[WS(ios, 5)] = TcX + Td4;
                   Tjf = Td6 + Td7;
                   Tjk = Tjg + Tjj;
                   rio[WS(ios, 37)] = Tjf - Tjk;
                   iio[-WS(ios, 5)] = Tjf + Tjk;
                }
                {
                   E Td5, Td8, Tjl, Tjm;
                   Td5 = TcT - TcW;
                   Td8 = Td6 - Td7;
                   iio[-WS(ios, 53)] = Td5 - Td8;
                   rio[WS(ios, 21)] = Td5 + Td8;
                   Tjl = Td3 - Td0;
                   Tjm = Tjj - Tjg;
                   rio[WS(ios, 53)] = Tjl - Tjm;
                   iio[-WS(ios, 21)] = Tjl + Tjm;
                }
             }
             {
                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;
                   iio[-WS(ios, 43)] = Tb9 - Tbo;
                   rio[WS(ios, 11)] = Tb9 + Tbo;
                   TjD = Tbq + Tbr;
                   TjG = TjE + TjF;
                   rio[WS(ios, 43)] = TjD - TjG;
                   iio[-WS(ios, 11)] = TjD + TjG;
                }
                {
                   E Tbp, Tbs, TjH, TjI;
                   Tbp = Tb1 - Tb8;
                   Tbs = Tbq - Tbr;
                   iio[-WS(ios, 59)] = Tbp - Tbs;
                   rio[WS(ios, 27)] = Tbp + Tbs;
                   TjH = Tbn - Tbg;
                   TjI = TjF - TjE;
                   rio[WS(ios, 59)] = TjH - TjI;
                   iio[-WS(ios, 27)] = TjH + TjI;
                }
                {
                   E Tbx, TbE, Tjt, TjA;
                   Tbx = Tbt + Tbw;
                   TbE = TbA + TbD;
                   iio[-WS(ios, 35)] = Tbx - TbE;
                   rio[WS(ios, 3)] = Tbx + TbE;
                   Tjt = TbG + TbH;
                   TjA = Tju + Tjz;
                   rio[WS(ios, 35)] = Tjt - TjA;
                   iio[-WS(ios, 3)] = Tjt + TjA;
                }
                {
                   E TbF, TbI, TjB, TjC;
                   TbF = Tbt - Tbw;
                   TbI = TbG - TbH;
                   iio[-WS(ios, 51)] = TbF - TbI;
                   rio[WS(ios, 19)] = TbF + TbI;
                   TjB = TbD - TbA;
                   TjC = Tjz - Tju;
                   rio[WS(ios, 51)] = TjB - TjC;
                   iio[-WS(ios, 19)] = TjB + TjC;
                }
             }
             {
                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;
                   iio[-WS(ios, 41)] = Tdl - TdA;
                   rio[WS(ios, 9)] = Tdl + TdA;
                   Tj9 = TdC + TdD;
                   Tjc = Tja + Tjb;
                   rio[WS(ios, 41)] = Tj9 - Tjc;
                   iio[-WS(ios, 9)] = Tj9 + Tjc;
                }
                {
                   E TdB, TdE, Tjd, Tje;
                   TdB = Tdd - Tdk;
                   TdE = TdC - TdD;
                   iio[-WS(ios, 57)] = TdB - TdE;
                   rio[WS(ios, 25)] = TdB + TdE;
                   Tjd = Tdz - Tds;
                   Tje = Tjb - Tja;
                   rio[WS(ios, 57)] = Tjd - Tje;
                   iio[-WS(ios, 25)] = Tjd + Tje;
                }
                {
                   E TdJ, TdQ, TiX, Tj6;
                   TdJ = TdF + TdI;
                   TdQ = TdM + TdP;
                   iio[-WS(ios, 33)] = TdJ - TdQ;
                   rio[WS(ios, 1)] = TdJ + TdQ;
                   TiX = TdS + TdT;
                   Tj6 = TiY + Tj5;
                   rio[WS(ios, 33)] = TiX - Tj6;
                   iio[-WS(ios, 1)] = TiX + Tj6;
                }
                {
                   E TdR, TdU, Tj7, Tj8;
                   TdR = TdF - TdI;
                   TdU = TdS - TdT;
                   iio[-WS(ios, 49)] = TdR - TdU;
                   rio[WS(ios, 17)] = TdR + TdU;
                   Tj7 = TdP - TdM;
                   Tj8 = Tj5 - TiY;
                   rio[WS(ios, 49)] = Tj7 - Tj8;
                   iio[-WS(ios, 17)] = Tj7 + Tj8;
                }
             }
        }
     }
     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 hc2hc_desc desc = { 64, "hf2_64", twinstr, {880, 386, 274, 0}, &GENUS, 0, 0, 0 };

void X(codelet_hf2_64) (planner *p) {
     X(khc2hc_dit_register) (p, hf2_64, &desc);
}

Generated by  Doxygen 1.6.0   Back to index