kumi 0.0.26 → 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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +17 -0
- data/CLAUDE.md +4 -0
- data/README.md +36 -12
- data/data/functions/core/arithmetic.yaml +28 -8
- data/data/functions/core/boolean.yaml +8 -3
- data/data/functions/core/comparison.yaml +12 -4
- data/data/functions/core/conversion.yaml +32 -0
- data/data/kernels/javascript/core/arithmetic.yaml +6 -2
- data/data/kernels/javascript/core/coercion.yaml +20 -0
- data/data/kernels/ruby/core/arithmetic.yaml +7 -2
- data/data/kernels/ruby/core/coercion.yaml +20 -0
- data/docs/ARCHITECTURE.md +277 -0
- data/docs/DEVELOPMENT.md +62 -0
- data/docs/FUNCTIONS.md +955 -0
- data/docs/SYNTAX.md +8 -0
- data/docs/VSCODE_EXTENSION.md +114 -0
- data/docs/functions-reference.json +1821 -0
- data/golden/array_element/expected/schema_ruby.rb +1 -1
- data/golden/array_index/expected/lir_00_unoptimized.txt +2 -2
- data/golden/array_index/expected/lir_01_hoist_scalar_references.txt +2 -2
- data/golden/array_index/expected/lir_02_inlined.txt +2 -2
- data/golden/array_index/expected/lir_03_cse.txt +2 -2
- data/golden/array_index/expected/lir_04_1_loop_fusion.txt +2 -2
- data/golden/array_index/expected/lir_04_loop_invcm.txt +2 -2
- data/golden/array_index/expected/lir_06_const_prop.txt +2 -2
- data/golden/array_index/expected/schema_ruby.rb +1 -1
- data/golden/array_index/expected/snast.txt +2 -2
- data/golden/array_operations/expected/lir_00_unoptimized.txt +2 -2
- data/golden/array_operations/expected/lir_01_hoist_scalar_references.txt +2 -2
- data/golden/array_operations/expected/lir_02_inlined.txt +2 -2
- data/golden/array_operations/expected/lir_03_cse.txt +2 -2
- data/golden/array_operations/expected/lir_04_1_loop_fusion.txt +2 -2
- data/golden/array_operations/expected/lir_04_loop_invcm.txt +2 -2
- data/golden/array_operations/expected/lir_06_const_prop.txt +2 -2
- data/golden/array_operations/expected/schema_ruby.rb +1 -1
- data/golden/array_operations/expected/snast.txt +2 -2
- data/golden/cascade_logic/expected/schema_ruby.rb +1 -1
- data/golden/chained_fusion/expected/schema_ruby.rb +1 -1
- data/golden/decimal_explicit/expected/ast.txt +38 -0
- data/golden/decimal_explicit/expected/input_plan.txt +3 -0
- data/golden/decimal_explicit/expected/lir_00_unoptimized.txt +30 -0
- data/golden/decimal_explicit/expected/lir_01_hoist_scalar_references.txt +30 -0
- data/golden/decimal_explicit/expected/lir_02_inlined.txt +44 -0
- data/golden/decimal_explicit/expected/lir_03_cse.txt +40 -0
- data/golden/decimal_explicit/expected/lir_04_1_loop_fusion.txt +40 -0
- data/golden/decimal_explicit/expected/lir_04_loop_invcm.txt +40 -0
- data/golden/decimal_explicit/expected/lir_06_const_prop.txt +40 -0
- data/golden/decimal_explicit/expected/nast.txt +30 -0
- data/golden/decimal_explicit/expected/schema_javascript.mjs +31 -0
- data/golden/decimal_explicit/expected/schema_ruby.rb +57 -0
- data/golden/decimal_explicit/expected/snast.txt +30 -0
- data/golden/decimal_explicit/expected.json +1 -0
- data/golden/decimal_explicit/input.json +5 -0
- data/golden/decimal_explicit/schema.kumi +14 -0
- data/golden/element_arrays/expected/schema_ruby.rb +1 -1
- data/golden/empty_and_null_inputs/expected/schema_ruby.rb +1 -1
- data/golden/function_overload/expected/schema_ruby.rb +1 -1
- data/golden/game_of_life/expected/schema_ruby.rb +1 -1
- data/golden/hash_keys/expected/schema_ruby.rb +1 -1
- data/golden/hash_value/expected/schema_ruby.rb +1 -1
- data/golden/hierarchical_complex/expected/lir_00_unoptimized.txt +3 -3
- data/golden/hierarchical_complex/expected/lir_01_hoist_scalar_references.txt +3 -3
- data/golden/hierarchical_complex/expected/lir_02_inlined.txt +3 -3
- data/golden/hierarchical_complex/expected/lir_03_cse.txt +3 -3
- data/golden/hierarchical_complex/expected/lir_04_1_loop_fusion.txt +3 -3
- data/golden/hierarchical_complex/expected/lir_04_loop_invcm.txt +3 -3
- data/golden/hierarchical_complex/expected/lir_06_const_prop.txt +3 -3
- data/golden/hierarchical_complex/expected/schema_ruby.rb +1 -1
- data/golden/hierarchical_complex/expected/snast.txt +3 -3
- data/golden/inline_rename_scope_leak/expected/schema_ruby.rb +1 -1
- data/golden/input_reference/expected/schema_ruby.rb +1 -1
- data/golden/interleaved_fusion/expected/lir_00_unoptimized.txt +1 -1
- data/golden/interleaved_fusion/expected/lir_01_hoist_scalar_references.txt +1 -1
- data/golden/interleaved_fusion/expected/lir_02_inlined.txt +2 -2
- data/golden/interleaved_fusion/expected/lir_03_cse.txt +2 -2
- data/golden/interleaved_fusion/expected/lir_04_1_loop_fusion.txt +2 -2
- data/golden/interleaved_fusion/expected/lir_04_loop_invcm.txt +2 -2
- data/golden/interleaved_fusion/expected/lir_06_const_prop.txt +2 -2
- data/golden/interleaved_fusion/expected/schema_ruby.rb +1 -1
- data/golden/interleaved_fusion/expected/snast.txt +1 -1
- data/golden/let_inline/expected/lir_00_unoptimized.txt +2 -2
- data/golden/let_inline/expected/lir_01_hoist_scalar_references.txt +2 -2
- data/golden/let_inline/expected/lir_02_inlined.txt +6 -6
- data/golden/let_inline/expected/lir_03_cse.txt +6 -6
- data/golden/let_inline/expected/lir_04_1_loop_fusion.txt +6 -6
- data/golden/let_inline/expected/lir_04_loop_invcm.txt +6 -6
- data/golden/let_inline/expected/lir_06_const_prop.txt +6 -6
- data/golden/let_inline/expected/schema_ruby.rb +1 -1
- data/golden/let_inline/expected/snast.txt +2 -2
- data/golden/loop_fusion/expected/schema_ruby.rb +1 -1
- data/golden/min_reduce_scope/expected/schema_ruby.rb +1 -1
- data/golden/mixed_dimensions/expected/schema_ruby.rb +1 -1
- data/golden/multirank_hoisting/expected/lir_00_unoptimized.txt +2 -2
- data/golden/multirank_hoisting/expected/lir_01_hoist_scalar_references.txt +2 -2
- data/golden/multirank_hoisting/expected/lir_02_inlined.txt +7 -7
- data/golden/multirank_hoisting/expected/lir_03_cse.txt +7 -7
- data/golden/multirank_hoisting/expected/lir_04_1_loop_fusion.txt +7 -7
- data/golden/multirank_hoisting/expected/lir_04_loop_invcm.txt +7 -7
- data/golden/multirank_hoisting/expected/lir_06_const_prop.txt +7 -7
- data/golden/multirank_hoisting/expected/schema_ruby.rb +1 -1
- data/golden/multirank_hoisting/expected/snast.txt +2 -2
- data/golden/nested_hash/expected/lir_00_unoptimized.txt +1 -1
- data/golden/nested_hash/expected/lir_01_hoist_scalar_references.txt +1 -1
- data/golden/nested_hash/expected/lir_02_inlined.txt +1 -1
- data/golden/nested_hash/expected/lir_03_cse.txt +1 -1
- data/golden/nested_hash/expected/lir_04_1_loop_fusion.txt +1 -1
- data/golden/nested_hash/expected/lir_04_loop_invcm.txt +1 -1
- data/golden/nested_hash/expected/lir_06_const_prop.txt +1 -1
- data/golden/nested_hash/expected/schema_ruby.rb +1 -1
- data/golden/nested_hash/expected/snast.txt +1 -1
- data/golden/reduction_broadcast/expected/schema_ruby.rb +1 -1
- data/golden/roll/expected/schema_ruby.rb +1 -1
- data/golden/shift/expected/schema_ruby.rb +1 -1
- data/golden/shift_2d/expected/schema_ruby.rb +1 -1
- data/golden/simple_math/expected/lir_00_unoptimized.txt +2 -2
- data/golden/simple_math/expected/lir_01_hoist_scalar_references.txt +2 -2
- data/golden/simple_math/expected/lir_02_inlined.txt +2 -2
- data/golden/simple_math/expected/lir_03_cse.txt +2 -2
- data/golden/simple_math/expected/lir_04_1_loop_fusion.txt +2 -2
- data/golden/simple_math/expected/lir_04_loop_invcm.txt +2 -2
- data/golden/simple_math/expected/lir_06_const_prop.txt +2 -2
- data/golden/simple_math/expected/schema_ruby.rb +1 -1
- data/golden/simple_math/expected/snast.txt +2 -2
- data/golden/streaming_basics/expected/lir_00_unoptimized.txt +3 -3
- data/golden/streaming_basics/expected/lir_01_hoist_scalar_references.txt +3 -3
- data/golden/streaming_basics/expected/lir_02_inlined.txt +9 -9
- data/golden/streaming_basics/expected/lir_03_cse.txt +7 -7
- data/golden/streaming_basics/expected/lir_04_1_loop_fusion.txt +7 -7
- data/golden/streaming_basics/expected/lir_04_loop_invcm.txt +7 -7
- data/golden/streaming_basics/expected/lir_06_const_prop.txt +7 -7
- data/golden/streaming_basics/expected/schema_ruby.rb +1 -1
- data/golden/streaming_basics/expected/snast.txt +3 -3
- data/golden/tuples/expected/schema_ruby.rb +1 -1
- data/golden/tuples_and_arrays/expected/schema_ruby.rb +1 -1
- data/golden/us_tax_2024/expected/lir_00_unoptimized.txt +6 -6
- data/golden/us_tax_2024/expected/lir_01_hoist_scalar_references.txt +6 -6
- data/golden/us_tax_2024/expected/lir_02_inlined.txt +71 -71
- data/golden/us_tax_2024/expected/lir_03_cse.txt +43 -43
- data/golden/us_tax_2024/expected/lir_04_1_loop_fusion.txt +48 -48
- data/golden/us_tax_2024/expected/lir_04_loop_invcm.txt +43 -43
- data/golden/us_tax_2024/expected/lir_06_const_prop.txt +43 -43
- data/golden/us_tax_2024/expected/schema_ruby.rb +1 -1
- data/golden/us_tax_2024/expected/snast.txt +6 -6
- data/golden/with_constants/expected/schema_ruby.rb +1 -1
- data/lib/kumi/configuration.rb +6 -0
- data/lib/kumi/core/analyzer/passes/nast_dimensional_analyzer_pass.rb +1 -1
- data/lib/kumi/core/error_reporter.rb +1 -1
- data/lib/kumi/core/errors.rb +1 -1
- data/lib/kumi/core/functions/overload_resolver.rb +57 -11
- data/lib/kumi/core/functions/type_categories.rb +44 -0
- data/lib/kumi/core/input/type_matcher.rb +8 -1
- data/lib/kumi/core/ruby_parser/input_builder.rb +2 -2
- data/lib/kumi/core/types/normalizer.rb +1 -0
- data/lib/kumi/core/types/validator.rb +2 -2
- data/lib/kumi/core/types.rb +2 -2
- data/lib/kumi/dev/golden/reporter.rb +9 -0
- data/lib/kumi/dev/golden/result.rb +3 -1
- data/lib/kumi/dev/golden/runtime_test.rb +25 -0
- data/lib/kumi/dev/golden/suite.rb +4 -4
- data/lib/kumi/dev/golden/value_normalizer.rb +80 -0
- data/lib/kumi/dev/golden.rb +21 -12
- data/lib/kumi/doc_generator/formatters/json.rb +39 -0
- data/lib/kumi/doc_generator/formatters/markdown.rb +175 -0
- data/lib/kumi/doc_generator/loader.rb +37 -0
- data/lib/kumi/doc_generator/merger.rb +54 -0
- data/lib/kumi/doc_generator.rb +4 -0
- data/lib/kumi/frontends/text.rb +33 -5
- data/lib/kumi/syntax/location.rb +5 -1
- data/lib/kumi/version.rb +1 -1
- data/vscode-extension/.gitignore +4 -0
- data/vscode-extension/README.md +59 -0
- data/vscode-extension/TESTING.md +151 -0
- data/vscode-extension/package.json +51 -0
- data/vscode-extension/src/extension.ts +295 -0
- data/vscode-extension/tsconfig.json +15 -0
- metadata +38 -1
@@ -2,13 +2,13 @@
|
|
2
2
|
(Declaration state_tax
|
3
3
|
%t1 = load_input "income" :: float
|
4
4
|
%t2 = load_input "state_rate" :: float
|
5
|
-
%t3 = call core.mul(%t1, %t2) :: float
|
5
|
+
%t3 = call core.mul:numeric(%t1, %t2) :: float
|
6
6
|
yield %t3
|
7
7
|
)
|
8
8
|
(Declaration local_tax
|
9
9
|
%t4 = load_input "income" :: float
|
10
10
|
%t5 = load_input "local_rate" :: float
|
11
|
-
%t6 = call core.mul(%t4, %t5) :: float
|
11
|
+
%t6 = call core.mul:numeric(%t4, %t5) :: float
|
12
12
|
yield %t6
|
13
13
|
)
|
14
14
|
(Declaration taxable
|
@@ -154,7 +154,7 @@
|
|
154
154
|
%t277 = load_input "statuses" :: array
|
155
155
|
%t278 = load_field statuses_el_65["rates"] :: any
|
156
156
|
%t279 = load_field rates_el_69["rate"] :: float
|
157
|
-
%t73 = call core.mul(%t249, %t279) :: float
|
157
|
+
%t73 = call core.mul:numeric(%t249, %t279) :: float
|
158
158
|
%acc_67 = acc_add agg.sum(%acc_67, %t73) :: float
|
159
159
|
end_loop
|
160
160
|
%t74 = acc_load %acc_67 :: float
|
@@ -294,7 +294,7 @@
|
|
294
294
|
%t401 = load_input "statuses" :: array
|
295
295
|
%t402 = load_field statuses_el_101["rates"] :: any
|
296
296
|
%t403 = load_field t358["rate"] :: float
|
297
|
-
%t362 = call core.mul(%t373, %t403) :: float
|
297
|
+
%t362 = call core.mul:numeric(%t373, %t403) :: float
|
298
298
|
%acc356 = acc_add agg.sum(%acc356, %t362) :: float
|
299
299
|
end_loop
|
300
300
|
%t363 = acc_load %acc356 :: float
|
@@ -320,7 +320,7 @@
|
|
320
320
|
%t113 = make_tuple(%t111, %t112) :: tuple<float, float>
|
321
321
|
%t114 = fold %t113 fn="agg.min" :: float
|
322
322
|
%t115 = const 0.062 :: float
|
323
|
-
%t116 = call core.mul(%t114, %t115) :: float
|
323
|
+
%t116 = call core.mul:numeric(%t114, %t115) :: float
|
324
324
|
yield %t116
|
325
325
|
)
|
326
326
|
(Declaration med_base_rate
|
@@ -330,7 +330,7 @@
|
|
330
330
|
(Declaration med_tax
|
331
331
|
%t118 = load_input "income" :: float
|
332
332
|
%t119 = const 0.0145 :: float
|
333
|
-
%t120 = call core.mul(%t118, %t119) :: float
|
333
|
+
%t120 = call core.mul:numeric(%t118, %t119) :: float
|
334
334
|
yield %t120
|
335
335
|
)
|
336
336
|
(Declaration addl_med_rate
|
@@ -347,7 +347,7 @@
|
|
347
347
|
%t129 = make_tuple(%t127, %t128) :: tuple<float, integer>
|
348
348
|
%t130 = fold %t129 fn="agg.max" :: float
|
349
349
|
%t131 = const 0.009 :: float
|
350
|
-
%t132 = call core.mul(%t130, %t131) :: float
|
350
|
+
%t132 = call core.mul:numeric(%t130, %t131) :: float
|
351
351
|
yield %t132
|
352
352
|
end_loop
|
353
353
|
)
|
@@ -358,10 +358,10 @@
|
|
358
358
|
%t406 = make_tuple(%t404, %t405) :: tuple<float, float>
|
359
359
|
%t407 = fold %t406 fn="agg.min" :: float
|
360
360
|
%t408 = const 0.062 :: float
|
361
|
-
%t409 = call core.mul(%t407, %t408) :: float
|
361
|
+
%t409 = call core.mul:numeric(%t407, %t408) :: float
|
362
362
|
%t410 = load_input "income" :: float
|
363
363
|
%t411 = const 0.0145 :: float
|
364
|
-
%t412 = call core.mul(%t410, %t411) :: float
|
364
|
+
%t412 = call core.mul:numeric(%t410, %t411) :: float
|
365
365
|
loop statuses id=L20 in %t133 as el=%statuses_el_134, idx=%statuses_i_135
|
366
366
|
%t138 = call core.add(%t409, %t412) :: float
|
367
367
|
%t413 = load_input "statuses" :: array
|
@@ -372,7 +372,7 @@
|
|
372
372
|
%t418 = make_tuple(%t416, %t417) :: tuple<float, integer>
|
373
373
|
%t419 = fold %t418 fn="agg.max" :: float
|
374
374
|
%t420 = const 0.009 :: float
|
375
|
-
%t421 = call core.mul(%t419, %t420) :: float
|
375
|
+
%t421 = call core.mul:numeric(%t419, %t420) :: float
|
376
376
|
%t140 = call core.add(%t138, %t421) :: float
|
377
377
|
yield %t140
|
378
378
|
end_loop
|
@@ -383,10 +383,10 @@
|
|
383
383
|
%t430 = make_tuple(%t428, %t429) :: tuple<float, float>
|
384
384
|
%t431 = fold %t430 fn="agg.min" :: float
|
385
385
|
%t432 = const 0.062 :: float
|
386
|
-
%t433 = call core.mul(%t431, %t432) :: float
|
386
|
+
%t433 = call core.mul:numeric(%t431, %t432) :: float
|
387
387
|
%t434 = load_input "income" :: float
|
388
388
|
%t435 = const 0.0145 :: float
|
389
|
-
%t436 = call core.mul(%t434, %t435) :: float
|
389
|
+
%t436 = call core.mul:numeric(%t434, %t435) :: float
|
390
390
|
%t141 = load_input "statuses" :: array
|
391
391
|
loop statuses id=L21 in %t141 as el=%statuses_el_142, idx=%statuses_i_143
|
392
392
|
%t422 = load_input "statuses" :: array
|
@@ -399,7 +399,7 @@
|
|
399
399
|
%t442 = make_tuple(%t440, %t441) :: tuple<float, integer>
|
400
400
|
%t443 = fold %t442 fn="agg.max" :: float
|
401
401
|
%t444 = const 0.009 :: float
|
402
|
-
%t445 = call core.mul(%t443, %t444) :: float
|
402
|
+
%t445 = call core.mul:numeric(%t443, %t444) :: float
|
403
403
|
%t427 = call core.add(%t425, %t445) :: float
|
404
404
|
%t145 = load_input "income" :: float
|
405
405
|
%t146 = const 1.0 :: float
|
@@ -415,17 +415,17 @@
|
|
415
415
|
%t510 = make_tuple(%t508, %t509) :: tuple<float, float>
|
416
416
|
%t511 = fold %t510 fn="agg.min" :: float
|
417
417
|
%t512 = const 0.062 :: float
|
418
|
-
%t513 = call core.mul(%t511, %t512) :: float
|
418
|
+
%t513 = call core.mul:numeric(%t511, %t512) :: float
|
419
419
|
%t514 = load_input "income" :: float
|
420
420
|
%t515 = const 0.0145 :: float
|
421
|
-
%t516 = call core.mul(%t514, %t515) :: float
|
421
|
+
%t516 = call core.mul:numeric(%t514, %t515) :: float
|
422
422
|
%t150 = load_input "statuses" :: array
|
423
423
|
%t446 = load_input "income" :: float
|
424
424
|
%t447 = load_input "state_rate" :: float
|
425
|
-
%t448 = call core.mul(%t446, %t447) :: float
|
425
|
+
%t448 = call core.mul:numeric(%t446, %t447) :: float
|
426
426
|
%t449 = load_input "income" :: float
|
427
427
|
%t450 = load_input "local_rate" :: float
|
428
|
-
%t451 = call core.mul(%t449, %t450) :: float
|
428
|
+
%t451 = call core.mul:numeric(%t449, %t450) :: float
|
429
429
|
loop statuses id=L22 in %t150 as el=%statuses_el_151, idx=%statuses_i_152
|
430
430
|
%t472 = load_input "statuses" :: array
|
431
431
|
%t473 = load_input "income" :: float
|
@@ -465,7 +465,7 @@
|
|
465
465
|
%t499 = load_input "statuses" :: array
|
466
466
|
%t500 = load_field statuses_el_151["rates"] :: any
|
467
467
|
%t501 = load_field t456["rate"] :: float
|
468
|
-
%t460 = call core.mul(%t471, %t501) :: float
|
468
|
+
%t460 = call core.mul:numeric(%t471, %t501) :: float
|
469
469
|
%acc454 = acc_add agg.sum(%acc454, %t460) :: float
|
470
470
|
end_loop
|
471
471
|
%t461 = acc_load %acc454 :: float
|
@@ -479,7 +479,7 @@
|
|
479
479
|
%t522 = make_tuple(%t520, %t521) :: tuple<float, integer>
|
480
480
|
%t523 = fold %t522 fn="agg.max" :: float
|
481
481
|
%t524 = const 0.009 :: float
|
482
|
-
%t525 = call core.mul(%t523, %t524) :: float
|
482
|
+
%t525 = call core.mul:numeric(%t523, %t524) :: float
|
483
483
|
%t507 = call core.add(%t505, %t525) :: float
|
484
484
|
%t155 = call core.add(%t461, %t507) :: float
|
485
485
|
%t157 = call core.add(%t155, %t448) :: float
|
@@ -490,19 +490,19 @@
|
|
490
490
|
(Declaration total_eff
|
491
491
|
%t534 = load_input "income" :: float
|
492
492
|
%t535 = load_input "state_rate" :: float
|
493
|
-
%t536 = call core.mul(%t534, %t535) :: float
|
493
|
+
%t536 = call core.mul:numeric(%t534, %t535) :: float
|
494
494
|
%t537 = load_input "income" :: float
|
495
495
|
%t538 = load_input "local_rate" :: float
|
496
|
-
%t539 = call core.mul(%t537, %t538) :: float
|
496
|
+
%t539 = call core.mul:numeric(%t537, %t538) :: float
|
497
497
|
%t596 = load_input "income" :: float
|
498
498
|
%t597 = const 168600.0 :: float
|
499
499
|
%t598 = make_tuple(%t596, %t597) :: tuple<float, float>
|
500
500
|
%t599 = fold %t598 fn="agg.min" :: float
|
501
501
|
%t600 = const 0.062 :: float
|
502
|
-
%t601 = call core.mul(%t599, %t600) :: float
|
502
|
+
%t601 = call core.mul:numeric(%t599, %t600) :: float
|
503
503
|
%t602 = load_input "income" :: float
|
504
504
|
%t603 = const 0.0145 :: float
|
505
|
-
%t604 = call core.mul(%t602, %t603) :: float
|
505
|
+
%t604 = call core.mul:numeric(%t602, %t603) :: float
|
506
506
|
%t160 = load_input "statuses" :: array
|
507
507
|
loop statuses id=L23 in %t160 as el=%statuses_el_161, idx=%statuses_i_162
|
508
508
|
%t526 = load_input "statuses" :: array
|
@@ -544,7 +544,7 @@
|
|
544
544
|
%t587 = load_input "statuses" :: array
|
545
545
|
%t588 = load_field statuses_el_161["rates"] :: any
|
546
546
|
%t589 = load_field t544["rate"] :: float
|
547
|
-
%t548 = call core.mul(%t559, %t589) :: float
|
547
|
+
%t548 = call core.mul:numeric(%t559, %t589) :: float
|
548
548
|
%acc542 = acc_add agg.sum(%acc542, %t548) :: float
|
549
549
|
end_loop
|
550
550
|
%t549 = acc_load %acc542 :: float
|
@@ -558,7 +558,7 @@
|
|
558
558
|
%t610 = make_tuple(%t608, %t609) :: tuple<float, integer>
|
559
559
|
%t611 = fold %t610 fn="agg.max" :: float
|
560
560
|
%t612 = const 0.009 :: float
|
561
|
-
%t613 = call core.mul(%t611, %t612) :: float
|
561
|
+
%t613 = call core.mul:numeric(%t611, %t612) :: float
|
562
562
|
%t595 = call core.add(%t593, %t613) :: float
|
563
563
|
%t531 = call core.add(%t549, %t595) :: float
|
564
564
|
%t532 = call core.add(%t531, %t536) :: float
|
@@ -574,19 +574,19 @@
|
|
574
574
|
(Declaration after_tax
|
575
575
|
%t622 = load_input "income" :: float
|
576
576
|
%t623 = load_input "state_rate" :: float
|
577
|
-
%t624 = call core.mul(%t622, %t623) :: float
|
577
|
+
%t624 = call core.mul:numeric(%t622, %t623) :: float
|
578
578
|
%t625 = load_input "income" :: float
|
579
579
|
%t626 = load_input "local_rate" :: float
|
580
|
-
%t627 = call core.mul(%t625, %t626) :: float
|
580
|
+
%t627 = call core.mul:numeric(%t625, %t626) :: float
|
581
581
|
%t684 = load_input "income" :: float
|
582
582
|
%t685 = const 168600.0 :: float
|
583
583
|
%t686 = make_tuple(%t684, %t685) :: tuple<float, float>
|
584
584
|
%t687 = fold %t686 fn="agg.min" :: float
|
585
585
|
%t688 = const 0.062 :: float
|
586
|
-
%t689 = call core.mul(%t687, %t688) :: float
|
586
|
+
%t689 = call core.mul:numeric(%t687, %t688) :: float
|
587
587
|
%t690 = load_input "income" :: float
|
588
588
|
%t691 = const 0.0145 :: float
|
589
|
-
%t692 = call core.mul(%t690, %t691) :: float
|
589
|
+
%t692 = call core.mul:numeric(%t690, %t691) :: float
|
590
590
|
%t169 = load_input "statuses" :: array
|
591
591
|
loop statuses id=L24 in %t169 as el=%statuses_el_170, idx=%statuses_i_171
|
592
592
|
%t172 = load_input "income" :: float
|
@@ -629,7 +629,7 @@
|
|
629
629
|
%t675 = load_input "statuses" :: array
|
630
630
|
%t676 = load_field statuses_el_170["rates"] :: any
|
631
631
|
%t677 = load_field t632["rate"] :: float
|
632
|
-
%t636 = call core.mul(%t647, %t677) :: float
|
632
|
+
%t636 = call core.mul:numeric(%t647, %t677) :: float
|
633
633
|
%acc630 = acc_add agg.sum(%acc630, %t636) :: float
|
634
634
|
end_loop
|
635
635
|
%t637 = acc_load %acc630 :: float
|
@@ -643,7 +643,7 @@
|
|
643
643
|
%t698 = make_tuple(%t696, %t697) :: tuple<float, integer>
|
644
644
|
%t699 = fold %t698 fn="agg.max" :: float
|
645
645
|
%t700 = const 0.009 :: float
|
646
|
-
%t701 = call core.mul(%t699, %t700) :: float
|
646
|
+
%t701 = call core.mul:numeric(%t699, %t700) :: float
|
647
647
|
%t683 = call core.add(%t681, %t701) :: float
|
648
648
|
%t619 = call core.add(%t637, %t683) :: float
|
649
649
|
%t620 = call core.add(%t619, %t624) :: float
|
@@ -655,19 +655,19 @@
|
|
655
655
|
(Declaration take_home
|
656
656
|
%t714 = load_input "income" :: float
|
657
657
|
%t715 = load_input "state_rate" :: float
|
658
|
-
%t716 = call core.mul(%t714, %t715) :: float
|
658
|
+
%t716 = call core.mul:numeric(%t714, %t715) :: float
|
659
659
|
%t717 = load_input "income" :: float
|
660
660
|
%t718 = load_input "local_rate" :: float
|
661
|
-
%t719 = call core.mul(%t717, %t718) :: float
|
661
|
+
%t719 = call core.mul:numeric(%t717, %t718) :: float
|
662
662
|
%t776 = load_input "income" :: float
|
663
663
|
%t777 = const 168600.0 :: float
|
664
664
|
%t778 = make_tuple(%t776, %t777) :: tuple<float, float>
|
665
665
|
%t779 = fold %t778 fn="agg.min" :: float
|
666
666
|
%t780 = const 0.062 :: float
|
667
|
-
%t781 = call core.mul(%t779, %t780) :: float
|
667
|
+
%t781 = call core.mul:numeric(%t779, %t780) :: float
|
668
668
|
%t782 = load_input "income" :: float
|
669
669
|
%t783 = const 0.0145 :: float
|
670
|
-
%t784 = call core.mul(%t782, %t783) :: float
|
670
|
+
%t784 = call core.mul:numeric(%t782, %t783) :: float
|
671
671
|
%t175 = load_input "statuses" :: array
|
672
672
|
loop statuses id=L25 in %t175 as el=%statuses_el_176, idx=%statuses_i_177
|
673
673
|
%t702 = load_input "statuses" :: array
|
@@ -711,7 +711,7 @@
|
|
711
711
|
%t767 = load_input "statuses" :: array
|
712
712
|
%t768 = load_field statuses_el_176["rates"] :: any
|
713
713
|
%t769 = load_field t724["rate"] :: float
|
714
|
-
%t728 = call core.mul(%t739, %t769) :: float
|
714
|
+
%t728 = call core.mul:numeric(%t739, %t769) :: float
|
715
715
|
%acc722 = acc_add agg.sum(%acc722, %t728) :: float
|
716
716
|
end_loop
|
717
717
|
%t729 = acc_load %acc722 :: float
|
@@ -725,7 +725,7 @@
|
|
725
725
|
%t790 = make_tuple(%t788, %t789) :: tuple<float, integer>
|
726
726
|
%t791 = fold %t790 fn="agg.max" :: float
|
727
727
|
%t792 = const 0.009 :: float
|
728
|
-
%t793 = call core.mul(%t791, %t792) :: float
|
728
|
+
%t793 = call core.mul:numeric(%t791, %t792) :: float
|
729
729
|
%t775 = call core.add(%t773, %t793) :: float
|
730
730
|
%t711 = call core.add(%t729, %t775) :: float
|
731
731
|
%t712 = call core.add(%t711, %t716) :: float
|
@@ -742,86 +742,86 @@
|
|
742
742
|
%t976 = make_tuple(%t974, %t975) :: tuple<float, float>
|
743
743
|
%t977 = fold %t976 fn="agg.min" :: float
|
744
744
|
%t978 = const 0.062 :: float
|
745
|
-
%t979 = call core.mul(%t977, %t978) :: float
|
745
|
+
%t979 = call core.mul:numeric(%t977, %t978) :: float
|
746
746
|
%t980 = load_input "income" :: float
|
747
747
|
%t981 = const 0.0145 :: float
|
748
|
-
%t982 = call core.mul(%t980, %t981) :: float
|
748
|
+
%t982 = call core.mul:numeric(%t980, %t981) :: float
|
749
749
|
%t998 = load_input "income" :: float
|
750
750
|
%t999 = const 168600.0 :: float
|
751
751
|
%t1000 = make_tuple(%t998, %t999) :: tuple<float, float>
|
752
752
|
%t1001 = fold %t1000 fn="agg.min" :: float
|
753
753
|
%t1002 = const 0.062 :: float
|
754
|
-
%t1003 = call core.mul(%t1001, %t1002) :: float
|
754
|
+
%t1003 = call core.mul:numeric(%t1001, %t1002) :: float
|
755
755
|
%t1004 = load_input "income" :: float
|
756
756
|
%t1005 = const 0.0145 :: float
|
757
|
-
%t1006 = call core.mul(%t1004, %t1005) :: float
|
757
|
+
%t1006 = call core.mul:numeric(%t1004, %t1005) :: float
|
758
758
|
%t1031 = load_input "income" :: float
|
759
759
|
%t1032 = load_input "state_rate" :: float
|
760
|
-
%t1033 = call core.mul(%t1031, %t1032) :: float
|
760
|
+
%t1033 = call core.mul:numeric(%t1031, %t1032) :: float
|
761
761
|
%t1034 = load_input "income" :: float
|
762
762
|
%t1035 = load_input "local_rate" :: float
|
763
|
-
%t1036 = call core.mul(%t1034, %t1035) :: float
|
763
|
+
%t1036 = call core.mul:numeric(%t1034, %t1035) :: float
|
764
764
|
%t1093 = load_input "income" :: float
|
765
765
|
%t1094 = const 168600.0 :: float
|
766
766
|
%t1095 = make_tuple(%t1093, %t1094) :: tuple<float, float>
|
767
767
|
%t1096 = fold %t1095 fn="agg.min" :: float
|
768
768
|
%t1097 = const 0.062 :: float
|
769
|
-
%t1098 = call core.mul(%t1096, %t1097) :: float
|
769
|
+
%t1098 = call core.mul:numeric(%t1096, %t1097) :: float
|
770
770
|
%t1099 = load_input "income" :: float
|
771
771
|
%t1100 = const 0.0145 :: float
|
772
|
-
%t1101 = call core.mul(%t1099, %t1100) :: float
|
772
|
+
%t1101 = call core.mul:numeric(%t1099, %t1100) :: float
|
773
773
|
%t1119 = load_input "income" :: float
|
774
774
|
%t1120 = load_input "state_rate" :: float
|
775
|
-
%t1121 = call core.mul(%t1119, %t1120) :: float
|
775
|
+
%t1121 = call core.mul:numeric(%t1119, %t1120) :: float
|
776
776
|
%t1122 = load_input "income" :: float
|
777
777
|
%t1123 = load_input "local_rate" :: float
|
778
|
-
%t1124 = call core.mul(%t1122, %t1123) :: float
|
778
|
+
%t1124 = call core.mul:numeric(%t1122, %t1123) :: float
|
779
779
|
%t1181 = load_input "income" :: float
|
780
780
|
%t1182 = const 168600.0 :: float
|
781
781
|
%t1183 = make_tuple(%t1181, %t1182) :: tuple<float, float>
|
782
782
|
%t1184 = fold %t1183 fn="agg.min" :: float
|
783
783
|
%t1185 = const 0.062 :: float
|
784
|
-
%t1186 = call core.mul(%t1184, %t1185) :: float
|
784
|
+
%t1186 = call core.mul:numeric(%t1184, %t1185) :: float
|
785
785
|
%t1187 = load_input "income" :: float
|
786
786
|
%t1188 = const 0.0145 :: float
|
787
|
-
%t1189 = call core.mul(%t1187, %t1188) :: float
|
787
|
+
%t1189 = call core.mul:numeric(%t1187, %t1188) :: float
|
788
788
|
%t1211 = load_input "income" :: float
|
789
789
|
%t1212 = load_input "state_rate" :: float
|
790
|
-
%t1213 = call core.mul(%t1211, %t1212) :: float
|
790
|
+
%t1213 = call core.mul:numeric(%t1211, %t1212) :: float
|
791
791
|
%t1214 = load_input "income" :: float
|
792
792
|
%t1215 = load_input "local_rate" :: float
|
793
|
-
%t1216 = call core.mul(%t1214, %t1215) :: float
|
793
|
+
%t1216 = call core.mul:numeric(%t1214, %t1215) :: float
|
794
794
|
%t1273 = load_input "income" :: float
|
795
795
|
%t1274 = const 168600.0 :: float
|
796
796
|
%t1275 = make_tuple(%t1273, %t1274) :: tuple<float, float>
|
797
797
|
%t1276 = fold %t1275 fn="agg.min" :: float
|
798
798
|
%t1277 = const 0.062 :: float
|
799
|
-
%t1278 = call core.mul(%t1276, %t1277) :: float
|
799
|
+
%t1278 = call core.mul:numeric(%t1276, %t1277) :: float
|
800
800
|
%t1279 = load_input "income" :: float
|
801
801
|
%t1280 = const 0.0145 :: float
|
802
|
-
%t1281 = call core.mul(%t1279, %t1280) :: float
|
802
|
+
%t1281 = call core.mul:numeric(%t1279, %t1280) :: float
|
803
803
|
%t1307 = load_input "income" :: float
|
804
804
|
%t1308 = load_input "state_rate" :: float
|
805
|
-
%t1309 = call core.mul(%t1307, %t1308) :: float
|
805
|
+
%t1309 = call core.mul:numeric(%t1307, %t1308) :: float
|
806
806
|
%t1310 = load_input "income" :: float
|
807
807
|
%t1311 = load_input "local_rate" :: float
|
808
|
-
%t1312 = call core.mul(%t1310, %t1311) :: float
|
808
|
+
%t1312 = call core.mul:numeric(%t1310, %t1311) :: float
|
809
809
|
%t1369 = load_input "income" :: float
|
810
810
|
%t1370 = const 168600.0 :: float
|
811
811
|
%t1371 = make_tuple(%t1369, %t1370) :: tuple<float, float>
|
812
812
|
%t1372 = fold %t1371 fn="agg.min" :: float
|
813
813
|
%t1373 = const 0.062 :: float
|
814
|
-
%t1374 = call core.mul(%t1372, %t1373) :: float
|
814
|
+
%t1374 = call core.mul:numeric(%t1372, %t1373) :: float
|
815
815
|
%t1375 = load_input "income" :: float
|
816
816
|
%t1376 = const 0.0145 :: float
|
817
|
-
%t1377 = call core.mul(%t1375, %t1376) :: float
|
817
|
+
%t1377 = call core.mul:numeric(%t1375, %t1376) :: float
|
818
818
|
%t181 = load_input "statuses" :: array
|
819
819
|
%t794 = load_input "income" :: float
|
820
820
|
%t795 = load_input "state_rate" :: float
|
821
|
-
%t796 = call core.mul(%t794, %t795) :: float
|
821
|
+
%t796 = call core.mul:numeric(%t794, %t795) :: float
|
822
822
|
%t797 = load_input "income" :: float
|
823
823
|
%t798 = load_input "local_rate" :: float
|
824
|
-
%t799 = call core.mul(%t797, %t798) :: float
|
824
|
+
%t799 = call core.mul:numeric(%t797, %t798) :: float
|
825
825
|
loop statuses id=L26 in %t181 as el=%statuses_el_182, idx=%statuses_i_183
|
826
826
|
%t184 = load_field statuses_el_182["name"] :: string
|
827
827
|
%t820 = load_input "statuses" :: array
|
@@ -909,7 +909,7 @@
|
|
909
909
|
%t908 = load_input "statuses" :: array
|
910
910
|
%t909 = load_field statuses_el_182["rates"] :: any
|
911
911
|
%t910 = load_field t865["rate"] :: float
|
912
|
-
%t869 = call core.mul(%t880, %t910) :: float
|
912
|
+
%t869 = call core.mul:numeric(%t880, %t910) :: float
|
913
913
|
%acc863 = acc_add agg.sum(%acc863, %t869) :: float
|
914
914
|
end_loop
|
915
915
|
%t870 = acc_load %acc863 :: float
|
@@ -956,7 +956,7 @@
|
|
956
956
|
%t958 = load_input "statuses" :: array
|
957
957
|
%t959 = load_field statuses_el_182["rates"] :: any
|
958
958
|
%t960 = load_field t915["rate"] :: float
|
959
|
-
%t919 = call core.mul(%t930, %t960) :: float
|
959
|
+
%t919 = call core.mul:numeric(%t930, %t960) :: float
|
960
960
|
%acc913 = acc_add agg.sum(%acc913, %t919) :: float
|
961
961
|
end_loop
|
962
962
|
%t920 = acc_load %acc913 :: float
|
@@ -972,7 +972,7 @@
|
|
972
972
|
%t988 = make_tuple(%t986, %t987) :: tuple<float, integer>
|
973
973
|
%t989 = fold %t988 fn="agg.max" :: float
|
974
974
|
%t990 = const 0.009 :: float
|
975
|
-
%t991 = call core.mul(%t989, %t990) :: float
|
975
|
+
%t991 = call core.mul:numeric(%t989, %t990) :: float
|
976
976
|
%t973 = call core.add(%t971, %t991) :: float
|
977
977
|
%t963 = load_input "income" :: float
|
978
978
|
%t964 = const 1.0 :: float
|
@@ -989,7 +989,7 @@
|
|
989
989
|
%t1012 = make_tuple(%t1010, %t1011) :: tuple<float, integer>
|
990
990
|
%t1013 = fold %t1012 fn="agg.max" :: float
|
991
991
|
%t1014 = const 0.009 :: float
|
992
|
-
%t1015 = call core.mul(%t1013, %t1014) :: float
|
992
|
+
%t1015 = call core.mul:numeric(%t1013, %t1014) :: float
|
993
993
|
%t997 = call core.add(%t995, %t1015) :: float
|
994
994
|
%t191 = make_object{effective: %t967, tax: %t997} :: object
|
995
995
|
%t192 = load_input "state_rate" :: float
|
@@ -1038,7 +1038,7 @@
|
|
1038
1038
|
%t1084 = load_input "statuses" :: array
|
1039
1039
|
%t1085 = load_field statuses_el_182["rates"] :: any
|
1040
1040
|
%t1086 = load_field t1041["rate"] :: float
|
1041
|
-
%t1045 = call core.mul(%t1056, %t1086) :: float
|
1041
|
+
%t1045 = call core.mul:numeric(%t1056, %t1086) :: float
|
1042
1042
|
%acc1039 = acc_add agg.sum(%acc1039, %t1045) :: float
|
1043
1043
|
end_loop
|
1044
1044
|
%t1046 = acc_load %acc1039 :: float
|
@@ -1052,7 +1052,7 @@
|
|
1052
1052
|
%t1107 = make_tuple(%t1105, %t1106) :: tuple<float, integer>
|
1053
1053
|
%t1108 = fold %t1107 fn="agg.max" :: float
|
1054
1054
|
%t1109 = const 0.009 :: float
|
1055
|
-
%t1110 = call core.mul(%t1108, %t1109) :: float
|
1055
|
+
%t1110 = call core.mul:numeric(%t1108, %t1109) :: float
|
1056
1056
|
%t1092 = call core.add(%t1090, %t1110) :: float
|
1057
1057
|
%t1028 = call core.add(%t1046, %t1092) :: float
|
1058
1058
|
%t1029 = call core.add(%t1028, %t1033) :: float
|
@@ -1101,7 +1101,7 @@
|
|
1101
1101
|
%t1172 = load_input "statuses" :: array
|
1102
1102
|
%t1173 = load_field statuses_el_182["rates"] :: any
|
1103
1103
|
%t1174 = load_field t1129["rate"] :: float
|
1104
|
-
%t1133 = call core.mul(%t1144, %t1174) :: float
|
1104
|
+
%t1133 = call core.mul:numeric(%t1144, %t1174) :: float
|
1105
1105
|
%acc1127 = acc_add agg.sum(%acc1127, %t1133) :: float
|
1106
1106
|
end_loop
|
1107
1107
|
%t1134 = acc_load %acc1127 :: float
|
@@ -1115,7 +1115,7 @@
|
|
1115
1115
|
%t1195 = make_tuple(%t1193, %t1194) :: tuple<float, integer>
|
1116
1116
|
%t1196 = fold %t1195 fn="agg.max" :: float
|
1117
1117
|
%t1197 = const 0.009 :: float
|
1118
|
-
%t1198 = call core.mul(%t1196, %t1197) :: float
|
1118
|
+
%t1198 = call core.mul:numeric(%t1196, %t1197) :: float
|
1119
1119
|
%t1180 = call core.add(%t1178, %t1198) :: float
|
1120
1120
|
%t1116 = call core.add(%t1134, %t1180) :: float
|
1121
1121
|
%t1117 = call core.add(%t1116, %t1121) :: float
|
@@ -1162,7 +1162,7 @@
|
|
1162
1162
|
%t1264 = load_input "statuses" :: array
|
1163
1163
|
%t1265 = load_field statuses_el_182["rates"] :: any
|
1164
1164
|
%t1266 = load_field t1221["rate"] :: float
|
1165
|
-
%t1225 = call core.mul(%t1236, %t1266) :: float
|
1165
|
+
%t1225 = call core.mul:numeric(%t1236, %t1266) :: float
|
1166
1166
|
%acc1219 = acc_add agg.sum(%acc1219, %t1225) :: float
|
1167
1167
|
end_loop
|
1168
1168
|
%t1226 = acc_load %acc1219 :: float
|
@@ -1176,7 +1176,7 @@
|
|
1176
1176
|
%t1287 = make_tuple(%t1285, %t1286) :: tuple<float, integer>
|
1177
1177
|
%t1288 = fold %t1287 fn="agg.max" :: float
|
1178
1178
|
%t1289 = const 0.009 :: float
|
1179
|
-
%t1290 = call core.mul(%t1288, %t1289) :: float
|
1179
|
+
%t1290 = call core.mul:numeric(%t1288, %t1289) :: float
|
1180
1180
|
%t1272 = call core.add(%t1270, %t1290) :: float
|
1181
1181
|
%t1208 = call core.add(%t1226, %t1272) :: float
|
1182
1182
|
%t1209 = call core.add(%t1208, %t1213) :: float
|
@@ -1225,7 +1225,7 @@
|
|
1225
1225
|
%t1360 = load_input "statuses" :: array
|
1226
1226
|
%t1361 = load_field statuses_el_182["rates"] :: any
|
1227
1227
|
%t1362 = load_field t1317["rate"] :: float
|
1228
|
-
%t1321 = call core.mul(%t1332, %t1362) :: float
|
1228
|
+
%t1321 = call core.mul:numeric(%t1332, %t1362) :: float
|
1229
1229
|
%acc1315 = acc_add agg.sum(%acc1315, %t1321) :: float
|
1230
1230
|
end_loop
|
1231
1231
|
%t1322 = acc_load %acc1315 :: float
|
@@ -1239,7 +1239,7 @@
|
|
1239
1239
|
%t1383 = make_tuple(%t1381, %t1382) :: tuple<float, integer>
|
1240
1240
|
%t1384 = fold %t1383 fn="agg.max" :: float
|
1241
1241
|
%t1385 = const 0.009 :: float
|
1242
|
-
%t1386 = call core.mul(%t1384, %t1385) :: float
|
1242
|
+
%t1386 = call core.mul:numeric(%t1384, %t1385) :: float
|
1243
1243
|
%t1368 = call core.add(%t1366, %t1386) :: float
|
1244
1244
|
%t1304 = call core.add(%t1322, %t1368) :: float
|
1245
1245
|
%t1305 = call core.add(%t1304, %t1309) :: float
|