annotate src/fftw-3.3.8/rdft/scalar/r2cf/r2cfII_25.c @ 83:ae30d91d2ffe

Replace these with versions built using an older toolset (so as to avoid ABI compatibilities when linking on Ubuntu 14.04 for packaging purposes)
author Chris Cannam
date Fri, 07 Feb 2020 11:51:13 +0000
parents d0c2a83c1364
children
rev   line source
Chris@82 1 /*
Chris@82 2 * Copyright (c) 2003, 2007-14 Matteo Frigo
Chris@82 3 * Copyright (c) 2003, 2007-14 Massachusetts Institute of Technology
Chris@82 4 *
Chris@82 5 * This program is free software; you can redistribute it and/or modify
Chris@82 6 * it under the terms of the GNU General Public License as published by
Chris@82 7 * the Free Software Foundation; either version 2 of the License, or
Chris@82 8 * (at your option) any later version.
Chris@82 9 *
Chris@82 10 * This program is distributed in the hope that it will be useful,
Chris@82 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
Chris@82 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
Chris@82 13 * GNU General Public License for more details.
Chris@82 14 *
Chris@82 15 * You should have received a copy of the GNU General Public License
Chris@82 16 * along with this program; if not, write to the Free Software
Chris@82 17 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Chris@82 18 *
Chris@82 19 */
Chris@82 20
Chris@82 21 /* This file was automatically generated --- DO NOT EDIT */
Chris@82 22 /* Generated on Thu May 24 08:06:49 EDT 2018 */
Chris@82 23
Chris@82 24 #include "rdft/codelet-rdft.h"
Chris@82 25
Chris@82 26 #if defined(ARCH_PREFERS_FMA) || defined(ISA_EXTENSION_PREFERS_FMA)
Chris@82 27
Chris@82 28 /* Generated by: ../../../genfft/gen_r2cf.native -fma -compact -variables 4 -pipeline-latency 4 -n 25 -name r2cfII_25 -dft-II -include rdft/scalar/r2cfII.h */
Chris@82 29
Chris@82 30 /*
Chris@82 31 * This function contains 212 FP additions, 177 FP multiplications,
Chris@82 32 * (or, 47 additions, 12 multiplications, 165 fused multiply/add),
Chris@82 33 * 131 stack variables, 67 constants, and 50 memory accesses
Chris@82 34 */
Chris@82 35 #include "rdft/scalar/r2cfII.h"
Chris@82 36
Chris@82 37 static void r2cfII_25(R *R0, R *R1, R *Cr, R *Ci, stride rs, stride csr, stride csi, INT v, INT ivs, INT ovs)
Chris@82 38 {
Chris@82 39 DK(KP876091699, +0.876091699473550838204498029706869638173524346);
Chris@82 40 DK(KP792626838, +0.792626838241819413632131824093538848057784557);
Chris@82 41 DK(KP690668130, +0.690668130712929053565177988380887884042527623);
Chris@82 42 DK(KP809385824, +0.809385824416008241660603814668679683846476688);
Chris@82 43 DK(KP860541664, +0.860541664367944677098261680920518816412804187);
Chris@82 44 DK(KP681693190, +0.681693190061530575150324149145440022633095390);
Chris@82 45 DK(KP560319534, +0.560319534973832390111614715371676131169633784);
Chris@82 46 DK(KP237294955, +0.237294955877110315393888866460840817927895961);
Chris@82 47 DK(KP897376177, +0.897376177523557693138608077137219684419427330);
Chris@82 48 DK(KP584303379, +0.584303379262766050358567120694562180043261496);
Chris@82 49 DK(KP653711795, +0.653711795629256296299985401753308353544378892);
Chris@82 50 DK(KP997675361, +0.997675361079556513670859573984492383596555031);
Chris@82 51 DK(KP645989928, +0.645989928319777763844272876603899665178054552);
Chris@82 52 DK(KP591287873, +0.591287873858343558732323717242372865934480959);
Chris@82 53 DK(KP952936919, +0.952936919628306576880750665357914584765951388);
Chris@82 54 DK(KP998026728, +0.998026728428271561952336806863450553336905220);
Chris@82 55 DK(KP956723877, +0.956723877038460305821989399535483155872969262);
Chris@82 56 DK(KP945422727, +0.945422727388575946270360266328811958657216298);
Chris@82 57 DK(KP734762448, +0.734762448793050413546343770063151342619912334);
Chris@82 58 DK(KP772036680, +0.772036680810363904029489473607579825330539880);
Chris@82 59 DK(KP683113946, +0.683113946453479238701949862233725244439656928);
Chris@82 60 DK(KP559154169, +0.559154169276087864842202529084232643714075927);
Chris@82 61 DK(KP242145790, +0.242145790282157779872542093866183953459003101);
Chris@82 62 DK(KP968583161, +0.968583161128631119490168375464735813836012403);
Chris@82 63 DK(KP999754674, +0.999754674276473633366203429228112409535557487);
Chris@82 64 DK(KP904730450, +0.904730450839922351881287709692877908104763647);
Chris@82 65 DK(KP916574801, +0.916574801383451584742370439148878693530976769);
Chris@82 66 DK(KP829049696, +0.829049696159252993975487806364305442437946767);
Chris@82 67 DK(KP831864738, +0.831864738706457140726048799369896829771167132);
Chris@82 68 DK(KP876306680, +0.876306680043863587308115903922062583399064238);
Chris@82 69 DK(KP949179823, +0.949179823508441261575555465843363271711583843);
Chris@82 70 DK(KP669429328, +0.669429328479476605641803240971985825917022098);
Chris@82 71 DK(KP262346850, +0.262346850930607871785420028382979691334784273);
Chris@82 72 DK(KP923225144, +0.923225144846402650453449441572664695995209956);
Chris@82 73 DK(KP906616052, +0.906616052148196230441134447086066874408359177);
Chris@82 74 DK(KP921078979, +0.921078979742360627699756128143719920817673854);
Chris@82 75 DK(KP982009705, +0.982009705009746369461829878184175962711969869);
Chris@82 76 DK(KP845997307, +0.845997307939530944175097360758058292389769300);
Chris@82 77 DK(KP992114701, +0.992114701314477831049793042785778521453036709);
Chris@82 78 DK(KP803003575, +0.803003575438660414833440593570376004635464850);
Chris@82 79 DK(KP763583905, +0.763583905359130246362948588764067237776594106);
Chris@82 80 DK(KP248028675, +0.248028675328619457762448260696444630363259177);
Chris@82 81 DK(KP904508497, +0.904508497187473712051146708591409529430077295);
Chris@82 82 DK(KP894834959, +0.894834959464455102997960030820114611498661386);
Chris@82 83 DK(KP958953096, +0.958953096729998668045963838399037225970891871);
Chris@82 84 DK(KP867381224, +0.867381224396525206773171885031575671309956167);
Chris@82 85 DK(KP912575812, +0.912575812670962425556968549836277086778922727);
Chris@82 86 DK(KP951056516, +0.951056516295153572116439333379382143405698634);
Chris@82 87 DK(KP869845200, +0.869845200362138853122720822420327157933056305);
Chris@82 88 DK(KP120146378, +0.120146378570687701782758537356596213647956445);
Chris@82 89 DK(KP132830569, +0.132830569247582714407653942074819768844536507);
Chris@82 90 DK(KP786782374, +0.786782374965295178365099601674911834788448471);
Chris@82 91 DK(KP893101515, +0.893101515366181661711202267938416198338079437);
Chris@82 92 DK(KP987388751, +0.987388751065621252324603216482382109400433949);
Chris@82 93 DK(KP244189809, +0.244189809627953270309879511234821255780225091);
Chris@82 94 DK(KP269969613, +0.269969613759572083574752974412347470060951301);
Chris@82 95 DK(KP494780565, +0.494780565770515410344588413655324772219443730);
Chris@82 96 DK(KP066152395, +0.066152395967733048213034281011006031460903353);
Chris@82 97 DK(KP059835404, +0.059835404262124915169548397419498386427871950);
Chris@82 98 DK(KP447533225, +0.447533225982656890041886979663652563063114397);
Chris@82 99 DK(KP522847744, +0.522847744331509716623755382187077770911012542);
Chris@82 100 DK(KP667278218, +0.667278218140296670899089292254759909713898805);
Chris@82 101 DK(KP603558818, +0.603558818296015001454675132653458027918768137);
Chris@82 102 DK(KP578046249, +0.578046249379945007321754579646815604023525655);
Chris@82 103 DK(KP559016994, +0.559016994374947424102293417182819058860154590);
Chris@82 104 DK(KP250000000, +0.250000000000000000000000000000000000000000000);
Chris@82 105 DK(KP618033988, +0.618033988749894848204586834365638117720309180);
Chris@82 106 {
Chris@82 107 INT i;
Chris@82 108 for (i = v; i > 0; i = i - 1, R0 = R0 + ivs, R1 = R1 + ivs, Cr = Cr + ovs, Ci = Ci + ovs, MAKE_VOLATILE_STRIDE(100, rs), MAKE_VOLATILE_STRIDE(100, csr), MAKE_VOLATILE_STRIDE(100, csi)) {
Chris@82 109 E T2v, TJ, T2A, T1K, T2y, T2z, TB, T15, T2d, T2l, T1g, T1s, T1N, T21, T1D;
Chris@82 110 E T9, TQ, T2g, T2o, T1j, T1u, T1X, T25, T1z, Ti, TX, T2f, T2p, T1k, T1v;
Chris@82 111 E T1U, T24, T1A, Ts, T1c, T2c, T2k, T1h, T1r, T1Q, T22, T1C, Tj, TC;
Chris@82 112 {
Chris@82 113 E TI, T2x, TF, T2w;
Chris@82 114 T2v = R0[0];
Chris@82 115 {
Chris@82 116 E TG, TH, TD, TE;
Chris@82 117 TG = R0[WS(rs, 10)];
Chris@82 118 TH = R1[WS(rs, 2)];
Chris@82 119 TI = TG + TH;
Chris@82 120 T2x = TG - TH;
Chris@82 121 TD = R0[WS(rs, 5)];
Chris@82 122 TE = R1[WS(rs, 7)];
Chris@82 123 TF = TD + TE;
Chris@82 124 T2w = TD - TE;
Chris@82 125 }
Chris@82 126 TJ = FMA(KP618033988, TI, TF);
Chris@82 127 T2A = T2w - T2x;
Chris@82 128 T1K = FNMS(KP618033988, TF, TI);
Chris@82 129 T2y = T2w + T2x;
Chris@82 130 T2z = FNMS(KP250000000, T2y, T2v);
Chris@82 131 }
Chris@82 132 {
Chris@82 133 E Tt, TA, T13, TZ, T10;
Chris@82 134 Tt = R0[WS(rs, 2)];
Chris@82 135 {
Chris@82 136 E Tu, Tv, Tw, Tx, Ty, Tz;
Chris@82 137 Tu = R0[WS(rs, 7)];
Chris@82 138 Tv = R1[WS(rs, 9)];
Chris@82 139 Tw = Tu - Tv;
Chris@82 140 Tx = R0[WS(rs, 12)];
Chris@82 141 Ty = R1[WS(rs, 4)];
Chris@82 142 Tz = Tx - Ty;
Chris@82 143 TA = Tw + Tz;
Chris@82 144 T13 = Tz - Tw;
Chris@82 145 TZ = Tu + Tv;
Chris@82 146 T10 = Tx + Ty;
Chris@82 147 }
Chris@82 148 TB = Tt + TA;
Chris@82 149 {
Chris@82 150 E T11, T1M, T14, T1L, T12;
Chris@82 151 T11 = FMA(KP618033988, T10, TZ);
Chris@82 152 T1M = FNMS(KP618033988, TZ, T10);
Chris@82 153 T12 = FNMS(KP250000000, TA, Tt);
Chris@82 154 T14 = FNMS(KP559016994, T13, T12);
Chris@82 155 T1L = FMA(KP559016994, T13, T12);
Chris@82 156 T15 = FMA(KP578046249, T14, T11);
Chris@82 157 T2d = FNMS(KP603558818, T1M, T1L);
Chris@82 158 T2l = FMA(KP667278218, T1L, T1M);
Chris@82 159 T1g = FNMS(KP522847744, T11, T14);
Chris@82 160 T1s = FMA(KP447533225, T11, T14);
Chris@82 161 T1N = FMA(KP059835404, T1M, T1L);
Chris@82 162 T21 = FNMS(KP066152395, T1L, T1M);
Chris@82 163 T1D = FNMS(KP494780565, T14, T11);
Chris@82 164 }
Chris@82 165 }
Chris@82 166 {
Chris@82 167 E T1, T8, TO, TK, TL;
Chris@82 168 T1 = R0[WS(rs, 1)];
Chris@82 169 {
Chris@82 170 E T2, T3, T4, T5, T6, T7;
Chris@82 171 T2 = R0[WS(rs, 6)];
Chris@82 172 T3 = R1[WS(rs, 8)];
Chris@82 173 T4 = T2 - T3;
Chris@82 174 T5 = R0[WS(rs, 11)];
Chris@82 175 T6 = R1[WS(rs, 3)];
Chris@82 176 T7 = T5 - T6;
Chris@82 177 T8 = T4 + T7;
Chris@82 178 TO = T4 - T7;
Chris@82 179 TK = T2 + T3;
Chris@82 180 TL = T5 + T6;
Chris@82 181 }
Chris@82 182 T9 = T1 + T8;
Chris@82 183 {
Chris@82 184 E TM, T1V, TP, T1W, TN;
Chris@82 185 TM = FMA(KP618033988, TL, TK);
Chris@82 186 T1V = FNMS(KP618033988, TK, TL);
Chris@82 187 TN = FNMS(KP250000000, T8, T1);
Chris@82 188 TP = FMA(KP559016994, TO, TN);
Chris@82 189 T1W = FNMS(KP559016994, TO, TN);
Chris@82 190 TQ = FMA(KP269969613, TP, TM);
Chris@82 191 T2g = FNMS(KP578046249, T1W, T1V);
Chris@82 192 T2o = FMA(KP522847744, T1V, T1W);
Chris@82 193 T1j = FNMS(KP244189809, TM, TP);
Chris@82 194 T1u = FNMS(KP603558818, TM, TP);
Chris@82 195 T1X = FMA(KP987388751, T1W, T1V);
Chris@82 196 T25 = FNMS(KP893101515, T1V, T1W);
Chris@82 197 T1z = FMA(KP667278218, TP, TM);
Chris@82 198 }
Chris@82 199 }
Chris@82 200 {
Chris@82 201 E Th, Tg, TV, TS, TU;
Chris@82 202 Th = R0[WS(rs, 4)];
Chris@82 203 {
Chris@82 204 E Ta, Tb, Tc, Td, Te, Tf;
Chris@82 205 Ta = R0[WS(rs, 9)];
Chris@82 206 Tb = R1[WS(rs, 11)];
Chris@82 207 Tc = Ta - Tb;
Chris@82 208 Td = R1[WS(rs, 6)];
Chris@82 209 Te = R1[WS(rs, 1)];
Chris@82 210 Tf = Td + Te;
Chris@82 211 Tg = Tc - Tf;
Chris@82 212 TV = Te - Td;
Chris@82 213 TS = Tc + Tf;
Chris@82 214 TU = Ta + Tb;
Chris@82 215 }
Chris@82 216 Ti = Tg + Th;
Chris@82 217 {
Chris@82 218 E TW, T1S, TT, T1T, TR;
Chris@82 219 TW = FNMS(KP618033988, TV, TU);
Chris@82 220 T1S = FMA(KP618033988, TU, TV);
Chris@82 221 TR = FNMS(KP250000000, Tg, Th);
Chris@82 222 TT = FMA(KP559016994, TS, TR);
Chris@82 223 T1T = FNMS(KP559016994, TS, TR);
Chris@82 224 TX = FMA(KP603558818, TW, TT);
Chris@82 225 T2f = FNMS(KP447533225, T1S, T1T);
Chris@82 226 T2p = FMA(KP494780565, T1T, T1S);
Chris@82 227 T1k = FNMS(KP667278218, TT, TW);
Chris@82 228 T1v = FNMS(KP786782374, TW, TT);
Chris@82 229 T1U = FMA(KP132830569, T1T, T1S);
Chris@82 230 T24 = FNMS(KP120146378, T1S, T1T);
Chris@82 231 T1A = FMA(KP869845200, TT, TW);
Chris@82 232 }
Chris@82 233 }
Chris@82 234 {
Chris@82 235 E Tk, Tr, T1a, T16, T17;
Chris@82 236 Tk = R0[WS(rs, 3)];
Chris@82 237 {
Chris@82 238 E Tl, Tm, Tn, To, Tp, Tq;
Chris@82 239 Tl = R0[WS(rs, 8)];
Chris@82 240 Tm = R1[WS(rs, 10)];
Chris@82 241 Tn = Tl - Tm;
Chris@82 242 To = R1[0];
Chris@82 243 Tp = R1[WS(rs, 5)];
Chris@82 244 Tq = To + Tp;
Chris@82 245 Tr = Tn - Tq;
Chris@82 246 T1a = Tn + Tq;
Chris@82 247 T16 = Tl + Tm;
Chris@82 248 T17 = Tp - To;
Chris@82 249 }
Chris@82 250 Ts = Tk + Tr;
Chris@82 251 {
Chris@82 252 E T18, T1P, T1b, T1O, T19;
Chris@82 253 T18 = FMA(KP618033988, T17, T16);
Chris@82 254 T1P = FNMS(KP618033988, T16, T17);
Chris@82 255 T19 = FNMS(KP250000000, Tr, Tk);
Chris@82 256 T1b = FMA(KP559016994, T1a, T19);
Chris@82 257 T1O = FNMS(KP559016994, T1a, T19);
Chris@82 258 T1c = FMA(KP987388751, T1b, T18);
Chris@82 259 T2c = FNMS(KP059835404, T1P, T1O);
Chris@82 260 T2k = FMA(KP066152395, T1O, T1P);
Chris@82 261 T1h = FNMS(KP893101515, T18, T1b);
Chris@82 262 T1r = FMA(KP132830569, T1b, T18);
Chris@82 263 T1Q = FNMS(KP786782374, T1P, T1O);
Chris@82 264 T22 = FMA(KP869845200, T1O, T1P);
Chris@82 265 T1C = FNMS(KP120146378, T18, T1b);
Chris@82 266 }
Chris@82 267 }
Chris@82 268 Tj = T9 - Ti;
Chris@82 269 TC = Ts - TB;
Chris@82 270 Ci[WS(csi, 2)] = -(KP951056516 * (FNMS(KP618033988, TC, Tj)));
Chris@82 271 Ci[WS(csi, 7)] = KP951056516 * (FMA(KP618033988, Tj, TC));
Chris@82 272 {
Chris@82 273 E T3l, T3o, T3q, T3m, T3n, T3p;
Chris@82 274 T3l = T2v + T2y;
Chris@82 275 T3m = T9 + Ti;
Chris@82 276 T3n = TB + Ts;
Chris@82 277 T3o = T3m + T3n;
Chris@82 278 T3q = T3m - T3n;
Chris@82 279 Cr[WS(csr, 12)] = T3o + T3l;
Chris@82 280 T3p = FNMS(KP250000000, T3o, T3l);
Chris@82 281 Cr[WS(csr, 2)] = FMA(KP559016994, T3q, T3p);
Chris@82 282 Cr[WS(csr, 7)] = FNMS(KP559016994, T3q, T3p);
Chris@82 283 }
Chris@82 284 {
Chris@82 285 E T1B, T1E, T1x, T1I, T1G, T1t, T1w, T1F, T1y, T1J, T1H;
Chris@82 286 T1B = FMA(KP912575812, T1A, T1z);
Chris@82 287 T1E = FMA(KP867381224, T1D, T1C);
Chris@82 288 T1t = FMA(KP958953096, T1s, T1r);
Chris@82 289 T1w = FNMS(KP912575812, T1v, T1u);
Chris@82 290 T1F = FNMS(KP894834959, T1w, T1t);
Chris@82 291 T1x = FMA(KP894834959, T1w, T1t);
Chris@82 292 T1I = FNMS(KP894834959, T1B, T1F);
Chris@82 293 T1G = FNMS(KP904508497, T1F, T1E);
Chris@82 294 T1y = FMA(KP248028675, T1x, TJ);
Chris@82 295 T1J = FMA(KP559016994, T1I, T1E);
Chris@82 296 T1H = FMA(KP763583905, T1G, T1B);
Chris@82 297 Ci[WS(csi, 4)] = KP951056516 * (FNMS(KP803003575, T1H, T1y));
Chris@82 298 Ci[WS(csi, 9)] = KP951056516 * (FNMS(KP992114701, T1J, T1y));
Chris@82 299 }
Chris@82 300 {
Chris@82 301 E T2m, T2q, T2i, T2t, T2r, T2e, T2h, T2n, T2j, T2u, T2s;
Chris@82 302 T2m = FNMS(KP845997307, T2l, T2k);
Chris@82 303 T2q = FMA(KP982009705, T2p, T2o);
Chris@82 304 T2e = FMA(KP845997307, T2d, T2c);
Chris@82 305 T2h = FNMS(KP921078979, T2g, T2f);
Chris@82 306 T2n = FNMS(KP906616052, T2h, T2e);
Chris@82 307 T2i = FMA(KP906616052, T2h, T2e);
Chris@82 308 T2t = T2m + T2n;
Chris@82 309 T2r = FNMS(KP923225144, T2q, T2n);
Chris@82 310 T2j = FMA(KP262346850, T2i, T1K);
Chris@82 311 T2u = FNMS(KP669429328, T2t, T2q);
Chris@82 312 T2s = FNMS(KP618033988, T2r, T2m);
Chris@82 313 Ci[WS(csi, 8)] = KP951056516 * (FMA(KP949179823, T2s, T2j));
Chris@82 314 Ci[WS(csi, 3)] = KP951056516 * (FNMS(KP876306680, T2u, T2j));
Chris@82 315 }
Chris@82 316 {
Chris@82 317 E T1i, T1l, T1e, T1p, T1n, TY, T1d, T1m, T1f, T1q, T1o;
Chris@82 318 T1i = FNMS(KP831864738, T1h, T1g);
Chris@82 319 T1l = FMA(KP829049696, T1k, T1j);
Chris@82 320 TY = FMA(KP916574801, TX, TQ);
Chris@82 321 T1d = FMA(KP831864738, T1c, T15);
Chris@82 322 T1m = FNMS(KP904730450, T1d, TY);
Chris@82 323 T1e = FMA(KP904730450, T1d, TY);
Chris@82 324 T1p = FNMS(KP999754674, T1m, T1i);
Chris@82 325 T1n = FNMS(KP904508497, T1m, T1l);
Chris@82 326 Ci[0] = -(KP951056516 * (FMA(KP968583161, T1e, TJ)));
Chris@82 327 T1f = FNMS(KP242145790, T1e, TJ);
Chris@82 328 T1q = FMA(KP559154169, T1p, T1l);
Chris@82 329 T1o = FNMS(KP683113946, T1n, T1i);
Chris@82 330 Ci[WS(csi, 5)] = -(KP951056516 * (FNMS(KP876306680, T1o, T1f)));
Chris@82 331 Ci[WS(csi, 10)] = -(KP951056516 * (FNMS(KP968583161, T1q, T1f)));
Chris@82 332 }
Chris@82 333 {
Chris@82 334 E T23, T26, T1Z, T2a, T28, T1R, T1Y, T27, T20, T2b, T29;
Chris@82 335 T23 = FNMS(KP772036680, T22, T21);
Chris@82 336 T26 = FMA(KP734762448, T25, T24);
Chris@82 337 T1R = FMA(KP772036680, T1Q, T1N);
Chris@82 338 T1Y = FMA(KP734762448, T1X, T1U);
Chris@82 339 T27 = FNMS(KP945422727, T1Y, T1R);
Chris@82 340 T1Z = FMA(KP945422727, T1Y, T1R);
Chris@82 341 T2a = T27 - T23;
Chris@82 342 T28 = FMA(KP956723877, T27, T26);
Chris@82 343 Ci[WS(csi, 1)] = -(KP998026728 * (FMA(KP952936919, T1K, T1Z)));
Chris@82 344 T20 = FNMS(KP262346850, T1Z, T1K);
Chris@82 345 T2b = FMA(KP591287873, T2a, T26);
Chris@82 346 T29 = FMA(KP645989928, T28, T23);
Chris@82 347 Ci[WS(csi, 6)] = -(KP951056516 * (FMA(KP949179823, T29, T20)));
Chris@82 348 Ci[WS(csi, 11)] = -(KP951056516 * (FNMS(KP992114701, T2b, T20)));
Chris@82 349 }
Chris@82 350 {
Chris@82 351 E T2Y, T33, T31, T38, T36, T3e, T3f, T3c, T3j, T3h, T3a, T3b, T3g;
Chris@82 352 T2Y = FNMS(KP559016994, T2A, T2z);
Chris@82 353 T33 = FNMS(KP772036680, T1Q, T1N);
Chris@82 354 {
Chris@82 355 E T34, T2Z, T30, T35;
Chris@82 356 T34 = FNMS(KP734762448, T1X, T1U);
Chris@82 357 T2Z = FNMS(KP734762448, T25, T24);
Chris@82 358 T30 = FMA(KP772036680, T22, T21);
Chris@82 359 T35 = FNMS(KP956723877, T30, T2Z);
Chris@82 360 T31 = FMA(KP956723877, T30, T2Z);
Chris@82 361 T38 = FMA(KP618033988, T35, T34);
Chris@82 362 T36 = T34 + T35;
Chris@82 363 }
Chris@82 364 T3e = FMA(KP921078979, T2g, T2f);
Chris@82 365 T3f = FNMS(KP845997307, T2d, T2c);
Chris@82 366 T3a = FMA(KP845997307, T2l, T2k);
Chris@82 367 T3b = FNMS(KP982009705, T2p, T2o);
Chris@82 368 T3g = FNMS(KP923225144, T3b, T3a);
Chris@82 369 T3c = FMA(KP923225144, T3b, T3a);
Chris@82 370 T3j = FNMS(KP997675361, T3g, T3e);
Chris@82 371 T3h = FNMS(KP904508497, T3g, T3f);
Chris@82 372 Cr[WS(csr, 1)] = FNMS(KP992114701, T31, T2Y);
Chris@82 373 {
Chris@82 374 E T32, T39, T37, T3d, T3k, T3i;
Chris@82 375 T32 = FMA(KP248028675, T31, T2Y);
Chris@82 376 T39 = FNMS(KP653711795, T33, T38);
Chris@82 377 T37 = FMA(KP584303379, T36, T33);
Chris@82 378 Cr[WS(csr, 6)] = FMA(KP949179823, T37, T32);
Chris@82 379 Cr[WS(csr, 11)] = FNMS(KP897376177, T39, T32);
Chris@82 380 T3d = FNMS(KP237294955, T3c, T2Y);
Chris@82 381 T3k = FNMS(KP560319534, T3j, T3f);
Chris@82 382 T3i = FMA(KP681693190, T3h, T3e);
Chris@82 383 Cr[WS(csr, 3)] = FMA(KP860541664, T3i, T3d);
Chris@82 384 Cr[WS(csr, 8)] = FMA(KP949179823, T3k, T3d);
Chris@82 385 }
Chris@82 386 }
Chris@82 387 {
Chris@82 388 E T2B, T2R, T2T, T2P, T2W, T2U, T2G, T2H, T2E, T2L, T2J;
Chris@82 389 T2B = FMA(KP559016994, T2A, T2z);
Chris@82 390 {
Chris@82 391 E T2N, T2O, T2S, T2C, T2D, T2I;
Chris@82 392 T2R = FNMS(KP958953096, T1s, T1r);
Chris@82 393 T2T = FMA(KP912575812, T1v, T1u);
Chris@82 394 T2N = FNMS(KP867381224, T1D, T1C);
Chris@82 395 T2O = FNMS(KP912575812, T1A, T1z);
Chris@82 396 T2S = FMA(KP809385824, T2O, T2N);
Chris@82 397 T2P = FNMS(KP809385824, T2O, T2N);
Chris@82 398 T2W = T2R + T2S;
Chris@82 399 T2U = FNMS(KP894834959, T2T, T2S);
Chris@82 400 T2G = FNMS(KP831864738, T1c, T15);
Chris@82 401 T2H = FNMS(KP916574801, TX, TQ);
Chris@82 402 T2C = FNMS(KP829049696, T1k, T1j);
Chris@82 403 T2D = FMA(KP831864738, T1h, T1g);
Chris@82 404 T2I = FNMS(KP904730450, T2D, T2C);
Chris@82 405 T2E = FMA(KP904730450, T2D, T2C);
Chris@82 406 T2L = FMA(KP904730450, T2G, T2I);
Chris@82 407 T2J = T2H + T2I;
Chris@82 408 }
Chris@82 409 Cr[0] = FMA(KP968583161, T2E, T2B);
Chris@82 410 {
Chris@82 411 E T2Q, T2X, T2V, T2F, T2M, T2K;
Chris@82 412 T2Q = FMA(KP248028675, T2P, T2B);
Chris@82 413 T2X = FNMS(KP690668130, T2W, T2T);
Chris@82 414 T2V = FNMS(KP618033988, T2U, T2R);
Chris@82 415 Cr[WS(csr, 9)] = FMA(KP897376177, T2V, T2Q);
Chris@82 416 Cr[WS(csr, 4)] = FNMS(KP803003575, T2X, T2Q);
Chris@82 417 T2F = FNMS(KP242145790, T2E, T2B);
Chris@82 418 T2M = FMA(KP618033988, T2L, T2H);
Chris@82 419 T2K = FNMS(KP683113946, T2J, T2G);
Chris@82 420 Cr[WS(csr, 5)] = FMA(KP792626838, T2K, T2F);
Chris@82 421 Cr[WS(csr, 10)] = FMA(KP876091699, T2M, T2F);
Chris@82 422 }
Chris@82 423 }
Chris@82 424 }
Chris@82 425 }
Chris@82 426 }
Chris@82 427
Chris@82 428 static const kr2c_desc desc = { 25, "r2cfII_25", {47, 12, 165, 0}, &GENUS };
Chris@82 429
Chris@82 430 void X(codelet_r2cfII_25) (planner *p) {
Chris@82 431 X(kr2c_register) (p, r2cfII_25, &desc);
Chris@82 432 }
Chris@82 433
Chris@82 434 #else
Chris@82 435
Chris@82 436 /* Generated by: ../../../genfft/gen_r2cf.native -compact -variables 4 -pipeline-latency 4 -n 25 -name r2cfII_25 -dft-II -include rdft/scalar/r2cfII.h */
Chris@82 437
Chris@82 438 /*
Chris@82 439 * This function contains 213 FP additions, 148 FP multiplications,
Chris@82 440 * (or, 126 additions, 61 multiplications, 87 fused multiply/add),
Chris@82 441 * 94 stack variables, 38 constants, and 50 memory accesses
Chris@82 442 */
Chris@82 443 #include "rdft/scalar/r2cfII.h"
Chris@82 444
Chris@82 445 static void r2cfII_25(R *R0, R *R1, R *Cr, R *Ci, stride rs, stride csr, stride csi, INT v, INT ivs, INT ovs)
Chris@82 446 {
Chris@82 447 DK(KP1_996053456, +1.996053456856543123904673613726901106673810439);
Chris@82 448 DK(KP062790519, +0.062790519529313376076178224565631133122484832);
Chris@82 449 DK(KP125581039, +0.125581039058626752152356449131262266244969664);
Chris@82 450 DK(KP998026728, +0.998026728428271561952336806863450553336905220);
Chris@82 451 DK(KP1_369094211, +1.369094211857377347464566715242418539779038465);
Chris@82 452 DK(KP728968627, +0.728968627421411523146730319055259111372571664);
Chris@82 453 DK(KP963507348, +0.963507348203430549974383005744259307057084020);
Chris@82 454 DK(KP876306680, +0.876306680043863587308115903922062583399064238);
Chris@82 455 DK(KP497379774, +0.497379774329709576484567492012895936835134813);
Chris@82 456 DK(KP968583161, +0.968583161128631119490168375464735813836012403);
Chris@82 457 DK(KP1_457937254, +1.457937254842823046293460638110518222745143328);
Chris@82 458 DK(KP684547105, +0.684547105928688673732283357621209269889519233);
Chris@82 459 DK(KP1_752613360, +1.752613360087727174616231807844125166798128477);
Chris@82 460 DK(KP481753674, +0.481753674101715274987191502872129653528542010);
Chris@82 461 DK(KP1_937166322, +1.937166322257262238980336750929471627672024806);
Chris@82 462 DK(KP248689887, +0.248689887164854788242283746006447968417567406);
Chris@82 463 DK(KP992114701, +0.992114701314477831049793042785778521453036709);
Chris@82 464 DK(KP250666467, +0.250666467128608490746237519633017587885836494);
Chris@82 465 DK(KP1_809654104, +1.809654104932039055427337295865395187940827822);
Chris@82 466 DK(KP425779291, +0.425779291565072648862502445744251703979973042);
Chris@82 467 DK(KP1_541026485, +1.541026485551578461606019272792355694543335344);
Chris@82 468 DK(KP637423989, +0.637423989748689710176712811676016195434917298);
Chris@82 469 DK(KP1_688655851, +1.688655851004030157097116127933363010763318483);
Chris@82 470 DK(KP535826794, +0.535826794978996618271308767867639978063575346);
Chris@82 471 DK(KP851558583, +0.851558583130145297725004891488503407959946084);
Chris@82 472 DK(KP904827052, +0.904827052466019527713668647932697593970413911);
Chris@82 473 DK(KP1_984229402, +1.984229402628955662099586085571557042906073418);
Chris@82 474 DK(KP125333233, +0.125333233564304245373118759816508793942918247);
Chris@82 475 DK(KP1_274847979, +1.274847979497379420353425623352032390869834596);
Chris@82 476 DK(KP770513242, +0.770513242775789230803009636396177847271667672);
Chris@82 477 DK(KP844327925, +0.844327925502015078548558063966681505381659241);
Chris@82 478 DK(KP1_071653589, +1.071653589957993236542617535735279956127150691);
Chris@82 479 DK(KP293892626, +0.293892626146236564584352977319536384298826219);
Chris@82 480 DK(KP475528258, +0.475528258147576786058219666689691071702849317);
Chris@82 481 DK(KP250000000, +0.250000000000000000000000000000000000000000000);
Chris@82 482 DK(KP587785252, +0.587785252292473129168705954639072768597652438);
Chris@82 483 DK(KP951056516, +0.951056516295153572116439333379382143405698634);
Chris@82 484 DK(KP559016994, +0.559016994374947424102293417182819058860154590);
Chris@82 485 {
Chris@82 486 INT i;
Chris@82 487 for (i = v; i > 0; i = i - 1, R0 = R0 + ivs, R1 = R1 + ivs, Cr = Cr + ovs, Ci = Ci + ovs, MAKE_VOLATILE_STRIDE(100, rs), MAKE_VOLATILE_STRIDE(100, csr), MAKE_VOLATILE_STRIDE(100, csi)) {
Chris@82 488 E TE, TR, T2i, T1z, TL, TS, TB, T2d, T1l, T1i, T2c, T9, T23, TZ, TW;
Chris@82 489 E T22, Ti, T26, T16, T13, T25, Ts, T2a, T1e, T1b, T29, TP, TQ;
Chris@82 490 {
Chris@82 491 E TK, T1y, TH, T1x;
Chris@82 492 TE = R0[0];
Chris@82 493 {
Chris@82 494 E TI, TJ, TF, TG;
Chris@82 495 TI = R0[WS(rs, 10)];
Chris@82 496 TJ = R1[WS(rs, 2)];
Chris@82 497 TK = TI - TJ;
Chris@82 498 T1y = TI + TJ;
Chris@82 499 TF = R0[WS(rs, 5)];
Chris@82 500 TG = R1[WS(rs, 7)];
Chris@82 501 TH = TF - TG;
Chris@82 502 T1x = TF + TG;
Chris@82 503 }
Chris@82 504 TR = KP559016994 * (TH - TK);
Chris@82 505 T2i = FNMS(KP587785252, T1x, KP951056516 * T1y);
Chris@82 506 T1z = FMA(KP951056516, T1x, KP587785252 * T1y);
Chris@82 507 TL = TH + TK;
Chris@82 508 TS = FNMS(KP250000000, TL, TE);
Chris@82 509 }
Chris@82 510 {
Chris@82 511 E Tt, Tw, Tz, TA, T1k, T1j, T1g, T1h;
Chris@82 512 Tt = R0[WS(rs, 3)];
Chris@82 513 {
Chris@82 514 E Tu, Tv, Tx, Ty;
Chris@82 515 Tu = R0[WS(rs, 8)];
Chris@82 516 Tv = R1[WS(rs, 10)];
Chris@82 517 Tw = Tu - Tv;
Chris@82 518 Tx = R1[0];
Chris@82 519 Ty = R1[WS(rs, 5)];
Chris@82 520 Tz = Tx + Ty;
Chris@82 521 TA = Tw - Tz;
Chris@82 522 T1k = Ty - Tx;
Chris@82 523 T1j = Tu + Tv;
Chris@82 524 }
Chris@82 525 TB = Tt + TA;
Chris@82 526 T2d = FNMS(KP293892626, T1j, KP475528258 * T1k);
Chris@82 527 T1l = FMA(KP475528258, T1j, KP293892626 * T1k);
Chris@82 528 T1g = FNMS(KP250000000, TA, Tt);
Chris@82 529 T1h = KP559016994 * (Tw + Tz);
Chris@82 530 T1i = T1g + T1h;
Chris@82 531 T2c = T1g - T1h;
Chris@82 532 }
Chris@82 533 {
Chris@82 534 E T1, T4, T7, T8, TY, TX, TU, TV;
Chris@82 535 T1 = R0[WS(rs, 1)];
Chris@82 536 {
Chris@82 537 E T2, T3, T5, T6;
Chris@82 538 T2 = R0[WS(rs, 6)];
Chris@82 539 T3 = R1[WS(rs, 8)];
Chris@82 540 T4 = T2 - T3;
Chris@82 541 T5 = R0[WS(rs, 11)];
Chris@82 542 T6 = R1[WS(rs, 3)];
Chris@82 543 T7 = T5 - T6;
Chris@82 544 T8 = T4 + T7;
Chris@82 545 TY = T5 + T6;
Chris@82 546 TX = T2 + T3;
Chris@82 547 }
Chris@82 548 T9 = T1 + T8;
Chris@82 549 T23 = FNMS(KP293892626, TX, KP475528258 * TY);
Chris@82 550 TZ = FMA(KP475528258, TX, KP293892626 * TY);
Chris@82 551 TU = KP559016994 * (T4 - T7);
Chris@82 552 TV = FNMS(KP250000000, T8, T1);
Chris@82 553 TW = TU + TV;
Chris@82 554 T22 = TV - TU;
Chris@82 555 }
Chris@82 556 {
Chris@82 557 E Ta, Td, Tg, Th, T15, T14, T11, T12;
Chris@82 558 Ta = R0[WS(rs, 4)];
Chris@82 559 {
Chris@82 560 E Tb, Tc, Te, Tf;
Chris@82 561 Tb = R0[WS(rs, 9)];
Chris@82 562 Tc = R1[WS(rs, 11)];
Chris@82 563 Td = Tb - Tc;
Chris@82 564 Te = R1[WS(rs, 1)];
Chris@82 565 Tf = R1[WS(rs, 6)];
Chris@82 566 Tg = Te + Tf;
Chris@82 567 Th = Td - Tg;
Chris@82 568 T15 = Tf - Te;
Chris@82 569 T14 = Tb + Tc;
Chris@82 570 }
Chris@82 571 Ti = Ta + Th;
Chris@82 572 T26 = FNMS(KP293892626, T14, KP475528258 * T15);
Chris@82 573 T16 = FMA(KP475528258, T14, KP293892626 * T15);
Chris@82 574 T11 = FNMS(KP250000000, Th, Ta);
Chris@82 575 T12 = KP559016994 * (Td + Tg);
Chris@82 576 T13 = T11 + T12;
Chris@82 577 T25 = T11 - T12;
Chris@82 578 }
Chris@82 579 {
Chris@82 580 E Tk, Tn, Tq, Tr, T1d, T1c, T19, T1a;
Chris@82 581 Tk = R0[WS(rs, 2)];
Chris@82 582 {
Chris@82 583 E Tl, Tm, To, Tp;
Chris@82 584 Tl = R0[WS(rs, 7)];
Chris@82 585 Tm = R1[WS(rs, 9)];
Chris@82 586 Tn = Tl - Tm;
Chris@82 587 To = R0[WS(rs, 12)];
Chris@82 588 Tp = R1[WS(rs, 4)];
Chris@82 589 Tq = To - Tp;
Chris@82 590 Tr = Tn + Tq;
Chris@82 591 T1d = To + Tp;
Chris@82 592 T1c = Tl + Tm;
Chris@82 593 }
Chris@82 594 Ts = Tk + Tr;
Chris@82 595 T2a = FNMS(KP293892626, T1c, KP475528258 * T1d);
Chris@82 596 T1e = FMA(KP475528258, T1c, KP293892626 * T1d);
Chris@82 597 T19 = KP559016994 * (Tn - Tq);
Chris@82 598 T1a = FNMS(KP250000000, Tr, Tk);
Chris@82 599 T1b = T19 + T1a;
Chris@82 600 T29 = T1a - T19;
Chris@82 601 }
Chris@82 602 TP = TB - Ts;
Chris@82 603 TQ = T9 - Ti;
Chris@82 604 Ci[WS(csi, 2)] = FNMS(KP951056516, TQ, KP587785252 * TP);
Chris@82 605 Ci[WS(csi, 7)] = FMA(KP587785252, TQ, KP951056516 * TP);
Chris@82 606 {
Chris@82 607 E TM, TD, TN, Tj, TC, TO;
Chris@82 608 TM = TE + TL;
Chris@82 609 Tj = T9 + Ti;
Chris@82 610 TC = Ts + TB;
Chris@82 611 TD = KP559016994 * (Tj - TC);
Chris@82 612 TN = Tj + TC;
Chris@82 613 Cr[WS(csr, 12)] = TM + TN;
Chris@82 614 TO = FNMS(KP250000000, TN, TM);
Chris@82 615 Cr[WS(csr, 2)] = TD + TO;
Chris@82 616 Cr[WS(csr, 7)] = TO - TD;
Chris@82 617 }
Chris@82 618 {
Chris@82 619 E TT, T1J, T1Y, T1U, T1X, T1P, T1V, T1M, T1W, T1A, T1B, T1r, T1C, T1v, T18;
Chris@82 620 E T1n, T1o, T1G, T1D;
Chris@82 621 TT = TR + TS;
Chris@82 622 {
Chris@82 623 E T1H, T1I, T1S, T1T;
Chris@82 624 T1H = FNMS(KP844327925, TW, KP1_071653589 * TZ);
Chris@82 625 T1I = FNMS(KP1_274847979, T16, KP770513242 * T13);
Chris@82 626 T1J = T1H - T1I;
Chris@82 627 T1Y = T1H + T1I;
Chris@82 628 T1S = FMA(KP125333233, T1i, KP1_984229402 * T1l);
Chris@82 629 T1T = FMA(KP904827052, T1b, KP851558583 * T1e);
Chris@82 630 T1U = T1S - T1T;
Chris@82 631 T1X = T1T + T1S;
Chris@82 632 }
Chris@82 633 {
Chris@82 634 E T1N, T1O, T1K, T1L;
Chris@82 635 T1N = FMA(KP535826794, TW, KP1_688655851 * TZ);
Chris@82 636 T1O = FMA(KP637423989, T13, KP1_541026485 * T16);
Chris@82 637 T1P = T1N - T1O;
Chris@82 638 T1V = T1N + T1O;
Chris@82 639 T1K = FNMS(KP1_809654104, T1e, KP425779291 * T1b);
Chris@82 640 T1L = FNMS(KP992114701, T1i, KP250666467 * T1l);
Chris@82 641 T1M = T1K - T1L;
Chris@82 642 T1W = T1K + T1L;
Chris@82 643 }
Chris@82 644 {
Chris@82 645 E T1p, T1q, T1t, T1u;
Chris@82 646 T1p = FMA(KP844327925, T13, KP1_071653589 * T16);
Chris@82 647 T1q = FMA(KP248689887, TW, KP1_937166322 * TZ);
Chris@82 648 T1A = T1q + T1p;
Chris@82 649 T1t = FMA(KP481753674, T1b, KP1_752613360 * T1e);
Chris@82 650 T1u = FMA(KP684547105, T1i, KP1_457937254 * T1l);
Chris@82 651 T1B = T1t + T1u;
Chris@82 652 T1r = T1p - T1q;
Chris@82 653 T1C = T1A + T1B;
Chris@82 654 T1v = T1t - T1u;
Chris@82 655 }
Chris@82 656 {
Chris@82 657 E T10, T17, T1f, T1m;
Chris@82 658 T10 = FNMS(KP497379774, TZ, KP968583161 * TW);
Chris@82 659 T17 = FNMS(KP1_688655851, T16, KP535826794 * T13);
Chris@82 660 T18 = T10 + T17;
Chris@82 661 T1f = FNMS(KP963507348, T1e, KP876306680 * T1b);
Chris@82 662 T1m = FNMS(KP1_369094211, T1l, KP728968627 * T1i);
Chris@82 663 T1n = T1f + T1m;
Chris@82 664 T1o = T18 + T1n;
Chris@82 665 T1G = T10 - T17;
Chris@82 666 T1D = T1f - T1m;
Chris@82 667 }
Chris@82 668 {
Chris@82 669 E T1R, T1Q, T20, T1Z;
Chris@82 670 Cr[0] = TT + T1o;
Chris@82 671 Ci[0] = -(T1z + T1C);
Chris@82 672 T1R = KP559016994 * (T1P + T1M);
Chris@82 673 T1Q = FMA(KP250000000, T1M - T1P, TT);
Chris@82 674 Cr[WS(csr, 4)] = FMA(KP951056516, T1J, T1Q) + FMA(KP587785252, T1U, T1R);
Chris@82 675 Cr[WS(csr, 9)] = FMA(KP951056516, T1U, T1Q) + FNMA(KP587785252, T1J, T1R);
Chris@82 676 T20 = KP559016994 * (T1Y + T1X);
Chris@82 677 T1Z = FMA(KP250000000, T1X - T1Y, T1z);
Chris@82 678 Ci[WS(csi, 9)] = FMA(KP587785252, T1V, KP951056516 * T1W) + T1Z - T20;
Chris@82 679 Ci[WS(csi, 4)] = FMA(KP587785252, T1W, T1Z) + FNMS(KP951056516, T1V, T20);
Chris@82 680 {
Chris@82 681 E T1E, T1F, T1s, T1w;
Chris@82 682 T1E = FMS(KP250000000, T1C, T1z);
Chris@82 683 T1F = KP559016994 * (T1B - T1A);
Chris@82 684 Ci[WS(csi, 5)] = FMA(KP951056516, T1D, T1E) + FNMA(KP587785252, T1G, T1F);
Chris@82 685 Ci[WS(csi, 10)] = FMA(KP951056516, T1G, KP587785252 * T1D) + T1E + T1F;
Chris@82 686 T1s = FNMS(KP250000000, T1o, TT);
Chris@82 687 T1w = KP559016994 * (T18 - T1n);
Chris@82 688 Cr[WS(csr, 5)] = FMA(KP587785252, T1r, T1s) + FMS(KP951056516, T1v, T1w);
Chris@82 689 Cr[WS(csr, 10)] = T1w + FMA(KP587785252, T1v, T1s) - (KP951056516 * T1r);
Chris@82 690 }
Chris@82 691 }
Chris@82 692 }
Chris@82 693 {
Chris@82 694 E T21, T2z, T2L, T2K, T2M, T2F, T2P, T2C, T2Q, T2l, T2o, T2p, T2w, T2u, T28;
Chris@82 695 E T2f, T2g, T2s, T2h;
Chris@82 696 T21 = TS - TR;
Chris@82 697 {
Chris@82 698 E T2x, T2y, T2I, T2J;
Chris@82 699 T2x = FNMS(KP844327925, T29, KP1_071653589 * T2a);
Chris@82 700 T2y = FNMS(KP125581039, T2d, KP998026728 * T2c);
Chris@82 701 T2z = T2x + T2y;
Chris@82 702 T2L = T2y - T2x;
Chris@82 703 T2I = FNMS(KP481753674, T22, KP1_752613360 * T23);
Chris@82 704 T2J = FMA(KP904827052, T25, KP851558583 * T26);
Chris@82 705 T2K = T2I + T2J;
Chris@82 706 T2M = T2I - T2J;
Chris@82 707 }
Chris@82 708 {
Chris@82 709 E T2D, T2E, T2A, T2B;
Chris@82 710 T2D = FMA(KP535826794, T29, KP1_688655851 * T2a);
Chris@82 711 T2E = FMA(KP062790519, T2c, KP1_996053456 * T2d);
Chris@82 712 T2F = T2D + T2E;
Chris@82 713 T2P = T2E - T2D;
Chris@82 714 T2A = FMA(KP876306680, T22, KP963507348 * T23);
Chris@82 715 T2B = FNMS(KP425779291, T25, KP1_809654104 * T26);
Chris@82 716 T2C = T2A + T2B;
Chris@82 717 T2Q = T2A - T2B;
Chris@82 718 }
Chris@82 719 {
Chris@82 720 E T2j, T2k, T2m, T2n;
Chris@82 721 T2j = FNMS(KP125333233, T25, KP1_984229402 * T26);
Chris@82 722 T2k = FMA(KP684547105, T22, KP1_457937254 * T23);
Chris@82 723 T2l = T2j - T2k;
Chris@82 724 T2m = FNMS(KP770513242, T2c, KP1_274847979 * T2d);
Chris@82 725 T2n = FMA(KP998026728, T29, KP125581039 * T2a);
Chris@82 726 T2o = T2m - T2n;
Chris@82 727 T2p = T2l + T2o;
Chris@82 728 T2w = T2k + T2j;
Chris@82 729 T2u = T2n + T2m;
Chris@82 730 }
Chris@82 731 {
Chris@82 732 E T24, T27, T2b, T2e;
Chris@82 733 T24 = FNMS(KP1_369094211, T23, KP728968627 * T22);
Chris@82 734 T27 = FMA(KP992114701, T25, KP250666467 * T26);
Chris@82 735 T28 = T24 - T27;
Chris@82 736 T2b = FNMS(KP1_996053456, T2a, KP062790519 * T29);
Chris@82 737 T2e = FMA(KP637423989, T2c, KP1_541026485 * T2d);
Chris@82 738 T2f = T2b - T2e;
Chris@82 739 T2g = T28 + T2f;
Chris@82 740 T2s = T24 + T27;
Chris@82 741 T2h = T2b + T2e;
Chris@82 742 }
Chris@82 743 {
Chris@82 744 E T2H, T2G, T2O, T2N;
Chris@82 745 Cr[WS(csr, 1)] = T21 + T2g;
Chris@82 746 Ci[WS(csi, 1)] = T2p - T2i;
Chris@82 747 T2H = KP559016994 * (T2C - T2F);
Chris@82 748 T2G = FNMS(KP250000000, T2C + T2F, T21);
Chris@82 749 Cr[WS(csr, 8)] = FMA(KP951056516, T2z, T2G) + FNMA(KP587785252, T2K, T2H);
Chris@82 750 Cr[WS(csr, 3)] = FMA(KP951056516, T2K, KP587785252 * T2z) + T2G + T2H;
Chris@82 751 T2O = KP559016994 * (T2M + T2L);
Chris@82 752 T2N = FMA(KP250000000, T2L - T2M, T2i);
Chris@82 753 Ci[WS(csi, 3)] = T2N + FMA(KP587785252, T2P, T2O) - (KP951056516 * T2Q);
Chris@82 754 Ci[WS(csi, 8)] = FMA(KP587785252, T2Q, T2N) + FMS(KP951056516, T2P, T2O);
Chris@82 755 {
Chris@82 756 E T2t, T2v, T2q, T2r;
Chris@82 757 T2t = FNMS(KP250000000, T2g, T21);
Chris@82 758 T2v = KP559016994 * (T28 - T2f);
Chris@82 759 Cr[WS(csr, 6)] = FMA(KP951056516, T2u, T2t) + FNMA(KP587785252, T2w, T2v);
Chris@82 760 Cr[WS(csr, 11)] = FMA(KP951056516, T2w, T2v) + FMA(KP587785252, T2u, T2t);
Chris@82 761 T2q = KP250000000 * T2p;
Chris@82 762 T2r = KP559016994 * (T2l - T2o);
Chris@82 763 Ci[WS(csi, 6)] = FMS(KP951056516, T2h, T2i + T2q) + FNMA(KP587785252, T2s, T2r);
Chris@82 764 Ci[WS(csi, 11)] = FMA(KP951056516, T2s, KP587785252 * T2h) + T2r - (T2i + T2q);
Chris@82 765 }
Chris@82 766 }
Chris@82 767 }
Chris@82 768 }
Chris@82 769 }
Chris@82 770 }
Chris@82 771
Chris@82 772 static const kr2c_desc desc = { 25, "r2cfII_25", {126, 61, 87, 0}, &GENUS };
Chris@82 773
Chris@82 774 void X(codelet_r2cfII_25) (planner *p) {
Chris@82 775 X(kr2c_register) (p, r2cfII_25, &desc);
Chris@82 776 }
Chris@82 777
Chris@82 778 #endif