kumi 0.0.23 → 0.0.25
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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +8 -0
- data/README.md +2 -2
- data/golden/array_element/expected/schema_ruby.rb +1 -1
- data/golden/array_index/expected/schema_ruby.rb +1 -1
- data/golden/array_operations/expected/schema_ruby.rb +1 -1
- data/golden/cascade_logic/expected/lir_02_inlined.txt +8 -8
- data/golden/cascade_logic/expected/schema_ruby.rb +1 -1
- data/golden/chained_fusion/expected/lir_02_inlined.txt +36 -36
- data/golden/chained_fusion/expected/lir_03_cse.txt +23 -23
- data/golden/chained_fusion/expected/lir_04_1_loop_fusion.txt +25 -25
- data/golden/chained_fusion/expected/lir_04_loop_invcm.txt +23 -23
- data/golden/chained_fusion/expected/lir_06_const_prop.txt +23 -23
- data/golden/chained_fusion/expected/schema_javascript.mjs +23 -23
- data/golden/chained_fusion/expected/schema_ruby.rb +28 -28
- data/golden/element_arrays/expected/schema_ruby.rb +1 -1
- data/golden/empty_and_null_inputs/expected/lir_02_inlined.txt +18 -18
- data/golden/empty_and_null_inputs/expected/lir_03_cse.txt +17 -17
- data/golden/empty_and_null_inputs/expected/lir_04_1_loop_fusion.txt +17 -17
- data/golden/empty_and_null_inputs/expected/lir_04_loop_invcm.txt +17 -17
- data/golden/empty_and_null_inputs/expected/lir_06_const_prop.txt +17 -17
- data/golden/empty_and_null_inputs/expected/schema_javascript.mjs +13 -13
- data/golden/empty_and_null_inputs/expected/schema_ruby.rb +18 -18
- data/golden/game_of_life/expected/lir_00_unoptimized.txt +33 -33
- data/golden/game_of_life/expected/lir_01_hoist_scalar_references.txt +33 -33
- data/golden/game_of_life/expected/lir_02_inlined.txt +1370 -1370
- data/golden/game_of_life/expected/lir_03_cse.txt +448 -448
- data/golden/game_of_life/expected/lir_04_1_loop_fusion.txt +448 -448
- data/golden/game_of_life/expected/lir_04_loop_invcm.txt +448 -448
- data/golden/game_of_life/expected/lir_06_const_prop.txt +448 -448
- data/golden/game_of_life/expected/schema_javascript.mjs +85 -85
- data/golden/game_of_life/expected/schema_ruby.rb +86 -86
- data/golden/hash_keys/expected/schema_ruby.rb +1 -1
- data/golden/hash_keys/schema.kumi +4 -5
- data/golden/hash_value/expected/schema_ruby.rb +1 -1
- data/golden/hierarchical_complex/expected/lir_02_inlined.txt +15 -15
- data/golden/hierarchical_complex/expected/lir_03_cse.txt +1 -1
- data/golden/hierarchical_complex/expected/lir_04_1_loop_fusion.txt +1 -1
- data/golden/hierarchical_complex/expected/lir_04_loop_invcm.txt +1 -1
- data/golden/hierarchical_complex/expected/lir_06_const_prop.txt +1 -1
- data/golden/hierarchical_complex/expected/schema_javascript.mjs +1 -1
- data/golden/hierarchical_complex/expected/schema_ruby.rb +2 -2
- data/golden/inline_rename_scope_leak/expected/ast.txt +48 -0
- data/golden/inline_rename_scope_leak/expected/input_plan.txt +10 -0
- data/golden/inline_rename_scope_leak/expected/lir_00_unoptimized.txt +35 -0
- data/golden/inline_rename_scope_leak/expected/lir_01_hoist_scalar_references.txt +35 -0
- data/golden/inline_rename_scope_leak/expected/lir_02_inlined.txt +49 -0
- data/golden/inline_rename_scope_leak/expected/lir_03_cse.txt +49 -0
- data/golden/inline_rename_scope_leak/expected/lir_04_1_loop_fusion.txt +49 -0
- data/golden/inline_rename_scope_leak/expected/lir_04_loop_invcm.txt +49 -0
- data/golden/inline_rename_scope_leak/expected/lir_06_const_prop.txt +49 -0
- data/golden/inline_rename_scope_leak/expected/nast.txt +31 -0
- data/golden/inline_rename_scope_leak/expected/schema_javascript.mjs +51 -0
- data/golden/inline_rename_scope_leak/expected/schema_ruby.rb +82 -0
- data/golden/inline_rename_scope_leak/expected/snast.txt +31 -0
- data/golden/inline_rename_scope_leak/expected.json +7 -0
- data/golden/inline_rename_scope_leak/input.json +4 -0
- data/golden/inline_rename_scope_leak/schema.kumi +24 -0
- data/golden/input_reference/expected/schema_ruby.rb +1 -1
- data/golden/interleaved_fusion/expected/lir_02_inlined.txt +35 -35
- data/golden/interleaved_fusion/expected/lir_03_cse.txt +26 -26
- data/golden/interleaved_fusion/expected/lir_04_1_loop_fusion.txt +27 -26
- data/golden/interleaved_fusion/expected/lir_04_loop_invcm.txt +26 -26
- data/golden/interleaved_fusion/expected/lir_06_const_prop.txt +26 -26
- data/golden/interleaved_fusion/expected/schema_javascript.mjs +23 -23
- data/golden/interleaved_fusion/expected/schema_ruby.rb +29 -29
- data/golden/let_inline/expected/schema_ruby.rb +1 -1
- data/golden/loop_fusion/expected/lir_02_inlined.txt +17 -17
- data/golden/loop_fusion/expected/lir_03_cse.txt +14 -14
- data/golden/loop_fusion/expected/lir_04_1_loop_fusion.txt +14 -14
- data/golden/loop_fusion/expected/lir_04_loop_invcm.txt +14 -14
- data/golden/loop_fusion/expected/lir_06_const_prop.txt +14 -14
- data/golden/loop_fusion/expected/schema_javascript.mjs +12 -12
- data/golden/loop_fusion/expected/schema_ruby.rb +16 -16
- data/golden/min_reduce_scope/expected/schema_ruby.rb +1 -1
- data/golden/mixed_dimensions/expected/lir_02_inlined.txt +5 -5
- data/golden/mixed_dimensions/expected/lir_03_cse.txt +5 -5
- data/golden/mixed_dimensions/expected/lir_04_1_loop_fusion.txt +5 -5
- data/golden/mixed_dimensions/expected/lir_04_loop_invcm.txt +5 -5
- data/golden/mixed_dimensions/expected/lir_06_const_prop.txt +5 -5
- data/golden/mixed_dimensions/expected/schema_javascript.mjs +3 -3
- data/golden/mixed_dimensions/expected/schema_ruby.rb +6 -6
- data/golden/multirank_hoisting/expected/lir_02_inlined.txt +48 -48
- data/golden/multirank_hoisting/expected/lir_03_cse.txt +35 -35
- data/golden/multirank_hoisting/expected/lir_04_1_loop_fusion.txt +35 -35
- data/golden/multirank_hoisting/expected/lir_04_loop_invcm.txt +35 -35
- data/golden/multirank_hoisting/expected/lir_06_const_prop.txt +35 -35
- data/golden/multirank_hoisting/expected/schema_javascript.mjs +34 -34
- data/golden/multirank_hoisting/expected/schema_ruby.rb +36 -36
- data/golden/nested_hash/expected/schema_ruby.rb +1 -1
- data/golden/reduction_broadcast/expected/lir_02_inlined.txt +30 -30
- data/golden/reduction_broadcast/expected/lir_03_cse.txt +22 -22
- data/golden/reduction_broadcast/expected/lir_04_1_loop_fusion.txt +22 -22
- data/golden/reduction_broadcast/expected/lir_04_loop_invcm.txt +22 -22
- data/golden/reduction_broadcast/expected/lir_06_const_prop.txt +22 -22
- data/golden/reduction_broadcast/expected/schema_javascript.mjs +18 -18
- data/golden/reduction_broadcast/expected/schema_ruby.rb +23 -23
- data/golden/roll/expected/lir_00_unoptimized.txt +8 -8
- data/golden/roll/expected/lir_01_hoist_scalar_references.txt +8 -8
- data/golden/roll/expected/lir_02_inlined.txt +8 -8
- data/golden/roll/expected/lir_03_cse.txt +8 -8
- data/golden/roll/expected/lir_04_1_loop_fusion.txt +8 -8
- data/golden/roll/expected/lir_04_loop_invcm.txt +8 -8
- data/golden/roll/expected/lir_06_const_prop.txt +8 -8
- data/golden/roll/expected/schema_ruby.rb +1 -1
- data/golden/shift/expected/lir_00_unoptimized.txt +12 -12
- data/golden/shift/expected/lir_01_hoist_scalar_references.txt +12 -12
- data/golden/shift/expected/lir_02_inlined.txt +12 -12
- data/golden/shift/expected/lir_03_cse.txt +12 -12
- data/golden/shift/expected/lir_04_1_loop_fusion.txt +12 -12
- data/golden/shift/expected/lir_04_loop_invcm.txt +12 -12
- data/golden/shift/expected/lir_06_const_prop.txt +12 -12
- data/golden/shift/expected/schema_ruby.rb +1 -1
- data/golden/shift_2d/expected/lir_00_unoptimized.txt +48 -48
- data/golden/shift_2d/expected/lir_01_hoist_scalar_references.txt +48 -48
- data/golden/shift_2d/expected/lir_02_inlined.txt +48 -48
- data/golden/shift_2d/expected/lir_03_cse.txt +48 -48
- data/golden/shift_2d/expected/lir_04_1_loop_fusion.txt +48 -48
- data/golden/shift_2d/expected/lir_04_loop_invcm.txt +48 -48
- data/golden/shift_2d/expected/lir_06_const_prop.txt +48 -48
- data/golden/shift_2d/expected/schema_ruby.rb +1 -1
- data/golden/simple_math/expected/schema_ruby.rb +1 -1
- data/golden/streaming_basics/expected/lir_02_inlined.txt +25 -25
- data/golden/streaming_basics/expected/lir_03_cse.txt +13 -13
- data/golden/streaming_basics/expected/lir_04_1_loop_fusion.txt +13 -13
- data/golden/streaming_basics/expected/lir_04_loop_invcm.txt +13 -13
- data/golden/streaming_basics/expected/lir_06_const_prop.txt +13 -13
- data/golden/streaming_basics/expected/schema_javascript.mjs +13 -13
- data/golden/streaming_basics/expected/schema_ruby.rb +14 -14
- data/golden/tuples/expected/lir_00_unoptimized.txt +4 -4
- data/golden/tuples/expected/lir_01_hoist_scalar_references.txt +4 -4
- data/golden/tuples/expected/lir_02_inlined.txt +4 -4
- data/golden/tuples/expected/lir_03_cse.txt +4 -4
- data/golden/tuples/expected/lir_04_1_loop_fusion.txt +4 -4
- data/golden/tuples/expected/lir_04_loop_invcm.txt +4 -4
- data/golden/tuples/expected/lir_06_const_prop.txt +4 -4
- data/golden/tuples/expected/schema_ruby.rb +1 -1
- data/golden/tuples_and_arrays/expected/lir_00_unoptimized.txt +1 -1
- data/golden/tuples_and_arrays/expected/lir_01_hoist_scalar_references.txt +1 -1
- data/golden/tuples_and_arrays/expected/lir_02_inlined.txt +17 -17
- data/golden/tuples_and_arrays/expected/lir_03_cse.txt +14 -14
- data/golden/tuples_and_arrays/expected/lir_04_1_loop_fusion.txt +14 -14
- data/golden/tuples_and_arrays/expected/lir_04_loop_invcm.txt +14 -14
- data/golden/tuples_and_arrays/expected/lir_06_const_prop.txt +14 -14
- data/golden/tuples_and_arrays/expected/schema_javascript.mjs +13 -13
- data/golden/tuples_and_arrays/expected/schema_ruby.rb +14 -14
- data/golden/us_tax_2024/expected/ast.txt +865 -0
- data/golden/us_tax_2024/expected/input_plan.txt +61 -0
- data/golden/us_tax_2024/expected/lir_00_unoptimized.txt +901 -0
- data/golden/us_tax_2024/expected/lir_01_hoist_scalar_references.txt +901 -0
- data/golden/us_tax_2024/expected/lir_02_inlined.txt +5178 -0
- data/golden/us_tax_2024/expected/lir_03_cse.txt +2499 -0
- data/golden/us_tax_2024/expected/lir_04_1_loop_fusion.txt +2519 -0
- data/golden/us_tax_2024/expected/lir_04_loop_invcm.txt +2499 -0
- data/golden/us_tax_2024/expected/lir_06_const_prop.txt +2499 -0
- data/golden/us_tax_2024/expected/nast.txt +976 -0
- data/golden/us_tax_2024/expected/schema_javascript.mjs +584 -0
- data/golden/us_tax_2024/expected/schema_ruby.rb +639 -0
- data/golden/us_tax_2024/expected/snast.txt +976 -0
- data/golden/us_tax_2024/expected.json +1 -0
- data/golden/us_tax_2024/input.json +168 -0
- data/golden/us_tax_2024/schema.kumi +203 -0
- data/golden/with_constants/expected/schema_ruby.rb +1 -1
- data/lib/kumi/core/analyzer/passes/lir/inline_declarations_pass.rb +227 -107
- data/lib/kumi/version.rb +1 -1
- metadata +33 -1
@@ -1,94 +1,94 @@
|
|
1
1
|
export function _next_state(input) {
|
2
2
|
let out = [];
|
3
3
|
let t285 = input["rows"];
|
4
|
-
let
|
5
|
-
const
|
6
|
-
const
|
7
|
-
const
|
8
|
-
const
|
9
|
-
const
|
10
|
-
let
|
4
|
+
let t1548 = t285.length;
|
5
|
+
const t1549 = -1;
|
6
|
+
const t1551 = 0;
|
7
|
+
const t1555 = 1;
|
8
|
+
const t1534 = 3;
|
9
|
+
const t1745 = 2;
|
10
|
+
let t1556 = t1548 - t1555;
|
11
11
|
t285.forEach((rows_el_286, rows_i_287) => {
|
12
12
|
let out_1 = [];
|
13
|
-
let
|
14
|
-
let
|
15
|
-
let
|
16
|
-
let
|
17
|
-
let
|
18
|
-
let
|
19
|
-
let
|
20
|
-
let
|
21
|
-
let
|
22
|
-
let
|
23
|
-
let
|
24
|
-
let
|
25
|
-
let
|
26
|
-
let
|
27
|
-
let
|
28
|
-
let
|
29
|
-
let
|
30
|
-
let
|
31
|
-
let
|
32
|
-
let
|
33
|
-
let
|
34
|
-
let
|
13
|
+
let t1550 = rows_i_287 - t1549;
|
14
|
+
let t1570 = rows_i_287 - t1555;
|
15
|
+
let t1589 = ((rows_i_287 % t1548) + t1548) % t1548;
|
16
|
+
let t1552 = t1550 >= t1551;
|
17
|
+
let t1553 = t1550 < t1548;
|
18
|
+
let t1558 = Math.min(Math.max(t1550, t1551), t1556);
|
19
|
+
let t1572 = t1570 >= t1551;
|
20
|
+
let t1573 = t1570 < t1548;
|
21
|
+
let t1578 = Math.min(Math.max(t1570, t1551), t1556);
|
22
|
+
let t1590 = t1589 + t1548;
|
23
|
+
let t1554 = t1552 && t1553;
|
24
|
+
let t1559 = t285[t1558];
|
25
|
+
let t1574 = t1572 && t1573;
|
26
|
+
let t1579 = t285[t1578];
|
27
|
+
let t1591 = ((t1590 % t1548) + t1548) % t1548;
|
28
|
+
let t1560 = t1559.length;
|
29
|
+
let t1580 = t1579.length;
|
30
|
+
let t1592 = t285[t1591];
|
31
|
+
let t1593 = t1592.length;
|
32
|
+
let t1649 = t1560 - t1555;
|
33
|
+
let t1705 = t1580 - t1555;
|
34
|
+
let t1601 = t1593 - t1555;
|
35
35
|
rows_el_286.forEach((col_el_288, col_i_289) => {
|
36
|
-
let
|
37
|
-
let
|
38
|
-
let
|
39
|
-
let
|
40
|
-
let
|
41
|
-
let
|
42
|
-
let
|
43
|
-
let
|
44
|
-
let
|
45
|
-
let
|
46
|
-
let
|
47
|
-
let
|
48
|
-
let
|
49
|
-
let
|
50
|
-
let
|
51
|
-
let
|
52
|
-
let
|
53
|
-
let
|
54
|
-
let
|
55
|
-
let
|
56
|
-
let
|
57
|
-
let
|
58
|
-
let
|
59
|
-
let
|
60
|
-
let
|
61
|
-
let
|
62
|
-
let
|
63
|
-
let
|
64
|
-
let
|
65
|
-
let
|
66
|
-
let
|
67
|
-
let
|
68
|
-
let
|
69
|
-
let
|
70
|
-
let
|
71
|
-
let
|
72
|
-
let
|
73
|
-
let
|
74
|
-
let
|
75
|
-
let
|
76
|
-
let
|
77
|
-
let
|
78
|
-
let
|
79
|
-
let
|
80
|
-
let
|
81
|
-
let
|
82
|
-
let
|
83
|
-
let
|
84
|
-
let
|
85
|
-
let
|
86
|
-
let
|
87
|
-
let
|
88
|
-
let
|
89
|
-
let
|
90
|
-
let
|
91
|
-
let t293 =
|
36
|
+
let t1561 = ((col_i_289 % t1560) + t1560) % t1560;
|
37
|
+
let t1562 = t1561 + t1560;
|
38
|
+
let t1563 = ((t1562 % t1560) + t1560) % t1560;
|
39
|
+
let t1564 = t1559[t1563];
|
40
|
+
let t1566 = t1554 ? t1564 : t1551;
|
41
|
+
let t1581 = ((col_i_289 % t1580) + t1580) % t1580;
|
42
|
+
let t1582 = t1581 + t1580;
|
43
|
+
let t1583 = ((t1582 % t1580) + t1580) % t1580;
|
44
|
+
let t1584 = t1579[t1583];
|
45
|
+
let t1586 = t1574 ? t1584 : t1551;
|
46
|
+
let t1595 = col_i_289 - t1549;
|
47
|
+
let t1597 = t1595 >= t1551;
|
48
|
+
let t1598 = t1595 < t1593;
|
49
|
+
let t1599 = t1597 && t1598;
|
50
|
+
let t1603 = Math.min(Math.max(t1595, t1551), t1601);
|
51
|
+
let t1604 = t1592[t1603];
|
52
|
+
let t1606 = t1599 ? t1604 : t1551;
|
53
|
+
let t1615 = col_i_289 - t1555;
|
54
|
+
let t1617 = t1615 >= t1551;
|
55
|
+
let t1618 = t1615 < t1593;
|
56
|
+
let t1619 = t1617 && t1618;
|
57
|
+
let t1623 = Math.min(Math.max(t1615, t1551), t1601);
|
58
|
+
let t1624 = t1592[t1623];
|
59
|
+
let t1626 = t1619 ? t1624 : t1551;
|
60
|
+
let t1645 = t1595 < t1560;
|
61
|
+
let t1646 = t1597 && t1645;
|
62
|
+
let t1647 = t1554 && t1646;
|
63
|
+
let t1651 = Math.min(Math.max(t1595, t1551), t1649);
|
64
|
+
let t1652 = t1559[t1651];
|
65
|
+
let t1654 = t1647 ? t1652 : t1551;
|
66
|
+
let t1673 = t1615 < t1560;
|
67
|
+
let t1674 = t1617 && t1673;
|
68
|
+
let t1675 = t1554 && t1674;
|
69
|
+
let t1679 = Math.min(Math.max(t1615, t1551), t1649);
|
70
|
+
let t1680 = t1559[t1679];
|
71
|
+
let t1682 = t1675 ? t1680 : t1551;
|
72
|
+
let t1701 = t1595 < t1580;
|
73
|
+
let t1702 = t1597 && t1701;
|
74
|
+
let t1703 = t1574 && t1702;
|
75
|
+
let t1707 = Math.min(Math.max(t1595, t1551), t1705);
|
76
|
+
let t1708 = t1579[t1707];
|
77
|
+
let t1710 = t1703 ? t1708 : t1551;
|
78
|
+
let t1729 = t1615 < t1580;
|
79
|
+
let t1730 = t1617 && t1729;
|
80
|
+
let t1731 = t1574 && t1730;
|
81
|
+
let t1735 = Math.min(Math.max(t1615, t1551), t1705);
|
82
|
+
let t1736 = t1579[t1735];
|
83
|
+
let t1738 = t1731 ? t1736 : t1551;
|
84
|
+
let t1545 = [t1566, t1586, t1606, t1626, t1654, t1682, t1710, t1738];
|
85
|
+
let t1546 = t1545.reduce((a, b) => a + b, 0);
|
86
|
+
let t1535 = t1546 == t1534;
|
87
|
+
let t1746 = t1546 == t1745;
|
88
|
+
let t1953 = col_el_288 > t1551;
|
89
|
+
let t1742 = t1746 && t1953;
|
90
|
+
let t1531 = t1535 || t1742;
|
91
|
+
let t293 = t1531 ? t1555 : t1551;
|
92
92
|
out_1.push(t293);
|
93
93
|
});
|
94
94
|
out.push(out_1);
|
@@ -1,5 +1,5 @@
|
|
1
1
|
# Autogenerated by Kumi Codegen
|
2
|
-
module Kumi::Compiled::
|
2
|
+
module Kumi::Compiled::KUMI_5e0a149820fd6b1804439359780ed5e142afe31fbc67b4cde25ee818fa412c12
|
3
3
|
def self.from(input_data = nil)
|
4
4
|
instance = Object.new
|
5
5
|
instance.extend(self)
|
@@ -28,94 +28,94 @@ module Kumi::Compiled::KUMI_bd17a3ebee1bec4e58b72118d43e8c1c93bf773f257fc93d9c32
|
|
28
28
|
def _next_state(input = @input)
|
29
29
|
out = []
|
30
30
|
t285 = input["rows"] || input[:rows]
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
31
|
+
t1548 = t285.length
|
32
|
+
t1549 = -1
|
33
|
+
t1551 = 0
|
34
|
+
t1555 = 1
|
35
|
+
t1534 = 3
|
36
|
+
t1745 = 2
|
37
|
+
t1556 = t1548 - t1555
|
38
38
|
t285.each_with_index do |rows_el_286, rows_i_287|
|
39
39
|
out_1 = []
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
40
|
+
t1550 = rows_i_287 - t1549
|
41
|
+
t1570 = rows_i_287 - t1555
|
42
|
+
t1589 = rows_i_287 % t1548
|
43
|
+
t1552 = t1550 >= t1551
|
44
|
+
t1553 = t1550 < t1548
|
45
|
+
t1558 = [[ t1550, t1551 ].max, t1556 ].min
|
46
|
+
t1572 = t1570 >= t1551
|
47
|
+
t1573 = t1570 < t1548
|
48
|
+
t1578 = [[ t1570, t1551 ].max, t1556 ].min
|
49
|
+
t1590 = t1589 + t1548
|
50
|
+
t1554 = t1552 && t1553
|
51
|
+
t1559 = t285[t1558]
|
52
|
+
t1574 = t1572 && t1573
|
53
|
+
t1579 = t285[t1578]
|
54
|
+
t1591 = t1590 % t1548
|
55
|
+
t1560 = t1559.length
|
56
|
+
t1580 = t1579.length
|
57
|
+
t1592 = t285[t1591]
|
58
|
+
t1593 = t1592.length
|
59
|
+
t1649 = t1560 - t1555
|
60
|
+
t1705 = t1580 - t1555
|
61
|
+
t1601 = t1593 - t1555
|
62
62
|
rows_el_286.each_with_index do |col_el_288, col_i_289|
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
t293 =
|
63
|
+
t1561 = col_i_289 % t1560
|
64
|
+
t1562 = t1561 + t1560
|
65
|
+
t1563 = t1562 % t1560
|
66
|
+
t1564 = t1559[t1563]
|
67
|
+
t1566 = t1554 ? t1564 : t1551
|
68
|
+
t1581 = col_i_289 % t1580
|
69
|
+
t1582 = t1581 + t1580
|
70
|
+
t1583 = t1582 % t1580
|
71
|
+
t1584 = t1579[t1583]
|
72
|
+
t1586 = t1574 ? t1584 : t1551
|
73
|
+
t1595 = col_i_289 - t1549
|
74
|
+
t1597 = t1595 >= t1551
|
75
|
+
t1598 = t1595 < t1593
|
76
|
+
t1599 = t1597 && t1598
|
77
|
+
t1603 = [[ t1595, t1551 ].max, t1601 ].min
|
78
|
+
t1604 = t1592[t1603]
|
79
|
+
t1606 = t1599 ? t1604 : t1551
|
80
|
+
t1615 = col_i_289 - t1555
|
81
|
+
t1617 = t1615 >= t1551
|
82
|
+
t1618 = t1615 < t1593
|
83
|
+
t1619 = t1617 && t1618
|
84
|
+
t1623 = [[ t1615, t1551 ].max, t1601 ].min
|
85
|
+
t1624 = t1592[t1623]
|
86
|
+
t1626 = t1619 ? t1624 : t1551
|
87
|
+
t1645 = t1595 < t1560
|
88
|
+
t1646 = t1597 && t1645
|
89
|
+
t1647 = t1554 && t1646
|
90
|
+
t1651 = [[ t1595, t1551 ].max, t1649 ].min
|
91
|
+
t1652 = t1559[t1651]
|
92
|
+
t1654 = t1647 ? t1652 : t1551
|
93
|
+
t1673 = t1615 < t1560
|
94
|
+
t1674 = t1617 && t1673
|
95
|
+
t1675 = t1554 && t1674
|
96
|
+
t1679 = [[ t1615, t1551 ].max, t1649 ].min
|
97
|
+
t1680 = t1559[t1679]
|
98
|
+
t1682 = t1675 ? t1680 : t1551
|
99
|
+
t1701 = t1595 < t1580
|
100
|
+
t1702 = t1597 && t1701
|
101
|
+
t1703 = t1574 && t1702
|
102
|
+
t1707 = [[ t1595, t1551 ].max, t1705 ].min
|
103
|
+
t1708 = t1579[t1707]
|
104
|
+
t1710 = t1703 ? t1708 : t1551
|
105
|
+
t1729 = t1615 < t1580
|
106
|
+
t1730 = t1617 && t1729
|
107
|
+
t1731 = t1574 && t1730
|
108
|
+
t1735 = [[ t1615, t1551 ].max, t1705 ].min
|
109
|
+
t1736 = t1579[t1735]
|
110
|
+
t1738 = t1731 ? t1736 : t1551
|
111
|
+
t1545 = [t1566, t1586, t1606, t1626, t1654, t1682, t1710, t1738]
|
112
|
+
t1546 = t1545.sum
|
113
|
+
t1535 = t1546 == t1534
|
114
|
+
t1746 = t1546 == t1745
|
115
|
+
t1953 = col_el_288 > t1551
|
116
|
+
t1742 = t1746 && t1953
|
117
|
+
t1531 = t1535 || t1742
|
118
|
+
t293 = t1531 ? t1555 : t1551
|
119
119
|
out_1 << t293
|
120
120
|
end
|
121
121
|
out << out_1
|
@@ -1,5 +1,5 @@
|
|
1
1
|
# Autogenerated by Kumi Codegen
|
2
|
-
module Kumi::Compiled::
|
2
|
+
module Kumi::Compiled::KUMI_4e4f9566d9352274f495237eba94db9f3e1adbd90a662adbf7fe95ea0f69a167
|
3
3
|
def self.from(input_data = nil)
|
4
4
|
instance = Object.new
|
5
5
|
instance.extend(self)
|
@@ -1,14 +1,13 @@
|
|
1
1
|
schema do
|
2
|
-
|
3
2
|
input do
|
4
3
|
integer :width
|
5
4
|
integer :height
|
6
5
|
end
|
7
6
|
|
8
7
|
value :meta, {
|
9
|
-
render:
|
10
|
-
size:
|
8
|
+
render: "grid2d",
|
9
|
+
size: { width: input.width, height: input.height },
|
11
10
|
prefill: { kind: "random", density: 0.3 },
|
12
|
-
ui:
|
11
|
+
ui: { cellSize: 10, palette: { "0" => "#0f1219", "1" => "#10b981" } }
|
13
12
|
}
|
14
|
-
end
|
13
|
+
end
|
@@ -1,5 +1,5 @@
|
|
1
1
|
# Autogenerated by Kumi Codegen
|
2
|
-
module Kumi::Compiled::
|
2
|
+
module Kumi::Compiled::KUMI_fd932eb31ef5d8b70116040cd0486f4121722e78554059fd6a300f28ee18b30d
|
3
3
|
def self.from(input_data = nil)
|
4
4
|
instance = Object.new
|
5
5
|
instance.extend(self)
|
@@ -57,19 +57,19 @@
|
|
57
57
|
loop offices id=L13 in %t46 as el=%offices_el_47, idx=%offices_i_48
|
58
58
|
%t49 = load_field offices_el_47["teams"] :: any
|
59
59
|
loop teams id=L14 in %t49 as el=%teams_el_50, idx=%teams_i_51
|
60
|
-
%t52 = load_field teams_el_50["employees"] :: any
|
61
|
-
%t88 = load_input "regions" :: array
|
62
|
-
%t89 = load_field regions_el_44["offices"] :: any
|
63
|
-
%t90 = load_field offices_el_47["teams"] :: any
|
64
|
-
%t91 = load_field teams_el_50["performance_score"] :: float
|
65
|
-
%t92 = const 0.9 :: float
|
66
|
-
%t93 = call core.gte(%t91, %t92) :: boolean
|
67
60
|
%t88 = load_input "regions" :: array
|
68
61
|
%t89 = load_field regions_el_44["offices"] :: any
|
69
62
|
%t90 = load_field offices_el_47["teams"] :: any
|
70
63
|
%t91 = load_field teams_el_50["performance_score"] :: float
|
71
64
|
%t92 = const 0.9 :: float
|
72
65
|
%t93 = call core.gte(%t91, %t92) :: boolean
|
66
|
+
%t101 = load_input "regions" :: array
|
67
|
+
%t102 = load_field regions_el_44["offices"] :: any
|
68
|
+
%t103 = load_field offices_el_47["teams"] :: any
|
69
|
+
%t104 = load_field teams_el_50["performance_score"] :: float
|
70
|
+
%t105 = const 0.9 :: float
|
71
|
+
%t106 = call core.gte(%t104, %t105) :: boolean
|
72
|
+
%t52 = load_field teams_el_50["employees"] :: any
|
73
73
|
loop employees id=L15 in %t52 as el=%employees_el_53, idx=%employees_i_54
|
74
74
|
%t74 = load_input "regions" :: array
|
75
75
|
%t75 = load_field regions_el_44["offices"] :: any
|
@@ -90,14 +90,14 @@
|
|
90
90
|
%t60 = load_field employees_el_53["salary"] :: float
|
91
91
|
%t61 = const 0.3 :: float
|
92
92
|
%t62 = call core.mul(%t60, %t61) :: float
|
93
|
-
%
|
94
|
-
%
|
95
|
-
%
|
96
|
-
%
|
97
|
-
%
|
98
|
-
%
|
99
|
-
%
|
100
|
-
%t65 = call core.and(%
|
93
|
+
%t94 = load_input "regions" :: array
|
94
|
+
%t95 = load_field regions_el_44["offices"] :: any
|
95
|
+
%t96 = load_field offices_el_47["teams"] :: any
|
96
|
+
%t97 = load_field teams_el_50["employees"] :: any
|
97
|
+
%t98 = load_field employees_el_53["rating"] :: float
|
98
|
+
%t99 = const 4.5 :: float
|
99
|
+
%t100 = call core.gte(%t98, %t99) :: boolean
|
100
|
+
%t65 = call core.and(%t100, %t106) :: boolean
|
101
101
|
%t66 = load_field employees_el_53["salary"] :: float
|
102
102
|
%t67 = const 0.2 :: float
|
103
103
|
%t68 = call core.mul(%t66, %t67) :: float
|
@@ -57,10 +57,10 @@
|
|
57
57
|
loop offices id=L13 in %t46 as el=%offices_el_47, idx=%offices_i_48
|
58
58
|
%t49 = load_field offices_el_47["teams"] :: any
|
59
59
|
loop teams id=L14 in %t49 as el=%teams_el_50, idx=%teams_i_51
|
60
|
-
%t52 = load_field teams_el_50["employees"] :: any
|
61
60
|
%t91 = load_field teams_el_50["performance_score"] :: float
|
62
61
|
%t92 = const 0.9 :: float
|
63
62
|
%t93 = call core.gte(%t91, %t92) :: boolean
|
63
|
+
%t52 = load_field teams_el_50["employees"] :: any
|
64
64
|
loop employees id=L15 in %t52 as el=%employees_el_53, idx=%employees_i_54
|
65
65
|
%t78 = load_field employees_el_53["rating"] :: float
|
66
66
|
%t79 = const 4.5 :: float
|
@@ -57,10 +57,10 @@
|
|
57
57
|
loop offices id=L13 in %t46 as el=%offices_el_47, idx=%offices_i_48
|
58
58
|
%t49 = load_field offices_el_47["teams"] :: any
|
59
59
|
loop teams id=L14 in %t49 as el=%teams_el_50, idx=%teams_i_51
|
60
|
-
%t52 = load_field teams_el_50["employees"] :: any
|
61
60
|
%t91 = load_field teams_el_50["performance_score"] :: float
|
62
61
|
%t92 = const 0.9 :: float
|
63
62
|
%t93 = call core.gte(%t91, %t92) :: boolean
|
63
|
+
%t52 = load_field teams_el_50["employees"] :: any
|
64
64
|
loop employees id=L15 in %t52 as el=%employees_el_53, idx=%employees_i_54
|
65
65
|
%t78 = load_field employees_el_53["rating"] :: float
|
66
66
|
%t79 = const 4.5 :: float
|
@@ -63,9 +63,9 @@
|
|
63
63
|
loop offices id=L13 in %t46 as el=%offices_el_47, idx=%offices_i_48
|
64
64
|
%t49 = load_field offices_el_47["teams"] :: any
|
65
65
|
loop teams id=L14 in %t49 as el=%teams_el_50, idx=%teams_i_51
|
66
|
-
%t52 = load_field teams_el_50["employees"] :: any
|
67
66
|
%t91 = load_field teams_el_50["performance_score"] :: float
|
68
67
|
%t93 = call core.gte(%t91, %t92) :: boolean
|
68
|
+
%t52 = load_field teams_el_50["employees"] :: any
|
69
69
|
loop employees id=L15 in %t52 as el=%employees_el_53, idx=%employees_i_54
|
70
70
|
%t78 = load_field employees_el_53["rating"] :: float
|
71
71
|
%t80 = call core.gte(%t78, %t79) :: boolean
|
@@ -63,9 +63,9 @@
|
|
63
63
|
loop offices id=L13 in %t46 as el=%offices_el_47, idx=%offices_i_48
|
64
64
|
%t49 = load_field offices_el_47["teams"] :: any
|
65
65
|
loop teams id=L14 in %t49 as el=%teams_el_50, idx=%teams_i_51
|
66
|
-
%t52 = load_field teams_el_50["employees"] :: any
|
67
66
|
%t91 = load_field teams_el_50["performance_score"] :: float
|
68
67
|
%t93 = call core.gte(%t91, %t92) :: boolean
|
68
|
+
%t52 = load_field teams_el_50["employees"] :: any
|
69
69
|
loop employees id=L15 in %t52 as el=%employees_el_53, idx=%employees_i_54
|
70
70
|
%t78 = load_field employees_el_53["rating"] :: float
|
71
71
|
%t80 = call core.gte(%t78, %t79) :: boolean
|
@@ -91,9 +91,9 @@ export function _employee_bonus(input) {
|
|
91
91
|
let t49 = offices_el_47["teams"];
|
92
92
|
t49.forEach((teams_el_50, teams_i_51) => {
|
93
93
|
let out_3 = [];
|
94
|
-
let t52 = teams_el_50["employees"];
|
95
94
|
let t91 = teams_el_50["performance_score"];
|
96
95
|
let t93 = t91 >= t92;
|
96
|
+
let t52 = teams_el_50["employees"];
|
97
97
|
t52.forEach((employees_el_53, employees_i_54) => {
|
98
98
|
let t78 = employees_el_53["rating"];
|
99
99
|
let t80 = t78 >= t79;
|
@@ -1,5 +1,5 @@
|
|
1
1
|
# Autogenerated by Kumi Codegen
|
2
|
-
module Kumi::Compiled::
|
2
|
+
module Kumi::Compiled::KUMI_296703f629e169ee9916ee2652186a615448b14fbf3dd810f07f800ec23e2706
|
3
3
|
def self.from(input_data = nil)
|
4
4
|
instance = Object.new
|
5
5
|
instance.extend(self)
|
@@ -121,9 +121,9 @@ module Kumi::Compiled::KUMI_c564c8cb0e8f3b1664084790b1d9c36eaf7d0cbbee56b7211f75
|
|
121
121
|
t49 = offices_el_47["teams"] || offices_el_47[:teams]
|
122
122
|
t49.each_with_index do |teams_el_50, teams_i_51|
|
123
123
|
out_3 = []
|
124
|
-
t52 = teams_el_50["employees"] || teams_el_50[:employees]
|
125
124
|
t91 = teams_el_50["performance_score"] || teams_el_50[:performance_score]
|
126
125
|
t93 = t91 >= t92
|
126
|
+
t52 = teams_el_50["employees"] || teams_el_50[:employees]
|
127
127
|
t52.each_with_index do |employees_el_53, employees_i_54|
|
128
128
|
t78 = employees_el_53["rating"] || employees_el_53[:rating]
|
129
129
|
t80 = t78 >= t79
|
@@ -0,0 +1,48 @@
|
|
1
|
+
(Root
|
2
|
+
inputs: [
|
3
|
+
(InputDeclaration :xs :array
|
4
|
+
[
|
5
|
+
(InputDeclaration :el :hash
|
6
|
+
[
|
7
|
+
(InputDeclaration :v :float)
|
8
|
+
]
|
9
|
+
)
|
10
|
+
]
|
11
|
+
)
|
12
|
+
(InputDeclaration :ys :array
|
13
|
+
[
|
14
|
+
(InputDeclaration :el :hash
|
15
|
+
[
|
16
|
+
(InputDeclaration :v :float)
|
17
|
+
]
|
18
|
+
)
|
19
|
+
]
|
20
|
+
)
|
21
|
+
]
|
22
|
+
values: [
|
23
|
+
(ValueDeclaration :sum_x
|
24
|
+
(CallExpression :sum
|
25
|
+
(InputElementReference xs.el.v)
|
26
|
+
)
|
27
|
+
)
|
28
|
+
(ValueDeclaration :sum_y
|
29
|
+
(CallExpression :sum
|
30
|
+
(InputElementReference ys.el.v)
|
31
|
+
)
|
32
|
+
)
|
33
|
+
(ValueDeclaration :tail
|
34
|
+
(CallExpression :add
|
35
|
+
(Literal 7.0)
|
36
|
+
(Literal 5.0)
|
37
|
+
)
|
38
|
+
)
|
39
|
+
(ValueDeclaration :out
|
40
|
+
(HashExpression
|
41
|
+
((Literal :x) (DeclarationReference :sum_x))
|
42
|
+
((Literal :y) (DeclarationReference :sum_y))
|
43
|
+
((Literal :t) (DeclarationReference :tail))
|
44
|
+
)
|
45
|
+
)
|
46
|
+
]
|
47
|
+
traits: []
|
48
|
+
)
|
@@ -0,0 +1,35 @@
|
|
1
|
+
(LIR
|
2
|
+
(Declaration sum_x
|
3
|
+
%acc_1 = decl_acc :: float
|
4
|
+
%t2 = load_input "xs" :: array
|
5
|
+
loop xs id=L1 in %t2 as el=%xs_el_3, idx=%xs_i_4
|
6
|
+
%t5 = load_field xs_el_3["v"] :: float
|
7
|
+
%acc_1 = acc_add agg.sum(%acc_1, %t5) :: float
|
8
|
+
end_loop
|
9
|
+
%t6 = acc_load %acc_1 :: float
|
10
|
+
yield %t6
|
11
|
+
)
|
12
|
+
(Declaration sum_y
|
13
|
+
%acc_7 = decl_acc :: float
|
14
|
+
%t8 = load_input "ys" :: array
|
15
|
+
loop ys id=L2 in %t8 as el=%ys_el_9, idx=%ys_i_10
|
16
|
+
%t11 = load_field ys_el_9["v"] :: float
|
17
|
+
%acc_7 = acc_add agg.sum(%acc_7, %t11) :: float
|
18
|
+
end_loop
|
19
|
+
%t12 = acc_load %acc_7 :: float
|
20
|
+
yield %t12
|
21
|
+
)
|
22
|
+
(Declaration tail
|
23
|
+
%t13 = const 7.0 :: float
|
24
|
+
%t14 = const 5.0 :: float
|
25
|
+
%t15 = call core.add(%t13, %t14) :: float
|
26
|
+
yield %t15
|
27
|
+
)
|
28
|
+
(Declaration out
|
29
|
+
%t16 = load_decl sum_x :: float
|
30
|
+
%t17 = load_decl sum_y :: float
|
31
|
+
%t18 = load_decl tail :: float
|
32
|
+
%t19 = make_object{x: %t16, y: %t17, t: %t18} :: object
|
33
|
+
yield %t19
|
34
|
+
)
|
35
|
+
)
|