eyeprolog 1.6.12 → 1.6.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (129) hide show
  1. package/examples/proof/abstract-interpretation.pl +146 -0
  2. package/examples/proof/ackermann.pl +296 -0
  3. package/examples/proof/alignment-demo.pl +196 -0
  4. package/examples/proof/allen-interval-calculus.pl +1271 -0
  5. package/examples/proof/auroracare.pl +954 -0
  6. package/examples/proof/basic-monadic.pl +37176 -0
  7. package/examples/proof/bayes-therapy.pl +1349 -0
  8. package/examples/proof/bench.pl +2802 -0
  9. package/examples/proof/binomial-vandermonde.pl +983 -0
  10. package/examples/proof/blocks-world-planning.pl +471 -0
  11. package/examples/proof/bmi.pl +386 -0
  12. package/examples/proof/braking-safety-worlds.pl +508 -0
  13. package/examples/proof/buck-converter-design.pl +179 -0
  14. package/examples/proof/bulk-stream-write.pl +3 -0
  15. package/examples/proof/collatz-1000.pl +43784 -0
  16. package/examples/proof/competitive-enzyme-kinetics.pl +167 -0
  17. package/examples/proof/complex.pl +514 -0
  18. package/examples/proof/context-schema-audit.pl +374 -0
  19. package/examples/proof/continued-fraction-sqrt2.pl +476 -0
  20. package/examples/proof/control-system.pl +137 -0
  21. package/examples/proof/critical-path-schedule.pl +491 -0
  22. package/examples/proof/cross-organization-data-sharing.pl +732 -0
  23. package/examples/proof/cyclic-path.pl +44 -0
  24. package/examples/proof/dairy-energy-balance.pl +290 -0
  25. package/examples/proof/dcg-expression-language.pl +157 -0
  26. package/examples/proof/deep-taxonomy-10.pl +185 -0
  27. package/examples/proof/deep-taxonomy-100.pl +365 -0
  28. package/examples/proof/deep-taxonomy-1000.pl +163 -0
  29. package/examples/proof/deep-taxonomy-10000.pl +163 -0
  30. package/examples/proof/deep-taxonomy-100000.pl +163 -0
  31. package/examples/proof/delfour.pl +1615 -0
  32. package/examples/proof/dijkstra-findall-sort.pl +354 -0
  33. package/examples/proof/dijkstra-risk-path.pl +820 -0
  34. package/examples/proof/dijkstra.pl +753 -0
  35. package/examples/proof/dining-philosophers.pl +2663 -0
  36. package/examples/proof/donald-gerald-robert.pl +311 -0
  37. package/examples/proof/dpv-odrl-purpose-mapping.pl +1189 -0
  38. package/examples/proof/drone-corridor-planner.pl +2365 -0
  39. package/examples/proof/easter-computus.pl +1406 -0
  40. package/examples/proof/eulerian-path.pl +457 -0
  41. package/examples/proof/ev-range-worlds.pl +508 -0
  42. package/examples/proof/exoplanet-validation-worlds.pl +397 -0
  43. package/examples/proof/explainable-ev-depot-configuration.pl +313 -0
  44. package/examples/proof/family-cousins.pl +920 -0
  45. package/examples/proof/fast-fourier-transform.pl +5045 -0
  46. package/examples/proof/fastpow.pl +769 -0
  47. package/examples/proof/fft8-numeric.pl +685 -0
  48. package/examples/proof/fibonacci.pl +1425 -0
  49. package/examples/proof/field-nitrogen-balance.pl +320 -0
  50. package/examples/proof/flandor.pl +533 -0
  51. package/examples/proof/fundamental-theorem-arithmetic.pl +245 -0
  52. package/examples/proof/gd-step-certified.pl +1717 -0
  53. package/examples/proof/goldbach.pl +1135 -0
  54. package/examples/proof/gps.pl +627 -0
  55. package/examples/proof/graph.pl +105 -0
  56. package/examples/proof/gray-code-counter.pl +355 -0
  57. package/examples/proof/hamiltonian-path.pl +3373 -0
  58. package/examples/proof/hamming-code.pl +232 -0
  59. package/examples/proof/heron-theorem.pl +79 -0
  60. package/examples/proof/http-client.pl +0 -0
  61. package/examples/proof/illegitimate-reasoning.pl +220 -0
  62. package/examples/proof/integer-partitions.pl +1642 -0
  63. package/examples/proof/iso-atomic-conversion.pl +73 -0
  64. package/examples/proof/knowledge-engineering-alignment-flow.pl +200 -0
  65. package/examples/proof/knuth-bendix-completion.pl +290 -0
  66. package/examples/proof/law-of-cosines.pl +71 -0
  67. package/examples/proof/least-squares-regression.pl +342 -0
  68. package/examples/proof/lee.pl +637 -0
  69. package/examples/proof/lldm.pl +581 -0
  70. package/examples/proof/manufacturing-quality-control.pl +181 -0
  71. package/examples/proof/map-four-color-search.pl +796 -0
  72. package/examples/proof/markov-logic-network.pl +405 -0
  73. package/examples/proof/matrix-chain-order.pl +164 -0
  74. package/examples/proof/matrix-noncommutativity.pl +183 -0
  75. package/examples/proof/microgrid-dispatch.pl +164 -0
  76. package/examples/proof/missionaries-cannibals.pl +428 -0
  77. package/examples/proof/modular-exponentiation.pl +838 -0
  78. package/examples/proof/monkey-bananas.pl +278 -0
  79. package/examples/proof/network-sla.pl +100 -0
  80. package/examples/proof/newton-raphson.pl +520 -0
  81. package/examples/proof/observability-log-correlation.pl +1061 -0
  82. package/examples/proof/odrl-dpv-fpv-trust-flow.pl +1366 -0
  83. package/examples/proof/odrl-dpv-healthcare-risk-ranked.pl +488 -0
  84. package/examples/proof/odrl-dpv-risk-ranked.pl +637 -0
  85. package/examples/proof/odrl-policy-advanced.pl +705 -0
  86. package/examples/proof/odrl-policy-reasoning.pl +1423 -0
  87. package/examples/proof/odrl-policy.pl +103 -0
  88. package/examples/proof/operational-incident-response.pl +435 -0
  89. package/examples/proof/orbital-transfer-design.pl +288 -0
  90. package/examples/proof/path-discovery.pl +502 -0
  91. package/examples/proof/peano-arithmetic.pl +910 -0
  92. package/examples/proof/peano-calculus.pl +294 -0
  93. package/examples/proof/pell-equation.pl +295 -0
  94. package/examples/proof/pendulum-period.pl +97 -0
  95. package/examples/proof/pi.pl +3 -0
  96. package/examples/proof/pointer-analysis.pl +94 -0
  97. package/examples/proof/polynomial.pl +2487 -0
  98. package/examples/proof/portable-library-overlap.pl +6 -0
  99. package/examples/proof/quadratic-formula.pl +159 -0
  100. package/examples/proof/quine-mccluskey.pl +914 -0
  101. package/examples/proof/radioactive-decay.pl +104 -0
  102. package/examples/proof/rdf12-annotated-claims.pl +263 -0
  103. package/examples/proof/register-allocation.pl +120 -0
  104. package/examples/proof/relational-cube-lookup.pl +15867 -0
  105. package/examples/proof/riemann-hypothesis.pl +148 -0
  106. package/examples/proof/sat-solver-dpll.pl +226 -0
  107. package/examples/proof/scientific-evidence-graph.pl +681 -0
  108. package/examples/proof/send-more-money.pl +252 -0
  109. package/examples/proof/service-impact.pl +151 -0
  110. package/examples/proof/shoelace-polygon-area.pl +161 -0
  111. package/examples/proof/skolem-functions.pl +128 -0
  112. package/examples/proof/statistics-summary.pl +250 -0
  113. package/examples/proof/stirling-bell-numbers.pl +125 -0
  114. package/examples/proof/superdense-coding.pl +118 -0
  115. package/examples/proof/symbiotic-knowledge-graph.pl +1569 -0
  116. package/examples/proof/truth-maintenance-system.pl +466 -0
  117. package/examples/proof/turing.pl +1183 -0
  118. package/examples/proof/type-inference.pl +267 -0
  119. package/examples/proof/vector-similarity.pl +163 -0
  120. package/examples/proof/vulnerability-impact.pl +180 -0
  121. package/examples/proof/wolf-goat-cabbage.pl +339 -0
  122. package/examples/proof/zebra.pl +176 -0
  123. package/package.json +1 -1
  124. package/src/check-proof.js +159 -11
  125. package/test/conformance/NEUMERKEL-LATEST.md +3 -3
  126. package/test/regression/cases-white-box.mjs +38 -0
  127. package/test/run-examples.mjs +7 -111
  128. package/test/run-proof-checking.mjs +28 -5
  129. package/the-art-of-eyeprolog.md +4 -2
@@ -0,0 +1,685 @@
1
+ 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)]).
2
+ 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)]).
3
+ dcComponent(ramp8, c(28, 0.0)).
4
+ dcComponent(alternating8, c(0, 0.0)).
5
+
6
+ clause(2, w8(1, c(0.7071067811865476, -0.7071067811865476)), true).
7
+ clause(3, w8(2, c(0.0, -1.0)), true).
8
+ clause(4, w8(3, c(-0.7071067811865476, -0.7071067811865476)), true).
9
+ clause(9,
10
+ c_add(c(var('Ar'), var('Ai')), c(var('Br'), var('Bi')), c(var('Cr'), var('Ci'))),
11
+ (var('Cr') is var('Ar') + var('Br'), var('Ci') is var('Ai') + var('Bi'))).
12
+ clause(10,
13
+ c_sub(c(var('Ar'), var('Ai')), c(var('Br'), var('Bi')), c(var('Cr'), var('Ci'))),
14
+ (var('Cr') is var('Ar') - var('Br'), var('Ci') is var('Ai') - var('Bi'))).
15
+ clause(11,
16
+ c_mul(c(var('Ar'), var('Ai')), c(var('Br'), var('Bi')), c(var('Cr'), var('Ci'))),
17
+ (var('Ac') is var('Ar') * var('Br'),
18
+ var('Bd') is var('Ai') * var('Bi'),
19
+ var('Cr') is var('Ac') - var('Bd'),
20
+ var('Ad') is var('Ar') * var('Bi'),
21
+ var('Bc') is var('Ai') * var('Br'),
22
+ var('Ci') is var('Ad') + var('Bc'))).
23
+ clause(12, fft1([var('X')], [c(var('X'), 0.0)]), true).
24
+ clause(13,
25
+ fft2([var('X0'), var('X1')], [var('Y0'), var('Y1')]),
26
+ (fft1([var('X0')], [var('E0')]),
27
+ fft1([var('X1')], [var('O0')]),
28
+ c_add(var('E0'), var('O0'), var('Y0')),
29
+ c_sub(var('E0'), var('O0'), var('Y1')))).
30
+ clause(14,
31
+ fft4([var('X0'), var('X1'), var('X2'), var('X3')], [var('Y0'), var('Y1'), var('Y2'), var('Y3')]),
32
+ (fft2([var('X0'), var('X2')], [var('E0'), var('E1')]),
33
+ fft2([var('X1'), var('X3')], [var('O0'), var('O1')]),
34
+ w8(2, var('W1')),
35
+ c_mul(var('W1'), var('O1'), var('T1')),
36
+ c_add(var('E0'), var('O0'), var('Y0')),
37
+ c_add(var('E1'), var('T1'), var('Y1')),
38
+ c_sub(var('E0'), var('O0'), var('Y2')),
39
+ c_sub(var('E1'), var('T1'), var('Y3')))).
40
+ clause(15,
41
+ 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')]),
42
+ (fft4([var('X0'), var('X2'), var('X4'), var('X6')], [var('E0'), var('E1'), var('E2'), var('E3')]),
43
+ fft4([var('X1'), var('X3'), var('X5'), var('X7')], [var('O0'), var('O1'), var('O2'), var('O3')]),
44
+ w8(1, var('W1')),
45
+ w8(2, var('W2')),
46
+ w8(3, var('W3')),
47
+ c_mul(var('W1'), var('O1'), var('T1')),
48
+ c_mul(var('W2'), var('O2'), var('T2')),
49
+ c_mul(var('W3'), var('O3'), var('T3')),
50
+ c_add(var('E0'), var('O0'), var('Y0')),
51
+ c_add(var('E1'), var('T1'), var('Y1')),
52
+ c_add(var('E2'), var('T2'), var('Y2')),
53
+ c_add(var('E3'), var('T3'), var('Y3')),
54
+ c_sub(var('E0'), var('O0'), var('Y4')),
55
+ c_sub(var('E1'), var('T1'), var('Y5')),
56
+ c_sub(var('E2'), var('T2'), var('Y6')),
57
+ c_sub(var('E3'), var('T3'), var('Y7')))).
58
+ clause(16, wave(ramp8, [0, 1, 2, 3, 4, 5, 6, 7]), true).
59
+ clause(17, wave(alternating8, [1, -1, 1, -1, 1, -1, 1, -1]), true).
60
+ clause(18,
61
+ fft(var('Wave'), var('Spectrum')),
62
+ (wave(var('Wave'), var('Samples')), fft8(var('Samples'), var('Spectrum')))).
63
+ clause(19,
64
+ dcComponent(var('Wave'), var('Dc')),
65
+ (wave(var('Wave'), var('Samples')), fft8(var('Samples'), [var('Dc') | anonymous(1)]))).
66
+
67
+ 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)]),
68
+ rule(18),
69
+ ['Wave' = ramp8,
70
+ '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)],
71
+ 'Samples' = [0, 1, 2, 3, 4, 5, 6, 7]],
72
+ [wave(ramp8, [0, 1, 2, 3, 4, 5, 6, 7]),
73
+ 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)])]).
74
+ step(wave(ramp8, [0, 1, 2, 3, 4, 5, 6, 7]), fact(16), [], []).
75
+ 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)]),
76
+ rule(15),
77
+ ['X0' = 0,
78
+ 'X1' = 1,
79
+ 'X2' = 2,
80
+ 'X3' = 3,
81
+ 'X4' = 4,
82
+ 'X5' = 5,
83
+ 'X6' = 6,
84
+ 'X7' = 7,
85
+ 'Y0' = c(28, 0.0),
86
+ 'Y1' = c(-4.0, 9.65685424949238),
87
+ 'Y2' = c(-4.0, 4.0),
88
+ 'Y3' = c(-4.0, 1.6568542494923806),
89
+ 'Y4' = c(-4, 0.0),
90
+ 'Y5' = c(-4.0, -1.6568542494923806),
91
+ 'Y6' = c(-4.0, -4.0),
92
+ 'Y7' = c(-4.0, -9.65685424949238),
93
+ 'E0' = c(12, 0.0),
94
+ 'E1' = c(-4.0, 4.0),
95
+ 'E2' = c(-4, 0.0),
96
+ 'E3' = c(-4.0, -4.0),
97
+ 'O0' = c(16, 0.0),
98
+ 'O1' = c(-4.0, 4.0),
99
+ 'O2' = c(-4, 0.0),
100
+ 'O3' = c(-4.0, -4.0),
101
+ 'W1' = c(0.7071067811865476, -0.7071067811865476),
102
+ 'W2' = c(0.0, -1.0),
103
+ 'W3' = c(-0.7071067811865476, -0.7071067811865476),
104
+ 'T1' = c(0.0, 5.656854249492381),
105
+ 'T2' = c(0.0, 4.0),
106
+ 'T3' = c(0.0, 5.656854249492381)],
107
+ [fft4([0, 2, 4, 6], [c(12, 0.0), c(-4.0, 4.0), c(-4, 0.0), c(-4.0, -4.0)]),
108
+ fft4([1, 3, 5, 7], [c(16, 0.0), c(-4.0, 4.0), c(-4, 0.0), c(-4.0, -4.0)]),
109
+ w8(1, c(0.7071067811865476, -0.7071067811865476)),
110
+ w8(2, c(0.0, -1.0)),
111
+ w8(3, c(-0.7071067811865476, -0.7071067811865476)),
112
+ c_mul(c(0.7071067811865476, -0.7071067811865476), c(-4.0, 4.0), c(0.0, 5.656854249492381)),
113
+ c_mul(c(0.0, -1.0), c(-4, 0.0), c(0.0, 4.0)),
114
+ c_mul(c(-0.7071067811865476, -0.7071067811865476), c(-4.0, -4.0), c(0.0, 5.656854249492381)),
115
+ c_add(c(12, 0.0), c(16, 0.0), c(28, 0.0)),
116
+ c_add(c(-4.0, 4.0), c(0.0, 5.656854249492381), c(-4.0, 9.65685424949238)),
117
+ c_add(c(-4, 0.0), c(0.0, 4.0), c(-4.0, 4.0)),
118
+ c_add(c(-4.0, -4.0), c(0.0, 5.656854249492381), c(-4.0, 1.6568542494923806)),
119
+ c_sub(c(12, 0.0), c(16, 0.0), c(-4, 0.0)),
120
+ c_sub(c(-4.0, 4.0), c(0.0, 5.656854249492381), c(-4.0, -1.6568542494923806)),
121
+ c_sub(c(-4, 0.0), c(0.0, 4.0), c(-4.0, -4.0)),
122
+ c_sub(c(-4.0, -4.0), c(0.0, 5.656854249492381), c(-4.0, -9.65685424949238))]).
123
+ step(fft4([0, 2, 4, 6], [c(12, 0.0), c(-4.0, 4.0), c(-4, 0.0), c(-4.0, -4.0)]),
124
+ rule(14),
125
+ ['X0' = 0,
126
+ 'X1' = 2,
127
+ 'X2' = 4,
128
+ 'X3' = 6,
129
+ 'Y0' = c(12, 0.0),
130
+ 'Y1' = c(-4.0, 4.0),
131
+ 'Y2' = c(-4, 0.0),
132
+ 'Y3' = c(-4.0, -4.0),
133
+ 'E0' = c(4, 0.0),
134
+ 'E1' = c(-4, 0.0),
135
+ 'O0' = c(8, 0.0),
136
+ 'O1' = c(-4, 0.0),
137
+ 'W1' = c(0.0, -1.0),
138
+ 'T1' = c(0.0, 4.0)],
139
+ [fft2([0, 4], [c(4, 0.0), c(-4, 0.0)]),
140
+ fft2([2, 6], [c(8, 0.0), c(-4, 0.0)]),
141
+ w8(2, c(0.0, -1.0)),
142
+ c_mul(c(0.0, -1.0), c(-4, 0.0), c(0.0, 4.0)),
143
+ c_add(c(4, 0.0), c(8, 0.0), c(12, 0.0)),
144
+ c_add(c(-4, 0.0), c(0.0, 4.0), c(-4.0, 4.0)),
145
+ c_sub(c(4, 0.0), c(8, 0.0), c(-4, 0.0)),
146
+ c_sub(c(-4, 0.0), c(0.0, 4.0), c(-4.0, -4.0))]).
147
+ step(fft2([0, 4], [c(4, 0.0), c(-4, 0.0)]),
148
+ rule(13),
149
+ ['X0' = 0,
150
+ 'X1' = 4,
151
+ 'Y0' = c(4, 0.0),
152
+ 'Y1' = c(-4, 0.0),
153
+ 'E0' = c(0, 0.0),
154
+ 'O0' = c(4, 0.0)],
155
+ [fft1([0], [c(0, 0.0)]),
156
+ fft1([4], [c(4, 0.0)]),
157
+ c_add(c(0, 0.0), c(4, 0.0), c(4, 0.0)),
158
+ c_sub(c(0, 0.0), c(4, 0.0), c(-4, 0.0))]).
159
+ step(fft1([0], [c(0, 0.0)]), fact(12), ['X' = 0], []).
160
+ step(fft1([4], [c(4, 0.0)]), fact(12), ['X' = 4], []).
161
+ step(c_add(c(0, 0.0), c(4, 0.0), c(4, 0.0)),
162
+ rule(9),
163
+ ['Ar' = 0, 'Ai' = 0.0, 'Br' = 4, 'Bi' = 0.0, 'Cr' = 4, 'Ci' = 0.0],
164
+ [4 is 0 + 4, 0.0 is 0.0 + 0.0]).
165
+ step(4 is 0 + 4, builtin, [], []).
166
+ step(0.0 is 0.0 + 0.0, builtin, [], []).
167
+ step(c_sub(c(0, 0.0), c(4, 0.0), c(-4, 0.0)),
168
+ rule(10),
169
+ ['Ar' = 0, 'Ai' = 0.0, 'Br' = 4, 'Bi' = 0.0, 'Cr' = -4, 'Ci' = 0.0],
170
+ [-4 is 0 - 4, 0.0 is 0.0 - 0.0]).
171
+ step(-4 is 0 - 4, builtin, [], []).
172
+ step(0.0 is 0.0 - 0.0, builtin, [], []).
173
+ step(fft2([2, 6], [c(8, 0.0), c(-4, 0.0)]),
174
+ rule(13),
175
+ ['X0' = 2,
176
+ 'X1' = 6,
177
+ 'Y0' = c(8, 0.0),
178
+ 'Y1' = c(-4, 0.0),
179
+ 'E0' = c(2, 0.0),
180
+ 'O0' = c(6, 0.0)],
181
+ [fft1([2], [c(2, 0.0)]),
182
+ fft1([6], [c(6, 0.0)]),
183
+ c_add(c(2, 0.0), c(6, 0.0), c(8, 0.0)),
184
+ c_sub(c(2, 0.0), c(6, 0.0), c(-4, 0.0))]).
185
+ step(fft1([2], [c(2, 0.0)]), fact(12), ['X' = 2], []).
186
+ step(fft1([6], [c(6, 0.0)]), fact(12), ['X' = 6], []).
187
+ step(c_add(c(2, 0.0), c(6, 0.0), c(8, 0.0)),
188
+ rule(9),
189
+ ['Ar' = 2, 'Ai' = 0.0, 'Br' = 6, 'Bi' = 0.0, 'Cr' = 8, 'Ci' = 0.0],
190
+ [8 is 2 + 6, 0.0 is 0.0 + 0.0]).
191
+ step(8 is 2 + 6, builtin, [], []).
192
+ step(c_sub(c(2, 0.0), c(6, 0.0), c(-4, 0.0)),
193
+ rule(10),
194
+ ['Ar' = 2, 'Ai' = 0.0, 'Br' = 6, 'Bi' = 0.0, 'Cr' = -4, 'Ci' = 0.0],
195
+ [-4 is 2 - 6, 0.0 is 0.0 - 0.0]).
196
+ step(-4 is 2 - 6, builtin, [], []).
197
+ step(w8(2, c(0.0, -1.0)), fact(3), [], []).
198
+ step(c_mul(c(0.0, -1.0), c(-4, 0.0), c(0.0, 4.0)),
199
+ rule(11),
200
+ ['Ar' = 0.0,
201
+ 'Ai' = -1.0,
202
+ 'Br' = -4,
203
+ 'Bi' = 0.0,
204
+ 'Cr' = 0.0,
205
+ 'Ci' = 4.0,
206
+ 'Ac' = 0.0,
207
+ 'Bd' = 0.0,
208
+ 'Ad' = 0.0,
209
+ 'Bc' = 4.0],
210
+ [0.0 is 0.0 * -4,
211
+ 0.0 is -1.0 * 0.0,
212
+ 0.0 is 0.0 - 0.0,
213
+ 0.0 is 0.0 * 0.0,
214
+ 4.0 is -1.0 * -4,
215
+ 4.0 is 0.0 + 4.0]).
216
+ step(0.0 is 0.0 * -4, builtin, [], []).
217
+ step(0.0 is -1.0 * 0.0, builtin, [], []).
218
+ step(0.0 is 0.0 * 0.0, builtin, [], []).
219
+ step(4.0 is -1.0 * -4, builtin, [], []).
220
+ step(4.0 is 0.0 + 4.0, builtin, [], []).
221
+ step(c_add(c(4, 0.0), c(8, 0.0), c(12, 0.0)),
222
+ rule(9),
223
+ ['Ar' = 4, 'Ai' = 0.0, 'Br' = 8, 'Bi' = 0.0, 'Cr' = 12, 'Ci' = 0.0],
224
+ [12 is 4 + 8, 0.0 is 0.0 + 0.0]).
225
+ step(12 is 4 + 8, builtin, [], []).
226
+ step(c_add(c(-4, 0.0), c(0.0, 4.0), c(-4.0, 4.0)),
227
+ rule(9),
228
+ ['Ar' = -4, 'Ai' = 0.0, 'Br' = 0.0, 'Bi' = 4.0, 'Cr' = -4.0, 'Ci' = 4.0],
229
+ [-4.0 is -4 + 0.0, 4.0 is 0.0 + 4.0]).
230
+ step(-4.0 is -4 + 0.0, builtin, [], []).
231
+ step(c_sub(c(4, 0.0), c(8, 0.0), c(-4, 0.0)),
232
+ rule(10),
233
+ ['Ar' = 4, 'Ai' = 0.0, 'Br' = 8, 'Bi' = 0.0, 'Cr' = -4, 'Ci' = 0.0],
234
+ [-4 is 4 - 8, 0.0 is 0.0 - 0.0]).
235
+ step(-4 is 4 - 8, builtin, [], []).
236
+ step(c_sub(c(-4, 0.0), c(0.0, 4.0), c(-4.0, -4.0)),
237
+ rule(10),
238
+ ['Ar' = -4, 'Ai' = 0.0, 'Br' = 0.0, 'Bi' = 4.0, 'Cr' = -4.0, 'Ci' = -4.0],
239
+ [-4.0 is -4 - 0.0, -4.0 is 0.0 - 4.0]).
240
+ step(-4.0 is -4 - 0.0, builtin, [], []).
241
+ step(-4.0 is 0.0 - 4.0, builtin, [], []).
242
+ step(fft4([1, 3, 5, 7], [c(16, 0.0), c(-4.0, 4.0), c(-4, 0.0), c(-4.0, -4.0)]),
243
+ rule(14),
244
+ ['X0' = 1,
245
+ 'X1' = 3,
246
+ 'X2' = 5,
247
+ 'X3' = 7,
248
+ 'Y0' = c(16, 0.0),
249
+ 'Y1' = c(-4.0, 4.0),
250
+ 'Y2' = c(-4, 0.0),
251
+ 'Y3' = c(-4.0, -4.0),
252
+ 'E0' = c(6, 0.0),
253
+ 'E1' = c(-4, 0.0),
254
+ 'O0' = c(10, 0.0),
255
+ 'O1' = c(-4, 0.0),
256
+ 'W1' = c(0.0, -1.0),
257
+ 'T1' = c(0.0, 4.0)],
258
+ [fft2([1, 5], [c(6, 0.0), c(-4, 0.0)]),
259
+ fft2([3, 7], [c(10, 0.0), c(-4, 0.0)]),
260
+ w8(2, c(0.0, -1.0)),
261
+ c_mul(c(0.0, -1.0), c(-4, 0.0), c(0.0, 4.0)),
262
+ c_add(c(6, 0.0), c(10, 0.0), c(16, 0.0)),
263
+ c_add(c(-4, 0.0), c(0.0, 4.0), c(-4.0, 4.0)),
264
+ c_sub(c(6, 0.0), c(10, 0.0), c(-4, 0.0)),
265
+ c_sub(c(-4, 0.0), c(0.0, 4.0), c(-4.0, -4.0))]).
266
+ step(fft2([1, 5], [c(6, 0.0), c(-4, 0.0)]),
267
+ rule(13),
268
+ ['X0' = 1,
269
+ 'X1' = 5,
270
+ 'Y0' = c(6, 0.0),
271
+ 'Y1' = c(-4, 0.0),
272
+ 'E0' = c(1, 0.0),
273
+ 'O0' = c(5, 0.0)],
274
+ [fft1([1], [c(1, 0.0)]),
275
+ fft1([5], [c(5, 0.0)]),
276
+ c_add(c(1, 0.0), c(5, 0.0), c(6, 0.0)),
277
+ c_sub(c(1, 0.0), c(5, 0.0), c(-4, 0.0))]).
278
+ step(fft1([1], [c(1, 0.0)]), fact(12), ['X' = 1], []).
279
+ step(fft1([5], [c(5, 0.0)]), fact(12), ['X' = 5], []).
280
+ step(c_add(c(1, 0.0), c(5, 0.0), c(6, 0.0)),
281
+ rule(9),
282
+ ['Ar' = 1, 'Ai' = 0.0, 'Br' = 5, 'Bi' = 0.0, 'Cr' = 6, 'Ci' = 0.0],
283
+ [6 is 1 + 5, 0.0 is 0.0 + 0.0]).
284
+ step(6 is 1 + 5, builtin, [], []).
285
+ step(c_sub(c(1, 0.0), c(5, 0.0), c(-4, 0.0)),
286
+ rule(10),
287
+ ['Ar' = 1, 'Ai' = 0.0, 'Br' = 5, 'Bi' = 0.0, 'Cr' = -4, 'Ci' = 0.0],
288
+ [-4 is 1 - 5, 0.0 is 0.0 - 0.0]).
289
+ step(-4 is 1 - 5, builtin, [], []).
290
+ step(fft2([3, 7], [c(10, 0.0), c(-4, 0.0)]),
291
+ rule(13),
292
+ ['X0' = 3,
293
+ 'X1' = 7,
294
+ 'Y0' = c(10, 0.0),
295
+ 'Y1' = c(-4, 0.0),
296
+ 'E0' = c(3, 0.0),
297
+ 'O0' = c(7, 0.0)],
298
+ [fft1([3], [c(3, 0.0)]),
299
+ fft1([7], [c(7, 0.0)]),
300
+ c_add(c(3, 0.0), c(7, 0.0), c(10, 0.0)),
301
+ c_sub(c(3, 0.0), c(7, 0.0), c(-4, 0.0))]).
302
+ step(fft1([3], [c(3, 0.0)]), fact(12), ['X' = 3], []).
303
+ step(fft1([7], [c(7, 0.0)]), fact(12), ['X' = 7], []).
304
+ step(c_add(c(3, 0.0), c(7, 0.0), c(10, 0.0)),
305
+ rule(9),
306
+ ['Ar' = 3, 'Ai' = 0.0, 'Br' = 7, 'Bi' = 0.0, 'Cr' = 10, 'Ci' = 0.0],
307
+ [10 is 3 + 7, 0.0 is 0.0 + 0.0]).
308
+ step(10 is 3 + 7, builtin, [], []).
309
+ step(c_sub(c(3, 0.0), c(7, 0.0), c(-4, 0.0)),
310
+ rule(10),
311
+ ['Ar' = 3, 'Ai' = 0.0, 'Br' = 7, 'Bi' = 0.0, 'Cr' = -4, 'Ci' = 0.0],
312
+ [-4 is 3 - 7, 0.0 is 0.0 - 0.0]).
313
+ step(-4 is 3 - 7, builtin, [], []).
314
+ step(c_add(c(6, 0.0), c(10, 0.0), c(16, 0.0)),
315
+ rule(9),
316
+ ['Ar' = 6, 'Ai' = 0.0, 'Br' = 10, 'Bi' = 0.0, 'Cr' = 16, 'Ci' = 0.0],
317
+ [16 is 6 + 10, 0.0 is 0.0 + 0.0]).
318
+ step(16 is 6 + 10, builtin, [], []).
319
+ step(c_sub(c(6, 0.0), c(10, 0.0), c(-4, 0.0)),
320
+ rule(10),
321
+ ['Ar' = 6, 'Ai' = 0.0, 'Br' = 10, 'Bi' = 0.0, 'Cr' = -4, 'Ci' = 0.0],
322
+ [-4 is 6 - 10, 0.0 is 0.0 - 0.0]).
323
+ step(-4 is 6 - 10, builtin, [], []).
324
+ step(w8(1, c(0.7071067811865476, -0.7071067811865476)), fact(2), [], []).
325
+ step(w8(3, c(-0.7071067811865476, -0.7071067811865476)), fact(4), [], []).
326
+ step(c_mul(c(0.7071067811865476, -0.7071067811865476), c(-4.0, 4.0), c(0.0, 5.656854249492381)),
327
+ rule(11),
328
+ ['Ar' = 0.7071067811865476,
329
+ 'Ai' = -0.7071067811865476,
330
+ 'Br' = -4.0,
331
+ 'Bi' = 4.0,
332
+ 'Cr' = 0.0,
333
+ 'Ci' = 5.656854249492381,
334
+ 'Ac' = -2.8284271247461903,
335
+ 'Bd' = -2.8284271247461903,
336
+ 'Ad' = 2.8284271247461903,
337
+ 'Bc' = 2.8284271247461903],
338
+ [-2.8284271247461903 is 0.7071067811865476 * -4.0,
339
+ -2.8284271247461903 is -0.7071067811865476 * 4.0,
340
+ 0.0 is -2.8284271247461903 - -2.8284271247461903,
341
+ 2.8284271247461903 is 0.7071067811865476 * 4.0,
342
+ 2.8284271247461903 is -0.7071067811865476 * -4.0,
343
+ 5.656854249492381 is 2.8284271247461903 + 2.8284271247461903]).
344
+ step(-2.8284271247461903 is 0.7071067811865476 * -4.0, builtin, [], []).
345
+ step(-2.8284271247461903 is -0.7071067811865476 * 4.0, builtin, [], []).
346
+ step(0.0 is -2.8284271247461903 - -2.8284271247461903, builtin, [], []).
347
+ step(2.8284271247461903 is 0.7071067811865476 * 4.0, builtin, [], []).
348
+ step(2.8284271247461903 is -0.7071067811865476 * -4.0, builtin, [], []).
349
+ step(5.656854249492381 is 2.8284271247461903 + 2.8284271247461903, builtin, [], []).
350
+ step(c_mul(c(-0.7071067811865476, -0.7071067811865476), c(-4.0, -4.0), c(0.0, 5.656854249492381)),
351
+ rule(11),
352
+ ['Ar' = -0.7071067811865476,
353
+ 'Ai' = -0.7071067811865476,
354
+ 'Br' = -4.0,
355
+ 'Bi' = -4.0,
356
+ 'Cr' = 0.0,
357
+ 'Ci' = 5.656854249492381,
358
+ 'Ac' = 2.8284271247461903,
359
+ 'Bd' = 2.8284271247461903,
360
+ 'Ad' = 2.8284271247461903,
361
+ 'Bc' = 2.8284271247461903],
362
+ [2.8284271247461903 is -0.7071067811865476 * -4.0,
363
+ 2.8284271247461903 is -0.7071067811865476 * -4.0,
364
+ 0.0 is 2.8284271247461903 - 2.8284271247461903,
365
+ 2.8284271247461903 is -0.7071067811865476 * -4.0,
366
+ 2.8284271247461903 is -0.7071067811865476 * -4.0,
367
+ 5.656854249492381 is 2.8284271247461903 + 2.8284271247461903]).
368
+ step(0.0 is 2.8284271247461903 - 2.8284271247461903, builtin, [], []).
369
+ step(c_add(c(12, 0.0), c(16, 0.0), c(28, 0.0)),
370
+ rule(9),
371
+ ['Ar' = 12, 'Ai' = 0.0, 'Br' = 16, 'Bi' = 0.0, 'Cr' = 28, 'Ci' = 0.0],
372
+ [28 is 12 + 16, 0.0 is 0.0 + 0.0]).
373
+ step(28 is 12 + 16, builtin, [], []).
374
+ step(c_add(c(-4.0, 4.0), c(0.0, 5.656854249492381), c(-4.0, 9.65685424949238)),
375
+ rule(9),
376
+ ['Ar' = -4.0,
377
+ 'Ai' = 4.0,
378
+ 'Br' = 0.0,
379
+ 'Bi' = 5.656854249492381,
380
+ 'Cr' = -4.0,
381
+ 'Ci' = 9.65685424949238],
382
+ [-4.0 is -4.0 + 0.0, 9.65685424949238 is 4.0 + 5.656854249492381]).
383
+ step(-4.0 is -4.0 + 0.0, builtin, [], []).
384
+ step(9.65685424949238 is 4.0 + 5.656854249492381, builtin, [], []).
385
+ step(c_add(c(-4.0, -4.0), c(0.0, 5.656854249492381), c(-4.0, 1.6568542494923806)),
386
+ rule(9),
387
+ ['Ar' = -4.0,
388
+ 'Ai' = -4.0,
389
+ 'Br' = 0.0,
390
+ 'Bi' = 5.656854249492381,
391
+ 'Cr' = -4.0,
392
+ 'Ci' = 1.6568542494923806],
393
+ [-4.0 is -4.0 + 0.0, 1.6568542494923806 is -4.0 + 5.656854249492381]).
394
+ step(1.6568542494923806 is -4.0 + 5.656854249492381, builtin, [], []).
395
+ step(c_sub(c(12, 0.0), c(16, 0.0), c(-4, 0.0)),
396
+ rule(10),
397
+ ['Ar' = 12, 'Ai' = 0.0, 'Br' = 16, 'Bi' = 0.0, 'Cr' = -4, 'Ci' = 0.0],
398
+ [-4 is 12 - 16, 0.0 is 0.0 - 0.0]).
399
+ step(-4 is 12 - 16, builtin, [], []).
400
+ step(c_sub(c(-4.0, 4.0), c(0.0, 5.656854249492381), c(-4.0, -1.6568542494923806)),
401
+ rule(10),
402
+ ['Ar' = -4.0,
403
+ 'Ai' = 4.0,
404
+ 'Br' = 0.0,
405
+ 'Bi' = 5.656854249492381,
406
+ 'Cr' = -4.0,
407
+ 'Ci' = -1.6568542494923806],
408
+ [-4.0 is -4.0 - 0.0, -1.6568542494923806 is 4.0 - 5.656854249492381]).
409
+ step(-4.0 is -4.0 - 0.0, builtin, [], []).
410
+ step(-1.6568542494923806 is 4.0 - 5.656854249492381, builtin, [], []).
411
+ step(c_sub(c(-4.0, -4.0), c(0.0, 5.656854249492381), c(-4.0, -9.65685424949238)),
412
+ rule(10),
413
+ ['Ar' = -4.0,
414
+ 'Ai' = -4.0,
415
+ 'Br' = 0.0,
416
+ 'Bi' = 5.656854249492381,
417
+ 'Cr' = -4.0,
418
+ 'Ci' = -9.65685424949238],
419
+ [-4.0 is -4.0 - 0.0, -9.65685424949238 is -4.0 - 5.656854249492381]).
420
+ step(-9.65685424949238 is -4.0 - 5.656854249492381, builtin, [], []).
421
+ 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)]),
422
+ rule(18),
423
+ ['Wave' = alternating8,
424
+ '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)],
425
+ 'Samples' = [1, -1, 1, -1, 1, -1, 1, -1]],
426
+ [wave(alternating8, [1, -1, 1, -1, 1, -1, 1, -1]),
427
+ 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)])]).
428
+ step(wave(alternating8, [1, -1, 1, -1, 1, -1, 1, -1]), fact(17), [], []).
429
+ 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)]),
430
+ rule(15),
431
+ ['X0' = 1,
432
+ 'X1' = -1,
433
+ 'X2' = 1,
434
+ 'X3' = -1,
435
+ 'X4' = 1,
436
+ 'X5' = -1,
437
+ 'X6' = 1,
438
+ 'X7' = -1,
439
+ 'Y0' = c(0, 0.0),
440
+ 'Y1' = c(0.0, 0.0),
441
+ 'Y2' = c(0.0, 0.0),
442
+ 'Y3' = c(0.0, 0.0),
443
+ 'Y4' = c(8, 0.0),
444
+ 'Y5' = c(0.0, 0.0),
445
+ 'Y6' = c(0.0, 0.0),
446
+ 'Y7' = c(0.0, 0.0),
447
+ 'E0' = c(4, 0.0),
448
+ 'E1' = c(0.0, 0.0),
449
+ 'E2' = c(0, 0.0),
450
+ 'E3' = c(0.0, 0.0),
451
+ 'O0' = c(-4, 0.0),
452
+ 'O1' = c(0.0, 0.0),
453
+ 'O2' = c(0, 0.0),
454
+ 'O3' = c(0.0, 0.0),
455
+ 'W1' = c(0.7071067811865476, -0.7071067811865476),
456
+ 'W2' = c(0.0, -1.0),
457
+ 'W3' = c(-0.7071067811865476, -0.7071067811865476),
458
+ 'T1' = c(0.0, 0.0),
459
+ 'T2' = c(0.0, 0.0),
460
+ 'T3' = c(0.0, 0.0)],
461
+ [fft4([1, 1, 1, 1], [c(4, 0.0), c(0.0, 0.0), c(0, 0.0), c(0.0, 0.0)]),
462
+ fft4([-1, -1, -1, -1], [c(-4, 0.0), c(0.0, 0.0), c(0, 0.0), c(0.0, 0.0)]),
463
+ w8(1, c(0.7071067811865476, -0.7071067811865476)),
464
+ w8(2, c(0.0, -1.0)),
465
+ w8(3, c(-0.7071067811865476, -0.7071067811865476)),
466
+ c_mul(c(0.7071067811865476, -0.7071067811865476), c(0.0, 0.0), c(0.0, 0.0)),
467
+ c_mul(c(0.0, -1.0), c(0, 0.0), c(0.0, 0.0)),
468
+ c_mul(c(-0.7071067811865476, -0.7071067811865476), c(0.0, 0.0), c(0.0, 0.0)),
469
+ c_add(c(4, 0.0), c(-4, 0.0), c(0, 0.0)),
470
+ c_add(c(0.0, 0.0), c(0.0, 0.0), c(0.0, 0.0)),
471
+ c_add(c(0, 0.0), c(0.0, 0.0), c(0.0, 0.0)),
472
+ c_add(c(0.0, 0.0), c(0.0, 0.0), c(0.0, 0.0)),
473
+ c_sub(c(4, 0.0), c(-4, 0.0), c(8, 0.0)),
474
+ c_sub(c(0.0, 0.0), c(0.0, 0.0), c(0.0, 0.0)),
475
+ c_sub(c(0, 0.0), c(0.0, 0.0), c(0.0, 0.0)),
476
+ c_sub(c(0.0, 0.0), c(0.0, 0.0), c(0.0, 0.0))]).
477
+ step(fft4([1, 1, 1, 1], [c(4, 0.0), c(0.0, 0.0), c(0, 0.0), c(0.0, 0.0)]),
478
+ rule(14),
479
+ ['X0' = 1,
480
+ 'X1' = 1,
481
+ 'X2' = 1,
482
+ 'X3' = 1,
483
+ 'Y0' = c(4, 0.0),
484
+ 'Y1' = c(0.0, 0.0),
485
+ 'Y2' = c(0, 0.0),
486
+ 'Y3' = c(0.0, 0.0),
487
+ 'E0' = c(2, 0.0),
488
+ 'E1' = c(0, 0.0),
489
+ 'O0' = c(2, 0.0),
490
+ 'O1' = c(0, 0.0),
491
+ 'W1' = c(0.0, -1.0),
492
+ 'T1' = c(0.0, 0.0)],
493
+ [fft2([1, 1], [c(2, 0.0), c(0, 0.0)]),
494
+ fft2([1, 1], [c(2, 0.0), c(0, 0.0)]),
495
+ w8(2, c(0.0, -1.0)),
496
+ c_mul(c(0.0, -1.0), c(0, 0.0), c(0.0, 0.0)),
497
+ c_add(c(2, 0.0), c(2, 0.0), c(4, 0.0)),
498
+ c_add(c(0, 0.0), c(0.0, 0.0), c(0.0, 0.0)),
499
+ c_sub(c(2, 0.0), c(2, 0.0), c(0, 0.0)),
500
+ c_sub(c(0, 0.0), c(0.0, 0.0), c(0.0, 0.0))]).
501
+ step(fft2([1, 1], [c(2, 0.0), c(0, 0.0)]),
502
+ rule(13),
503
+ ['X0' = 1,
504
+ 'X1' = 1,
505
+ 'Y0' = c(2, 0.0),
506
+ 'Y1' = c(0, 0.0),
507
+ 'E0' = c(1, 0.0),
508
+ 'O0' = c(1, 0.0)],
509
+ [fft1([1], [c(1, 0.0)]),
510
+ fft1([1], [c(1, 0.0)]),
511
+ c_add(c(1, 0.0), c(1, 0.0), c(2, 0.0)),
512
+ c_sub(c(1, 0.0), c(1, 0.0), c(0, 0.0))]).
513
+ step(c_add(c(1, 0.0), c(1, 0.0), c(2, 0.0)),
514
+ rule(9),
515
+ ['Ar' = 1, 'Ai' = 0.0, 'Br' = 1, 'Bi' = 0.0, 'Cr' = 2, 'Ci' = 0.0],
516
+ [2 is 1 + 1, 0.0 is 0.0 + 0.0]).
517
+ step(2 is 1 + 1, builtin, [], []).
518
+ step(c_sub(c(1, 0.0), c(1, 0.0), c(0, 0.0)),
519
+ rule(10),
520
+ ['Ar' = 1, 'Ai' = 0.0, 'Br' = 1, 'Bi' = 0.0, 'Cr' = 0, 'Ci' = 0.0],
521
+ [0 is 1 - 1, 0.0 is 0.0 - 0.0]).
522
+ step(0 is 1 - 1, builtin, [], []).
523
+ step(c_mul(c(0.0, -1.0), c(0, 0.0), c(0.0, 0.0)),
524
+ rule(11),
525
+ ['Ar' = 0.0,
526
+ 'Ai' = -1.0,
527
+ 'Br' = 0,
528
+ 'Bi' = 0.0,
529
+ 'Cr' = 0.0,
530
+ 'Ci' = 0.0,
531
+ 'Ac' = 0.0,
532
+ 'Bd' = 0.0,
533
+ 'Ad' = 0.0,
534
+ 'Bc' = 0.0],
535
+ [0.0 is 0.0 * 0,
536
+ 0.0 is -1.0 * 0.0,
537
+ 0.0 is 0.0 - 0.0,
538
+ 0.0 is 0.0 * 0.0,
539
+ 0.0 is -1.0 * 0,
540
+ 0.0 is 0.0 + 0.0]).
541
+ step(0.0 is 0.0 * 0, builtin, [], []).
542
+ step(0.0 is -1.0 * 0, builtin, [], []).
543
+ step(c_add(c(2, 0.0), c(2, 0.0), c(4, 0.0)),
544
+ rule(9),
545
+ ['Ar' = 2, 'Ai' = 0.0, 'Br' = 2, 'Bi' = 0.0, 'Cr' = 4, 'Ci' = 0.0],
546
+ [4 is 2 + 2, 0.0 is 0.0 + 0.0]).
547
+ step(4 is 2 + 2, builtin, [], []).
548
+ step(c_add(c(0, 0.0), c(0.0, 0.0), c(0.0, 0.0)),
549
+ rule(9),
550
+ ['Ar' = 0, 'Ai' = 0.0, 'Br' = 0.0, 'Bi' = 0.0, 'Cr' = 0.0, 'Ci' = 0.0],
551
+ [0.0 is 0 + 0.0, 0.0 is 0.0 + 0.0]).
552
+ step(0.0 is 0 + 0.0, builtin, [], []).
553
+ step(c_sub(c(2, 0.0), c(2, 0.0), c(0, 0.0)),
554
+ rule(10),
555
+ ['Ar' = 2, 'Ai' = 0.0, 'Br' = 2, 'Bi' = 0.0, 'Cr' = 0, 'Ci' = 0.0],
556
+ [0 is 2 - 2, 0.0 is 0.0 - 0.0]).
557
+ step(0 is 2 - 2, builtin, [], []).
558
+ step(c_sub(c(0, 0.0), c(0.0, 0.0), c(0.0, 0.0)),
559
+ rule(10),
560
+ ['Ar' = 0, 'Ai' = 0.0, 'Br' = 0.0, 'Bi' = 0.0, 'Cr' = 0.0, 'Ci' = 0.0],
561
+ [0.0 is 0 - 0.0, 0.0 is 0.0 - 0.0]).
562
+ step(0.0 is 0 - 0.0, builtin, [], []).
563
+ step(fft4([-1, -1, -1, -1], [c(-4, 0.0), c(0.0, 0.0), c(0, 0.0), c(0.0, 0.0)]),
564
+ rule(14),
565
+ ['X0' = -1,
566
+ 'X1' = -1,
567
+ 'X2' = -1,
568
+ 'X3' = -1,
569
+ 'Y0' = c(-4, 0.0),
570
+ 'Y1' = c(0.0, 0.0),
571
+ 'Y2' = c(0, 0.0),
572
+ 'Y3' = c(0.0, 0.0),
573
+ 'E0' = c(-2, 0.0),
574
+ 'E1' = c(0, 0.0),
575
+ 'O0' = c(-2, 0.0),
576
+ 'O1' = c(0, 0.0),
577
+ 'W1' = c(0.0, -1.0),
578
+ 'T1' = c(0.0, 0.0)],
579
+ [fft2([-1, -1], [c(-2, 0.0), c(0, 0.0)]),
580
+ fft2([-1, -1], [c(-2, 0.0), c(0, 0.0)]),
581
+ w8(2, c(0.0, -1.0)),
582
+ c_mul(c(0.0, -1.0), c(0, 0.0), c(0.0, 0.0)),
583
+ c_add(c(-2, 0.0), c(-2, 0.0), c(-4, 0.0)),
584
+ c_add(c(0, 0.0), c(0.0, 0.0), c(0.0, 0.0)),
585
+ c_sub(c(-2, 0.0), c(-2, 0.0), c(0, 0.0)),
586
+ c_sub(c(0, 0.0), c(0.0, 0.0), c(0.0, 0.0))]).
587
+ step(fft2([-1, -1], [c(-2, 0.0), c(0, 0.0)]),
588
+ rule(13),
589
+ ['X0' = -1,
590
+ 'X1' = -1,
591
+ 'Y0' = c(-2, 0.0),
592
+ 'Y1' = c(0, 0.0),
593
+ 'E0' = c(-1, 0.0),
594
+ 'O0' = c(-1, 0.0)],
595
+ [fft1([-1], [c(-1, 0.0)]),
596
+ fft1([-1], [c(-1, 0.0)]),
597
+ c_add(c(-1, 0.0), c(-1, 0.0), c(-2, 0.0)),
598
+ c_sub(c(-1, 0.0), c(-1, 0.0), c(0, 0.0))]).
599
+ step(fft1([-1], [c(-1, 0.0)]), fact(12), ['X' = -1], []).
600
+ step(c_add(c(-1, 0.0), c(-1, 0.0), c(-2, 0.0)),
601
+ rule(9),
602
+ ['Ar' = -1, 'Ai' = 0.0, 'Br' = -1, 'Bi' = 0.0, 'Cr' = -2, 'Ci' = 0.0],
603
+ [-2 is -1 + -1, 0.0 is 0.0 + 0.0]).
604
+ step(-2 is -1 + -1, builtin, [], []).
605
+ step(c_sub(c(-1, 0.0), c(-1, 0.0), c(0, 0.0)),
606
+ rule(10),
607
+ ['Ar' = -1, 'Ai' = 0.0, 'Br' = -1, 'Bi' = 0.0, 'Cr' = 0, 'Ci' = 0.0],
608
+ [0 is -1 - -1, 0.0 is 0.0 - 0.0]).
609
+ step(0 is -1 - -1, builtin, [], []).
610
+ step(c_add(c(-2, 0.0), c(-2, 0.0), c(-4, 0.0)),
611
+ rule(9),
612
+ ['Ar' = -2, 'Ai' = 0.0, 'Br' = -2, 'Bi' = 0.0, 'Cr' = -4, 'Ci' = 0.0],
613
+ [-4 is -2 + -2, 0.0 is 0.0 + 0.0]).
614
+ step(-4 is -2 + -2, builtin, [], []).
615
+ step(c_sub(c(-2, 0.0), c(-2, 0.0), c(0, 0.0)),
616
+ rule(10),
617
+ ['Ar' = -2, 'Ai' = 0.0, 'Br' = -2, 'Bi' = 0.0, 'Cr' = 0, 'Ci' = 0.0],
618
+ [0 is -2 - -2, 0.0 is 0.0 - 0.0]).
619
+ step(0 is -2 - -2, builtin, [], []).
620
+ step(c_mul(c(0.7071067811865476, -0.7071067811865476), c(0.0, 0.0), c(0.0, 0.0)),
621
+ rule(11),
622
+ ['Ar' = 0.7071067811865476,
623
+ 'Ai' = -0.7071067811865476,
624
+ 'Br' = 0.0,
625
+ 'Bi' = 0.0,
626
+ 'Cr' = 0.0,
627
+ 'Ci' = 0.0,
628
+ 'Ac' = 0.0,
629
+ 'Bd' = 0.0,
630
+ 'Ad' = 0.0,
631
+ 'Bc' = 0.0],
632
+ [0.0 is 0.7071067811865476 * 0.0,
633
+ 0.0 is -0.7071067811865476 * 0.0,
634
+ 0.0 is 0.0 - 0.0,
635
+ 0.0 is 0.7071067811865476 * 0.0,
636
+ 0.0 is -0.7071067811865476 * 0.0,
637
+ 0.0 is 0.0 + 0.0]).
638
+ step(0.0 is 0.7071067811865476 * 0.0, builtin, [], []).
639
+ step(0.0 is -0.7071067811865476 * 0.0, builtin, [], []).
640
+ step(c_mul(c(-0.7071067811865476, -0.7071067811865476), c(0.0, 0.0), c(0.0, 0.0)),
641
+ rule(11),
642
+ ['Ar' = -0.7071067811865476,
643
+ 'Ai' = -0.7071067811865476,
644
+ 'Br' = 0.0,
645
+ 'Bi' = 0.0,
646
+ 'Cr' = 0.0,
647
+ 'Ci' = 0.0,
648
+ 'Ac' = 0.0,
649
+ 'Bd' = 0.0,
650
+ 'Ad' = 0.0,
651
+ 'Bc' = 0.0],
652
+ [0.0 is -0.7071067811865476 * 0.0,
653
+ 0.0 is -0.7071067811865476 * 0.0,
654
+ 0.0 is 0.0 - 0.0,
655
+ 0.0 is -0.7071067811865476 * 0.0,
656
+ 0.0 is -0.7071067811865476 * 0.0,
657
+ 0.0 is 0.0 + 0.0]).
658
+ step(c_add(c(4, 0.0), c(-4, 0.0), c(0, 0.0)),
659
+ rule(9),
660
+ ['Ar' = 4, 'Ai' = 0.0, 'Br' = -4, 'Bi' = 0.0, 'Cr' = 0, 'Ci' = 0.0],
661
+ [0 is 4 + -4, 0.0 is 0.0 + 0.0]).
662
+ step(0 is 4 + -4, builtin, [], []).
663
+ step(c_add(c(0.0, 0.0), c(0.0, 0.0), c(0.0, 0.0)),
664
+ rule(9),
665
+ ['Ar' = 0.0, 'Ai' = 0.0, 'Br' = 0.0, 'Bi' = 0.0, 'Cr' = 0.0, 'Ci' = 0.0],
666
+ [0.0 is 0.0 + 0.0, 0.0 is 0.0 + 0.0]).
667
+ step(c_sub(c(4, 0.0), c(-4, 0.0), c(8, 0.0)),
668
+ rule(10),
669
+ ['Ar' = 4, 'Ai' = 0.0, 'Br' = -4, 'Bi' = 0.0, 'Cr' = 8, 'Ci' = 0.0],
670
+ [8 is 4 - -4, 0.0 is 0.0 - 0.0]).
671
+ step(8 is 4 - -4, builtin, [], []).
672
+ step(c_sub(c(0.0, 0.0), c(0.0, 0.0), c(0.0, 0.0)),
673
+ rule(10),
674
+ ['Ar' = 0.0, 'Ai' = 0.0, 'Br' = 0.0, 'Bi' = 0.0, 'Cr' = 0.0, 'Ci' = 0.0],
675
+ [0.0 is 0.0 - 0.0, 0.0 is 0.0 - 0.0]).
676
+ step(dcComponent(ramp8, c(28, 0.0)),
677
+ rule(19),
678
+ ['Wave' = ramp8, 'Dc' = c(28, 0.0), 'Samples' = [0, 1, 2, 3, 4, 5, 6, 7]],
679
+ [wave(ramp8, [0, 1, 2, 3, 4, 5, 6, 7]),
680
+ 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)])]).
681
+ step(dcComponent(alternating8, c(0, 0.0)),
682
+ rule(19),
683
+ ['Wave' = alternating8, 'Dc' = c(0, 0.0), 'Samples' = [1, -1, 1, -1, 1, -1, 1, -1]],
684
+ [wave(alternating8, [1, -1, 1, -1, 1, -1, 1, -1]),
685
+ 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)])]).