annotate src/fftw-3.3.8/rdft/scalar/r2cb/r2cbIII_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:07:50 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_r2cb.native -fma -compact -variables 4 -pipeline-latency 4 -sign 1 -n 25 -name r2cbIII_25 -dft-III -include rdft/scalar/r2cbIII.h */
Chris@82 29
Chris@82 30 /*
Chris@82 31 * This function contains 152 FP additions, 120 FP multiplications,
Chris@82 32 * (or, 32 additions, 0 multiplications, 120 fused multiply/add),
Chris@82 33 * 88 stack variables, 44 constants, and 50 memory accesses
Chris@82 34 */
Chris@82 35 #include "rdft/scalar/r2cbIII.h"
Chris@82 36
Chris@82 37 static void r2cbIII_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(KP979740652, +0.979740652857618686258237536568998933733477632);
Chris@82 40 DK(KP1_752613360, +1.752613360087727174616231807844125166798128477);
Chris@82 41 DK(KP438153340, +0.438153340021931793654057951961031291699532119);
Chris@82 42 DK(KP963507348, +0.963507348203430549974383005744259307057084020);
Chris@82 43 DK(KP595480289, +0.595480289600000014706716770488118292997907308);
Chris@82 44 DK(KP641441904, +0.641441904830606407298806329068862424939687989);
Chris@82 45 DK(KP1_606007150, +1.606007150877320829666881187140752009270929701);
Chris@82 46 DK(KP1_721083328, +1.721083328735889354196523361841037632825608373);
Chris@82 47 DK(KP1_011627398, +1.011627398597394192215998921771049272931807941);
Chris@82 48 DK(KP1_809654104, +1.809654104932039055427337295865395187940827822);
Chris@82 49 DK(KP452413526, +0.452413526233009763856834323966348796985206956);
Chris@82 50 DK(KP933137358, +0.933137358350283770603023973254446451924190884);
Chris@82 51 DK(KP576710603, +0.576710603632765877371579268136471017090111488);
Chris@82 52 DK(KP662318342, +0.662318342759882818626911127577439236802190210);
Chris@82 53 DK(KP470564281, +0.470564281212251493087595091036643380879947982);
Chris@82 54 DK(KP634619297, +0.634619297544148100711287640319130485732531031);
Chris@82 55 DK(KP1_842354653, +1.842354653930286640500894870830132058718564461);
Chris@82 56 DK(KP1_666834356, +1.666834356657377354817925100486477686277992119);
Chris@82 57 DK(KP1_082908895, +1.082908895072625554092571180165639018104066379);
Chris@82 58 DK(KP1_937166322, +1.937166322257262238980336750929471627672024806);
Chris@82 59 DK(KP484291580, +0.484291580564315559745084187732367906918006201);
Chris@82 60 DK(KP904730450, +0.904730450839922351881287709692877908104763647);
Chris@82 61 DK(KP683113946, +0.683113946453479238701949862233725244439656928);
Chris@82 62 DK(KP559154169, +0.559154169276087864842202529084232643714075927);
Chris@82 63 DK(KP549754652, +0.549754652192770074288023275540779861653779767);
Chris@82 64 DK(KP256756360, +0.256756360367726783319498520922669048172391148);
Chris@82 65 DK(KP1_386580726, +1.386580726567734802700860150804827247498955921);
Chris@82 66 DK(KP1_898359647, +1.898359647016882523151110931686726543423167685);
Chris@82 67 DK(KP1_115827804, +1.115827804063668528375399296931134075984874304);
Chris@82 68 DK(KP1_996053456, +1.996053456856543123904673613726901106673810439);
Chris@82 69 DK(KP499013364, +0.499013364214135780976168403431725276668452610);
Chris@82 70 DK(KP730409924, +0.730409924561256563751459444999838399157094302);
Chris@82 71 DK(KP451418159, +0.451418159099103183892477933432151804893354132);
Chris@82 72 DK(KP846146756, +0.846146756728608505452954290121135880883743802);
Chris@82 73 DK(KP062914667, +0.062914667253649757225485955897349402364686947);
Chris@82 74 DK(KP939062505, +0.939062505817492352556001843133229685779824606);
Chris@82 75 DK(KP1_902113032, +1.902113032590307144232878666758764286811397268);
Chris@82 76 DK(KP951056516, +0.951056516295153572116439333379382143405698634);
Chris@82 77 DK(KP559016994, +0.559016994374947424102293417182819058860154590);
Chris@82 78 DK(KP250000000, +0.250000000000000000000000000000000000000000000);
Chris@82 79 DK(KP1_118033988, +1.118033988749894848204586834365638117720309180);
Chris@82 80 DK(KP500000000, +0.500000000000000000000000000000000000000000000);
Chris@82 81 DK(KP2_000000000, +2.000000000000000000000000000000000000000000000);
Chris@82 82 DK(KP618033988, +0.618033988749894848204586834365638117720309180);
Chris@82 83 {
Chris@82 84 INT i;
Chris@82 85 for (i = v; i > 0; i = i - 1, R0 = R0 + ovs, R1 = R1 + ovs, Cr = Cr + ivs, Ci = Ci + ivs, MAKE_VOLATILE_STRIDE(100, rs), MAKE_VOLATILE_STRIDE(100, csr), MAKE_VOLATILE_STRIDE(100, csi)) {
Chris@82 86 E TS, T1O, T5, TP, T1N, Tz, Ty, Te, T17, T2i, T1B, T1V, T10, T2h, T1C;
Chris@82 87 E T1S, TI, TH, Tn, T1m, T2e, T1y, T1Z, T1f, T2f, T1z, T22, TQ, TR;
Chris@82 88 TQ = Ci[WS(csi, 7)];
Chris@82 89 TR = Ci[WS(csi, 2)];
Chris@82 90 TS = FMA(KP618033988, TR, TQ);
Chris@82 91 T1O = FNMS(KP618033988, TQ, TR);
Chris@82 92 {
Chris@82 93 E T1, T4, TO, T2, T3, TN;
Chris@82 94 T1 = Cr[WS(csr, 12)];
Chris@82 95 T2 = Cr[WS(csr, 7)];
Chris@82 96 T3 = Cr[WS(csr, 2)];
Chris@82 97 T4 = T2 + T3;
Chris@82 98 TO = T3 - T2;
Chris@82 99 T5 = FMA(KP2_000000000, T4, T1);
Chris@82 100 TN = FNMS(KP500000000, T4, T1);
Chris@82 101 TP = FNMS(KP1_118033988, TO, TN);
Chris@82 102 T1N = FMA(KP1_118033988, TO, TN);
Chris@82 103 }
Chris@82 104 {
Chris@82 105 E T6, Td, T15, TV, T14, T12, TX, TY;
Chris@82 106 T6 = Cr[WS(csr, 11)];
Chris@82 107 Tz = Ci[WS(csi, 11)];
Chris@82 108 {
Chris@82 109 E T7, T8, T9, Ta, Tb, Tc;
Chris@82 110 T7 = Cr[WS(csr, 6)];
Chris@82 111 T8 = Cr[WS(csr, 8)];
Chris@82 112 T9 = T7 + T8;
Chris@82 113 Ta = Cr[WS(csr, 1)];
Chris@82 114 Tb = Cr[WS(csr, 3)];
Chris@82 115 Tc = Ta + Tb;
Chris@82 116 Td = T9 + Tc;
Chris@82 117 T15 = Tb - Ta;
Chris@82 118 TV = Tc - T9;
Chris@82 119 T14 = T8 - T7;
Chris@82 120 }
Chris@82 121 {
Chris@82 122 E Ts, Tt, Tu, Tv, Tw, Tx;
Chris@82 123 Ts = Ci[WS(csi, 8)];
Chris@82 124 Tt = Ci[WS(csi, 6)];
Chris@82 125 Tu = Ts - Tt;
Chris@82 126 Tv = Ci[WS(csi, 3)];
Chris@82 127 Tw = Ci[WS(csi, 1)];
Chris@82 128 Tx = Tv - Tw;
Chris@82 129 Ty = Tu + Tx;
Chris@82 130 T12 = Tx - Tu;
Chris@82 131 TX = Tt + Ts;
Chris@82 132 TY = Tw + Tv;
Chris@82 133 }
Chris@82 134 Te = T6 + Td;
Chris@82 135 {
Chris@82 136 E T16, T1U, T13, T1T, T11;
Chris@82 137 T16 = FMA(KP618033988, T15, T14);
Chris@82 138 T1U = FNMS(KP618033988, T14, T15);
Chris@82 139 T11 = FMA(KP250000000, Ty, Tz);
Chris@82 140 T13 = FMA(KP559016994, T12, T11);
Chris@82 141 T1T = FNMS(KP559016994, T12, T11);
Chris@82 142 T17 = FMA(KP951056516, T16, T13);
Chris@82 143 T2i = FMA(KP951056516, T1U, T1T);
Chris@82 144 T1B = FNMS(KP951056516, T16, T13);
Chris@82 145 T1V = FNMS(KP951056516, T1U, T1T);
Chris@82 146 }
Chris@82 147 {
Chris@82 148 E TZ, T1R, TW, T1Q, TU;
Chris@82 149 TZ = FMA(KP618033988, TY, TX);
Chris@82 150 T1R = FNMS(KP618033988, TX, TY);
Chris@82 151 TU = FMS(KP250000000, Td, T6);
Chris@82 152 TW = FMA(KP559016994, TV, TU);
Chris@82 153 T1Q = FNMS(KP559016994, TV, TU);
Chris@82 154 T10 = FNMS(KP951056516, TZ, TW);
Chris@82 155 T2h = FNMS(KP951056516, T1R, T1Q);
Chris@82 156 T1C = FMA(KP951056516, TZ, TW);
Chris@82 157 T1S = FMA(KP951056516, T1R, T1Q);
Chris@82 158 }
Chris@82 159 }
Chris@82 160 {
Chris@82 161 E Tf, Tm, T1k, T1a, T1j, T1h, T1c, T1d;
Chris@82 162 Tf = Cr[WS(csr, 10)];
Chris@82 163 TI = Ci[WS(csi, 10)];
Chris@82 164 {
Chris@82 165 E Tg, Th, Ti, Tj, Tk, Tl;
Chris@82 166 Tg = Cr[WS(csr, 5)];
Chris@82 167 Th = Cr[WS(csr, 9)];
Chris@82 168 Ti = Tg + Th;
Chris@82 169 Tj = Cr[0];
Chris@82 170 Tk = Cr[WS(csr, 4)];
Chris@82 171 Tl = Tj + Tk;
Chris@82 172 Tm = Ti + Tl;
Chris@82 173 T1k = Tk - Tj;
Chris@82 174 T1a = Ti - Tl;
Chris@82 175 T1j = Tg - Th;
Chris@82 176 }
Chris@82 177 {
Chris@82 178 E TB, TC, TD, TE, TF, TG;
Chris@82 179 TB = Ci[WS(csi, 9)];
Chris@82 180 TC = Ci[WS(csi, 5)];
Chris@82 181 TD = TB - TC;
Chris@82 182 TE = Ci[WS(csi, 4)];
Chris@82 183 TF = Ci[0];
Chris@82 184 TG = TE - TF;
Chris@82 185 TH = TD + TG;
Chris@82 186 T1h = TD - TG;
Chris@82 187 T1c = TC + TB;
Chris@82 188 T1d = TF + TE;
Chris@82 189 }
Chris@82 190 Tn = Tf + Tm;
Chris@82 191 {
Chris@82 192 E T1l, T1Y, T1i, T1X, T1g;
Chris@82 193 T1l = FNMS(KP618033988, T1k, T1j);
Chris@82 194 T1Y = FMA(KP618033988, T1j, T1k);
Chris@82 195 T1g = FMA(KP250000000, TH, TI);
Chris@82 196 T1i = FNMS(KP559016994, T1h, T1g);
Chris@82 197 T1X = FMA(KP559016994, T1h, T1g);
Chris@82 198 T1m = FNMS(KP951056516, T1l, T1i);
Chris@82 199 T2e = FMA(KP951056516, T1Y, T1X);
Chris@82 200 T1y = FMA(KP951056516, T1l, T1i);
Chris@82 201 T1Z = FNMS(KP951056516, T1Y, T1X);
Chris@82 202 }
Chris@82 203 {
Chris@82 204 E T1e, T21, T1b, T20, T19;
Chris@82 205 T1e = FMA(KP618033988, T1d, T1c);
Chris@82 206 T21 = FNMS(KP618033988, T1c, T1d);
Chris@82 207 T19 = FMS(KP250000000, Tm, Tf);
Chris@82 208 T1b = FNMS(KP559016994, T1a, T19);
Chris@82 209 T20 = FMA(KP559016994, T1a, T19);
Chris@82 210 T1f = FNMS(KP951056516, T1e, T1b);
Chris@82 211 T2f = FNMS(KP951056516, T21, T20);
Chris@82 212 T1z = FMA(KP951056516, T1e, T1b);
Chris@82 213 T22 = FMA(KP951056516, T21, T20);
Chris@82 214 }
Chris@82 215 }
Chris@82 216 {
Chris@82 217 E Tq, To, Tp, TK, TM, TA, TJ, TL, Tr;
Chris@82 218 Tq = Tn - Te;
Chris@82 219 To = Te + Tn;
Chris@82 220 Tp = FNMS(KP500000000, To, T5);
Chris@82 221 TA = Ty - Tz;
Chris@82 222 TJ = TH - TI;
Chris@82 223 TK = FMA(KP618033988, TJ, TA);
Chris@82 224 TM = FNMS(KP618033988, TA, TJ);
Chris@82 225 R0[0] = FMA(KP2_000000000, To, T5);
Chris@82 226 TL = FMA(KP1_118033988, Tq, Tp);
Chris@82 227 R0[WS(rs, 5)] = FMA(KP1_902113032, TM, TL);
Chris@82 228 R1[WS(rs, 7)] = FMS(KP1_902113032, TM, TL);
Chris@82 229 Tr = FNMS(KP1_118033988, Tq, Tp);
Chris@82 230 R1[WS(rs, 2)] = FMS(KP1_902113032, TK, Tr);
Chris@82 231 R0[WS(rs, 10)] = FMA(KP1_902113032, TK, Tr);
Chris@82 232 }
Chris@82 233 {
Chris@82 234 E T2q, T2s, T2d, T2k, T2l, T2m, T2r, T2n;
Chris@82 235 {
Chris@82 236 E T2o, T2p, T2g, T2j;
Chris@82 237 T2o = FMA(KP939062505, T2h, T2i);
Chris@82 238 T2p = FMA(KP062914667, T2e, T2f);
Chris@82 239 T2q = FMA(KP846146756, T2p, T2o);
Chris@82 240 T2s = FNMS(KP451418159, T2o, T2p);
Chris@82 241 T2d = FMA(KP1_902113032, T1O, T1N);
Chris@82 242 T2g = FNMS(KP062914667, T2f, T2e);
Chris@82 243 T2j = FNMS(KP939062505, T2i, T2h);
Chris@82 244 T2k = FNMS(KP730409924, T2j, T2g);
Chris@82 245 T2l = FNMS(KP499013364, T2k, T2d);
Chris@82 246 T2m = FMA(KP730409924, T2j, T2g);
Chris@82 247 }
Chris@82 248 R1[WS(rs, 1)] = -(FMA(KP1_996053456, T2k, T2d));
Chris@82 249 T2r = FMA(KP1_115827804, T2m, T2l);
Chris@82 250 R1[WS(rs, 6)] = FMS(KP1_898359647, T2s, T2r);
Chris@82 251 R0[WS(rs, 9)] = FMA(KP1_898359647, T2s, T2r);
Chris@82 252 T2n = FNMS(KP1_115827804, T2m, T2l);
Chris@82 253 R0[WS(rs, 4)] = FMA(KP1_386580726, T2q, T2n);
Chris@82 254 R1[WS(rs, 11)] = FMS(KP1_386580726, T2q, T2n);
Chris@82 255 }
Chris@82 256 {
Chris@82 257 E T1u, T1w, TT, T1o, T1p, T1q, T1v, T1r;
Chris@82 258 {
Chris@82 259 E T1s, T1t, T18, T1n;
Chris@82 260 T1s = FMA(KP256756360, T10, T17);
Chris@82 261 T1t = FMA(KP549754652, T1f, T1m);
Chris@82 262 T1u = FMA(KP559154169, T1t, T1s);
Chris@82 263 T1w = FNMS(KP683113946, T1s, T1t);
Chris@82 264 TT = FMA(KP1_902113032, TS, TP);
Chris@82 265 T18 = FNMS(KP256756360, T17, T10);
Chris@82 266 T1n = FNMS(KP549754652, T1m, T1f);
Chris@82 267 T1o = FMA(KP904730450, T1n, T18);
Chris@82 268 T1p = FMA(KP484291580, T1o, TT);
Chris@82 269 T1q = FNMS(KP904730450, T1n, T18);
Chris@82 270 }
Chris@82 271 R1[0] = FMS(KP1_937166322, T1o, TT);
Chris@82 272 T1v = FMA(KP1_082908895, T1q, T1p);
Chris@82 273 R1[WS(rs, 5)] = FMS(KP1_666834356, T1w, T1v);
Chris@82 274 R0[WS(rs, 8)] = FMA(KP1_666834356, T1w, T1v);
Chris@82 275 T1r = FNMS(KP1_082908895, T1q, T1p);
Chris@82 276 R0[WS(rs, 3)] = FMA(KP1_842354653, T1u, T1r);
Chris@82 277 R1[WS(rs, 10)] = FMS(KP1_842354653, T1u, T1r);
Chris@82 278 }
Chris@82 279 {
Chris@82 280 E T1K, T1M, T1x, T1E, T1F, T1G, T1L, T1H;
Chris@82 281 {
Chris@82 282 E T1I, T1J, T1A, T1D;
Chris@82 283 T1I = FMA(KP634619297, T1B, T1C);
Chris@82 284 T1J = FNMS(KP470564281, T1y, T1z);
Chris@82 285 T1K = FMA(KP662318342, T1J, T1I);
Chris@82 286 T1M = FNMS(KP576710603, T1I, T1J);
Chris@82 287 T1x = FNMS(KP1_902113032, TS, TP);
Chris@82 288 T1A = FMA(KP470564281, T1z, T1y);
Chris@82 289 T1D = FNMS(KP634619297, T1C, T1B);
Chris@82 290 T1E = FMA(KP933137358, T1D, T1A);
Chris@82 291 T1F = FNMS(KP452413526, T1E, T1x);
Chris@82 292 T1G = FNMS(KP933137358, T1D, T1A);
Chris@82 293 }
Chris@82 294 R0[WS(rs, 2)] = FMA(KP1_809654104, T1E, T1x);
Chris@82 295 T1L = FMA(KP1_011627398, T1G, T1F);
Chris@82 296 R0[WS(rs, 7)] = FNMS(KP1_721083328, T1M, T1L);
Chris@82 297 R1[WS(rs, 9)] = -(FMA(KP1_721083328, T1M, T1L));
Chris@82 298 T1H = FNMS(KP1_011627398, T1G, T1F);
Chris@82 299 R1[WS(rs, 4)] = -(FMA(KP1_606007150, T1K, T1H));
Chris@82 300 R0[WS(rs, 12)] = FNMS(KP1_606007150, T1K, T1H);
Chris@82 301 }
Chris@82 302 {
Chris@82 303 E T2a, T2c, T1P, T24, T25, T26, T2b, T27;
Chris@82 304 {
Chris@82 305 E T28, T29, T1W, T23;
Chris@82 306 T28 = FMA(KP634619297, T1Z, T22);
Chris@82 307 T29 = FMA(KP549754652, T1S, T1V);
Chris@82 308 T2a = FNMS(KP641441904, T29, T28);
Chris@82 309 T2c = FMA(KP595480289, T28, T29);
Chris@82 310 T1P = FNMS(KP1_902113032, T1O, T1N);
Chris@82 311 T1W = FNMS(KP549754652, T1V, T1S);
Chris@82 312 T23 = FNMS(KP634619297, T22, T1Z);
Chris@82 313 T24 = FNMS(KP963507348, T23, T1W);
Chris@82 314 T25 = FMA(KP438153340, T24, T1P);
Chris@82 315 T26 = FMA(KP963507348, T23, T1W);
Chris@82 316 }
Chris@82 317 R0[WS(rs, 1)] = FNMS(KP1_752613360, T24, T1P);
Chris@82 318 T2b = FNMS(KP979740652, T26, T25);
Chris@82 319 R0[WS(rs, 11)] = FNMS(KP1_666834356, T2c, T2b);
Chris@82 320 R1[WS(rs, 3)] = -(FMA(KP1_666834356, T2c, T2b));
Chris@82 321 T27 = FMA(KP979740652, T26, T25);
Chris@82 322 R0[WS(rs, 6)] = FNMS(KP1_606007150, T2a, T27);
Chris@82 323 R1[WS(rs, 8)] = -(FMA(KP1_606007150, T2a, T27));
Chris@82 324 }
Chris@82 325 }
Chris@82 326 }
Chris@82 327 }
Chris@82 328
Chris@82 329 static const kr2c_desc desc = { 25, "r2cbIII_25", {32, 0, 120, 0}, &GENUS };
Chris@82 330
Chris@82 331 void X(codelet_r2cbIII_25) (planner *p) {
Chris@82 332 X(kr2c_register) (p, r2cbIII_25, &desc);
Chris@82 333 }
Chris@82 334
Chris@82 335 #else
Chris@82 336
Chris@82 337 /* Generated by: ../../../genfft/gen_r2cb.native -compact -variables 4 -pipeline-latency 4 -sign 1 -n 25 -name r2cbIII_25 -dft-III -include rdft/scalar/r2cbIII.h */
Chris@82 338
Chris@82 339 /*
Chris@82 340 * This function contains 152 FP additions, 98 FP multiplications,
Chris@82 341 * (or, 100 additions, 46 multiplications, 52 fused multiply/add),
Chris@82 342 * 65 stack variables, 21 constants, and 50 memory accesses
Chris@82 343 */
Chris@82 344 #include "rdft/scalar/r2cbIII.h"
Chris@82 345
Chris@82 346 static void r2cbIII_25(R *R0, R *R1, R *Cr, R *Ci, stride rs, stride csr, stride csi, INT v, INT ivs, INT ovs)
Chris@82 347 {
Chris@82 348 DK(KP968583161, +0.968583161128631119490168375464735813836012403);
Chris@82 349 DK(KP248689887, +0.248689887164854788242283746006447968417567406);
Chris@82 350 DK(KP684547105, +0.684547105928688673732283357621209269889519233);
Chris@82 351 DK(KP728968627, +0.728968627421411523146730319055259111372571664);
Chris@82 352 DK(KP062790519, +0.062790519529313376076178224565631133122484832);
Chris@82 353 DK(KP998026728, +0.998026728428271561952336806863450553336905220);
Chris@82 354 DK(KP876306680, +0.876306680043863587308115903922062583399064238);
Chris@82 355 DK(KP481753674, +0.481753674101715274987191502872129653528542010);
Chris@82 356 DK(KP535826794, +0.535826794978996618271308767867639978063575346);
Chris@82 357 DK(KP844327925, +0.844327925502015078548558063966681505381659241);
Chris@82 358 DK(KP904827052, +0.904827052466019527713668647932697593970413911);
Chris@82 359 DK(KP425779291, +0.425779291565072648862502445744251703979973042);
Chris@82 360 DK(KP250000000, +0.250000000000000000000000000000000000000000000);
Chris@82 361 DK(KP951056516, +0.951056516295153572116439333379382143405698634);
Chris@82 362 DK(KP587785252, +0.587785252292473129168705954639072768597652438);
Chris@82 363 DK(KP559016994, +0.559016994374947424102293417182819058860154590);
Chris@82 364 DK(KP500000000, +0.500000000000000000000000000000000000000000000);
Chris@82 365 DK(KP2_000000000, +2.000000000000000000000000000000000000000000000);
Chris@82 366 DK(KP1_118033988, +1.118033988749894848204586834365638117720309180);
Chris@82 367 DK(KP1_175570504, +1.175570504584946258337411909278145537195304875);
Chris@82 368 DK(KP1_902113032, +1.902113032590307144232878666758764286811397268);
Chris@82 369 {
Chris@82 370 INT i;
Chris@82 371 for (i = v; i > 0; i = i - 1, R0 = R0 + ovs, R1 = R1 + ovs, Cr = Cr + ivs, Ci = Ci + ivs, MAKE_VOLATILE_STRIDE(100, rs), MAKE_VOLATILE_STRIDE(100, csr), MAKE_VOLATILE_STRIDE(100, csi)) {
Chris@82 372 E TS, T1O, T5, TP, T1N, TI, TH, Te, T17, T2h, T1y, T1V, T10, T2g, T1x;
Chris@82 373 E T1S, Tz, Ty, Tn, T1m, T2e, T1B, T22, T1f, T2d, T1A, T1Z, TQ, TR;
Chris@82 374 TQ = Ci[WS(csi, 2)];
Chris@82 375 TR = Ci[WS(csi, 7)];
Chris@82 376 TS = FNMS(KP1_175570504, TR, KP1_902113032 * TQ);
Chris@82 377 T1O = FMA(KP1_902113032, TR, KP1_175570504 * TQ);
Chris@82 378 {
Chris@82 379 E T1, T4, TN, T2, T3, TO;
Chris@82 380 T1 = Cr[WS(csr, 12)];
Chris@82 381 T2 = Cr[WS(csr, 7)];
Chris@82 382 T3 = Cr[WS(csr, 2)];
Chris@82 383 T4 = T2 + T3;
Chris@82 384 TN = KP1_118033988 * (T3 - T2);
Chris@82 385 T5 = FMA(KP2_000000000, T4, T1);
Chris@82 386 TO = FMS(KP500000000, T4, T1);
Chris@82 387 TP = TN - TO;
Chris@82 388 T1N = TO + TN;
Chris@82 389 }
Chris@82 390 {
Chris@82 391 E T6, Td, T15, TU, T14, T11, TX, TY;
Chris@82 392 T6 = Cr[WS(csr, 11)];
Chris@82 393 TI = Ci[WS(csi, 11)];
Chris@82 394 {
Chris@82 395 E T7, T8, T9, Ta, Tb, Tc;
Chris@82 396 T7 = Cr[WS(csr, 6)];
Chris@82 397 T8 = Cr[WS(csr, 8)];
Chris@82 398 T9 = T7 + T8;
Chris@82 399 Ta = Cr[WS(csr, 1)];
Chris@82 400 Tb = Cr[WS(csr, 3)];
Chris@82 401 Tc = Ta + Tb;
Chris@82 402 Td = T9 + Tc;
Chris@82 403 T15 = Ta - Tb;
Chris@82 404 TU = KP559016994 * (Tc - T9);
Chris@82 405 T14 = T8 - T7;
Chris@82 406 }
Chris@82 407 {
Chris@82 408 E TB, TC, TD, TE, TF, TG;
Chris@82 409 TB = Ci[WS(csi, 6)];
Chris@82 410 TC = Ci[WS(csi, 8)];
Chris@82 411 TD = TB - TC;
Chris@82 412 TE = Ci[WS(csi, 1)];
Chris@82 413 TF = Ci[WS(csi, 3)];
Chris@82 414 TG = TE - TF;
Chris@82 415 TH = TD + TG;
Chris@82 416 T11 = KP559016994 * (TD - TG);
Chris@82 417 TX = TB + TC;
Chris@82 418 TY = TE + TF;
Chris@82 419 }
Chris@82 420 Te = T6 + Td;
Chris@82 421 {
Chris@82 422 E T16, T1T, T13, T1U, T12;
Chris@82 423 T16 = FMA(KP587785252, T14, KP951056516 * T15);
Chris@82 424 T1T = FNMS(KP587785252, T15, KP951056516 * T14);
Chris@82 425 T12 = FNMS(KP250000000, TH, TI);
Chris@82 426 T13 = T11 - T12;
Chris@82 427 T1U = T11 + T12;
Chris@82 428 T17 = T13 - T16;
Chris@82 429 T2h = T1T - T1U;
Chris@82 430 T1y = T16 + T13;
Chris@82 431 T1V = T1T + T1U;
Chris@82 432 }
Chris@82 433 {
Chris@82 434 E TZ, T1R, TW, T1Q, TV;
Chris@82 435 TZ = FNMS(KP951056516, TY, KP587785252 * TX);
Chris@82 436 T1R = FMA(KP951056516, TX, KP587785252 * TY);
Chris@82 437 TV = FMS(KP250000000, Td, T6);
Chris@82 438 TW = TU - TV;
Chris@82 439 T1Q = TV + TU;
Chris@82 440 T10 = TW + TZ;
Chris@82 441 T2g = T1Q + T1R;
Chris@82 442 T1x = TZ - TW;
Chris@82 443 T1S = T1Q - T1R;
Chris@82 444 }
Chris@82 445 }
Chris@82 446 {
Chris@82 447 E Tf, Tm, T1k, T19, T1j, T1g, T1c, T1d;
Chris@82 448 Tf = Cr[WS(csr, 10)];
Chris@82 449 Tz = Ci[WS(csi, 10)];
Chris@82 450 {
Chris@82 451 E Tg, Th, Ti, Tj, Tk, Tl;
Chris@82 452 Tg = Cr[WS(csr, 5)];
Chris@82 453 Th = Cr[WS(csr, 9)];
Chris@82 454 Ti = Tg + Th;
Chris@82 455 Tj = Cr[0];
Chris@82 456 Tk = Cr[WS(csr, 4)];
Chris@82 457 Tl = Tj + Tk;
Chris@82 458 Tm = Ti + Tl;
Chris@82 459 T1k = Tj - Tk;
Chris@82 460 T19 = KP559016994 * (Tl - Ti);
Chris@82 461 T1j = Th - Tg;
Chris@82 462 }
Chris@82 463 {
Chris@82 464 E Ts, Tt, Tu, Tv, Tw, Tx;
Chris@82 465 Ts = Ci[WS(csi, 4)];
Chris@82 466 Tt = Ci[0];
Chris@82 467 Tu = Ts - Tt;
Chris@82 468 Tv = Ci[WS(csi, 5)];
Chris@82 469 Tw = Ci[WS(csi, 9)];
Chris@82 470 Tx = Tv - Tw;
Chris@82 471 Ty = Tu - Tx;
Chris@82 472 T1g = KP559016994 * (Tx + Tu);
Chris@82 473 T1c = Tv + Tw;
Chris@82 474 T1d = Tt + Ts;
Chris@82 475 }
Chris@82 476 Tn = Tf + Tm;
Chris@82 477 {
Chris@82 478 E T1l, T20, T1i, T21, T1h;
Chris@82 479 T1l = FMA(KP587785252, T1j, KP951056516 * T1k);
Chris@82 480 T20 = FNMS(KP587785252, T1k, KP951056516 * T1j);
Chris@82 481 T1h = FMA(KP250000000, Ty, Tz);
Chris@82 482 T1i = T1g - T1h;
Chris@82 483 T21 = T1g + T1h;
Chris@82 484 T1m = T1i - T1l;
Chris@82 485 T2e = T21 - T20;
Chris@82 486 T1B = T1l + T1i;
Chris@82 487 T22 = T20 + T21;
Chris@82 488 }
Chris@82 489 {
Chris@82 490 E T1e, T1Y, T1b, T1X, T1a;
Chris@82 491 T1e = FNMS(KP951056516, T1d, KP587785252 * T1c);
Chris@82 492 T1Y = FMA(KP951056516, T1c, KP587785252 * T1d);
Chris@82 493 T1a = FMS(KP250000000, Tm, Tf);
Chris@82 494 T1b = T19 - T1a;
Chris@82 495 T1X = T1a + T19;
Chris@82 496 T1f = T1b + T1e;
Chris@82 497 T2d = T1X + T1Y;
Chris@82 498 T1A = T1e - T1b;
Chris@82 499 T1Z = T1X - T1Y;
Chris@82 500 }
Chris@82 501 }
Chris@82 502 {
Chris@82 503 E Tq, To, Tp, TK, TM, TA, TJ, TL, Tr;
Chris@82 504 Tq = KP1_118033988 * (Tn - Te);
Chris@82 505 To = Te + Tn;
Chris@82 506 Tp = FMS(KP500000000, To, T5);
Chris@82 507 TA = Ty - Tz;
Chris@82 508 TJ = TH + TI;
Chris@82 509 TK = FNMS(KP1_902113032, TJ, KP1_175570504 * TA);
Chris@82 510 TM = FMA(KP1_175570504, TJ, KP1_902113032 * TA);
Chris@82 511 R0[0] = FMA(KP2_000000000, To, T5);
Chris@82 512 TL = Tq - Tp;
Chris@82 513 R0[WS(rs, 5)] = TL + TM;
Chris@82 514 R1[WS(rs, 7)] = TM - TL;
Chris@82 515 Tr = Tp + Tq;
Chris@82 516 R1[WS(rs, 2)] = Tr + TK;
Chris@82 517 R0[WS(rs, 10)] = TK - Tr;
Chris@82 518 }
Chris@82 519 {
Chris@82 520 E T2q, T2s, T2k, T2j, T2l, T2m, T2r, T2n;
Chris@82 521 {
Chris@82 522 E T2o, T2p, T2f, T2i;
Chris@82 523 T2o = FNMS(KP904827052, T2d, KP425779291 * T2e);
Chris@82 524 T2p = FNMS(KP535826794, T2h, KP844327925 * T2g);
Chris@82 525 T2q = FNMS(KP1_902113032, T2p, KP1_175570504 * T2o);
Chris@82 526 T2s = FMA(KP1_175570504, T2p, KP1_902113032 * T2o);
Chris@82 527 T2k = T1N + T1O;
Chris@82 528 T2f = FMA(KP425779291, T2d, KP904827052 * T2e);
Chris@82 529 T2i = FMA(KP535826794, T2g, KP844327925 * T2h);
Chris@82 530 T2j = T2f - T2i;
Chris@82 531 T2l = FMA(KP500000000, T2j, T2k);
Chris@82 532 T2m = KP1_118033988 * (T2i + T2f);
Chris@82 533 }
Chris@82 534 R0[WS(rs, 2)] = FMS(KP2_000000000, T2j, T2k);
Chris@82 535 T2r = T2m - T2l;
Chris@82 536 R0[WS(rs, 7)] = T2r + T2s;
Chris@82 537 R1[WS(rs, 9)] = T2s - T2r;
Chris@82 538 T2n = T2l + T2m;
Chris@82 539 R1[WS(rs, 4)] = T2n + T2q;
Chris@82 540 R0[WS(rs, 12)] = T2q - T2n;
Chris@82 541 }
Chris@82 542 {
Chris@82 543 E T1u, T1w, TT, T1o, T1p, T1q, T1v, T1r;
Chris@82 544 {
Chris@82 545 E T1s, T1t, T18, T1n;
Chris@82 546 T1s = FMA(KP481753674, T10, KP876306680 * T17);
Chris@82 547 T1t = FMA(KP844327925, T1f, KP535826794 * T1m);
Chris@82 548 T1u = FMA(KP1_902113032, T1s, KP1_175570504 * T1t);
Chris@82 549 T1w = FNMS(KP1_175570504, T1s, KP1_902113032 * T1t);
Chris@82 550 TT = TP - TS;
Chris@82 551 T18 = FNMS(KP481753674, T17, KP876306680 * T10);
Chris@82 552 T1n = FNMS(KP844327925, T1m, KP535826794 * T1f);
Chris@82 553 T1o = T18 + T1n;
Chris@82 554 T1p = FMS(KP500000000, T1o, TT);
Chris@82 555 T1q = KP1_118033988 * (T1n - T18);
Chris@82 556 }
Chris@82 557 R0[WS(rs, 1)] = FMA(KP2_000000000, T1o, TT);
Chris@82 558 T1v = T1q - T1p;
Chris@82 559 R0[WS(rs, 6)] = T1v + T1w;
Chris@82 560 R1[WS(rs, 8)] = T1w - T1v;
Chris@82 561 T1r = T1p + T1q;
Chris@82 562 R1[WS(rs, 3)] = T1r + T1u;
Chris@82 563 R0[WS(rs, 11)] = T1u - T1r;
Chris@82 564 }
Chris@82 565 {
Chris@82 566 E T1H, T1L, T1E, T1D, T1I, T1J, T1M, T1K;
Chris@82 567 {
Chris@82 568 E T1F, T1G, T1z, T1C;
Chris@82 569 T1F = FNMS(KP062790519, T1B, KP998026728 * T1A);
Chris@82 570 T1G = FNMS(KP684547105, T1x, KP728968627 * T1y);
Chris@82 571 T1H = FNMS(KP1_902113032, T1G, KP1_175570504 * T1F);
Chris@82 572 T1L = FMA(KP1_175570504, T1G, KP1_902113032 * T1F);
Chris@82 573 T1E = TP + TS;
Chris@82 574 T1z = FMA(KP728968627, T1x, KP684547105 * T1y);
Chris@82 575 T1C = FMA(KP062790519, T1A, KP998026728 * T1B);
Chris@82 576 T1D = T1z + T1C;
Chris@82 577 T1I = FMA(KP500000000, T1D, T1E);
Chris@82 578 T1J = KP1_118033988 * (T1C - T1z);
Chris@82 579 }
Chris@82 580 R1[WS(rs, 1)] = FMS(KP2_000000000, T1D, T1E);
Chris@82 581 T1M = T1J - T1I;
Chris@82 582 R0[WS(rs, 9)] = T1L - T1M;
Chris@82 583 R1[WS(rs, 6)] = T1L + T1M;
Chris@82 584 T1K = T1I + T1J;
Chris@82 585 R1[WS(rs, 11)] = T1H - T1K;
Chris@82 586 R0[WS(rs, 4)] = T1H + T1K;
Chris@82 587 }
Chris@82 588 {
Chris@82 589 E T2a, T2c, T1P, T24, T25, T26, T2b, T27;
Chris@82 590 {
Chris@82 591 E T28, T29, T1W, T23;
Chris@82 592 T28 = FMA(KP248689887, T1S, KP968583161 * T1V);
Chris@82 593 T29 = FMA(KP481753674, T1Z, KP876306680 * T22);
Chris@82 594 T2a = FMA(KP1_902113032, T28, KP1_175570504 * T29);
Chris@82 595 T2c = FNMS(KP1_175570504, T28, KP1_902113032 * T29);
Chris@82 596 T1P = T1N - T1O;
Chris@82 597 T1W = FNMS(KP248689887, T1V, KP968583161 * T1S);
Chris@82 598 T23 = FNMS(KP481753674, T22, KP876306680 * T1Z);
Chris@82 599 T24 = T1W + T23;
Chris@82 600 T25 = FMS(KP500000000, T24, T1P);
Chris@82 601 T26 = KP1_118033988 * (T23 - T1W);
Chris@82 602 }
Chris@82 603 R1[0] = FMA(KP2_000000000, T24, T1P);
Chris@82 604 T2b = T26 - T25;
Chris@82 605 R1[WS(rs, 5)] = T2b + T2c;
Chris@82 606 R0[WS(rs, 8)] = T2c - T2b;
Chris@82 607 T27 = T25 + T26;
Chris@82 608 R0[WS(rs, 3)] = T27 + T2a;
Chris@82 609 R1[WS(rs, 10)] = T2a - T27;
Chris@82 610 }
Chris@82 611 }
Chris@82 612 }
Chris@82 613 }
Chris@82 614
Chris@82 615 static const kr2c_desc desc = { 25, "r2cbIII_25", {100, 46, 52, 0}, &GENUS };
Chris@82 616
Chris@82 617 void X(codelet_r2cbIII_25) (planner *p) {
Chris@82 618 X(kr2c_register) (p, r2cbIII_25, &desc);
Chris@82 619 }
Chris@82 620
Chris@82 621 #endif