fft(ramp8, [c(28, 0.0), c(-4.0, 9.65685424949238), c(-4.0, 4.0), c(-4.0, 1.6568542494923806), c(-4, 0.0), c(-4.0, -1.6568542494923806), c(-4.0, -4.0), c(-4.0, -9.65685424949238)]).
fft(alternating8, [c(0, 0.0), c(0.0, 0.0), c(0.0, 0.0), c(0.0, 0.0), c(8, 0.0), c(0.0, 0.0), c(0.0, 0.0), c(0.0, 0.0)]).
dcComponent(ramp8, c(28, 0.0)).
dcComponent(alternating8, c(0, 0.0)).

clause(2, w8(1, c(0.7071067811865476, -0.7071067811865476)), true).
clause(3, w8(2, c(0.0, -1.0)), true).
clause(4, w8(3, c(-0.7071067811865476, -0.7071067811865476)), true).
clause(9,
       c_add(c(var('Ar'), var('Ai')), c(var('Br'), var('Bi')), c(var('Cr'), var('Ci'))),
       (var('Cr') is var('Ar') + var('Br'), var('Ci') is var('Ai') + var('Bi'))).
clause(10,
       c_sub(c(var('Ar'), var('Ai')), c(var('Br'), var('Bi')), c(var('Cr'), var('Ci'))),
       (var('Cr') is var('Ar') - var('Br'), var('Ci') is var('Ai') - var('Bi'))).
clause(11,
       c_mul(c(var('Ar'), var('Ai')), c(var('Br'), var('Bi')), c(var('Cr'), var('Ci'))),
       (var('Ac') is var('Ar') * var('Br'),
        var('Bd') is var('Ai') * var('Bi'),
        var('Cr') is var('Ac') - var('Bd'),
        var('Ad') is var('Ar') * var('Bi'),
        var('Bc') is var('Ai') * var('Br'),
        var('Ci') is var('Ad') + var('Bc'))).
clause(12, fft1([var('X')], [c(var('X'), 0.0)]), true).
clause(13,
       fft2([var('X0'), var('X1')], [var('Y0'), var('Y1')]),
       (fft1([var('X0')], [var('E0')]),
        fft1([var('X1')], [var('O0')]),
        c_add(var('E0'), var('O0'), var('Y0')),
        c_sub(var('E0'), var('O0'), var('Y1')))).
clause(14,
       fft4([var('X0'), var('X1'), var('X2'), var('X3')], [var('Y0'), var('Y1'), var('Y2'), var('Y3')]),
       (fft2([var('X0'), var('X2')], [var('E0'), var('E1')]),
        fft2([var('X1'), var('X3')], [var('O0'), var('O1')]),
        w8(2, var('W1')),
        c_mul(var('W1'), var('O1'), var('T1')),
        c_add(var('E0'), var('O0'), var('Y0')),
        c_add(var('E1'), var('T1'), var('Y1')),
        c_sub(var('E0'), var('O0'), var('Y2')),
        c_sub(var('E1'), var('T1'), var('Y3')))).
clause(15,
       fft8([var('X0'), var('X1'), var('X2'), var('X3'), var('X4'), var('X5'), var('X6'), var('X7')], [var('Y0'), var('Y1'), var('Y2'), var('Y3'), var('Y4'), var('Y5'), var('Y6'), var('Y7')]),
       (fft4([var('X0'), var('X2'), var('X4'), var('X6')], [var('E0'), var('E1'), var('E2'), var('E3')]),
        fft4([var('X1'), var('X3'), var('X5'), var('X7')], [var('O0'), var('O1'), var('O2'), var('O3')]),
        w8(1, var('W1')),
        w8(2, var('W2')),
        w8(3, var('W3')),
        c_mul(var('W1'), var('O1'), var('T1')),
        c_mul(var('W2'), var('O2'), var('T2')),
        c_mul(var('W3'), var('O3'), var('T3')),
        c_add(var('E0'), var('O0'), var('Y0')),
        c_add(var('E1'), var('T1'), var('Y1')),
        c_add(var('E2'), var('T2'), var('Y2')),
        c_add(var('E3'), var('T3'), var('Y3')),
        c_sub(var('E0'), var('O0'), var('Y4')),
        c_sub(var('E1'), var('T1'), var('Y5')),
        c_sub(var('E2'), var('T2'), var('Y6')),
        c_sub(var('E3'), var('T3'), var('Y7')))).
clause(16, wave(ramp8, [0, 1, 2, 3, 4, 5, 6, 7]), true).
clause(17, wave(alternating8, [1, -1, 1, -1, 1, -1, 1, -1]), true).
clause(18,
       fft(var('Wave'), var('Spectrum')),
       (wave(var('Wave'), var('Samples')), fft8(var('Samples'), var('Spectrum')))).
clause(19,
       dcComponent(var('Wave'), var('Dc')),
       (wave(var('Wave'), var('Samples')), fft8(var('Samples'), [var('Dc') | anonymous(1)]))).

step(fft(ramp8, [c(28, 0.0), c(-4.0, 9.65685424949238), c(-4.0, 4.0), c(-4.0, 1.6568542494923806), c(-4, 0.0), c(-4.0, -1.6568542494923806), c(-4.0, -4.0), c(-4.0, -9.65685424949238)]),
     rule(18),
     ['Wave' = ramp8,
      'Spectrum' = [c(28, 0.0), c(-4.0, 9.65685424949238), c(-4.0, 4.0), c(-4.0, 1.6568542494923806), c(-4, 0.0), c(-4.0, -1.6568542494923806), c(-4.0, -4.0), c(-4.0, -9.65685424949238)],
      'Samples' = [0, 1, 2, 3, 4, 5, 6, 7]],
     [wave(ramp8, [0, 1, 2, 3, 4, 5, 6, 7]),
      fft8([0, 1, 2, 3, 4, 5, 6, 7], [c(28, 0.0), c(-4.0, 9.65685424949238), c(-4.0, 4.0), c(-4.0, 1.6568542494923806), c(-4, 0.0), c(-4.0, -1.6568542494923806), c(-4.0, -4.0), c(-4.0, -9.65685424949238)])]).
step(wave(ramp8, [0, 1, 2, 3, 4, 5, 6, 7]), fact(16), [], []).
step(fft8([0, 1, 2, 3, 4, 5, 6, 7], [c(28, 0.0), c(-4.0, 9.65685424949238), c(-4.0, 4.0), c(-4.0, 1.6568542494923806), c(-4, 0.0), c(-4.0, -1.6568542494923806), c(-4.0, -4.0), c(-4.0, -9.65685424949238)]),
     rule(15),
     ['X0' = 0,
      'X1' = 1,
      'X2' = 2,
      'X3' = 3,
      'X4' = 4,
      'X5' = 5,
      'X6' = 6,
      'X7' = 7,
      'Y0' = c(28, 0.0),
      'Y1' = c(-4.0, 9.65685424949238),
      'Y2' = c(-4.0, 4.0),
      'Y3' = c(-4.0, 1.6568542494923806),
      'Y4' = c(-4, 0.0),
      'Y5' = c(-4.0, -1.6568542494923806),
      'Y6' = c(-4.0, -4.0),
      'Y7' = c(-4.0, -9.65685424949238),
      'E0' = c(12, 0.0),
      'E1' = c(-4.0, 4.0),
      'E2' = c(-4, 0.0),
      'E3' = c(-4.0, -4.0),
      'O0' = c(16, 0.0),
      'O1' = c(-4.0, 4.0),
      'O2' = c(-4, 0.0),
      'O3' = c(-4.0, -4.0),
      'W1' = c(0.7071067811865476, -0.7071067811865476),
      'W2' = c(0.0, -1.0),
      'W3' = c(-0.7071067811865476, -0.7071067811865476),
      'T1' = c(0.0, 5.656854249492381),
      'T2' = c(0.0, 4.0),
      'T3' = c(0.0, 5.656854249492381)],
     [fft4([0, 2, 4, 6], [c(12, 0.0), c(-4.0, 4.0), c(-4, 0.0), c(-4.0, -4.0)]),
      fft4([1, 3, 5, 7], [c(16, 0.0), c(-4.0, 4.0), c(-4, 0.0), c(-4.0, -4.0)]),
      w8(1, c(0.7071067811865476, -0.7071067811865476)),
      w8(2, c(0.0, -1.0)),
      w8(3, c(-0.7071067811865476, -0.7071067811865476)),
      c_mul(c(0.7071067811865476, -0.7071067811865476), c(-4.0, 4.0), c(0.0, 5.656854249492381)),
      c_mul(c(0.0, -1.0), c(-4, 0.0), c(0.0, 4.0)),
      c_mul(c(-0.7071067811865476, -0.7071067811865476), c(-4.0, -4.0), c(0.0, 5.656854249492381)),
      c_add(c(12, 0.0), c(16, 0.0), c(28, 0.0)),
      c_add(c(-4.0, 4.0), c(0.0, 5.656854249492381), c(-4.0, 9.65685424949238)),
      c_add(c(-4, 0.0), c(0.0, 4.0), c(-4.0, 4.0)),
      c_add(c(-4.0, -4.0), c(0.0, 5.656854249492381), c(-4.0, 1.6568542494923806)),
      c_sub(c(12, 0.0), c(16, 0.0), c(-4, 0.0)),
      c_sub(c(-4.0, 4.0), c(0.0, 5.656854249492381), c(-4.0, -1.6568542494923806)),
      c_sub(c(-4, 0.0), c(0.0, 4.0), c(-4.0, -4.0)),
      c_sub(c(-4.0, -4.0), c(0.0, 5.656854249492381), c(-4.0, -9.65685424949238))]).
step(fft4([0, 2, 4, 6], [c(12, 0.0), c(-4.0, 4.0), c(-4, 0.0), c(-4.0, -4.0)]),
     rule(14),
     ['X0' = 0,
      'X1' = 2,
      'X2' = 4,
      'X3' = 6,
      'Y0' = c(12, 0.0),
      'Y1' = c(-4.0, 4.0),
      'Y2' = c(-4, 0.0),
      'Y3' = c(-4.0, -4.0),
      'E0' = c(4, 0.0),
      'E1' = c(-4, 0.0),
      'O0' = c(8, 0.0),
      'O1' = c(-4, 0.0),
      'W1' = c(0.0, -1.0),
      'T1' = c(0.0, 4.0)],
     [fft2([0, 4], [c(4, 0.0), c(-4, 0.0)]),
      fft2([2, 6], [c(8, 0.0), c(-4, 0.0)]),
      w8(2, c(0.0, -1.0)),
      c_mul(c(0.0, -1.0), c(-4, 0.0), c(0.0, 4.0)),
      c_add(c(4, 0.0), c(8, 0.0), c(12, 0.0)),
      c_add(c(-4, 0.0), c(0.0, 4.0), c(-4.0, 4.0)),
      c_sub(c(4, 0.0), c(8, 0.0), c(-4, 0.0)),
      c_sub(c(-4, 0.0), c(0.0, 4.0), c(-4.0, -4.0))]).
step(fft2([0, 4], [c(4, 0.0), c(-4, 0.0)]),
     rule(13),
     ['X0' = 0,
      'X1' = 4,
      'Y0' = c(4, 0.0),
      'Y1' = c(-4, 0.0),
      'E0' = c(0, 0.0),
      'O0' = c(4, 0.0)],
     [fft1([0], [c(0, 0.0)]),
      fft1([4], [c(4, 0.0)]),
      c_add(c(0, 0.0), c(4, 0.0), c(4, 0.0)),
      c_sub(c(0, 0.0), c(4, 0.0), c(-4, 0.0))]).
step(fft1([0], [c(0, 0.0)]), fact(12), ['X' = 0], []).
step(fft1([4], [c(4, 0.0)]), fact(12), ['X' = 4], []).
step(c_add(c(0, 0.0), c(4, 0.0), c(4, 0.0)),
     rule(9),
     ['Ar' = 0, 'Ai' = 0.0, 'Br' = 4, 'Bi' = 0.0, 'Cr' = 4, 'Ci' = 0.0],
     [4 is 0 + 4, 0.0 is 0.0 + 0.0]).
step(4 is 0 + 4, builtin, [], []).
step(0.0 is 0.0 + 0.0, builtin, [], []).
step(c_sub(c(0, 0.0), c(4, 0.0), c(-4, 0.0)),
     rule(10),
     ['Ar' = 0, 'Ai' = 0.0, 'Br' = 4, 'Bi' = 0.0, 'Cr' = -4, 'Ci' = 0.0],
     [-4 is 0 - 4, 0.0 is 0.0 - 0.0]).
step(-4 is 0 - 4, builtin, [], []).
step(0.0 is 0.0 - 0.0, builtin, [], []).
step(fft2([2, 6], [c(8, 0.0), c(-4, 0.0)]),
     rule(13),
     ['X0' = 2,
      'X1' = 6,
      'Y0' = c(8, 0.0),
      'Y1' = c(-4, 0.0),
      'E0' = c(2, 0.0),
      'O0' = c(6, 0.0)],
     [fft1([2], [c(2, 0.0)]),
      fft1([6], [c(6, 0.0)]),
      c_add(c(2, 0.0), c(6, 0.0), c(8, 0.0)),
      c_sub(c(2, 0.0), c(6, 0.0), c(-4, 0.0))]).
step(fft1([2], [c(2, 0.0)]), fact(12), ['X' = 2], []).
step(fft1([6], [c(6, 0.0)]), fact(12), ['X' = 6], []).
step(c_add(c(2, 0.0), c(6, 0.0), c(8, 0.0)),
     rule(9),
     ['Ar' = 2, 'Ai' = 0.0, 'Br' = 6, 'Bi' = 0.0, 'Cr' = 8, 'Ci' = 0.0],
     [8 is 2 + 6, 0.0 is 0.0 + 0.0]).
step(8 is 2 + 6, builtin, [], []).
step(c_sub(c(2, 0.0), c(6, 0.0), c(-4, 0.0)),
     rule(10),
     ['Ar' = 2, 'Ai' = 0.0, 'Br' = 6, 'Bi' = 0.0, 'Cr' = -4, 'Ci' = 0.0],
     [-4 is 2 - 6, 0.0 is 0.0 - 0.0]).
step(-4 is 2 - 6, builtin, [], []).
step(w8(2, c(0.0, -1.0)), fact(3), [], []).
step(c_mul(c(0.0, -1.0), c(-4, 0.0), c(0.0, 4.0)),
     rule(11),
     ['Ar' = 0.0,
      'Ai' = -1.0,
      'Br' = -4,
      'Bi' = 0.0,
      'Cr' = 0.0,
      'Ci' = 4.0,
      'Ac' = 0.0,
      'Bd' = 0.0,
      'Ad' = 0.0,
      'Bc' = 4.0],
     [0.0 is 0.0 * -4,
      0.0 is -1.0 * 0.0,
      0.0 is 0.0 - 0.0,
      0.0 is 0.0 * 0.0,
      4.0 is -1.0 * -4,
      4.0 is 0.0 + 4.0]).
step(0.0 is 0.0 * -4, builtin, [], []).
step(0.0 is -1.0 * 0.0, builtin, [], []).
step(0.0 is 0.0 * 0.0, builtin, [], []).
step(4.0 is -1.0 * -4, builtin, [], []).
step(4.0 is 0.0 + 4.0, builtin, [], []).
step(c_add(c(4, 0.0), c(8, 0.0), c(12, 0.0)),
     rule(9),
     ['Ar' = 4, 'Ai' = 0.0, 'Br' = 8, 'Bi' = 0.0, 'Cr' = 12, 'Ci' = 0.0],
     [12 is 4 + 8, 0.0 is 0.0 + 0.0]).
step(12 is 4 + 8, builtin, [], []).
step(c_add(c(-4, 0.0), c(0.0, 4.0), c(-4.0, 4.0)),
     rule(9),
     ['Ar' = -4, 'Ai' = 0.0, 'Br' = 0.0, 'Bi' = 4.0, 'Cr' = -4.0, 'Ci' = 4.0],
     [-4.0 is -4 + 0.0, 4.0 is 0.0 + 4.0]).
step(-4.0 is -4 + 0.0, builtin, [], []).
step(c_sub(c(4, 0.0), c(8, 0.0), c(-4, 0.0)),
     rule(10),
     ['Ar' = 4, 'Ai' = 0.0, 'Br' = 8, 'Bi' = 0.0, 'Cr' = -4, 'Ci' = 0.0],
     [-4 is 4 - 8, 0.0 is 0.0 - 0.0]).
step(-4 is 4 - 8, builtin, [], []).
step(c_sub(c(-4, 0.0), c(0.0, 4.0), c(-4.0, -4.0)),
     rule(10),
     ['Ar' = -4, 'Ai' = 0.0, 'Br' = 0.0, 'Bi' = 4.0, 'Cr' = -4.0, 'Ci' = -4.0],
     [-4.0 is -4 - 0.0, -4.0 is 0.0 - 4.0]).
step(-4.0 is -4 - 0.0, builtin, [], []).
step(-4.0 is 0.0 - 4.0, builtin, [], []).
step(fft4([1, 3, 5, 7], [c(16, 0.0), c(-4.0, 4.0), c(-4, 0.0), c(-4.0, -4.0)]),
     rule(14),
     ['X0' = 1,
      'X1' = 3,
      'X2' = 5,
      'X3' = 7,
      'Y0' = c(16, 0.0),
      'Y1' = c(-4.0, 4.0),
      'Y2' = c(-4, 0.0),
      'Y3' = c(-4.0, -4.0),
      'E0' = c(6, 0.0),
      'E1' = c(-4, 0.0),
      'O0' = c(10, 0.0),
      'O1' = c(-4, 0.0),
      'W1' = c(0.0, -1.0),
      'T1' = c(0.0, 4.0)],
     [fft2([1, 5], [c(6, 0.0), c(-4, 0.0)]),
      fft2([3, 7], [c(10, 0.0), c(-4, 0.0)]),
      w8(2, c(0.0, -1.0)),
      c_mul(c(0.0, -1.0), c(-4, 0.0), c(0.0, 4.0)),
      c_add(c(6, 0.0), c(10, 0.0), c(16, 0.0)),
      c_add(c(-4, 0.0), c(0.0, 4.0), c(-4.0, 4.0)),
      c_sub(c(6, 0.0), c(10, 0.0), c(-4, 0.0)),
      c_sub(c(-4, 0.0), c(0.0, 4.0), c(-4.0, -4.0))]).
step(fft2([1, 5], [c(6, 0.0), c(-4, 0.0)]),
     rule(13),
     ['X0' = 1,
      'X1' = 5,
      'Y0' = c(6, 0.0),
      'Y1' = c(-4, 0.0),
      'E0' = c(1, 0.0),
      'O0' = c(5, 0.0)],
     [fft1([1], [c(1, 0.0)]),
      fft1([5], [c(5, 0.0)]),
      c_add(c(1, 0.0), c(5, 0.0), c(6, 0.0)),
      c_sub(c(1, 0.0), c(5, 0.0), c(-4, 0.0))]).
step(fft1([1], [c(1, 0.0)]), fact(12), ['X' = 1], []).
step(fft1([5], [c(5, 0.0)]), fact(12), ['X' = 5], []).
step(c_add(c(1, 0.0), c(5, 0.0), c(6, 0.0)),
     rule(9),
     ['Ar' = 1, 'Ai' = 0.0, 'Br' = 5, 'Bi' = 0.0, 'Cr' = 6, 'Ci' = 0.0],
     [6 is 1 + 5, 0.0 is 0.0 + 0.0]).
step(6 is 1 + 5, builtin, [], []).
step(c_sub(c(1, 0.0), c(5, 0.0), c(-4, 0.0)),
     rule(10),
     ['Ar' = 1, 'Ai' = 0.0, 'Br' = 5, 'Bi' = 0.0, 'Cr' = -4, 'Ci' = 0.0],
     [-4 is 1 - 5, 0.0 is 0.0 - 0.0]).
step(-4 is 1 - 5, builtin, [], []).
step(fft2([3, 7], [c(10, 0.0), c(-4, 0.0)]),
     rule(13),
     ['X0' = 3,
      'X1' = 7,
      'Y0' = c(10, 0.0),
      'Y1' = c(-4, 0.0),
      'E0' = c(3, 0.0),
      'O0' = c(7, 0.0)],
     [fft1([3], [c(3, 0.0)]),
      fft1([7], [c(7, 0.0)]),
      c_add(c(3, 0.0), c(7, 0.0), c(10, 0.0)),
      c_sub(c(3, 0.0), c(7, 0.0), c(-4, 0.0))]).
step(fft1([3], [c(3, 0.0)]), fact(12), ['X' = 3], []).
step(fft1([7], [c(7, 0.0)]), fact(12), ['X' = 7], []).
step(c_add(c(3, 0.0), c(7, 0.0), c(10, 0.0)),
     rule(9),
     ['Ar' = 3, 'Ai' = 0.0, 'Br' = 7, 'Bi' = 0.0, 'Cr' = 10, 'Ci' = 0.0],
     [10 is 3 + 7, 0.0 is 0.0 + 0.0]).
step(10 is 3 + 7, builtin, [], []).
step(c_sub(c(3, 0.0), c(7, 0.0), c(-4, 0.0)),
     rule(10),
     ['Ar' = 3, 'Ai' = 0.0, 'Br' = 7, 'Bi' = 0.0, 'Cr' = -4, 'Ci' = 0.0],
     [-4 is 3 - 7, 0.0 is 0.0 - 0.0]).
step(-4 is 3 - 7, builtin, [], []).
step(c_add(c(6, 0.0), c(10, 0.0), c(16, 0.0)),
     rule(9),
     ['Ar' = 6, 'Ai' = 0.0, 'Br' = 10, 'Bi' = 0.0, 'Cr' = 16, 'Ci' = 0.0],
     [16 is 6 + 10, 0.0 is 0.0 + 0.0]).
step(16 is 6 + 10, builtin, [], []).
step(c_sub(c(6, 0.0), c(10, 0.0), c(-4, 0.0)),
     rule(10),
     ['Ar' = 6, 'Ai' = 0.0, 'Br' = 10, 'Bi' = 0.0, 'Cr' = -4, 'Ci' = 0.0],
     [-4 is 6 - 10, 0.0 is 0.0 - 0.0]).
step(-4 is 6 - 10, builtin, [], []).
step(w8(1, c(0.7071067811865476, -0.7071067811865476)), fact(2), [], []).
step(w8(3, c(-0.7071067811865476, -0.7071067811865476)), fact(4), [], []).
step(c_mul(c(0.7071067811865476, -0.7071067811865476), c(-4.0, 4.0), c(0.0, 5.656854249492381)),
     rule(11),
     ['Ar' = 0.7071067811865476,
      'Ai' = -0.7071067811865476,
      'Br' = -4.0,
      'Bi' = 4.0,
      'Cr' = 0.0,
      'Ci' = 5.656854249492381,
      'Ac' = -2.8284271247461903,
      'Bd' = -2.8284271247461903,
      'Ad' = 2.8284271247461903,
      'Bc' = 2.8284271247461903],
     [-2.8284271247461903 is 0.7071067811865476 * -4.0,
      -2.8284271247461903 is -0.7071067811865476 * 4.0,
      0.0 is -2.8284271247461903 - -2.8284271247461903,
      2.8284271247461903 is 0.7071067811865476 * 4.0,
      2.8284271247461903 is -0.7071067811865476 * -4.0,
      5.656854249492381 is 2.8284271247461903 + 2.8284271247461903]).
step(-2.8284271247461903 is 0.7071067811865476 * -4.0, builtin, [], []).
step(-2.8284271247461903 is -0.7071067811865476 * 4.0, builtin, [], []).
step(0.0 is -2.8284271247461903 - -2.8284271247461903, builtin, [], []).
step(2.8284271247461903 is 0.7071067811865476 * 4.0, builtin, [], []).
step(2.8284271247461903 is -0.7071067811865476 * -4.0, builtin, [], []).
step(5.656854249492381 is 2.8284271247461903 + 2.8284271247461903, builtin, [], []).
step(c_mul(c(-0.7071067811865476, -0.7071067811865476), c(-4.0, -4.0), c(0.0, 5.656854249492381)),
     rule(11),
     ['Ar' = -0.7071067811865476,
      'Ai' = -0.7071067811865476,
      'Br' = -4.0,
      'Bi' = -4.0,
      'Cr' = 0.0,
      'Ci' = 5.656854249492381,
      'Ac' = 2.8284271247461903,
      'Bd' = 2.8284271247461903,
      'Ad' = 2.8284271247461903,
      'Bc' = 2.8284271247461903],
     [2.8284271247461903 is -0.7071067811865476 * -4.0,
      2.8284271247461903 is -0.7071067811865476 * -4.0,
      0.0 is 2.8284271247461903 - 2.8284271247461903,
      2.8284271247461903 is -0.7071067811865476 * -4.0,
      2.8284271247461903 is -0.7071067811865476 * -4.0,
      5.656854249492381 is 2.8284271247461903 + 2.8284271247461903]).
step(0.0 is 2.8284271247461903 - 2.8284271247461903, builtin, [], []).
step(c_add(c(12, 0.0), c(16, 0.0), c(28, 0.0)),
     rule(9),
     ['Ar' = 12, 'Ai' = 0.0, 'Br' = 16, 'Bi' = 0.0, 'Cr' = 28, 'Ci' = 0.0],
     [28 is 12 + 16, 0.0 is 0.0 + 0.0]).
step(28 is 12 + 16, builtin, [], []).
step(c_add(c(-4.0, 4.0), c(0.0, 5.656854249492381), c(-4.0, 9.65685424949238)),
     rule(9),
     ['Ar' = -4.0,
      'Ai' = 4.0,
      'Br' = 0.0,
      'Bi' = 5.656854249492381,
      'Cr' = -4.0,
      'Ci' = 9.65685424949238],
     [-4.0 is -4.0 + 0.0, 9.65685424949238 is 4.0 + 5.656854249492381]).
step(-4.0 is -4.0 + 0.0, builtin, [], []).
step(9.65685424949238 is 4.0 + 5.656854249492381, builtin, [], []).
step(c_add(c(-4.0, -4.0), c(0.0, 5.656854249492381), c(-4.0, 1.6568542494923806)),
     rule(9),
     ['Ar' = -4.0,
      'Ai' = -4.0,
      'Br' = 0.0,
      'Bi' = 5.656854249492381,
      'Cr' = -4.0,
      'Ci' = 1.6568542494923806],
     [-4.0 is -4.0 + 0.0, 1.6568542494923806 is -4.0 + 5.656854249492381]).
step(1.6568542494923806 is -4.0 + 5.656854249492381, builtin, [], []).
step(c_sub(c(12, 0.0), c(16, 0.0), c(-4, 0.0)),
     rule(10),
     ['Ar' = 12, 'Ai' = 0.0, 'Br' = 16, 'Bi' = 0.0, 'Cr' = -4, 'Ci' = 0.0],
     [-4 is 12 - 16, 0.0 is 0.0 - 0.0]).
step(-4 is 12 - 16, builtin, [], []).
step(c_sub(c(-4.0, 4.0), c(0.0, 5.656854249492381), c(-4.0, -1.6568542494923806)),
     rule(10),
     ['Ar' = -4.0,
      'Ai' = 4.0,
      'Br' = 0.0,
      'Bi' = 5.656854249492381,
      'Cr' = -4.0,
      'Ci' = -1.6568542494923806],
     [-4.0 is -4.0 - 0.0, -1.6568542494923806 is 4.0 - 5.656854249492381]).
step(-4.0 is -4.0 - 0.0, builtin, [], []).
step(-1.6568542494923806 is 4.0 - 5.656854249492381, builtin, [], []).
step(c_sub(c(-4.0, -4.0), c(0.0, 5.656854249492381), c(-4.0, -9.65685424949238)),
     rule(10),
     ['Ar' = -4.0,
      'Ai' = -4.0,
      'Br' = 0.0,
      'Bi' = 5.656854249492381,
      'Cr' = -4.0,
      'Ci' = -9.65685424949238],
     [-4.0 is -4.0 - 0.0, -9.65685424949238 is -4.0 - 5.656854249492381]).
step(-9.65685424949238 is -4.0 - 5.656854249492381, builtin, [], []).
step(fft(alternating8, [c(0, 0.0), c(0.0, 0.0), c(0.0, 0.0), c(0.0, 0.0), c(8, 0.0), c(0.0, 0.0), c(0.0, 0.0), c(0.0, 0.0)]),
     rule(18),
     ['Wave' = alternating8,
      'Spectrum' = [c(0, 0.0), c(0.0, 0.0), c(0.0, 0.0), c(0.0, 0.0), c(8, 0.0), c(0.0, 0.0), c(0.0, 0.0), c(0.0, 0.0)],
      'Samples' = [1, -1, 1, -1, 1, -1, 1, -1]],
     [wave(alternating8, [1, -1, 1, -1, 1, -1, 1, -1]),
      fft8([1, -1, 1, -1, 1, -1, 1, -1], [c(0, 0.0), c(0.0, 0.0), c(0.0, 0.0), c(0.0, 0.0), c(8, 0.0), c(0.0, 0.0), c(0.0, 0.0), c(0.0, 0.0)])]).
step(wave(alternating8, [1, -1, 1, -1, 1, -1, 1, -1]), fact(17), [], []).
step(fft8([1, -1, 1, -1, 1, -1, 1, -1], [c(0, 0.0), c(0.0, 0.0), c(0.0, 0.0), c(0.0, 0.0), c(8, 0.0), c(0.0, 0.0), c(0.0, 0.0), c(0.0, 0.0)]),
     rule(15),
     ['X0' = 1,
      'X1' = -1,
      'X2' = 1,
      'X3' = -1,
      'X4' = 1,
      'X5' = -1,
      'X6' = 1,
      'X7' = -1,
      'Y0' = c(0, 0.0),
      'Y1' = c(0.0, 0.0),
      'Y2' = c(0.0, 0.0),
      'Y3' = c(0.0, 0.0),
      'Y4' = c(8, 0.0),
      'Y5' = c(0.0, 0.0),
      'Y6' = c(0.0, 0.0),
      'Y7' = c(0.0, 0.0),
      'E0' = c(4, 0.0),
      'E1' = c(0.0, 0.0),
      'E2' = c(0, 0.0),
      'E3' = c(0.0, 0.0),
      'O0' = c(-4, 0.0),
      'O1' = c(0.0, 0.0),
      'O2' = c(0, 0.0),
      'O3' = c(0.0, 0.0),
      'W1' = c(0.7071067811865476, -0.7071067811865476),
      'W2' = c(0.0, -1.0),
      'W3' = c(-0.7071067811865476, -0.7071067811865476),
      'T1' = c(0.0, 0.0),
      'T2' = c(0.0, 0.0),
      'T3' = c(0.0, 0.0)],
     [fft4([1, 1, 1, 1], [c(4, 0.0), c(0.0, 0.0), c(0, 0.0), c(0.0, 0.0)]),
      fft4([-1, -1, -1, -1], [c(-4, 0.0), c(0.0, 0.0), c(0, 0.0), c(0.0, 0.0)]),
      w8(1, c(0.7071067811865476, -0.7071067811865476)),
      w8(2, c(0.0, -1.0)),
      w8(3, c(-0.7071067811865476, -0.7071067811865476)),
      c_mul(c(0.7071067811865476, -0.7071067811865476), c(0.0, 0.0), c(0.0, 0.0)),
      c_mul(c(0.0, -1.0), c(0, 0.0), c(0.0, 0.0)),
      c_mul(c(-0.7071067811865476, -0.7071067811865476), c(0.0, 0.0), c(0.0, 0.0)),
      c_add(c(4, 0.0), c(-4, 0.0), c(0, 0.0)),
      c_add(c(0.0, 0.0), c(0.0, 0.0), c(0.0, 0.0)),
      c_add(c(0, 0.0), c(0.0, 0.0), c(0.0, 0.0)),
      c_add(c(0.0, 0.0), c(0.0, 0.0), c(0.0, 0.0)),
      c_sub(c(4, 0.0), c(-4, 0.0), c(8, 0.0)),
      c_sub(c(0.0, 0.0), c(0.0, 0.0), c(0.0, 0.0)),
      c_sub(c(0, 0.0), c(0.0, 0.0), c(0.0, 0.0)),
      c_sub(c(0.0, 0.0), c(0.0, 0.0), c(0.0, 0.0))]).
step(fft4([1, 1, 1, 1], [c(4, 0.0), c(0.0, 0.0), c(0, 0.0), c(0.0, 0.0)]),
     rule(14),
     ['X0' = 1,
      'X1' = 1,
      'X2' = 1,
      'X3' = 1,
      'Y0' = c(4, 0.0),
      'Y1' = c(0.0, 0.0),
      'Y2' = c(0, 0.0),
      'Y3' = c(0.0, 0.0),
      'E0' = c(2, 0.0),
      'E1' = c(0, 0.0),
      'O0' = c(2, 0.0),
      'O1' = c(0, 0.0),
      'W1' = c(0.0, -1.0),
      'T1' = c(0.0, 0.0)],
     [fft2([1, 1], [c(2, 0.0), c(0, 0.0)]),
      fft2([1, 1], [c(2, 0.0), c(0, 0.0)]),
      w8(2, c(0.0, -1.0)),
      c_mul(c(0.0, -1.0), c(0, 0.0), c(0.0, 0.0)),
      c_add(c(2, 0.0), c(2, 0.0), c(4, 0.0)),
      c_add(c(0, 0.0), c(0.0, 0.0), c(0.0, 0.0)),
      c_sub(c(2, 0.0), c(2, 0.0), c(0, 0.0)),
      c_sub(c(0, 0.0), c(0.0, 0.0), c(0.0, 0.0))]).
step(fft2([1, 1], [c(2, 0.0), c(0, 0.0)]),
     rule(13),
     ['X0' = 1,
      'X1' = 1,
      'Y0' = c(2, 0.0),
      'Y1' = c(0, 0.0),
      'E0' = c(1, 0.0),
      'O0' = c(1, 0.0)],
     [fft1([1], [c(1, 0.0)]),
      fft1([1], [c(1, 0.0)]),
      c_add(c(1, 0.0), c(1, 0.0), c(2, 0.0)),
      c_sub(c(1, 0.0), c(1, 0.0), c(0, 0.0))]).
step(c_add(c(1, 0.0), c(1, 0.0), c(2, 0.0)),
     rule(9),
     ['Ar' = 1, 'Ai' = 0.0, 'Br' = 1, 'Bi' = 0.0, 'Cr' = 2, 'Ci' = 0.0],
     [2 is 1 + 1, 0.0 is 0.0 + 0.0]).
step(2 is 1 + 1, builtin, [], []).
step(c_sub(c(1, 0.0), c(1, 0.0), c(0, 0.0)),
     rule(10),
     ['Ar' = 1, 'Ai' = 0.0, 'Br' = 1, 'Bi' = 0.0, 'Cr' = 0, 'Ci' = 0.0],
     [0 is 1 - 1, 0.0 is 0.0 - 0.0]).
step(0 is 1 - 1, builtin, [], []).
step(c_mul(c(0.0, -1.0), c(0, 0.0), c(0.0, 0.0)),
     rule(11),
     ['Ar' = 0.0,
      'Ai' = -1.0,
      'Br' = 0,
      'Bi' = 0.0,
      'Cr' = 0.0,
      'Ci' = 0.0,
      'Ac' = 0.0,
      'Bd' = 0.0,
      'Ad' = 0.0,
      'Bc' = 0.0],
     [0.0 is 0.0 * 0,
      0.0 is -1.0 * 0.0,
      0.0 is 0.0 - 0.0,
      0.0 is 0.0 * 0.0,
      0.0 is -1.0 * 0,
      0.0 is 0.0 + 0.0]).
step(0.0 is 0.0 * 0, builtin, [], []).
step(0.0 is -1.0 * 0, builtin, [], []).
step(c_add(c(2, 0.0), c(2, 0.0), c(4, 0.0)),
     rule(9),
     ['Ar' = 2, 'Ai' = 0.0, 'Br' = 2, 'Bi' = 0.0, 'Cr' = 4, 'Ci' = 0.0],
     [4 is 2 + 2, 0.0 is 0.0 + 0.0]).
step(4 is 2 + 2, builtin, [], []).
step(c_add(c(0, 0.0), c(0.0, 0.0), c(0.0, 0.0)),
     rule(9),
     ['Ar' = 0, 'Ai' = 0.0, 'Br' = 0.0, 'Bi' = 0.0, 'Cr' = 0.0, 'Ci' = 0.0],
     [0.0 is 0 + 0.0, 0.0 is 0.0 + 0.0]).
step(0.0 is 0 + 0.0, builtin, [], []).
step(c_sub(c(2, 0.0), c(2, 0.0), c(0, 0.0)),
     rule(10),
     ['Ar' = 2, 'Ai' = 0.0, 'Br' = 2, 'Bi' = 0.0, 'Cr' = 0, 'Ci' = 0.0],
     [0 is 2 - 2, 0.0 is 0.0 - 0.0]).
step(0 is 2 - 2, builtin, [], []).
step(c_sub(c(0, 0.0), c(0.0, 0.0), c(0.0, 0.0)),
     rule(10),
     ['Ar' = 0, 'Ai' = 0.0, 'Br' = 0.0, 'Bi' = 0.0, 'Cr' = 0.0, 'Ci' = 0.0],
     [0.0 is 0 - 0.0, 0.0 is 0.0 - 0.0]).
step(0.0 is 0 - 0.0, builtin, [], []).
step(fft4([-1, -1, -1, -1], [c(-4, 0.0), c(0.0, 0.0), c(0, 0.0), c(0.0, 0.0)]),
     rule(14),
     ['X0' = -1,
      'X1' = -1,
      'X2' = -1,
      'X3' = -1,
      'Y0' = c(-4, 0.0),
      'Y1' = c(0.0, 0.0),
      'Y2' = c(0, 0.0),
      'Y3' = c(0.0, 0.0),
      'E0' = c(-2, 0.0),
      'E1' = c(0, 0.0),
      'O0' = c(-2, 0.0),
      'O1' = c(0, 0.0),
      'W1' = c(0.0, -1.0),
      'T1' = c(0.0, 0.0)],
     [fft2([-1, -1], [c(-2, 0.0), c(0, 0.0)]),
      fft2([-1, -1], [c(-2, 0.0), c(0, 0.0)]),
      w8(2, c(0.0, -1.0)),
      c_mul(c(0.0, -1.0), c(0, 0.0), c(0.0, 0.0)),
      c_add(c(-2, 0.0), c(-2, 0.0), c(-4, 0.0)),
      c_add(c(0, 0.0), c(0.0, 0.0), c(0.0, 0.0)),
      c_sub(c(-2, 0.0), c(-2, 0.0), c(0, 0.0)),
      c_sub(c(0, 0.0), c(0.0, 0.0), c(0.0, 0.0))]).
step(fft2([-1, -1], [c(-2, 0.0), c(0, 0.0)]),
     rule(13),
     ['X0' = -1,
      'X1' = -1,
      'Y0' = c(-2, 0.0),
      'Y1' = c(0, 0.0),
      'E0' = c(-1, 0.0),
      'O0' = c(-1, 0.0)],
     [fft1([-1], [c(-1, 0.0)]),
      fft1([-1], [c(-1, 0.0)]),
      c_add(c(-1, 0.0), c(-1, 0.0), c(-2, 0.0)),
      c_sub(c(-1, 0.0), c(-1, 0.0), c(0, 0.0))]).
step(fft1([-1], [c(-1, 0.0)]), fact(12), ['X' = -1], []).
step(c_add(c(-1, 0.0), c(-1, 0.0), c(-2, 0.0)),
     rule(9),
     ['Ar' = -1, 'Ai' = 0.0, 'Br' = -1, 'Bi' = 0.0, 'Cr' = -2, 'Ci' = 0.0],
     [-2 is -1 + -1, 0.0 is 0.0 + 0.0]).
step(-2 is -1 + -1, builtin, [], []).
step(c_sub(c(-1, 0.0), c(-1, 0.0), c(0, 0.0)),
     rule(10),
     ['Ar' = -1, 'Ai' = 0.0, 'Br' = -1, 'Bi' = 0.0, 'Cr' = 0, 'Ci' = 0.0],
     [0 is -1 - -1, 0.0 is 0.0 - 0.0]).
step(0 is -1 - -1, builtin, [], []).
step(c_add(c(-2, 0.0), c(-2, 0.0), c(-4, 0.0)),
     rule(9),
     ['Ar' = -2, 'Ai' = 0.0, 'Br' = -2, 'Bi' = 0.0, 'Cr' = -4, 'Ci' = 0.0],
     [-4 is -2 + -2, 0.0 is 0.0 + 0.0]).
step(-4 is -2 + -2, builtin, [], []).
step(c_sub(c(-2, 0.0), c(-2, 0.0), c(0, 0.0)),
     rule(10),
     ['Ar' = -2, 'Ai' = 0.0, 'Br' = -2, 'Bi' = 0.0, 'Cr' = 0, 'Ci' = 0.0],
     [0 is -2 - -2, 0.0 is 0.0 - 0.0]).
step(0 is -2 - -2, builtin, [], []).
step(c_mul(c(0.7071067811865476, -0.7071067811865476), c(0.0, 0.0), c(0.0, 0.0)),
     rule(11),
     ['Ar' = 0.7071067811865476,
      'Ai' = -0.7071067811865476,
      'Br' = 0.0,
      'Bi' = 0.0,
      'Cr' = 0.0,
      'Ci' = 0.0,
      'Ac' = 0.0,
      'Bd' = 0.0,
      'Ad' = 0.0,
      'Bc' = 0.0],
     [0.0 is 0.7071067811865476 * 0.0,
      0.0 is -0.7071067811865476 * 0.0,
      0.0 is 0.0 - 0.0,
      0.0 is 0.7071067811865476 * 0.0,
      0.0 is -0.7071067811865476 * 0.0,
      0.0 is 0.0 + 0.0]).
step(0.0 is 0.7071067811865476 * 0.0, builtin, [], []).
step(0.0 is -0.7071067811865476 * 0.0, builtin, [], []).
step(c_mul(c(-0.7071067811865476, -0.7071067811865476), c(0.0, 0.0), c(0.0, 0.0)),
     rule(11),
     ['Ar' = -0.7071067811865476,
      'Ai' = -0.7071067811865476,
      'Br' = 0.0,
      'Bi' = 0.0,
      'Cr' = 0.0,
      'Ci' = 0.0,
      'Ac' = 0.0,
      'Bd' = 0.0,
      'Ad' = 0.0,
      'Bc' = 0.0],
     [0.0 is -0.7071067811865476 * 0.0,
      0.0 is -0.7071067811865476 * 0.0,
      0.0 is 0.0 - 0.0,
      0.0 is -0.7071067811865476 * 0.0,
      0.0 is -0.7071067811865476 * 0.0,
      0.0 is 0.0 + 0.0]).
step(c_add(c(4, 0.0), c(-4, 0.0), c(0, 0.0)),
     rule(9),
     ['Ar' = 4, 'Ai' = 0.0, 'Br' = -4, 'Bi' = 0.0, 'Cr' = 0, 'Ci' = 0.0],
     [0 is 4 + -4, 0.0 is 0.0 + 0.0]).
step(0 is 4 + -4, builtin, [], []).
step(c_add(c(0.0, 0.0), c(0.0, 0.0), c(0.0, 0.0)),
     rule(9),
     ['Ar' = 0.0, 'Ai' = 0.0, 'Br' = 0.0, 'Bi' = 0.0, 'Cr' = 0.0, 'Ci' = 0.0],
     [0.0 is 0.0 + 0.0, 0.0 is 0.0 + 0.0]).
step(c_sub(c(4, 0.0), c(-4, 0.0), c(8, 0.0)),
     rule(10),
     ['Ar' = 4, 'Ai' = 0.0, 'Br' = -4, 'Bi' = 0.0, 'Cr' = 8, 'Ci' = 0.0],
     [8 is 4 - -4, 0.0 is 0.0 - 0.0]).
step(8 is 4 - -4, builtin, [], []).
step(c_sub(c(0.0, 0.0), c(0.0, 0.0), c(0.0, 0.0)),
     rule(10),
     ['Ar' = 0.0, 'Ai' = 0.0, 'Br' = 0.0, 'Bi' = 0.0, 'Cr' = 0.0, 'Ci' = 0.0],
     [0.0 is 0.0 - 0.0, 0.0 is 0.0 - 0.0]).
step(dcComponent(ramp8, c(28, 0.0)),
     rule(19),
     ['Wave' = ramp8, 'Dc' = c(28, 0.0), 'Samples' = [0, 1, 2, 3, 4, 5, 6, 7]],
     [wave(ramp8, [0, 1, 2, 3, 4, 5, 6, 7]),
      fft8([0, 1, 2, 3, 4, 5, 6, 7], [c(28, 0.0), c(-4.0, 9.65685424949238), c(-4.0, 4.0), c(-4.0, 1.6568542494923806), c(-4, 0.0), c(-4.0, -1.6568542494923806), c(-4.0, -4.0), c(-4.0, -9.65685424949238)])]).
step(dcComponent(alternating8, c(0, 0.0)),
     rule(19),
     ['Wave' = alternating8, 'Dc' = c(0, 0.0), 'Samples' = [1, -1, 1, -1, 1, -1, 1, -1]],
     [wave(alternating8, [1, -1, 1, -1, 1, -1, 1, -1]),
      fft8([1, -1, 1, -1, 1, -1, 1, -1], [c(0, 0.0), c(0.0, 0.0), c(0.0, 0.0), c(0.0, 0.0), c(8, 0.0), c(0.0, 0.0), c(0.0, 0.0), c(0.0, 0.0)])]).
