kumi 0.0.24 → 0.0.26
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 +14 -0
- data/README.md +70 -71
- data/data/functions/agg/boolean.yaml +6 -2
- data/data/functions/agg/numeric.yaml +32 -16
- data/data/functions/agg/string.yaml +4 -3
- data/data/functions/core/arithmetic.yaml +62 -14
- data/data/functions/core/boolean.yaml +12 -6
- data/data/functions/core/comparison.yaml +25 -13
- data/data/functions/core/constructor.yaml +16 -8
- data/data/functions/core/select.yaml +3 -1
- data/data/functions/core/stencil.yaml +14 -5
- data/data/functions/core/string.yaml +9 -4
- data/data/kernels/ruby/agg/numeric.yaml +1 -1
- data/docs/UNSAT_DETECTION.md +83 -0
- data/golden/array_element/expected/nast.txt +1 -1
- data/golden/array_element/expected/schema_ruby.rb +1 -1
- data/golden/array_index/expected/nast.txt +7 -7
- data/golden/array_index/expected/schema_ruby.rb +1 -1
- data/golden/array_operations/expected/nast.txt +2 -2
- data/golden/array_operations/expected/schema_ruby.rb +1 -1
- data/golden/array_operations/expected/snast.txt +3 -3
- data/golden/cascade_logic/expected/lir_02_inlined.txt +8 -8
- data/golden/cascade_logic/expected/schema_ruby.rb +1 -1
- data/golden/cascade_logic/expected/snast.txt +2 -2
- data/golden/chained_fusion/expected/lir_02_inlined.txt +36 -36
- data/golden/chained_fusion/expected/lir_03_cse.txt +23 -23
- data/golden/chained_fusion/expected/lir_04_1_loop_fusion.txt +25 -25
- data/golden/chained_fusion/expected/lir_04_loop_invcm.txt +23 -23
- data/golden/chained_fusion/expected/lir_06_const_prop.txt +23 -23
- data/golden/chained_fusion/expected/nast.txt +2 -2
- data/golden/chained_fusion/expected/schema_javascript.mjs +23 -23
- data/golden/chained_fusion/expected/schema_ruby.rb +28 -28
- data/golden/element_arrays/expected/nast.txt +2 -2
- data/golden/element_arrays/expected/schema_ruby.rb +1 -1
- data/golden/element_arrays/expected/snast.txt +1 -1
- data/golden/empty_and_null_inputs/expected/lir_02_inlined.txt +18 -18
- data/golden/empty_and_null_inputs/expected/lir_03_cse.txt +17 -17
- data/golden/empty_and_null_inputs/expected/lir_04_1_loop_fusion.txt +17 -17
- data/golden/empty_and_null_inputs/expected/lir_04_loop_invcm.txt +17 -17
- data/golden/empty_and_null_inputs/expected/lir_06_const_prop.txt +17 -17
- data/golden/empty_and_null_inputs/expected/nast.txt +3 -3
- data/golden/empty_and_null_inputs/expected/schema_javascript.mjs +13 -13
- data/golden/empty_and_null_inputs/expected/schema_ruby.rb +18 -18
- data/golden/function_overload/expected/ast.txt +29 -0
- data/golden/function_overload/expected/input_plan.txt +4 -0
- data/golden/function_overload/expected/lir_00_unoptimized.txt +18 -0
- data/golden/function_overload/expected/lir_01_hoist_scalar_references.txt +18 -0
- data/golden/function_overload/expected/lir_02_inlined.txt +20 -0
- data/golden/function_overload/expected/lir_03_cse.txt +20 -0
- data/golden/function_overload/expected/lir_04_1_loop_fusion.txt +20 -0
- data/golden/function_overload/expected/lir_04_loop_invcm.txt +20 -0
- data/golden/function_overload/expected/lir_06_const_prop.txt +20 -0
- data/golden/function_overload/expected/nast.txt +22 -0
- data/golden/function_overload/expected/schema_javascript.mjs +12 -0
- data/golden/function_overload/expected/schema_ruby.rb +39 -0
- data/golden/function_overload/expected/snast.txt +22 -0
- data/golden/function_overload/input.json +8 -0
- data/golden/function_overload/schema.kumi +19 -0
- data/golden/game_of_life/expected/lir_00_unoptimized.txt +4 -4
- data/golden/game_of_life/expected/lir_01_hoist_scalar_references.txt +4 -4
- data/golden/game_of_life/expected/lir_02_inlined.txt +1294 -1294
- data/golden/game_of_life/expected/lir_03_cse.txt +403 -399
- data/golden/game_of_life/expected/lir_04_1_loop_fusion.txt +403 -399
- data/golden/game_of_life/expected/lir_04_loop_invcm.txt +403 -399
- data/golden/game_of_life/expected/lir_06_const_prop.txt +403 -399
- data/golden/game_of_life/expected/nast.txt +4 -4
- data/golden/game_of_life/expected/schema_javascript.mjs +87 -85
- data/golden/game_of_life/expected/schema_ruby.rb +88 -86
- data/golden/game_of_life/expected/snast.txt +10 -10
- data/golden/hash_keys/expected/schema_ruby.rb +1 -1
- data/golden/hash_value/expected/nast.txt +1 -1
- data/golden/hash_value/expected/schema_ruby.rb +1 -1
- data/golden/hash_value/expected/snast.txt +1 -1
- data/golden/hierarchical_complex/expected/lir_02_inlined.txt +15 -15
- data/golden/hierarchical_complex/expected/lir_03_cse.txt +1 -1
- data/golden/hierarchical_complex/expected/lir_04_1_loop_fusion.txt +1 -1
- data/golden/hierarchical_complex/expected/lir_04_loop_invcm.txt +1 -1
- data/golden/hierarchical_complex/expected/lir_06_const_prop.txt +1 -1
- data/golden/hierarchical_complex/expected/nast.txt +3 -3
- data/golden/hierarchical_complex/expected/schema_javascript.mjs +1 -1
- data/golden/hierarchical_complex/expected/schema_ruby.rb +2 -2
- data/golden/hierarchical_complex/expected/snast.txt +3 -3
- data/golden/inline_rename_scope_leak/expected/nast.txt +3 -3
- data/golden/inline_rename_scope_leak/expected/schema_ruby.rb +1 -1
- data/golden/input_reference/expected/nast.txt +2 -2
- data/golden/input_reference/expected/schema_ruby.rb +1 -1
- data/golden/interleaved_fusion/expected/lir_02_inlined.txt +35 -35
- data/golden/interleaved_fusion/expected/lir_03_cse.txt +26 -26
- data/golden/interleaved_fusion/expected/lir_04_1_loop_fusion.txt +27 -26
- data/golden/interleaved_fusion/expected/lir_04_loop_invcm.txt +26 -26
- data/golden/interleaved_fusion/expected/lir_06_const_prop.txt +26 -26
- data/golden/interleaved_fusion/expected/nast.txt +2 -2
- data/golden/interleaved_fusion/expected/schema_javascript.mjs +23 -23
- data/golden/interleaved_fusion/expected/schema_ruby.rb +29 -29
- data/golden/let_inline/expected/nast.txt +4 -4
- data/golden/let_inline/expected/schema_ruby.rb +1 -1
- data/golden/loop_fusion/expected/lir_02_inlined.txt +17 -17
- data/golden/loop_fusion/expected/lir_03_cse.txt +14 -14
- data/golden/loop_fusion/expected/lir_04_1_loop_fusion.txt +14 -14
- data/golden/loop_fusion/expected/lir_04_loop_invcm.txt +14 -14
- data/golden/loop_fusion/expected/lir_06_const_prop.txt +14 -14
- data/golden/loop_fusion/expected/nast.txt +1 -1
- data/golden/loop_fusion/expected/schema_javascript.mjs +12 -12
- data/golden/loop_fusion/expected/schema_ruby.rb +16 -16
- data/golden/min_reduce_scope/expected/nast.txt +3 -3
- data/golden/min_reduce_scope/expected/schema_ruby.rb +1 -1
- data/golden/min_reduce_scope/expected/snast.txt +1 -1
- data/golden/mixed_dimensions/expected/lir_02_inlined.txt +5 -5
- data/golden/mixed_dimensions/expected/lir_03_cse.txt +5 -5
- data/golden/mixed_dimensions/expected/lir_04_1_loop_fusion.txt +5 -5
- data/golden/mixed_dimensions/expected/lir_04_loop_invcm.txt +5 -5
- data/golden/mixed_dimensions/expected/lir_06_const_prop.txt +5 -5
- data/golden/mixed_dimensions/expected/nast.txt +2 -2
- data/golden/mixed_dimensions/expected/schema_javascript.mjs +3 -3
- data/golden/mixed_dimensions/expected/schema_ruby.rb +6 -6
- data/golden/multirank_hoisting/expected/lir_02_inlined.txt +48 -48
- data/golden/multirank_hoisting/expected/lir_03_cse.txt +35 -35
- data/golden/multirank_hoisting/expected/lir_04_1_loop_fusion.txt +35 -35
- data/golden/multirank_hoisting/expected/lir_04_loop_invcm.txt +35 -35
- data/golden/multirank_hoisting/expected/lir_06_const_prop.txt +35 -35
- data/golden/multirank_hoisting/expected/nast.txt +7 -7
- data/golden/multirank_hoisting/expected/schema_javascript.mjs +34 -34
- data/golden/multirank_hoisting/expected/schema_ruby.rb +36 -36
- data/golden/nested_hash/expected/nast.txt +1 -1
- data/golden/nested_hash/expected/schema_ruby.rb +1 -1
- data/golden/reduction_broadcast/expected/lir_02_inlined.txt +30 -30
- data/golden/reduction_broadcast/expected/lir_03_cse.txt +22 -22
- data/golden/reduction_broadcast/expected/lir_04_1_loop_fusion.txt +22 -22
- data/golden/reduction_broadcast/expected/lir_04_loop_invcm.txt +22 -22
- data/golden/reduction_broadcast/expected/lir_06_const_prop.txt +22 -22
- data/golden/reduction_broadcast/expected/nast.txt +3 -3
- data/golden/reduction_broadcast/expected/schema_javascript.mjs +18 -18
- data/golden/reduction_broadcast/expected/schema_ruby.rb +23 -23
- data/golden/reduction_broadcast/expected/snast.txt +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 +1 -1
- data/golden/simple_math/expected/lir_01_hoist_scalar_references.txt +1 -1
- data/golden/simple_math/expected/lir_02_inlined.txt +1 -1
- data/golden/simple_math/expected/lir_03_cse.txt +1 -1
- data/golden/simple_math/expected/lir_04_1_loop_fusion.txt +1 -1
- data/golden/simple_math/expected/lir_04_loop_invcm.txt +1 -1
- data/golden/simple_math/expected/lir_06_const_prop.txt +1 -1
- data/golden/simple_math/expected/nast.txt +5 -5
- 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_02_inlined.txt +25 -25
- data/golden/streaming_basics/expected/lir_03_cse.txt +13 -13
- data/golden/streaming_basics/expected/lir_04_1_loop_fusion.txt +13 -13
- data/golden/streaming_basics/expected/lir_04_loop_invcm.txt +13 -13
- data/golden/streaming_basics/expected/lir_06_const_prop.txt +13 -13
- data/golden/streaming_basics/expected/nast.txt +8 -8
- data/golden/streaming_basics/expected/schema_javascript.mjs +13 -13
- data/golden/streaming_basics/expected/schema_ruby.rb +14 -14
- data/golden/streaming_basics/expected/snast.txt +1 -1
- data/golden/tuples/expected/lir_00_unoptimized.txt +5 -5
- data/golden/tuples/expected/lir_01_hoist_scalar_references.txt +5 -5
- data/golden/tuples/expected/lir_02_inlined.txt +5 -5
- data/golden/tuples/expected/lir_03_cse.txt +5 -5
- data/golden/tuples/expected/lir_04_1_loop_fusion.txt +5 -5
- data/golden/tuples/expected/lir_04_loop_invcm.txt +5 -5
- data/golden/tuples/expected/lir_06_const_prop.txt +5 -5
- data/golden/tuples/expected/nast.txt +4 -4
- data/golden/tuples/expected/schema_ruby.rb +1 -1
- data/golden/tuples/expected/snast.txt +6 -6
- data/golden/tuples_and_arrays/expected/lir_00_unoptimized.txt +1 -1
- data/golden/tuples_and_arrays/expected/lir_01_hoist_scalar_references.txt +1 -1
- data/golden/tuples_and_arrays/expected/lir_02_inlined.txt +17 -17
- data/golden/tuples_and_arrays/expected/lir_03_cse.txt +13 -13
- data/golden/tuples_and_arrays/expected/lir_04_1_loop_fusion.txt +13 -13
- data/golden/tuples_and_arrays/expected/lir_04_loop_invcm.txt +13 -13
- data/golden/tuples_and_arrays/expected/lir_06_const_prop.txt +13 -13
- data/golden/tuples_and_arrays/expected/nast.txt +3 -3
- data/golden/tuples_and_arrays/expected/schema_javascript.mjs +13 -13
- data/golden/tuples_and_arrays/expected/schema_ruby.rb +14 -14
- data/golden/tuples_and_arrays/expected/snast.txt +2 -2
- data/golden/us_tax_2024/expected/ast.txt +63 -670
- data/golden/us_tax_2024/expected/input_plan.txt +8 -45
- data/golden/us_tax_2024/expected/lir_00_unoptimized.txt +253 -863
- data/golden/us_tax_2024/expected/lir_01_hoist_scalar_references.txt +253 -863
- data/golden/us_tax_2024/expected/lir_02_inlined.txt +1215 -5139
- data/golden/us_tax_2024/expected/lir_03_cse.txt +587 -2460
- data/golden/us_tax_2024/expected/lir_04_1_loop_fusion.txt +632 -2480
- data/golden/us_tax_2024/expected/lir_04_loop_invcm.txt +587 -2400
- data/golden/us_tax_2024/expected/lir_06_const_prop.txt +587 -2400
- data/golden/us_tax_2024/expected/nast.txt +123 -826
- data/golden/us_tax_2024/expected/schema_javascript.mjs +127 -581
- data/golden/us_tax_2024/expected/schema_ruby.rb +135 -610
- data/golden/us_tax_2024/expected/snast.txt +155 -858
- data/golden/us_tax_2024/expected.json +120 -1
- data/golden/us_tax_2024/input.json +18 -9
- data/golden/us_tax_2024/schema.kumi +48 -178
- data/golden/with_constants/expected/lir_00_unoptimized.txt +1 -1
- data/golden/with_constants/expected/lir_01_hoist_scalar_references.txt +1 -1
- data/golden/with_constants/expected/lir_02_inlined.txt +1 -1
- data/golden/with_constants/expected/lir_03_cse.txt +1 -1
- data/golden/with_constants/expected/lir_04_1_loop_fusion.txt +1 -1
- data/golden/with_constants/expected/lir_04_loop_invcm.txt +1 -1
- data/golden/with_constants/expected/lir_06_const_prop.txt +1 -1
- data/golden/with_constants/expected/nast.txt +2 -2
- data/golden/with_constants/expected/schema_ruby.rb +1 -1
- data/golden/with_constants/expected/snast.txt +2 -2
- data/lib/kumi/analyzer.rb +12 -12
- data/lib/kumi/core/analyzer/passes/formal_constraint_propagator.rb +236 -0
- data/lib/kumi/core/analyzer/passes/input_collector.rb +22 -4
- data/lib/kumi/core/analyzer/passes/lir/inline_declarations_pass.rb +118 -74
- data/lib/kumi/core/analyzer/passes/nast_dimensional_analyzer_pass.rb +64 -18
- data/lib/kumi/core/analyzer/passes/normalize_to_nast_pass.rb +9 -4
- data/lib/kumi/core/analyzer/passes/snast_pass.rb +3 -1
- data/lib/kumi/core/analyzer/passes/unsat_detector.rb +172 -198
- data/lib/kumi/core/error_reporter.rb +36 -1
- data/lib/kumi/core/errors.rb +33 -1
- data/lib/kumi/core/functions/function_spec.rb +5 -4
- data/lib/kumi/core/functions/loader.rb +17 -1
- data/lib/kumi/core/functions/overload_resolver.rb +164 -0
- data/lib/kumi/core/functions/type_error_reporter.rb +118 -0
- data/lib/kumi/core/functions/type_rules.rb +155 -35
- data/lib/kumi/core/types/inference.rb +29 -22
- data/lib/kumi/core/types/normalizer.rb +29 -45
- data/lib/kumi/core/types/validator.rb +16 -27
- data/lib/kumi/core/types/value_objects.rb +116 -0
- data/lib/kumi/core/types.rb +45 -37
- data/lib/kumi/registry_v2/loader.rb +90 -0
- data/lib/kumi/registry_v2.rb +18 -1
- data/lib/kumi/version.rb +1 -1
- metadata +21 -7
- data/lib/kumi/core/analyzer/unsat_constant_evaluator.rb +0 -59
- data/lib/kumi/core/atom_unsat_solver.rb +0 -396
- data/lib/kumi/core/constraint_relationship_solver.rb +0 -641
- data/lib/kumi/core/types/builder.rb +0 -23
- data/lib/kumi/core/types/compatibility.rb +0 -96
- data/lib/kumi/core/types/formatter.rb +0 -26
@@ -1,95 +1,95 @@
|
|
1
1
|
(NAST
|
2
2
|
(VALUE state_tax
|
3
|
-
(Call :
|
3
|
+
(Call :multiply
|
4
4
|
(InputRef [:income])
|
5
5
|
(InputRef [:state_rate])
|
6
6
|
)
|
7
7
|
)
|
8
8
|
(VALUE local_tax
|
9
|
-
(Call :
|
9
|
+
(Call :multiply
|
10
10
|
(InputRef [:income])
|
11
11
|
(InputRef [:local_rate])
|
12
12
|
)
|
13
13
|
)
|
14
|
-
(VALUE
|
15
|
-
(Call :
|
14
|
+
(VALUE taxable
|
15
|
+
(Call :max
|
16
16
|
(Tuple
|
17
|
-
(Call :
|
17
|
+
(Call :subtract
|
18
18
|
(InputRef [:income])
|
19
|
-
(InputRef [:
|
19
|
+
(InputRef [:statuses, :status, :std])
|
20
20
|
)
|
21
21
|
(Const 0)
|
22
22
|
)
|
23
23
|
)
|
24
24
|
)
|
25
|
-
(VALUE
|
26
|
-
(InputRef [:
|
25
|
+
(VALUE lo
|
26
|
+
(InputRef [:statuses, :status, :rates, :bracket, :lo])
|
27
27
|
)
|
28
|
-
(VALUE
|
29
|
-
(InputRef [:
|
28
|
+
(VALUE hi
|
29
|
+
(InputRef [:statuses, :status, :rates, :bracket, :hi])
|
30
30
|
)
|
31
|
-
(VALUE
|
32
|
-
(InputRef [:
|
31
|
+
(VALUE rate
|
32
|
+
(InputRef [:statuses, :status, :rates, :bracket, :rate])
|
33
33
|
)
|
34
34
|
(VALUE big_hi
|
35
35
|
(Const 100000000000.0)
|
36
36
|
)
|
37
|
-
(VALUE
|
38
|
-
(Call :
|
37
|
+
(VALUE hi_eff
|
38
|
+
(Call :select
|
39
39
|
(Call :"core.eq"
|
40
|
-
(Ref
|
40
|
+
(Ref hi)
|
41
41
|
(Const -1)
|
42
42
|
)
|
43
43
|
(Ref big_hi)
|
44
|
-
(Ref
|
44
|
+
(Ref hi)
|
45
45
|
)
|
46
46
|
)
|
47
|
-
(VALUE
|
48
|
-
(Call :
|
49
|
-
(Call :
|
50
|
-
(Ref
|
51
|
-
(Ref
|
47
|
+
(VALUE amt
|
48
|
+
(Call :clamp
|
49
|
+
(Call :subtract
|
50
|
+
(Ref taxable)
|
51
|
+
(Ref lo)
|
52
52
|
)
|
53
53
|
(Const 0)
|
54
|
-
(Call :
|
55
|
-
(Ref
|
56
|
-
(Ref
|
54
|
+
(Call :subtract
|
55
|
+
(Ref hi_eff)
|
56
|
+
(Ref lo)
|
57
57
|
)
|
58
58
|
)
|
59
59
|
)
|
60
|
-
(VALUE
|
61
|
-
(Call :
|
62
|
-
(Call :
|
63
|
-
(Ref
|
64
|
-
(Ref
|
60
|
+
(VALUE fed_tax
|
61
|
+
(Call :sum
|
62
|
+
(Call :multiply
|
63
|
+
(Ref amt)
|
64
|
+
(Ref rate)
|
65
65
|
)
|
66
66
|
)
|
67
67
|
)
|
68
|
-
(VALUE
|
69
|
-
(Call :
|
68
|
+
(VALUE in_br
|
69
|
+
(Call :and
|
70
70
|
(Call :"core.gte"
|
71
|
-
(Ref
|
72
|
-
(Ref
|
71
|
+
(Ref taxable)
|
72
|
+
(Ref lo)
|
73
73
|
)
|
74
74
|
(Call :"core.lt"
|
75
|
-
(Ref
|
76
|
-
(Ref
|
75
|
+
(Ref taxable)
|
76
|
+
(Ref hi_eff)
|
77
77
|
)
|
78
78
|
)
|
79
79
|
)
|
80
|
-
(VALUE
|
80
|
+
(VALUE fed_marg
|
81
81
|
(Call :sum
|
82
82
|
(Call :__select__
|
83
|
-
(Ref
|
84
|
-
(Ref
|
83
|
+
(Ref in_br)
|
84
|
+
(Ref rate)
|
85
85
|
(Const 0)
|
86
86
|
)
|
87
87
|
)
|
88
88
|
)
|
89
|
-
(VALUE
|
90
|
-
(Call :
|
91
|
-
(Ref
|
92
|
-
(Call :
|
89
|
+
(VALUE fed_eff
|
90
|
+
(Call :divide
|
91
|
+
(Ref fed_tax)
|
92
|
+
(Call :max
|
93
93
|
(Tuple
|
94
94
|
(InputRef [:income])
|
95
95
|
(Const 1.0)
|
@@ -103,9 +103,9 @@
|
|
103
103
|
(VALUE ss_rate
|
104
104
|
(Const 0.062)
|
105
105
|
)
|
106
|
-
(VALUE
|
107
|
-
(Call :
|
108
|
-
(Call :
|
106
|
+
(VALUE ss_tax
|
107
|
+
(Call :multiply
|
108
|
+
(Call :min
|
109
109
|
(Tuple
|
110
110
|
(InputRef [:income])
|
111
111
|
(Ref ss_wage_base)
|
@@ -117,25 +117,22 @@
|
|
117
117
|
(VALUE med_base_rate
|
118
118
|
(Const 0.0145)
|
119
119
|
)
|
120
|
-
(VALUE
|
121
|
-
(Call :
|
120
|
+
(VALUE med_tax
|
121
|
+
(Call :multiply
|
122
122
|
(InputRef [:income])
|
123
123
|
(Ref med_base_rate)
|
124
124
|
)
|
125
125
|
)
|
126
|
-
(VALUE addl_threshold_single
|
127
|
-
(Const 200000.0)
|
128
|
-
)
|
129
126
|
(VALUE addl_med_rate
|
130
127
|
(Const 0.009)
|
131
128
|
)
|
132
|
-
(VALUE
|
133
|
-
(Call :
|
134
|
-
(Call :
|
129
|
+
(VALUE addl_med_tax
|
130
|
+
(Call :multiply
|
131
|
+
(Call :max
|
135
132
|
(Tuple
|
136
|
-
(Call :
|
133
|
+
(Call :subtract
|
137
134
|
(InputRef [:income])
|
138
|
-
(
|
135
|
+
(InputRef [:statuses, :status, :addl_threshold])
|
139
136
|
)
|
140
137
|
(Const 0)
|
141
138
|
)
|
@@ -143,19 +140,19 @@
|
|
143
140
|
(Ref addl_med_rate)
|
144
141
|
)
|
145
142
|
)
|
146
|
-
(VALUE
|
147
|
-
(Call :
|
148
|
-
(Call :
|
149
|
-
(Ref
|
150
|
-
(Ref
|
143
|
+
(VALUE fica_tax
|
144
|
+
(Call :add
|
145
|
+
(Call :add
|
146
|
+
(Ref ss_tax)
|
147
|
+
(Ref med_tax)
|
151
148
|
)
|
152
|
-
(Ref
|
149
|
+
(Ref addl_med_tax)
|
153
150
|
)
|
154
151
|
)
|
155
|
-
(VALUE
|
156
|
-
(Call :
|
157
|
-
(Ref
|
158
|
-
(Call :
|
152
|
+
(VALUE fica_eff
|
153
|
+
(Call :divide
|
154
|
+
(Ref fica_tax)
|
155
|
+
(Call :max
|
159
156
|
(Tuple
|
160
157
|
(InputRef [:income])
|
161
158
|
(Const 1.0)
|
@@ -163,22 +160,22 @@
|
|
163
160
|
)
|
164
161
|
)
|
165
162
|
)
|
166
|
-
(VALUE
|
167
|
-
(Call :
|
168
|
-
(Call :
|
169
|
-
(Call :
|
170
|
-
(Ref
|
171
|
-
(Ref
|
163
|
+
(VALUE total_tax
|
164
|
+
(Call :add
|
165
|
+
(Call :add
|
166
|
+
(Call :add
|
167
|
+
(Ref fed_tax)
|
168
|
+
(Ref fica_tax)
|
172
169
|
)
|
173
170
|
(Ref state_tax)
|
174
171
|
)
|
175
172
|
(Ref local_tax)
|
176
173
|
)
|
177
174
|
)
|
178
|
-
(VALUE
|
179
|
-
(Call :
|
180
|
-
(Ref
|
181
|
-
(Call :
|
175
|
+
(VALUE total_eff
|
176
|
+
(Call :divide
|
177
|
+
(Ref total_tax)
|
178
|
+
(Call :max
|
182
179
|
(Tuple
|
183
180
|
(InputRef [:income])
|
184
181
|
(Const 1.0)
|
@@ -186,791 +183,91 @@
|
|
186
183
|
)
|
187
184
|
)
|
188
185
|
)
|
189
|
-
(VALUE
|
190
|
-
(Call :
|
186
|
+
(VALUE after_tax
|
187
|
+
(Call :subtract
|
191
188
|
(InputRef [:income])
|
192
|
-
(Ref
|
189
|
+
(Ref total_tax)
|
193
190
|
)
|
194
191
|
)
|
195
|
-
(VALUE
|
196
|
-
(Call :
|
197
|
-
(Ref
|
192
|
+
(VALUE take_home
|
193
|
+
(Call :subtract
|
194
|
+
(Ref after_tax)
|
198
195
|
(InputRef [:retirement_contrib])
|
199
196
|
)
|
200
197
|
)
|
201
|
-
(VALUE
|
202
|
-
(
|
203
|
-
(
|
204
|
-
(
|
205
|
-
(InputRef [:income])
|
206
|
-
(InputRef [:fed, :married_joint, :std])
|
207
|
-
)
|
208
|
-
(Const 0)
|
209
|
-
)
|
210
|
-
)
|
211
|
-
)
|
212
|
-
(VALUE lo_mj
|
213
|
-
(InputRef [:fed, :married_joint, :rates, :bracket, :lo])
|
214
|
-
)
|
215
|
-
(VALUE hi_mj
|
216
|
-
(InputRef [:fed, :married_joint, :rates, :bracket, :hi])
|
217
|
-
)
|
218
|
-
(VALUE rate_mj
|
219
|
-
(InputRef [:fed, :married_joint, :rates, :bracket, :rate])
|
220
|
-
)
|
221
|
-
(VALUE hi_mj_eff
|
222
|
-
(Call :__select__
|
223
|
-
(Call :"core.eq"
|
224
|
-
(Ref hi_mj)
|
225
|
-
(Const -1)
|
226
|
-
)
|
227
|
-
(Ref big_hi)
|
228
|
-
(Ref hi_mj)
|
229
|
-
)
|
230
|
-
)
|
231
|
-
(VALUE amt_mj
|
232
|
-
(Call :"core.clamp"
|
233
|
-
(Call :"core.sub"
|
234
|
-
(Ref taxable_mj)
|
235
|
-
(Ref lo_mj)
|
236
|
-
)
|
237
|
-
(Const 0)
|
238
|
-
(Call :"core.sub"
|
239
|
-
(Ref hi_mj_eff)
|
240
|
-
(Ref lo_mj)
|
241
|
-
)
|
242
|
-
)
|
243
|
-
)
|
244
|
-
(VALUE fed_tax_mj
|
245
|
-
(Call :"agg.sum"
|
246
|
-
(Call :"core.mul"
|
247
|
-
(Ref amt_mj)
|
248
|
-
(Ref rate_mj)
|
249
|
-
)
|
250
|
-
)
|
251
|
-
)
|
252
|
-
(VALUE in_br_mj
|
253
|
-
(Call :"core.and"
|
254
|
-
(Call :"core.gte"
|
255
|
-
(Ref taxable_mj)
|
256
|
-
(Ref lo_mj)
|
257
|
-
)
|
258
|
-
(Call :"core.lt"
|
259
|
-
(Ref taxable_mj)
|
260
|
-
(Ref hi_mj_eff)
|
261
|
-
)
|
262
|
-
)
|
263
|
-
)
|
264
|
-
(VALUE fed_marginal_mj
|
265
|
-
(Call :sum
|
266
|
-
(Call :__select__
|
267
|
-
(Ref in_br_mj)
|
268
|
-
(Ref rate_mj)
|
269
|
-
(Const 0)
|
270
|
-
)
|
271
|
-
)
|
272
|
-
)
|
273
|
-
(VALUE fed_eff_mj
|
274
|
-
(Call :"core.div"
|
275
|
-
(Ref fed_tax_mj)
|
276
|
-
(Call :"agg.max"
|
277
|
-
(Tuple
|
278
|
-
(InputRef [:income])
|
279
|
-
(Const 1.0)
|
280
|
-
)
|
198
|
+
(VALUE summary
|
199
|
+
(Hash
|
200
|
+
(Pair filing_status
|
201
|
+
(InputRef [:statuses, :status, :name])
|
281
202
|
)
|
282
|
-
|
283
|
-
|
284
|
-
|
285
|
-
|
286
|
-
)
|
287
|
-
(VALUE med_tax_mj
|
288
|
-
(Ref med_tax_s)
|
289
|
-
)
|
290
|
-
(VALUE addl_threshold_mj
|
291
|
-
(Const 250000.0)
|
292
|
-
)
|
293
|
-
(VALUE addl_med_tax_mj
|
294
|
-
(Call :"core.mul"
|
295
|
-
(Call :"agg.max"
|
296
|
-
(Tuple
|
297
|
-
(Call :"core.sub"
|
298
|
-
(InputRef [:income])
|
299
|
-
(Ref addl_threshold_mj)
|
203
|
+
(Pair federal
|
204
|
+
(Hash
|
205
|
+
(Pair marginal
|
206
|
+
(Ref fed_marg)
|
300
207
|
)
|
301
|
-
(
|
302
|
-
|
303
|
-
)
|
304
|
-
(Ref addl_med_rate)
|
305
|
-
)
|
306
|
-
)
|
307
|
-
(VALUE fica_tax_mj
|
308
|
-
(Call :"core.add"
|
309
|
-
(Call :"core.add"
|
310
|
-
(Ref ss_tax_mj)
|
311
|
-
(Ref med_tax_mj)
|
312
|
-
)
|
313
|
-
(Ref addl_med_tax_mj)
|
314
|
-
)
|
315
|
-
)
|
316
|
-
(VALUE fica_eff_mj
|
317
|
-
(Call :"core.div"
|
318
|
-
(Ref fica_tax_mj)
|
319
|
-
(Call :"agg.max"
|
320
|
-
(Tuple
|
321
|
-
(InputRef [:income])
|
322
|
-
(Const 1.0)
|
323
|
-
)
|
324
|
-
)
|
325
|
-
)
|
326
|
-
)
|
327
|
-
(VALUE total_tax_mj
|
328
|
-
(Call :"core.add"
|
329
|
-
(Call :"core.add"
|
330
|
-
(Call :"core.add"
|
331
|
-
(Ref fed_tax_mj)
|
332
|
-
(Ref fica_tax_mj)
|
333
|
-
)
|
334
|
-
(Ref state_tax)
|
335
|
-
)
|
336
|
-
(Ref local_tax)
|
337
|
-
)
|
338
|
-
)
|
339
|
-
(VALUE total_eff_mj
|
340
|
-
(Call :"core.div"
|
341
|
-
(Ref total_tax_mj)
|
342
|
-
(Call :"agg.max"
|
343
|
-
(Tuple
|
344
|
-
(InputRef [:income])
|
345
|
-
(Const 1.0)
|
346
|
-
)
|
347
|
-
)
|
348
|
-
)
|
349
|
-
)
|
350
|
-
(VALUE after_tax_mj
|
351
|
-
(Call :"core.sub"
|
352
|
-
(InputRef [:income])
|
353
|
-
(Ref total_tax_mj)
|
354
|
-
)
|
355
|
-
)
|
356
|
-
(VALUE take_home_mj
|
357
|
-
(Call :"core.sub"
|
358
|
-
(Ref after_tax_mj)
|
359
|
-
(InputRef [:retirement_contrib])
|
360
|
-
)
|
361
|
-
)
|
362
|
-
(VALUE taxable_ms
|
363
|
-
(Call :"agg.max"
|
364
|
-
(Tuple
|
365
|
-
(Call :"core.sub"
|
366
|
-
(InputRef [:income])
|
367
|
-
(InputRef [:fed, :married_separate, :std])
|
368
|
-
)
|
369
|
-
(Const 0)
|
370
|
-
)
|
371
|
-
)
|
372
|
-
)
|
373
|
-
(VALUE lo_ms
|
374
|
-
(InputRef [:fed, :married_separate, :rates, :bracket, :lo])
|
375
|
-
)
|
376
|
-
(VALUE hi_ms
|
377
|
-
(InputRef [:fed, :married_separate, :rates, :bracket, :hi])
|
378
|
-
)
|
379
|
-
(VALUE rate_ms
|
380
|
-
(InputRef [:fed, :married_separate, :rates, :bracket, :rate])
|
381
|
-
)
|
382
|
-
(VALUE hi_ms_eff
|
383
|
-
(Call :__select__
|
384
|
-
(Call :"core.eq"
|
385
|
-
(Ref hi_ms)
|
386
|
-
(Const -1)
|
387
|
-
)
|
388
|
-
(Ref big_hi)
|
389
|
-
(Ref hi_ms)
|
390
|
-
)
|
391
|
-
)
|
392
|
-
(VALUE amt_ms
|
393
|
-
(Call :"core.clamp"
|
394
|
-
(Call :"core.sub"
|
395
|
-
(Ref taxable_ms)
|
396
|
-
(Ref lo_ms)
|
397
|
-
)
|
398
|
-
(Const 0)
|
399
|
-
(Call :"core.sub"
|
400
|
-
(Ref hi_ms_eff)
|
401
|
-
(Ref lo_ms)
|
402
|
-
)
|
403
|
-
)
|
404
|
-
)
|
405
|
-
(VALUE fed_tax_ms
|
406
|
-
(Call :"agg.sum"
|
407
|
-
(Call :"core.mul"
|
408
|
-
(Ref amt_ms)
|
409
|
-
(Ref rate_ms)
|
410
|
-
)
|
411
|
-
)
|
412
|
-
)
|
413
|
-
(VALUE in_br_ms
|
414
|
-
(Call :"core.and"
|
415
|
-
(Call :"core.gte"
|
416
|
-
(Ref taxable_ms)
|
417
|
-
(Ref lo_ms)
|
418
|
-
)
|
419
|
-
(Call :"core.lt"
|
420
|
-
(Ref taxable_ms)
|
421
|
-
(Ref hi_ms_eff)
|
422
|
-
)
|
423
|
-
)
|
424
|
-
)
|
425
|
-
(VALUE fed_marginal_ms
|
426
|
-
(Call :sum
|
427
|
-
(Call :__select__
|
428
|
-
(Ref in_br_ms)
|
429
|
-
(Ref rate_ms)
|
430
|
-
(Const 0)
|
431
|
-
)
|
432
|
-
)
|
433
|
-
)
|
434
|
-
(VALUE fed_eff_ms
|
435
|
-
(Call :"core.div"
|
436
|
-
(Ref fed_tax_ms)
|
437
|
-
(Call :"agg.max"
|
438
|
-
(Tuple
|
439
|
-
(InputRef [:income])
|
440
|
-
(Const 1.0)
|
441
|
-
)
|
442
|
-
)
|
443
|
-
)
|
444
|
-
)
|
445
|
-
(VALUE ss_tax_ms
|
446
|
-
(Ref ss_tax_s)
|
447
|
-
)
|
448
|
-
(VALUE med_tax_ms
|
449
|
-
(Ref med_tax_s)
|
450
|
-
)
|
451
|
-
(VALUE addl_threshold_ms
|
452
|
-
(Const 125000.0)
|
453
|
-
)
|
454
|
-
(VALUE addl_med_tax_ms
|
455
|
-
(Call :"core.mul"
|
456
|
-
(Call :"agg.max"
|
457
|
-
(Tuple
|
458
|
-
(Call :"core.sub"
|
459
|
-
(InputRef [:income])
|
460
|
-
(Ref addl_threshold_ms)
|
208
|
+
(Pair effective
|
209
|
+
(Ref fed_eff)
|
461
210
|
)
|
462
|
-
(
|
463
|
-
|
464
|
-
)
|
465
|
-
(Ref addl_med_rate)
|
466
|
-
)
|
467
|
-
)
|
468
|
-
(VALUE fica_tax_ms
|
469
|
-
(Call :"core.add"
|
470
|
-
(Call :"core.add"
|
471
|
-
(Ref ss_tax_ms)
|
472
|
-
(Ref med_tax_ms)
|
473
|
-
)
|
474
|
-
(Ref addl_med_tax_ms)
|
475
|
-
)
|
476
|
-
)
|
477
|
-
(VALUE fica_eff_ms
|
478
|
-
(Call :"core.div"
|
479
|
-
(Ref fica_tax_ms)
|
480
|
-
(Call :"agg.max"
|
481
|
-
(Tuple
|
482
|
-
(InputRef [:income])
|
483
|
-
(Const 1.0)
|
484
|
-
)
|
485
|
-
)
|
486
|
-
)
|
487
|
-
)
|
488
|
-
(VALUE total_tax_ms
|
489
|
-
(Call :"core.add"
|
490
|
-
(Call :"core.add"
|
491
|
-
(Call :"core.add"
|
492
|
-
(Ref fed_tax_ms)
|
493
|
-
(Ref fica_tax_ms)
|
494
|
-
)
|
495
|
-
(Ref state_tax)
|
496
|
-
)
|
497
|
-
(Ref local_tax)
|
498
|
-
)
|
499
|
-
)
|
500
|
-
(VALUE total_eff_ms
|
501
|
-
(Call :"core.div"
|
502
|
-
(Ref total_tax_ms)
|
503
|
-
(Call :"agg.max"
|
504
|
-
(Tuple
|
505
|
-
(InputRef [:income])
|
506
|
-
(Const 1.0)
|
507
|
-
)
|
508
|
-
)
|
509
|
-
)
|
510
|
-
)
|
511
|
-
(VALUE after_tax_ms
|
512
|
-
(Call :"core.sub"
|
513
|
-
(InputRef [:income])
|
514
|
-
(Ref total_tax_ms)
|
515
|
-
)
|
516
|
-
)
|
517
|
-
(VALUE take_home_ms
|
518
|
-
(Call :"core.sub"
|
519
|
-
(Ref after_tax_ms)
|
520
|
-
(InputRef [:retirement_contrib])
|
521
|
-
)
|
522
|
-
)
|
523
|
-
(VALUE taxable_hoh
|
524
|
-
(Call :"agg.max"
|
525
|
-
(Tuple
|
526
|
-
(Call :"core.sub"
|
527
|
-
(InputRef [:income])
|
528
|
-
(InputRef [:fed, :head_of_household, :std])
|
529
|
-
)
|
530
|
-
(Const 0)
|
531
|
-
)
|
532
|
-
)
|
533
|
-
)
|
534
|
-
(VALUE lo_h
|
535
|
-
(InputRef [:fed, :head_of_household, :rates, :bracket, :lo])
|
536
|
-
)
|
537
|
-
(VALUE hi_h
|
538
|
-
(InputRef [:fed, :head_of_household, :rates, :bracket, :hi])
|
539
|
-
)
|
540
|
-
(VALUE rate_h
|
541
|
-
(InputRef [:fed, :head_of_household, :rates, :bracket, :rate])
|
542
|
-
)
|
543
|
-
(VALUE hi_h_eff
|
544
|
-
(Call :__select__
|
545
|
-
(Call :"core.eq"
|
546
|
-
(Ref hi_h)
|
547
|
-
(Const -1)
|
548
|
-
)
|
549
|
-
(Ref big_hi)
|
550
|
-
(Ref hi_h)
|
551
|
-
)
|
552
|
-
)
|
553
|
-
(VALUE amt_h
|
554
|
-
(Call :"core.clamp"
|
555
|
-
(Call :"core.sub"
|
556
|
-
(Ref taxable_hoh)
|
557
|
-
(Ref lo_h)
|
558
|
-
)
|
559
|
-
(Const 0)
|
560
|
-
(Call :"core.sub"
|
561
|
-
(Ref hi_h_eff)
|
562
|
-
(Ref lo_h)
|
563
|
-
)
|
564
|
-
)
|
565
|
-
)
|
566
|
-
(VALUE fed_tax_hoh
|
567
|
-
(Call :"agg.sum"
|
568
|
-
(Call :"core.mul"
|
569
|
-
(Ref amt_h)
|
570
|
-
(Ref rate_h)
|
571
|
-
)
|
572
|
-
)
|
573
|
-
)
|
574
|
-
(VALUE in_br_h
|
575
|
-
(Call :"core.and"
|
576
|
-
(Call :"core.gte"
|
577
|
-
(Ref taxable_hoh)
|
578
|
-
(Ref lo_h)
|
579
|
-
)
|
580
|
-
(Call :"core.lt"
|
581
|
-
(Ref taxable_hoh)
|
582
|
-
(Ref hi_h_eff)
|
583
|
-
)
|
584
|
-
)
|
585
|
-
)
|
586
|
-
(VALUE fed_marginal_hoh
|
587
|
-
(Call :sum
|
588
|
-
(Call :__select__
|
589
|
-
(Ref in_br_h)
|
590
|
-
(Ref rate_h)
|
591
|
-
(Const 0)
|
592
|
-
)
|
593
|
-
)
|
594
|
-
)
|
595
|
-
(VALUE fed_eff_hoh
|
596
|
-
(Call :"core.div"
|
597
|
-
(Ref fed_tax_hoh)
|
598
|
-
(Call :"agg.max"
|
599
|
-
(Tuple
|
600
|
-
(InputRef [:income])
|
601
|
-
(Const 1.0)
|
602
|
-
)
|
603
|
-
)
|
604
|
-
)
|
605
|
-
)
|
606
|
-
(VALUE ss_tax_h
|
607
|
-
(Ref ss_tax_s)
|
608
|
-
)
|
609
|
-
(VALUE med_tax_h
|
610
|
-
(Ref med_tax_s)
|
611
|
-
)
|
612
|
-
(VALUE addl_threshold_hoh
|
613
|
-
(Const 200000.0)
|
614
|
-
)
|
615
|
-
(VALUE addl_med_tax_h
|
616
|
-
(Call :"core.mul"
|
617
|
-
(Call :"agg.max"
|
618
|
-
(Tuple
|
619
|
-
(Call :"core.sub"
|
620
|
-
(InputRef [:income])
|
621
|
-
(Ref addl_threshold_hoh)
|
211
|
+
(Pair tax
|
212
|
+
(Ref fed_tax)
|
622
213
|
)
|
623
|
-
(Const 0)
|
624
|
-
)
|
625
|
-
)
|
626
|
-
(Ref addl_med_rate)
|
627
|
-
)
|
628
|
-
)
|
629
|
-
(VALUE fica_tax_hoh
|
630
|
-
(Call :"core.add"
|
631
|
-
(Call :"core.add"
|
632
|
-
(Ref ss_tax_h)
|
633
|
-
(Ref med_tax_h)
|
634
|
-
)
|
635
|
-
(Ref addl_med_tax_h)
|
636
|
-
)
|
637
|
-
)
|
638
|
-
(VALUE fica_eff_hoh
|
639
|
-
(Call :"core.div"
|
640
|
-
(Ref fica_tax_hoh)
|
641
|
-
(Call :"agg.max"
|
642
|
-
(Tuple
|
643
|
-
(InputRef [:income])
|
644
|
-
(Const 1.0)
|
645
|
-
)
|
646
|
-
)
|
647
|
-
)
|
648
|
-
)
|
649
|
-
(VALUE total_tax_hoh
|
650
|
-
(Call :"core.add"
|
651
|
-
(Call :"core.add"
|
652
|
-
(Call :"core.add"
|
653
|
-
(Ref fed_tax_hoh)
|
654
|
-
(Ref fica_tax_hoh)
|
655
|
-
)
|
656
|
-
(Ref state_tax)
|
657
|
-
)
|
658
|
-
(Ref local_tax)
|
659
|
-
)
|
660
|
-
)
|
661
|
-
(VALUE total_eff_hoh
|
662
|
-
(Call :"core.div"
|
663
|
-
(Ref total_tax_hoh)
|
664
|
-
(Call :"agg.max"
|
665
|
-
(Tuple
|
666
|
-
(InputRef [:income])
|
667
|
-
(Const 1.0)
|
668
214
|
)
|
669
215
|
)
|
670
|
-
|
671
|
-
)
|
672
|
-
(VALUE after_tax_hoh
|
673
|
-
(Call :"core.sub"
|
674
|
-
(InputRef [:income])
|
675
|
-
(Ref total_tax_hoh)
|
676
|
-
)
|
677
|
-
)
|
678
|
-
(VALUE take_home_hoh
|
679
|
-
(Call :"core.sub"
|
680
|
-
(Ref after_tax_hoh)
|
681
|
-
(InputRef [:retirement_contrib])
|
682
|
-
)
|
683
|
-
)
|
684
|
-
(VALUE summary
|
685
|
-
(Hash
|
686
|
-
(Pair single
|
216
|
+
(Pair fica
|
687
217
|
(Hash
|
688
|
-
(Pair
|
689
|
-
(
|
690
|
-
(Pair marginal
|
691
|
-
(Ref fed_marginal_single)
|
692
|
-
)
|
693
|
-
(Pair effective
|
694
|
-
(Ref fed_eff_single)
|
695
|
-
)
|
696
|
-
(Pair tax
|
697
|
-
(Ref fed_tax_single)
|
698
|
-
)
|
699
|
-
)
|
700
|
-
)
|
701
|
-
(Pair fica
|
702
|
-
(Hash
|
703
|
-
(Pair effective
|
704
|
-
(Ref fica_eff_single)
|
705
|
-
)
|
706
|
-
(Pair tax
|
707
|
-
(Ref fica_tax_single)
|
708
|
-
)
|
709
|
-
)
|
710
|
-
)
|
711
|
-
(Pair state
|
712
|
-
(Hash
|
713
|
-
(Pair marginal
|
714
|
-
(InputRef [:state_rate])
|
715
|
-
)
|
716
|
-
(Pair effective
|
717
|
-
(InputRef [:state_rate])
|
718
|
-
)
|
719
|
-
(Pair tax
|
720
|
-
(Ref state_tax)
|
721
|
-
)
|
722
|
-
)
|
723
|
-
)
|
724
|
-
(Pair local
|
725
|
-
(Hash
|
726
|
-
(Pair marginal
|
727
|
-
(InputRef [:local_rate])
|
728
|
-
)
|
729
|
-
(Pair effective
|
730
|
-
(InputRef [:local_rate])
|
731
|
-
)
|
732
|
-
(Pair tax
|
733
|
-
(Ref local_tax)
|
734
|
-
)
|
735
|
-
)
|
736
|
-
)
|
737
|
-
(Pair total
|
738
|
-
(Hash
|
739
|
-
(Pair effective
|
740
|
-
(Ref total_eff_single)
|
741
|
-
)
|
742
|
-
(Pair tax
|
743
|
-
(Ref total_tax_single)
|
744
|
-
)
|
745
|
-
)
|
218
|
+
(Pair effective
|
219
|
+
(Ref fica_eff)
|
746
220
|
)
|
747
|
-
(Pair
|
748
|
-
(Ref
|
749
|
-
)
|
750
|
-
(Pair retirement_contrib
|
751
|
-
(InputRef [:retirement_contrib])
|
752
|
-
)
|
753
|
-
(Pair take_home
|
754
|
-
(Ref take_home_single)
|
221
|
+
(Pair tax
|
222
|
+
(Ref fica_tax)
|
755
223
|
)
|
756
224
|
)
|
757
225
|
)
|
758
|
-
(Pair
|
226
|
+
(Pair state
|
759
227
|
(Hash
|
760
|
-
(Pair
|
761
|
-
(
|
762
|
-
(Pair marginal
|
763
|
-
(Ref fed_marginal_mj)
|
764
|
-
)
|
765
|
-
(Pair effective
|
766
|
-
(Ref fed_eff_mj)
|
767
|
-
)
|
768
|
-
(Pair tax
|
769
|
-
(Ref fed_tax_mj)
|
770
|
-
)
|
771
|
-
)
|
772
|
-
)
|
773
|
-
(Pair fica
|
774
|
-
(Hash
|
775
|
-
(Pair effective
|
776
|
-
(Ref fica_eff_mj)
|
777
|
-
)
|
778
|
-
(Pair tax
|
779
|
-
(Ref fica_tax_mj)
|
780
|
-
)
|
781
|
-
)
|
782
|
-
)
|
783
|
-
(Pair state
|
784
|
-
(Hash
|
785
|
-
(Pair marginal
|
786
|
-
(InputRef [:state_rate])
|
787
|
-
)
|
788
|
-
(Pair effective
|
789
|
-
(InputRef [:state_rate])
|
790
|
-
)
|
791
|
-
(Pair tax
|
792
|
-
(Ref state_tax)
|
793
|
-
)
|
794
|
-
)
|
228
|
+
(Pair marginal
|
229
|
+
(InputRef [:state_rate])
|
795
230
|
)
|
796
|
-
(Pair
|
797
|
-
(
|
798
|
-
(Pair marginal
|
799
|
-
(InputRef [:local_rate])
|
800
|
-
)
|
801
|
-
(Pair effective
|
802
|
-
(InputRef [:local_rate])
|
803
|
-
)
|
804
|
-
(Pair tax
|
805
|
-
(Ref local_tax)
|
806
|
-
)
|
807
|
-
)
|
231
|
+
(Pair effective
|
232
|
+
(InputRef [:state_rate])
|
808
233
|
)
|
809
|
-
(Pair
|
810
|
-
(
|
811
|
-
(Pair effective
|
812
|
-
(Ref total_eff_mj)
|
813
|
-
)
|
814
|
-
(Pair tax
|
815
|
-
(Ref total_tax_mj)
|
816
|
-
)
|
817
|
-
)
|
818
|
-
)
|
819
|
-
(Pair after_tax
|
820
|
-
(Ref after_tax_mj)
|
821
|
-
)
|
822
|
-
(Pair retirement_contrib
|
823
|
-
(InputRef [:retirement_contrib])
|
824
|
-
)
|
825
|
-
(Pair take_home
|
826
|
-
(Ref take_home_mj)
|
234
|
+
(Pair tax
|
235
|
+
(Ref state_tax)
|
827
236
|
)
|
828
237
|
)
|
829
238
|
)
|
830
|
-
(Pair
|
239
|
+
(Pair local
|
831
240
|
(Hash
|
832
|
-
(Pair
|
833
|
-
(
|
834
|
-
(Pair marginal
|
835
|
-
(Ref fed_marginal_ms)
|
836
|
-
)
|
837
|
-
(Pair effective
|
838
|
-
(Ref fed_eff_ms)
|
839
|
-
)
|
840
|
-
(Pair tax
|
841
|
-
(Ref fed_tax_ms)
|
842
|
-
)
|
843
|
-
)
|
844
|
-
)
|
845
|
-
(Pair fica
|
846
|
-
(Hash
|
847
|
-
(Pair effective
|
848
|
-
(Ref fica_eff_ms)
|
849
|
-
)
|
850
|
-
(Pair tax
|
851
|
-
(Ref fica_tax_ms)
|
852
|
-
)
|
853
|
-
)
|
854
|
-
)
|
855
|
-
(Pair state
|
856
|
-
(Hash
|
857
|
-
(Pair marginal
|
858
|
-
(InputRef [:state_rate])
|
859
|
-
)
|
860
|
-
(Pair effective
|
861
|
-
(InputRef [:state_rate])
|
862
|
-
)
|
863
|
-
(Pair tax
|
864
|
-
(Ref state_tax)
|
865
|
-
)
|
866
|
-
)
|
241
|
+
(Pair marginal
|
242
|
+
(InputRef [:local_rate])
|
867
243
|
)
|
868
|
-
(Pair
|
869
|
-
(
|
870
|
-
(Pair marginal
|
871
|
-
(InputRef [:local_rate])
|
872
|
-
)
|
873
|
-
(Pair effective
|
874
|
-
(InputRef [:local_rate])
|
875
|
-
)
|
876
|
-
(Pair tax
|
877
|
-
(Ref local_tax)
|
878
|
-
)
|
879
|
-
)
|
244
|
+
(Pair effective
|
245
|
+
(InputRef [:local_rate])
|
880
246
|
)
|
881
|
-
(Pair
|
882
|
-
(
|
883
|
-
(Pair effective
|
884
|
-
(Ref total_eff_ms)
|
885
|
-
)
|
886
|
-
(Pair tax
|
887
|
-
(Ref total_tax_ms)
|
888
|
-
)
|
889
|
-
)
|
890
|
-
)
|
891
|
-
(Pair after_tax
|
892
|
-
(Ref after_tax_ms)
|
893
|
-
)
|
894
|
-
(Pair retirement_contrib
|
895
|
-
(InputRef [:retirement_contrib])
|
896
|
-
)
|
897
|
-
(Pair take_home
|
898
|
-
(Ref take_home_ms)
|
247
|
+
(Pair tax
|
248
|
+
(Ref local_tax)
|
899
249
|
)
|
900
250
|
)
|
901
251
|
)
|
902
|
-
(Pair
|
252
|
+
(Pair total
|
903
253
|
(Hash
|
904
|
-
(Pair
|
905
|
-
(
|
906
|
-
(Pair marginal
|
907
|
-
(Ref fed_marginal_hoh)
|
908
|
-
)
|
909
|
-
(Pair effective
|
910
|
-
(Ref fed_eff_hoh)
|
911
|
-
)
|
912
|
-
(Pair tax
|
913
|
-
(Ref fed_tax_hoh)
|
914
|
-
)
|
915
|
-
)
|
916
|
-
)
|
917
|
-
(Pair fica
|
918
|
-
(Hash
|
919
|
-
(Pair effective
|
920
|
-
(Ref fica_eff_hoh)
|
921
|
-
)
|
922
|
-
(Pair tax
|
923
|
-
(Ref fica_tax_hoh)
|
924
|
-
)
|
925
|
-
)
|
254
|
+
(Pair effective
|
255
|
+
(Ref total_eff)
|
926
256
|
)
|
927
|
-
(Pair
|
928
|
-
(
|
929
|
-
(Pair marginal
|
930
|
-
(InputRef [:state_rate])
|
931
|
-
)
|
932
|
-
(Pair effective
|
933
|
-
(InputRef [:state_rate])
|
934
|
-
)
|
935
|
-
(Pair tax
|
936
|
-
(Ref state_tax)
|
937
|
-
)
|
938
|
-
)
|
939
|
-
)
|
940
|
-
(Pair local
|
941
|
-
(Hash
|
942
|
-
(Pair marginal
|
943
|
-
(InputRef [:local_rate])
|
944
|
-
)
|
945
|
-
(Pair effective
|
946
|
-
(InputRef [:local_rate])
|
947
|
-
)
|
948
|
-
(Pair tax
|
949
|
-
(Ref local_tax)
|
950
|
-
)
|
951
|
-
)
|
952
|
-
)
|
953
|
-
(Pair total
|
954
|
-
(Hash
|
955
|
-
(Pair effective
|
956
|
-
(Ref total_eff_hoh)
|
957
|
-
)
|
958
|
-
(Pair tax
|
959
|
-
(Ref total_tax_hoh)
|
960
|
-
)
|
961
|
-
)
|
962
|
-
)
|
963
|
-
(Pair after_tax
|
964
|
-
(Ref after_tax_hoh)
|
965
|
-
)
|
966
|
-
(Pair retirement_contrib
|
967
|
-
(InputRef [:retirement_contrib])
|
968
|
-
)
|
969
|
-
(Pair take_home
|
970
|
-
(Ref take_home_hoh)
|
257
|
+
(Pair tax
|
258
|
+
(Ref total_tax)
|
971
259
|
)
|
972
260
|
)
|
973
261
|
)
|
262
|
+
(Pair after_tax
|
263
|
+
(Ref after_tax)
|
264
|
+
)
|
265
|
+
(Pair retirement_contrib
|
266
|
+
(InputRef [:retirement_contrib])
|
267
|
+
)
|
268
|
+
(Pair take_home
|
269
|
+
(Ref take_home)
|
270
|
+
)
|
974
271
|
)
|
975
272
|
)
|
976
273
|
)
|