kumi 0.0.24 → 0.0.26

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 (234) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +14 -0
  3. data/README.md +70 -71
  4. data/data/functions/agg/boolean.yaml +6 -2
  5. data/data/functions/agg/numeric.yaml +32 -16
  6. data/data/functions/agg/string.yaml +4 -3
  7. data/data/functions/core/arithmetic.yaml +62 -14
  8. data/data/functions/core/boolean.yaml +12 -6
  9. data/data/functions/core/comparison.yaml +25 -13
  10. data/data/functions/core/constructor.yaml +16 -8
  11. data/data/functions/core/select.yaml +3 -1
  12. data/data/functions/core/stencil.yaml +14 -5
  13. data/data/functions/core/string.yaml +9 -4
  14. data/data/kernels/ruby/agg/numeric.yaml +1 -1
  15. data/docs/UNSAT_DETECTION.md +83 -0
  16. data/golden/array_element/expected/nast.txt +1 -1
  17. data/golden/array_element/expected/schema_ruby.rb +1 -1
  18. data/golden/array_index/expected/nast.txt +7 -7
  19. data/golden/array_index/expected/schema_ruby.rb +1 -1
  20. data/golden/array_operations/expected/nast.txt +2 -2
  21. data/golden/array_operations/expected/schema_ruby.rb +1 -1
  22. data/golden/array_operations/expected/snast.txt +3 -3
  23. data/golden/cascade_logic/expected/lir_02_inlined.txt +8 -8
  24. data/golden/cascade_logic/expected/schema_ruby.rb +1 -1
  25. data/golden/cascade_logic/expected/snast.txt +2 -2
  26. data/golden/chained_fusion/expected/lir_02_inlined.txt +36 -36
  27. data/golden/chained_fusion/expected/lir_03_cse.txt +23 -23
  28. data/golden/chained_fusion/expected/lir_04_1_loop_fusion.txt +25 -25
  29. data/golden/chained_fusion/expected/lir_04_loop_invcm.txt +23 -23
  30. data/golden/chained_fusion/expected/lir_06_const_prop.txt +23 -23
  31. data/golden/chained_fusion/expected/nast.txt +2 -2
  32. data/golden/chained_fusion/expected/schema_javascript.mjs +23 -23
  33. data/golden/chained_fusion/expected/schema_ruby.rb +28 -28
  34. data/golden/element_arrays/expected/nast.txt +2 -2
  35. data/golden/element_arrays/expected/schema_ruby.rb +1 -1
  36. data/golden/element_arrays/expected/snast.txt +1 -1
  37. data/golden/empty_and_null_inputs/expected/lir_02_inlined.txt +18 -18
  38. data/golden/empty_and_null_inputs/expected/lir_03_cse.txt +17 -17
  39. data/golden/empty_and_null_inputs/expected/lir_04_1_loop_fusion.txt +17 -17
  40. data/golden/empty_and_null_inputs/expected/lir_04_loop_invcm.txt +17 -17
  41. data/golden/empty_and_null_inputs/expected/lir_06_const_prop.txt +17 -17
  42. data/golden/empty_and_null_inputs/expected/nast.txt +3 -3
  43. data/golden/empty_and_null_inputs/expected/schema_javascript.mjs +13 -13
  44. data/golden/empty_and_null_inputs/expected/schema_ruby.rb +18 -18
  45. data/golden/function_overload/expected/ast.txt +29 -0
  46. data/golden/function_overload/expected/input_plan.txt +4 -0
  47. data/golden/function_overload/expected/lir_00_unoptimized.txt +18 -0
  48. data/golden/function_overload/expected/lir_01_hoist_scalar_references.txt +18 -0
  49. data/golden/function_overload/expected/lir_02_inlined.txt +20 -0
  50. data/golden/function_overload/expected/lir_03_cse.txt +20 -0
  51. data/golden/function_overload/expected/lir_04_1_loop_fusion.txt +20 -0
  52. data/golden/function_overload/expected/lir_04_loop_invcm.txt +20 -0
  53. data/golden/function_overload/expected/lir_06_const_prop.txt +20 -0
  54. data/golden/function_overload/expected/nast.txt +22 -0
  55. data/golden/function_overload/expected/schema_javascript.mjs +12 -0
  56. data/golden/function_overload/expected/schema_ruby.rb +39 -0
  57. data/golden/function_overload/expected/snast.txt +22 -0
  58. data/golden/function_overload/input.json +8 -0
  59. data/golden/function_overload/schema.kumi +19 -0
  60. data/golden/game_of_life/expected/lir_00_unoptimized.txt +4 -4
  61. data/golden/game_of_life/expected/lir_01_hoist_scalar_references.txt +4 -4
  62. data/golden/game_of_life/expected/lir_02_inlined.txt +1294 -1294
  63. data/golden/game_of_life/expected/lir_03_cse.txt +403 -399
  64. data/golden/game_of_life/expected/lir_04_1_loop_fusion.txt +403 -399
  65. data/golden/game_of_life/expected/lir_04_loop_invcm.txt +403 -399
  66. data/golden/game_of_life/expected/lir_06_const_prop.txt +403 -399
  67. data/golden/game_of_life/expected/nast.txt +4 -4
  68. data/golden/game_of_life/expected/schema_javascript.mjs +87 -85
  69. data/golden/game_of_life/expected/schema_ruby.rb +88 -86
  70. data/golden/game_of_life/expected/snast.txt +10 -10
  71. data/golden/hash_keys/expected/schema_ruby.rb +1 -1
  72. data/golden/hash_value/expected/nast.txt +1 -1
  73. data/golden/hash_value/expected/schema_ruby.rb +1 -1
  74. data/golden/hash_value/expected/snast.txt +1 -1
  75. data/golden/hierarchical_complex/expected/lir_02_inlined.txt +15 -15
  76. data/golden/hierarchical_complex/expected/lir_03_cse.txt +1 -1
  77. data/golden/hierarchical_complex/expected/lir_04_1_loop_fusion.txt +1 -1
  78. data/golden/hierarchical_complex/expected/lir_04_loop_invcm.txt +1 -1
  79. data/golden/hierarchical_complex/expected/lir_06_const_prop.txt +1 -1
  80. data/golden/hierarchical_complex/expected/nast.txt +3 -3
  81. data/golden/hierarchical_complex/expected/schema_javascript.mjs +1 -1
  82. data/golden/hierarchical_complex/expected/schema_ruby.rb +2 -2
  83. data/golden/hierarchical_complex/expected/snast.txt +3 -3
  84. data/golden/inline_rename_scope_leak/expected/nast.txt +3 -3
  85. data/golden/inline_rename_scope_leak/expected/schema_ruby.rb +1 -1
  86. data/golden/input_reference/expected/nast.txt +2 -2
  87. data/golden/input_reference/expected/schema_ruby.rb +1 -1
  88. data/golden/interleaved_fusion/expected/lir_02_inlined.txt +35 -35
  89. data/golden/interleaved_fusion/expected/lir_03_cse.txt +26 -26
  90. data/golden/interleaved_fusion/expected/lir_04_1_loop_fusion.txt +27 -26
  91. data/golden/interleaved_fusion/expected/lir_04_loop_invcm.txt +26 -26
  92. data/golden/interleaved_fusion/expected/lir_06_const_prop.txt +26 -26
  93. data/golden/interleaved_fusion/expected/nast.txt +2 -2
  94. data/golden/interleaved_fusion/expected/schema_javascript.mjs +23 -23
  95. data/golden/interleaved_fusion/expected/schema_ruby.rb +29 -29
  96. data/golden/let_inline/expected/nast.txt +4 -4
  97. data/golden/let_inline/expected/schema_ruby.rb +1 -1
  98. data/golden/loop_fusion/expected/lir_02_inlined.txt +17 -17
  99. data/golden/loop_fusion/expected/lir_03_cse.txt +14 -14
  100. data/golden/loop_fusion/expected/lir_04_1_loop_fusion.txt +14 -14
  101. data/golden/loop_fusion/expected/lir_04_loop_invcm.txt +14 -14
  102. data/golden/loop_fusion/expected/lir_06_const_prop.txt +14 -14
  103. data/golden/loop_fusion/expected/nast.txt +1 -1
  104. data/golden/loop_fusion/expected/schema_javascript.mjs +12 -12
  105. data/golden/loop_fusion/expected/schema_ruby.rb +16 -16
  106. data/golden/min_reduce_scope/expected/nast.txt +3 -3
  107. data/golden/min_reduce_scope/expected/schema_ruby.rb +1 -1
  108. data/golden/min_reduce_scope/expected/snast.txt +1 -1
  109. data/golden/mixed_dimensions/expected/lir_02_inlined.txt +5 -5
  110. data/golden/mixed_dimensions/expected/lir_03_cse.txt +5 -5
  111. data/golden/mixed_dimensions/expected/lir_04_1_loop_fusion.txt +5 -5
  112. data/golden/mixed_dimensions/expected/lir_04_loop_invcm.txt +5 -5
  113. data/golden/mixed_dimensions/expected/lir_06_const_prop.txt +5 -5
  114. data/golden/mixed_dimensions/expected/nast.txt +2 -2
  115. data/golden/mixed_dimensions/expected/schema_javascript.mjs +3 -3
  116. data/golden/mixed_dimensions/expected/schema_ruby.rb +6 -6
  117. data/golden/multirank_hoisting/expected/lir_02_inlined.txt +48 -48
  118. data/golden/multirank_hoisting/expected/lir_03_cse.txt +35 -35
  119. data/golden/multirank_hoisting/expected/lir_04_1_loop_fusion.txt +35 -35
  120. data/golden/multirank_hoisting/expected/lir_04_loop_invcm.txt +35 -35
  121. data/golden/multirank_hoisting/expected/lir_06_const_prop.txt +35 -35
  122. data/golden/multirank_hoisting/expected/nast.txt +7 -7
  123. data/golden/multirank_hoisting/expected/schema_javascript.mjs +34 -34
  124. data/golden/multirank_hoisting/expected/schema_ruby.rb +36 -36
  125. data/golden/nested_hash/expected/nast.txt +1 -1
  126. data/golden/nested_hash/expected/schema_ruby.rb +1 -1
  127. data/golden/reduction_broadcast/expected/lir_02_inlined.txt +30 -30
  128. data/golden/reduction_broadcast/expected/lir_03_cse.txt +22 -22
  129. data/golden/reduction_broadcast/expected/lir_04_1_loop_fusion.txt +22 -22
  130. data/golden/reduction_broadcast/expected/lir_04_loop_invcm.txt +22 -22
  131. data/golden/reduction_broadcast/expected/lir_06_const_prop.txt +22 -22
  132. data/golden/reduction_broadcast/expected/nast.txt +3 -3
  133. data/golden/reduction_broadcast/expected/schema_javascript.mjs +18 -18
  134. data/golden/reduction_broadcast/expected/schema_ruby.rb +23 -23
  135. data/golden/reduction_broadcast/expected/snast.txt +1 -1
  136. data/golden/roll/expected/schema_ruby.rb +1 -1
  137. data/golden/shift/expected/schema_ruby.rb +1 -1
  138. data/golden/shift_2d/expected/schema_ruby.rb +1 -1
  139. data/golden/simple_math/expected/lir_00_unoptimized.txt +1 -1
  140. data/golden/simple_math/expected/lir_01_hoist_scalar_references.txt +1 -1
  141. data/golden/simple_math/expected/lir_02_inlined.txt +1 -1
  142. data/golden/simple_math/expected/lir_03_cse.txt +1 -1
  143. data/golden/simple_math/expected/lir_04_1_loop_fusion.txt +1 -1
  144. data/golden/simple_math/expected/lir_04_loop_invcm.txt +1 -1
  145. data/golden/simple_math/expected/lir_06_const_prop.txt +1 -1
  146. data/golden/simple_math/expected/nast.txt +5 -5
  147. data/golden/simple_math/expected/schema_ruby.rb +1 -1
  148. data/golden/simple_math/expected/snast.txt +2 -2
  149. data/golden/streaming_basics/expected/lir_02_inlined.txt +25 -25
  150. data/golden/streaming_basics/expected/lir_03_cse.txt +13 -13
  151. data/golden/streaming_basics/expected/lir_04_1_loop_fusion.txt +13 -13
  152. data/golden/streaming_basics/expected/lir_04_loop_invcm.txt +13 -13
  153. data/golden/streaming_basics/expected/lir_06_const_prop.txt +13 -13
  154. data/golden/streaming_basics/expected/nast.txt +8 -8
  155. data/golden/streaming_basics/expected/schema_javascript.mjs +13 -13
  156. data/golden/streaming_basics/expected/schema_ruby.rb +14 -14
  157. data/golden/streaming_basics/expected/snast.txt +1 -1
  158. data/golden/tuples/expected/lir_00_unoptimized.txt +5 -5
  159. data/golden/tuples/expected/lir_01_hoist_scalar_references.txt +5 -5
  160. data/golden/tuples/expected/lir_02_inlined.txt +5 -5
  161. data/golden/tuples/expected/lir_03_cse.txt +5 -5
  162. data/golden/tuples/expected/lir_04_1_loop_fusion.txt +5 -5
  163. data/golden/tuples/expected/lir_04_loop_invcm.txt +5 -5
  164. data/golden/tuples/expected/lir_06_const_prop.txt +5 -5
  165. data/golden/tuples/expected/nast.txt +4 -4
  166. data/golden/tuples/expected/schema_ruby.rb +1 -1
  167. data/golden/tuples/expected/snast.txt +6 -6
  168. data/golden/tuples_and_arrays/expected/lir_00_unoptimized.txt +1 -1
  169. data/golden/tuples_and_arrays/expected/lir_01_hoist_scalar_references.txt +1 -1
  170. data/golden/tuples_and_arrays/expected/lir_02_inlined.txt +17 -17
  171. data/golden/tuples_and_arrays/expected/lir_03_cse.txt +13 -13
  172. data/golden/tuples_and_arrays/expected/lir_04_1_loop_fusion.txt +13 -13
  173. data/golden/tuples_and_arrays/expected/lir_04_loop_invcm.txt +13 -13
  174. data/golden/tuples_and_arrays/expected/lir_06_const_prop.txt +13 -13
  175. data/golden/tuples_and_arrays/expected/nast.txt +3 -3
  176. data/golden/tuples_and_arrays/expected/schema_javascript.mjs +13 -13
  177. data/golden/tuples_and_arrays/expected/schema_ruby.rb +14 -14
  178. data/golden/tuples_and_arrays/expected/snast.txt +2 -2
  179. data/golden/us_tax_2024/expected/ast.txt +63 -670
  180. data/golden/us_tax_2024/expected/input_plan.txt +8 -45
  181. data/golden/us_tax_2024/expected/lir_00_unoptimized.txt +253 -863
  182. data/golden/us_tax_2024/expected/lir_01_hoist_scalar_references.txt +253 -863
  183. data/golden/us_tax_2024/expected/lir_02_inlined.txt +1215 -5139
  184. data/golden/us_tax_2024/expected/lir_03_cse.txt +587 -2460
  185. data/golden/us_tax_2024/expected/lir_04_1_loop_fusion.txt +632 -2480
  186. data/golden/us_tax_2024/expected/lir_04_loop_invcm.txt +587 -2400
  187. data/golden/us_tax_2024/expected/lir_06_const_prop.txt +587 -2400
  188. data/golden/us_tax_2024/expected/nast.txt +123 -826
  189. data/golden/us_tax_2024/expected/schema_javascript.mjs +127 -581
  190. data/golden/us_tax_2024/expected/schema_ruby.rb +135 -610
  191. data/golden/us_tax_2024/expected/snast.txt +155 -858
  192. data/golden/us_tax_2024/expected.json +120 -1
  193. data/golden/us_tax_2024/input.json +18 -9
  194. data/golden/us_tax_2024/schema.kumi +48 -178
  195. data/golden/with_constants/expected/lir_00_unoptimized.txt +1 -1
  196. data/golden/with_constants/expected/lir_01_hoist_scalar_references.txt +1 -1
  197. data/golden/with_constants/expected/lir_02_inlined.txt +1 -1
  198. data/golden/with_constants/expected/lir_03_cse.txt +1 -1
  199. data/golden/with_constants/expected/lir_04_1_loop_fusion.txt +1 -1
  200. data/golden/with_constants/expected/lir_04_loop_invcm.txt +1 -1
  201. data/golden/with_constants/expected/lir_06_const_prop.txt +1 -1
  202. data/golden/with_constants/expected/nast.txt +2 -2
  203. data/golden/with_constants/expected/schema_ruby.rb +1 -1
  204. data/golden/with_constants/expected/snast.txt +2 -2
  205. data/lib/kumi/analyzer.rb +12 -12
  206. data/lib/kumi/core/analyzer/passes/formal_constraint_propagator.rb +236 -0
  207. data/lib/kumi/core/analyzer/passes/input_collector.rb +22 -4
  208. data/lib/kumi/core/analyzer/passes/lir/inline_declarations_pass.rb +118 -74
  209. data/lib/kumi/core/analyzer/passes/nast_dimensional_analyzer_pass.rb +64 -18
  210. data/lib/kumi/core/analyzer/passes/normalize_to_nast_pass.rb +9 -4
  211. data/lib/kumi/core/analyzer/passes/snast_pass.rb +3 -1
  212. data/lib/kumi/core/analyzer/passes/unsat_detector.rb +172 -198
  213. data/lib/kumi/core/error_reporter.rb +36 -1
  214. data/lib/kumi/core/errors.rb +33 -1
  215. data/lib/kumi/core/functions/function_spec.rb +5 -4
  216. data/lib/kumi/core/functions/loader.rb +17 -1
  217. data/lib/kumi/core/functions/overload_resolver.rb +164 -0
  218. data/lib/kumi/core/functions/type_error_reporter.rb +118 -0
  219. data/lib/kumi/core/functions/type_rules.rb +155 -35
  220. data/lib/kumi/core/types/inference.rb +29 -22
  221. data/lib/kumi/core/types/normalizer.rb +29 -45
  222. data/lib/kumi/core/types/validator.rb +16 -27
  223. data/lib/kumi/core/types/value_objects.rb +116 -0
  224. data/lib/kumi/core/types.rb +45 -37
  225. data/lib/kumi/registry_v2/loader.rb +90 -0
  226. data/lib/kumi/registry_v2.rb +18 -1
  227. data/lib/kumi/version.rb +1 -1
  228. metadata +21 -7
  229. data/lib/kumi/core/analyzer/unsat_constant_evaluator.rb +0 -59
  230. data/lib/kumi/core/atom_unsat_solver.rb +0 -396
  231. data/lib/kumi/core/constraint_relationship_solver.rb +0 -641
  232. data/lib/kumi/core/types/builder.rb +0 -23
  233. data/lib/kumi/core/types/compatibility.rb +0 -96
  234. data/lib/kumi/core/types/formatter.rb +0 -26
@@ -4,11 +4,11 @@
4
4
  %t2 = const 2 :: integer
5
5
  %t3 = const 3 :: integer
6
6
  %t4 = load_input "x" :: integer
7
- %t5 = make_tuple(%t1, %t2, %t3, %t4) :: tuple<integer>
7
+ %t5 = make_tuple(%t1, %t2, %t3, %t4) :: tuple<integer, integer, integer, integer>
8
8
  yield %t5
9
9
  )
10
10
  (Declaration max_1
11
- %t6 = load_decl tuple :: tuple<integer>
11
+ %t6 = load_decl tuple :: tuple<integer, integer, integer, integer>
12
12
  %t7 = fold %t6 fn="agg.max" :: integer
13
13
  yield %t7
14
14
  )
@@ -18,12 +18,12 @@
18
18
  %t10 = const 3 :: integer
19
19
  %t11 = load_input "x" :: integer
20
20
  %t12 = const 1000 :: integer
21
- %t13 = make_tuple(%t8, %t9, %t10, %t11, %t12) :: tuple<integer>
21
+ %t13 = make_tuple(%t8, %t9, %t10, %t11, %t12) :: tuple<integer, integer, integer, integer, integer>
22
22
  %t14 = fold %t13 fn="agg.max" :: integer
23
23
  yield %t14
24
24
  )
25
25
  (Declaration min_1
26
- %t15 = load_decl tuple :: tuple<integer>
26
+ %t15 = load_decl tuple :: tuple<integer, integer, integer, integer>
27
27
  %t16 = fold %t15 fn="agg.min" :: integer
28
28
  yield %t16
29
29
  )
@@ -33,7 +33,7 @@
33
33
  %t19 = const 3 :: integer
34
34
  %t20 = load_input "x" :: integer
35
35
  %t21 = const -100 :: integer
36
- %t22 = make_tuple(%t17, %t18, %t19, %t20, %t21) :: tuple<integer>
36
+ %t22 = make_tuple(%t17, %t18, %t19, %t20, %t21) :: tuple<integer, integer, integer, integer, integer>
37
37
  %t23 = fold %t22 fn="agg.min" :: integer
38
38
  yield %t23
39
39
  )
@@ -4,11 +4,11 @@
4
4
  %t2 = const 2 :: integer
5
5
  %t3 = const 3 :: integer
6
6
  %t4 = load_input "x" :: integer
7
- %t5 = make_tuple(%t1, %t2, %t3, %t4) :: tuple<integer>
7
+ %t5 = make_tuple(%t1, %t2, %t3, %t4) :: tuple<integer, integer, integer, integer>
8
8
  yield %t5
9
9
  )
10
10
  (Declaration max_1
11
- %t6 = load_decl tuple :: tuple<integer>
11
+ %t6 = load_decl tuple :: tuple<integer, integer, integer, integer>
12
12
  %t7 = fold %t6 fn="agg.max" :: integer
13
13
  yield %t7
14
14
  )
@@ -18,12 +18,12 @@
18
18
  %t10 = const 3 :: integer
19
19
  %t11 = load_input "x" :: integer
20
20
  %t12 = const 1000 :: integer
21
- %t13 = make_tuple(%t8, %t9, %t10, %t11, %t12) :: tuple<integer>
21
+ %t13 = make_tuple(%t8, %t9, %t10, %t11, %t12) :: tuple<integer, integer, integer, integer, integer>
22
22
  %t14 = fold %t13 fn="agg.max" :: integer
23
23
  yield %t14
24
24
  )
25
25
  (Declaration min_1
26
- %t15 = load_decl tuple :: tuple<integer>
26
+ %t15 = load_decl tuple :: tuple<integer, integer, integer, integer>
27
27
  %t16 = fold %t15 fn="agg.min" :: integer
28
28
  yield %t16
29
29
  )
@@ -33,7 +33,7 @@
33
33
  %t19 = const 3 :: integer
34
34
  %t20 = load_input "x" :: integer
35
35
  %t21 = const -100 :: integer
36
- %t22 = make_tuple(%t17, %t18, %t19, %t20, %t21) :: tuple<integer>
36
+ %t22 = make_tuple(%t17, %t18, %t19, %t20, %t21) :: tuple<integer, integer, integer, integer, integer>
37
37
  %t23 = fold %t22 fn="agg.min" :: integer
38
38
  yield %t23
39
39
  )
@@ -4,7 +4,7 @@
4
4
  %t2 = const 2 :: integer
5
5
  %t3 = const 3 :: integer
6
6
  %t4 = load_input "x" :: integer
7
- %t5 = make_tuple(%t1, %t2, %t3, %t4) :: tuple<integer>
7
+ %t5 = make_tuple(%t1, %t2, %t3, %t4) :: tuple<integer, integer, integer, integer>
8
8
  yield %t5
9
9
  )
10
10
  (Declaration max_1
@@ -12,7 +12,7 @@
12
12
  %t25 = const 2 :: integer
13
13
  %t26 = const 3 :: integer
14
14
  %t27 = load_input "x" :: integer
15
- %t28 = make_tuple(%t24, %t25, %t26, %t27) :: tuple<integer>
15
+ %t28 = make_tuple(%t24, %t25, %t26, %t27) :: tuple<integer, integer, integer, integer>
16
16
  %t7 = fold %t28 fn="agg.max" :: integer
17
17
  yield %t7
18
18
  )
@@ -22,7 +22,7 @@
22
22
  %t10 = const 3 :: integer
23
23
  %t11 = load_input "x" :: integer
24
24
  %t12 = const 1000 :: integer
25
- %t13 = make_tuple(%t8, %t9, %t10, %t11, %t12) :: tuple<integer>
25
+ %t13 = make_tuple(%t8, %t9, %t10, %t11, %t12) :: tuple<integer, integer, integer, integer, integer>
26
26
  %t14 = fold %t13 fn="agg.max" :: integer
27
27
  yield %t14
28
28
  )
@@ -31,7 +31,7 @@
31
31
  %t30 = const 2 :: integer
32
32
  %t31 = const 3 :: integer
33
33
  %t32 = load_input "x" :: integer
34
- %t33 = make_tuple(%t29, %t30, %t31, %t32) :: tuple<integer>
34
+ %t33 = make_tuple(%t29, %t30, %t31, %t32) :: tuple<integer, integer, integer, integer>
35
35
  %t16 = fold %t33 fn="agg.min" :: integer
36
36
  yield %t16
37
37
  )
@@ -41,7 +41,7 @@
41
41
  %t19 = const 3 :: integer
42
42
  %t20 = load_input "x" :: integer
43
43
  %t21 = const -100 :: integer
44
- %t22 = make_tuple(%t17, %t18, %t19, %t20, %t21) :: tuple<integer>
44
+ %t22 = make_tuple(%t17, %t18, %t19, %t20, %t21) :: tuple<integer, integer, integer, integer, integer>
45
45
  %t23 = fold %t22 fn="agg.min" :: integer
46
46
  yield %t23
47
47
  )
@@ -4,7 +4,7 @@
4
4
  %t2 = const 2 :: integer
5
5
  %t3 = const 3 :: integer
6
6
  %t4 = load_input "x" :: integer
7
- %t5 = make_tuple(%t1, %t2, %t3, %t4) :: tuple<integer>
7
+ %t5 = make_tuple(%t1, %t2, %t3, %t4) :: tuple<integer, integer, integer, integer>
8
8
  yield %t5
9
9
  )
10
10
  (Declaration max_1
@@ -12,7 +12,7 @@
12
12
  %t25 = const 2 :: integer
13
13
  %t26 = const 3 :: integer
14
14
  %t27 = load_input "x" :: integer
15
- %t28 = make_tuple(%t24, %t25, %t26, %t27) :: tuple<integer>
15
+ %t28 = make_tuple(%t24, %t25, %t26, %t27) :: tuple<integer, integer, integer, integer>
16
16
  %t7 = fold %t28 fn="agg.max" :: integer
17
17
  yield %t7
18
18
  )
@@ -22,7 +22,7 @@
22
22
  %t10 = const 3 :: integer
23
23
  %t11 = load_input "x" :: integer
24
24
  %t12 = const 1000 :: integer
25
- %t13 = make_tuple(%t8, %t9, %t10, %t11, %t12) :: tuple<integer>
25
+ %t13 = make_tuple(%t8, %t9, %t10, %t11, %t12) :: tuple<integer, integer, integer, integer, integer>
26
26
  %t14 = fold %t13 fn="agg.max" :: integer
27
27
  yield %t14
28
28
  )
@@ -31,7 +31,7 @@
31
31
  %t30 = const 2 :: integer
32
32
  %t31 = const 3 :: integer
33
33
  %t32 = load_input "x" :: integer
34
- %t33 = make_tuple(%t29, %t30, %t31, %t32) :: tuple<integer>
34
+ %t33 = make_tuple(%t29, %t30, %t31, %t32) :: tuple<integer, integer, integer, integer>
35
35
  %t16 = fold %t33 fn="agg.min" :: integer
36
36
  yield %t16
37
37
  )
@@ -41,7 +41,7 @@
41
41
  %t19 = const 3 :: integer
42
42
  %t20 = load_input "x" :: integer
43
43
  %t21 = const -100 :: integer
44
- %t22 = make_tuple(%t17, %t18, %t19, %t20, %t21) :: tuple<integer>
44
+ %t22 = make_tuple(%t17, %t18, %t19, %t20, %t21) :: tuple<integer, integer, integer, integer, integer>
45
45
  %t23 = fold %t22 fn="agg.min" :: integer
46
46
  yield %t23
47
47
  )
@@ -4,7 +4,7 @@
4
4
  %t2 = const 2 :: integer
5
5
  %t3 = const 3 :: integer
6
6
  %t4 = load_input "x" :: integer
7
- %t5 = make_tuple(%t1, %t2, %t3, %t4) :: tuple<integer>
7
+ %t5 = make_tuple(%t1, %t2, %t3, %t4) :: tuple<integer, integer, integer, integer>
8
8
  yield %t5
9
9
  )
10
10
  (Declaration max_1
@@ -12,7 +12,7 @@
12
12
  %t25 = const 2 :: integer
13
13
  %t26 = const 3 :: integer
14
14
  %t27 = load_input "x" :: integer
15
- %t28 = make_tuple(%t24, %t25, %t26, %t27) :: tuple<integer>
15
+ %t28 = make_tuple(%t24, %t25, %t26, %t27) :: tuple<integer, integer, integer, integer>
16
16
  %t7 = fold %t28 fn="agg.max" :: integer
17
17
  yield %t7
18
18
  )
@@ -22,7 +22,7 @@
22
22
  %t10 = const 3 :: integer
23
23
  %t11 = load_input "x" :: integer
24
24
  %t12 = const 1000 :: integer
25
- %t13 = make_tuple(%t8, %t9, %t10, %t11, %t12) :: tuple<integer>
25
+ %t13 = make_tuple(%t8, %t9, %t10, %t11, %t12) :: tuple<integer, integer, integer, integer, integer>
26
26
  %t14 = fold %t13 fn="agg.max" :: integer
27
27
  yield %t14
28
28
  )
@@ -31,7 +31,7 @@
31
31
  %t30 = const 2 :: integer
32
32
  %t31 = const 3 :: integer
33
33
  %t32 = load_input "x" :: integer
34
- %t33 = make_tuple(%t29, %t30, %t31, %t32) :: tuple<integer>
34
+ %t33 = make_tuple(%t29, %t30, %t31, %t32) :: tuple<integer, integer, integer, integer>
35
35
  %t16 = fold %t33 fn="agg.min" :: integer
36
36
  yield %t16
37
37
  )
@@ -41,7 +41,7 @@
41
41
  %t19 = const 3 :: integer
42
42
  %t20 = load_input "x" :: integer
43
43
  %t21 = const -100 :: integer
44
- %t22 = make_tuple(%t17, %t18, %t19, %t20, %t21) :: tuple<integer>
44
+ %t22 = make_tuple(%t17, %t18, %t19, %t20, %t21) :: tuple<integer, integer, integer, integer, integer>
45
45
  %t23 = fold %t22 fn="agg.min" :: integer
46
46
  yield %t23
47
47
  )
@@ -4,7 +4,7 @@
4
4
  %t2 = const 2 :: integer
5
5
  %t3 = const 3 :: integer
6
6
  %t4 = load_input "x" :: integer
7
- %t5 = make_tuple(%t1, %t2, %t3, %t4) :: tuple<integer>
7
+ %t5 = make_tuple(%t1, %t2, %t3, %t4) :: tuple<integer, integer, integer, integer>
8
8
  yield %t5
9
9
  )
10
10
  (Declaration max_1
@@ -12,7 +12,7 @@
12
12
  %t25 = const 2 :: integer
13
13
  %t26 = const 3 :: integer
14
14
  %t27 = load_input "x" :: integer
15
- %t28 = make_tuple(%t24, %t25, %t26, %t27) :: tuple<integer>
15
+ %t28 = make_tuple(%t24, %t25, %t26, %t27) :: tuple<integer, integer, integer, integer>
16
16
  %t7 = fold %t28 fn="agg.max" :: integer
17
17
  yield %t7
18
18
  )
@@ -22,7 +22,7 @@
22
22
  %t10 = const 3 :: integer
23
23
  %t11 = load_input "x" :: integer
24
24
  %t12 = const 1000 :: integer
25
- %t13 = make_tuple(%t8, %t9, %t10, %t11, %t12) :: tuple<integer>
25
+ %t13 = make_tuple(%t8, %t9, %t10, %t11, %t12) :: tuple<integer, integer, integer, integer, integer>
26
26
  %t14 = fold %t13 fn="agg.max" :: integer
27
27
  yield %t14
28
28
  )
@@ -31,7 +31,7 @@
31
31
  %t30 = const 2 :: integer
32
32
  %t31 = const 3 :: integer
33
33
  %t32 = load_input "x" :: integer
34
- %t33 = make_tuple(%t29, %t30, %t31, %t32) :: tuple<integer>
34
+ %t33 = make_tuple(%t29, %t30, %t31, %t32) :: tuple<integer, integer, integer, integer>
35
35
  %t16 = fold %t33 fn="agg.min" :: integer
36
36
  yield %t16
37
37
  )
@@ -41,7 +41,7 @@
41
41
  %t19 = const 3 :: integer
42
42
  %t20 = load_input "x" :: integer
43
43
  %t21 = const -100 :: integer
44
- %t22 = make_tuple(%t17, %t18, %t19, %t20, %t21) :: tuple<integer>
44
+ %t22 = make_tuple(%t17, %t18, %t19, %t20, %t21) :: tuple<integer, integer, integer, integer, integer>
45
45
  %t23 = fold %t22 fn="agg.min" :: integer
46
46
  yield %t23
47
47
  )
@@ -4,7 +4,7 @@
4
4
  %t2 = const 2 :: integer
5
5
  %t3 = const 3 :: integer
6
6
  %t4 = load_input "x" :: integer
7
- %t5 = make_tuple(%t1, %t2, %t3, %t4) :: tuple<integer>
7
+ %t5 = make_tuple(%t1, %t2, %t3, %t4) :: tuple<integer, integer, integer, integer>
8
8
  yield %t5
9
9
  )
10
10
  (Declaration max_1
@@ -12,7 +12,7 @@
12
12
  %t25 = const 2 :: integer
13
13
  %t26 = const 3 :: integer
14
14
  %t27 = load_input "x" :: integer
15
- %t28 = make_tuple(%t24, %t25, %t26, %t27) :: tuple<integer>
15
+ %t28 = make_tuple(%t24, %t25, %t26, %t27) :: tuple<integer, integer, integer, integer>
16
16
  %t7 = fold %t28 fn="agg.max" :: integer
17
17
  yield %t7
18
18
  )
@@ -22,7 +22,7 @@
22
22
  %t10 = const 3 :: integer
23
23
  %t11 = load_input "x" :: integer
24
24
  %t12 = const 1000 :: integer
25
- %t13 = make_tuple(%t8, %t9, %t10, %t11, %t12) :: tuple<integer>
25
+ %t13 = make_tuple(%t8, %t9, %t10, %t11, %t12) :: tuple<integer, integer, integer, integer, integer>
26
26
  %t14 = fold %t13 fn="agg.max" :: integer
27
27
  yield %t14
28
28
  )
@@ -31,7 +31,7 @@
31
31
  %t30 = const 2 :: integer
32
32
  %t31 = const 3 :: integer
33
33
  %t32 = load_input "x" :: integer
34
- %t33 = make_tuple(%t29, %t30, %t31, %t32) :: tuple<integer>
34
+ %t33 = make_tuple(%t29, %t30, %t31, %t32) :: tuple<integer, integer, integer, integer>
35
35
  %t16 = fold %t33 fn="agg.min" :: integer
36
36
  yield %t16
37
37
  )
@@ -41,7 +41,7 @@
41
41
  %t19 = const 3 :: integer
42
42
  %t20 = load_input "x" :: integer
43
43
  %t21 = const -100 :: integer
44
- %t22 = make_tuple(%t17, %t18, %t19, %t20, %t21) :: tuple<integer>
44
+ %t22 = make_tuple(%t17, %t18, %t19, %t20, %t21) :: tuple<integer, integer, integer, integer, integer>
45
45
  %t23 = fold %t22 fn="agg.min" :: integer
46
46
  yield %t23
47
47
  )
@@ -8,12 +8,12 @@
8
8
  )
9
9
  )
10
10
  (VALUE max_1
11
- (Call :"agg.max"
11
+ (Call :max
12
12
  (Ref tuple)
13
13
  )
14
14
  )
15
15
  (VALUE max_2
16
- (Call :"agg.max"
16
+ (Call :max
17
17
  (Tuple
18
18
  (Const 1)
19
19
  (Const 2)
@@ -24,12 +24,12 @@
24
24
  )
25
25
  )
26
26
  (VALUE min_1
27
- (Call :"agg.min"
27
+ (Call :min
28
28
  (Ref tuple)
29
29
  )
30
30
  )
31
31
  (VALUE min_2
32
- (Call :"agg.min"
32
+ (Call :min
33
33
  (Tuple
34
34
  (Const 1)
35
35
  (Const 2)
@@ -1,5 +1,5 @@
1
1
  # Autogenerated by Kumi Codegen
2
- module Kumi::Compiled::KUMI_3eea341813080bb4cbc0497827d3abc72ab1193f6dee28a753bc5d2598f4360f
2
+ module Kumi::Compiled::KUMI_2a2d7ca421c364fcc8994d8ea79ac793a5bfe18cd756cea122fc6ea42d8f6e9a
3
3
  def self.from(input_data = nil)
4
4
  instance = Object.new
5
5
  instance.extend(self)
@@ -5,11 +5,11 @@
5
5
  (Const 2) :: [] -> integer
6
6
  (Const 3) :: [] -> integer
7
7
  (InputRef x key_chain=[]) :: [] -> integer
8
- ) :: [] -> tuple<integer>
9
- ) :: [] -> tuple<integer>
8
+ ) :: [] -> tuple<integer, integer, integer, integer>
9
+ ) :: [] -> tuple<integer, integer, integer, integer>
10
10
  (VALUE max_1
11
11
  (Fold :agg.max
12
- (Ref tuple) :: [] -> tuple<integer>
12
+ (Ref tuple) :: [] -> tuple<integer, integer, integer, integer>
13
13
  ) :: [] -> integer
14
14
  ) :: [] -> integer
15
15
  (VALUE max_2
@@ -20,12 +20,12 @@
20
20
  (Const 3) :: [] -> integer
21
21
  (InputRef x key_chain=[]) :: [] -> integer
22
22
  (Const 1000) :: [] -> integer
23
- ) :: [] -> tuple<integer>
23
+ ) :: [] -> tuple<integer, integer, integer, integer, integer>
24
24
  ) :: [] -> integer
25
25
  ) :: [] -> integer
26
26
  (VALUE min_1
27
27
  (Fold :agg.min
28
- (Ref tuple) :: [] -> tuple<integer>
28
+ (Ref tuple) :: [] -> tuple<integer, integer, integer, integer>
29
29
  ) :: [] -> integer
30
30
  ) :: [] -> integer
31
31
  (VALUE min_2
@@ -36,7 +36,7 @@
36
36
  (Const 3) :: [] -> integer
37
37
  (InputRef x key_chain=[]) :: [] -> integer
38
38
  (Const -100) :: [] -> integer
39
- ) :: [] -> tuple<integer>
39
+ ) :: [] -> tuple<integer, integer, integer, integer, integer>
40
40
  ) :: [] -> integer
41
41
  ) :: [] -> integer
42
42
  )
@@ -23,7 +23,7 @@
23
23
  loop points id=L3 in %t14 as el=%points_el_15, idx=%points_i_16
24
24
  %t17 = load_decl selected_value axes=[points] :: integer
25
25
  %t18 = load_field points_el_15["x"] :: integer
26
- %t19 = make_tuple(%t17, %t18) :: tuple<integer>
26
+ %t19 = make_tuple(%t17, %t18) :: tuple<integer, integer>
27
27
  %t20 = fold %t19 fn="agg.max" :: integer
28
28
  yield %t20
29
29
  end_loop
@@ -23,7 +23,7 @@
23
23
  loop points id=L3 in %t14 as el=%points_el_15, idx=%points_i_16
24
24
  %t17 = load_decl selected_value axes=[points] :: integer
25
25
  %t18 = load_field points_el_15["x"] :: integer
26
- %t19 = make_tuple(%t17, %t18) :: tuple<integer>
26
+ %t19 = make_tuple(%t17, %t18) :: tuple<integer, integer>
27
27
  %t20 = fold %t19 fn="agg.max" :: integer
28
28
  yield %t20
29
29
  end_loop
@@ -25,15 +25,15 @@
25
25
  %t14 = load_input "points" :: array
26
26
  loop points id=L3 in %t14 as el=%points_el_15, idx=%points_i_16
27
27
  %t31 = load_input "points" :: array
28
- %t41 = load_input "points" :: array
29
- %t42 = load_field points_el_15["x"] :: integer
30
- %t43 = const 100 :: integer
31
- %t44 = call core.gt(%t42, %t43) :: boolean
28
+ %t36 = load_input "points" :: array
29
+ %t37 = load_field points_el_15["x"] :: integer
30
+ %t38 = const 100 :: integer
31
+ %t39 = call core.gt(%t37, %t38) :: boolean
32
32
  %t33 = load_field points_el_15["x"] :: integer
33
33
  %t34 = load_field points_el_15["y"] :: integer
34
- %t35 = select %t44, %t33, %t34 :: integer
34
+ %t35 = select %t39, %t33, %t34 :: integer
35
35
  %t18 = load_field points_el_15["x"] :: integer
36
- %t19 = make_tuple(%t35, %t18) :: tuple<integer>
36
+ %t19 = make_tuple(%t35, %t18) :: tuple<integer, integer>
37
37
  %t20 = fold %t19 fn="agg.max" :: integer
38
38
  yield %t20
39
39
  end_loop
@@ -42,19 +42,19 @@
42
42
  %acc_21 = decl_acc :: integer
43
43
  %t22 = load_input "points" :: array
44
44
  loop points id=L4 in %t22 as el=%points_el_23, idx=%points_i_24
45
- %t36 = load_input "points" :: array
45
+ %t40 = load_input "points" :: array
46
46
  %t45 = load_input "points" :: array
47
- %t46 = load_input "points" :: array
47
+ %t50 = load_input "points" :: array
48
+ %t51 = load_field points_el_23["x"] :: integer
49
+ %t52 = const 100 :: integer
50
+ %t53 = call core.gt(%t51, %t52) :: boolean
48
51
  %t47 = load_field points_el_23["x"] :: integer
49
- %t48 = const 100 :: integer
50
- %t49 = call core.gt(%t47, %t48) :: boolean
51
- %t50 = load_field points_el_23["x"] :: integer
52
- %t51 = load_field points_el_23["y"] :: integer
53
- %t52 = select %t49, %t50, %t51 :: integer
54
- %t38 = load_field points_el_23["x"] :: integer
55
- %t39 = make_tuple(%t52, %t38) :: tuple<integer>
56
- %t40 = fold %t39 fn="agg.max" :: integer
57
- %acc_21 = acc_add agg.sum(%acc_21, %t40) :: integer
52
+ %t48 = load_field points_el_23["y"] :: integer
53
+ %t49 = select %t53, %t47, %t48 :: integer
54
+ %t42 = load_field points_el_23["x"] :: integer
55
+ %t43 = make_tuple(%t49, %t42) :: tuple<integer, integer>
56
+ %t44 = fold %t43 fn="agg.max" :: integer
57
+ %acc_21 = acc_add agg.sum(%acc_21, %t44) :: integer
58
58
  end_loop
59
59
  %t26 = acc_load %acc_21 :: integer
60
60
  yield %t26
@@ -22,12 +22,12 @@
22
22
  (Declaration final_value_per_point
23
23
  %t14 = load_input "points" :: array
24
24
  loop points id=L3 in %t14 as el=%points_el_15, idx=%points_i_16
25
- %t42 = load_field points_el_15["x"] :: integer
26
- %t43 = const 100 :: integer
25
+ %t37 = load_field points_el_15["x"] :: integer
26
+ %t38 = const 100 :: integer
27
27
  %t34 = load_field points_el_15["y"] :: integer
28
- %t44 = call core.gt(%t42, %t43) :: boolean
29
- %t35 = select %t44, %t42, %t34 :: integer
30
- %t19 = make_tuple(%t35, %t42) :: tuple<integer>
28
+ %t39 = call core.gt(%t37, %t38) :: boolean
29
+ %t35 = select %t39, %t37, %t34 :: integer
30
+ %t19 = make_tuple(%t35, %t37) :: tuple<integer, integer>
31
31
  %t20 = fold %t19 fn="agg.max" :: integer
32
32
  yield %t20
33
33
  end_loop
@@ -36,14 +36,14 @@
36
36
  %acc_21 = decl_acc :: integer
37
37
  %t22 = load_input "points" :: array
38
38
  loop points id=L4 in %t22 as el=%points_el_23, idx=%points_i_24
39
- %t47 = load_field points_el_23["x"] :: integer
40
- %t48 = const 100 :: integer
41
- %t51 = load_field points_el_23["y"] :: integer
42
- %t49 = call core.gt(%t47, %t48) :: boolean
43
- %t52 = select %t49, %t47, %t51 :: integer
44
- %t39 = make_tuple(%t52, %t47) :: tuple<integer>
45
- %t40 = fold %t39 fn="agg.max" :: integer
46
- %acc_21 = acc_add agg.sum(%acc_21, %t40) :: integer
39
+ %t51 = load_field points_el_23["x"] :: integer
40
+ %t52 = const 100 :: integer
41
+ %t48 = load_field points_el_23["y"] :: integer
42
+ %t53 = call core.gt(%t51, %t52) :: boolean
43
+ %t49 = select %t53, %t51, %t48 :: integer
44
+ %t43 = make_tuple(%t49, %t51) :: tuple<integer, integer>
45
+ %t44 = fold %t43 fn="agg.max" :: integer
46
+ %acc_21 = acc_add agg.sum(%acc_21, %t44) :: integer
47
47
  end_loop
48
48
  %t26 = acc_load %acc_21 :: integer
49
49
  yield %t26
@@ -22,12 +22,12 @@
22
22
  (Declaration final_value_per_point
23
23
  %t14 = load_input "points" :: array
24
24
  loop points id=L3 in %t14 as el=%points_el_15, idx=%points_i_16
25
- %t42 = load_field points_el_15["x"] :: integer
26
- %t43 = const 100 :: integer
25
+ %t37 = load_field points_el_15["x"] :: integer
26
+ %t38 = const 100 :: integer
27
27
  %t34 = load_field points_el_15["y"] :: integer
28
- %t44 = call core.gt(%t42, %t43) :: boolean
29
- %t35 = select %t44, %t42, %t34 :: integer
30
- %t19 = make_tuple(%t35, %t42) :: tuple<integer>
28
+ %t39 = call core.gt(%t37, %t38) :: boolean
29
+ %t35 = select %t39, %t37, %t34 :: integer
30
+ %t19 = make_tuple(%t35, %t37) :: tuple<integer, integer>
31
31
  %t20 = fold %t19 fn="agg.max" :: integer
32
32
  yield %t20
33
33
  end_loop
@@ -36,14 +36,14 @@
36
36
  %acc_21 = decl_acc :: integer
37
37
  %t22 = load_input "points" :: array
38
38
  loop points id=L4 in %t22 as el=%points_el_23, idx=%points_i_24
39
- %t47 = load_field points_el_23["x"] :: integer
40
- %t48 = const 100 :: integer
41
- %t51 = load_field points_el_23["y"] :: integer
42
- %t49 = call core.gt(%t47, %t48) :: boolean
43
- %t52 = select %t49, %t47, %t51 :: integer
44
- %t39 = make_tuple(%t52, %t47) :: tuple<integer>
45
- %t40 = fold %t39 fn="agg.max" :: integer
46
- %acc_21 = acc_add agg.sum(%acc_21, %t40) :: integer
39
+ %t51 = load_field points_el_23["x"] :: integer
40
+ %t52 = const 100 :: integer
41
+ %t48 = load_field points_el_23["y"] :: integer
42
+ %t53 = call core.gt(%t51, %t52) :: boolean
43
+ %t49 = select %t53, %t51, %t48 :: integer
44
+ %t43 = make_tuple(%t49, %t51) :: tuple<integer, integer>
45
+ %t44 = fold %t43 fn="agg.max" :: integer
46
+ %acc_21 = acc_add agg.sum(%acc_21, %t44) :: integer
47
47
  end_loop
48
48
  %t26 = acc_load %acc_21 :: integer
49
49
  yield %t26
@@ -21,13 +21,13 @@
21
21
  )
22
22
  (Declaration final_value_per_point
23
23
  %t14 = load_input "points" :: array
24
- %t43 = const 100 :: integer
24
+ %t38 = const 100 :: integer
25
25
  loop points id=L3 in %t14 as el=%points_el_15, idx=%points_i_16
26
- %t42 = load_field points_el_15["x"] :: integer
26
+ %t37 = load_field points_el_15["x"] :: integer
27
27
  %t34 = load_field points_el_15["y"] :: integer
28
- %t44 = call core.gt(%t42, %t43) :: boolean
29
- %t35 = select %t44, %t42, %t34 :: integer
30
- %t19 = make_tuple(%t35, %t42) :: tuple<integer>
28
+ %t39 = call core.gt(%t37, %t38) :: boolean
29
+ %t35 = select %t39, %t37, %t34 :: integer
30
+ %t19 = make_tuple(%t35, %t37) :: tuple<integer, integer>
31
31
  %t20 = fold %t19 fn="agg.max" :: integer
32
32
  yield %t20
33
33
  end_loop
@@ -35,15 +35,15 @@
35
35
  (Declaration grand_total
36
36
  %acc_21 = decl_acc :: integer
37
37
  %t22 = load_input "points" :: array
38
- %t48 = const 100 :: integer
38
+ %t52 = const 100 :: integer
39
39
  loop points id=L4 in %t22 as el=%points_el_23, idx=%points_i_24
40
- %t47 = load_field points_el_23["x"] :: integer
41
- %t51 = load_field points_el_23["y"] :: integer
42
- %t49 = call core.gt(%t47, %t48) :: boolean
43
- %t52 = select %t49, %t47, %t51 :: integer
44
- %t39 = make_tuple(%t52, %t47) :: tuple<integer>
45
- %t40 = fold %t39 fn="agg.max" :: integer
46
- %acc_21 = acc_add agg.sum(%acc_21, %t40) :: integer
40
+ %t51 = load_field points_el_23["x"] :: integer
41
+ %t48 = load_field points_el_23["y"] :: integer
42
+ %t53 = call core.gt(%t51, %t52) :: boolean
43
+ %t49 = select %t53, %t51, %t48 :: integer
44
+ %t43 = make_tuple(%t49, %t51) :: tuple<integer, integer>
45
+ %t44 = fold %t43 fn="agg.max" :: integer
46
+ %acc_21 = acc_add agg.sum(%acc_21, %t44) :: integer
47
47
  end_loop
48
48
  %t26 = acc_load %acc_21 :: integer
49
49
  yield %t26
@@ -21,13 +21,13 @@
21
21
  )
22
22
  (Declaration final_value_per_point
23
23
  %t14 = load_input "points" :: array
24
- %t43 = const 100 :: integer
24
+ %t38 = const 100 :: integer
25
25
  loop points id=L3 in %t14 as el=%points_el_15, idx=%points_i_16
26
- %t42 = load_field points_el_15["x"] :: integer
26
+ %t37 = load_field points_el_15["x"] :: integer
27
27
  %t34 = load_field points_el_15["y"] :: integer
28
- %t44 = call core.gt(%t42, %t43) :: boolean
29
- %t35 = select %t44, %t42, %t34 :: integer
30
- %t19 = make_tuple(%t35, %t42) :: tuple<integer>
28
+ %t39 = call core.gt(%t37, %t38) :: boolean
29
+ %t35 = select %t39, %t37, %t34 :: integer
30
+ %t19 = make_tuple(%t35, %t37) :: tuple<integer, integer>
31
31
  %t20 = fold %t19 fn="agg.max" :: integer
32
32
  yield %t20
33
33
  end_loop
@@ -35,15 +35,15 @@
35
35
  (Declaration grand_total
36
36
  %acc_21 = decl_acc :: integer
37
37
  %t22 = load_input "points" :: array
38
- %t48 = const 100 :: integer
38
+ %t52 = const 100 :: integer
39
39
  loop points id=L4 in %t22 as el=%points_el_23, idx=%points_i_24
40
- %t47 = load_field points_el_23["x"] :: integer
41
- %t51 = load_field points_el_23["y"] :: integer
42
- %t49 = call core.gt(%t47, %t48) :: boolean
43
- %t52 = select %t49, %t47, %t51 :: integer
44
- %t39 = make_tuple(%t52, %t47) :: tuple<integer>
45
- %t40 = fold %t39 fn="agg.max" :: integer
46
- %acc_21 = acc_add agg.sum(%acc_21, %t40) :: integer
40
+ %t51 = load_field points_el_23["x"] :: integer
41
+ %t48 = load_field points_el_23["y"] :: integer
42
+ %t53 = call core.gt(%t51, %t52) :: boolean
43
+ %t49 = select %t53, %t51, %t48 :: integer
44
+ %t43 = make_tuple(%t49, %t51) :: tuple<integer, integer>
45
+ %t44 = fold %t43 fn="agg.max" :: integer
46
+ %acc_21 = acc_add agg.sum(%acc_21, %t44) :: integer
47
47
  end_loop
48
48
  %t26 = acc_load %acc_21 :: integer
49
49
  yield %t26
@@ -6,14 +6,14 @@
6
6
  )
7
7
  )
8
8
  (VALUE selected_value
9
- (Call :__select__
9
+ (Call :select
10
10
  (Ref x_is_large)
11
11
  (InputRef [:points, :point, :x])
12
12
  (InputRef [:points, :point, :y])
13
13
  )
14
14
  )
15
15
  (VALUE final_value_per_point
16
- (Call :"agg.max"
16
+ (Call :max
17
17
  (Tuple
18
18
  (Ref selected_value)
19
19
  (InputRef [:points, :point, :x])
@@ -21,7 +21,7 @@
21
21
  )
22
22
  )
23
23
  (VALUE grand_total
24
- (Call :"agg.sum"
24
+ (Call :sum
25
25
  (Ref final_value_per_point)
26
26
  )
27
27
  )