kumi 0.0.24 → 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.
Files changed (108) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +5 -0
  3. data/golden/array_element/expected/schema_ruby.rb +1 -1
  4. data/golden/array_index/expected/schema_ruby.rb +1 -1
  5. data/golden/array_operations/expected/schema_ruby.rb +1 -1
  6. data/golden/cascade_logic/expected/lir_02_inlined.txt +8 -8
  7. data/golden/cascade_logic/expected/schema_ruby.rb +1 -1
  8. data/golden/chained_fusion/expected/lir_02_inlined.txt +36 -36
  9. data/golden/chained_fusion/expected/lir_03_cse.txt +23 -23
  10. data/golden/chained_fusion/expected/lir_04_1_loop_fusion.txt +25 -25
  11. data/golden/chained_fusion/expected/lir_04_loop_invcm.txt +23 -23
  12. data/golden/chained_fusion/expected/lir_06_const_prop.txt +23 -23
  13. data/golden/chained_fusion/expected/schema_javascript.mjs +23 -23
  14. data/golden/chained_fusion/expected/schema_ruby.rb +28 -28
  15. data/golden/element_arrays/expected/schema_ruby.rb +1 -1
  16. data/golden/empty_and_null_inputs/expected/lir_02_inlined.txt +18 -18
  17. data/golden/empty_and_null_inputs/expected/lir_03_cse.txt +17 -17
  18. data/golden/empty_and_null_inputs/expected/lir_04_1_loop_fusion.txt +17 -17
  19. data/golden/empty_and_null_inputs/expected/lir_04_loop_invcm.txt +17 -17
  20. data/golden/empty_and_null_inputs/expected/lir_06_const_prop.txt +17 -17
  21. data/golden/empty_and_null_inputs/expected/schema_javascript.mjs +13 -13
  22. data/golden/empty_and_null_inputs/expected/schema_ruby.rb +18 -18
  23. data/golden/game_of_life/expected/lir_02_inlined.txt +1291 -1291
  24. data/golden/game_of_life/expected/lir_03_cse.txt +396 -396
  25. data/golden/game_of_life/expected/lir_04_1_loop_fusion.txt +396 -396
  26. data/golden/game_of_life/expected/lir_04_loop_invcm.txt +396 -396
  27. data/golden/game_of_life/expected/lir_06_const_prop.txt +396 -396
  28. data/golden/game_of_life/expected/schema_javascript.mjs +85 -85
  29. data/golden/game_of_life/expected/schema_ruby.rb +86 -86
  30. data/golden/hash_keys/expected/schema_ruby.rb +1 -1
  31. data/golden/hash_value/expected/schema_ruby.rb +1 -1
  32. data/golden/hierarchical_complex/expected/lir_02_inlined.txt +15 -15
  33. data/golden/hierarchical_complex/expected/lir_03_cse.txt +1 -1
  34. data/golden/hierarchical_complex/expected/lir_04_1_loop_fusion.txt +1 -1
  35. data/golden/hierarchical_complex/expected/lir_04_loop_invcm.txt +1 -1
  36. data/golden/hierarchical_complex/expected/lir_06_const_prop.txt +1 -1
  37. data/golden/hierarchical_complex/expected/schema_javascript.mjs +1 -1
  38. data/golden/hierarchical_complex/expected/schema_ruby.rb +2 -2
  39. data/golden/inline_rename_scope_leak/expected/schema_ruby.rb +1 -1
  40. data/golden/input_reference/expected/schema_ruby.rb +1 -1
  41. data/golden/interleaved_fusion/expected/lir_02_inlined.txt +35 -35
  42. data/golden/interleaved_fusion/expected/lir_03_cse.txt +26 -26
  43. data/golden/interleaved_fusion/expected/lir_04_1_loop_fusion.txt +27 -26
  44. data/golden/interleaved_fusion/expected/lir_04_loop_invcm.txt +26 -26
  45. data/golden/interleaved_fusion/expected/lir_06_const_prop.txt +26 -26
  46. data/golden/interleaved_fusion/expected/schema_javascript.mjs +23 -23
  47. data/golden/interleaved_fusion/expected/schema_ruby.rb +29 -29
  48. data/golden/let_inline/expected/schema_ruby.rb +1 -1
  49. data/golden/loop_fusion/expected/lir_02_inlined.txt +17 -17
  50. data/golden/loop_fusion/expected/lir_03_cse.txt +14 -14
  51. data/golden/loop_fusion/expected/lir_04_1_loop_fusion.txt +14 -14
  52. data/golden/loop_fusion/expected/lir_04_loop_invcm.txt +14 -14
  53. data/golden/loop_fusion/expected/lir_06_const_prop.txt +14 -14
  54. data/golden/loop_fusion/expected/schema_javascript.mjs +12 -12
  55. data/golden/loop_fusion/expected/schema_ruby.rb +16 -16
  56. data/golden/min_reduce_scope/expected/schema_ruby.rb +1 -1
  57. data/golden/mixed_dimensions/expected/lir_02_inlined.txt +5 -5
  58. data/golden/mixed_dimensions/expected/lir_03_cse.txt +5 -5
  59. data/golden/mixed_dimensions/expected/lir_04_1_loop_fusion.txt +5 -5
  60. data/golden/mixed_dimensions/expected/lir_04_loop_invcm.txt +5 -5
  61. data/golden/mixed_dimensions/expected/lir_06_const_prop.txt +5 -5
  62. data/golden/mixed_dimensions/expected/schema_javascript.mjs +3 -3
  63. data/golden/mixed_dimensions/expected/schema_ruby.rb +6 -6
  64. data/golden/multirank_hoisting/expected/lir_02_inlined.txt +48 -48
  65. data/golden/multirank_hoisting/expected/lir_03_cse.txt +35 -35
  66. data/golden/multirank_hoisting/expected/lir_04_1_loop_fusion.txt +35 -35
  67. data/golden/multirank_hoisting/expected/lir_04_loop_invcm.txt +35 -35
  68. data/golden/multirank_hoisting/expected/lir_06_const_prop.txt +35 -35
  69. data/golden/multirank_hoisting/expected/schema_javascript.mjs +34 -34
  70. data/golden/multirank_hoisting/expected/schema_ruby.rb +36 -36
  71. data/golden/nested_hash/expected/schema_ruby.rb +1 -1
  72. data/golden/reduction_broadcast/expected/lir_02_inlined.txt +30 -30
  73. data/golden/reduction_broadcast/expected/lir_03_cse.txt +22 -22
  74. data/golden/reduction_broadcast/expected/lir_04_1_loop_fusion.txt +22 -22
  75. data/golden/reduction_broadcast/expected/lir_04_loop_invcm.txt +22 -22
  76. data/golden/reduction_broadcast/expected/lir_06_const_prop.txt +22 -22
  77. data/golden/reduction_broadcast/expected/schema_javascript.mjs +18 -18
  78. data/golden/reduction_broadcast/expected/schema_ruby.rb +23 -23
  79. data/golden/roll/expected/schema_ruby.rb +1 -1
  80. data/golden/shift/expected/schema_ruby.rb +1 -1
  81. data/golden/shift_2d/expected/schema_ruby.rb +1 -1
  82. data/golden/simple_math/expected/schema_ruby.rb +1 -1
  83. data/golden/streaming_basics/expected/lir_02_inlined.txt +25 -25
  84. data/golden/streaming_basics/expected/lir_03_cse.txt +13 -13
  85. data/golden/streaming_basics/expected/lir_04_1_loop_fusion.txt +13 -13
  86. data/golden/streaming_basics/expected/lir_04_loop_invcm.txt +13 -13
  87. data/golden/streaming_basics/expected/lir_06_const_prop.txt +13 -13
  88. data/golden/streaming_basics/expected/schema_javascript.mjs +13 -13
  89. data/golden/streaming_basics/expected/schema_ruby.rb +14 -14
  90. data/golden/tuples/expected/schema_ruby.rb +1 -1
  91. data/golden/tuples_and_arrays/expected/lir_02_inlined.txt +16 -16
  92. data/golden/tuples_and_arrays/expected/lir_03_cse.txt +13 -13
  93. data/golden/tuples_and_arrays/expected/lir_04_1_loop_fusion.txt +13 -13
  94. data/golden/tuples_and_arrays/expected/lir_04_loop_invcm.txt +13 -13
  95. data/golden/tuples_and_arrays/expected/lir_06_const_prop.txt +13 -13
  96. data/golden/tuples_and_arrays/expected/schema_javascript.mjs +13 -13
  97. data/golden/tuples_and_arrays/expected/schema_ruby.rb +14 -14
  98. data/golden/us_tax_2024/expected/lir_02_inlined.txt +524 -524
  99. data/golden/us_tax_2024/expected/lir_03_cse.txt +283 -283
  100. data/golden/us_tax_2024/expected/lir_04_1_loop_fusion.txt +283 -283
  101. data/golden/us_tax_2024/expected/lir_04_loop_invcm.txt +320 -260
  102. data/golden/us_tax_2024/expected/lir_06_const_prop.txt +320 -260
  103. data/golden/us_tax_2024/expected/schema_javascript.mjs +24 -24
  104. data/golden/us_tax_2024/expected/schema_ruby.rb +25 -25
  105. data/golden/with_constants/expected/schema_ruby.rb +1 -1
  106. data/lib/kumi/core/analyzer/passes/lir/inline_declarations_pass.rb +118 -74
  107. data/lib/kumi/version.rb +1 -1
  108. metadata +1 -1
@@ -29,19 +29,19 @@
29
29
  end_loop
30
30
  )
31
31
  (Declaration elem_affine
32
+ %t66 = load_input "global_offset" :: float
33
+ %t67 = const 1.0 :: float
34
+ %t68 = call core.add(%t66, %t67) :: float
32
35
  %t19 = load_input "batch" :: array
33
36
  loop batch id=L4 in %t19 as el=%batch_el_20, idx=%batch_i_21
37
+ %t64 = load_field batch_el_20["mean"] :: float
34
38
  %t22 = load_field batch_el_20["row"] :: any
35
- %t81 = load_input "global_offset" :: float
36
- %t82 = const 1.0 :: float
37
- %t83 = call core.add(%t81, %t82) :: float
39
+ %t65 = call core.add(%t64, %t68) :: float
38
40
  loop row id=L5 in %t22 as el=%row_el_23, idx=%row_i_24
39
- %t25 = load_field row_el_23["col"] :: any
40
41
  %t59 = load_field row_el_23["scale"] :: float
41
42
  %t60 = const 2.0 :: float
42
43
  %t61 = call core.mul(%t59, %t60) :: float
43
- %t64 = load_field batch_el_20["mean"] :: float
44
- %t65 = call core.add(%t64, %t83) :: float
44
+ %t25 = load_field row_el_23["col"] :: any
45
45
  loop col id=L6 in %t25 as el=%col_el_26, idx=%col_i_27
46
46
  %t28 = load_field col_el_26["val"] :: float
47
47
  %t30 = call core.mul(%t28, %t61) :: float
@@ -52,25 +52,25 @@
52
52
  end_loop
53
53
  )
54
54
  (Declaration row_sum_affine
55
+ %t86 = load_input "global_offset" :: float
56
+ %t87 = const 1.0 :: float
57
+ %t88 = call core.add(%t86, %t87) :: float
55
58
  %t33 = load_input "batch" :: array
56
59
  loop batch id=L7 in %t33 as el=%batch_el_34, idx=%batch_i_35
60
+ %t84 = load_field batch_el_34["mean"] :: float
57
61
  %t36 = load_field batch_el_34["row"] :: any
62
+ %t85 = call core.add(%t84, %t88) :: float
58
63
  loop row id=L8 in %t36 as el=%row_el_37, idx=%row_i_38
64
+ %t79 = load_field row_el_37["scale"] :: float
65
+ %t80 = const 2.0 :: float
66
+ %t81 = call core.mul(%t79, %t80) :: float
59
67
  %acc_39 = decl_acc :: float
60
68
  %t40 = load_field row_el_37["col"] :: any
61
- %t86 = load_field row_el_37["scale"] :: float
62
- %t87 = const 2.0 :: float
63
- %t88 = call core.mul(%t86, %t87) :: float
64
- %t90 = load_input "global_offset" :: float
65
- %t91 = const 1.0 :: float
66
- %t92 = call core.add(%t90, %t91) :: float
67
- %t93 = load_field batch_el_34["mean"] :: float
68
- %t94 = call core.add(%t93, %t92) :: float
69
69
  loop col id=L9 in %t40 as el=%col_el_41, idx=%col_i_42
70
- %t69 = load_field col_el_41["val"] :: float
71
- %t71 = call core.mul(%t69, %t88) :: float
72
- %t73 = call core.add(%t71, %t94) :: float
73
- %acc_39 = acc_add agg.sum(%acc_39, %t73) :: float
70
+ %t72 = load_field col_el_41["val"] :: float
71
+ %t74 = call core.mul(%t72, %t81) :: float
72
+ %t76 = call core.add(%t74, %t85) :: float
73
+ %acc_39 = acc_add agg.sum(%acc_39, %t76) :: float
74
74
  end_loop
75
75
  %t44 = acc_load %acc_39 :: float
76
76
  yield %t44
@@ -78,29 +78,29 @@
78
78
  end_loop
79
79
  )
80
80
  (Declaration batch_total_affine
81
+ %t115 = load_input "global_offset" :: float
82
+ %t116 = const 1.0 :: float
83
+ %t117 = call core.add(%t115, %t116) :: float
81
84
  %t45 = load_input "batch" :: array
82
85
  loop batch id=L10 in %t45 as el=%batch_el_46, idx=%batch_i_47
86
+ %t113 = load_field batch_el_46["mean"] :: float
83
87
  %acc_48 = decl_acc :: float
84
88
  %t49 = load_field batch_el_46["row"] :: any
89
+ %t114 = call core.add(%t113, %t117) :: float
85
90
  loop row id=L11 in %t49 as el=%row_el_50, idx=%row_i_51
86
- %acc77 = decl_acc :: float
87
- %t78 = load_field row_el_50["col"] :: any
88
- %t110 = load_input "global_offset" :: float
89
- %t111 = const 1.0 :: float
90
- %t112 = call core.add(%t110, %t111) :: float
91
- loop col id=L12 in %t78 as el=%col_el_41, idx=%col_i_42
92
- %t100 = load_field row_el_50["scale"] :: float
93
- %t101 = const 2.0 :: float
94
- %t102 = call core.mul(%t100, %t101) :: float
95
- %t105 = load_field batch_el_46["mean"] :: float
96
- %t106 = call core.add(%t105, %t112) :: float
97
- %t107 = load_field col_el_41["val"] :: float
98
- %t108 = call core.mul(%t107, %t102) :: float
99
- %t109 = call core.add(%t108, %t106) :: float
100
- %acc77 = acc_add agg.sum(%acc77, %t109) :: float
91
+ %t108 = load_field row_el_50["scale"] :: float
92
+ %t109 = const 2.0 :: float
93
+ %t110 = call core.mul(%t108, %t109) :: float
94
+ %acc92 = decl_acc :: float
95
+ %t93 = load_field row_el_50["col"] :: any
96
+ loop col id=L12 in %t93 as el=%t94, idx=%t95
97
+ %t101 = load_field t94["val"] :: float
98
+ %t103 = call core.mul(%t101, %t110) :: float
99
+ %t105 = call core.add(%t103, %t114) :: float
100
+ %acc92 = acc_add agg.sum(%acc92, %t105) :: float
101
101
  end_loop
102
- %t80 = acc_load %acc77 :: float
103
- %acc_48 = acc_add agg.sum(%acc_48, %t80) :: float
102
+ %t97 = acc_load %acc92 :: float
103
+ %acc_48 = acc_add agg.sum(%acc_48, %t97) :: float
104
104
  end_loop
105
105
  %t53 = acc_load %acc_48 :: float
106
106
  yield %t53
@@ -29,19 +29,19 @@
29
29
  end_loop
30
30
  )
31
31
  (Declaration elem_affine
32
+ %t66 = load_input "global_offset" :: float
33
+ %t67 = const 1.0 :: float
34
+ %t68 = call core.add(%t66, %t67) :: float
32
35
  %t19 = load_input "batch" :: array
33
- %t81 = load_input "global_offset" :: float
34
- %t82 = const 1.0 :: float
35
36
  %t60 = const 2.0 :: float
36
- %t83 = call core.add(%t81, %t82) :: float
37
37
  loop batch id=L4 in %t19 as el=%batch_el_20, idx=%batch_i_21
38
- %t22 = load_field batch_el_20["row"] :: any
39
38
  %t64 = load_field batch_el_20["mean"] :: float
40
- %t65 = call core.add(%t64, %t83) :: float
39
+ %t22 = load_field batch_el_20["row"] :: any
40
+ %t65 = call core.add(%t64, %t68) :: float
41
41
  loop row id=L5 in %t22 as el=%row_el_23, idx=%row_i_24
42
- %t25 = load_field row_el_23["col"] :: any
43
42
  %t59 = load_field row_el_23["scale"] :: float
44
43
  %t61 = call core.mul(%t59, %t60) :: float
44
+ %t25 = load_field row_el_23["col"] :: any
45
45
  loop col id=L6 in %t25 as el=%col_el_26, idx=%col_i_27
46
46
  %t28 = load_field col_el_26["val"] :: float
47
47
  %t30 = call core.mul(%t28, %t61) :: float
@@ -52,25 +52,25 @@
52
52
  end_loop
53
53
  )
54
54
  (Declaration row_sum_affine
55
+ %t86 = load_input "global_offset" :: float
56
+ %t87 = const 1.0 :: float
57
+ %t88 = call core.add(%t86, %t87) :: float
55
58
  %t33 = load_input "batch" :: array
56
- %t87 = const 2.0 :: float
57
- %t90 = load_input "global_offset" :: float
58
- %t91 = const 1.0 :: float
59
- %t92 = call core.add(%t90, %t91) :: float
59
+ %t80 = const 2.0 :: float
60
60
  loop batch id=L7 in %t33 as el=%batch_el_34, idx=%batch_i_35
61
+ %t84 = load_field batch_el_34["mean"] :: float
61
62
  %t36 = load_field batch_el_34["row"] :: any
62
- %t93 = load_field batch_el_34["mean"] :: float
63
- %t94 = call core.add(%t93, %t92) :: float
63
+ %t85 = call core.add(%t84, %t88) :: float
64
64
  loop row id=L8 in %t36 as el=%row_el_37, idx=%row_i_38
65
+ %t79 = load_field row_el_37["scale"] :: float
66
+ %t81 = call core.mul(%t79, %t80) :: float
65
67
  %acc_39 = decl_acc :: float
66
68
  %t40 = load_field row_el_37["col"] :: any
67
- %t86 = load_field row_el_37["scale"] :: float
68
- %t88 = call core.mul(%t86, %t87) :: float
69
69
  loop col id=L9 in %t40 as el=%col_el_41, idx=%col_i_42
70
- %t69 = load_field col_el_41["val"] :: float
71
- %t71 = call core.mul(%t69, %t88) :: float
72
- %t73 = call core.add(%t71, %t94) :: float
73
- %acc_39 = acc_add agg.sum(%acc_39, %t73) :: float
70
+ %t72 = load_field col_el_41["val"] :: float
71
+ %t74 = call core.mul(%t72, %t81) :: float
72
+ %t76 = call core.add(%t74, %t85) :: float
73
+ %acc_39 = acc_add agg.sum(%acc_39, %t76) :: float
74
74
  end_loop
75
75
  %t44 = acc_load %acc_39 :: float
76
76
  yield %t44
@@ -78,29 +78,29 @@
78
78
  end_loop
79
79
  )
80
80
  (Declaration batch_total_affine
81
+ %t115 = load_input "global_offset" :: float
82
+ %t116 = const 1.0 :: float
83
+ %t117 = call core.add(%t115, %t116) :: float
81
84
  %t45 = load_input "batch" :: array
82
- %t110 = load_input "global_offset" :: float
83
- %t111 = const 1.0 :: float
84
- %t101 = const 2.0 :: float
85
- %t112 = call core.add(%t110, %t111) :: float
85
+ %t109 = const 2.0 :: float
86
86
  loop batch id=L10 in %t45 as el=%batch_el_46, idx=%batch_i_47
87
+ %t113 = load_field batch_el_46["mean"] :: float
87
88
  %acc_48 = decl_acc :: float
88
89
  %t49 = load_field batch_el_46["row"] :: any
89
- %t105 = load_field batch_el_46["mean"] :: float
90
- %t106 = call core.add(%t105, %t112) :: float
90
+ %t114 = call core.add(%t113, %t117) :: float
91
91
  loop row id=L11 in %t49 as el=%row_el_50, idx=%row_i_51
92
- %acc77 = decl_acc :: float
93
- %t78 = load_field row_el_50["col"] :: any
94
- %t100 = load_field row_el_50["scale"] :: float
95
- %t102 = call core.mul(%t100, %t101) :: float
96
- loop col id=L12 in %t78 as el=%col_el_41, idx=%col_i_42
97
- %t107 = load_field col_el_41["val"] :: float
98
- %t108 = call core.mul(%t107, %t102) :: float
99
- %t109 = call core.add(%t108, %t106) :: float
100
- %acc77 = acc_add agg.sum(%acc77, %t109) :: float
92
+ %t108 = load_field row_el_50["scale"] :: float
93
+ %t110 = call core.mul(%t108, %t109) :: float
94
+ %acc92 = decl_acc :: float
95
+ %t93 = load_field row_el_50["col"] :: any
96
+ loop col id=L12 in %t93 as el=%t94, idx=%t95
97
+ %t101 = load_field t94["val"] :: float
98
+ %t103 = call core.mul(%t101, %t110) :: float
99
+ %t105 = call core.add(%t103, %t114) :: float
100
+ %acc92 = acc_add agg.sum(%acc92, %t105) :: float
101
101
  end_loop
102
- %t80 = acc_load %acc77 :: float
103
- %acc_48 = acc_add agg.sum(%acc_48, %t80) :: float
102
+ %t97 = acc_load %acc92 :: float
103
+ %acc_48 = acc_add agg.sum(%acc_48, %t97) :: float
104
104
  end_loop
105
105
  %t53 = acc_load %acc_48 :: float
106
106
  yield %t53
@@ -29,19 +29,19 @@
29
29
  end_loop
30
30
  )
31
31
  (Declaration elem_affine
32
+ %t66 = load_input "global_offset" :: float
33
+ %t67 = const 1.0 :: float
34
+ %t68 = call core.add(%t66, %t67) :: float
32
35
  %t19 = load_input "batch" :: array
33
- %t81 = load_input "global_offset" :: float
34
- %t82 = const 1.0 :: float
35
36
  %t60 = const 2.0 :: float
36
- %t83 = call core.add(%t81, %t82) :: float
37
37
  loop batch id=L4 in %t19 as el=%batch_el_20, idx=%batch_i_21
38
- %t22 = load_field batch_el_20["row"] :: any
39
38
  %t64 = load_field batch_el_20["mean"] :: float
40
- %t65 = call core.add(%t64, %t83) :: float
39
+ %t22 = load_field batch_el_20["row"] :: any
40
+ %t65 = call core.add(%t64, %t68) :: float
41
41
  loop row id=L5 in %t22 as el=%row_el_23, idx=%row_i_24
42
- %t25 = load_field row_el_23["col"] :: any
43
42
  %t59 = load_field row_el_23["scale"] :: float
44
43
  %t61 = call core.mul(%t59, %t60) :: float
44
+ %t25 = load_field row_el_23["col"] :: any
45
45
  loop col id=L6 in %t25 as el=%col_el_26, idx=%col_i_27
46
46
  %t28 = load_field col_el_26["val"] :: float
47
47
  %t30 = call core.mul(%t28, %t61) :: float
@@ -52,25 +52,25 @@
52
52
  end_loop
53
53
  )
54
54
  (Declaration row_sum_affine
55
+ %t86 = load_input "global_offset" :: float
56
+ %t87 = const 1.0 :: float
57
+ %t88 = call core.add(%t86, %t87) :: float
55
58
  %t33 = load_input "batch" :: array
56
- %t87 = const 2.0 :: float
57
- %t90 = load_input "global_offset" :: float
58
- %t91 = const 1.0 :: float
59
- %t92 = call core.add(%t90, %t91) :: float
59
+ %t80 = const 2.0 :: float
60
60
  loop batch id=L7 in %t33 as el=%batch_el_34, idx=%batch_i_35
61
+ %t84 = load_field batch_el_34["mean"] :: float
61
62
  %t36 = load_field batch_el_34["row"] :: any
62
- %t93 = load_field batch_el_34["mean"] :: float
63
- %t94 = call core.add(%t93, %t92) :: float
63
+ %t85 = call core.add(%t84, %t88) :: float
64
64
  loop row id=L8 in %t36 as el=%row_el_37, idx=%row_i_38
65
+ %t79 = load_field row_el_37["scale"] :: float
66
+ %t81 = call core.mul(%t79, %t80) :: float
65
67
  %acc_39 = decl_acc :: float
66
68
  %t40 = load_field row_el_37["col"] :: any
67
- %t86 = load_field row_el_37["scale"] :: float
68
- %t88 = call core.mul(%t86, %t87) :: float
69
69
  loop col id=L9 in %t40 as el=%col_el_41, idx=%col_i_42
70
- %t69 = load_field col_el_41["val"] :: float
71
- %t71 = call core.mul(%t69, %t88) :: float
72
- %t73 = call core.add(%t71, %t94) :: float
73
- %acc_39 = acc_add agg.sum(%acc_39, %t73) :: float
70
+ %t72 = load_field col_el_41["val"] :: float
71
+ %t74 = call core.mul(%t72, %t81) :: float
72
+ %t76 = call core.add(%t74, %t85) :: float
73
+ %acc_39 = acc_add agg.sum(%acc_39, %t76) :: float
74
74
  end_loop
75
75
  %t44 = acc_load %acc_39 :: float
76
76
  yield %t44
@@ -78,29 +78,29 @@
78
78
  end_loop
79
79
  )
80
80
  (Declaration batch_total_affine
81
+ %t115 = load_input "global_offset" :: float
82
+ %t116 = const 1.0 :: float
83
+ %t117 = call core.add(%t115, %t116) :: float
81
84
  %t45 = load_input "batch" :: array
82
- %t110 = load_input "global_offset" :: float
83
- %t111 = const 1.0 :: float
84
- %t101 = const 2.0 :: float
85
- %t112 = call core.add(%t110, %t111) :: float
85
+ %t109 = const 2.0 :: float
86
86
  loop batch id=L10 in %t45 as el=%batch_el_46, idx=%batch_i_47
87
+ %t113 = load_field batch_el_46["mean"] :: float
87
88
  %acc_48 = decl_acc :: float
88
89
  %t49 = load_field batch_el_46["row"] :: any
89
- %t105 = load_field batch_el_46["mean"] :: float
90
- %t106 = call core.add(%t105, %t112) :: float
90
+ %t114 = call core.add(%t113, %t117) :: float
91
91
  loop row id=L11 in %t49 as el=%row_el_50, idx=%row_i_51
92
- %acc77 = decl_acc :: float
93
- %t78 = load_field row_el_50["col"] :: any
94
- %t100 = load_field row_el_50["scale"] :: float
95
- %t102 = call core.mul(%t100, %t101) :: float
96
- loop col id=L12 in %t78 as el=%col_el_41, idx=%col_i_42
97
- %t107 = load_field col_el_41["val"] :: float
98
- %t108 = call core.mul(%t107, %t102) :: float
99
- %t109 = call core.add(%t108, %t106) :: float
100
- %acc77 = acc_add agg.sum(%acc77, %t109) :: float
92
+ %t108 = load_field row_el_50["scale"] :: float
93
+ %t110 = call core.mul(%t108, %t109) :: float
94
+ %acc92 = decl_acc :: float
95
+ %t93 = load_field row_el_50["col"] :: any
96
+ loop col id=L12 in %t93 as el=%t94, idx=%t95
97
+ %t101 = load_field t94["val"] :: float
98
+ %t103 = call core.mul(%t101, %t110) :: float
99
+ %t105 = call core.add(%t103, %t114) :: float
100
+ %acc92 = acc_add agg.sum(%acc92, %t105) :: float
101
101
  end_loop
102
- %t80 = acc_load %acc77 :: float
103
- %acc_48 = acc_add agg.sum(%acc_48, %t80) :: float
102
+ %t97 = acc_load %acc92 :: float
103
+ %acc_48 = acc_add agg.sum(%acc_48, %t97) :: float
104
104
  end_loop
105
105
  %t53 = acc_load %acc_48 :: float
106
106
  yield %t53
@@ -38,21 +38,21 @@ export function _row_scale2(input) {
38
38
 
39
39
  export function _elem_affine(input) {
40
40
  let out = [];
41
+ let t66 = input["global_offset"];
42
+ const t67 = 1.0;
43
+ let t68 = t66 + t67;
41
44
  let t19 = input["batch"];
42
- let t81 = input["global_offset"];
43
- const t82 = 1.0;
44
45
  const t60 = 2.0;
45
- let t83 = t81 + t82;
46
46
  t19.forEach((batch_el_20, batch_i_21) => {
47
47
  let out_1 = [];
48
- let t22 = batch_el_20["row"];
49
48
  let t64 = batch_el_20["mean"];
50
- let t65 = t64 + t83;
49
+ let t22 = batch_el_20["row"];
50
+ let t65 = t64 + t68;
51
51
  t22.forEach((row_el_23, row_i_24) => {
52
52
  let out_2 = [];
53
- let t25 = row_el_23["col"];
54
53
  let t59 = row_el_23["scale"];
55
54
  let t61 = t59 * t60;
55
+ let t25 = row_el_23["col"];
56
56
  t25.forEach((col_el_26, col_i_27) => {
57
57
  let t28 = col_el_26["val"];
58
58
  let t30 = t28 * t61;
@@ -68,26 +68,26 @@ export function _elem_affine(input) {
68
68
 
69
69
  export function _row_sum_affine(input) {
70
70
  let out = [];
71
+ let t86 = input["global_offset"];
72
+ const t87 = 1.0;
73
+ let t88 = t86 + t87;
71
74
  let t33 = input["batch"];
72
- const t87 = 2.0;
73
- let t90 = input["global_offset"];
74
- const t91 = 1.0;
75
- let t92 = t90 + t91;
75
+ const t80 = 2.0;
76
76
  t33.forEach((batch_el_34, batch_i_35) => {
77
77
  let out_1 = [];
78
+ let t84 = batch_el_34["mean"];
78
79
  let t36 = batch_el_34["row"];
79
- let t93 = batch_el_34["mean"];
80
- let t94 = t93 + t92;
80
+ let t85 = t84 + t88;
81
81
  t36.forEach((row_el_37, row_i_38) => {
82
+ let t79 = row_el_37["scale"];
83
+ let t81 = t79 * t80;
82
84
  let acc_39 = 0.0;
83
85
  let t40 = row_el_37["col"];
84
- let t86 = row_el_37["scale"];
85
- let t88 = t86 * t87;
86
86
  t40.forEach((col_el_41, col_i_42) => {
87
- let t69 = col_el_41["val"];
88
- let t71 = t69 * t88;
89
- let t73 = t71 + t94;
90
- acc_39 += t73;
87
+ let t72 = col_el_41["val"];
88
+ let t74 = t72 * t81;
89
+ let t76 = t74 + t85;
90
+ acc_39 += t76;
91
91
  });
92
92
  out_1.push(acc_39);
93
93
  });
@@ -98,28 +98,28 @@ export function _row_sum_affine(input) {
98
98
 
99
99
  export function _batch_total_affine(input) {
100
100
  let out = [];
101
+ let t115 = input["global_offset"];
102
+ const t116 = 1.0;
103
+ let t117 = t115 + t116;
101
104
  let t45 = input["batch"];
102
- let t110 = input["global_offset"];
103
- const t111 = 1.0;
104
- const t101 = 2.0;
105
- let t112 = t110 + t111;
105
+ const t109 = 2.0;
106
106
  t45.forEach((batch_el_46, batch_i_47) => {
107
+ let t113 = batch_el_46["mean"];
107
108
  let acc_48 = 0.0;
108
109
  let t49 = batch_el_46["row"];
109
- let t105 = batch_el_46["mean"];
110
- let t106 = t105 + t112;
110
+ let t114 = t113 + t117;
111
111
  t49.forEach((row_el_50, row_i_51) => {
112
- let acc77 = 0.0;
113
- let t78 = row_el_50["col"];
114
- let t100 = row_el_50["scale"];
115
- let t102 = t100 * t101;
116
- t78.forEach((col_el_41, col_i_42) => {
117
- let t107 = col_el_41["val"];
118
- let t108 = t107 * t102;
119
- let t109 = t108 + t106;
120
- acc77 += t109;
112
+ let t108 = row_el_50["scale"];
113
+ let t110 = t108 * t109;
114
+ let acc92 = 0.0;
115
+ let t93 = row_el_50["col"];
116
+ t93.forEach((t94, t95) => {
117
+ let t101 = t94["val"];
118
+ let t103 = t101 * t110;
119
+ let t105 = t103 + t114;
120
+ acc92 += t105;
121
121
  });
122
- acc_48 += acc77;
122
+ acc_48 += acc92;
123
123
  });
124
124
  out.push(acc_48);
125
125
  });
@@ -1,5 +1,5 @@
1
1
  # Autogenerated by Kumi Codegen
2
- module Kumi::Compiled::KUMI_e0419fbf641de528f8d1c03f124e177804f1a04ed69561ff0fe20f04192a818b
2
+ module Kumi::Compiled::KUMI_7493f45c6a56b6958f928d8337e155ecf85850b56acef5a72dee8f1f697d1aac
3
3
  def self.from(input_data = nil)
4
4
  instance = Object.new
5
5
  instance.extend(self)
@@ -69,21 +69,21 @@ module Kumi::Compiled::KUMI_e0419fbf641de528f8d1c03f124e177804f1a04ed69561ff0fe2
69
69
 
70
70
  def _elem_affine(input = @input)
71
71
  out = []
72
+ t66 = input["global_offset"] || input[:global_offset]
73
+ t67 = 1.0
74
+ t68 = t66 + t67
72
75
  t19 = input["batch"] || input[:batch]
73
- t81 = input["global_offset"] || input[:global_offset]
74
- t82 = 1.0
75
76
  t60 = 2.0
76
- t83 = t81 + t82
77
77
  t19.each_with_index do |batch_el_20, batch_i_21|
78
78
  out_1 = []
79
- t22 = batch_el_20["row"] || batch_el_20[:row]
80
79
  t64 = batch_el_20["mean"] || batch_el_20[:mean]
81
- t65 = t64 + t83
80
+ t22 = batch_el_20["row"] || batch_el_20[:row]
81
+ t65 = t64 + t68
82
82
  t22.each_with_index do |row_el_23, row_i_24|
83
83
  out_2 = []
84
- t25 = row_el_23["col"] || row_el_23[:col]
85
84
  t59 = row_el_23["scale"] || row_el_23[:scale]
86
85
  t61 = t59 * t60
86
+ t25 = row_el_23["col"] || row_el_23[:col]
87
87
  t25.each_with_index do |col_el_26, col_i_27|
88
88
  t28 = col_el_26["val"] || col_el_26[:val]
89
89
  t30 = t28 * t61
@@ -99,26 +99,26 @@ module Kumi::Compiled::KUMI_e0419fbf641de528f8d1c03f124e177804f1a04ed69561ff0fe2
99
99
 
100
100
  def _row_sum_affine(input = @input)
101
101
  out = []
102
+ t86 = input["global_offset"] || input[:global_offset]
103
+ t87 = 1.0
104
+ t88 = t86 + t87
102
105
  t33 = input["batch"] || input[:batch]
103
- t87 = 2.0
104
- t90 = input["global_offset"] || input[:global_offset]
105
- t91 = 1.0
106
- t92 = t90 + t91
106
+ t80 = 2.0
107
107
  t33.each_with_index do |batch_el_34, batch_i_35|
108
108
  out_1 = []
109
+ t84 = batch_el_34["mean"] || batch_el_34[:mean]
109
110
  t36 = batch_el_34["row"] || batch_el_34[:row]
110
- t93 = batch_el_34["mean"] || batch_el_34[:mean]
111
- t94 = t93 + t92
111
+ t85 = t84 + t88
112
112
  t36.each_with_index do |row_el_37, row_i_38|
113
+ t79 = row_el_37["scale"] || row_el_37[:scale]
114
+ t81 = t79 * t80
113
115
  acc_39 = 0.0
114
116
  t40 = row_el_37["col"] || row_el_37[:col]
115
- t86 = row_el_37["scale"] || row_el_37[:scale]
116
- t88 = t86 * t87
117
117
  t40.each_with_index do |col_el_41, col_i_42|
118
- t69 = col_el_41["val"] || col_el_41[:val]
119
- t71 = t69 * t88
120
- t73 = t71 + t94
121
- acc_39 += t73
118
+ t72 = col_el_41["val"] || col_el_41[:val]
119
+ t74 = t72 * t81
120
+ t76 = t74 + t85
121
+ acc_39 += t76
122
122
  end
123
123
  t44 = acc_39
124
124
  out_1 << t44
@@ -130,29 +130,29 @@ module Kumi::Compiled::KUMI_e0419fbf641de528f8d1c03f124e177804f1a04ed69561ff0fe2
130
130
 
131
131
  def _batch_total_affine(input = @input)
132
132
  out = []
133
+ t115 = input["global_offset"] || input[:global_offset]
134
+ t116 = 1.0
135
+ t117 = t115 + t116
133
136
  t45 = input["batch"] || input[:batch]
134
- t110 = input["global_offset"] || input[:global_offset]
135
- t111 = 1.0
136
- t101 = 2.0
137
- t112 = t110 + t111
137
+ t109 = 2.0
138
138
  t45.each_with_index do |batch_el_46, batch_i_47|
139
+ t113 = batch_el_46["mean"] || batch_el_46[:mean]
139
140
  acc_48 = 0.0
140
141
  t49 = batch_el_46["row"] || batch_el_46[:row]
141
- t105 = batch_el_46["mean"] || batch_el_46[:mean]
142
- t106 = t105 + t112
142
+ t114 = t113 + t117
143
143
  t49.each_with_index do |row_el_50, row_i_51|
144
- acc77 = 0.0
145
- t78 = row_el_50["col"] || row_el_50[:col]
146
- t100 = row_el_50["scale"] || row_el_50[:scale]
147
- t102 = t100 * t101
148
- t78.each_with_index do |col_el_41, col_i_42|
149
- t107 = col_el_41["val"] || col_el_41[:val]
150
- t108 = t107 * t102
151
- t109 = t108 + t106
152
- acc77 += t109
144
+ t108 = row_el_50["scale"] || row_el_50[:scale]
145
+ t110 = t108 * t109
146
+ acc92 = 0.0
147
+ t93 = row_el_50["col"] || row_el_50[:col]
148
+ t93.each_with_index do |t94, t95|
149
+ t101 = t94["val"] || t94[:val]
150
+ t103 = t101 * t110
151
+ t105 = t103 + t114
152
+ acc92 += t105
153
153
  end
154
- t80 = acc77
155
- acc_48 += t80
154
+ t97 = acc92
155
+ acc_48 += t97
156
156
  end
157
157
  t53 = acc_48
158
158
  out << t53
@@ -1,5 +1,5 @@
1
1
  # Autogenerated by Kumi Codegen
2
- module Kumi::Compiled::KUMI_3b954603dedc568d2f576b3345109d43555583c88706a3dbe86f8e07cbcfdeb4
2
+ module Kumi::Compiled::KUMI_06206c81b13d30ba2dfe33471a73d550acd8ceaaed39c3bc060cd965ef719e19
3
3
  def self.from(input_data = nil)
4
4
  instance = Object.new
5
5
  instance.extend(self)
@@ -31,48 +31,48 @@
31
31
  %t34 = load_input "departments" :: array
32
32
  %acc36 = decl_acc :: integer
33
33
  %t37 = load_field departments_el_20["teams"] :: any
34
- loop teams id=L8 in %t37 as el=%teams_el_6, idx=%teams_i_7
35
- %t38 = load_field teams_el_6["headcount"] :: integer
36
- %acc36 = acc_add agg.sum(%acc36, %t38) :: integer
34
+ loop teams id=L8 in %t37 as el=%t38, idx=%t39
35
+ %t40 = load_field t38["headcount"] :: integer
36
+ %acc36 = acc_add agg.sum(%acc36, %t40) :: integer
37
37
  end_loop
38
- %t39 = acc_load %acc36 :: integer
39
- %t40 = load_input "departments" :: array
40
- %acc42 = decl_acc :: integer
41
- %t43 = load_field departments_el_20["teams"] :: any
42
- loop teams id=L9 in %t43 as el=%teams_el_15, idx=%teams_i_16
43
- %t44 = load_field teams_el_15["team_name"] :: string
44
- %acc42 = acc_add agg.count(%acc42, %t44) :: integer
38
+ %t41 = acc_load %acc36 :: integer
39
+ %t42 = load_input "departments" :: array
40
+ %acc44 = decl_acc :: integer
41
+ %t45 = load_field departments_el_20["teams"] :: any
42
+ loop teams id=L9 in %t45 as el=%t46, idx=%t47
43
+ %t48 = load_field t46["team_name"] :: string
44
+ %acc44 = acc_add agg.count(%acc44, %t48) :: integer
45
45
  end_loop
46
- %t45 = acc_load %acc42 :: integer
47
- %t24 = call core.div(%t39, %t45) :: float
46
+ %t49 = acc_load %acc44 :: integer
47
+ %t24 = call core.div(%t41, %t49) :: float
48
48
  yield %t24
49
49
  end_loop
50
50
  )
51
51
  (Declaration is_above_average_team
52
52
  %t25 = load_input "departments" :: array
53
53
  loop departments id=L6 in %t25 as el=%departments_el_26, idx=%departments_i_27
54
- %t28 = load_field departments_el_26["teams"] :: any
55
- %t46 = load_input "departments" :: array
56
- %t50 = load_input "departments" :: array
57
- %acc52 = decl_acc :: integer
58
- %t53 = load_field departments_el_26["teams"] :: any
59
- loop teams id=L10 in %t53 as el=%teams_el_6, idx=%teams_i_7
60
- %t54 = load_field teams_el_6["headcount"] :: integer
61
- %acc52 = acc_add agg.sum(%acc52, %t54) :: integer
54
+ %t54 = load_input "departments" :: array
55
+ %acc56 = decl_acc :: integer
56
+ %t57 = load_field departments_el_26["teams"] :: any
57
+ loop teams id=L10 in %t57 as el=%t58, idx=%t59
58
+ %t60 = load_field t58["headcount"] :: integer
59
+ %acc56 = acc_add agg.sum(%acc56, %t60) :: integer
62
60
  end_loop
63
- %t55 = acc_load %acc52 :: integer
64
- %t56 = load_input "departments" :: array
65
- %acc58 = decl_acc :: integer
66
- %t59 = load_field departments_el_26["teams"] :: any
67
- loop teams id=L11 in %t59 as el=%teams_el_15, idx=%teams_i_16
68
- %t60 = load_field teams_el_15["team_name"] :: string
69
- %acc58 = acc_add agg.count(%acc58, %t60) :: integer
61
+ %t61 = acc_load %acc56 :: integer
62
+ %t62 = load_input "departments" :: array
63
+ %acc64 = decl_acc :: integer
64
+ %t65 = load_field departments_el_26["teams"] :: any
65
+ loop teams id=L11 in %t65 as el=%t66, idx=%t67
66
+ %t68 = load_field t66["team_name"] :: string
67
+ %acc64 = acc_add agg.count(%acc64, %t68) :: integer
70
68
  end_loop
71
- %t61 = acc_load %acc58 :: integer
72
- %t49 = call core.div(%t55, %t61) :: float
69
+ %t69 = acc_load %acc64 :: integer
70
+ %t50 = load_input "departments" :: array
71
+ %t53 = call core.div(%t61, %t69) :: float
72
+ %t28 = load_field departments_el_26["teams"] :: any
73
73
  loop teams id=L7 in %t28 as el=%teams_el_29, idx=%teams_i_30
74
74
  %t31 = load_field teams_el_29["headcount"] :: integer
75
- %t33 = call core.gt(%t31, %t49) :: boolean
75
+ %t33 = call core.gt(%t31, %t53) :: boolean
76
76
  yield %t33
77
77
  end_loop
78
78
  end_loop