logn = 1
--------
cft1st(n = 4);
l << 2 != n


logn = 2
--------
cft1st(n = 8);
l << 2 != n


logn = 3
--------
cft1st(n = 16);
  // computes first 16 (8 complexes) manually
l << 2 != n


logn = 4
--------
cft1st(n = 32);
  // 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 == n
        a={12,16}, b={44,48}, c={76,80}, d={108,112}
        a={0,-4}, b={0,-0}, c={0,0}, d={0,0}
        a={-8,-8}, b={8,-8}, c={0,-0}, d={0,0}
        a={-4,0}, b={0,-0}, c={-0,0}, d={-0,0}
l=8 btrfly(j=0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, a, b, c, d);
a(0), a(8), a(16), a(24)  [c(0), c(4), c(8), c(12)]

logn = 5
--------
cft1st(n = 64);
  // 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);
  l=2 btrfly(j+8=16+8, wk1r=0, wk1i=0, -wk2i=-0, wk2r=0, wk3r=0, wk3i=0, a, b, c, d);
  l=2 btrfly(j=32, wk1r=0, wk1i=0, wk2r=0, wk2i=0, wk3r=0, wk3i=0, a, b, c, d);
  l=2 btrfly(j+8=32+8, wk1r=0, wk1i=0, -wk2i=-0, wk2r=0, wk3r=0, wk3i=0, a, b, c, d);
  l=2 btrfly(j=48, wk1r=0, wk1i=0, wk2r=0, wk2i=0, wk3r=0, wk3i=0, a, b, c, d);
  l=2 btrfly(j+8=48+8, wk1r=0, wk1i=0, -wk2i=-0, wk2r=0, wk3r=0, wk3i=0, a, b, c, d);
cftmd2(n=64, l=8, a, w)
  cftmd0(n=64, 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)
    l=8 btrfly(j=2, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, a, b, c, d)
    l=8 btrfly(j=4, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, a, b, c, d)
    l=8 btrfly(j=6, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, a, b, c, d)
    l=8 btrfly(j=32, wk1r=0, wk1r=0, 0.0, 1.0, -wk1r=-0, wk1r=0, a, b, c, d)
    l=8 btrfly(j=34, wk1r=0, wk1r=0, 0.0, 1.0, -wk1r=-0, wk1r=0, a, b, c, d)
    l=8 btrfly(j=36, wk1r=0, wk1r=0, 0.0, 1.0, -wk1r=-0, wk1r=0, a, b, c, d)
    l=8 btrfly(j=38, wk1r=0, wk1r=0, 0.0, 1.0, -wk1r=-0, wk1r=0, a, b, c, d)
l << 2 != n


logn = 6
--------
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
cft1st(n = 128);
  // 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}
cftmd2(n=128, l=8, a, w)
  cftmd0(n=128, 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}
  cftmd21(n=128, l=8, a, w)
  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 << 2 == n
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}
