a[] = 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511
cft1st(n = 512);
  // computes first 16 (8 complexes) manually
  l=2 btrfly(j=16, wk1r=0, wk1i=0, wk2r=0, wk2i=0, wk3r=0, wk3i=0, a, b, c, d);
        a={16,17}, b={18,19}, c={20,21}, d={22,23}
  l=2 btrfly(j+8=16+8, wk1r=0, wk1i=0, -wk2i=-0, wk2r=0, wk3r=0, wk3i=0, a, b, c, d);
        a={24,25}, b={26,27}, c={28,29}, d={30,31}
  l=2 btrfly(j=32, wk1r=0, wk1i=0, wk2r=0, wk2i=0, wk3r=0, wk3i=0, a, b, c, d);
        a={32,33}, b={34,35}, c={36,37}, d={38,39}
  l=2 btrfly(j+8=32+8, wk1r=0, wk1i=0, -wk2i=-0, wk2r=0, wk3r=0, wk3i=0, a, b, c, d);
        a={40,41}, b={42,43}, c={44,45}, d={46,47}
  l=2 btrfly(j=48, wk1r=0, wk1i=0, wk2r=0, wk2i=0, wk3r=0, wk3i=0, a, b, c, d);
        a={48,49}, b={50,51}, c={52,53}, d={54,55}
  l=2 btrfly(j+8=48+8, wk1r=0, wk1i=0, -wk2i=-0, wk2r=0, wk3r=0, wk3i=0, a, b, c, d);
        a={56,57}, b={58,59}, c={60,61}, d={62,63}
  l=2 btrfly(j=64, wk1r=0, wk1i=0, wk2r=0, wk2i=0, wk3r=0, wk3i=0, a, b, c, d);
        a={64,65}, b={66,67}, c={68,69}, d={70,71}
  l=2 btrfly(j+8=64+8, wk1r=0, wk1i=0, -wk2i=-0, wk2r=0, wk3r=0, wk3i=0, a, b, c, d);
        a={72,73}, b={74,75}, c={76,77}, d={78,79}
  l=2 btrfly(j=80, wk1r=0, wk1i=0, wk2r=0, wk2i=0, wk3r=0, wk3i=0, a, b, c, d);
        a={80,81}, b={82,83}, c={84,85}, d={86,87}
  l=2 btrfly(j+8=80+8, wk1r=0, wk1i=0, -wk2i=-0, wk2r=0, wk3r=0, wk3i=0, a, b, c, d);
        a={88,89}, b={90,91}, c={92,93}, d={94,95}
  l=2 btrfly(j=96, wk1r=0, wk1i=0, wk2r=0, wk2i=0, wk3r=0, wk3i=0, a, b, c, d);
        a={96,97}, b={98,99}, c={100,101}, d={102,103}
  l=2 btrfly(j+8=96+8, wk1r=0, wk1i=0, -wk2i=-0, wk2r=0, wk3r=0, wk3i=0, a, b, c, d);
        a={104,105}, b={106,107}, c={108,109}, d={110,111}
  l=2 btrfly(j=112, wk1r=0, wk1i=0, wk2r=0, wk2i=0, wk3r=0, wk3i=0, a, b, c, d);
        a={112,113}, b={114,115}, c={116,117}, d={118,119}
  l=2 btrfly(j+8=112+8, wk1r=0, wk1i=0, -wk2i=-0, wk2r=0, wk3r=0, wk3i=0, a, b, c, d);
        a={120,121}, b={122,123}, c={124,125}, d={126,127}
  l=2 btrfly(j=128, wk1r=0, wk1i=0, wk2r=0, wk2i=0, wk3r=0, wk3i=0, a, b, c, d);
        a={128,129}, b={130,131}, c={132,133}, d={134,135}
  l=2 btrfly(j+8=128+8, wk1r=0, wk1i=0, -wk2i=-0, wk2r=0, wk3r=0, wk3i=0, a, b, c, d);
        a={136,137}, b={138,139}, c={140,141}, d={142,143}
  l=2 btrfly(j=144, wk1r=0, wk1i=0, wk2r=0, wk2i=0, wk3r=0, wk3i=0, a, b, c, d);
        a={144,145}, b={146,147}, c={148,149}, d={150,151}
  l=2 btrfly(j+8=144+8, wk1r=0, wk1i=0, -wk2i=-0, wk2r=0, wk3r=0, wk3i=0, a, b, c, d);
        a={152,153}, b={154,155}, c={156,157}, d={158,159}
  l=2 btrfly(j=160, wk1r=0, wk1i=0, wk2r=0, wk2i=0, wk3r=0, wk3i=0, a, b, c, d);
        a={160,161}, b={162,163}, c={164,165}, d={166,167}
  l=2 btrfly(j+8=160+8, wk1r=0, wk1i=0, -wk2i=-0, wk2r=0, wk3r=0, wk3i=0, a, b, c, d);
        a={168,169}, b={170,171}, c={172,173}, d={174,175}
  l=2 btrfly(j=176, wk1r=0, wk1i=0, wk2r=0, wk2i=0, wk3r=0, wk3i=0, a, b, c, d);
        a={176,177}, b={178,179}, c={180,181}, d={182,183}
  l=2 btrfly(j+8=176+8, wk1r=0, wk1i=0, -wk2i=-0, wk2r=0, wk3r=0, wk3i=0, a, b, c, d);
        a={184,185}, b={186,187}, c={188,189}, d={190,191}
  l=2 btrfly(j=192, wk1r=0, wk1i=0, wk2r=0, wk2i=0, wk3r=0, wk3i=0, a, b, c, d);
        a={192,193}, b={194,195}, c={196,197}, d={198,199}
  l=2 btrfly(j+8=192+8, wk1r=0, wk1i=0, -wk2i=-0, wk2r=0, wk3r=0, wk3i=0, a, b, c, d);
        a={200,201}, b={202,203}, c={204,205}, d={206,207}
  l=2 btrfly(j=208, wk1r=0, wk1i=0, wk2r=0, wk2i=0, wk3r=0, wk3i=0, a, b, c, d);
        a={208,209}, b={210,211}, c={212,213}, d={214,215}
  l=2 btrfly(j+8=208+8, wk1r=0, wk1i=0, -wk2i=-0, wk2r=0, wk3r=0, wk3i=0, a, b, c, d);
        a={216,217}, b={218,219}, c={220,221}, d={222,223}
  l=2 btrfly(j=224, wk1r=0, wk1i=0, wk2r=0, wk2i=0, wk3r=0, wk3i=0, a, b, c, d);
        a={224,225}, b={226,227}, c={228,229}, d={230,231}
  l=2 btrfly(j+8=224+8, wk1r=0, wk1i=0, -wk2i=-0, wk2r=0, wk3r=0, wk3i=0, a, b, c, d);
        a={232,233}, b={234,235}, c={236,237}, d={238,239}
  l=2 btrfly(j=240, wk1r=0, wk1i=0, wk2r=0, wk2i=0, wk3r=0, wk3i=0, a, b, c, d);
        a={240,241}, b={242,243}, c={244,245}, d={246,247}
  l=2 btrfly(j+8=240+8, wk1r=0, wk1i=0, -wk2i=-0, wk2r=0, wk3r=0, wk3i=0, a, b, c, d);
        a={248,249}, b={250,251}, c={252,253}, d={254,255}
  l=2 btrfly(j=256, wk1r=0, wk1i=0, wk2r=0, wk2i=0, wk3r=0, wk3i=0, a, b, c, d);
        a={256,257}, b={258,259}, c={260,261}, d={262,263}
  l=2 btrfly(j+8=256+8, wk1r=0, wk1i=0, -wk2i=-0, wk2r=0, wk3r=0, wk3i=0, a, b, c, d);
        a={264,265}, b={266,267}, c={268,269}, d={270,271}
  l=2 btrfly(j=272, wk1r=0, wk1i=0, wk2r=0, wk2i=0, wk3r=0, wk3i=0, a, b, c, d);
        a={272,273}, b={274,275}, c={276,277}, d={278,279}
  l=2 btrfly(j+8=272+8, wk1r=0, wk1i=0, -wk2i=-0, wk2r=0, wk3r=0, wk3i=0, a, b, c, d);
        a={280,281}, b={282,283}, c={284,285}, d={286,287}
  l=2 btrfly(j=288, wk1r=0, wk1i=0, wk2r=0, wk2i=0, wk3r=0, wk3i=0, a, b, c, d);
        a={288,289}, b={290,291}, c={292,293}, d={294,295}
  l=2 btrfly(j+8=288+8, wk1r=0, wk1i=0, -wk2i=-0, wk2r=0, wk3r=0, wk3i=0, a, b, c, d);
        a={296,297}, b={298,299}, c={300,301}, d={302,303}
  l=2 btrfly(j=304, wk1r=0, wk1i=0, wk2r=0, wk2i=0, wk3r=0, wk3i=0, a, b, c, d);
        a={304,305}, b={306,307}, c={308,309}, d={310,311}
  l=2 btrfly(j+8=304+8, wk1r=0, wk1i=0, -wk2i=-0, wk2r=0, wk3r=0, wk3i=0, a, b, c, d);
        a={312,313}, b={314,315}, c={316,317}, d={318,319}
  l=2 btrfly(j=320, wk1r=0, wk1i=0, wk2r=0, wk2i=0, wk3r=0, wk3i=0, a, b, c, d);
        a={320,321}, b={322,323}, c={324,325}, d={326,327}
  l=2 btrfly(j+8=320+8, wk1r=0, wk1i=0, -wk2i=-0, wk2r=0, wk3r=0, wk3i=0, a, b, c, d);
        a={328,329}, b={330,331}, c={332,333}, d={334,335}
  l=2 btrfly(j=336, wk1r=0, wk1i=0, wk2r=0, wk2i=0, wk3r=0, wk3i=0, a, b, c, d);
        a={336,337}, b={338,339}, c={340,341}, d={342,343}
  l=2 btrfly(j+8=336+8, wk1r=0, wk1i=0, -wk2i=-0, wk2r=0, wk3r=0, wk3i=0, a, b, c, d);
        a={344,345}, b={346,347}, c={348,349}, d={350,351}
  l=2 btrfly(j=352, wk1r=0, wk1i=0, wk2r=0, wk2i=0, wk3r=0, wk3i=0, a, b, c, d);
        a={352,353}, b={354,355}, c={356,357}, d={358,359}
  l=2 btrfly(j+8=352+8, wk1r=0, wk1i=0, -wk2i=-0, wk2r=0, wk3r=0, wk3i=0, a, b, c, d);
        a={360,361}, b={362,363}, c={364,365}, d={366,367}
  l=2 btrfly(j=368, wk1r=0, wk1i=0, wk2r=0, wk2i=0, wk3r=0, wk3i=0, a, b, c, d);
        a={368,369}, b={370,371}, c={372,373}, d={374,375}
  l=2 btrfly(j+8=368+8, wk1r=0, wk1i=0, -wk2i=-0, wk2r=0, wk3r=0, wk3i=0, a, b, c, d);
        a={376,377}, b={378,379}, c={380,381}, d={382,383}
  l=2 btrfly(j=384, wk1r=0, wk1i=0, wk2r=0, wk2i=0, wk3r=0, wk3i=0, a, b, c, d);
        a={384,385}, b={386,387}, c={388,389}, d={390,391}
  l=2 btrfly(j+8=384+8, wk1r=0, wk1i=0, -wk2i=-0, wk2r=0, wk3r=0, wk3i=0, a, b, c, d);
        a={392,393}, b={394,395}, c={396,397}, d={398,399}
  l=2 btrfly(j=400, wk1r=0, wk1i=0, wk2r=0, wk2i=0, wk3r=0, wk3i=0, a, b, c, d);
        a={400,401}, b={402,403}, c={404,405}, d={406,407}
  l=2 btrfly(j+8=400+8, wk1r=0, wk1i=0, -wk2i=-0, wk2r=0, wk3r=0, wk3i=0, a, b, c, d);
        a={408,409}, b={410,411}, c={412,413}, d={414,415}
  l=2 btrfly(j=416, wk1r=0, wk1i=0, wk2r=0, wk2i=0, wk3r=0, wk3i=0, a, b, c, d);
        a={416,417}, b={418,419}, c={420,421}, d={422,423}
  l=2 btrfly(j+8=416+8, wk1r=0, wk1i=0, -wk2i=-0, wk2r=0, wk3r=0, wk3i=0, a, b, c, d);
        a={424,425}, b={426,427}, c={428,429}, d={430,431}
  l=2 btrfly(j=432, wk1r=0, wk1i=0, wk2r=0, wk2i=0, wk3r=0, wk3i=0, a, b, c, d);
        a={432,433}, b={434,435}, c={436,437}, d={438,439}
  l=2 btrfly(j+8=432+8, wk1r=0, wk1i=0, -wk2i=-0, wk2r=0, wk3r=0, wk3i=0, a, b, c, d);
        a={440,441}, b={442,443}, c={444,445}, d={446,447}
  l=2 btrfly(j=448, wk1r=0, wk1i=0, wk2r=0, wk2i=0, wk3r=0, wk3i=0, a, b, c, d);
        a={448,449}, b={450,451}, c={452,453}, d={454,455}
  l=2 btrfly(j+8=448+8, wk1r=0, wk1i=0, -wk2i=-0, wk2r=0, wk3r=0, wk3i=0, a, b, c, d);
        a={456,457}, b={458,459}, c={460,461}, d={462,463}
  l=2 btrfly(j=464, wk1r=0, wk1i=0, wk2r=0, wk2i=0, wk3r=0, wk3i=0, a, b, c, d);
        a={464,465}, b={466,467}, c={468,469}, d={470,471}
  l=2 btrfly(j+8=464+8, wk1r=0, wk1i=0, -wk2i=-0, wk2r=0, wk3r=0, wk3i=0, a, b, c, d);
        a={472,473}, b={474,475}, c={476,477}, d={478,479}
  l=2 btrfly(j=480, wk1r=0, wk1i=0, wk2r=0, wk2i=0, wk3r=0, wk3i=0, a, b, c, d);
        a={480,481}, b={482,483}, c={484,485}, d={486,487}
  l=2 btrfly(j+8=480+8, wk1r=0, wk1i=0, -wk2i=-0, wk2r=0, wk3r=0, wk3i=0, a, b, c, d);
        a={488,489}, b={490,491}, c={492,493}, d={494,495}
  l=2 btrfly(j=496, wk1r=0, wk1i=0, wk2r=0, wk2i=0, wk3r=0, wk3i=0, a, b, c, d);
        a={496,497}, b={498,499}, c={500,501}, d={502,503}
  l=2 btrfly(j+8=496+8, wk1r=0, wk1i=0, -wk2i=-0, wk2r=0, wk3r=0, wk3i=0, a, b, c, d);
        a={504,505}, b={506,507}, c={508,509}, d={510,511}
cftmd1(n=512, l=8, a, w)
  cftmd0(n=512, l=8, a, w)
    l=8 btrfly(j=0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, a, b, c, d)
        a={0,1}, b={8,9}, c={16,17}, d={24,25}
    l=8 btrfly(j=2, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, a, b, c, d)
        a={2,3}, b={10,11}, c={18,19}, d={26,27}
    l=8 btrfly(j=4, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, a, b, c, d)
        a={4,5}, b={12,13}, c={20,21}, d={28,29}
    l=8 btrfly(j=6, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, a, b, c, d)
        a={6,7}, b={14,15}, c={22,23}, d={30,31}
    l=8 btrfly(j=32, wk1r=0, wk1r=0, 0.0, 1.0, -wk1r=-0, wk1r=0, a, b, c, d)
        a={32,33}, b={40,41}, c={48,49}, d={56,57}
    l=8 btrfly(j=34, wk1r=0, wk1r=0, 0.0, 1.0, -wk1r=-0, wk1r=0, a, b, c, d)
        a={34,35}, b={42,43}, c={50,51}, d={58,59}
    l=8 btrfly(j=36, wk1r=0, wk1r=0, 0.0, 1.0, -wk1r=-0, wk1r=0, a, b, c, d)
        a={36,37}, b={44,45}, c={52,53}, d={60,61}
    l=8 btrfly(j=38, wk1r=0, wk1r=0, 0.0, 1.0, -wk1r=-0, wk1r=0, a, b, c, d)
        a={38,39}, b={46,47}, c={54,55}, d={62,63}
  l=8 btrfly(j=64, wk1r=0, wk1i=0, wk2r=0, wk2i=0, wk3r=0, wk3i=0, a, b, c, d);
        a={64,65}, b={72,73}, c={80,81}, d={88,89}
  l=8 btrfly(j=66, wk1r=0, wk1i=0, wk2r=0, wk2i=0, wk3r=0, wk3i=0, a, b, c, d);
        a={66,67}, b={74,75}, c={82,83}, d={90,91}
  l=8 btrfly(j=68, wk1r=0, wk1i=0, wk2r=0, wk2i=0, wk3r=0, wk3i=0, a, b, c, d);
        a={68,69}, b={76,77}, c={84,85}, d={92,93}
  l=8 btrfly(j=70, wk1r=0, wk1i=0, wk2r=0, wk2i=0, wk3r=0, wk3i=0, a, b, c, d);
        a={70,71}, b={78,79}, c={86,87}, d={94,95}
  l=8 btrfly(j+8=96+8, wk1r=0, wk1i=0, -wk2i=-0, wk2r=0, wk3r=0, wk3i=0, a, b, c, d);
        a={96,97}, b={104,105}, c={112,113}, d={120,121}
  l=8 btrfly(j+8=98+8, wk1r=0, wk1i=0, -wk2i=-0, wk2r=0, wk3r=0, wk3i=0, a, b, c, d);
        a={98,99}, b={106,107}, c={114,115}, d={122,123}
  l=8 btrfly(j+8=100+8, wk1r=0, wk1i=0, -wk2i=-0, wk2r=0, wk3r=0, wk3i=0, a, b, c, d);
        a={100,101}, b={108,109}, c={116,117}, d={124,125}
  l=8 btrfly(j+8=102+8, wk1r=0, wk1i=0, -wk2i=-0, wk2r=0, wk3r=0, wk3i=0, a, b, c, d);
        a={102,103}, b={110,111}, c={118,119}, d={126,127}
  l=8 btrfly(j=128, wk1r=0, wk1i=0, wk2r=0, wk2i=0, wk3r=0, wk3i=0, a, b, c, d);
        a={128,129}, b={136,137}, c={144,145}, d={152,153}
  l=8 btrfly(j=130, wk1r=0, wk1i=0, wk2r=0, wk2i=0, wk3r=0, wk3i=0, a, b, c, d);
        a={130,131}, b={138,139}, c={146,147}, d={154,155}
  l=8 btrfly(j=132, wk1r=0, wk1i=0, wk2r=0, wk2i=0, wk3r=0, wk3i=0, a, b, c, d);
        a={132,133}, b={140,141}, c={148,149}, d={156,157}
  l=8 btrfly(j=134, wk1r=0, wk1i=0, wk2r=0, wk2i=0, wk3r=0, wk3i=0, a, b, c, d);
        a={134,135}, b={142,143}, c={150,151}, d={158,159}
  l=8 btrfly(j+8=160+8, wk1r=0, wk1i=0, -wk2i=-0, wk2r=0, wk3r=0, wk3i=0, a, b, c, d);
        a={160,161}, b={168,169}, c={176,177}, d={184,185}
  l=8 btrfly(j+8=162+8, wk1r=0, wk1i=0, -wk2i=-0, wk2r=0, wk3r=0, wk3i=0, a, b, c, d);
        a={162,163}, b={170,171}, c={178,179}, d={186,187}
  l=8 btrfly(j+8=164+8, wk1r=0, wk1i=0, -wk2i=-0, wk2r=0, wk3r=0, wk3i=0, a, b, c, d);
        a={164,165}, b={172,173}, c={180,181}, d={188,189}
  l=8 btrfly(j+8=166+8, wk1r=0, wk1i=0, -wk2i=-0, wk2r=0, wk3r=0, wk3i=0, a, b, c, d);
        a={166,167}, b={174,175}, c={182,183}, d={190,191}
  l=8 btrfly(j=192, wk1r=0, wk1i=0, wk2r=0, wk2i=0, wk3r=0, wk3i=0, a, b, c, d);
        a={192,193}, b={200,201}, c={208,209}, d={216,217}
  l=8 btrfly(j=194, wk1r=0, wk1i=0, wk2r=0, wk2i=0, wk3r=0, wk3i=0, a, b, c, d);
        a={194,195}, b={202,203}, c={210,211}, d={218,219}
  l=8 btrfly(j=196, wk1r=0, wk1i=0, wk2r=0, wk2i=0, wk3r=0, wk3i=0, a, b, c, d);
        a={196,197}, b={204,205}, c={212,213}, d={220,221}
  l=8 btrfly(j=198, wk1r=0, wk1i=0, wk2r=0, wk2i=0, wk3r=0, wk3i=0, a, b, c, d);
        a={198,199}, b={206,207}, c={214,215}, d={222,223}
  l=8 btrfly(j+8=224+8, wk1r=0, wk1i=0, -wk2i=-0, wk2r=0, wk3r=0, wk3i=0, a, b, c, d);
        a={224,225}, b={232,233}, c={240,241}, d={248,249}
  l=8 btrfly(j+8=226+8, wk1r=0, wk1i=0, -wk2i=-0, wk2r=0, wk3r=0, wk3i=0, a, b, c, d);
        a={226,227}, b={234,235}, c={242,243}, d={250,251}
  l=8 btrfly(j+8=228+8, wk1r=0, wk1i=0, -wk2i=-0, wk2r=0, wk3r=0, wk3i=0, a, b, c, d);
        a={228,229}, b={236,237}, c={244,245}, d={252,253}
  l=8 btrfly(j+8=230+8, wk1r=0, wk1i=0, -wk2i=-0, wk2r=0, wk3r=0, wk3i=0, a, b, c, d);
        a={230,231}, b={238,239}, c={246,247}, d={254,255}
  l=8 btrfly(j=256, wk1r=0, wk1i=0, wk2r=0, wk2i=0, wk3r=0, wk3i=0, a, b, c, d);
        a={256,257}, b={264,265}, c={272,273}, d={280,281}
  l=8 btrfly(j=258, wk1r=0, wk1i=0, wk2r=0, wk2i=0, wk3r=0, wk3i=0, a, b, c, d);
        a={258,259}, b={266,267}, c={274,275}, d={282,283}
  l=8 btrfly(j=260, wk1r=0, wk1i=0, wk2r=0, wk2i=0, wk3r=0, wk3i=0, a, b, c, d);
        a={260,261}, b={268,269}, c={276,277}, d={284,285}
  l=8 btrfly(j=262, wk1r=0, wk1i=0, wk2r=0, wk2i=0, wk3r=0, wk3i=0, a, b, c, d);
        a={262,263}, b={270,271}, c={278,279}, d={286,287}
  l=8 btrfly(j+8=288+8, wk1r=0, wk1i=0, -wk2i=-0, wk2r=0, wk3r=0, wk3i=0, a, b, c, d);
        a={288,289}, b={296,297}, c={304,305}, d={312,313}
  l=8 btrfly(j+8=290+8, wk1r=0, wk1i=0, -wk2i=-0, wk2r=0, wk3r=0, wk3i=0, a, b, c, d);
        a={290,291}, b={298,299}, c={306,307}, d={314,315}
  l=8 btrfly(j+8=292+8, wk1r=0, wk1i=0, -wk2i=-0, wk2r=0, wk3r=0, wk3i=0, a, b, c, d);
        a={292,293}, b={300,301}, c={308,309}, d={316,317}
  l=8 btrfly(j+8=294+8, wk1r=0, wk1i=0, -wk2i=-0, wk2r=0, wk3r=0, wk3i=0, a, b, c, d);
        a={294,295}, b={302,303}, c={310,311}, d={318,319}
  l=8 btrfly(j=320, wk1r=0, wk1i=0, wk2r=0, wk2i=0, wk3r=0, wk3i=0, a, b, c, d);
        a={320,321}, b={328,329}, c={336,337}, d={344,345}
  l=8 btrfly(j=322, wk1r=0, wk1i=0, wk2r=0, wk2i=0, wk3r=0, wk3i=0, a, b, c, d);
        a={322,323}, b={330,331}, c={338,339}, d={346,347}
  l=8 btrfly(j=324, wk1r=0, wk1i=0, wk2r=0, wk2i=0, wk3r=0, wk3i=0, a, b, c, d);
        a={324,325}, b={332,333}, c={340,341}, d={348,349}
  l=8 btrfly(j=326, wk1r=0, wk1i=0, wk2r=0, wk2i=0, wk3r=0, wk3i=0, a, b, c, d);
        a={326,327}, b={334,335}, c={342,343}, d={350,351}
  l=8 btrfly(j+8=352+8, wk1r=0, wk1i=0, -wk2i=-0, wk2r=0, wk3r=0, wk3i=0, a, b, c, d);
        a={352,353}, b={360,361}, c={368,369}, d={376,377}
  l=8 btrfly(j+8=354+8, wk1r=0, wk1i=0, -wk2i=-0, wk2r=0, wk3r=0, wk3i=0, a, b, c, d);
        a={354,355}, b={362,363}, c={370,371}, d={378,379}
  l=8 btrfly(j+8=356+8, wk1r=0, wk1i=0, -wk2i=-0, wk2r=0, wk3r=0, wk3i=0, a, b, c, d);
        a={356,357}, b={364,365}, c={372,373}, d={380,381}
  l=8 btrfly(j+8=358+8, wk1r=0, wk1i=0, -wk2i=-0, wk2r=0, wk3r=0, wk3i=0, a, b, c, d);
        a={358,359}, b={366,367}, c={374,375}, d={382,383}
  l=8 btrfly(j=384, wk1r=0, wk1i=0, wk2r=0, wk2i=0, wk3r=0, wk3i=0, a, b, c, d);
        a={384,385}, b={392,393}, c={400,401}, d={408,409}
  l=8 btrfly(j=386, wk1r=0, wk1i=0, wk2r=0, wk2i=0, wk3r=0, wk3i=0, a, b, c, d);
        a={386,387}, b={394,395}, c={402,403}, d={410,411}
  l=8 btrfly(j=388, wk1r=0, wk1i=0, wk2r=0, wk2i=0, wk3r=0, wk3i=0, a, b, c, d);
        a={388,389}, b={396,397}, c={404,405}, d={412,413}
  l=8 btrfly(j=390, wk1r=0, wk1i=0, wk2r=0, wk2i=0, wk3r=0, wk3i=0, a, b, c, d);
        a={390,391}, b={398,399}, c={406,407}, d={414,415}
  l=8 btrfly(j+8=416+8, wk1r=0, wk1i=0, -wk2i=-0, wk2r=0, wk3r=0, wk3i=0, a, b, c, d);
        a={416,417}, b={424,425}, c={432,433}, d={440,441}
  l=8 btrfly(j+8=418+8, wk1r=0, wk1i=0, -wk2i=-0, wk2r=0, wk3r=0, wk3i=0, a, b, c, d);
        a={418,419}, b={426,427}, c={434,435}, d={442,443}
  l=8 btrfly(j+8=420+8, wk1r=0, wk1i=0, -wk2i=-0, wk2r=0, wk3r=0, wk3i=0, a, b, c, d);
        a={420,421}, b={428,429}, c={436,437}, d={444,445}
  l=8 btrfly(j+8=422+8, wk1r=0, wk1i=0, -wk2i=-0, wk2r=0, wk3r=0, wk3i=0, a, b, c, d);
        a={422,423}, b={430,431}, c={438,439}, d={446,447}
  l=8 btrfly(j=448, wk1r=0, wk1i=0, wk2r=0, wk2i=0, wk3r=0, wk3i=0, a, b, c, d);
        a={448,449}, b={456,457}, c={464,465}, d={472,473}
  l=8 btrfly(j=450, wk1r=0, wk1i=0, wk2r=0, wk2i=0, wk3r=0, wk3i=0, a, b, c, d);
        a={450,451}, b={458,459}, c={466,467}, d={474,475}
  l=8 btrfly(j=452, wk1r=0, wk1i=0, wk2r=0, wk2i=0, wk3r=0, wk3i=0, a, b, c, d);
        a={452,453}, b={460,461}, c={468,469}, d={476,477}
  l=8 btrfly(j=454, wk1r=0, wk1i=0, wk2r=0, wk2i=0, wk3r=0, wk3i=0, a, b, c, d);
        a={454,455}, b={462,463}, c={470,471}, d={478,479}
  l=8 btrfly(j+8=480+8, wk1r=0, wk1i=0, -wk2i=-0, wk2r=0, wk3r=0, wk3i=0, a, b, c, d);
        a={480,481}, b={488,489}, c={496,497}, d={504,505}
  l=8 btrfly(j+8=482+8, wk1r=0, wk1i=0, -wk2i=-0, wk2r=0, wk3r=0, wk3i=0, a, b, c, d);
        a={482,483}, b={490,491}, c={498,499}, d={506,507}
  l=8 btrfly(j+8=484+8, wk1r=0, wk1i=0, -wk2i=-0, wk2r=0, wk3r=0, wk3i=0, a, b, c, d);
        a={484,485}, b={492,493}, c={500,501}, d={508,509}
  l=8 btrfly(j+8=486+8, wk1r=0, wk1i=0, -wk2i=-0, wk2r=0, wk3r=0, wk3i=0, a, b, c, d);
        a={486,487}, b={494,495}, c={502,503}, d={510,511}
i=6  cftmd2(n=512, l=32, a, w)
  cftmd0(n=512, l=32, a, w)
    l=32 btrfly(j=0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, a, b, c, d)
        a={0,1}, b={32,33}, c={64,65}, d={96,97}
    l=32 btrfly(j=2, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, a, b, c, d)
        a={2,3}, b={34,35}, c={66,67}, d={98,99}
    l=32 btrfly(j=4, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, a, b, c, d)
        a={4,5}, b={36,37}, c={68,69}, d={100,101}
    l=32 btrfly(j=6, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, a, b, c, d)
        a={6,7}, b={38,39}, c={70,71}, d={102,103}
    l=32 btrfly(j=8, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, a, b, c, d)
        a={8,9}, b={40,41}, c={72,73}, d={104,105}
    l=32 btrfly(j=10, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, a, b, c, d)
        a={10,11}, b={42,43}, c={74,75}, d={106,107}
    l=32 btrfly(j=12, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, a, b, c, d)
        a={12,13}, b={44,45}, c={76,77}, d={108,109}
    l=32 btrfly(j=14, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, a, b, c, d)
        a={14,15}, b={46,47}, c={78,79}, d={110,111}
    l=32 btrfly(j=16, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, a, b, c, d)
        a={16,17}, b={48,49}, c={80,81}, d={112,113}
    l=32 btrfly(j=18, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, a, b, c, d)
        a={18,19}, b={50,51}, c={82,83}, d={114,115}
    l=32 btrfly(j=20, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, a, b, c, d)
        a={20,21}, b={52,53}, c={84,85}, d={116,117}
    l=32 btrfly(j=22, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, a, b, c, d)
        a={22,23}, b={54,55}, c={86,87}, d={118,119}
    l=32 btrfly(j=24, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, a, b, c, d)
        a={24,25}, b={56,57}, c={88,89}, d={120,121}
    l=32 btrfly(j=26, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, a, b, c, d)
        a={26,27}, b={58,59}, c={90,91}, d={122,123}
    l=32 btrfly(j=28, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, a, b, c, d)
        a={28,29}, b={60,61}, c={92,93}, d={124,125}
    l=32 btrfly(j=30, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, a, b, c, d)
        a={30,31}, b={62,63}, c={94,95}, d={126,127}
    l=32 btrfly(j=128, wk1r=0, wk1r=0, 0.0, 1.0, -wk1r=-0, wk1r=0, a, b, c, d)
        a={128,129}, b={160,161}, c={192,193}, d={224,225}
    l=32 btrfly(j=130, wk1r=0, wk1r=0, 0.0, 1.0, -wk1r=-0, wk1r=0, a, b, c, d)
        a={130,131}, b={162,163}, c={194,195}, d={226,227}
    l=32 btrfly(j=132, wk1r=0, wk1r=0, 0.0, 1.0, -wk1r=-0, wk1r=0, a, b, c, d)
        a={132,133}, b={164,165}, c={196,197}, d={228,229}
    l=32 btrfly(j=134, wk1r=0, wk1r=0, 0.0, 1.0, -wk1r=-0, wk1r=0, a, b, c, d)
        a={134,135}, b={166,167}, c={198,199}, d={230,231}
    l=32 btrfly(j=136, wk1r=0, wk1r=0, 0.0, 1.0, -wk1r=-0, wk1r=0, a, b, c, d)
        a={136,137}, b={168,169}, c={200,201}, d={232,233}
    l=32 btrfly(j=138, wk1r=0, wk1r=0, 0.0, 1.0, -wk1r=-0, wk1r=0, a, b, c, d)
        a={138,139}, b={170,171}, c={202,203}, d={234,235}
    l=32 btrfly(j=140, wk1r=0, wk1r=0, 0.0, 1.0, -wk1r=-0, wk1r=0, a, b, c, d)
        a={140,141}, b={172,173}, c={204,205}, d={236,237}
    l=32 btrfly(j=142, wk1r=0, wk1r=0, 0.0, 1.0, -wk1r=-0, wk1r=0, a, b, c, d)
        a={142,143}, b={174,175}, c={206,207}, d={238,239}
    l=32 btrfly(j=144, wk1r=0, wk1r=0, 0.0, 1.0, -wk1r=-0, wk1r=0, a, b, c, d)
        a={144,145}, b={176,177}, c={208,209}, d={240,241}
    l=32 btrfly(j=146, wk1r=0, wk1r=0, 0.0, 1.0, -wk1r=-0, wk1r=0, a, b, c, d)
        a={146,147}, b={178,179}, c={210,211}, d={242,243}
    l=32 btrfly(j=148, wk1r=0, wk1r=0, 0.0, 1.0, -wk1r=-0, wk1r=0, a, b, c, d)
        a={148,149}, b={180,181}, c={212,213}, d={244,245}
    l=32 btrfly(j=150, wk1r=0, wk1r=0, 0.0, 1.0, -wk1r=-0, wk1r=0, a, b, c, d)
        a={150,151}, b={182,183}, c={214,215}, d={246,247}
    l=32 btrfly(j=152, wk1r=0, wk1r=0, 0.0, 1.0, -wk1r=-0, wk1r=0, a, b, c, d)
        a={152,153}, b={184,185}, c={216,217}, d={248,249}
    l=32 btrfly(j=154, wk1r=0, wk1r=0, 0.0, 1.0, -wk1r=-0, wk1r=0, a, b, c, d)
        a={154,155}, b={186,187}, c={218,219}, d={250,251}
    l=32 btrfly(j=156, wk1r=0, wk1r=0, 0.0, 1.0, -wk1r=-0, wk1r=0, a, b, c, d)
        a={156,157}, b={188,189}, c={220,221}, d={252,253}
    l=32 btrfly(j=158, wk1r=0, wk1r=0, 0.0, 1.0, -wk1r=-0, wk1r=0, a, b, c, d)
        a={158,159}, b={190,191}, c={222,223}, d={254,255}
  cftmd21(n=512, l=32, a, w)
  l=32 btrfly(j=256, wk1r=0, wk1i=0, wk2r=0, wk2i=0, wk3r=0, wk3i=0, a, b, c, d);
        a={256,257}, b={288,289}, c={320,321}, d={352,353}
  l=32 btrfly(j=258, wk1r=0, wk1i=0, wk2r=0, wk2i=0, wk3r=0, wk3i=0, a, b, c, d);
        a={258,259}, b={290,291}, c={322,323}, d={354,355}
  l=32 btrfly(j=260, wk1r=0, wk1i=0, wk2r=0, wk2i=0, wk3r=0, wk3i=0, a, b, c, d);
        a={260,261}, b={292,293}, c={324,325}, d={356,357}
  l=32 btrfly(j=262, wk1r=0, wk1i=0, wk2r=0, wk2i=0, wk3r=0, wk3i=0, a, b, c, d);
        a={262,263}, b={294,295}, c={326,327}, d={358,359}
  l=32 btrfly(j=264, wk1r=0, wk1i=0, wk2r=0, wk2i=0, wk3r=0, wk3i=0, a, b, c, d);
        a={264,265}, b={296,297}, c={328,329}, d={360,361}
  l=32 btrfly(j=266, wk1r=0, wk1i=0, wk2r=0, wk2i=0, wk3r=0, wk3i=0, a, b, c, d);
        a={266,267}, b={298,299}, c={330,331}, d={362,363}
  l=32 btrfly(j=268, wk1r=0, wk1i=0, wk2r=0, wk2i=0, wk3r=0, wk3i=0, a, b, c, d);
        a={268,269}, b={300,301}, c={332,333}, d={364,365}
  l=32 btrfly(j=270, wk1r=0, wk1i=0, wk2r=0, wk2i=0, wk3r=0, wk3i=0, a, b, c, d);
        a={270,271}, b={302,303}, c={334,335}, d={366,367}
  l=32 btrfly(j=272, wk1r=0, wk1i=0, wk2r=0, wk2i=0, wk3r=0, wk3i=0, a, b, c, d);
        a={272,273}, b={304,305}, c={336,337}, d={368,369}
  l=32 btrfly(j=274, wk1r=0, wk1i=0, wk2r=0, wk2i=0, wk3r=0, wk3i=0, a, b, c, d);
        a={274,275}, b={306,307}, c={338,339}, d={370,371}
  l=32 btrfly(j=276, wk1r=0, wk1i=0, wk2r=0, wk2i=0, wk3r=0, wk3i=0, a, b, c, d);
        a={276,277}, b={308,309}, c={340,341}, d={372,373}
  l=32 btrfly(j=278, wk1r=0, wk1i=0, wk2r=0, wk2i=0, wk3r=0, wk3i=0, a, b, c, d);
        a={278,279}, b={310,311}, c={342,343}, d={374,375}
  l=32 btrfly(j=280, wk1r=0, wk1i=0, wk2r=0, wk2i=0, wk3r=0, wk3i=0, a, b, c, d);
        a={280,281}, b={312,313}, c={344,345}, d={376,377}
  l=32 btrfly(j=282, wk1r=0, wk1i=0, wk2r=0, wk2i=0, wk3r=0, wk3i=0, a, b, c, d);
        a={282,283}, b={314,315}, c={346,347}, d={378,379}
  l=32 btrfly(j=284, wk1r=0, wk1i=0, wk2r=0, wk2i=0, wk3r=0, wk3i=0, a, b, c, d);
        a={284,285}, b={316,317}, c={348,349}, d={380,381}
  l=32 btrfly(j=286, wk1r=0, wk1i=0, wk2r=0, wk2i=0, wk3r=0, wk3i=0, a, b, c, d);
        a={286,287}, b={318,319}, c={350,351}, d={382,383}
  l=32 btrfly(j+8=384+8, wk1r=0, wk1i=0, -wk2i=-0, wk2r=0, wk3r=0, wk3i=0, a, b, c, d);
        a={384,385}, b={416,417}, c={448,449}, d={480,481}
  l=32 btrfly(j+8=386+8, wk1r=0, wk1i=0, -wk2i=-0, wk2r=0, wk3r=0, wk3i=0, a, b, c, d);
        a={386,387}, b={418,419}, c={450,451}, d={482,483}
  l=32 btrfly(j+8=388+8, wk1r=0, wk1i=0, -wk2i=-0, wk2r=0, wk3r=0, wk3i=0, a, b, c, d);
        a={388,389}, b={420,421}, c={452,453}, d={484,485}
  l=32 btrfly(j+8=390+8, wk1r=0, wk1i=0, -wk2i=-0, wk2r=0, wk3r=0, wk3i=0, a, b, c, d);
        a={390,391}, b={422,423}, c={454,455}, d={486,487}
  l=32 btrfly(j+8=392+8, wk1r=0, wk1i=0, -wk2i=-0, wk2r=0, wk3r=0, wk3i=0, a, b, c, d);
        a={392,393}, b={424,425}, c={456,457}, d={488,489}
  l=32 btrfly(j+8=394+8, wk1r=0, wk1i=0, -wk2i=-0, wk2r=0, wk3r=0, wk3i=0, a, b, c, d);
        a={394,395}, b={426,427}, c={458,459}, d={490,491}
  l=32 btrfly(j+8=396+8, wk1r=0, wk1i=0, -wk2i=-0, wk2r=0, wk3r=0, wk3i=0, a, b, c, d);
        a={396,397}, b={428,429}, c={460,461}, d={492,493}
  l=32 btrfly(j+8=398+8, wk1r=0, wk1i=0, -wk2i=-0, wk2r=0, wk3r=0, wk3i=0, a, b, c, d);
        a={398,399}, b={430,431}, c={462,463}, d={494,495}
  l=32 btrfly(j+8=400+8, wk1r=0, wk1i=0, -wk2i=-0, wk2r=0, wk3r=0, wk3i=0, a, b, c, d);
        a={400,401}, b={432,433}, c={464,465}, d={496,497}
  l=32 btrfly(j+8=402+8, wk1r=0, wk1i=0, -wk2i=-0, wk2r=0, wk3r=0, wk3i=0, a, b, c, d);
        a={402,403}, b={434,435}, c={466,467}, d={498,499}
  l=32 btrfly(j+8=404+8, wk1r=0, wk1i=0, -wk2i=-0, wk2r=0, wk3r=0, wk3i=0, a, b, c, d);
        a={404,405}, b={436,437}, c={468,469}, d={500,501}
  l=32 btrfly(j+8=406+8, wk1r=0, wk1i=0, -wk2i=-0, wk2r=0, wk3r=0, wk3i=0, a, b, c, d);
        a={406,407}, b={438,439}, c={470,471}, d={502,503}
  l=32 btrfly(j+8=408+8, wk1r=0, wk1i=0, -wk2i=-0, wk2r=0, wk3r=0, wk3i=0, a, b, c, d);
        a={408,409}, b={440,441}, c={472,473}, d={504,505}
  l=32 btrfly(j+8=410+8, wk1r=0, wk1i=0, -wk2i=-0, wk2r=0, wk3r=0, wk3i=0, a, b, c, d);
        a={410,411}, b={442,443}, c={474,475}, d={506,507}
  l=32 btrfly(j+8=412+8, wk1r=0, wk1i=0, -wk2i=-0, wk2r=0, wk3r=0, wk3i=0, a, b, c, d);
        a={412,413}, b={444,445}, c={476,477}, d={508,509}
  l=32 btrfly(j+8=414+8, wk1r=0, wk1i=0, -wk2i=-0, wk2r=0, wk3r=0, wk3i=0, a, b, c, d);
        a={414,415}, b={446,447}, c={478,479}, d={510,511}
l << 2 == n
l=128 btrfly(j=0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, a, b, c, d);
        a={0,1}, b={128,129}, c={256,257}, d={384,385}
l=128 btrfly(j=2, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, a, b, c, d);
        a={2,3}, b={130,131}, c={258,259}, d={386,387}
l=128 btrfly(j=4, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, a, b, c, d);
        a={4,5}, b={132,133}, c={260,261}, d={388,389}
l=128 btrfly(j=6, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, a, b, c, d);
        a={6,7}, b={134,135}, c={262,263}, d={390,391}
l=128 btrfly(j=8, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, a, b, c, d);
        a={8,9}, b={136,137}, c={264,265}, d={392,393}
l=128 btrfly(j=10, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, a, b, c, d);
        a={10,11}, b={138,139}, c={266,267}, d={394,395}
l=128 btrfly(j=12, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, a, b, c, d);
        a={12,13}, b={140,141}, c={268,269}, d={396,397}
l=128 btrfly(j=14, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, a, b, c, d);
        a={14,15}, b={142,143}, c={270,271}, d={398,399}
l=128 btrfly(j=16, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, a, b, c, d);
        a={16,17}, b={144,145}, c={272,273}, d={400,401}
l=128 btrfly(j=18, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, a, b, c, d);
        a={18,19}, b={146,147}, c={274,275}, d={402,403}
l=128 btrfly(j=20, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, a, b, c, d);
        a={20,21}, b={148,149}, c={276,277}, d={404,405}
l=128 btrfly(j=22, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, a, b, c, d);
        a={22,23}, b={150,151}, c={278,279}, d={406,407}
l=128 btrfly(j=24, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, a, b, c, d);
        a={24,25}, b={152,153}, c={280,281}, d={408,409}
l=128 btrfly(j=26, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, a, b, c, d);
        a={26,27}, b={154,155}, c={282,283}, d={410,411}
l=128 btrfly(j=28, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, a, b, c, d);
        a={28,29}, b={156,157}, c={284,285}, d={412,413}
l=128 btrfly(j=30, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, a, b, c, d);
        a={30,31}, b={158,159}, c={286,287}, d={414,415}
l=128 btrfly(j=32, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, a, b, c, d);
        a={32,33}, b={160,161}, c={288,289}, d={416,417}
l=128 btrfly(j=34, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, a, b, c, d);
        a={34,35}, b={162,163}, c={290,291}, d={418,419}
l=128 btrfly(j=36, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, a, b, c, d);
        a={36,37}, b={164,165}, c={292,293}, d={420,421}
l=128 btrfly(j=38, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, a, b, c, d);
        a={38,39}, b={166,167}, c={294,295}, d={422,423}
l=128 btrfly(j=40, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, a, b, c, d);
        a={40,41}, b={168,169}, c={296,297}, d={424,425}
l=128 btrfly(j=42, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, a, b, c, d);
        a={42,43}, b={170,171}, c={298,299}, d={426,427}
l=128 btrfly(j=44, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, a, b, c, d);
        a={44,45}, b={172,173}, c={300,301}, d={428,429}
l=128 btrfly(j=46, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, a, b, c, d);
        a={46,47}, b={174,175}, c={302,303}, d={430,431}
l=128 btrfly(j=48, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, a, b, c, d);
        a={48,49}, b={176,177}, c={304,305}, d={432,433}
l=128 btrfly(j=50, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, a, b, c, d);
        a={50,51}, b={178,179}, c={306,307}, d={434,435}
l=128 btrfly(j=52, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, a, b, c, d);
        a={52,53}, b={180,181}, c={308,309}, d={436,437}
l=128 btrfly(j=54, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, a, b, c, d);
        a={54,55}, b={182,183}, c={310,311}, d={438,439}
l=128 btrfly(j=56, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, a, b, c, d);
        a={56,57}, b={184,185}, c={312,313}, d={440,441}
l=128 btrfly(j=58, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, a, b, c, d);
        a={58,59}, b={186,187}, c={314,315}, d={442,443}
l=128 btrfly(j=60, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, a, b, c, d);
        a={60,61}, b={188,189}, c={316,317}, d={444,445}
l=128 btrfly(j=62, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, a, b, c, d);
        a={62,63}, b={190,191}, c={318,319}, d={446,447}
l=128 btrfly(j=64, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, a, b, c, d);
        a={64,65}, b={192,193}, c={320,321}, d={448,449}
l=128 btrfly(j=66, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, a, b, c, d);
        a={66,67}, b={194,195}, c={322,323}, d={450,451}
l=128 btrfly(j=68, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, a, b, c, d);
        a={68,69}, b={196,197}, c={324,325}, d={452,453}
l=128 btrfly(j=70, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, a, b, c, d);
        a={70,71}, b={198,199}, c={326,327}, d={454,455}
l=128 btrfly(j=72, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, a, b, c, d);
        a={72,73}, b={200,201}, c={328,329}, d={456,457}
l=128 btrfly(j=74, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, a, b, c, d);
        a={74,75}, b={202,203}, c={330,331}, d={458,459}
l=128 btrfly(j=76, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, a, b, c, d);
        a={76,77}, b={204,205}, c={332,333}, d={460,461}
l=128 btrfly(j=78, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, a, b, c, d);
        a={78,79}, b={206,207}, c={334,335}, d={462,463}
l=128 btrfly(j=80, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, a, b, c, d);
        a={80,81}, b={208,209}, c={336,337}, d={464,465}
l=128 btrfly(j=82, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, a, b, c, d);
        a={82,83}, b={210,211}, c={338,339}, d={466,467}
l=128 btrfly(j=84, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, a, b, c, d);
        a={84,85}, b={212,213}, c={340,341}, d={468,469}
l=128 btrfly(j=86, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, a, b, c, d);
        a={86,87}, b={214,215}, c={342,343}, d={470,471}
l=128 btrfly(j=88, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, a, b, c, d);
        a={88,89}, b={216,217}, c={344,345}, d={472,473}
l=128 btrfly(j=90, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, a, b, c, d);
        a={90,91}, b={218,219}, c={346,347}, d={474,475}
l=128 btrfly(j=92, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, a, b, c, d);
        a={92,93}, b={220,221}, c={348,349}, d={476,477}
l=128 btrfly(j=94, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, a, b, c, d);
        a={94,95}, b={222,223}, c={350,351}, d={478,479}
l=128 btrfly(j=96, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, a, b, c, d);
        a={96,97}, b={224,225}, c={352,353}, d={480,481}
l=128 btrfly(j=98, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, a, b, c, d);
        a={98,99}, b={226,227}, c={354,355}, d={482,483}
l=128 btrfly(j=100, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, a, b, c, d);
        a={100,101}, b={228,229}, c={356,357}, d={484,485}
l=128 btrfly(j=102, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, a, b, c, d);
        a={102,103}, b={230,231}, c={358,359}, d={486,487}
l=128 btrfly(j=104, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, a, b, c, d);
        a={104,105}, b={232,233}, c={360,361}, d={488,489}
l=128 btrfly(j=106, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, a, b, c, d);
        a={106,107}, b={234,235}, c={362,363}, d={490,491}
l=128 btrfly(j=108, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, a, b, c, d);
        a={108,109}, b={236,237}, c={364,365}, d={492,493}
l=128 btrfly(j=110, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, a, b, c, d);
        a={110,111}, b={238,239}, c={366,367}, d={494,495}
l=128 btrfly(j=112, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, a, b, c, d);
        a={112,113}, b={240,241}, c={368,369}, d={496,497}
l=128 btrfly(j=114, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, a, b, c, d);
        a={114,115}, b={242,243}, c={370,371}, d={498,499}
l=128 btrfly(j=116, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, a, b, c, d);
        a={116,117}, b={244,245}, c={372,373}, d={500,501}
l=128 btrfly(j=118, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, a, b, c, d);
        a={118,119}, b={246,247}, c={374,375}, d={502,503}
l=128 btrfly(j=120, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, a, b, c, d);
        a={120,121}, b={248,249}, c={376,377}, d={504,505}
l=128 btrfly(j=122, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, a, b, c, d);
        a={122,123}, b={250,251}, c={378,379}, d={506,507}
l=128 btrfly(j=124, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, a, b, c, d);
        a={124,125}, b={252,253}, c={380,381}, d={508,509}
l=128 btrfly(j=126, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, a, b, c, d);
        a={126,127}, b={254,255}, c={382,383}, d={510,511}
