kumi 0.0.30 → 0.0.33
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 +21 -1
- data/README.md +31 -99
- data/data/kernels/ruby/core/arithmetic.yaml +2 -2
- data/docs/COMPOSED_SCHEMAS.md +137 -0
- data/docs/SCHEMA_IMPORTS.md +275 -0
- data/docs/SYNTAX.md +48 -0
- data/golden/array_element/expected/schema_ruby.rb +2 -27
- data/golden/array_index/expected/nast.txt +6 -6
- data/golden/array_index/expected/schema_ruby.rb +4 -31
- data/golden/array_operations/expected/lir_06_const_prop.txt +4 -8
- data/golden/array_operations/expected/schema_javascript.mjs +4 -8
- data/golden/array_operations/expected/schema_ruby.rb +10 -43
- data/golden/cascade_logic/expected/lir_06_const_prop.txt +7 -14
- data/golden/cascade_logic/expected/schema_javascript.mjs +7 -14
- data/golden/cascade_logic/expected/schema_ruby.rb +11 -45
- data/golden/chained_fusion/expected/lir_06_const_prop.txt +8 -18
- data/golden/chained_fusion/expected/schema_javascript.mjs +8 -18
- data/golden/chained_fusion/expected/schema_ruby.rb +14 -53
- data/golden/decimal_explicit/expected/schema_ruby.rb +4 -31
- data/golden/element_arrays/expected/lir_06_const_prop.txt +5 -11
- data/golden/element_arrays/expected/schema_javascript.mjs +5 -11
- data/golden/element_arrays/expected/schema_ruby.rb +13 -50
- data/golden/empty_and_null_inputs/expected/schema_ruby.rb +4 -31
- data/golden/example_xpto/expected/ast.txt +23 -0
- data/golden/example_xpto/expected/input_plan.txt +1 -0
- data/golden/example_xpto/expected/lir_00_unoptimized.txt +16 -0
- data/golden/example_xpto/expected/lir_01_hoist_scalar_references.txt +16 -0
- data/golden/example_xpto/expected/lir_02_inlined.txt +16 -0
- data/golden/example_xpto/expected/lir_03_cse.txt +16 -0
- data/golden/example_xpto/expected/lir_04_1_loop_fusion.txt +16 -0
- data/golden/example_xpto/expected/lir_04_loop_invcm.txt +16 -0
- data/golden/example_xpto/expected/lir_06_const_prop.txt +13 -0
- data/golden/example_xpto/expected/nast.txt +17 -0
- data/golden/example_xpto/expected/schema_javascript.mjs +13 -0
- data/golden/example_xpto/expected/schema_ruby.rb +13 -0
- data/golden/example_xpto/expected/snast.txt +17 -0
- data/golden/example_xpto/expected.json +4 -0
- data/golden/example_xpto/input.json +3 -0
- data/golden/example_xpto/schema.kumi +8 -0
- data/golden/function_overload/expected/schema_ruby.rb +2 -27
- data/golden/game_of_life/expected/lir_06_const_prop.txt +236 -287
- data/golden/game_of_life/expected/schema_javascript.mjs +32 -39
- data/golden/game_of_life/expected/schema_ruby.rb +34 -66
- data/golden/hash_keys/expected/lir_06_const_prop.txt +4 -10
- data/golden/hash_keys/expected/schema_javascript.mjs +6 -12
- data/golden/hash_keys/expected/schema_ruby.rb +8 -39
- data/golden/hash_value/expected/lir_06_const_prop.txt +3 -6
- data/golden/hash_value/expected/schema_javascript.mjs +3 -6
- data/golden/hash_value/expected/schema_ruby.rb +7 -37
- data/golden/hierarchical_complex/expected/lir_06_const_prop.txt +9 -18
- data/golden/hierarchical_complex/expected/schema_javascript.mjs +9 -18
- data/golden/hierarchical_complex/expected/schema_ruby.rb +14 -51
- data/golden/inline_rename_scope_leak/expected/lir_06_const_prop.txt +2 -6
- data/golden/inline_rename_scope_leak/expected/schema_javascript.mjs +2 -6
- data/golden/inline_rename_scope_leak/expected/schema_ruby.rb +7 -39
- data/golden/input_reference/expected/schema_ruby.rb +6 -35
- data/golden/interleaved_fusion/expected/lir_06_const_prop.txt +6 -14
- data/golden/interleaved_fusion/expected/schema_javascript.mjs +6 -14
- data/golden/interleaved_fusion/expected/schema_ruby.rb +11 -47
- data/golden/let_inline/expected/lir_06_const_prop.txt +1 -2
- data/golden/let_inline/expected/schema_javascript.mjs +1 -2
- data/golden/let_inline/expected/schema_ruby.rb +3 -29
- data/golden/loop_fusion/expected/lir_06_const_prop.txt +4 -10
- data/golden/loop_fusion/expected/schema_javascript.mjs +4 -10
- data/golden/loop_fusion/expected/schema_ruby.rb +8 -41
- data/golden/min_reduce_scope/expected/lir_06_const_prop.txt +3 -6
- data/golden/min_reduce_scope/expected/schema_javascript.mjs +3 -6
- data/golden/min_reduce_scope/expected/schema_ruby.rb +8 -39
- data/golden/mixed_dimensions/expected/lir_06_const_prop.txt +1 -2
- data/golden/mixed_dimensions/expected/schema_javascript.mjs +1 -2
- data/golden/mixed_dimensions/expected/schema_ruby.rb +5 -33
- data/golden/multirank_hoisting/expected/lir_06_const_prop.txt +9 -18
- data/golden/multirank_hoisting/expected/schema_javascript.mjs +9 -18
- data/golden/multirank_hoisting/expected/schema_ruby.rb +16 -55
- data/golden/nested_hash/expected/lir_06_const_prop.txt +1 -2
- data/golden/nested_hash/expected/schema_javascript.mjs +1 -2
- data/golden/nested_hash/expected/schema_ruby.rb +3 -29
- data/golden/reduction_broadcast/expected/schema_ruby.rb +5 -33
- data/golden/roll/expected/lir_06_const_prop.txt +8 -15
- data/golden/roll/expected/schema_javascript.mjs +8 -15
- data/golden/roll/expected/schema_ruby.rb +13 -48
- data/golden/schema_imports_broadcasting_with_imports/expected/ast.txt +26 -0
- data/golden/schema_imports_broadcasting_with_imports/expected/input_plan.txt +5 -0
- data/golden/schema_imports_broadcasting_with_imports/expected/lir_00_unoptimized.txt +20 -0
- data/golden/schema_imports_broadcasting_with_imports/expected/lir_01_hoist_scalar_references.txt +20 -0
- data/golden/schema_imports_broadcasting_with_imports/expected/lir_02_inlined.txt +22 -0
- data/golden/schema_imports_broadcasting_with_imports/expected/lir_03_cse.txt +21 -0
- data/golden/schema_imports_broadcasting_with_imports/expected/lir_04_1_loop_fusion.txt +21 -0
- data/golden/schema_imports_broadcasting_with_imports/expected/lir_04_loop_invcm.txt +21 -0
- data/golden/schema_imports_broadcasting_with_imports/expected/lir_06_const_prop.txt +21 -0
- data/golden/schema_imports_broadcasting_with_imports/expected/nast.txt +12 -0
- data/golden/schema_imports_broadcasting_with_imports/expected/schema_javascript.mjs +22 -0
- data/golden/schema_imports_broadcasting_with_imports/expected/schema_ruby.rb +24 -0
- data/golden/schema_imports_broadcasting_with_imports/expected/snast.txt +12 -0
- data/golden/schema_imports_broadcasting_with_imports/expected.json +4 -0
- data/golden/schema_imports_broadcasting_with_imports/input.json +7 -0
- data/golden/schema_imports_broadcasting_with_imports/schema.kumi +14 -0
- data/golden/schema_imports_complex_order_calc/expected/ast.txt +82 -0
- data/golden/schema_imports_complex_order_calc/expected/input_plan.txt +16 -0
- data/golden/schema_imports_complex_order_calc/expected/lir_00_unoptimized.txt +94 -0
- data/golden/schema_imports_complex_order_calc/expected/lir_01_hoist_scalar_references.txt +94 -0
- data/golden/schema_imports_complex_order_calc/expected/lir_02_inlined.txt +187 -0
- data/golden/schema_imports_complex_order_calc/expected/lir_03_cse.txt +131 -0
- data/golden/schema_imports_complex_order_calc/expected/lir_04_1_loop_fusion.txt +131 -0
- data/golden/schema_imports_complex_order_calc/expected/lir_04_loop_invcm.txt +131 -0
- data/golden/schema_imports_complex_order_calc/expected/lir_06_const_prop.txt +131 -0
- data/golden/schema_imports_complex_order_calc/expected/nast.txt +56 -0
- data/golden/schema_imports_complex_order_calc/expected/schema_javascript.mjs +147 -0
- data/golden/schema_imports_complex_order_calc/expected/schema_ruby.rb +149 -0
- data/golden/schema_imports_complex_order_calc/expected/snast.txt +56 -0
- data/golden/schema_imports_complex_order_calc/expected.json +12 -0
- data/golden/schema_imports_complex_order_calc/input.json +20 -0
- data/golden/schema_imports_complex_order_calc/schema.kumi +33 -0
- data/golden/schema_imports_composed_order/expected/ast.txt +33 -0
- data/golden/schema_imports_composed_order/expected/input_plan.txt +3 -0
- data/golden/schema_imports_composed_order/expected/lir_00_unoptimized.txt +25 -0
- data/golden/schema_imports_composed_order/expected/lir_01_hoist_scalar_references.txt +25 -0
- data/golden/schema_imports_composed_order/expected/lir_02_inlined.txt +33 -0
- data/golden/schema_imports_composed_order/expected/lir_03_cse.txt +33 -0
- data/golden/schema_imports_composed_order/expected/lir_04_1_loop_fusion.txt +33 -0
- data/golden/schema_imports_composed_order/expected/lir_04_loop_invcm.txt +33 -0
- data/golden/schema_imports_composed_order/expected/lir_06_const_prop.txt +33 -0
- data/golden/schema_imports_composed_order/expected/nast.txt +25 -0
- data/golden/schema_imports_composed_order/expected/schema_javascript.mjs +35 -0
- data/golden/schema_imports_composed_order/expected/schema_ruby.rb +33 -0
- data/golden/schema_imports_composed_order/expected/snast.txt +25 -0
- data/golden/schema_imports_composed_order/expected.json +6 -0
- data/golden/schema_imports_composed_order/input.json +5 -0
- data/golden/schema_imports_composed_order/schema.kumi +15 -0
- data/golden/schema_imports_discount_with_tax/expected/ast.txt +37 -0
- data/golden/schema_imports_discount_with_tax/expected/input_plan.txt +2 -0
- data/golden/schema_imports_discount_with_tax/expected/lir_00_unoptimized.txt +30 -0
- data/golden/schema_imports_discount_with_tax/expected/lir_01_hoist_scalar_references.txt +30 -0
- data/golden/schema_imports_discount_with_tax/expected/lir_02_inlined.txt +37 -0
- data/golden/schema_imports_discount_with_tax/expected/lir_03_cse.txt +34 -0
- data/golden/schema_imports_discount_with_tax/expected/lir_04_1_loop_fusion.txt +34 -0
- data/golden/schema_imports_discount_with_tax/expected/lir_04_loop_invcm.txt +34 -0
- data/golden/schema_imports_discount_with_tax/expected/lir_06_const_prop.txt +34 -0
- data/golden/schema_imports_discount_with_tax/expected/nast.txt +30 -0
- data/golden/schema_imports_discount_with_tax/expected/schema_javascript.mjs +37 -0
- data/golden/schema_imports_discount_with_tax/expected/schema_ruby.rb +34 -0
- data/golden/schema_imports_discount_with_tax/expected/snast.txt +30 -0
- data/golden/schema_imports_discount_with_tax/expected.json +7 -0
- data/golden/schema_imports_discount_with_tax/input.json +4 -0
- data/golden/schema_imports_discount_with_tax/schema.kumi +15 -0
- data/golden/schema_imports_line_items/expected/ast.txt +35 -0
- data/golden/schema_imports_line_items/expected/input_plan.txt +8 -0
- data/golden/schema_imports_line_items/expected/lir_00_unoptimized.txt +19 -0
- data/golden/schema_imports_line_items/expected/lir_01_hoist_scalar_references.txt +19 -0
- data/golden/schema_imports_line_items/expected/lir_02_inlined.txt +24 -0
- data/golden/schema_imports_line_items/expected/lir_03_cse.txt +22 -0
- data/golden/schema_imports_line_items/expected/lir_04_1_loop_fusion.txt +22 -0
- data/golden/schema_imports_line_items/expected/lir_04_loop_invcm.txt +22 -0
- data/golden/schema_imports_line_items/expected/lir_06_const_prop.txt +22 -0
- data/golden/schema_imports_line_items/expected/nast.txt +19 -0
- data/golden/schema_imports_line_items/expected/schema_javascript.mjs +23 -0
- data/golden/schema_imports_line_items/expected/schema_ruby.rb +22 -0
- data/golden/schema_imports_line_items/expected/snast.txt +19 -0
- data/golden/schema_imports_line_items/expected.json +5 -0
- data/golden/schema_imports_line_items/input.json +13 -0
- data/golden/schema_imports_line_items/schema.kumi +17 -0
- data/golden/schema_imports_multiple/expected/ast.txt +35 -0
- data/golden/schema_imports_multiple/expected/input_plan.txt +2 -0
- data/golden/schema_imports_multiple/expected/lir_00_unoptimized.txt +29 -0
- data/golden/schema_imports_multiple/expected/lir_01_hoist_scalar_references.txt +29 -0
- data/golden/schema_imports_multiple/expected/lir_02_inlined.txt +41 -0
- data/golden/schema_imports_multiple/expected/lir_03_cse.txt +37 -0
- data/golden/schema_imports_multiple/expected/lir_04_1_loop_fusion.txt +37 -0
- data/golden/schema_imports_multiple/expected/lir_04_loop_invcm.txt +37 -0
- data/golden/schema_imports_multiple/expected/lir_06_const_prop.txt +37 -0
- data/golden/schema_imports_multiple/expected/nast.txt +28 -0
- data/golden/schema_imports_multiple/expected/schema_javascript.mjs +40 -0
- data/golden/schema_imports_multiple/expected/schema_ruby.rb +37 -0
- data/golden/schema_imports_multiple/expected/snast.txt +28 -0
- data/golden/schema_imports_multiple/expected.json +7 -0
- data/golden/schema_imports_multiple/input.json +4 -0
- data/golden/schema_imports_multiple/schema.kumi +15 -0
- data/golden/schema_imports_nested_expressions/expected/ast.txt +31 -0
- data/golden/schema_imports_nested_expressions/expected/input_plan.txt +3 -0
- data/golden/schema_imports_nested_expressions/expected/lir_00_unoptimized.txt +22 -0
- data/golden/schema_imports_nested_expressions/expected/lir_01_hoist_scalar_references.txt +22 -0
- data/golden/schema_imports_nested_expressions/expected/lir_02_inlined.txt +32 -0
- data/golden/schema_imports_nested_expressions/expected/lir_03_cse.txt +32 -0
- data/golden/schema_imports_nested_expressions/expected/lir_04_1_loop_fusion.txt +32 -0
- data/golden/schema_imports_nested_expressions/expected/lir_04_loop_invcm.txt +32 -0
- data/golden/schema_imports_nested_expressions/expected/lir_06_const_prop.txt +28 -0
- data/golden/schema_imports_nested_expressions/expected/nast.txt +23 -0
- data/golden/schema_imports_nested_expressions/expected/schema_javascript.mjs +29 -0
- data/golden/schema_imports_nested_expressions/expected/schema_ruby.rb +28 -0
- data/golden/schema_imports_nested_expressions/expected/snast.txt +23 -0
- data/golden/schema_imports_nested_expressions/expected.json +5 -0
- data/golden/schema_imports_nested_expressions/input.json +5 -0
- data/golden/schema_imports_nested_expressions/schema.kumi +13 -0
- data/golden/schema_imports_nested_with_reductions/expected/ast.txt +47 -0
- data/golden/schema_imports_nested_with_reductions/expected/input_plan.txt +12 -0
- data/golden/schema_imports_nested_with_reductions/expected/lir_00_unoptimized.txt +31 -0
- data/golden/schema_imports_nested_with_reductions/expected/lir_01_hoist_scalar_references.txt +31 -0
- data/golden/schema_imports_nested_with_reductions/expected/lir_02_inlined.txt +58 -0
- data/golden/schema_imports_nested_with_reductions/expected/lir_03_cse.txt +49 -0
- data/golden/schema_imports_nested_with_reductions/expected/lir_04_1_loop_fusion.txt +51 -0
- data/golden/schema_imports_nested_with_reductions/expected/lir_04_loop_invcm.txt +49 -0
- data/golden/schema_imports_nested_with_reductions/expected/lir_06_const_prop.txt +49 -0
- data/golden/schema_imports_nested_with_reductions/expected/nast.txt +23 -0
- data/golden/schema_imports_nested_with_reductions/expected/schema_javascript.mjs +49 -0
- data/golden/schema_imports_nested_with_reductions/expected/schema_ruby.rb +52 -0
- data/golden/schema_imports_nested_with_reductions/expected/snast.txt +23 -0
- data/golden/schema_imports_nested_with_reductions/expected.json +6 -0
- data/golden/schema_imports_nested_with_reductions/input.json +16 -0
- data/golden/schema_imports_nested_with_reductions/schema.kumi +23 -0
- data/golden/schema_imports_with_imports/expected/ast.txt +19 -0
- data/golden/schema_imports_with_imports/expected/input_plan.txt +1 -0
- data/golden/schema_imports_with_imports/expected/lir_00_unoptimized.txt +13 -0
- data/golden/schema_imports_with_imports/expected/lir_01_hoist_scalar_references.txt +13 -0
- data/golden/schema_imports_with_imports/expected/lir_02_inlined.txt +14 -0
- data/golden/schema_imports_with_imports/expected/lir_03_cse.txt +13 -0
- data/golden/schema_imports_with_imports/expected/lir_04_1_loop_fusion.txt +13 -0
- data/golden/schema_imports_with_imports/expected/lir_04_loop_invcm.txt +13 -0
- data/golden/schema_imports_with_imports/expected/lir_06_const_prop.txt +13 -0
- data/golden/schema_imports_with_imports/expected/nast.txt +13 -0
- data/golden/schema_imports_with_imports/expected/schema_javascript.mjs +13 -0
- data/golden/schema_imports_with_imports/expected/schema_ruby.rb +13 -0
- data/golden/schema_imports_with_imports/expected/snast.txt +13 -0
- data/golden/schema_imports_with_imports/expected.json +4 -0
- data/golden/schema_imports_with_imports/input.json +3 -0
- data/golden/schema_imports_with_imports/schema.kumi +10 -0
- data/golden/shift/expected/lir_06_const_prop.txt +18 -30
- data/golden/shift/expected/schema_javascript.mjs +18 -30
- data/golden/shift/expected/schema_ruby.rb +25 -67
- data/golden/shift_2d/expected/lir_06_const_prop.txt +36 -60
- data/golden/shift_2d/expected/schema_javascript.mjs +36 -60
- data/golden/shift_2d/expected/schema_ruby.rb +49 -109
- data/golden/simple_math/expected/lir_06_const_prop.txt +3 -6
- data/golden/simple_math/expected/schema_javascript.mjs +3 -6
- data/golden/simple_math/expected/schema_ruby.rb +8 -39
- data/golden/streaming_basics/expected/lir_06_const_prop.txt +6 -12
- data/golden/streaming_basics/expected/schema_javascript.mjs +6 -12
- data/golden/streaming_basics/expected/schema_ruby.rb +14 -51
- data/golden/tuples/expected/lir_06_const_prop.txt +5 -22
- data/golden/tuples/expected/schema_javascript.mjs +5 -22
- data/golden/tuples/expected/schema_ruby.rb +11 -57
- data/golden/tuples_and_arrays/expected/lir_06_const_prop.txt +4 -8
- data/golden/tuples_and_arrays/expected/schema_javascript.mjs +4 -8
- data/golden/tuples_and_arrays/expected/schema_ruby.rb +9 -41
- data/golden/us_tax_2024/expected/lir_06_const_prop.txt +94 -171
- data/golden/us_tax_2024/expected/schema_javascript.mjs +13 -21
- data/golden/us_tax_2024/expected/schema_ruby.rb +15 -48
- data/golden/with_constants/expected/lir_06_const_prop.txt +3 -8
- data/golden/with_constants/expected/schema_javascript.mjs +3 -8
- data/golden/with_constants/expected/schema_ruby.rb +5 -35
- data/lib/kumi/analyzer.rb +8 -7
- data/lib/kumi/configuration.rb +7 -6
- data/lib/kumi/core/analyzer/passes/attach_anchors_pass.rb +1 -1
- data/lib/kumi/core/analyzer/passes/attach_terminal_info_pass.rb +1 -1
- data/lib/kumi/core/analyzer/passes/codegen/js/declaration_emitter.rb +20 -0
- data/lib/kumi/core/analyzer/passes/codegen/ruby/declaration_emitter.rb +16 -7
- data/lib/kumi/core/analyzer/passes/codegen/ruby/output_buffer.rb +3 -35
- data/lib/kumi/core/analyzer/passes/dependency_resolver.rb +6 -0
- data/lib/kumi/core/analyzer/passes/import_analysis_pass.rb +90 -0
- data/lib/kumi/core/analyzer/passes/lir/constant_propagation_pass.rb +77 -36
- data/lib/kumi/core/analyzer/passes/lir/lower_pass.rb +26 -11
- data/lib/kumi/core/analyzer/passes/name_indexer.rb +20 -2
- data/lib/kumi/core/analyzer/passes/nast_dimensional_analyzer_pass.rb +44 -0
- data/lib/kumi/core/analyzer/passes/normalize_to_nast_pass.rb +30 -0
- data/lib/kumi/core/analyzer/passes/semantic_constraint_validator.rb +5 -1
- data/lib/kumi/core/analyzer/passes/snast_pass.rb +15 -0
- data/lib/kumi/core/lir/build.rb +27 -0
- data/lib/kumi/core/lir/peephole.rb +164 -0
- data/lib/kumi/core/nast.rb +16 -0
- data/lib/kumi/core/ruby_parser/build_context.rb +3 -1
- data/lib/kumi/core/ruby_parser/parser.rb +1 -1
- data/lib/kumi/core/ruby_parser/schema_builder.rb +33 -3
- data/lib/kumi/dev/golden/result.rb +9 -3
- data/lib/kumi/dev/golden/runtime_test.rb +16 -1
- data/lib/kumi/dev/golden.rb +18 -20
- data/lib/kumi/dev/golden_schema_modules.rb +8 -0
- data/lib/kumi/dev/golden_schema_wrapper.rb +116 -0
- data/lib/kumi/dev/support/kumi_runner.mjs +18 -0
- data/lib/kumi/schema.rb +44 -2
- data/lib/kumi/support/lir_printer.rb +21 -5
- data/lib/kumi/support/nast_printer.rb +11 -0
- data/lib/kumi/support/s_expression_printer.rb +9 -0
- data/lib/kumi/support/snast_printer.rb +6 -0
- data/lib/kumi/syntax/import_call.rb +11 -0
- data/lib/kumi/syntax/import_declaration.rb +11 -0
- data/lib/kumi/syntax/root.rb +2 -2
- data/lib/kumi/test_shared_schemas/compound.rb +21 -0
- data/lib/kumi/test_shared_schemas/discount.rb +19 -0
- data/lib/kumi/test_shared_schemas/price.rb +19 -0
- data/lib/kumi/test_shared_schemas/subtotal.rb +22 -0
- data/lib/kumi/test_shared_schemas/tax.rb +18 -0
- data/lib/kumi/version.rb +1 -1
- data/lib/kumi.rb +19 -4
- metadata +176 -3
|
@@ -14,11 +14,10 @@
|
|
|
14
14
|
(Declaration taxable
|
|
15
15
|
%t7 = load_input "statuses" :: array
|
|
16
16
|
%t10 = load_input "income" :: float
|
|
17
|
-
%t13 = const 0 :: integer
|
|
18
17
|
loop statuses id=L1 in %t7 as el=%statuses_el_8, idx=%statuses_i_9
|
|
19
18
|
%t11 = load_field statuses_el_8["std"] :: float
|
|
20
19
|
%t12 = call core.sub(%t10, %t11) :: float
|
|
21
|
-
%t14 = make_tuple(%t12, %
|
|
20
|
+
%t14 = make_tuple(%t12, %__immediate_placeholder__) :: tuple<float, integer>
|
|
22
21
|
%t15 = fold %t14 fn="agg.max" :: float
|
|
23
22
|
yield %t15
|
|
24
23
|
end_loop
|
|
@@ -54,19 +53,16 @@
|
|
|
54
53
|
end_loop
|
|
55
54
|
)
|
|
56
55
|
(Declaration big_hi
|
|
57
|
-
%
|
|
58
|
-
yield %t37
|
|
56
|
+
yield %__immediate_placeholder__
|
|
59
57
|
)
|
|
60
58
|
(Declaration hi_eff
|
|
61
59
|
%t38 = load_input "statuses" :: array
|
|
62
|
-
%t45 = const -1 :: integer
|
|
63
|
-
%t47 = const 100000000000.0 :: float
|
|
64
60
|
loop statuses id=L8 in %t38 as el=%statuses_el_39, idx=%statuses_i_40
|
|
65
61
|
%t41 = load_field statuses_el_39["rates"] :: any
|
|
66
62
|
loop rates id=L9 in %t41 as el=%rates_el_42, idx=%rates_i_43
|
|
67
63
|
%t209 = load_field rates_el_42["hi"] :: float
|
|
68
|
-
%t46 = call core.eq(%t209,
|
|
69
|
-
%t49 = select %t46,
|
|
64
|
+
%t46 = call core.eq(%t209, -1) :: boolean
|
|
65
|
+
%t49 = select %t46, 100000000000.0, %t209 :: float
|
|
70
66
|
yield %t49
|
|
71
67
|
end_loop
|
|
72
68
|
end_loop
|
|
@@ -74,23 +70,20 @@
|
|
|
74
70
|
(Declaration amt
|
|
75
71
|
%t50 = load_input "statuses" :: array
|
|
76
72
|
%t214 = load_input "income" :: float
|
|
77
|
-
%t217 = const 0 :: integer
|
|
78
|
-
%t226 = const -1 :: integer
|
|
79
|
-
%t228 = const 100000000000.0 :: float
|
|
80
73
|
loop statuses id=L10 in %t50 as el=%statuses_el_51, idx=%statuses_i_52
|
|
81
74
|
%t215 = load_field statuses_el_51["std"] :: float
|
|
82
75
|
%t53 = load_field statuses_el_51["rates"] :: any
|
|
83
76
|
%t216 = call core.sub(%t214, %t215) :: float
|
|
84
|
-
%t218 = make_tuple(%t216, %
|
|
77
|
+
%t218 = make_tuple(%t216, %__immediate_placeholder__) :: tuple<float, integer>
|
|
85
78
|
%t219 = fold %t218 fn="agg.max" :: float
|
|
86
79
|
loop rates id=L11 in %t53 as el=%rates_el_54, idx=%rates_i_55
|
|
87
80
|
%t222 = load_field rates_el_54["lo"] :: float
|
|
88
81
|
%t58 = call core.sub(%t219, %t222) :: float
|
|
89
82
|
%t233 = load_field rates_el_54["hi"] :: float
|
|
90
|
-
%t227 = call core.eq(%t233,
|
|
91
|
-
%t230 = select %t227,
|
|
83
|
+
%t227 = call core.eq(%t233, -1) :: boolean
|
|
84
|
+
%t230 = select %t227, 100000000000.0, %t233 :: float
|
|
92
85
|
%t62 = call core.sub(%t230, %t222) :: float
|
|
93
|
-
%t63 = call core.clamp(%t58,
|
|
86
|
+
%t63 = call core.clamp(%t58, 0, %t62) :: float
|
|
94
87
|
yield %t63
|
|
95
88
|
end_loop
|
|
96
89
|
end_loop
|
|
@@ -98,24 +91,21 @@
|
|
|
98
91
|
(Declaration fed_tax
|
|
99
92
|
%t64 = load_input "statuses" :: array
|
|
100
93
|
%t251 = load_input "income" :: float
|
|
101
|
-
%t254 = const 0 :: integer
|
|
102
|
-
%t263 = const -1 :: integer
|
|
103
|
-
%t265 = const 100000000000.0 :: float
|
|
104
94
|
loop statuses id=L12 in %t64 as el=%statuses_el_65, idx=%statuses_i_66
|
|
105
95
|
%t252 = load_field statuses_el_65["std"] :: float
|
|
106
96
|
%acc_67 = decl_acc :: float
|
|
107
97
|
%t68 = load_field statuses_el_65["rates"] :: any
|
|
108
98
|
%t253 = call core.sub(%t251, %t252) :: float
|
|
109
|
-
%t255 = make_tuple(%t253, %
|
|
99
|
+
%t255 = make_tuple(%t253, %__immediate_placeholder__) :: tuple<float, integer>
|
|
110
100
|
%t256 = fold %t255 fn="agg.max" :: float
|
|
111
101
|
loop rates id=L13 in %t68 as el=%rates_el_69, idx=%rates_i_70
|
|
112
102
|
%t259 = load_field rates_el_69["lo"] :: float
|
|
113
103
|
%t244 = call core.sub(%t256, %t259) :: float
|
|
114
104
|
%t270 = load_field rates_el_69["hi"] :: float
|
|
115
|
-
%t264 = call core.eq(%t270,
|
|
116
|
-
%t267 = select %t264,
|
|
105
|
+
%t264 = call core.eq(%t270, -1) :: boolean
|
|
106
|
+
%t267 = select %t264, 100000000000.0, %t270 :: float
|
|
117
107
|
%t248 = call core.sub(%t267, %t259) :: float
|
|
118
|
-
%t249 = call core.clamp(%t244,
|
|
108
|
+
%t249 = call core.clamp(%t244, 0, %t248) :: float
|
|
119
109
|
%t279 = load_field rates_el_69["rate"] :: float
|
|
120
110
|
%t73 = call core.mul:numeric(%t249, %t279) :: float
|
|
121
111
|
%acc_67 = acc_add agg.sum(%acc_67, %t73) :: float
|
|
@@ -127,21 +117,18 @@
|
|
|
127
117
|
(Declaration in_br
|
|
128
118
|
%t75 = load_input "statuses" :: array
|
|
129
119
|
%t281 = load_input "income" :: float
|
|
130
|
-
%t284 = const 0 :: integer
|
|
131
|
-
%t300 = const -1 :: integer
|
|
132
|
-
%t302 = const 100000000000.0 :: float
|
|
133
120
|
loop statuses id=L14 in %t75 as el=%statuses_el_76, idx=%statuses_i_77
|
|
134
121
|
%t282 = load_field statuses_el_76["std"] :: float
|
|
135
122
|
%t78 = load_field statuses_el_76["rates"] :: any
|
|
136
123
|
%t283 = call core.sub(%t281, %t282) :: float
|
|
137
|
-
%t285 = make_tuple(%t283, %
|
|
124
|
+
%t285 = make_tuple(%t283, %__immediate_placeholder__) :: tuple<float, integer>
|
|
138
125
|
%t286 = fold %t285 fn="agg.max" :: float
|
|
139
126
|
loop rates id=L15 in %t78 as el=%rates_el_79, idx=%rates_i_80
|
|
140
127
|
%t289 = load_field rates_el_79["lo"] :: float
|
|
141
128
|
%t83 = call core.gte(%t286, %t289) :: boolean
|
|
142
129
|
%t307 = load_field rates_el_79["hi"] :: float
|
|
143
|
-
%t301 = call core.eq(%t307,
|
|
144
|
-
%t304 = select %t301,
|
|
130
|
+
%t301 = call core.eq(%t307, -1) :: boolean
|
|
131
|
+
%t304 = select %t301, 100000000000.0, %t307 :: float
|
|
145
132
|
%t86 = call core.lt(%t286, %t304) :: boolean
|
|
146
133
|
%t87 = call core.and(%t83, %t86) :: boolean
|
|
147
134
|
yield %t87
|
|
@@ -151,26 +138,23 @@
|
|
|
151
138
|
(Declaration fed_marg
|
|
152
139
|
%t88 = load_input "statuses" :: array
|
|
153
140
|
%t321 = load_input "income" :: float
|
|
154
|
-
%t324 = const 0 :: integer
|
|
155
|
-
%t340 = const -1 :: integer
|
|
156
|
-
%t342 = const 100000000000.0 :: float
|
|
157
141
|
loop statuses id=L16 in %t88 as el=%statuses_el_89, idx=%statuses_i_90
|
|
158
142
|
%t322 = load_field statuses_el_89["std"] :: float
|
|
159
143
|
%acc_91 = decl_acc :: float
|
|
160
144
|
%t92 = load_field statuses_el_89["rates"] :: any
|
|
161
145
|
%t323 = call core.sub(%t321, %t322) :: float
|
|
162
|
-
%t325 = make_tuple(%t323, %
|
|
146
|
+
%t325 = make_tuple(%t323, %__immediate_placeholder__) :: tuple<float, integer>
|
|
163
147
|
%t326 = fold %t325 fn="agg.max" :: float
|
|
164
148
|
loop rates id=L17 in %t92 as el=%rates_el_93, idx=%rates_i_94
|
|
165
149
|
%t329 = load_field rates_el_93["lo"] :: float
|
|
166
150
|
%t315 = call core.gte(%t326, %t329) :: boolean
|
|
167
151
|
%t347 = load_field rates_el_93["hi"] :: float
|
|
168
|
-
%t341 = call core.eq(%t347,
|
|
169
|
-
%t344 = select %t341,
|
|
152
|
+
%t341 = call core.eq(%t347, -1) :: boolean
|
|
153
|
+
%t344 = select %t341, 100000000000.0, %t347 :: float
|
|
170
154
|
%t318 = call core.lt(%t326, %t344) :: boolean
|
|
171
155
|
%t319 = call core.and(%t315, %t318) :: boolean
|
|
172
156
|
%t353 = load_field rates_el_93["rate"] :: float
|
|
173
|
-
%t98 = select %t319, %t353,
|
|
157
|
+
%t98 = select %t319, %t353, 0 :: float
|
|
174
158
|
%acc_91 = acc_add agg.sum(%acc_91, %t98) :: float
|
|
175
159
|
end_loop
|
|
176
160
|
%t99 = acc_load %acc_91 :: float
|
|
@@ -180,27 +164,23 @@
|
|
|
180
164
|
(Declaration fed_eff
|
|
181
165
|
%t100 = load_input "statuses" :: array
|
|
182
166
|
%t375 = load_input "income" :: float
|
|
183
|
-
%
|
|
184
|
-
%t105 = const 1.0 :: float
|
|
185
|
-
%t387 = const -1 :: integer
|
|
186
|
-
%t389 = const 100000000000.0 :: float
|
|
187
|
-
%t106 = make_tuple(%t375, %t105) :: tuple<float, float>
|
|
167
|
+
%t106 = make_tuple(%t375, %__immediate_placeholder__) :: tuple<float, float>
|
|
188
168
|
%t107 = fold %t106 fn="agg.max" :: float
|
|
189
169
|
loop statuses id=L18 in %t100 as el=%statuses_el_101, idx=%statuses_i_102
|
|
190
170
|
%t376 = load_field statuses_el_101["std"] :: float
|
|
191
171
|
%acc356 = decl_acc :: float
|
|
192
172
|
%t357 = load_field statuses_el_101["rates"] :: any
|
|
193
173
|
%t377 = call core.sub(%t375, %t376) :: float
|
|
194
|
-
%t379 = make_tuple(%t377, %
|
|
174
|
+
%t379 = make_tuple(%t377, %__immediate_placeholder__) :: tuple<float, integer>
|
|
195
175
|
%t380 = fold %t379 fn="agg.max" :: float
|
|
196
176
|
loop rates id=L27 in %t357 as el=%t358, idx=%t359
|
|
197
177
|
%t383 = load_field t358["lo"] :: float
|
|
198
178
|
%t368 = call core.sub(%t380, %t383) :: float
|
|
199
179
|
%t394 = load_field t358["hi"] :: float
|
|
200
|
-
%t388 = call core.eq(%t394,
|
|
201
|
-
%t391 = select %t388,
|
|
180
|
+
%t388 = call core.eq(%t394, -1) :: boolean
|
|
181
|
+
%t391 = select %t388, 100000000000.0, %t394 :: float
|
|
202
182
|
%t372 = call core.sub(%t391, %t383) :: float
|
|
203
|
-
%t373 = call core.clamp(%t368,
|
|
183
|
+
%t373 = call core.clamp(%t368, 0, %t372) :: float
|
|
204
184
|
%t403 = load_field t358["rate"] :: float
|
|
205
185
|
%t362 = call core.mul:numeric(%t373, %t403) :: float
|
|
206
186
|
%acc356 = acc_add agg.sum(%acc356, %t362) :: float
|
|
@@ -211,95 +191,75 @@
|
|
|
211
191
|
end_loop
|
|
212
192
|
)
|
|
213
193
|
(Declaration ss_wage_base
|
|
214
|
-
%
|
|
215
|
-
yield %t109
|
|
194
|
+
yield %__immediate_placeholder__
|
|
216
195
|
)
|
|
217
196
|
(Declaration ss_rate
|
|
218
|
-
%
|
|
219
|
-
yield %t110
|
|
197
|
+
yield %__immediate_placeholder__
|
|
220
198
|
)
|
|
221
199
|
(Declaration ss_tax
|
|
222
200
|
%t111 = load_input "income" :: float
|
|
223
|
-
%
|
|
224
|
-
%t113 = make_tuple(%t111, %t112) :: tuple<float, float>
|
|
201
|
+
%t113 = make_tuple(%t111, %__immediate_placeholder__) :: tuple<float, float>
|
|
225
202
|
%t114 = fold %t113 fn="agg.min" :: float
|
|
226
|
-
%
|
|
227
|
-
%t116 = call core.mul:numeric(%t114, %t115) :: float
|
|
203
|
+
%t116 = call core.mul:numeric(%t114, 0.062) :: float
|
|
228
204
|
yield %t116
|
|
229
205
|
)
|
|
230
206
|
(Declaration med_base_rate
|
|
231
|
-
%
|
|
232
|
-
yield %t117
|
|
207
|
+
yield %__immediate_placeholder__
|
|
233
208
|
)
|
|
234
209
|
(Declaration med_tax
|
|
235
210
|
%t118 = load_input "income" :: float
|
|
236
|
-
%
|
|
237
|
-
%t120 = call core.mul:numeric(%t118, %t119) :: float
|
|
211
|
+
%t120 = call core.mul:numeric(%t118, 0.0145) :: float
|
|
238
212
|
yield %t120
|
|
239
213
|
)
|
|
240
214
|
(Declaration addl_med_rate
|
|
241
|
-
%
|
|
242
|
-
yield %t121
|
|
215
|
+
yield %__immediate_placeholder__
|
|
243
216
|
)
|
|
244
217
|
(Declaration addl_med_tax
|
|
245
218
|
%t122 = load_input "statuses" :: array
|
|
246
219
|
%t125 = load_input "income" :: float
|
|
247
|
-
%t128 = const 0 :: integer
|
|
248
|
-
%t131 = const 0.009 :: float
|
|
249
220
|
loop statuses id=L19 in %t122 as el=%statuses_el_123, idx=%statuses_i_124
|
|
250
221
|
%t126 = load_field statuses_el_123["addl_threshold"] :: float
|
|
251
222
|
%t127 = call core.sub(%t125, %t126) :: float
|
|
252
|
-
%t129 = make_tuple(%t127, %
|
|
223
|
+
%t129 = make_tuple(%t127, %__immediate_placeholder__) :: tuple<float, integer>
|
|
253
224
|
%t130 = fold %t129 fn="agg.max" :: float
|
|
254
|
-
%t132 = call core.mul:numeric(%t130,
|
|
225
|
+
%t132 = call core.mul:numeric(%t130, 0.009) :: float
|
|
255
226
|
yield %t132
|
|
256
227
|
end_loop
|
|
257
228
|
)
|
|
258
229
|
(Declaration fica_tax
|
|
259
230
|
%t133 = load_input "statuses" :: array
|
|
260
231
|
%t404 = load_input "income" :: float
|
|
261
|
-
%
|
|
262
|
-
%t406 = make_tuple(%t404, %t405) :: tuple<float, float>
|
|
232
|
+
%t406 = make_tuple(%t404, %__immediate_placeholder__) :: tuple<float, float>
|
|
263
233
|
%t407 = fold %t406 fn="agg.min" :: float
|
|
264
|
-
%
|
|
265
|
-
%
|
|
266
|
-
%t411 = const 0.0145 :: float
|
|
267
|
-
%t412 = call core.mul:numeric(%t404, %t411) :: float
|
|
234
|
+
%t409 = call core.mul:numeric(%t407, 0.062) :: float
|
|
235
|
+
%t412 = call core.mul:numeric(%t404, 0.0145) :: float
|
|
268
236
|
%t138 = call core.add(%t409, %t412) :: float
|
|
269
|
-
%t417 = const 0 :: integer
|
|
270
|
-
%t420 = const 0.009 :: float
|
|
271
237
|
loop statuses id=L20 in %t133 as el=%statuses_el_134, idx=%statuses_i_135
|
|
272
238
|
%t415 = load_field statuses_el_134["addl_threshold"] :: float
|
|
273
239
|
%t416 = call core.sub(%t404, %t415) :: float
|
|
274
|
-
%t418 = make_tuple(%t416, %
|
|
240
|
+
%t418 = make_tuple(%t416, %__immediate_placeholder__) :: tuple<float, integer>
|
|
275
241
|
%t419 = fold %t418 fn="agg.max" :: float
|
|
276
|
-
%t421 = call core.mul:numeric(%t419,
|
|
242
|
+
%t421 = call core.mul:numeric(%t419, 0.009) :: float
|
|
277
243
|
%t140 = call core.add(%t138, %t421) :: float
|
|
278
244
|
yield %t140
|
|
279
245
|
end_loop
|
|
280
246
|
)
|
|
281
247
|
(Declaration fica_eff
|
|
282
248
|
%t428 = load_input "income" :: float
|
|
283
|
-
%
|
|
284
|
-
%t430 = make_tuple(%t428, %t429) :: tuple<float, float>
|
|
249
|
+
%t430 = make_tuple(%t428, %__immediate_placeholder__) :: tuple<float, float>
|
|
285
250
|
%t431 = fold %t430 fn="agg.min" :: float
|
|
286
|
-
%
|
|
287
|
-
%
|
|
288
|
-
%t435 = const 0.0145 :: float
|
|
289
|
-
%t436 = call core.mul:numeric(%t428, %t435) :: float
|
|
251
|
+
%t433 = call core.mul:numeric(%t431, 0.062) :: float
|
|
252
|
+
%t436 = call core.mul:numeric(%t428, 0.0145) :: float
|
|
290
253
|
%t141 = load_input "statuses" :: array
|
|
291
254
|
%t425 = call core.add(%t433, %t436) :: float
|
|
292
|
-
%
|
|
293
|
-
%t444 = const 0.009 :: float
|
|
294
|
-
%t146 = const 1.0 :: float
|
|
295
|
-
%t147 = make_tuple(%t428, %t146) :: tuple<float, float>
|
|
255
|
+
%t147 = make_tuple(%t428, %__immediate_placeholder__) :: tuple<float, float>
|
|
296
256
|
%t148 = fold %t147 fn="agg.max" :: float
|
|
297
257
|
loop statuses id=L21 in %t141 as el=%statuses_el_142, idx=%statuses_i_143
|
|
298
258
|
%t439 = load_field statuses_el_142["addl_threshold"] :: float
|
|
299
259
|
%t440 = call core.sub(%t428, %t439) :: float
|
|
300
|
-
%t442 = make_tuple(%t440, %
|
|
260
|
+
%t442 = make_tuple(%t440, %__immediate_placeholder__) :: tuple<float, integer>
|
|
301
261
|
%t443 = fold %t442 fn="agg.max" :: float
|
|
302
|
-
%t445 = call core.mul:numeric(%t443,
|
|
262
|
+
%t445 = call core.mul:numeric(%t443, 0.009) :: float
|
|
303
263
|
%t427 = call core.add(%t425, %t445) :: float
|
|
304
264
|
%t149 = call core.div(%t427, %t148) :: float
|
|
305
265
|
yield %t149
|
|
@@ -307,23 +267,16 @@
|
|
|
307
267
|
)
|
|
308
268
|
(Declaration total_tax
|
|
309
269
|
%t508 = load_input "income" :: float
|
|
310
|
-
%
|
|
311
|
-
%t510 = make_tuple(%t508, %t509) :: tuple<float, float>
|
|
270
|
+
%t510 = make_tuple(%t508, %__immediate_placeholder__) :: tuple<float, float>
|
|
312
271
|
%t511 = fold %t510 fn="agg.min" :: float
|
|
313
|
-
%
|
|
314
|
-
%
|
|
315
|
-
%t515 = const 0.0145 :: float
|
|
316
|
-
%t516 = call core.mul:numeric(%t508, %t515) :: float
|
|
272
|
+
%t513 = call core.mul:numeric(%t511, 0.062) :: float
|
|
273
|
+
%t516 = call core.mul:numeric(%t508, 0.0145) :: float
|
|
317
274
|
%t150 = load_input "statuses" :: array
|
|
318
275
|
%t447 = load_input "state_rate" :: float
|
|
319
276
|
%t448 = call core.mul:numeric(%t508, %t447) :: float
|
|
320
277
|
%t450 = load_input "local_rate" :: float
|
|
321
278
|
%t451 = call core.mul:numeric(%t508, %t450) :: float
|
|
322
|
-
%t476 = const 0 :: integer
|
|
323
279
|
%t505 = call core.add(%t513, %t516) :: float
|
|
324
|
-
%t524 = const 0.009 :: float
|
|
325
|
-
%t485 = const -1 :: integer
|
|
326
|
-
%t487 = const 100000000000.0 :: float
|
|
327
280
|
loop statuses id=L22 in %t150 as el=%statuses_el_151, idx=%statuses_i_152
|
|
328
281
|
%t474 = load_field statuses_el_151["std"] :: float
|
|
329
282
|
%acc454 = decl_acc :: float
|
|
@@ -331,23 +284,23 @@
|
|
|
331
284
|
%t519 = load_field statuses_el_151["addl_threshold"] :: float
|
|
332
285
|
%t475 = call core.sub(%t508, %t474) :: float
|
|
333
286
|
%t520 = call core.sub(%t508, %t519) :: float
|
|
334
|
-
%t477 = make_tuple(%t475, %
|
|
335
|
-
%t522 = make_tuple(%t520, %
|
|
287
|
+
%t477 = make_tuple(%t475, %__immediate_placeholder__) :: tuple<float, integer>
|
|
288
|
+
%t522 = make_tuple(%t520, %__immediate_placeholder__) :: tuple<float, integer>
|
|
336
289
|
%t478 = fold %t477 fn="agg.max" :: float
|
|
337
290
|
%t523 = fold %t522 fn="agg.max" :: float
|
|
338
291
|
loop rates id=L28 in %t455 as el=%t456, idx=%t457
|
|
339
292
|
%t481 = load_field t456["lo"] :: float
|
|
340
293
|
%t466 = call core.sub(%t478, %t481) :: float
|
|
341
294
|
%t492 = load_field t456["hi"] :: float
|
|
342
|
-
%t486 = call core.eq(%t492,
|
|
343
|
-
%t489 = select %t486,
|
|
295
|
+
%t486 = call core.eq(%t492, -1) :: boolean
|
|
296
|
+
%t489 = select %t486, 100000000000.0, %t492 :: float
|
|
344
297
|
%t470 = call core.sub(%t489, %t481) :: float
|
|
345
|
-
%t471 = call core.clamp(%t466,
|
|
298
|
+
%t471 = call core.clamp(%t466, 0, %t470) :: float
|
|
346
299
|
%t501 = load_field t456["rate"] :: float
|
|
347
300
|
%t460 = call core.mul:numeric(%t471, %t501) :: float
|
|
348
301
|
%acc454 = acc_add agg.sum(%acc454, %t460) :: float
|
|
349
302
|
end_loop
|
|
350
|
-
%t525 = call core.mul:numeric(%t523,
|
|
303
|
+
%t525 = call core.mul:numeric(%t523, 0.009) :: float
|
|
351
304
|
%t461 = acc_load %acc454 :: float
|
|
352
305
|
%t507 = call core.add(%t505, %t525) :: float
|
|
353
306
|
%t155 = call core.add(%t461, %t507) :: float
|
|
@@ -362,21 +315,13 @@
|
|
|
362
315
|
%t536 = call core.mul:numeric(%t534, %t535) :: float
|
|
363
316
|
%t538 = load_input "local_rate" :: float
|
|
364
317
|
%t539 = call core.mul:numeric(%t534, %t538) :: float
|
|
365
|
-
%
|
|
366
|
-
%t598 = make_tuple(%t534, %t597) :: tuple<float, float>
|
|
318
|
+
%t598 = make_tuple(%t534, %__immediate_placeholder__) :: tuple<float, float>
|
|
367
319
|
%t599 = fold %t598 fn="agg.min" :: float
|
|
368
|
-
%
|
|
369
|
-
%
|
|
370
|
-
%t603 = const 0.0145 :: float
|
|
371
|
-
%t604 = call core.mul:numeric(%t534, %t603) :: float
|
|
320
|
+
%t601 = call core.mul:numeric(%t599, 0.062) :: float
|
|
321
|
+
%t604 = call core.mul:numeric(%t534, 0.0145) :: float
|
|
372
322
|
%t160 = load_input "statuses" :: array
|
|
373
|
-
%t564 = const 0 :: integer
|
|
374
323
|
%t593 = call core.add(%t601, %t604) :: float
|
|
375
|
-
%
|
|
376
|
-
%t165 = const 1.0 :: float
|
|
377
|
-
%t573 = const -1 :: integer
|
|
378
|
-
%t575 = const 100000000000.0 :: float
|
|
379
|
-
%t166 = make_tuple(%t534, %t165) :: tuple<float, float>
|
|
324
|
+
%t166 = make_tuple(%t534, %__immediate_placeholder__) :: tuple<float, float>
|
|
380
325
|
%t167 = fold %t166 fn="agg.max" :: float
|
|
381
326
|
loop statuses id=L23 in %t160 as el=%statuses_el_161, idx=%statuses_i_162
|
|
382
327
|
%t562 = load_field statuses_el_161["std"] :: float
|
|
@@ -385,23 +330,23 @@
|
|
|
385
330
|
%t607 = load_field statuses_el_161["addl_threshold"] :: float
|
|
386
331
|
%t563 = call core.sub(%t534, %t562) :: float
|
|
387
332
|
%t608 = call core.sub(%t534, %t607) :: float
|
|
388
|
-
%t565 = make_tuple(%t563, %
|
|
389
|
-
%t610 = make_tuple(%t608, %
|
|
333
|
+
%t565 = make_tuple(%t563, %__immediate_placeholder__) :: tuple<float, integer>
|
|
334
|
+
%t610 = make_tuple(%t608, %__immediate_placeholder__) :: tuple<float, integer>
|
|
390
335
|
%t566 = fold %t565 fn="agg.max" :: float
|
|
391
336
|
%t611 = fold %t610 fn="agg.max" :: float
|
|
392
337
|
loop rates id=L29 in %t543 as el=%t544, idx=%t545
|
|
393
338
|
%t569 = load_field t544["lo"] :: float
|
|
394
339
|
%t554 = call core.sub(%t566, %t569) :: float
|
|
395
340
|
%t580 = load_field t544["hi"] :: float
|
|
396
|
-
%t574 = call core.eq(%t580,
|
|
397
|
-
%t577 = select %t574,
|
|
341
|
+
%t574 = call core.eq(%t580, -1) :: boolean
|
|
342
|
+
%t577 = select %t574, 100000000000.0, %t580 :: float
|
|
398
343
|
%t558 = call core.sub(%t577, %t569) :: float
|
|
399
|
-
%t559 = call core.clamp(%t554,
|
|
344
|
+
%t559 = call core.clamp(%t554, 0, %t558) :: float
|
|
400
345
|
%t589 = load_field t544["rate"] :: float
|
|
401
346
|
%t548 = call core.mul:numeric(%t559, %t589) :: float
|
|
402
347
|
%acc542 = acc_add agg.sum(%acc542, %t548) :: float
|
|
403
348
|
end_loop
|
|
404
|
-
%t613 = call core.mul:numeric(%t611,
|
|
349
|
+
%t613 = call core.mul:numeric(%t611, 0.009) :: float
|
|
405
350
|
%t549 = acc_load %acc542 :: float
|
|
406
351
|
%t595 = call core.add(%t593, %t613) :: float
|
|
407
352
|
%t531 = call core.add(%t549, %t595) :: float
|
|
@@ -417,19 +362,12 @@
|
|
|
417
362
|
%t624 = call core.mul:numeric(%t622, %t623) :: float
|
|
418
363
|
%t626 = load_input "local_rate" :: float
|
|
419
364
|
%t627 = call core.mul:numeric(%t622, %t626) :: float
|
|
420
|
-
%
|
|
421
|
-
%t686 = make_tuple(%t622, %t685) :: tuple<float, float>
|
|
365
|
+
%t686 = make_tuple(%t622, %__immediate_placeholder__) :: tuple<float, float>
|
|
422
366
|
%t687 = fold %t686 fn="agg.min" :: float
|
|
423
|
-
%
|
|
424
|
-
%
|
|
425
|
-
%t691 = const 0.0145 :: float
|
|
426
|
-
%t692 = call core.mul:numeric(%t622, %t691) :: float
|
|
367
|
+
%t689 = call core.mul:numeric(%t687, 0.062) :: float
|
|
368
|
+
%t692 = call core.mul:numeric(%t622, 0.0145) :: float
|
|
427
369
|
%t169 = load_input "statuses" :: array
|
|
428
|
-
%t652 = const 0 :: integer
|
|
429
370
|
%t681 = call core.add(%t689, %t692) :: float
|
|
430
|
-
%t700 = const 0.009 :: float
|
|
431
|
-
%t661 = const -1 :: integer
|
|
432
|
-
%t663 = const 100000000000.0 :: float
|
|
433
371
|
loop statuses id=L24 in %t169 as el=%statuses_el_170, idx=%statuses_i_171
|
|
434
372
|
%t650 = load_field statuses_el_170["std"] :: float
|
|
435
373
|
%acc630 = decl_acc :: float
|
|
@@ -437,23 +375,23 @@
|
|
|
437
375
|
%t695 = load_field statuses_el_170["addl_threshold"] :: float
|
|
438
376
|
%t651 = call core.sub(%t622, %t650) :: float
|
|
439
377
|
%t696 = call core.sub(%t622, %t695) :: float
|
|
440
|
-
%t653 = make_tuple(%t651, %
|
|
441
|
-
%t698 = make_tuple(%t696, %
|
|
378
|
+
%t653 = make_tuple(%t651, %__immediate_placeholder__) :: tuple<float, integer>
|
|
379
|
+
%t698 = make_tuple(%t696, %__immediate_placeholder__) :: tuple<float, integer>
|
|
442
380
|
%t654 = fold %t653 fn="agg.max" :: float
|
|
443
381
|
%t699 = fold %t698 fn="agg.max" :: float
|
|
444
382
|
loop rates id=L30 in %t631 as el=%t632, idx=%t633
|
|
445
383
|
%t657 = load_field t632["lo"] :: float
|
|
446
384
|
%t642 = call core.sub(%t654, %t657) :: float
|
|
447
385
|
%t668 = load_field t632["hi"] :: float
|
|
448
|
-
%t662 = call core.eq(%t668,
|
|
449
|
-
%t665 = select %t662,
|
|
386
|
+
%t662 = call core.eq(%t668, -1) :: boolean
|
|
387
|
+
%t665 = select %t662, 100000000000.0, %t668 :: float
|
|
450
388
|
%t646 = call core.sub(%t665, %t657) :: float
|
|
451
|
-
%t647 = call core.clamp(%t642,
|
|
389
|
+
%t647 = call core.clamp(%t642, 0, %t646) :: float
|
|
452
390
|
%t677 = load_field t632["rate"] :: float
|
|
453
391
|
%t636 = call core.mul:numeric(%t647, %t677) :: float
|
|
454
392
|
%acc630 = acc_add agg.sum(%acc630, %t636) :: float
|
|
455
393
|
end_loop
|
|
456
|
-
%t701 = call core.mul:numeric(%t699,
|
|
394
|
+
%t701 = call core.mul:numeric(%t699, 0.009) :: float
|
|
457
395
|
%t637 = acc_load %acc630 :: float
|
|
458
396
|
%t683 = call core.add(%t681, %t701) :: float
|
|
459
397
|
%t619 = call core.add(%t637, %t683) :: float
|
|
@@ -469,20 +407,13 @@
|
|
|
469
407
|
%t716 = call core.mul:numeric(%t714, %t715) :: float
|
|
470
408
|
%t718 = load_input "local_rate" :: float
|
|
471
409
|
%t719 = call core.mul:numeric(%t714, %t718) :: float
|
|
472
|
-
%
|
|
473
|
-
%t778 = make_tuple(%t714, %t777) :: tuple<float, float>
|
|
410
|
+
%t778 = make_tuple(%t714, %__immediate_placeholder__) :: tuple<float, float>
|
|
474
411
|
%t779 = fold %t778 fn="agg.min" :: float
|
|
475
|
-
%
|
|
476
|
-
%
|
|
477
|
-
%t783 = const 0.0145 :: float
|
|
478
|
-
%t784 = call core.mul:numeric(%t714, %t783) :: float
|
|
412
|
+
%t781 = call core.mul:numeric(%t779, 0.062) :: float
|
|
413
|
+
%t784 = call core.mul:numeric(%t714, 0.0145) :: float
|
|
479
414
|
%t175 = load_input "statuses" :: array
|
|
480
|
-
%t744 = const 0 :: integer
|
|
481
415
|
%t773 = call core.add(%t781, %t784) :: float
|
|
482
|
-
%t792 = const 0.009 :: float
|
|
483
416
|
%t179 = load_input "retirement_contrib" :: float
|
|
484
|
-
%t753 = const -1 :: integer
|
|
485
|
-
%t755 = const 100000000000.0 :: float
|
|
486
417
|
loop statuses id=L25 in %t175 as el=%statuses_el_176, idx=%statuses_i_177
|
|
487
418
|
%t742 = load_field statuses_el_176["std"] :: float
|
|
488
419
|
%acc722 = decl_acc :: float
|
|
@@ -490,23 +421,23 @@
|
|
|
490
421
|
%t787 = load_field statuses_el_176["addl_threshold"] :: float
|
|
491
422
|
%t743 = call core.sub(%t714, %t742) :: float
|
|
492
423
|
%t788 = call core.sub(%t714, %t787) :: float
|
|
493
|
-
%t745 = make_tuple(%t743, %
|
|
494
|
-
%t790 = make_tuple(%t788, %
|
|
424
|
+
%t745 = make_tuple(%t743, %__immediate_placeholder__) :: tuple<float, integer>
|
|
425
|
+
%t790 = make_tuple(%t788, %__immediate_placeholder__) :: tuple<float, integer>
|
|
495
426
|
%t746 = fold %t745 fn="agg.max" :: float
|
|
496
427
|
%t791 = fold %t790 fn="agg.max" :: float
|
|
497
428
|
loop rates id=L31 in %t723 as el=%t724, idx=%t725
|
|
498
429
|
%t749 = load_field t724["lo"] :: float
|
|
499
430
|
%t734 = call core.sub(%t746, %t749) :: float
|
|
500
431
|
%t760 = load_field t724["hi"] :: float
|
|
501
|
-
%t754 = call core.eq(%t760,
|
|
502
|
-
%t757 = select %t754,
|
|
432
|
+
%t754 = call core.eq(%t760, -1) :: boolean
|
|
433
|
+
%t757 = select %t754, 100000000000.0, %t760 :: float
|
|
503
434
|
%t738 = call core.sub(%t757, %t749) :: float
|
|
504
|
-
%t739 = call core.clamp(%t734,
|
|
435
|
+
%t739 = call core.clamp(%t734, 0, %t738) :: float
|
|
505
436
|
%t769 = load_field t724["rate"] :: float
|
|
506
437
|
%t728 = call core.mul:numeric(%t739, %t769) :: float
|
|
507
438
|
%acc722 = acc_add agg.sum(%acc722, %t728) :: float
|
|
508
439
|
end_loop
|
|
509
|
-
%t793 = call core.mul:numeric(%t791,
|
|
440
|
+
%t793 = call core.mul:numeric(%t791, 0.009) :: float
|
|
510
441
|
%t729 = acc_load %acc722 :: float
|
|
511
442
|
%t775 = call core.add(%t773, %t793) :: float
|
|
512
443
|
%t711 = call core.add(%t729, %t775) :: float
|
|
@@ -519,28 +450,20 @@
|
|
|
519
450
|
)
|
|
520
451
|
(Declaration summary
|
|
521
452
|
%t974 = load_input "income" :: float
|
|
522
|
-
%
|
|
523
|
-
%t976 = make_tuple(%t974, %t975) :: tuple<float, float>
|
|
453
|
+
%t976 = make_tuple(%t974, %__immediate_placeholder__) :: tuple<float, float>
|
|
524
454
|
%t977 = fold %t976 fn="agg.min" :: float
|
|
525
|
-
%
|
|
526
|
-
%
|
|
527
|
-
%t981 = const 0.0145 :: float
|
|
528
|
-
%t982 = call core.mul:numeric(%t974, %t981) :: float
|
|
455
|
+
%t979 = call core.mul:numeric(%t977, 0.062) :: float
|
|
456
|
+
%t982 = call core.mul:numeric(%t974, 0.0145) :: float
|
|
529
457
|
%t1032 = load_input "state_rate" :: float
|
|
530
458
|
%t1033 = call core.mul:numeric(%t974, %t1032) :: float
|
|
531
459
|
%t1035 = load_input "local_rate" :: float
|
|
532
460
|
%t1036 = call core.mul:numeric(%t974, %t1035) :: float
|
|
533
461
|
%t181 = load_input "statuses" :: array
|
|
534
|
-
%t824 = const 0 :: integer
|
|
535
|
-
%t857 = const 1.0 :: float
|
|
536
462
|
%t971 = call core.add(%t979, %t982) :: float
|
|
537
|
-
%t990 = const 0.009 :: float
|
|
538
463
|
%t195 = make_object{marginal: %t1032, effective: %t1032, tax: %t1033} :: object
|
|
539
464
|
%t199 = make_object{marginal: %t1035, effective: %t1035, tax: %t1036} :: object
|
|
540
465
|
%t204 = load_input "retirement_contrib" :: float
|
|
541
|
-
%
|
|
542
|
-
%t842 = const 100000000000.0 :: float
|
|
543
|
-
%t858 = make_tuple(%t974, %t857) :: tuple<float, float>
|
|
466
|
+
%t858 = make_tuple(%t974, %__immediate_placeholder__) :: tuple<float, float>
|
|
544
467
|
%t859 = fold %t858 fn="agg.max" :: float
|
|
545
468
|
loop statuses id=L26 in %t181 as el=%statuses_el_182, idx=%statuses_i_183
|
|
546
469
|
%t184 = load_field statuses_el_182["name"] :: string
|
|
@@ -556,32 +479,32 @@
|
|
|
556
479
|
%acc1315 = decl_acc :: float
|
|
557
480
|
%t823 = call core.sub(%t974, %t822) :: float
|
|
558
481
|
%t986 = call core.sub(%t974, %t985) :: float
|
|
559
|
-
%t825 = make_tuple(%t823, %
|
|
560
|
-
%t988 = make_tuple(%t986, %
|
|
482
|
+
%t825 = make_tuple(%t823, %__immediate_placeholder__) :: tuple<float, integer>
|
|
483
|
+
%t988 = make_tuple(%t986, %__immediate_placeholder__) :: tuple<float, integer>
|
|
561
484
|
%t826 = fold %t825 fn="agg.max" :: float
|
|
562
485
|
%t989 = fold %t988 fn="agg.max" :: float
|
|
563
486
|
loop rates id=L32 in %t803 as el=%t804, idx=%t805
|
|
564
487
|
%t829 = load_field t804["lo"] :: float
|
|
565
488
|
%t815 = call core.gte(%t826, %t829) :: boolean
|
|
566
489
|
%t847 = load_field t804["hi"] :: float
|
|
567
|
-
%t841 = call core.eq(%t847,
|
|
568
|
-
%t844 = select %t841,
|
|
490
|
+
%t841 = call core.eq(%t847, -1) :: boolean
|
|
491
|
+
%t844 = select %t841, 100000000000.0, %t847 :: float
|
|
569
492
|
%t818 = call core.lt(%t826, %t844) :: boolean
|
|
570
493
|
%t819 = call core.and(%t815, %t818) :: boolean
|
|
571
494
|
%t853 = load_field t804["rate"] :: float
|
|
572
|
-
%t809 = select %t819, %t853,
|
|
495
|
+
%t809 = select %t819, %t853, 0 :: float
|
|
573
496
|
%acc802 = acc_add agg.sum(%acc802, %t809) :: float
|
|
574
497
|
end_loop
|
|
575
|
-
%t991 = call core.mul:numeric(%t989,
|
|
498
|
+
%t991 = call core.mul:numeric(%t989, 0.009) :: float
|
|
576
499
|
%t810 = acc_load %acc802 :: float
|
|
577
500
|
loop rates id=L33 in %t803 as el=%t865, idx=%t866
|
|
578
501
|
%t890 = load_field t865["lo"] :: float
|
|
579
502
|
%t875 = call core.sub(%t826, %t890) :: float
|
|
580
503
|
%t901 = load_field t865["hi"] :: float
|
|
581
|
-
%t895 = call core.eq(%t901,
|
|
582
|
-
%t898 = select %t895,
|
|
504
|
+
%t895 = call core.eq(%t901, -1) :: boolean
|
|
505
|
+
%t898 = select %t895, 100000000000.0, %t901 :: float
|
|
583
506
|
%t879 = call core.sub(%t898, %t890) :: float
|
|
584
|
-
%t880 = call core.clamp(%t875,
|
|
507
|
+
%t880 = call core.clamp(%t875, 0, %t879) :: float
|
|
585
508
|
%t910 = load_field t865["rate"] :: float
|
|
586
509
|
%t869 = call core.mul:numeric(%t880, %t910) :: float
|
|
587
510
|
%acc863 = acc_add agg.sum(%acc863, %t869) :: float
|