kumi 0.0.27 → 0.0.28

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 (137) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +10 -0
  3. data/README.md +24 -9
  4. data/data/functions/core/arithmetic.yaml +28 -8
  5. data/data/functions/core/boolean.yaml +8 -3
  6. data/data/functions/core/comparison.yaml +12 -4
  7. data/data/kernels/javascript/core/arithmetic.yaml +6 -2
  8. data/data/kernels/ruby/core/arithmetic.yaml +7 -2
  9. data/golden/array_element/expected/schema_ruby.rb +1 -1
  10. data/golden/array_index/expected/lir_00_unoptimized.txt +2 -2
  11. data/golden/array_index/expected/lir_01_hoist_scalar_references.txt +2 -2
  12. data/golden/array_index/expected/lir_02_inlined.txt +2 -2
  13. data/golden/array_index/expected/lir_03_cse.txt +2 -2
  14. data/golden/array_index/expected/lir_04_1_loop_fusion.txt +2 -2
  15. data/golden/array_index/expected/lir_04_loop_invcm.txt +2 -2
  16. data/golden/array_index/expected/lir_06_const_prop.txt +2 -2
  17. data/golden/array_index/expected/schema_ruby.rb +1 -1
  18. data/golden/array_index/expected/snast.txt +2 -2
  19. data/golden/array_operations/expected/lir_00_unoptimized.txt +2 -2
  20. data/golden/array_operations/expected/lir_01_hoist_scalar_references.txt +2 -2
  21. data/golden/array_operations/expected/lir_02_inlined.txt +2 -2
  22. data/golden/array_operations/expected/lir_03_cse.txt +2 -2
  23. data/golden/array_operations/expected/lir_04_1_loop_fusion.txt +2 -2
  24. data/golden/array_operations/expected/lir_04_loop_invcm.txt +2 -2
  25. data/golden/array_operations/expected/lir_06_const_prop.txt +2 -2
  26. data/golden/array_operations/expected/schema_ruby.rb +1 -1
  27. data/golden/array_operations/expected/snast.txt +2 -2
  28. data/golden/cascade_logic/expected/schema_ruby.rb +1 -1
  29. data/golden/chained_fusion/expected/schema_ruby.rb +1 -1
  30. data/golden/decimal_explicit/expected/lir_00_unoptimized.txt +2 -2
  31. data/golden/decimal_explicit/expected/lir_01_hoist_scalar_references.txt +2 -2
  32. data/golden/decimal_explicit/expected/lir_02_inlined.txt +6 -6
  33. data/golden/decimal_explicit/expected/lir_03_cse.txt +5 -5
  34. data/golden/decimal_explicit/expected/lir_04_1_loop_fusion.txt +5 -5
  35. data/golden/decimal_explicit/expected/lir_04_loop_invcm.txt +5 -5
  36. data/golden/decimal_explicit/expected/lir_06_const_prop.txt +5 -5
  37. data/golden/decimal_explicit/expected/schema_ruby.rb +1 -1
  38. data/golden/decimal_explicit/expected/snast.txt +2 -2
  39. data/golden/element_arrays/expected/schema_ruby.rb +1 -1
  40. data/golden/empty_and_null_inputs/expected/schema_ruby.rb +1 -1
  41. data/golden/function_overload/expected/schema_ruby.rb +1 -1
  42. data/golden/game_of_life/expected/schema_ruby.rb +1 -1
  43. data/golden/hash_keys/expected/schema_ruby.rb +1 -1
  44. data/golden/hash_value/expected/schema_ruby.rb +1 -1
  45. data/golden/hierarchical_complex/expected/lir_00_unoptimized.txt +3 -3
  46. data/golden/hierarchical_complex/expected/lir_01_hoist_scalar_references.txt +3 -3
  47. data/golden/hierarchical_complex/expected/lir_02_inlined.txt +3 -3
  48. data/golden/hierarchical_complex/expected/lir_03_cse.txt +3 -3
  49. data/golden/hierarchical_complex/expected/lir_04_1_loop_fusion.txt +3 -3
  50. data/golden/hierarchical_complex/expected/lir_04_loop_invcm.txt +3 -3
  51. data/golden/hierarchical_complex/expected/lir_06_const_prop.txt +3 -3
  52. data/golden/hierarchical_complex/expected/schema_ruby.rb +1 -1
  53. data/golden/hierarchical_complex/expected/snast.txt +3 -3
  54. data/golden/inline_rename_scope_leak/expected/schema_ruby.rb +1 -1
  55. data/golden/input_reference/expected/schema_ruby.rb +1 -1
  56. data/golden/interleaved_fusion/expected/lir_00_unoptimized.txt +1 -1
  57. data/golden/interleaved_fusion/expected/lir_01_hoist_scalar_references.txt +1 -1
  58. data/golden/interleaved_fusion/expected/lir_02_inlined.txt +2 -2
  59. data/golden/interleaved_fusion/expected/lir_03_cse.txt +2 -2
  60. data/golden/interleaved_fusion/expected/lir_04_1_loop_fusion.txt +2 -2
  61. data/golden/interleaved_fusion/expected/lir_04_loop_invcm.txt +2 -2
  62. data/golden/interleaved_fusion/expected/lir_06_const_prop.txt +2 -2
  63. data/golden/interleaved_fusion/expected/schema_ruby.rb +1 -1
  64. data/golden/interleaved_fusion/expected/snast.txt +1 -1
  65. data/golden/let_inline/expected/lir_00_unoptimized.txt +2 -2
  66. data/golden/let_inline/expected/lir_01_hoist_scalar_references.txt +2 -2
  67. data/golden/let_inline/expected/lir_02_inlined.txt +6 -6
  68. data/golden/let_inline/expected/lir_03_cse.txt +6 -6
  69. data/golden/let_inline/expected/lir_04_1_loop_fusion.txt +6 -6
  70. data/golden/let_inline/expected/lir_04_loop_invcm.txt +6 -6
  71. data/golden/let_inline/expected/lir_06_const_prop.txt +6 -6
  72. data/golden/let_inline/expected/schema_ruby.rb +1 -1
  73. data/golden/let_inline/expected/snast.txt +2 -2
  74. data/golden/loop_fusion/expected/schema_ruby.rb +1 -1
  75. data/golden/min_reduce_scope/expected/schema_ruby.rb +1 -1
  76. data/golden/mixed_dimensions/expected/schema_ruby.rb +1 -1
  77. data/golden/multirank_hoisting/expected/lir_00_unoptimized.txt +2 -2
  78. data/golden/multirank_hoisting/expected/lir_01_hoist_scalar_references.txt +2 -2
  79. data/golden/multirank_hoisting/expected/lir_02_inlined.txt +7 -7
  80. data/golden/multirank_hoisting/expected/lir_03_cse.txt +7 -7
  81. data/golden/multirank_hoisting/expected/lir_04_1_loop_fusion.txt +7 -7
  82. data/golden/multirank_hoisting/expected/lir_04_loop_invcm.txt +7 -7
  83. data/golden/multirank_hoisting/expected/lir_06_const_prop.txt +7 -7
  84. data/golden/multirank_hoisting/expected/schema_ruby.rb +1 -1
  85. data/golden/multirank_hoisting/expected/snast.txt +2 -2
  86. data/golden/nested_hash/expected/lir_00_unoptimized.txt +1 -1
  87. data/golden/nested_hash/expected/lir_01_hoist_scalar_references.txt +1 -1
  88. data/golden/nested_hash/expected/lir_02_inlined.txt +1 -1
  89. data/golden/nested_hash/expected/lir_03_cse.txt +1 -1
  90. data/golden/nested_hash/expected/lir_04_1_loop_fusion.txt +1 -1
  91. data/golden/nested_hash/expected/lir_04_loop_invcm.txt +1 -1
  92. data/golden/nested_hash/expected/lir_06_const_prop.txt +1 -1
  93. data/golden/nested_hash/expected/schema_ruby.rb +1 -1
  94. data/golden/nested_hash/expected/snast.txt +1 -1
  95. data/golden/reduction_broadcast/expected/schema_ruby.rb +1 -1
  96. data/golden/roll/expected/schema_ruby.rb +1 -1
  97. data/golden/shift/expected/schema_ruby.rb +1 -1
  98. data/golden/shift_2d/expected/schema_ruby.rb +1 -1
  99. data/golden/simple_math/expected/lir_00_unoptimized.txt +2 -2
  100. data/golden/simple_math/expected/lir_01_hoist_scalar_references.txt +2 -2
  101. data/golden/simple_math/expected/lir_02_inlined.txt +2 -2
  102. data/golden/simple_math/expected/lir_03_cse.txt +2 -2
  103. data/golden/simple_math/expected/lir_04_1_loop_fusion.txt +2 -2
  104. data/golden/simple_math/expected/lir_04_loop_invcm.txt +2 -2
  105. data/golden/simple_math/expected/lir_06_const_prop.txt +2 -2
  106. data/golden/simple_math/expected/schema_ruby.rb +1 -1
  107. data/golden/simple_math/expected/snast.txt +2 -2
  108. data/golden/streaming_basics/expected/lir_00_unoptimized.txt +3 -3
  109. data/golden/streaming_basics/expected/lir_01_hoist_scalar_references.txt +3 -3
  110. data/golden/streaming_basics/expected/lir_02_inlined.txt +9 -9
  111. data/golden/streaming_basics/expected/lir_03_cse.txt +7 -7
  112. data/golden/streaming_basics/expected/lir_04_1_loop_fusion.txt +7 -7
  113. data/golden/streaming_basics/expected/lir_04_loop_invcm.txt +7 -7
  114. data/golden/streaming_basics/expected/lir_06_const_prop.txt +7 -7
  115. data/golden/streaming_basics/expected/schema_ruby.rb +1 -1
  116. data/golden/streaming_basics/expected/snast.txt +3 -3
  117. data/golden/tuples/expected/schema_ruby.rb +1 -1
  118. data/golden/tuples_and_arrays/expected/schema_ruby.rb +1 -1
  119. data/golden/us_tax_2024/expected/lir_00_unoptimized.txt +6 -6
  120. data/golden/us_tax_2024/expected/lir_01_hoist_scalar_references.txt +6 -6
  121. data/golden/us_tax_2024/expected/lir_02_inlined.txt +71 -71
  122. data/golden/us_tax_2024/expected/lir_03_cse.txt +43 -43
  123. data/golden/us_tax_2024/expected/lir_04_1_loop_fusion.txt +48 -48
  124. data/golden/us_tax_2024/expected/lir_04_loop_invcm.txt +43 -43
  125. data/golden/us_tax_2024/expected/lir_06_const_prop.txt +43 -43
  126. data/golden/us_tax_2024/expected/schema_ruby.rb +1 -1
  127. data/golden/us_tax_2024/expected/snast.txt +6 -6
  128. data/golden/with_constants/expected/schema_ruby.rb +1 -1
  129. data/lib/kumi/core/analyzer/passes/nast_dimensional_analyzer_pass.rb +1 -1
  130. data/lib/kumi/core/error_reporter.rb +1 -1
  131. data/lib/kumi/core/errors.rb +1 -1
  132. data/lib/kumi/core/functions/overload_resolver.rb +57 -11
  133. data/lib/kumi/core/functions/type_categories.rb +44 -0
  134. data/lib/kumi/frontends/text.rb +33 -5
  135. data/lib/kumi/syntax/location.rb +5 -1
  136. data/lib/kumi/version.rb +1 -1
  137. metadata +2 -1
@@ -1,27 +1,27 @@
1
1
  (LIR
2
2
  (Declaration x_sq
3
3
  %t1 = load_input "x" :: integer
4
- %t3 = call core.mul(%t1, %t1) :: integer
4
+ %t3 = call core.mul:numeric(%t1, %t1) :: integer
5
5
  yield %t3
6
6
  )
7
7
  (Declaration y_sq
8
8
  %t4 = load_input "y" :: integer
9
- %t6 = call core.mul(%t4, %t4) :: integer
9
+ %t6 = call core.mul:numeric(%t4, %t4) :: integer
10
10
  yield %t6
11
11
  )
12
12
  (Declaration distance_sq
13
13
  %t13 = load_input "x" :: integer
14
- %t15 = call core.mul(%t13, %t13) :: integer
14
+ %t15 = call core.mul:numeric(%t13, %t13) :: integer
15
15
  %t16 = load_input "y" :: integer
16
- %t18 = call core.mul(%t16, %t16) :: integer
16
+ %t18 = call core.mul:numeric(%t16, %t16) :: integer
17
17
  %t9 = call core.add(%t15, %t18) :: integer
18
18
  yield %t9
19
19
  )
20
20
  (Declaration distance
21
21
  %t22 = load_input "x" :: integer
22
- %t24 = call core.mul(%t22, %t22) :: integer
22
+ %t24 = call core.mul:numeric(%t22, %t22) :: integer
23
23
  %t25 = load_input "y" :: integer
24
- %t27 = call core.mul(%t25, %t25) :: integer
24
+ %t27 = call core.mul:numeric(%t25, %t25) :: integer
25
25
  %t21 = call core.add(%t24, %t27) :: integer
26
26
  %t11 = const 0.5 :: float
27
27
  %t12 = call core.pow(%t21, %t11) :: float
@@ -1,27 +1,27 @@
1
1
  (LIR
2
2
  (Declaration x_sq
3
3
  %t1 = load_input "x" :: integer
4
- %t3 = call core.mul(%t1, %t1) :: integer
4
+ %t3 = call core.mul:numeric(%t1, %t1) :: integer
5
5
  yield %t3
6
6
  )
7
7
  (Declaration y_sq
8
8
  %t4 = load_input "y" :: integer
9
- %t6 = call core.mul(%t4, %t4) :: integer
9
+ %t6 = call core.mul:numeric(%t4, %t4) :: integer
10
10
  yield %t6
11
11
  )
12
12
  (Declaration distance_sq
13
13
  %t13 = load_input "x" :: integer
14
- %t15 = call core.mul(%t13, %t13) :: integer
14
+ %t15 = call core.mul:numeric(%t13, %t13) :: integer
15
15
  %t16 = load_input "y" :: integer
16
- %t18 = call core.mul(%t16, %t16) :: integer
16
+ %t18 = call core.mul:numeric(%t16, %t16) :: integer
17
17
  %t9 = call core.add(%t15, %t18) :: integer
18
18
  yield %t9
19
19
  )
20
20
  (Declaration distance
21
21
  %t22 = load_input "x" :: integer
22
- %t24 = call core.mul(%t22, %t22) :: integer
22
+ %t24 = call core.mul:numeric(%t22, %t22) :: integer
23
23
  %t25 = load_input "y" :: integer
24
- %t27 = call core.mul(%t25, %t25) :: integer
24
+ %t27 = call core.mul:numeric(%t25, %t25) :: integer
25
25
  %t21 = call core.add(%t24, %t27) :: integer
26
26
  %t11 = const 0.5 :: float
27
27
  %t12 = call core.pow(%t21, %t11) :: float
@@ -1,27 +1,27 @@
1
1
  (LIR
2
2
  (Declaration x_sq
3
3
  %t1 = load_input "x" :: integer
4
- %t3 = call core.mul(%t1, %t1) :: integer
4
+ %t3 = call core.mul:numeric(%t1, %t1) :: integer
5
5
  yield %t3
6
6
  )
7
7
  (Declaration y_sq
8
8
  %t4 = load_input "y" :: integer
9
- %t6 = call core.mul(%t4, %t4) :: integer
9
+ %t6 = call core.mul:numeric(%t4, %t4) :: integer
10
10
  yield %t6
11
11
  )
12
12
  (Declaration distance_sq
13
13
  %t13 = load_input "x" :: integer
14
- %t15 = call core.mul(%t13, %t13) :: integer
14
+ %t15 = call core.mul:numeric(%t13, %t13) :: integer
15
15
  %t16 = load_input "y" :: integer
16
- %t18 = call core.mul(%t16, %t16) :: integer
16
+ %t18 = call core.mul:numeric(%t16, %t16) :: integer
17
17
  %t9 = call core.add(%t15, %t18) :: integer
18
18
  yield %t9
19
19
  )
20
20
  (Declaration distance
21
21
  %t22 = load_input "x" :: integer
22
- %t24 = call core.mul(%t22, %t22) :: integer
22
+ %t24 = call core.mul:numeric(%t22, %t22) :: integer
23
23
  %t25 = load_input "y" :: integer
24
- %t27 = call core.mul(%t25, %t25) :: integer
24
+ %t27 = call core.mul:numeric(%t25, %t25) :: integer
25
25
  %t21 = call core.add(%t24, %t27) :: integer
26
26
  %t11 = const 0.5 :: float
27
27
  %t12 = call core.pow(%t21, %t11) :: float
@@ -1,27 +1,27 @@
1
1
  (LIR
2
2
  (Declaration x_sq
3
3
  %t1 = load_input "x" :: integer
4
- %t3 = call core.mul(%t1, %t1) :: integer
4
+ %t3 = call core.mul:numeric(%t1, %t1) :: integer
5
5
  yield %t3
6
6
  )
7
7
  (Declaration y_sq
8
8
  %t4 = load_input "y" :: integer
9
- %t6 = call core.mul(%t4, %t4) :: integer
9
+ %t6 = call core.mul:numeric(%t4, %t4) :: integer
10
10
  yield %t6
11
11
  )
12
12
  (Declaration distance_sq
13
13
  %t13 = load_input "x" :: integer
14
- %t15 = call core.mul(%t13, %t13) :: integer
14
+ %t15 = call core.mul:numeric(%t13, %t13) :: integer
15
15
  %t16 = load_input "y" :: integer
16
- %t18 = call core.mul(%t16, %t16) :: integer
16
+ %t18 = call core.mul:numeric(%t16, %t16) :: integer
17
17
  %t9 = call core.add(%t15, %t18) :: integer
18
18
  yield %t9
19
19
  )
20
20
  (Declaration distance
21
21
  %t22 = load_input "x" :: integer
22
- %t24 = call core.mul(%t22, %t22) :: integer
22
+ %t24 = call core.mul:numeric(%t22, %t22) :: integer
23
23
  %t25 = load_input "y" :: integer
24
- %t27 = call core.mul(%t25, %t25) :: integer
24
+ %t27 = call core.mul:numeric(%t25, %t25) :: integer
25
25
  %t21 = call core.add(%t24, %t27) :: integer
26
26
  %t11 = const 0.5 :: float
27
27
  %t12 = call core.pow(%t21, %t11) :: float
@@ -1,5 +1,5 @@
1
1
  # Autogenerated by Kumi Codegen
2
- module Kumi::Compiled::KUMI_2b17dbaf9b9a1a6c29c795b17daeb9063d83829b4943219762ad8559dc83a981
2
+ module Kumi::Compiled::KUMI_4ba9786339bb3384237482ed7334efcae808cd73eef2823136776301c5bd59b7
3
3
  def self.from(input_data = nil)
4
4
  instance = Object.new
5
5
  instance.extend(self)
@@ -1,12 +1,12 @@
1
1
  (SNAST
2
2
  (VALUE x_sq
3
- (Call :core.mul
3
+ (Call :core.mul:numeric
4
4
  (InputRef x key_chain=[]) :: [] -> integer
5
5
  (InputRef x key_chain=[]) :: [] -> integer
6
6
  ) :: [] -> integer
7
7
  ) :: [] -> integer
8
8
  (VALUE y_sq
9
- (Call :core.mul
9
+ (Call :core.mul:numeric
10
10
  (InputRef y key_chain=[]) :: [] -> integer
11
11
  (InputRef y key_chain=[]) :: [] -> integer
12
12
  ) :: [] -> integer
@@ -1,5 +1,5 @@
1
1
  # Autogenerated by Kumi Codegen
2
- module Kumi::Compiled::KUMI_c70c48b631574cbfe5b913b29ea93654ff17af9d96ab10931647f10c6c674ef9
2
+ module Kumi::Compiled::KUMI_80921fb9abca1f3a8314f3c4a1b2d356c9886ad4e7bbdb54bfeed321ece530e0
3
3
  def self.from(input_data = nil)
4
4
  instance = Object.new
5
5
  instance.extend(self)
@@ -1,5 +1,5 @@
1
1
  # Autogenerated by Kumi Codegen
2
- module Kumi::Compiled::KUMI_b74a41d0d85c1aa450f7dce23ed22ccfcaf13c330101f5c7ee3f7bc4f4c8b5f4
2
+ module Kumi::Compiled::KUMI_5fa2745abc03dd13cf6efc948886e2be28e6babb72ae15765e8095902dfef66f
3
3
  def self.from(input_data = nil)
4
4
  instance = Object.new
5
5
  instance.extend(self)
@@ -1,5 +1,5 @@
1
1
  # Autogenerated by Kumi Codegen
2
- module Kumi::Compiled::KUMI_a97fe62e81ba9ee34e23cf45b64886d02e7547bbc48b5bebd1869492d71c1aa8
2
+ module Kumi::Compiled::KUMI_6632bd2527f41d4c6ee428b793c77441bcb39e57922e972fe2ea1231a40722a7
3
3
  def self.from(input_data = nil)
4
4
  instance = Object.new
5
5
  instance.extend(self)
@@ -21,7 +21,7 @@
21
21
  loop row id=L3 in %t13 as el=%row_el_14, idx=%row_i_15
22
22
  %t16 = load_field row_el_14["scale"] :: float
23
23
  %t17 = const 2.0 :: float
24
- %t18 = call core.mul(%t16, %t17) :: float
24
+ %t18 = call core.mul:numeric(%t16, %t17) :: float
25
25
  yield %t18
26
26
  end_loop
27
27
  end_loop
@@ -35,7 +35,7 @@
35
35
  loop col id=L6 in %t25 as el=%col_el_26, idx=%col_i_27
36
36
  %t28 = load_field col_el_26["val"] :: float
37
37
  %t29 = load_decl row_scale2 axes=[batch, row] :: float
38
- %t30 = call core.mul(%t28, %t29) :: float
38
+ %t30 = call core.mul:numeric(%t28, %t29) :: float
39
39
  %t31 = load_decl batch_bias axes=[batch] :: float
40
40
  %t32 = call core.add(%t30, %t31) :: float
41
41
  yield %t32
@@ -21,7 +21,7 @@
21
21
  loop row id=L3 in %t13 as el=%row_el_14, idx=%row_i_15
22
22
  %t16 = load_field row_el_14["scale"] :: float
23
23
  %t17 = const 2.0 :: float
24
- %t18 = call core.mul(%t16, %t17) :: float
24
+ %t18 = call core.mul:numeric(%t16, %t17) :: float
25
25
  yield %t18
26
26
  end_loop
27
27
  end_loop
@@ -35,7 +35,7 @@
35
35
  loop col id=L6 in %t25 as el=%col_el_26, idx=%col_i_27
36
36
  %t28 = load_field col_el_26["val"] :: float
37
37
  %t29 = load_decl row_scale2 axes=[batch, row] :: float
38
- %t30 = call core.mul(%t28, %t29) :: float
38
+ %t30 = call core.mul:numeric(%t28, %t29) :: float
39
39
  %t31 = load_decl batch_bias axes=[batch] :: float
40
40
  %t32 = call core.add(%t30, %t31) :: float
41
41
  yield %t32
@@ -23,7 +23,7 @@
23
23
  loop row id=L3 in %t13 as el=%row_el_14, idx=%row_i_15
24
24
  %t16 = load_field row_el_14["scale"] :: float
25
25
  %t17 = const 2.0 :: float
26
- %t18 = call core.mul(%t16, %t17) :: float
26
+ %t18 = call core.mul:numeric(%t16, %t17) :: float
27
27
  yield %t18
28
28
  end_loop
29
29
  end_loop
@@ -43,11 +43,11 @@
43
43
  %t58 = load_field batch_el_20["row"] :: any
44
44
  %t59 = load_field row_el_23["scale"] :: float
45
45
  %t60 = const 2.0 :: float
46
- %t61 = call core.mul(%t59, %t60) :: float
46
+ %t61 = call core.mul:numeric(%t59, %t60) :: float
47
47
  %t25 = load_field row_el_23["col"] :: any
48
48
  loop col id=L6 in %t25 as el=%col_el_26, idx=%col_i_27
49
49
  %t28 = load_field col_el_26["val"] :: float
50
- %t30 = call core.mul(%t28, %t61) :: float
50
+ %t30 = call core.mul:numeric(%t28, %t61) :: float
51
51
  %t32 = call core.add(%t30, %t65) :: float
52
52
  yield %t32
53
53
  end_loop
@@ -69,7 +69,7 @@
69
69
  %t78 = load_field batch_el_34["row"] :: any
70
70
  %t79 = load_field row_el_37["scale"] :: float
71
71
  %t80 = const 2.0 :: float
72
- %t81 = call core.mul(%t79, %t80) :: float
72
+ %t81 = call core.mul:numeric(%t79, %t80) :: float
73
73
  %acc_39 = decl_acc :: float
74
74
  %t40 = load_field row_el_37["col"] :: any
75
75
  loop col id=L9 in %t40 as el=%col_el_41, idx=%col_i_42
@@ -77,7 +77,7 @@
77
77
  %t70 = load_field batch_el_34["row"] :: any
78
78
  %t71 = load_field row_el_37["col"] :: any
79
79
  %t72 = load_field col_el_41["val"] :: float
80
- %t74 = call core.mul(%t72, %t81) :: float
80
+ %t74 = call core.mul:numeric(%t72, %t81) :: float
81
81
  %t76 = call core.add(%t74, %t85) :: float
82
82
  %acc_39 = acc_add agg.sum(%acc_39, %t76) :: float
83
83
  end_loop
@@ -102,7 +102,7 @@
102
102
  %t107 = load_field batch_el_46["row"] :: any
103
103
  %t108 = load_field row_el_50["scale"] :: float
104
104
  %t109 = const 2.0 :: float
105
- %t110 = call core.mul(%t108, %t109) :: float
105
+ %t110 = call core.mul:numeric(%t108, %t109) :: float
106
106
  %t89 = load_input "batch" :: array
107
107
  %t90 = load_field batch_el_46["row"] :: any
108
108
  %acc92 = decl_acc :: float
@@ -112,7 +112,7 @@
112
112
  %t99 = load_field batch_el_46["row"] :: any
113
113
  %t100 = load_field row_el_50["col"] :: any
114
114
  %t101 = load_field t94["val"] :: float
115
- %t103 = call core.mul(%t101, %t110) :: float
115
+ %t103 = call core.mul:numeric(%t101, %t110) :: float
116
116
  %t105 = call core.add(%t103, %t114) :: float
117
117
  %acc92 = acc_add agg.sum(%acc92, %t105) :: float
118
118
  end_loop
@@ -23,7 +23,7 @@
23
23
  loop row id=L3 in %t13 as el=%row_el_14, idx=%row_i_15
24
24
  %t16 = load_field row_el_14["scale"] :: float
25
25
  %t17 = const 2.0 :: float
26
- %t18 = call core.mul(%t16, %t17) :: float
26
+ %t18 = call core.mul:numeric(%t16, %t17) :: float
27
27
  yield %t18
28
28
  end_loop
29
29
  end_loop
@@ -40,11 +40,11 @@
40
40
  loop row id=L5 in %t22 as el=%row_el_23, idx=%row_i_24
41
41
  %t59 = load_field row_el_23["scale"] :: float
42
42
  %t60 = const 2.0 :: float
43
- %t61 = call core.mul(%t59, %t60) :: float
43
+ %t61 = call core.mul:numeric(%t59, %t60) :: float
44
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
- %t30 = call core.mul(%t28, %t61) :: float
47
+ %t30 = call core.mul:numeric(%t28, %t61) :: float
48
48
  %t32 = call core.add(%t30, %t65) :: float
49
49
  yield %t32
50
50
  end_loop
@@ -63,12 +63,12 @@
63
63
  loop row id=L8 in %t36 as el=%row_el_37, idx=%row_i_38
64
64
  %t79 = load_field row_el_37["scale"] :: float
65
65
  %t80 = const 2.0 :: float
66
- %t81 = call core.mul(%t79, %t80) :: float
66
+ %t81 = call core.mul:numeric(%t79, %t80) :: float
67
67
  %acc_39 = decl_acc :: float
68
68
  %t40 = load_field row_el_37["col"] :: any
69
69
  loop col id=L9 in %t40 as el=%col_el_41, idx=%col_i_42
70
70
  %t72 = load_field col_el_41["val"] :: float
71
- %t74 = call core.mul(%t72, %t81) :: float
71
+ %t74 = call core.mul:numeric(%t72, %t81) :: float
72
72
  %t76 = call core.add(%t74, %t85) :: float
73
73
  %acc_39 = acc_add agg.sum(%acc_39, %t76) :: float
74
74
  end_loop
@@ -90,12 +90,12 @@
90
90
  loop row id=L11 in %t49 as el=%row_el_50, idx=%row_i_51
91
91
  %t108 = load_field row_el_50["scale"] :: float
92
92
  %t109 = const 2.0 :: float
93
- %t110 = call core.mul(%t108, %t109) :: float
93
+ %t110 = call core.mul:numeric(%t108, %t109) :: float
94
94
  %acc92 = decl_acc :: float
95
95
  %t93 = load_field row_el_50["col"] :: any
96
96
  loop col id=L12 in %t93 as el=%t94, idx=%t95
97
97
  %t101 = load_field t94["val"] :: float
98
- %t103 = call core.mul(%t101, %t110) :: float
98
+ %t103 = call core.mul:numeric(%t101, %t110) :: float
99
99
  %t105 = call core.add(%t103, %t114) :: float
100
100
  %acc92 = acc_add agg.sum(%acc92, %t105) :: float
101
101
  end_loop
@@ -23,7 +23,7 @@
23
23
  loop row id=L3 in %t13 as el=%row_el_14, idx=%row_i_15
24
24
  %t16 = load_field row_el_14["scale"] :: float
25
25
  %t17 = const 2.0 :: float
26
- %t18 = call core.mul(%t16, %t17) :: float
26
+ %t18 = call core.mul:numeric(%t16, %t17) :: float
27
27
  yield %t18
28
28
  end_loop
29
29
  end_loop
@@ -40,11 +40,11 @@
40
40
  loop row id=L5 in %t22 as el=%row_el_23, idx=%row_i_24
41
41
  %t59 = load_field row_el_23["scale"] :: float
42
42
  %t60 = const 2.0 :: float
43
- %t61 = call core.mul(%t59, %t60) :: float
43
+ %t61 = call core.mul:numeric(%t59, %t60) :: float
44
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
- %t30 = call core.mul(%t28, %t61) :: float
47
+ %t30 = call core.mul:numeric(%t28, %t61) :: float
48
48
  %t32 = call core.add(%t30, %t65) :: float
49
49
  yield %t32
50
50
  end_loop
@@ -63,12 +63,12 @@
63
63
  loop row id=L8 in %t36 as el=%row_el_37, idx=%row_i_38
64
64
  %t79 = load_field row_el_37["scale"] :: float
65
65
  %t80 = const 2.0 :: float
66
- %t81 = call core.mul(%t79, %t80) :: float
66
+ %t81 = call core.mul:numeric(%t79, %t80) :: float
67
67
  %acc_39 = decl_acc :: float
68
68
  %t40 = load_field row_el_37["col"] :: any
69
69
  loop col id=L9 in %t40 as el=%col_el_41, idx=%col_i_42
70
70
  %t72 = load_field col_el_41["val"] :: float
71
- %t74 = call core.mul(%t72, %t81) :: float
71
+ %t74 = call core.mul:numeric(%t72, %t81) :: float
72
72
  %t76 = call core.add(%t74, %t85) :: float
73
73
  %acc_39 = acc_add agg.sum(%acc_39, %t76) :: float
74
74
  end_loop
@@ -90,12 +90,12 @@
90
90
  loop row id=L11 in %t49 as el=%row_el_50, idx=%row_i_51
91
91
  %t108 = load_field row_el_50["scale"] :: float
92
92
  %t109 = const 2.0 :: float
93
- %t110 = call core.mul(%t108, %t109) :: float
93
+ %t110 = call core.mul:numeric(%t108, %t109) :: float
94
94
  %acc92 = decl_acc :: float
95
95
  %t93 = load_field row_el_50["col"] :: any
96
96
  loop col id=L12 in %t93 as el=%t94, idx=%t95
97
97
  %t101 = load_field t94["val"] :: float
98
- %t103 = call core.mul(%t101, %t110) :: float
98
+ %t103 = call core.mul:numeric(%t101, %t110) :: float
99
99
  %t105 = call core.add(%t103, %t114) :: float
100
100
  %acc92 = acc_add agg.sum(%acc92, %t105) :: float
101
101
  end_loop
@@ -23,7 +23,7 @@
23
23
  %t13 = load_field batch_el_11["row"] :: any
24
24
  loop row id=L3 in %t13 as el=%row_el_14, idx=%row_i_15
25
25
  %t16 = load_field row_el_14["scale"] :: float
26
- %t18 = call core.mul(%t16, %t17) :: float
26
+ %t18 = call core.mul:numeric(%t16, %t17) :: float
27
27
  yield %t18
28
28
  end_loop
29
29
  end_loop
@@ -40,11 +40,11 @@
40
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
42
  %t59 = load_field row_el_23["scale"] :: float
43
- %t61 = call core.mul(%t59, %t60) :: float
43
+ %t61 = call core.mul:numeric(%t59, %t60) :: float
44
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
- %t30 = call core.mul(%t28, %t61) :: float
47
+ %t30 = call core.mul:numeric(%t28, %t61) :: float
48
48
  %t32 = call core.add(%t30, %t65) :: float
49
49
  yield %t32
50
50
  end_loop
@@ -63,12 +63,12 @@
63
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
65
  %t79 = load_field row_el_37["scale"] :: float
66
- %t81 = call core.mul(%t79, %t80) :: float
66
+ %t81 = call core.mul:numeric(%t79, %t80) :: float
67
67
  %acc_39 = decl_acc :: float
68
68
  %t40 = load_field row_el_37["col"] :: any
69
69
  loop col id=L9 in %t40 as el=%col_el_41, idx=%col_i_42
70
70
  %t72 = load_field col_el_41["val"] :: float
71
- %t74 = call core.mul(%t72, %t81) :: float
71
+ %t74 = call core.mul:numeric(%t72, %t81) :: float
72
72
  %t76 = call core.add(%t74, %t85) :: float
73
73
  %acc_39 = acc_add agg.sum(%acc_39, %t76) :: float
74
74
  end_loop
@@ -90,12 +90,12 @@
90
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
92
  %t108 = load_field row_el_50["scale"] :: float
93
- %t110 = call core.mul(%t108, %t109) :: float
93
+ %t110 = call core.mul:numeric(%t108, %t109) :: float
94
94
  %acc92 = decl_acc :: float
95
95
  %t93 = load_field row_el_50["col"] :: any
96
96
  loop col id=L12 in %t93 as el=%t94, idx=%t95
97
97
  %t101 = load_field t94["val"] :: float
98
- %t103 = call core.mul(%t101, %t110) :: float
98
+ %t103 = call core.mul:numeric(%t101, %t110) :: float
99
99
  %t105 = call core.add(%t103, %t114) :: float
100
100
  %acc92 = acc_add agg.sum(%acc92, %t105) :: float
101
101
  end_loop
@@ -23,7 +23,7 @@
23
23
  %t13 = load_field batch_el_11["row"] :: any
24
24
  loop row id=L3 in %t13 as el=%row_el_14, idx=%row_i_15
25
25
  %t16 = load_field row_el_14["scale"] :: float
26
- %t18 = call core.mul(%t16, %t17) :: float
26
+ %t18 = call core.mul:numeric(%t16, %t17) :: float
27
27
  yield %t18
28
28
  end_loop
29
29
  end_loop
@@ -40,11 +40,11 @@
40
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
42
  %t59 = load_field row_el_23["scale"] :: float
43
- %t61 = call core.mul(%t59, %t60) :: float
43
+ %t61 = call core.mul:numeric(%t59, %t60) :: float
44
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
- %t30 = call core.mul(%t28, %t61) :: float
47
+ %t30 = call core.mul:numeric(%t28, %t61) :: float
48
48
  %t32 = call core.add(%t30, %t65) :: float
49
49
  yield %t32
50
50
  end_loop
@@ -63,12 +63,12 @@
63
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
65
  %t79 = load_field row_el_37["scale"] :: float
66
- %t81 = call core.mul(%t79, %t80) :: float
66
+ %t81 = call core.mul:numeric(%t79, %t80) :: float
67
67
  %acc_39 = decl_acc :: float
68
68
  %t40 = load_field row_el_37["col"] :: any
69
69
  loop col id=L9 in %t40 as el=%col_el_41, idx=%col_i_42
70
70
  %t72 = load_field col_el_41["val"] :: float
71
- %t74 = call core.mul(%t72, %t81) :: float
71
+ %t74 = call core.mul:numeric(%t72, %t81) :: float
72
72
  %t76 = call core.add(%t74, %t85) :: float
73
73
  %acc_39 = acc_add agg.sum(%acc_39, %t76) :: float
74
74
  end_loop
@@ -90,12 +90,12 @@
90
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
92
  %t108 = load_field row_el_50["scale"] :: float
93
- %t110 = call core.mul(%t108, %t109) :: float
93
+ %t110 = call core.mul:numeric(%t108, %t109) :: float
94
94
  %acc92 = decl_acc :: float
95
95
  %t93 = load_field row_el_50["col"] :: any
96
96
  loop col id=L12 in %t93 as el=%t94, idx=%t95
97
97
  %t101 = load_field t94["val"] :: float
98
- %t103 = call core.mul(%t101, %t110) :: float
98
+ %t103 = call core.mul:numeric(%t101, %t110) :: float
99
99
  %t105 = call core.add(%t103, %t114) :: float
100
100
  %acc92 = acc_add agg.sum(%acc92, %t105) :: float
101
101
  end_loop
@@ -1,5 +1,5 @@
1
1
  # Autogenerated by Kumi Codegen
2
- module Kumi::Compiled::KUMI_eb3b4d06e6af40ce1803535148d7d8e97065abfc8e4186fd66437ebb384ab54f
2
+ module Kumi::Compiled::KUMI_6df7130ca75124f097c82329888ab5cb9a478bb0c2dac2ab00593581b5698852
3
3
  def self.from(input_data = nil)
4
4
  instance = Object.new
5
5
  instance.extend(self)
@@ -12,14 +12,14 @@
12
12
  ) :: [batch] -> float
13
13
  ) :: [batch] -> float
14
14
  (VALUE row_scale2
15
- (Call :core.mul
15
+ (Call :core.mul:numeric
16
16
  (InputRef batch.b.row.r.scale key_chain=[]) :: [batch, row] -> float
17
17
  (Const 2.0) :: [] -> float
18
18
  ) :: [batch, row] -> float
19
19
  ) :: [batch, row] -> float
20
20
  (VALUE elem_affine
21
21
  (Call :core.add
22
- (Call :core.mul
22
+ (Call :core.mul:numeric
23
23
  (InputRef batch.b.row.r.col.c.val key_chain=[]) :: [batch, row, col] -> float
24
24
  (Ref row_scale2) :: [batch, row] -> float
25
25
  ) :: [batch, row, col] -> float
@@ -4,7 +4,7 @@
4
4
  %t2 = load_field t1["y"] :: any
5
5
  %t3 = load_field t2["z"] :: integer
6
6
  %t4 = const 2 :: integer
7
- %t5 = call core.mul(%t3, %t4) :: integer
7
+ %t5 = call core.mul:numeric(%t3, %t4) :: integer
8
8
  yield %t5
9
9
  )
10
10
  )
@@ -4,7 +4,7 @@
4
4
  %t2 = load_field t1["y"] :: any
5
5
  %t3 = load_field t2["z"] :: integer
6
6
  %t4 = const 2 :: integer
7
- %t5 = call core.mul(%t3, %t4) :: integer
7
+ %t5 = call core.mul:numeric(%t3, %t4) :: integer
8
8
  yield %t5
9
9
  )
10
10
  )
@@ -4,7 +4,7 @@
4
4
  %t2 = load_field t1["y"] :: any
5
5
  %t3 = load_field t2["z"] :: integer
6
6
  %t4 = const 2 :: integer
7
- %t5 = call core.mul(%t3, %t4) :: integer
7
+ %t5 = call core.mul:numeric(%t3, %t4) :: integer
8
8
  yield %t5
9
9
  )
10
10
  )
@@ -4,7 +4,7 @@
4
4
  %t2 = load_field t1["y"] :: any
5
5
  %t3 = load_field t2["z"] :: integer
6
6
  %t4 = const 2 :: integer
7
- %t5 = call core.mul(%t3, %t4) :: integer
7
+ %t5 = call core.mul:numeric(%t3, %t4) :: integer
8
8
  yield %t5
9
9
  )
10
10
  )
@@ -4,7 +4,7 @@
4
4
  %t2 = load_field t1["y"] :: any
5
5
  %t3 = load_field t2["z"] :: integer
6
6
  %t4 = const 2 :: integer
7
- %t5 = call core.mul(%t3, %t4) :: integer
7
+ %t5 = call core.mul:numeric(%t3, %t4) :: integer
8
8
  yield %t5
9
9
  )
10
10
  )
@@ -4,7 +4,7 @@
4
4
  %t2 = load_field t1["y"] :: any
5
5
  %t3 = load_field t2["z"] :: integer
6
6
  %t4 = const 2 :: integer
7
- %t5 = call core.mul(%t3, %t4) :: integer
7
+ %t5 = call core.mul:numeric(%t3, %t4) :: integer
8
8
  yield %t5
9
9
  )
10
10
  )
@@ -4,7 +4,7 @@
4
4
  %t2 = load_field t1["y"] :: any
5
5
  %t3 = load_field t2["z"] :: integer
6
6
  %t4 = const 2 :: integer
7
- %t5 = call core.mul(%t3, %t4) :: integer
7
+ %t5 = call core.mul:numeric(%t3, %t4) :: integer
8
8
  yield %t5
9
9
  )
10
10
  )
@@ -1,5 +1,5 @@
1
1
  # Autogenerated by Kumi Codegen
2
- module Kumi::Compiled::KUMI_ad29cac793fb49736b0ba445da6c4c0761ee9fc79fde4b64eeff0a668781e9a5
2
+ module Kumi::Compiled::KUMI_1c9e6afbc4a766888d75e9e5003d26bfeda2e167eb1fbd69da44bcd76d9f7484
3
3
  def self.from(input_data = nil)
4
4
  instance = Object.new
5
5
  instance.extend(self)
@@ -1,6 +1,6 @@
1
1
  (SNAST
2
2
  (VALUE double
3
- (Call :core.mul
3
+ (Call :core.mul:numeric
4
4
  (InputRef x.y.z key_chain=[]) :: [] -> integer
5
5
  (Const 2) :: [] -> integer
6
6
  ) :: [] -> integer
@@ -1,5 +1,5 @@
1
1
  # Autogenerated by Kumi Codegen
2
- module Kumi::Compiled::KUMI_6acd7e7a86400b5713bb861b265bd71ca0409744e38f91750bf81b1c8cc7b4f7
2
+ module Kumi::Compiled::KUMI_121b9b19ba424a91a0d50b683d292605ee54c09c014acb917007ca19cc881fd1
3
3
  def self.from(input_data = nil)
4
4
  instance = Object.new
5
5
  instance.extend(self)
@@ -1,5 +1,5 @@
1
1
  # Autogenerated by Kumi Codegen
2
- module Kumi::Compiled::KUMI_bf0841514d27c68c3a5223b5c9e5625080c4342efd1141ccce1a07b41457e613
2
+ module Kumi::Compiled::KUMI_fbbd9524e89735c5dbaf290442b7ae9b51c1aeedcbe116ad99c5af17605a99ee
3
3
  def self.from(input_data = nil)
4
4
  instance = Object.new
5
5
  instance.extend(self)
@@ -1,5 +1,5 @@
1
1
  # Autogenerated by Kumi Codegen
2
- module Kumi::Compiled::KUMI_5e5c116e1acd27deccebcb9ab5ef133223c7005d86584465d3160f569d3c6a9b
2
+ module Kumi::Compiled::KUMI_cb5c8bdee5947708dc24300b2c2b672056453e6f137563d7bf848a40bdc4e534
3
3
  def self.from(input_data = nil)
4
4
  instance = Object.new
5
5
  instance.extend(self)
@@ -1,5 +1,5 @@
1
1
  # Autogenerated by Kumi Codegen
2
- module Kumi::Compiled::KUMI_949d31a31d5b9027826a4d9e0ac0f4f7cf7ec0cf26a2a52a7da7dc7b6de71a1f
2
+ module Kumi::Compiled::KUMI_21390de8a42e8b9e82e444c05c8030a3d5285d0077573acab1c303e27d5436fb
3
3
  def self.from(input_data = nil)
4
4
  instance = Object.new
5
5
  instance.extend(self)