kumi 0.0.25 → 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 +9 -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/schema_ruby.rb +1 -1
- data/golden/cascade_logic/expected/snast.txt +2 -2
- data/golden/chained_fusion/expected/nast.txt +2 -2
- data/golden/chained_fusion/expected/schema_ruby.rb +1 -1
- 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/nast.txt +3 -3
- data/golden/empty_and_null_inputs/expected/schema_ruby.rb +1 -1
- 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 +16 -16
- data/golden/game_of_life/expected/lir_03_cse.txt +20 -16
- data/golden/game_of_life/expected/lir_04_1_loop_fusion.txt +20 -16
- data/golden/game_of_life/expected/lir_04_loop_invcm.txt +20 -16
- data/golden/game_of_life/expected/lir_06_const_prop.txt +20 -16
- data/golden/game_of_life/expected/nast.txt +4 -4
- data/golden/game_of_life/expected/schema_javascript.mjs +4 -2
- data/golden/game_of_life/expected/schema_ruby.rb +5 -3
- 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/nast.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/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/nast.txt +2 -2
- data/golden/interleaved_fusion/expected/schema_ruby.rb +1 -1
- data/golden/let_inline/expected/nast.txt +4 -4
- data/golden/let_inline/expected/schema_ruby.rb +1 -1
- data/golden/loop_fusion/expected/nast.txt +1 -1
- data/golden/loop_fusion/expected/schema_ruby.rb +1 -1
- 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/nast.txt +2 -2
- data/golden/mixed_dimensions/expected/schema_ruby.rb +1 -1
- data/golden/multirank_hoisting/expected/nast.txt +7 -7
- data/golden/multirank_hoisting/expected/schema_ruby.rb +1 -1
- data/golden/nested_hash/expected/nast.txt +1 -1
- data/golden/nested_hash/expected/schema_ruby.rb +1 -1
- data/golden/reduction_broadcast/expected/nast.txt +3 -3
- data/golden/reduction_broadcast/expected/schema_ruby.rb +1 -1
- 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/nast.txt +8 -8
- data/golden/streaming_basics/expected/schema_ruby.rb +1 -1
- 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 +2 -2
- data/golden/tuples_and_arrays/expected/lir_03_cse.txt +2 -2
- data/golden/tuples_and_arrays/expected/lir_04_1_loop_fusion.txt +2 -2
- data/golden/tuples_and_arrays/expected/lir_04_loop_invcm.txt +2 -2
- data/golden/tuples_and_arrays/expected/lir_06_const_prop.txt +2 -2
- data/golden/tuples_and_arrays/expected/nast.txt +3 -3
- data/golden/tuples_and_arrays/expected/schema_ruby.rb +1 -1
- 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 -2460
- data/golden/us_tax_2024/expected/lir_06_const_prop.txt +587 -2460
- 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/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
@@ -11,2489 +11,616 @@
|
|
11
11
|
%t6 = call core.mul(%t4, %t5) :: float
|
12
12
|
yield %t6
|
13
13
|
)
|
14
|
-
(Declaration
|
15
|
-
%t7 = load_input "
|
16
|
-
%
|
17
|
-
%
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
%t16 =
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
%t23 =
|
38
|
-
loop
|
39
|
-
%t26 = load_field
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
14
|
+
(Declaration taxable
|
15
|
+
%t7 = load_input "statuses" :: array
|
16
|
+
%t10 = load_input "income" :: float
|
17
|
+
%t13 = const 0 :: integer
|
18
|
+
loop statuses id=L1 in %t7 as el=%statuses_el_8, idx=%statuses_i_9
|
19
|
+
%t11 = load_field statuses_el_8["std"] :: float
|
20
|
+
%t12 = call core.sub(%t10, %t11) :: float
|
21
|
+
%t14 = make_tuple(%t12, %t13) :: tuple<float, integer>
|
22
|
+
%t15 = fold %t14 fn="agg.max" :: float
|
23
|
+
yield %t15
|
24
|
+
end_loop
|
25
|
+
)
|
26
|
+
(Declaration lo
|
27
|
+
%t16 = load_input "statuses" :: array
|
28
|
+
loop statuses id=L2 in %t16 as el=%statuses_el_17, idx=%statuses_i_18
|
29
|
+
%t19 = load_field statuses_el_17["rates"] :: any
|
30
|
+
loop rates id=L3 in %t19 as el=%rates_el_20, idx=%rates_i_21
|
31
|
+
%t22 = load_field rates_el_20["lo"] :: float
|
32
|
+
yield %t22
|
33
|
+
end_loop
|
34
|
+
end_loop
|
35
|
+
)
|
36
|
+
(Declaration hi
|
37
|
+
%t23 = load_input "statuses" :: array
|
38
|
+
loop statuses id=L4 in %t23 as el=%statuses_el_24, idx=%statuses_i_25
|
39
|
+
%t26 = load_field statuses_el_24["rates"] :: any
|
40
|
+
loop rates id=L5 in %t26 as el=%rates_el_27, idx=%rates_i_28
|
41
|
+
%t29 = load_field rates_el_27["hi"] :: float
|
42
|
+
yield %t29
|
43
|
+
end_loop
|
44
|
+
end_loop
|
45
|
+
)
|
46
|
+
(Declaration rate
|
47
|
+
%t30 = load_input "statuses" :: array
|
48
|
+
loop statuses id=L6 in %t30 as el=%statuses_el_31, idx=%statuses_i_32
|
49
|
+
%t33 = load_field statuses_el_31["rates"] :: any
|
50
|
+
loop rates id=L7 in %t33 as el=%rates_el_34, idx=%rates_i_35
|
51
|
+
%t36 = load_field rates_el_34["rate"] :: float
|
52
|
+
yield %t36
|
53
|
+
end_loop
|
50
54
|
end_loop
|
51
55
|
)
|
52
56
|
(Declaration big_hi
|
53
|
-
%
|
54
|
-
yield %
|
55
|
-
)
|
56
|
-
(Declaration
|
57
|
-
%
|
58
|
-
%
|
59
|
-
%
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
%
|
72
|
-
%
|
73
|
-
%
|
74
|
-
%
|
75
|
-
%
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
end_loop
|
93
|
-
)
|
94
|
-
(Declaration
|
95
|
-
%
|
96
|
-
%
|
97
|
-
%
|
98
|
-
%
|
99
|
-
%
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
%
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
%
|
126
|
-
%
|
127
|
-
%
|
128
|
-
%
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
%
|
151
|
-
%
|
152
|
-
%
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
%
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
%
|
181
|
-
%
|
182
|
-
%
|
183
|
-
%
|
184
|
-
%
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
|
191
|
-
|
192
|
-
|
193
|
-
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
|
198
|
-
|
199
|
-
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
|
204
|
-
%
|
57
|
+
%t37 = const 100000000000.0 :: float
|
58
|
+
yield %t37
|
59
|
+
)
|
60
|
+
(Declaration hi_eff
|
61
|
+
%t38 = load_input "statuses" :: array
|
62
|
+
%t45 = const -1 :: integer
|
63
|
+
%t47 = const 100000000000.0 :: float
|
64
|
+
loop statuses id=L8 in %t38 as el=%statuses_el_39, idx=%statuses_i_40
|
65
|
+
%t41 = load_field statuses_el_39["rates"] :: any
|
66
|
+
loop rates id=L9 in %t41 as el=%rates_el_42, idx=%rates_i_43
|
67
|
+
%t209 = load_field rates_el_42["hi"] :: float
|
68
|
+
%t46 = call core.eq(%t209, %t45) :: boolean
|
69
|
+
%t49 = select %t46, %t47, %t209 :: float
|
70
|
+
yield %t49
|
71
|
+
end_loop
|
72
|
+
end_loop
|
73
|
+
)
|
74
|
+
(Declaration amt
|
75
|
+
%t50 = load_input "statuses" :: array
|
76
|
+
%t214 = load_input "income" :: float
|
77
|
+
%t217 = const 0 :: integer
|
78
|
+
%t226 = const -1 :: integer
|
79
|
+
%t228 = const 100000000000.0 :: float
|
80
|
+
loop statuses id=L10 in %t50 as el=%statuses_el_51, idx=%statuses_i_52
|
81
|
+
%t215 = load_field statuses_el_51["std"] :: float
|
82
|
+
%t53 = load_field statuses_el_51["rates"] :: any
|
83
|
+
%t216 = call core.sub(%t214, %t215) :: float
|
84
|
+
%t218 = make_tuple(%t216, %t217) :: tuple<float, integer>
|
85
|
+
%t219 = fold %t218 fn="agg.max" :: float
|
86
|
+
loop rates id=L11 in %t53 as el=%rates_el_54, idx=%rates_i_55
|
87
|
+
%t222 = load_field rates_el_54["lo"] :: float
|
88
|
+
%t58 = call core.sub(%t219, %t222) :: float
|
89
|
+
%t233 = load_field rates_el_54["hi"] :: float
|
90
|
+
%t227 = call core.eq(%t233, %t226) :: boolean
|
91
|
+
%t230 = select %t227, %t228, %t233 :: float
|
92
|
+
%t62 = call core.sub(%t230, %t222) :: float
|
93
|
+
%t63 = call core.clamp(%t58, %t217, %t62) :: float
|
94
|
+
yield %t63
|
95
|
+
end_loop
|
96
|
+
end_loop
|
97
|
+
)
|
98
|
+
(Declaration fed_tax
|
99
|
+
%t64 = load_input "statuses" :: array
|
100
|
+
%t251 = load_input "income" :: float
|
101
|
+
%t254 = const 0 :: integer
|
102
|
+
%t263 = const -1 :: integer
|
103
|
+
%t265 = const 100000000000.0 :: float
|
104
|
+
loop statuses id=L12 in %t64 as el=%statuses_el_65, idx=%statuses_i_66
|
105
|
+
%t252 = load_field statuses_el_65["std"] :: float
|
106
|
+
%acc_67 = decl_acc :: float
|
107
|
+
%t68 = load_field statuses_el_65["rates"] :: any
|
108
|
+
%t253 = call core.sub(%t251, %t252) :: float
|
109
|
+
%t255 = make_tuple(%t253, %t254) :: tuple<float, integer>
|
110
|
+
%t256 = fold %t255 fn="agg.max" :: float
|
111
|
+
loop rates id=L13 in %t68 as el=%rates_el_69, idx=%rates_i_70
|
112
|
+
%t259 = load_field rates_el_69["lo"] :: float
|
113
|
+
%t244 = call core.sub(%t256, %t259) :: float
|
114
|
+
%t270 = load_field rates_el_69["hi"] :: float
|
115
|
+
%t264 = call core.eq(%t270, %t263) :: boolean
|
116
|
+
%t267 = select %t264, %t265, %t270 :: float
|
117
|
+
%t248 = call core.sub(%t267, %t259) :: float
|
118
|
+
%t249 = call core.clamp(%t244, %t254, %t248) :: float
|
119
|
+
%t279 = load_field rates_el_69["rate"] :: float
|
120
|
+
%t73 = call core.mul(%t249, %t279) :: float
|
121
|
+
%acc_67 = acc_add agg.sum(%acc_67, %t73) :: float
|
122
|
+
end_loop
|
123
|
+
%t74 = acc_load %acc_67 :: float
|
124
|
+
yield %t74
|
125
|
+
end_loop
|
126
|
+
)
|
127
|
+
(Declaration in_br
|
128
|
+
%t75 = load_input "statuses" :: array
|
129
|
+
%t281 = load_input "income" :: float
|
130
|
+
%t284 = const 0 :: integer
|
131
|
+
%t300 = const -1 :: integer
|
132
|
+
%t302 = const 100000000000.0 :: float
|
133
|
+
loop statuses id=L14 in %t75 as el=%statuses_el_76, idx=%statuses_i_77
|
134
|
+
%t282 = load_field statuses_el_76["std"] :: float
|
135
|
+
%t78 = load_field statuses_el_76["rates"] :: any
|
136
|
+
%t283 = call core.sub(%t281, %t282) :: float
|
137
|
+
%t285 = make_tuple(%t283, %t284) :: tuple<float, integer>
|
138
|
+
%t286 = fold %t285 fn="agg.max" :: float
|
139
|
+
loop rates id=L15 in %t78 as el=%rates_el_79, idx=%rates_i_80
|
140
|
+
%t289 = load_field rates_el_79["lo"] :: float
|
141
|
+
%t83 = call core.gte(%t286, %t289) :: boolean
|
142
|
+
%t307 = load_field rates_el_79["hi"] :: float
|
143
|
+
%t301 = call core.eq(%t307, %t300) :: boolean
|
144
|
+
%t304 = select %t301, %t302, %t307 :: float
|
145
|
+
%t86 = call core.lt(%t286, %t304) :: boolean
|
146
|
+
%t87 = call core.and(%t83, %t86) :: boolean
|
147
|
+
yield %t87
|
148
|
+
end_loop
|
149
|
+
end_loop
|
150
|
+
)
|
151
|
+
(Declaration fed_marg
|
152
|
+
%t88 = load_input "statuses" :: array
|
153
|
+
%t321 = load_input "income" :: float
|
154
|
+
%t324 = const 0 :: integer
|
155
|
+
%t340 = const -1 :: integer
|
156
|
+
%t342 = const 100000000000.0 :: float
|
157
|
+
loop statuses id=L16 in %t88 as el=%statuses_el_89, idx=%statuses_i_90
|
158
|
+
%t322 = load_field statuses_el_89["std"] :: float
|
159
|
+
%acc_91 = decl_acc :: float
|
160
|
+
%t92 = load_field statuses_el_89["rates"] :: any
|
161
|
+
%t323 = call core.sub(%t321, %t322) :: float
|
162
|
+
%t325 = make_tuple(%t323, %t324) :: tuple<float, integer>
|
163
|
+
%t326 = fold %t325 fn="agg.max" :: float
|
164
|
+
loop rates id=L17 in %t92 as el=%rates_el_93, idx=%rates_i_94
|
165
|
+
%t329 = load_field rates_el_93["lo"] :: float
|
166
|
+
%t315 = call core.gte(%t326, %t329) :: boolean
|
167
|
+
%t347 = load_field rates_el_93["hi"] :: float
|
168
|
+
%t341 = call core.eq(%t347, %t340) :: boolean
|
169
|
+
%t344 = select %t341, %t342, %t347 :: float
|
170
|
+
%t318 = call core.lt(%t326, %t344) :: boolean
|
171
|
+
%t319 = call core.and(%t315, %t318) :: boolean
|
172
|
+
%t353 = load_field rates_el_93["rate"] :: float
|
173
|
+
%t98 = select %t319, %t353, %t324 :: float
|
174
|
+
%acc_91 = acc_add agg.sum(%acc_91, %t98) :: float
|
175
|
+
end_loop
|
176
|
+
%t99 = acc_load %acc_91 :: float
|
177
|
+
yield %t99
|
178
|
+
end_loop
|
179
|
+
)
|
180
|
+
(Declaration fed_eff
|
181
|
+
%t100 = load_input "statuses" :: array
|
182
|
+
%t375 = load_input "income" :: float
|
183
|
+
%t378 = const 0 :: integer
|
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>
|
188
|
+
%t107 = fold %t106 fn="agg.max" :: float
|
189
|
+
loop statuses id=L18 in %t100 as el=%statuses_el_101, idx=%statuses_i_102
|
190
|
+
%t376 = load_field statuses_el_101["std"] :: float
|
191
|
+
%acc356 = decl_acc :: float
|
192
|
+
%t357 = load_field statuses_el_101["rates"] :: any
|
193
|
+
%t377 = call core.sub(%t375, %t376) :: float
|
194
|
+
%t379 = make_tuple(%t377, %t378) :: tuple<float, integer>
|
195
|
+
%t380 = fold %t379 fn="agg.max" :: float
|
196
|
+
loop rates id=L27 in %t357 as el=%t358, idx=%t359
|
197
|
+
%t383 = load_field t358["lo"] :: float
|
198
|
+
%t368 = call core.sub(%t380, %t383) :: float
|
199
|
+
%t394 = load_field t358["hi"] :: float
|
200
|
+
%t388 = call core.eq(%t394, %t387) :: boolean
|
201
|
+
%t391 = select %t388, %t389, %t394 :: float
|
202
|
+
%t372 = call core.sub(%t391, %t383) :: float
|
203
|
+
%t373 = call core.clamp(%t368, %t378, %t372) :: float
|
204
|
+
%t403 = load_field t358["rate"] :: float
|
205
|
+
%t362 = call core.mul(%t373, %t403) :: float
|
206
|
+
%acc356 = acc_add agg.sum(%acc356, %t362) :: float
|
207
|
+
end_loop
|
208
|
+
%t363 = acc_load %acc356 :: float
|
209
|
+
%t108 = call core.div(%t363, %t107) :: float
|
210
|
+
yield %t108
|
205
211
|
end_loop
|
206
|
-
%t815 = acc_load %acc806 :: float
|
207
|
-
%t93 = const 1.0 :: float
|
208
|
-
%t94 = make_tuple(%t827, %t93) :: tuple<float>
|
209
|
-
%t95 = fold %t94 fn="agg.max" :: float
|
210
|
-
%t96 = call core.div(%t815, %t95) :: float
|
211
|
-
yield %t96
|
212
212
|
)
|
213
213
|
(Declaration ss_wage_base
|
214
|
-
%
|
215
|
-
yield %t97
|
216
|
-
)
|
217
|
-
(Declaration ss_rate
|
218
|
-
%t98 = const 0.062 :: float
|
219
|
-
yield %t98
|
220
|
-
)
|
221
|
-
(Declaration ss_tax_s
|
222
|
-
%t99 = load_input "income" :: float
|
223
|
-
%t100 = const 168600.0 :: float
|
224
|
-
%t101 = make_tuple(%t99, %t100) :: tuple<float>
|
225
|
-
%t102 = fold %t101 fn="agg.min" :: float
|
226
|
-
%t103 = const 0.062 :: float
|
227
|
-
%t104 = call core.mul(%t102, %t103) :: float
|
228
|
-
yield %t104
|
229
|
-
)
|
230
|
-
(Declaration med_base_rate
|
231
|
-
%t105 = const 0.0145 :: float
|
232
|
-
yield %t105
|
233
|
-
)
|
234
|
-
(Declaration med_tax_s
|
235
|
-
%t106 = load_input "income" :: float
|
236
|
-
%t107 = const 0.0145 :: float
|
237
|
-
%t108 = call core.mul(%t106, %t107) :: float
|
238
|
-
yield %t108
|
239
|
-
)
|
240
|
-
(Declaration addl_threshold_single
|
241
|
-
%t109 = const 200000.0 :: float
|
214
|
+
%t109 = const 168600.0 :: float
|
242
215
|
yield %t109
|
243
216
|
)
|
244
|
-
(Declaration
|
245
|
-
%t110 = const 0.
|
217
|
+
(Declaration ss_rate
|
218
|
+
%t110 = const 0.062 :: float
|
246
219
|
yield %t110
|
247
220
|
)
|
248
|
-
(Declaration
|
221
|
+
(Declaration ss_tax
|
249
222
|
%t111 = load_input "income" :: float
|
250
|
-
%t112 = const
|
251
|
-
%t113 =
|
252
|
-
%t114 =
|
253
|
-
%t115 =
|
254
|
-
%t116 =
|
255
|
-
%
|
256
|
-
%t118 = call core.mul(%t116, %t117) :: float
|
257
|
-
yield %t118
|
258
|
-
)
|
259
|
-
(Declaration fica_tax_single
|
260
|
-
%t864 = load_input "income" :: float
|
261
|
-
%t865 = const 168600.0 :: float
|
262
|
-
%t866 = make_tuple(%t864, %t865) :: tuple<float>
|
263
|
-
%t867 = fold %t866 fn="agg.min" :: float
|
264
|
-
%t868 = const 0.062 :: float
|
265
|
-
%t869 = call core.mul(%t867, %t868) :: float
|
266
|
-
%t871 = const 0.0145 :: float
|
267
|
-
%t872 = call core.mul(%t864, %t871) :: float
|
268
|
-
%t121 = call core.add(%t869, %t872) :: float
|
269
|
-
%t874 = const 200000.0 :: float
|
270
|
-
%t875 = call core.sub(%t864, %t874) :: float
|
271
|
-
%t876 = const 0 :: integer
|
272
|
-
%t877 = make_tuple(%t875, %t876) :: tuple<float, integer>
|
273
|
-
%t878 = fold %t877 fn="agg.max" :: float
|
274
|
-
%t879 = const 0.009 :: float
|
275
|
-
%t880 = call core.mul(%t878, %t879) :: float
|
276
|
-
%t123 = call core.add(%t121, %t880) :: float
|
277
|
-
yield %t123
|
278
|
-
)
|
279
|
-
(Declaration fica_eff_single
|
280
|
-
%t886 = load_input "income" :: float
|
281
|
-
%t887 = const 168600.0 :: float
|
282
|
-
%t888 = make_tuple(%t886, %t887) :: tuple<float>
|
283
|
-
%t889 = fold %t888 fn="agg.min" :: float
|
284
|
-
%t890 = const 0.062 :: float
|
285
|
-
%t891 = call core.mul(%t889, %t890) :: float
|
286
|
-
%t893 = const 0.0145 :: float
|
287
|
-
%t894 = call core.mul(%t886, %t893) :: float
|
288
|
-
%t883 = call core.add(%t891, %t894) :: float
|
289
|
-
%t896 = const 200000.0 :: float
|
290
|
-
%t897 = call core.sub(%t886, %t896) :: float
|
291
|
-
%t898 = const 0 :: integer
|
292
|
-
%t899 = make_tuple(%t897, %t898) :: tuple<float, integer>
|
293
|
-
%t900 = fold %t899 fn="agg.max" :: float
|
294
|
-
%t901 = const 0.009 :: float
|
295
|
-
%t902 = call core.mul(%t900, %t901) :: float
|
296
|
-
%t885 = call core.add(%t883, %t902) :: float
|
297
|
-
%t126 = const 1.0 :: float
|
298
|
-
%t127 = make_tuple(%t886, %t126) :: tuple<float>
|
299
|
-
%t128 = fold %t127 fn="agg.max" :: float
|
300
|
-
%t129 = call core.div(%t885, %t128) :: float
|
301
|
-
yield %t129
|
302
|
-
)
|
303
|
-
(Declaration total_tax_single
|
304
|
-
%t925 = load_input "income" :: float
|
305
|
-
%t926 = load_input "fed" :: any
|
306
|
-
%t927 = load_field t926["single"] :: any
|
307
|
-
%t928 = load_field t927["std"] :: float
|
308
|
-
%t929 = call core.sub(%t925, %t928) :: float
|
309
|
-
%t930 = const 0 :: integer
|
310
|
-
%t931 = make_tuple(%t929, %t930) :: tuple<float, integer>
|
311
|
-
%t932 = fold %t931 fn="agg.max" :: float
|
312
|
-
%acc904 = decl_acc :: float
|
313
|
-
%t905 = load_input "fed" :: array
|
314
|
-
%t906 = load_field t905["single"] :: any
|
315
|
-
%t907 = load_field t906["rates"] :: any
|
316
|
-
%t941 = const -1 :: integer
|
317
|
-
%t943 = const 100000000000.0 :: float
|
318
|
-
loop rates id=L34 in %t907 as el=%t908, idx=%t909
|
319
|
-
%t936 = load_field t908["lo"] :: float
|
320
|
-
%t949 = load_field t908["hi"] :: float
|
321
|
-
%t961 = load_field t908["rate"] :: float
|
322
|
-
%t919 = call core.sub(%t932, %t936) :: float
|
323
|
-
%t942 = call core.eq(%t949, %t941) :: boolean
|
324
|
-
%t945 = select %t942, %t943, %t949 :: float
|
325
|
-
%t923 = call core.sub(%t945, %t936) :: float
|
326
|
-
%t924 = call core.clamp(%t919, %t930, %t923) :: float
|
327
|
-
%t912 = call core.mul(%t924, %t961) :: float
|
328
|
-
%acc904 = acc_add agg.sum(%acc904, %t912) :: float
|
329
|
-
end_loop
|
330
|
-
%t913 = acc_load %acc904 :: float
|
331
|
-
%t968 = const 168600.0 :: float
|
332
|
-
%t969 = make_tuple(%t925, %t968) :: tuple<float>
|
333
|
-
%t970 = fold %t969 fn="agg.min" :: float
|
334
|
-
%t971 = const 0.062 :: float
|
335
|
-
%t972 = call core.mul(%t970, %t971) :: float
|
336
|
-
%t974 = const 0.0145 :: float
|
337
|
-
%t975 = call core.mul(%t925, %t974) :: float
|
338
|
-
%t964 = call core.add(%t972, %t975) :: float
|
339
|
-
%t977 = const 200000.0 :: float
|
340
|
-
%t978 = call core.sub(%t925, %t977) :: float
|
341
|
-
%t980 = make_tuple(%t978, %t930) :: tuple<float, integer>
|
342
|
-
%t981 = fold %t980 fn="agg.max" :: float
|
343
|
-
%t982 = const 0.009 :: float
|
344
|
-
%t983 = call core.mul(%t981, %t982) :: float
|
345
|
-
%t966 = call core.add(%t964, %t983) :: float
|
346
|
-
%t132 = call core.add(%t913, %t966) :: float
|
347
|
-
%t985 = load_input "state_rate" :: float
|
348
|
-
%t986 = call core.mul(%t925, %t985) :: float
|
349
|
-
%t134 = call core.add(%t132, %t986) :: float
|
350
|
-
%t988 = load_input "local_rate" :: float
|
351
|
-
%t989 = call core.mul(%t925, %t988) :: float
|
352
|
-
%t136 = call core.add(%t134, %t989) :: float
|
353
|
-
yield %t136
|
223
|
+
%t112 = const 168600.0 :: float
|
224
|
+
%t113 = make_tuple(%t111, %t112) :: tuple<float, float>
|
225
|
+
%t114 = fold %t113 fn="agg.min" :: float
|
226
|
+
%t115 = const 0.062 :: float
|
227
|
+
%t116 = call core.mul(%t114, %t115) :: float
|
228
|
+
yield %t116
|
354
229
|
)
|
355
|
-
(Declaration
|
356
|
-
%
|
357
|
-
%
|
358
|
-
%t1021 = load_field t1020["single"] :: any
|
359
|
-
%t1022 = load_field t1021["std"] :: float
|
360
|
-
%t1023 = call core.sub(%t1019, %t1022) :: float
|
361
|
-
%t1024 = const 0 :: integer
|
362
|
-
%t1025 = make_tuple(%t1023, %t1024) :: tuple<float, integer>
|
363
|
-
%t1026 = fold %t1025 fn="agg.max" :: float
|
364
|
-
%acc998 = decl_acc :: float
|
365
|
-
%t999 = load_input "fed" :: array
|
366
|
-
%t1000 = load_field t999["single"] :: any
|
367
|
-
%t1001 = load_field t1000["rates"] :: any
|
368
|
-
%t1035 = const -1 :: integer
|
369
|
-
%t1037 = const 100000000000.0 :: float
|
370
|
-
loop rates id=L35 in %t1001 as el=%t1002, idx=%t1003
|
371
|
-
%t1030 = load_field t1002["lo"] :: float
|
372
|
-
%t1043 = load_field t1002["hi"] :: float
|
373
|
-
%t1055 = load_field t1002["rate"] :: float
|
374
|
-
%t1013 = call core.sub(%t1026, %t1030) :: float
|
375
|
-
%t1036 = call core.eq(%t1043, %t1035) :: boolean
|
376
|
-
%t1039 = select %t1036, %t1037, %t1043 :: float
|
377
|
-
%t1017 = call core.sub(%t1039, %t1030) :: float
|
378
|
-
%t1018 = call core.clamp(%t1013, %t1024, %t1017) :: float
|
379
|
-
%t1006 = call core.mul(%t1018, %t1055) :: float
|
380
|
-
%acc998 = acc_add agg.sum(%acc998, %t1006) :: float
|
381
|
-
end_loop
|
382
|
-
%t1007 = acc_load %acc998 :: float
|
383
|
-
%t1062 = const 168600.0 :: float
|
384
|
-
%t1063 = make_tuple(%t1019, %t1062) :: tuple<float>
|
385
|
-
%t1064 = fold %t1063 fn="agg.min" :: float
|
386
|
-
%t1065 = const 0.062 :: float
|
387
|
-
%t1066 = call core.mul(%t1064, %t1065) :: float
|
388
|
-
%t1068 = const 0.0145 :: float
|
389
|
-
%t1069 = call core.mul(%t1019, %t1068) :: float
|
390
|
-
%t1058 = call core.add(%t1066, %t1069) :: float
|
391
|
-
%t1071 = const 200000.0 :: float
|
392
|
-
%t1072 = call core.sub(%t1019, %t1071) :: float
|
393
|
-
%t1074 = make_tuple(%t1072, %t1024) :: tuple<float, integer>
|
394
|
-
%t1075 = fold %t1074 fn="agg.max" :: float
|
395
|
-
%t1076 = const 0.009 :: float
|
396
|
-
%t1077 = call core.mul(%t1075, %t1076) :: float
|
397
|
-
%t1060 = call core.add(%t1058, %t1077) :: float
|
398
|
-
%t992 = call core.add(%t1007, %t1060) :: float
|
399
|
-
%t1079 = load_input "state_rate" :: float
|
400
|
-
%t1080 = call core.mul(%t1019, %t1079) :: float
|
401
|
-
%t994 = call core.add(%t992, %t1080) :: float
|
402
|
-
%t1082 = load_input "local_rate" :: float
|
403
|
-
%t1083 = call core.mul(%t1019, %t1082) :: float
|
404
|
-
%t996 = call core.add(%t994, %t1083) :: float
|
405
|
-
%t139 = const 1.0 :: float
|
406
|
-
%t140 = make_tuple(%t1019, %t139) :: tuple<float>
|
407
|
-
%t141 = fold %t140 fn="agg.max" :: float
|
408
|
-
%t142 = call core.div(%t996, %t141) :: float
|
409
|
-
yield %t142
|
410
|
-
)
|
411
|
-
(Declaration after_tax_single
|
412
|
-
%t143 = load_input "income" :: float
|
413
|
-
%t1114 = load_input "fed" :: any
|
414
|
-
%t1115 = load_field t1114["single"] :: any
|
415
|
-
%t1116 = load_field t1115["std"] :: float
|
416
|
-
%t1117 = call core.sub(%t143, %t1116) :: float
|
417
|
-
%t1118 = const 0 :: integer
|
418
|
-
%t1119 = make_tuple(%t1117, %t1118) :: tuple<float, integer>
|
419
|
-
%t1120 = fold %t1119 fn="agg.max" :: float
|
420
|
-
%acc1092 = decl_acc :: float
|
421
|
-
%t1093 = load_input "fed" :: array
|
422
|
-
%t1094 = load_field t1093["single"] :: any
|
423
|
-
%t1095 = load_field t1094["rates"] :: any
|
424
|
-
%t1129 = const -1 :: integer
|
425
|
-
%t1131 = const 100000000000.0 :: float
|
426
|
-
loop rates id=L36 in %t1095 as el=%t1096, idx=%t1097
|
427
|
-
%t1124 = load_field t1096["lo"] :: float
|
428
|
-
%t1137 = load_field t1096["hi"] :: float
|
429
|
-
%t1149 = load_field t1096["rate"] :: float
|
430
|
-
%t1107 = call core.sub(%t1120, %t1124) :: float
|
431
|
-
%t1130 = call core.eq(%t1137, %t1129) :: boolean
|
432
|
-
%t1133 = select %t1130, %t1131, %t1137 :: float
|
433
|
-
%t1111 = call core.sub(%t1133, %t1124) :: float
|
434
|
-
%t1112 = call core.clamp(%t1107, %t1118, %t1111) :: float
|
435
|
-
%t1100 = call core.mul(%t1112, %t1149) :: float
|
436
|
-
%acc1092 = acc_add agg.sum(%acc1092, %t1100) :: float
|
437
|
-
end_loop
|
438
|
-
%t1101 = acc_load %acc1092 :: float
|
439
|
-
%t1156 = const 168600.0 :: float
|
440
|
-
%t1157 = make_tuple(%t143, %t1156) :: tuple<float>
|
441
|
-
%t1158 = fold %t1157 fn="agg.min" :: float
|
442
|
-
%t1159 = const 0.062 :: float
|
443
|
-
%t1160 = call core.mul(%t1158, %t1159) :: float
|
444
|
-
%t1162 = const 0.0145 :: float
|
445
|
-
%t1163 = call core.mul(%t143, %t1162) :: float
|
446
|
-
%t1152 = call core.add(%t1160, %t1163) :: float
|
447
|
-
%t1165 = const 200000.0 :: float
|
448
|
-
%t1166 = call core.sub(%t143, %t1165) :: float
|
449
|
-
%t1168 = make_tuple(%t1166, %t1118) :: tuple<float, integer>
|
450
|
-
%t1169 = fold %t1168 fn="agg.max" :: float
|
451
|
-
%t1170 = const 0.009 :: float
|
452
|
-
%t1171 = call core.mul(%t1169, %t1170) :: float
|
453
|
-
%t1154 = call core.add(%t1152, %t1171) :: float
|
454
|
-
%t1086 = call core.add(%t1101, %t1154) :: float
|
455
|
-
%t1173 = load_input "state_rate" :: float
|
456
|
-
%t1174 = call core.mul(%t143, %t1173) :: float
|
457
|
-
%t1088 = call core.add(%t1086, %t1174) :: float
|
458
|
-
%t1176 = load_input "local_rate" :: float
|
459
|
-
%t1177 = call core.mul(%t143, %t1176) :: float
|
460
|
-
%t1090 = call core.add(%t1088, %t1177) :: float
|
461
|
-
%t145 = call core.sub(%t143, %t1090) :: float
|
462
|
-
yield %t145
|
463
|
-
)
|
464
|
-
(Declaration take_home_single
|
465
|
-
%t1178 = load_input "income" :: float
|
466
|
-
%t1211 = load_input "fed" :: any
|
467
|
-
%t1212 = load_field t1211["single"] :: any
|
468
|
-
%t1213 = load_field t1212["std"] :: float
|
469
|
-
%t1214 = call core.sub(%t1178, %t1213) :: float
|
470
|
-
%t1215 = const 0 :: integer
|
471
|
-
%t1216 = make_tuple(%t1214, %t1215) :: tuple<float, integer>
|
472
|
-
%t1217 = fold %t1216 fn="agg.max" :: float
|
473
|
-
%acc1189 = decl_acc :: float
|
474
|
-
%t1190 = load_input "fed" :: array
|
475
|
-
%t1191 = load_field t1190["single"] :: any
|
476
|
-
%t1192 = load_field t1191["rates"] :: any
|
477
|
-
%t1226 = const -1 :: integer
|
478
|
-
%t1228 = const 100000000000.0 :: float
|
479
|
-
loop rates id=L37 in %t1192 as el=%t1193, idx=%t1194
|
480
|
-
%t1221 = load_field t1193["lo"] :: float
|
481
|
-
%t1234 = load_field t1193["hi"] :: float
|
482
|
-
%t1246 = load_field t1193["rate"] :: float
|
483
|
-
%t1204 = call core.sub(%t1217, %t1221) :: float
|
484
|
-
%t1227 = call core.eq(%t1234, %t1226) :: boolean
|
485
|
-
%t1230 = select %t1227, %t1228, %t1234 :: float
|
486
|
-
%t1208 = call core.sub(%t1230, %t1221) :: float
|
487
|
-
%t1209 = call core.clamp(%t1204, %t1215, %t1208) :: float
|
488
|
-
%t1197 = call core.mul(%t1209, %t1246) :: float
|
489
|
-
%acc1189 = acc_add agg.sum(%acc1189, %t1197) :: float
|
490
|
-
end_loop
|
491
|
-
%t1198 = acc_load %acc1189 :: float
|
492
|
-
%t1253 = const 168600.0 :: float
|
493
|
-
%t1254 = make_tuple(%t1178, %t1253) :: tuple<float>
|
494
|
-
%t1255 = fold %t1254 fn="agg.min" :: float
|
495
|
-
%t1256 = const 0.062 :: float
|
496
|
-
%t1257 = call core.mul(%t1255, %t1256) :: float
|
497
|
-
%t1259 = const 0.0145 :: float
|
498
|
-
%t1260 = call core.mul(%t1178, %t1259) :: float
|
499
|
-
%t1249 = call core.add(%t1257, %t1260) :: float
|
500
|
-
%t1262 = const 200000.0 :: float
|
501
|
-
%t1263 = call core.sub(%t1178, %t1262) :: float
|
502
|
-
%t1265 = make_tuple(%t1263, %t1215) :: tuple<float, integer>
|
503
|
-
%t1266 = fold %t1265 fn="agg.max" :: float
|
504
|
-
%t1267 = const 0.009 :: float
|
505
|
-
%t1268 = call core.mul(%t1266, %t1267) :: float
|
506
|
-
%t1251 = call core.add(%t1249, %t1268) :: float
|
507
|
-
%t1183 = call core.add(%t1198, %t1251) :: float
|
508
|
-
%t1270 = load_input "state_rate" :: float
|
509
|
-
%t1271 = call core.mul(%t1178, %t1270) :: float
|
510
|
-
%t1185 = call core.add(%t1183, %t1271) :: float
|
511
|
-
%t1273 = load_input "local_rate" :: float
|
512
|
-
%t1274 = call core.mul(%t1178, %t1273) :: float
|
513
|
-
%t1187 = call core.add(%t1185, %t1274) :: float
|
514
|
-
%t1180 = call core.sub(%t1178, %t1187) :: float
|
515
|
-
%t147 = load_input "retirement_contrib" :: float
|
516
|
-
%t148 = call core.sub(%t1180, %t147) :: float
|
517
|
-
yield %t148
|
518
|
-
)
|
519
|
-
(Declaration taxable_mj
|
520
|
-
%t149 = load_input "income" :: float
|
521
|
-
%t150 = load_input "fed" :: any
|
522
|
-
%t151 = load_field t150["married_joint"] :: any
|
523
|
-
%t152 = load_field t151["std"] :: float
|
524
|
-
%t153 = call core.sub(%t149, %t152) :: float
|
525
|
-
%t154 = const 0 :: integer
|
526
|
-
%t155 = make_tuple(%t153, %t154) :: tuple<float, integer>
|
527
|
-
%t156 = fold %t155 fn="agg.max" :: float
|
528
|
-
yield %t156
|
230
|
+
(Declaration med_base_rate
|
231
|
+
%t117 = const 0.0145 :: float
|
232
|
+
yield %t117
|
529
233
|
)
|
530
|
-
(Declaration
|
531
|
-
%
|
532
|
-
%
|
533
|
-
%
|
534
|
-
|
535
|
-
%t162 = load_field rates_el_160["lo"] :: float
|
536
|
-
yield %t162
|
537
|
-
end_loop
|
234
|
+
(Declaration med_tax
|
235
|
+
%t118 = load_input "income" :: float
|
236
|
+
%t119 = const 0.0145 :: float
|
237
|
+
%t120 = call core.mul(%t118, %t119) :: float
|
238
|
+
yield %t120
|
538
239
|
)
|
539
|
-
(Declaration
|
540
|
-
%
|
541
|
-
%
|
542
|
-
|
543
|
-
|
544
|
-
|
240
|
+
(Declaration addl_med_rate
|
241
|
+
%t121 = const 0.009 :: float
|
242
|
+
yield %t121
|
243
|
+
)
|
244
|
+
(Declaration addl_med_tax
|
245
|
+
%t122 = load_input "statuses" :: array
|
246
|
+
%t125 = load_input "income" :: float
|
247
|
+
%t128 = const 0 :: integer
|
248
|
+
%t131 = const 0.009 :: float
|
249
|
+
loop statuses id=L19 in %t122 as el=%statuses_el_123, idx=%statuses_i_124
|
250
|
+
%t126 = load_field statuses_el_123["addl_threshold"] :: float
|
251
|
+
%t127 = call core.sub(%t125, %t126) :: float
|
252
|
+
%t129 = make_tuple(%t127, %t128) :: tuple<float, integer>
|
253
|
+
%t130 = fold %t129 fn="agg.max" :: float
|
254
|
+
%t132 = call core.mul(%t130, %t131) :: float
|
255
|
+
yield %t132
|
256
|
+
end_loop
|
257
|
+
)
|
258
|
+
(Declaration fica_tax
|
259
|
+
%t133 = load_input "statuses" :: array
|
260
|
+
%t404 = load_input "income" :: float
|
261
|
+
%t405 = const 168600.0 :: float
|
262
|
+
%t406 = make_tuple(%t404, %t405) :: tuple<float, float>
|
263
|
+
%t407 = fold %t406 fn="agg.min" :: float
|
264
|
+
%t408 = const 0.062 :: float
|
265
|
+
%t409 = call core.mul(%t407, %t408) :: float
|
266
|
+
%t411 = const 0.0145 :: float
|
267
|
+
%t412 = call core.mul(%t404, %t411) :: float
|
268
|
+
%t138 = call core.add(%t409, %t412) :: float
|
269
|
+
%t417 = const 0 :: integer
|
270
|
+
%t420 = const 0.009 :: float
|
271
|
+
loop statuses id=L20 in %t133 as el=%statuses_el_134, idx=%statuses_i_135
|
272
|
+
%t415 = load_field statuses_el_134["addl_threshold"] :: float
|
273
|
+
%t416 = call core.sub(%t404, %t415) :: float
|
274
|
+
%t418 = make_tuple(%t416, %t417) :: tuple<float, integer>
|
275
|
+
%t419 = fold %t418 fn="agg.max" :: float
|
276
|
+
%t421 = call core.mul(%t419, %t420) :: float
|
277
|
+
%t140 = call core.add(%t138, %t421) :: float
|
278
|
+
yield %t140
|
279
|
+
end_loop
|
280
|
+
)
|
281
|
+
(Declaration fica_eff
|
282
|
+
%t428 = load_input "income" :: float
|
283
|
+
%t429 = const 168600.0 :: float
|
284
|
+
%t430 = make_tuple(%t428, %t429) :: tuple<float, float>
|
285
|
+
%t431 = fold %t430 fn="agg.min" :: float
|
286
|
+
%t432 = const 0.062 :: float
|
287
|
+
%t433 = call core.mul(%t431, %t432) :: float
|
288
|
+
%t435 = const 0.0145 :: float
|
289
|
+
%t436 = call core.mul(%t428, %t435) :: float
|
290
|
+
%t141 = load_input "statuses" :: array
|
291
|
+
%t425 = call core.add(%t433, %t436) :: float
|
292
|
+
%t441 = const 0 :: integer
|
293
|
+
%t444 = const 0.009 :: float
|
294
|
+
%t146 = const 1.0 :: float
|
295
|
+
%t147 = make_tuple(%t428, %t146) :: tuple<float, float>
|
296
|
+
%t148 = fold %t147 fn="agg.max" :: float
|
297
|
+
loop statuses id=L21 in %t141 as el=%statuses_el_142, idx=%statuses_i_143
|
298
|
+
%t439 = load_field statuses_el_142["addl_threshold"] :: float
|
299
|
+
%t440 = call core.sub(%t428, %t439) :: float
|
300
|
+
%t442 = make_tuple(%t440, %t441) :: tuple<float, integer>
|
301
|
+
%t443 = fold %t442 fn="agg.max" :: float
|
302
|
+
%t445 = call core.mul(%t443, %t444) :: float
|
303
|
+
%t427 = call core.add(%t425, %t445) :: float
|
304
|
+
%t149 = call core.div(%t427, %t148) :: float
|
305
|
+
yield %t149
|
306
|
+
end_loop
|
307
|
+
)
|
308
|
+
(Declaration total_tax
|
309
|
+
%t508 = load_input "income" :: float
|
310
|
+
%t509 = const 168600.0 :: float
|
311
|
+
%t510 = make_tuple(%t508, %t509) :: tuple<float, float>
|
312
|
+
%t511 = fold %t510 fn="agg.min" :: float
|
313
|
+
%t512 = const 0.062 :: float
|
314
|
+
%t513 = call core.mul(%t511, %t512) :: float
|
315
|
+
%t515 = const 0.0145 :: float
|
316
|
+
%t516 = call core.mul(%t508, %t515) :: float
|
317
|
+
%t150 = load_input "statuses" :: array
|
318
|
+
%t447 = load_input "state_rate" :: float
|
319
|
+
%t448 = call core.mul(%t508, %t447) :: float
|
320
|
+
%t450 = load_input "local_rate" :: float
|
321
|
+
%t451 = call core.mul(%t508, %t450) :: float
|
322
|
+
%t476 = const 0 :: integer
|
323
|
+
%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
|
+
loop statuses id=L22 in %t150 as el=%statuses_el_151, idx=%statuses_i_152
|
328
|
+
%t474 = load_field statuses_el_151["std"] :: float
|
329
|
+
%acc454 = decl_acc :: float
|
330
|
+
%t455 = load_field statuses_el_151["rates"] :: any
|
331
|
+
%t519 = load_field statuses_el_151["addl_threshold"] :: float
|
332
|
+
%t475 = call core.sub(%t508, %t474) :: float
|
333
|
+
%t520 = call core.sub(%t508, %t519) :: float
|
334
|
+
%t477 = make_tuple(%t475, %t476) :: tuple<float, integer>
|
335
|
+
%t522 = make_tuple(%t520, %t476) :: tuple<float, integer>
|
336
|
+
%t478 = fold %t477 fn="agg.max" :: float
|
337
|
+
%t523 = fold %t522 fn="agg.max" :: float
|
338
|
+
loop rates id=L28 in %t455 as el=%t456, idx=%t457
|
339
|
+
%t481 = load_field t456["lo"] :: float
|
340
|
+
%t466 = call core.sub(%t478, %t481) :: float
|
341
|
+
%t492 = load_field t456["hi"] :: float
|
342
|
+
%t486 = call core.eq(%t492, %t485) :: boolean
|
343
|
+
%t489 = select %t486, %t487, %t492 :: float
|
344
|
+
%t470 = call core.sub(%t489, %t481) :: float
|
345
|
+
%t471 = call core.clamp(%t466, %t476, %t470) :: float
|
346
|
+
%t501 = load_field t456["rate"] :: float
|
347
|
+
%t460 = call core.mul(%t471, %t501) :: float
|
348
|
+
%acc454 = acc_add agg.sum(%acc454, %t460) :: float
|
349
|
+
end_loop
|
350
|
+
%t525 = call core.mul(%t523, %t524) :: float
|
351
|
+
%t461 = acc_load %acc454 :: float
|
352
|
+
%t507 = call core.add(%t505, %t525) :: float
|
353
|
+
%t155 = call core.add(%t461, %t507) :: float
|
354
|
+
%t157 = call core.add(%t155, %t448) :: float
|
355
|
+
%t159 = call core.add(%t157, %t451) :: float
|
356
|
+
yield %t159
|
357
|
+
end_loop
|
358
|
+
)
|
359
|
+
(Declaration total_eff
|
360
|
+
%t534 = load_input "income" :: float
|
361
|
+
%t535 = load_input "state_rate" :: float
|
362
|
+
%t536 = call core.mul(%t534, %t535) :: float
|
363
|
+
%t538 = load_input "local_rate" :: float
|
364
|
+
%t539 = call core.mul(%t534, %t538) :: float
|
365
|
+
%t597 = const 168600.0 :: float
|
366
|
+
%t598 = make_tuple(%t534, %t597) :: tuple<float, float>
|
367
|
+
%t599 = fold %t598 fn="agg.min" :: float
|
368
|
+
%t600 = const 0.062 :: float
|
369
|
+
%t601 = call core.mul(%t599, %t600) :: float
|
370
|
+
%t603 = const 0.0145 :: float
|
371
|
+
%t604 = call core.mul(%t534, %t603) :: float
|
372
|
+
%t160 = load_input "statuses" :: array
|
373
|
+
%t564 = const 0 :: integer
|
374
|
+
%t593 = call core.add(%t601, %t604) :: float
|
375
|
+
%t612 = const 0.009 :: float
|
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>
|
380
|
+
%t167 = fold %t166 fn="agg.max" :: float
|
381
|
+
loop statuses id=L23 in %t160 as el=%statuses_el_161, idx=%statuses_i_162
|
382
|
+
%t562 = load_field statuses_el_161["std"] :: float
|
383
|
+
%acc542 = decl_acc :: float
|
384
|
+
%t543 = load_field statuses_el_161["rates"] :: any
|
385
|
+
%t607 = load_field statuses_el_161["addl_threshold"] :: float
|
386
|
+
%t563 = call core.sub(%t534, %t562) :: float
|
387
|
+
%t608 = call core.sub(%t534, %t607) :: float
|
388
|
+
%t565 = make_tuple(%t563, %t564) :: tuple<float, integer>
|
389
|
+
%t610 = make_tuple(%t608, %t564) :: tuple<float, integer>
|
390
|
+
%t566 = fold %t565 fn="agg.max" :: float
|
391
|
+
%t611 = fold %t610 fn="agg.max" :: float
|
392
|
+
loop rates id=L29 in %t543 as el=%t544, idx=%t545
|
393
|
+
%t569 = load_field t544["lo"] :: float
|
394
|
+
%t554 = call core.sub(%t566, %t569) :: float
|
395
|
+
%t580 = load_field t544["hi"] :: float
|
396
|
+
%t574 = call core.eq(%t580, %t573) :: boolean
|
397
|
+
%t577 = select %t574, %t575, %t580 :: float
|
398
|
+
%t558 = call core.sub(%t577, %t569) :: float
|
399
|
+
%t559 = call core.clamp(%t554, %t564, %t558) :: float
|
400
|
+
%t589 = load_field t544["rate"] :: float
|
401
|
+
%t548 = call core.mul(%t559, %t589) :: float
|
402
|
+
%acc542 = acc_add agg.sum(%acc542, %t548) :: float
|
403
|
+
end_loop
|
404
|
+
%t613 = call core.mul(%t611, %t612) :: float
|
405
|
+
%t549 = acc_load %acc542 :: float
|
406
|
+
%t595 = call core.add(%t593, %t613) :: float
|
407
|
+
%t531 = call core.add(%t549, %t595) :: float
|
408
|
+
%t532 = call core.add(%t531, %t536) :: float
|
409
|
+
%t533 = call core.add(%t532, %t539) :: float
|
410
|
+
%t168 = call core.div(%t533, %t167) :: float
|
545
411
|
yield %t168
|
546
412
|
end_loop
|
547
413
|
)
|
548
|
-
(Declaration
|
549
|
-
%
|
550
|
-
%
|
551
|
-
%
|
552
|
-
|
553
|
-
|
414
|
+
(Declaration after_tax
|
415
|
+
%t622 = load_input "income" :: float
|
416
|
+
%t623 = load_input "state_rate" :: float
|
417
|
+
%t624 = call core.mul(%t622, %t623) :: float
|
418
|
+
%t626 = load_input "local_rate" :: float
|
419
|
+
%t627 = call core.mul(%t622, %t626) :: float
|
420
|
+
%t685 = const 168600.0 :: float
|
421
|
+
%t686 = make_tuple(%t622, %t685) :: tuple<float, float>
|
422
|
+
%t687 = fold %t686 fn="agg.min" :: float
|
423
|
+
%t688 = const 0.062 :: float
|
424
|
+
%t689 = call core.mul(%t687, %t688) :: float
|
425
|
+
%t691 = const 0.0145 :: float
|
426
|
+
%t692 = call core.mul(%t622, %t691) :: float
|
427
|
+
%t169 = load_input "statuses" :: array
|
428
|
+
%t652 = const 0 :: integer
|
429
|
+
%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
|
+
loop statuses id=L24 in %t169 as el=%statuses_el_170, idx=%statuses_i_171
|
434
|
+
%t650 = load_field statuses_el_170["std"] :: float
|
435
|
+
%acc630 = decl_acc :: float
|
436
|
+
%t631 = load_field statuses_el_170["rates"] :: any
|
437
|
+
%t695 = load_field statuses_el_170["addl_threshold"] :: float
|
438
|
+
%t651 = call core.sub(%t622, %t650) :: float
|
439
|
+
%t696 = call core.sub(%t622, %t695) :: float
|
440
|
+
%t653 = make_tuple(%t651, %t652) :: tuple<float, integer>
|
441
|
+
%t698 = make_tuple(%t696, %t652) :: tuple<float, integer>
|
442
|
+
%t654 = fold %t653 fn="agg.max" :: float
|
443
|
+
%t699 = fold %t698 fn="agg.max" :: float
|
444
|
+
loop rates id=L30 in %t631 as el=%t632, idx=%t633
|
445
|
+
%t657 = load_field t632["lo"] :: float
|
446
|
+
%t642 = call core.sub(%t654, %t657) :: float
|
447
|
+
%t668 = load_field t632["hi"] :: float
|
448
|
+
%t662 = call core.eq(%t668, %t661) :: boolean
|
449
|
+
%t665 = select %t662, %t663, %t668 :: float
|
450
|
+
%t646 = call core.sub(%t665, %t657) :: float
|
451
|
+
%t647 = call core.clamp(%t642, %t652, %t646) :: float
|
452
|
+
%t677 = load_field t632["rate"] :: float
|
453
|
+
%t636 = call core.mul(%t647, %t677) :: float
|
454
|
+
%acc630 = acc_add agg.sum(%acc630, %t636) :: float
|
455
|
+
end_loop
|
456
|
+
%t701 = call core.mul(%t699, %t700) :: float
|
457
|
+
%t637 = acc_load %acc630 :: float
|
458
|
+
%t683 = call core.add(%t681, %t701) :: float
|
459
|
+
%t619 = call core.add(%t637, %t683) :: float
|
460
|
+
%t620 = call core.add(%t619, %t624) :: float
|
461
|
+
%t621 = call core.add(%t620, %t627) :: float
|
462
|
+
%t174 = call core.sub(%t622, %t621) :: float
|
554
463
|
yield %t174
|
555
464
|
end_loop
|
556
465
|
)
|
557
|
-
(Declaration
|
558
|
-
%
|
559
|
-
%
|
560
|
-
%
|
561
|
-
%
|
562
|
-
%
|
563
|
-
|
564
|
-
|
565
|
-
|
566
|
-
|
567
|
-
|
568
|
-
|
569
|
-
|
570
|
-
|
571
|
-
%
|
572
|
-
%
|
573
|
-
%
|
574
|
-
%
|
575
|
-
%
|
576
|
-
%
|
577
|
-
|
578
|
-
|
579
|
-
|
580
|
-
|
581
|
-
|
582
|
-
|
583
|
-
|
584
|
-
|
585
|
-
%
|
586
|
-
%
|
587
|
-
%
|
588
|
-
|
589
|
-
|
590
|
-
|
591
|
-
|
592
|
-
|
593
|
-
|
594
|
-
|
595
|
-
|
596
|
-
|
597
|
-
|
598
|
-
|
599
|
-
|
600
|
-
|
601
|
-
|
602
|
-
|
603
|
-
|
604
|
-
|
605
|
-
|
606
|
-
|
607
|
-
|
608
|
-
|
609
|
-
%t1345 = const 100000000000.0 :: float
|
610
|
-
loop rates id=L14 in %t202 as el=%rates_el_203, idx=%rates_i_204
|
611
|
-
%t1338 = load_field rates_el_203["lo"] :: float
|
612
|
-
%t1351 = load_field rates_el_203["hi"] :: float
|
613
|
-
%t1363 = load_field rates_el_203["rate"] :: float
|
614
|
-
%t1321 = call core.sub(%t1334, %t1338) :: float
|
615
|
-
%t1344 = call core.eq(%t1351, %t1343) :: boolean
|
616
|
-
%t1347 = select %t1344, %t1345, %t1351 :: float
|
617
|
-
%t1325 = call core.sub(%t1347, %t1338) :: float
|
618
|
-
%t1326 = call core.clamp(%t1321, %t1332, %t1325) :: float
|
619
|
-
%t207 = call core.mul(%t1326, %t1363) :: float
|
620
|
-
%acc_199 = acc_add agg.sum(%acc_199, %t207) :: float
|
621
|
-
end_loop
|
622
|
-
%t208 = acc_load %acc_199 :: float
|
623
|
-
yield %t208
|
624
|
-
)
|
625
|
-
(Declaration in_br_mj
|
626
|
-
%t209 = load_input "fed" :: array
|
627
|
-
%t210 = load_field t209["married_joint"] :: any
|
628
|
-
%t211 = load_field t210["rates"] :: any
|
629
|
-
%t1364 = load_input "income" :: float
|
630
|
-
%t1365 = load_input "fed" :: any
|
631
|
-
%t1366 = load_field t1365["married_joint"] :: any
|
632
|
-
%t1367 = load_field t1366["std"] :: float
|
633
|
-
%t1368 = call core.sub(%t1364, %t1367) :: float
|
634
|
-
%t1369 = const 0 :: integer
|
635
|
-
%t1370 = make_tuple(%t1368, %t1369) :: tuple<float, integer>
|
636
|
-
%t1371 = fold %t1370 fn="agg.max" :: float
|
637
|
-
%t1388 = const -1 :: integer
|
638
|
-
%t1390 = const 100000000000.0 :: float
|
639
|
-
loop rates id=L15 in %t211 as el=%rates_el_212, idx=%rates_i_213
|
640
|
-
%t1383 = load_field rates_el_212["lo"] :: float
|
641
|
-
%t1396 = load_field rates_el_212["hi"] :: float
|
642
|
-
%t216 = call core.gte(%t1371, %t1383) :: boolean
|
643
|
-
%t1389 = call core.eq(%t1396, %t1388) :: boolean
|
644
|
-
%t1392 = select %t1389, %t1390, %t1396 :: float
|
645
|
-
%t219 = call core.lt(%t1371, %t1392) :: boolean
|
646
|
-
%t220 = call core.and(%t216, %t219) :: boolean
|
647
|
-
yield %t220
|
648
|
-
end_loop
|
649
|
-
)
|
650
|
-
(Declaration fed_marginal_mj
|
651
|
-
%t1411 = load_input "income" :: float
|
652
|
-
%t1412 = load_input "fed" :: any
|
653
|
-
%t1413 = load_field t1412["married_joint"] :: any
|
654
|
-
%t1414 = load_field t1413["std"] :: float
|
655
|
-
%t1415 = call core.sub(%t1411, %t1414) :: float
|
656
|
-
%t1416 = const 0 :: integer
|
657
|
-
%t1417 = make_tuple(%t1415, %t1416) :: tuple<float, integer>
|
658
|
-
%t1418 = fold %t1417 fn="agg.max" :: float
|
659
|
-
%acc_221 = decl_acc :: float
|
660
|
-
%t222 = load_input "fed" :: array
|
661
|
-
%t223 = load_field t222["married_joint"] :: any
|
662
|
-
%t224 = load_field t223["rates"] :: any
|
663
|
-
%t1435 = const -1 :: integer
|
664
|
-
%t1437 = const 100000000000.0 :: float
|
665
|
-
loop rates id=L16 in %t224 as el=%rates_el_225, idx=%rates_i_226
|
666
|
-
%t1430 = load_field rates_el_225["lo"] :: float
|
667
|
-
%t1443 = load_field rates_el_225["hi"] :: float
|
668
|
-
%t1451 = load_field rates_el_225["rate"] :: float
|
669
|
-
%t1407 = call core.gte(%t1418, %t1430) :: boolean
|
670
|
-
%t1436 = call core.eq(%t1443, %t1435) :: boolean
|
671
|
-
%t1439 = select %t1436, %t1437, %t1443 :: float
|
672
|
-
%t1409 = call core.lt(%t1418, %t1439) :: boolean
|
673
|
-
%t1410 = call core.and(%t1407, %t1409) :: boolean
|
674
|
-
%t230 = select %t1410, %t1451, %t1416 :: float
|
675
|
-
%acc_221 = acc_add agg.sum(%acc_221, %t230) :: float
|
676
|
-
end_loop
|
677
|
-
%t231 = acc_load %acc_221 :: float
|
678
|
-
yield %t231
|
679
|
-
)
|
680
|
-
(Declaration fed_eff_mj
|
681
|
-
%t1474 = load_input "income" :: float
|
682
|
-
%t1475 = load_input "fed" :: any
|
683
|
-
%t1476 = load_field t1475["married_joint"] :: any
|
684
|
-
%t1477 = load_field t1476["std"] :: float
|
685
|
-
%t1478 = call core.sub(%t1474, %t1477) :: float
|
686
|
-
%t1479 = const 0 :: integer
|
687
|
-
%t1480 = make_tuple(%t1478, %t1479) :: tuple<float, integer>
|
688
|
-
%t1481 = fold %t1480 fn="agg.max" :: float
|
689
|
-
%acc1453 = decl_acc :: float
|
690
|
-
%t1454 = load_input "fed" :: array
|
691
|
-
%t1455 = load_field t1454["married_joint"] :: any
|
692
|
-
%t1456 = load_field t1455["rates"] :: any
|
693
|
-
%t1490 = const -1 :: integer
|
694
|
-
%t1492 = const 100000000000.0 :: float
|
695
|
-
loop rates id=L38 in %t1456 as el=%t1457, idx=%t1458
|
696
|
-
%t1485 = load_field t1457["lo"] :: float
|
697
|
-
%t1498 = load_field t1457["hi"] :: float
|
698
|
-
%t1510 = load_field t1457["rate"] :: float
|
699
|
-
%t1468 = call core.sub(%t1481, %t1485) :: float
|
700
|
-
%t1491 = call core.eq(%t1498, %t1490) :: boolean
|
701
|
-
%t1494 = select %t1491, %t1492, %t1498 :: float
|
702
|
-
%t1472 = call core.sub(%t1494, %t1485) :: float
|
703
|
-
%t1473 = call core.clamp(%t1468, %t1479, %t1472) :: float
|
704
|
-
%t1461 = call core.mul(%t1473, %t1510) :: float
|
705
|
-
%acc1453 = acc_add agg.sum(%acc1453, %t1461) :: float
|
706
|
-
end_loop
|
707
|
-
%t1462 = acc_load %acc1453 :: float
|
708
|
-
%t234 = const 1.0 :: float
|
709
|
-
%t235 = make_tuple(%t1474, %t234) :: tuple<float>
|
710
|
-
%t236 = fold %t235 fn="agg.max" :: float
|
711
|
-
%t237 = call core.div(%t1462, %t236) :: float
|
712
|
-
yield %t237
|
713
|
-
)
|
714
|
-
(Declaration ss_tax_mj
|
715
|
-
%t1511 = load_input "income" :: float
|
716
|
-
%t1512 = const 168600.0 :: float
|
717
|
-
%t1513 = make_tuple(%t1511, %t1512) :: tuple<float>
|
718
|
-
%t1514 = fold %t1513 fn="agg.min" :: float
|
719
|
-
%t1515 = const 0.062 :: float
|
720
|
-
%t1516 = call core.mul(%t1514, %t1515) :: float
|
721
|
-
yield %t1516
|
722
|
-
)
|
723
|
-
(Declaration med_tax_mj
|
724
|
-
%t1517 = load_input "income" :: float
|
725
|
-
%t1518 = const 0.0145 :: float
|
726
|
-
%t1519 = call core.mul(%t1517, %t1518) :: float
|
727
|
-
yield %t1519
|
728
|
-
)
|
729
|
-
(Declaration addl_threshold_mj
|
730
|
-
%t240 = const 250000.0 :: float
|
731
|
-
yield %t240
|
732
|
-
)
|
733
|
-
(Declaration addl_med_tax_mj
|
734
|
-
%t241 = load_input "income" :: float
|
735
|
-
%t242 = const 250000.0 :: float
|
736
|
-
%t243 = call core.sub(%t241, %t242) :: float
|
737
|
-
%t244 = const 0 :: integer
|
738
|
-
%t245 = make_tuple(%t243, %t244) :: tuple<float, integer>
|
739
|
-
%t246 = fold %t245 fn="agg.max" :: float
|
740
|
-
%t247 = const 0.009 :: float
|
741
|
-
%t248 = call core.mul(%t246, %t247) :: float
|
742
|
-
yield %t248
|
743
|
-
)
|
744
|
-
(Declaration fica_tax_mj
|
745
|
-
%t1521 = load_input "income" :: float
|
746
|
-
%t1522 = const 168600.0 :: float
|
747
|
-
%t1523 = make_tuple(%t1521, %t1522) :: tuple<float>
|
748
|
-
%t1524 = fold %t1523 fn="agg.min" :: float
|
749
|
-
%t1525 = const 0.062 :: float
|
750
|
-
%t1526 = call core.mul(%t1524, %t1525) :: float
|
751
|
-
%t1529 = const 0.0145 :: float
|
752
|
-
%t1530 = call core.mul(%t1521, %t1529) :: float
|
753
|
-
%t251 = call core.add(%t1526, %t1530) :: float
|
754
|
-
%t1532 = const 250000.0 :: float
|
755
|
-
%t1533 = call core.sub(%t1521, %t1532) :: float
|
756
|
-
%t1534 = const 0 :: integer
|
757
|
-
%t1535 = make_tuple(%t1533, %t1534) :: tuple<float, integer>
|
758
|
-
%t1536 = fold %t1535 fn="agg.max" :: float
|
759
|
-
%t1537 = const 0.009 :: float
|
760
|
-
%t1538 = call core.mul(%t1536, %t1537) :: float
|
761
|
-
%t253 = call core.add(%t251, %t1538) :: float
|
762
|
-
yield %t253
|
763
|
-
)
|
764
|
-
(Declaration fica_eff_mj
|
765
|
-
%t1545 = load_input "income" :: float
|
766
|
-
%t1546 = const 168600.0 :: float
|
767
|
-
%t1547 = make_tuple(%t1545, %t1546) :: tuple<float>
|
768
|
-
%t1548 = fold %t1547 fn="agg.min" :: float
|
769
|
-
%t1549 = const 0.062 :: float
|
770
|
-
%t1550 = call core.mul(%t1548, %t1549) :: float
|
771
|
-
%t1553 = const 0.0145 :: float
|
772
|
-
%t1554 = call core.mul(%t1545, %t1553) :: float
|
773
|
-
%t1541 = call core.add(%t1550, %t1554) :: float
|
774
|
-
%t1556 = const 250000.0 :: float
|
775
|
-
%t1557 = call core.sub(%t1545, %t1556) :: float
|
776
|
-
%t1558 = const 0 :: integer
|
777
|
-
%t1559 = make_tuple(%t1557, %t1558) :: tuple<float, integer>
|
778
|
-
%t1560 = fold %t1559 fn="agg.max" :: float
|
779
|
-
%t1561 = const 0.009 :: float
|
780
|
-
%t1562 = call core.mul(%t1560, %t1561) :: float
|
781
|
-
%t1543 = call core.add(%t1541, %t1562) :: float
|
782
|
-
%t256 = const 1.0 :: float
|
783
|
-
%t257 = make_tuple(%t1545, %t256) :: tuple<float>
|
784
|
-
%t258 = fold %t257 fn="agg.max" :: float
|
785
|
-
%t259 = call core.div(%t1543, %t258) :: float
|
786
|
-
yield %t259
|
787
|
-
)
|
788
|
-
(Declaration total_tax_mj
|
789
|
-
%t1585 = load_input "income" :: float
|
790
|
-
%t1586 = load_input "fed" :: any
|
791
|
-
%t1587 = load_field t1586["married_joint"] :: any
|
792
|
-
%t1588 = load_field t1587["std"] :: float
|
793
|
-
%t1589 = call core.sub(%t1585, %t1588) :: float
|
794
|
-
%t1590 = const 0 :: integer
|
795
|
-
%t1591 = make_tuple(%t1589, %t1590) :: tuple<float, integer>
|
796
|
-
%t1592 = fold %t1591 fn="agg.max" :: float
|
797
|
-
%acc1564 = decl_acc :: float
|
798
|
-
%t1565 = load_input "fed" :: array
|
799
|
-
%t1566 = load_field t1565["married_joint"] :: any
|
800
|
-
%t1567 = load_field t1566["rates"] :: any
|
801
|
-
%t1601 = const -1 :: integer
|
802
|
-
%t1603 = const 100000000000.0 :: float
|
803
|
-
loop rates id=L39 in %t1567 as el=%t1568, idx=%t1569
|
804
|
-
%t1596 = load_field t1568["lo"] :: float
|
805
|
-
%t1609 = load_field t1568["hi"] :: float
|
806
|
-
%t1621 = load_field t1568["rate"] :: float
|
807
|
-
%t1579 = call core.sub(%t1592, %t1596) :: float
|
808
|
-
%t1602 = call core.eq(%t1609, %t1601) :: boolean
|
809
|
-
%t1605 = select %t1602, %t1603, %t1609 :: float
|
810
|
-
%t1583 = call core.sub(%t1605, %t1596) :: float
|
811
|
-
%t1584 = call core.clamp(%t1579, %t1590, %t1583) :: float
|
812
|
-
%t1572 = call core.mul(%t1584, %t1621) :: float
|
813
|
-
%acc1564 = acc_add agg.sum(%acc1564, %t1572) :: float
|
814
|
-
end_loop
|
815
|
-
%t1573 = acc_load %acc1564 :: float
|
816
|
-
%t1629 = const 168600.0 :: float
|
817
|
-
%t1630 = make_tuple(%t1585, %t1629) :: tuple<float>
|
818
|
-
%t1631 = fold %t1630 fn="agg.min" :: float
|
819
|
-
%t1632 = const 0.062 :: float
|
820
|
-
%t1633 = call core.mul(%t1631, %t1632) :: float
|
821
|
-
%t1636 = const 0.0145 :: float
|
822
|
-
%t1637 = call core.mul(%t1585, %t1636) :: float
|
823
|
-
%t1624 = call core.add(%t1633, %t1637) :: float
|
824
|
-
%t1639 = const 250000.0 :: float
|
825
|
-
%t1640 = call core.sub(%t1585, %t1639) :: float
|
826
|
-
%t1642 = make_tuple(%t1640, %t1590) :: tuple<float, integer>
|
827
|
-
%t1643 = fold %t1642 fn="agg.max" :: float
|
828
|
-
%t1644 = const 0.009 :: float
|
829
|
-
%t1645 = call core.mul(%t1643, %t1644) :: float
|
830
|
-
%t1626 = call core.add(%t1624, %t1645) :: float
|
831
|
-
%t262 = call core.add(%t1573, %t1626) :: float
|
832
|
-
%t1647 = load_input "state_rate" :: float
|
833
|
-
%t1648 = call core.mul(%t1585, %t1647) :: float
|
834
|
-
%t264 = call core.add(%t262, %t1648) :: float
|
835
|
-
%t1650 = load_input "local_rate" :: float
|
836
|
-
%t1651 = call core.mul(%t1585, %t1650) :: float
|
837
|
-
%t266 = call core.add(%t264, %t1651) :: float
|
838
|
-
yield %t266
|
839
|
-
)
|
840
|
-
(Declaration total_eff_mj
|
841
|
-
%t1681 = load_input "income" :: float
|
842
|
-
%t1682 = load_input "fed" :: any
|
843
|
-
%t1683 = load_field t1682["married_joint"] :: any
|
844
|
-
%t1684 = load_field t1683["std"] :: float
|
845
|
-
%t1685 = call core.sub(%t1681, %t1684) :: float
|
846
|
-
%t1686 = const 0 :: integer
|
847
|
-
%t1687 = make_tuple(%t1685, %t1686) :: tuple<float, integer>
|
848
|
-
%t1688 = fold %t1687 fn="agg.max" :: float
|
849
|
-
%acc1660 = decl_acc :: float
|
850
|
-
%t1661 = load_input "fed" :: array
|
851
|
-
%t1662 = load_field t1661["married_joint"] :: any
|
852
|
-
%t1663 = load_field t1662["rates"] :: any
|
853
|
-
%t1697 = const -1 :: integer
|
854
|
-
%t1699 = const 100000000000.0 :: float
|
855
|
-
loop rates id=L40 in %t1663 as el=%t1664, idx=%t1665
|
856
|
-
%t1692 = load_field t1664["lo"] :: float
|
857
|
-
%t1705 = load_field t1664["hi"] :: float
|
858
|
-
%t1717 = load_field t1664["rate"] :: float
|
859
|
-
%t1675 = call core.sub(%t1688, %t1692) :: float
|
860
|
-
%t1698 = call core.eq(%t1705, %t1697) :: boolean
|
861
|
-
%t1701 = select %t1698, %t1699, %t1705 :: float
|
862
|
-
%t1679 = call core.sub(%t1701, %t1692) :: float
|
863
|
-
%t1680 = call core.clamp(%t1675, %t1686, %t1679) :: float
|
864
|
-
%t1668 = call core.mul(%t1680, %t1717) :: float
|
865
|
-
%acc1660 = acc_add agg.sum(%acc1660, %t1668) :: float
|
866
|
-
end_loop
|
867
|
-
%t1669 = acc_load %acc1660 :: float
|
868
|
-
%t1725 = const 168600.0 :: float
|
869
|
-
%t1726 = make_tuple(%t1681, %t1725) :: tuple<float>
|
870
|
-
%t1727 = fold %t1726 fn="agg.min" :: float
|
871
|
-
%t1728 = const 0.062 :: float
|
872
|
-
%t1729 = call core.mul(%t1727, %t1728) :: float
|
873
|
-
%t1732 = const 0.0145 :: float
|
874
|
-
%t1733 = call core.mul(%t1681, %t1732) :: float
|
875
|
-
%t1720 = call core.add(%t1729, %t1733) :: float
|
876
|
-
%t1735 = const 250000.0 :: float
|
877
|
-
%t1736 = call core.sub(%t1681, %t1735) :: float
|
878
|
-
%t1738 = make_tuple(%t1736, %t1686) :: tuple<float, integer>
|
879
|
-
%t1739 = fold %t1738 fn="agg.max" :: float
|
880
|
-
%t1740 = const 0.009 :: float
|
881
|
-
%t1741 = call core.mul(%t1739, %t1740) :: float
|
882
|
-
%t1722 = call core.add(%t1720, %t1741) :: float
|
883
|
-
%t1654 = call core.add(%t1669, %t1722) :: float
|
884
|
-
%t1743 = load_input "state_rate" :: float
|
885
|
-
%t1744 = call core.mul(%t1681, %t1743) :: float
|
886
|
-
%t1656 = call core.add(%t1654, %t1744) :: float
|
887
|
-
%t1746 = load_input "local_rate" :: float
|
888
|
-
%t1747 = call core.mul(%t1681, %t1746) :: float
|
889
|
-
%t1658 = call core.add(%t1656, %t1747) :: float
|
890
|
-
%t269 = const 1.0 :: float
|
891
|
-
%t270 = make_tuple(%t1681, %t269) :: tuple<float>
|
892
|
-
%t271 = fold %t270 fn="agg.max" :: float
|
893
|
-
%t272 = call core.div(%t1658, %t271) :: float
|
894
|
-
yield %t272
|
895
|
-
)
|
896
|
-
(Declaration after_tax_mj
|
897
|
-
%t273 = load_input "income" :: float
|
898
|
-
%t1778 = load_input "fed" :: any
|
899
|
-
%t1779 = load_field t1778["married_joint"] :: any
|
900
|
-
%t1780 = load_field t1779["std"] :: float
|
901
|
-
%t1781 = call core.sub(%t273, %t1780) :: float
|
902
|
-
%t1782 = const 0 :: integer
|
903
|
-
%t1783 = make_tuple(%t1781, %t1782) :: tuple<float, integer>
|
904
|
-
%t1784 = fold %t1783 fn="agg.max" :: float
|
905
|
-
%acc1756 = decl_acc :: float
|
906
|
-
%t1757 = load_input "fed" :: array
|
907
|
-
%t1758 = load_field t1757["married_joint"] :: any
|
908
|
-
%t1759 = load_field t1758["rates"] :: any
|
909
|
-
%t1793 = const -1 :: integer
|
910
|
-
%t1795 = const 100000000000.0 :: float
|
911
|
-
loop rates id=L41 in %t1759 as el=%t1760, idx=%t1761
|
912
|
-
%t1788 = load_field t1760["lo"] :: float
|
913
|
-
%t1801 = load_field t1760["hi"] :: float
|
914
|
-
%t1813 = load_field t1760["rate"] :: float
|
915
|
-
%t1771 = call core.sub(%t1784, %t1788) :: float
|
916
|
-
%t1794 = call core.eq(%t1801, %t1793) :: boolean
|
917
|
-
%t1797 = select %t1794, %t1795, %t1801 :: float
|
918
|
-
%t1775 = call core.sub(%t1797, %t1788) :: float
|
919
|
-
%t1776 = call core.clamp(%t1771, %t1782, %t1775) :: float
|
920
|
-
%t1764 = call core.mul(%t1776, %t1813) :: float
|
921
|
-
%acc1756 = acc_add agg.sum(%acc1756, %t1764) :: float
|
922
|
-
end_loop
|
923
|
-
%t1765 = acc_load %acc1756 :: float
|
924
|
-
%t1821 = const 168600.0 :: float
|
925
|
-
%t1822 = make_tuple(%t273, %t1821) :: tuple<float>
|
926
|
-
%t1823 = fold %t1822 fn="agg.min" :: float
|
927
|
-
%t1824 = const 0.062 :: float
|
928
|
-
%t1825 = call core.mul(%t1823, %t1824) :: float
|
929
|
-
%t1828 = const 0.0145 :: float
|
930
|
-
%t1829 = call core.mul(%t273, %t1828) :: float
|
931
|
-
%t1816 = call core.add(%t1825, %t1829) :: float
|
932
|
-
%t1831 = const 250000.0 :: float
|
933
|
-
%t1832 = call core.sub(%t273, %t1831) :: float
|
934
|
-
%t1834 = make_tuple(%t1832, %t1782) :: tuple<float, integer>
|
935
|
-
%t1835 = fold %t1834 fn="agg.max" :: float
|
936
|
-
%t1836 = const 0.009 :: float
|
937
|
-
%t1837 = call core.mul(%t1835, %t1836) :: float
|
938
|
-
%t1818 = call core.add(%t1816, %t1837) :: float
|
939
|
-
%t1750 = call core.add(%t1765, %t1818) :: float
|
940
|
-
%t1839 = load_input "state_rate" :: float
|
941
|
-
%t1840 = call core.mul(%t273, %t1839) :: float
|
942
|
-
%t1752 = call core.add(%t1750, %t1840) :: float
|
943
|
-
%t1842 = load_input "local_rate" :: float
|
944
|
-
%t1843 = call core.mul(%t273, %t1842) :: float
|
945
|
-
%t1754 = call core.add(%t1752, %t1843) :: float
|
946
|
-
%t275 = call core.sub(%t273, %t1754) :: float
|
947
|
-
yield %t275
|
948
|
-
)
|
949
|
-
(Declaration take_home_mj
|
950
|
-
%t1844 = load_input "income" :: float
|
951
|
-
%t1877 = load_input "fed" :: any
|
952
|
-
%t1878 = load_field t1877["married_joint"] :: any
|
953
|
-
%t1879 = load_field t1878["std"] :: float
|
954
|
-
%t1880 = call core.sub(%t1844, %t1879) :: float
|
955
|
-
%t1881 = const 0 :: integer
|
956
|
-
%t1882 = make_tuple(%t1880, %t1881) :: tuple<float, integer>
|
957
|
-
%t1883 = fold %t1882 fn="agg.max" :: float
|
958
|
-
%acc1855 = decl_acc :: float
|
959
|
-
%t1856 = load_input "fed" :: array
|
960
|
-
%t1857 = load_field t1856["married_joint"] :: any
|
961
|
-
%t1858 = load_field t1857["rates"] :: any
|
962
|
-
%t1892 = const -1 :: integer
|
963
|
-
%t1894 = const 100000000000.0 :: float
|
964
|
-
loop rates id=L42 in %t1858 as el=%t1859, idx=%t1860
|
965
|
-
%t1887 = load_field t1859["lo"] :: float
|
966
|
-
%t1900 = load_field t1859["hi"] :: float
|
967
|
-
%t1912 = load_field t1859["rate"] :: float
|
968
|
-
%t1870 = call core.sub(%t1883, %t1887) :: float
|
969
|
-
%t1893 = call core.eq(%t1900, %t1892) :: boolean
|
970
|
-
%t1896 = select %t1893, %t1894, %t1900 :: float
|
971
|
-
%t1874 = call core.sub(%t1896, %t1887) :: float
|
972
|
-
%t1875 = call core.clamp(%t1870, %t1881, %t1874) :: float
|
973
|
-
%t1863 = call core.mul(%t1875, %t1912) :: float
|
974
|
-
%acc1855 = acc_add agg.sum(%acc1855, %t1863) :: float
|
975
|
-
end_loop
|
976
|
-
%t1864 = acc_load %acc1855 :: float
|
977
|
-
%t1920 = const 168600.0 :: float
|
978
|
-
%t1921 = make_tuple(%t1844, %t1920) :: tuple<float>
|
979
|
-
%t1922 = fold %t1921 fn="agg.min" :: float
|
980
|
-
%t1923 = const 0.062 :: float
|
981
|
-
%t1924 = call core.mul(%t1922, %t1923) :: float
|
982
|
-
%t1927 = const 0.0145 :: float
|
983
|
-
%t1928 = call core.mul(%t1844, %t1927) :: float
|
984
|
-
%t1915 = call core.add(%t1924, %t1928) :: float
|
985
|
-
%t1930 = const 250000.0 :: float
|
986
|
-
%t1931 = call core.sub(%t1844, %t1930) :: float
|
987
|
-
%t1933 = make_tuple(%t1931, %t1881) :: tuple<float, integer>
|
988
|
-
%t1934 = fold %t1933 fn="agg.max" :: float
|
989
|
-
%t1935 = const 0.009 :: float
|
990
|
-
%t1936 = call core.mul(%t1934, %t1935) :: float
|
991
|
-
%t1917 = call core.add(%t1915, %t1936) :: float
|
992
|
-
%t1849 = call core.add(%t1864, %t1917) :: float
|
993
|
-
%t1938 = load_input "state_rate" :: float
|
994
|
-
%t1939 = call core.mul(%t1844, %t1938) :: float
|
995
|
-
%t1851 = call core.add(%t1849, %t1939) :: float
|
996
|
-
%t1941 = load_input "local_rate" :: float
|
997
|
-
%t1942 = call core.mul(%t1844, %t1941) :: float
|
998
|
-
%t1853 = call core.add(%t1851, %t1942) :: float
|
999
|
-
%t1846 = call core.sub(%t1844, %t1853) :: float
|
1000
|
-
%t277 = load_input "retirement_contrib" :: float
|
1001
|
-
%t278 = call core.sub(%t1846, %t277) :: float
|
1002
|
-
yield %t278
|
1003
|
-
)
|
1004
|
-
(Declaration taxable_ms
|
1005
|
-
%t279 = load_input "income" :: float
|
1006
|
-
%t280 = load_input "fed" :: any
|
1007
|
-
%t281 = load_field t280["married_separate"] :: any
|
1008
|
-
%t282 = load_field t281["std"] :: float
|
1009
|
-
%t283 = call core.sub(%t279, %t282) :: float
|
1010
|
-
%t284 = const 0 :: integer
|
1011
|
-
%t285 = make_tuple(%t283, %t284) :: tuple<float, integer>
|
1012
|
-
%t286 = fold %t285 fn="agg.max" :: float
|
1013
|
-
yield %t286
|
1014
|
-
)
|
1015
|
-
(Declaration lo_ms
|
1016
|
-
%t287 = load_input "fed" :: array
|
1017
|
-
%t288 = load_field t287["married_separate"] :: any
|
1018
|
-
%t289 = load_field t288["rates"] :: any
|
1019
|
-
loop rates id=L17 in %t289 as el=%rates_el_290, idx=%rates_i_291
|
1020
|
-
%t292 = load_field rates_el_290["lo"] :: float
|
1021
|
-
yield %t292
|
1022
|
-
end_loop
|
1023
|
-
)
|
1024
|
-
(Declaration hi_ms
|
1025
|
-
%t293 = load_input "fed" :: array
|
1026
|
-
%t294 = load_field t293["married_separate"] :: any
|
1027
|
-
%t295 = load_field t294["rates"] :: any
|
1028
|
-
loop rates id=L18 in %t295 as el=%rates_el_296, idx=%rates_i_297
|
1029
|
-
%t298 = load_field rates_el_296["hi"] :: float
|
1030
|
-
yield %t298
|
1031
|
-
end_loop
|
1032
|
-
)
|
1033
|
-
(Declaration rate_ms
|
1034
|
-
%t299 = load_input "fed" :: array
|
1035
|
-
%t300 = load_field t299["married_separate"] :: any
|
1036
|
-
%t301 = load_field t300["rates"] :: any
|
1037
|
-
loop rates id=L19 in %t301 as el=%rates_el_302, idx=%rates_i_303
|
1038
|
-
%t304 = load_field rates_el_302["rate"] :: float
|
1039
|
-
yield %t304
|
1040
|
-
end_loop
|
1041
|
-
)
|
1042
|
-
(Declaration hi_ms_eff
|
1043
|
-
%t305 = load_input "fed" :: array
|
1044
|
-
%t306 = load_field t305["married_separate"] :: any
|
1045
|
-
%t307 = load_field t306["rates"] :: any
|
1046
|
-
%t311 = const -1 :: integer
|
1047
|
-
%t313 = const 100000000000.0 :: float
|
1048
|
-
loop rates id=L20 in %t307 as el=%rates_el_308, idx=%rates_i_309
|
1049
|
-
%t1946 = load_field rates_el_308["hi"] :: float
|
1050
|
-
%t312 = call core.eq(%t1946, %t311) :: boolean
|
1051
|
-
%t315 = select %t312, %t313, %t1946 :: float
|
1052
|
-
yield %t315
|
1053
|
-
end_loop
|
1054
|
-
)
|
1055
|
-
(Declaration amt_ms
|
1056
|
-
%t316 = load_input "fed" :: array
|
1057
|
-
%t317 = load_field t316["married_separate"] :: any
|
1058
|
-
%t318 = load_field t317["rates"] :: any
|
1059
|
-
%t1951 = load_input "income" :: float
|
1060
|
-
%t1952 = load_input "fed" :: any
|
1061
|
-
%t1953 = load_field t1952["married_separate"] :: any
|
1062
|
-
%t1954 = load_field t1953["std"] :: float
|
1063
|
-
%t1955 = call core.sub(%t1951, %t1954) :: float
|
1064
|
-
%t1956 = const 0 :: integer
|
1065
|
-
%t1957 = make_tuple(%t1955, %t1956) :: tuple<float, integer>
|
1066
|
-
%t1958 = fold %t1957 fn="agg.max" :: float
|
1067
|
-
%t1967 = const -1 :: integer
|
1068
|
-
%t1969 = const 100000000000.0 :: float
|
1069
|
-
loop rates id=L21 in %t318 as el=%rates_el_319, idx=%rates_i_320
|
1070
|
-
%t1962 = load_field rates_el_319["lo"] :: float
|
1071
|
-
%t1975 = load_field rates_el_319["hi"] :: float
|
1072
|
-
%t323 = call core.sub(%t1958, %t1962) :: float
|
1073
|
-
%t1968 = call core.eq(%t1975, %t1967) :: boolean
|
1074
|
-
%t1971 = select %t1968, %t1969, %t1975 :: float
|
1075
|
-
%t327 = call core.sub(%t1971, %t1962) :: float
|
1076
|
-
%t328 = call core.clamp(%t323, %t1956, %t327) :: float
|
1077
|
-
yield %t328
|
1078
|
-
end_loop
|
1079
|
-
)
|
1080
|
-
(Declaration fed_tax_ms
|
1081
|
-
%t1995 = load_input "income" :: float
|
1082
|
-
%t1996 = load_input "fed" :: any
|
1083
|
-
%t1997 = load_field t1996["married_separate"] :: any
|
1084
|
-
%t1998 = load_field t1997["std"] :: float
|
1085
|
-
%t1999 = call core.sub(%t1995, %t1998) :: float
|
1086
|
-
%t2000 = const 0 :: integer
|
1087
|
-
%t2001 = make_tuple(%t1999, %t2000) :: tuple<float, integer>
|
1088
|
-
%t2002 = fold %t2001 fn="agg.max" :: float
|
1089
|
-
%acc_329 = decl_acc :: float
|
1090
|
-
%t330 = load_input "fed" :: array
|
1091
|
-
%t331 = load_field t330["married_separate"] :: any
|
1092
|
-
%t332 = load_field t331["rates"] :: any
|
1093
|
-
%t2011 = const -1 :: integer
|
1094
|
-
%t2013 = const 100000000000.0 :: float
|
1095
|
-
loop rates id=L22 in %t332 as el=%rates_el_333, idx=%rates_i_334
|
1096
|
-
%t2006 = load_field rates_el_333["lo"] :: float
|
1097
|
-
%t2019 = load_field rates_el_333["hi"] :: float
|
1098
|
-
%t2031 = load_field rates_el_333["rate"] :: float
|
1099
|
-
%t1989 = call core.sub(%t2002, %t2006) :: float
|
1100
|
-
%t2012 = call core.eq(%t2019, %t2011) :: boolean
|
1101
|
-
%t2015 = select %t2012, %t2013, %t2019 :: float
|
1102
|
-
%t1993 = call core.sub(%t2015, %t2006) :: float
|
1103
|
-
%t1994 = call core.clamp(%t1989, %t2000, %t1993) :: float
|
1104
|
-
%t337 = call core.mul(%t1994, %t2031) :: float
|
1105
|
-
%acc_329 = acc_add agg.sum(%acc_329, %t337) :: float
|
466
|
+
(Declaration take_home
|
467
|
+
%t714 = load_input "income" :: float
|
468
|
+
%t715 = load_input "state_rate" :: float
|
469
|
+
%t716 = call core.mul(%t714, %t715) :: float
|
470
|
+
%t718 = load_input "local_rate" :: float
|
471
|
+
%t719 = call core.mul(%t714, %t718) :: float
|
472
|
+
%t777 = const 168600.0 :: float
|
473
|
+
%t778 = make_tuple(%t714, %t777) :: tuple<float, float>
|
474
|
+
%t779 = fold %t778 fn="agg.min" :: float
|
475
|
+
%t780 = const 0.062 :: float
|
476
|
+
%t781 = call core.mul(%t779, %t780) :: float
|
477
|
+
%t783 = const 0.0145 :: float
|
478
|
+
%t784 = call core.mul(%t714, %t783) :: float
|
479
|
+
%t175 = load_input "statuses" :: array
|
480
|
+
%t744 = const 0 :: integer
|
481
|
+
%t773 = call core.add(%t781, %t784) :: float
|
482
|
+
%t792 = const 0.009 :: float
|
483
|
+
%t179 = load_input "retirement_contrib" :: float
|
484
|
+
%t753 = const -1 :: integer
|
485
|
+
%t755 = const 100000000000.0 :: float
|
486
|
+
loop statuses id=L25 in %t175 as el=%statuses_el_176, idx=%statuses_i_177
|
487
|
+
%t742 = load_field statuses_el_176["std"] :: float
|
488
|
+
%acc722 = decl_acc :: float
|
489
|
+
%t723 = load_field statuses_el_176["rates"] :: any
|
490
|
+
%t787 = load_field statuses_el_176["addl_threshold"] :: float
|
491
|
+
%t743 = call core.sub(%t714, %t742) :: float
|
492
|
+
%t788 = call core.sub(%t714, %t787) :: float
|
493
|
+
%t745 = make_tuple(%t743, %t744) :: tuple<float, integer>
|
494
|
+
%t790 = make_tuple(%t788, %t744) :: tuple<float, integer>
|
495
|
+
%t746 = fold %t745 fn="agg.max" :: float
|
496
|
+
%t791 = fold %t790 fn="agg.max" :: float
|
497
|
+
loop rates id=L31 in %t723 as el=%t724, idx=%t725
|
498
|
+
%t749 = load_field t724["lo"] :: float
|
499
|
+
%t734 = call core.sub(%t746, %t749) :: float
|
500
|
+
%t760 = load_field t724["hi"] :: float
|
501
|
+
%t754 = call core.eq(%t760, %t753) :: boolean
|
502
|
+
%t757 = select %t754, %t755, %t760 :: float
|
503
|
+
%t738 = call core.sub(%t757, %t749) :: float
|
504
|
+
%t739 = call core.clamp(%t734, %t744, %t738) :: float
|
505
|
+
%t769 = load_field t724["rate"] :: float
|
506
|
+
%t728 = call core.mul(%t739, %t769) :: float
|
507
|
+
%acc722 = acc_add agg.sum(%acc722, %t728) :: float
|
508
|
+
end_loop
|
509
|
+
%t793 = call core.mul(%t791, %t792) :: float
|
510
|
+
%t729 = acc_load %acc722 :: float
|
511
|
+
%t775 = call core.add(%t773, %t793) :: float
|
512
|
+
%t711 = call core.add(%t729, %t775) :: float
|
513
|
+
%t712 = call core.add(%t711, %t716) :: float
|
514
|
+
%t713 = call core.add(%t712, %t719) :: float
|
515
|
+
%t705 = call core.sub(%t714, %t713) :: float
|
516
|
+
%t180 = call core.sub(%t705, %t179) :: float
|
517
|
+
yield %t180
|
1106
518
|
end_loop
|
1107
|
-
%t338 = acc_load %acc_329 :: float
|
1108
|
-
yield %t338
|
1109
|
-
)
|
1110
|
-
(Declaration in_br_ms
|
1111
|
-
%t339 = load_input "fed" :: array
|
1112
|
-
%t340 = load_field t339["married_separate"] :: any
|
1113
|
-
%t341 = load_field t340["rates"] :: any
|
1114
|
-
%t2032 = load_input "income" :: float
|
1115
|
-
%t2033 = load_input "fed" :: any
|
1116
|
-
%t2034 = load_field t2033["married_separate"] :: any
|
1117
|
-
%t2035 = load_field t2034["std"] :: float
|
1118
|
-
%t2036 = call core.sub(%t2032, %t2035) :: float
|
1119
|
-
%t2037 = const 0 :: integer
|
1120
|
-
%t2038 = make_tuple(%t2036, %t2037) :: tuple<float, integer>
|
1121
|
-
%t2039 = fold %t2038 fn="agg.max" :: float
|
1122
|
-
%t2056 = const -1 :: integer
|
1123
|
-
%t2058 = const 100000000000.0 :: float
|
1124
|
-
loop rates id=L23 in %t341 as el=%rates_el_342, idx=%rates_i_343
|
1125
|
-
%t2051 = load_field rates_el_342["lo"] :: float
|
1126
|
-
%t2064 = load_field rates_el_342["hi"] :: float
|
1127
|
-
%t346 = call core.gte(%t2039, %t2051) :: boolean
|
1128
|
-
%t2057 = call core.eq(%t2064, %t2056) :: boolean
|
1129
|
-
%t2060 = select %t2057, %t2058, %t2064 :: float
|
1130
|
-
%t349 = call core.lt(%t2039, %t2060) :: boolean
|
1131
|
-
%t350 = call core.and(%t346, %t349) :: boolean
|
1132
|
-
yield %t350
|
1133
|
-
end_loop
|
1134
|
-
)
|
1135
|
-
(Declaration fed_marginal_ms
|
1136
|
-
%t2079 = load_input "income" :: float
|
1137
|
-
%t2080 = load_input "fed" :: any
|
1138
|
-
%t2081 = load_field t2080["married_separate"] :: any
|
1139
|
-
%t2082 = load_field t2081["std"] :: float
|
1140
|
-
%t2083 = call core.sub(%t2079, %t2082) :: float
|
1141
|
-
%t2084 = const 0 :: integer
|
1142
|
-
%t2085 = make_tuple(%t2083, %t2084) :: tuple<float, integer>
|
1143
|
-
%t2086 = fold %t2085 fn="agg.max" :: float
|
1144
|
-
%acc_351 = decl_acc :: float
|
1145
|
-
%t352 = load_input "fed" :: array
|
1146
|
-
%t353 = load_field t352["married_separate"] :: any
|
1147
|
-
%t354 = load_field t353["rates"] :: any
|
1148
|
-
%t2103 = const -1 :: integer
|
1149
|
-
%t2105 = const 100000000000.0 :: float
|
1150
|
-
loop rates id=L24 in %t354 as el=%rates_el_355, idx=%rates_i_356
|
1151
|
-
%t2098 = load_field rates_el_355["lo"] :: float
|
1152
|
-
%t2111 = load_field rates_el_355["hi"] :: float
|
1153
|
-
%t2119 = load_field rates_el_355["rate"] :: float
|
1154
|
-
%t2075 = call core.gte(%t2086, %t2098) :: boolean
|
1155
|
-
%t2104 = call core.eq(%t2111, %t2103) :: boolean
|
1156
|
-
%t2107 = select %t2104, %t2105, %t2111 :: float
|
1157
|
-
%t2077 = call core.lt(%t2086, %t2107) :: boolean
|
1158
|
-
%t2078 = call core.and(%t2075, %t2077) :: boolean
|
1159
|
-
%t360 = select %t2078, %t2119, %t2084 :: float
|
1160
|
-
%acc_351 = acc_add agg.sum(%acc_351, %t360) :: float
|
1161
|
-
end_loop
|
1162
|
-
%t361 = acc_load %acc_351 :: float
|
1163
|
-
yield %t361
|
1164
|
-
)
|
1165
|
-
(Declaration fed_eff_ms
|
1166
|
-
%t2142 = load_input "income" :: float
|
1167
|
-
%t2143 = load_input "fed" :: any
|
1168
|
-
%t2144 = load_field t2143["married_separate"] :: any
|
1169
|
-
%t2145 = load_field t2144["std"] :: float
|
1170
|
-
%t2146 = call core.sub(%t2142, %t2145) :: float
|
1171
|
-
%t2147 = const 0 :: integer
|
1172
|
-
%t2148 = make_tuple(%t2146, %t2147) :: tuple<float, integer>
|
1173
|
-
%t2149 = fold %t2148 fn="agg.max" :: float
|
1174
|
-
%acc2121 = decl_acc :: float
|
1175
|
-
%t2122 = load_input "fed" :: array
|
1176
|
-
%t2123 = load_field t2122["married_separate"] :: any
|
1177
|
-
%t2124 = load_field t2123["rates"] :: any
|
1178
|
-
%t2158 = const -1 :: integer
|
1179
|
-
%t2160 = const 100000000000.0 :: float
|
1180
|
-
loop rates id=L43 in %t2124 as el=%t2125, idx=%t2126
|
1181
|
-
%t2153 = load_field t2125["lo"] :: float
|
1182
|
-
%t2166 = load_field t2125["hi"] :: float
|
1183
|
-
%t2178 = load_field t2125["rate"] :: float
|
1184
|
-
%t2136 = call core.sub(%t2149, %t2153) :: float
|
1185
|
-
%t2159 = call core.eq(%t2166, %t2158) :: boolean
|
1186
|
-
%t2162 = select %t2159, %t2160, %t2166 :: float
|
1187
|
-
%t2140 = call core.sub(%t2162, %t2153) :: float
|
1188
|
-
%t2141 = call core.clamp(%t2136, %t2147, %t2140) :: float
|
1189
|
-
%t2129 = call core.mul(%t2141, %t2178) :: float
|
1190
|
-
%acc2121 = acc_add agg.sum(%acc2121, %t2129) :: float
|
1191
|
-
end_loop
|
1192
|
-
%t2130 = acc_load %acc2121 :: float
|
1193
|
-
%t364 = const 1.0 :: float
|
1194
|
-
%t365 = make_tuple(%t2142, %t364) :: tuple<float>
|
1195
|
-
%t366 = fold %t365 fn="agg.max" :: float
|
1196
|
-
%t367 = call core.div(%t2130, %t366) :: float
|
1197
|
-
yield %t367
|
1198
|
-
)
|
1199
|
-
(Declaration ss_tax_ms
|
1200
|
-
%t2179 = load_input "income" :: float
|
1201
|
-
%t2180 = const 168600.0 :: float
|
1202
|
-
%t2181 = make_tuple(%t2179, %t2180) :: tuple<float>
|
1203
|
-
%t2182 = fold %t2181 fn="agg.min" :: float
|
1204
|
-
%t2183 = const 0.062 :: float
|
1205
|
-
%t2184 = call core.mul(%t2182, %t2183) :: float
|
1206
|
-
yield %t2184
|
1207
|
-
)
|
1208
|
-
(Declaration med_tax_ms
|
1209
|
-
%t2185 = load_input "income" :: float
|
1210
|
-
%t2186 = const 0.0145 :: float
|
1211
|
-
%t2187 = call core.mul(%t2185, %t2186) :: float
|
1212
|
-
yield %t2187
|
1213
|
-
)
|
1214
|
-
(Declaration addl_threshold_ms
|
1215
|
-
%t370 = const 125000.0 :: float
|
1216
|
-
yield %t370
|
1217
|
-
)
|
1218
|
-
(Declaration addl_med_tax_ms
|
1219
|
-
%t371 = load_input "income" :: float
|
1220
|
-
%t372 = const 125000.0 :: float
|
1221
|
-
%t373 = call core.sub(%t371, %t372) :: float
|
1222
|
-
%t374 = const 0 :: integer
|
1223
|
-
%t375 = make_tuple(%t373, %t374) :: tuple<float, integer>
|
1224
|
-
%t376 = fold %t375 fn="agg.max" :: float
|
1225
|
-
%t377 = const 0.009 :: float
|
1226
|
-
%t378 = call core.mul(%t376, %t377) :: float
|
1227
|
-
yield %t378
|
1228
|
-
)
|
1229
|
-
(Declaration fica_tax_ms
|
1230
|
-
%t2189 = load_input "income" :: float
|
1231
|
-
%t2190 = const 168600.0 :: float
|
1232
|
-
%t2191 = make_tuple(%t2189, %t2190) :: tuple<float>
|
1233
|
-
%t2192 = fold %t2191 fn="agg.min" :: float
|
1234
|
-
%t2193 = const 0.062 :: float
|
1235
|
-
%t2194 = call core.mul(%t2192, %t2193) :: float
|
1236
|
-
%t2197 = const 0.0145 :: float
|
1237
|
-
%t2198 = call core.mul(%t2189, %t2197) :: float
|
1238
|
-
%t381 = call core.add(%t2194, %t2198) :: float
|
1239
|
-
%t2200 = const 125000.0 :: float
|
1240
|
-
%t2201 = call core.sub(%t2189, %t2200) :: float
|
1241
|
-
%t2202 = const 0 :: integer
|
1242
|
-
%t2203 = make_tuple(%t2201, %t2202) :: tuple<float, integer>
|
1243
|
-
%t2204 = fold %t2203 fn="agg.max" :: float
|
1244
|
-
%t2205 = const 0.009 :: float
|
1245
|
-
%t2206 = call core.mul(%t2204, %t2205) :: float
|
1246
|
-
%t383 = call core.add(%t381, %t2206) :: float
|
1247
|
-
yield %t383
|
1248
|
-
)
|
1249
|
-
(Declaration fica_eff_ms
|
1250
|
-
%t2213 = load_input "income" :: float
|
1251
|
-
%t2214 = const 168600.0 :: float
|
1252
|
-
%t2215 = make_tuple(%t2213, %t2214) :: tuple<float>
|
1253
|
-
%t2216 = fold %t2215 fn="agg.min" :: float
|
1254
|
-
%t2217 = const 0.062 :: float
|
1255
|
-
%t2218 = call core.mul(%t2216, %t2217) :: float
|
1256
|
-
%t2221 = const 0.0145 :: float
|
1257
|
-
%t2222 = call core.mul(%t2213, %t2221) :: float
|
1258
|
-
%t2209 = call core.add(%t2218, %t2222) :: float
|
1259
|
-
%t2224 = const 125000.0 :: float
|
1260
|
-
%t2225 = call core.sub(%t2213, %t2224) :: float
|
1261
|
-
%t2226 = const 0 :: integer
|
1262
|
-
%t2227 = make_tuple(%t2225, %t2226) :: tuple<float, integer>
|
1263
|
-
%t2228 = fold %t2227 fn="agg.max" :: float
|
1264
|
-
%t2229 = const 0.009 :: float
|
1265
|
-
%t2230 = call core.mul(%t2228, %t2229) :: float
|
1266
|
-
%t2211 = call core.add(%t2209, %t2230) :: float
|
1267
|
-
%t386 = const 1.0 :: float
|
1268
|
-
%t387 = make_tuple(%t2213, %t386) :: tuple<float>
|
1269
|
-
%t388 = fold %t387 fn="agg.max" :: float
|
1270
|
-
%t389 = call core.div(%t2211, %t388) :: float
|
1271
|
-
yield %t389
|
1272
|
-
)
|
1273
|
-
(Declaration total_tax_ms
|
1274
|
-
%t2253 = load_input "income" :: float
|
1275
|
-
%t2254 = load_input "fed" :: any
|
1276
|
-
%t2255 = load_field t2254["married_separate"] :: any
|
1277
|
-
%t2256 = load_field t2255["std"] :: float
|
1278
|
-
%t2257 = call core.sub(%t2253, %t2256) :: float
|
1279
|
-
%t2258 = const 0 :: integer
|
1280
|
-
%t2259 = make_tuple(%t2257, %t2258) :: tuple<float, integer>
|
1281
|
-
%t2260 = fold %t2259 fn="agg.max" :: float
|
1282
|
-
%acc2232 = decl_acc :: float
|
1283
|
-
%t2233 = load_input "fed" :: array
|
1284
|
-
%t2234 = load_field t2233["married_separate"] :: any
|
1285
|
-
%t2235 = load_field t2234["rates"] :: any
|
1286
|
-
%t2269 = const -1 :: integer
|
1287
|
-
%t2271 = const 100000000000.0 :: float
|
1288
|
-
loop rates id=L44 in %t2235 as el=%t2236, idx=%t2237
|
1289
|
-
%t2264 = load_field t2236["lo"] :: float
|
1290
|
-
%t2277 = load_field t2236["hi"] :: float
|
1291
|
-
%t2289 = load_field t2236["rate"] :: float
|
1292
|
-
%t2247 = call core.sub(%t2260, %t2264) :: float
|
1293
|
-
%t2270 = call core.eq(%t2277, %t2269) :: boolean
|
1294
|
-
%t2273 = select %t2270, %t2271, %t2277 :: float
|
1295
|
-
%t2251 = call core.sub(%t2273, %t2264) :: float
|
1296
|
-
%t2252 = call core.clamp(%t2247, %t2258, %t2251) :: float
|
1297
|
-
%t2240 = call core.mul(%t2252, %t2289) :: float
|
1298
|
-
%acc2232 = acc_add agg.sum(%acc2232, %t2240) :: float
|
1299
|
-
end_loop
|
1300
|
-
%t2241 = acc_load %acc2232 :: float
|
1301
|
-
%t2297 = const 168600.0 :: float
|
1302
|
-
%t2298 = make_tuple(%t2253, %t2297) :: tuple<float>
|
1303
|
-
%t2299 = fold %t2298 fn="agg.min" :: float
|
1304
|
-
%t2300 = const 0.062 :: float
|
1305
|
-
%t2301 = call core.mul(%t2299, %t2300) :: float
|
1306
|
-
%t2304 = const 0.0145 :: float
|
1307
|
-
%t2305 = call core.mul(%t2253, %t2304) :: float
|
1308
|
-
%t2292 = call core.add(%t2301, %t2305) :: float
|
1309
|
-
%t2307 = const 125000.0 :: float
|
1310
|
-
%t2308 = call core.sub(%t2253, %t2307) :: float
|
1311
|
-
%t2310 = make_tuple(%t2308, %t2258) :: tuple<float, integer>
|
1312
|
-
%t2311 = fold %t2310 fn="agg.max" :: float
|
1313
|
-
%t2312 = const 0.009 :: float
|
1314
|
-
%t2313 = call core.mul(%t2311, %t2312) :: float
|
1315
|
-
%t2294 = call core.add(%t2292, %t2313) :: float
|
1316
|
-
%t392 = call core.add(%t2241, %t2294) :: float
|
1317
|
-
%t2315 = load_input "state_rate" :: float
|
1318
|
-
%t2316 = call core.mul(%t2253, %t2315) :: float
|
1319
|
-
%t394 = call core.add(%t392, %t2316) :: float
|
1320
|
-
%t2318 = load_input "local_rate" :: float
|
1321
|
-
%t2319 = call core.mul(%t2253, %t2318) :: float
|
1322
|
-
%t396 = call core.add(%t394, %t2319) :: float
|
1323
|
-
yield %t396
|
1324
|
-
)
|
1325
|
-
(Declaration total_eff_ms
|
1326
|
-
%t2349 = load_input "income" :: float
|
1327
|
-
%t2350 = load_input "fed" :: any
|
1328
|
-
%t2351 = load_field t2350["married_separate"] :: any
|
1329
|
-
%t2352 = load_field t2351["std"] :: float
|
1330
|
-
%t2353 = call core.sub(%t2349, %t2352) :: float
|
1331
|
-
%t2354 = const 0 :: integer
|
1332
|
-
%t2355 = make_tuple(%t2353, %t2354) :: tuple<float, integer>
|
1333
|
-
%t2356 = fold %t2355 fn="agg.max" :: float
|
1334
|
-
%acc2328 = decl_acc :: float
|
1335
|
-
%t2329 = load_input "fed" :: array
|
1336
|
-
%t2330 = load_field t2329["married_separate"] :: any
|
1337
|
-
%t2331 = load_field t2330["rates"] :: any
|
1338
|
-
%t2365 = const -1 :: integer
|
1339
|
-
%t2367 = const 100000000000.0 :: float
|
1340
|
-
loop rates id=L45 in %t2331 as el=%t2332, idx=%t2333
|
1341
|
-
%t2360 = load_field t2332["lo"] :: float
|
1342
|
-
%t2373 = load_field t2332["hi"] :: float
|
1343
|
-
%t2385 = load_field t2332["rate"] :: float
|
1344
|
-
%t2343 = call core.sub(%t2356, %t2360) :: float
|
1345
|
-
%t2366 = call core.eq(%t2373, %t2365) :: boolean
|
1346
|
-
%t2369 = select %t2366, %t2367, %t2373 :: float
|
1347
|
-
%t2347 = call core.sub(%t2369, %t2360) :: float
|
1348
|
-
%t2348 = call core.clamp(%t2343, %t2354, %t2347) :: float
|
1349
|
-
%t2336 = call core.mul(%t2348, %t2385) :: float
|
1350
|
-
%acc2328 = acc_add agg.sum(%acc2328, %t2336) :: float
|
1351
|
-
end_loop
|
1352
|
-
%t2337 = acc_load %acc2328 :: float
|
1353
|
-
%t2393 = const 168600.0 :: float
|
1354
|
-
%t2394 = make_tuple(%t2349, %t2393) :: tuple<float>
|
1355
|
-
%t2395 = fold %t2394 fn="agg.min" :: float
|
1356
|
-
%t2396 = const 0.062 :: float
|
1357
|
-
%t2397 = call core.mul(%t2395, %t2396) :: float
|
1358
|
-
%t2400 = const 0.0145 :: float
|
1359
|
-
%t2401 = call core.mul(%t2349, %t2400) :: float
|
1360
|
-
%t2388 = call core.add(%t2397, %t2401) :: float
|
1361
|
-
%t2403 = const 125000.0 :: float
|
1362
|
-
%t2404 = call core.sub(%t2349, %t2403) :: float
|
1363
|
-
%t2406 = make_tuple(%t2404, %t2354) :: tuple<float, integer>
|
1364
|
-
%t2407 = fold %t2406 fn="agg.max" :: float
|
1365
|
-
%t2408 = const 0.009 :: float
|
1366
|
-
%t2409 = call core.mul(%t2407, %t2408) :: float
|
1367
|
-
%t2390 = call core.add(%t2388, %t2409) :: float
|
1368
|
-
%t2322 = call core.add(%t2337, %t2390) :: float
|
1369
|
-
%t2411 = load_input "state_rate" :: float
|
1370
|
-
%t2412 = call core.mul(%t2349, %t2411) :: float
|
1371
|
-
%t2324 = call core.add(%t2322, %t2412) :: float
|
1372
|
-
%t2414 = load_input "local_rate" :: float
|
1373
|
-
%t2415 = call core.mul(%t2349, %t2414) :: float
|
1374
|
-
%t2326 = call core.add(%t2324, %t2415) :: float
|
1375
|
-
%t399 = const 1.0 :: float
|
1376
|
-
%t400 = make_tuple(%t2349, %t399) :: tuple<float>
|
1377
|
-
%t401 = fold %t400 fn="agg.max" :: float
|
1378
|
-
%t402 = call core.div(%t2326, %t401) :: float
|
1379
|
-
yield %t402
|
1380
|
-
)
|
1381
|
-
(Declaration after_tax_ms
|
1382
|
-
%t403 = load_input "income" :: float
|
1383
|
-
%t2446 = load_input "fed" :: any
|
1384
|
-
%t2447 = load_field t2446["married_separate"] :: any
|
1385
|
-
%t2448 = load_field t2447["std"] :: float
|
1386
|
-
%t2449 = call core.sub(%t403, %t2448) :: float
|
1387
|
-
%t2450 = const 0 :: integer
|
1388
|
-
%t2451 = make_tuple(%t2449, %t2450) :: tuple<float, integer>
|
1389
|
-
%t2452 = fold %t2451 fn="agg.max" :: float
|
1390
|
-
%acc2424 = decl_acc :: float
|
1391
|
-
%t2425 = load_input "fed" :: array
|
1392
|
-
%t2426 = load_field t2425["married_separate"] :: any
|
1393
|
-
%t2427 = load_field t2426["rates"] :: any
|
1394
|
-
%t2461 = const -1 :: integer
|
1395
|
-
%t2463 = const 100000000000.0 :: float
|
1396
|
-
loop rates id=L46 in %t2427 as el=%t2428, idx=%t2429
|
1397
|
-
%t2456 = load_field t2428["lo"] :: float
|
1398
|
-
%t2469 = load_field t2428["hi"] :: float
|
1399
|
-
%t2481 = load_field t2428["rate"] :: float
|
1400
|
-
%t2439 = call core.sub(%t2452, %t2456) :: float
|
1401
|
-
%t2462 = call core.eq(%t2469, %t2461) :: boolean
|
1402
|
-
%t2465 = select %t2462, %t2463, %t2469 :: float
|
1403
|
-
%t2443 = call core.sub(%t2465, %t2456) :: float
|
1404
|
-
%t2444 = call core.clamp(%t2439, %t2450, %t2443) :: float
|
1405
|
-
%t2432 = call core.mul(%t2444, %t2481) :: float
|
1406
|
-
%acc2424 = acc_add agg.sum(%acc2424, %t2432) :: float
|
1407
|
-
end_loop
|
1408
|
-
%t2433 = acc_load %acc2424 :: float
|
1409
|
-
%t2489 = const 168600.0 :: float
|
1410
|
-
%t2490 = make_tuple(%t403, %t2489) :: tuple<float>
|
1411
|
-
%t2491 = fold %t2490 fn="agg.min" :: float
|
1412
|
-
%t2492 = const 0.062 :: float
|
1413
|
-
%t2493 = call core.mul(%t2491, %t2492) :: float
|
1414
|
-
%t2496 = const 0.0145 :: float
|
1415
|
-
%t2497 = call core.mul(%t403, %t2496) :: float
|
1416
|
-
%t2484 = call core.add(%t2493, %t2497) :: float
|
1417
|
-
%t2499 = const 125000.0 :: float
|
1418
|
-
%t2500 = call core.sub(%t403, %t2499) :: float
|
1419
|
-
%t2502 = make_tuple(%t2500, %t2450) :: tuple<float, integer>
|
1420
|
-
%t2503 = fold %t2502 fn="agg.max" :: float
|
1421
|
-
%t2504 = const 0.009 :: float
|
1422
|
-
%t2505 = call core.mul(%t2503, %t2504) :: float
|
1423
|
-
%t2486 = call core.add(%t2484, %t2505) :: float
|
1424
|
-
%t2418 = call core.add(%t2433, %t2486) :: float
|
1425
|
-
%t2507 = load_input "state_rate" :: float
|
1426
|
-
%t2508 = call core.mul(%t403, %t2507) :: float
|
1427
|
-
%t2420 = call core.add(%t2418, %t2508) :: float
|
1428
|
-
%t2510 = load_input "local_rate" :: float
|
1429
|
-
%t2511 = call core.mul(%t403, %t2510) :: float
|
1430
|
-
%t2422 = call core.add(%t2420, %t2511) :: float
|
1431
|
-
%t405 = call core.sub(%t403, %t2422) :: float
|
1432
|
-
yield %t405
|
1433
|
-
)
|
1434
|
-
(Declaration take_home_ms
|
1435
|
-
%t2512 = load_input "income" :: float
|
1436
|
-
%t2545 = load_input "fed" :: any
|
1437
|
-
%t2546 = load_field t2545["married_separate"] :: any
|
1438
|
-
%t2547 = load_field t2546["std"] :: float
|
1439
|
-
%t2548 = call core.sub(%t2512, %t2547) :: float
|
1440
|
-
%t2549 = const 0 :: integer
|
1441
|
-
%t2550 = make_tuple(%t2548, %t2549) :: tuple<float, integer>
|
1442
|
-
%t2551 = fold %t2550 fn="agg.max" :: float
|
1443
|
-
%acc2523 = decl_acc :: float
|
1444
|
-
%t2524 = load_input "fed" :: array
|
1445
|
-
%t2525 = load_field t2524["married_separate"] :: any
|
1446
|
-
%t2526 = load_field t2525["rates"] :: any
|
1447
|
-
%t2560 = const -1 :: integer
|
1448
|
-
%t2562 = const 100000000000.0 :: float
|
1449
|
-
loop rates id=L47 in %t2526 as el=%t2527, idx=%t2528
|
1450
|
-
%t2555 = load_field t2527["lo"] :: float
|
1451
|
-
%t2568 = load_field t2527["hi"] :: float
|
1452
|
-
%t2580 = load_field t2527["rate"] :: float
|
1453
|
-
%t2538 = call core.sub(%t2551, %t2555) :: float
|
1454
|
-
%t2561 = call core.eq(%t2568, %t2560) :: boolean
|
1455
|
-
%t2564 = select %t2561, %t2562, %t2568 :: float
|
1456
|
-
%t2542 = call core.sub(%t2564, %t2555) :: float
|
1457
|
-
%t2543 = call core.clamp(%t2538, %t2549, %t2542) :: float
|
1458
|
-
%t2531 = call core.mul(%t2543, %t2580) :: float
|
1459
|
-
%acc2523 = acc_add agg.sum(%acc2523, %t2531) :: float
|
1460
|
-
end_loop
|
1461
|
-
%t2532 = acc_load %acc2523 :: float
|
1462
|
-
%t2588 = const 168600.0 :: float
|
1463
|
-
%t2589 = make_tuple(%t2512, %t2588) :: tuple<float>
|
1464
|
-
%t2590 = fold %t2589 fn="agg.min" :: float
|
1465
|
-
%t2591 = const 0.062 :: float
|
1466
|
-
%t2592 = call core.mul(%t2590, %t2591) :: float
|
1467
|
-
%t2595 = const 0.0145 :: float
|
1468
|
-
%t2596 = call core.mul(%t2512, %t2595) :: float
|
1469
|
-
%t2583 = call core.add(%t2592, %t2596) :: float
|
1470
|
-
%t2598 = const 125000.0 :: float
|
1471
|
-
%t2599 = call core.sub(%t2512, %t2598) :: float
|
1472
|
-
%t2601 = make_tuple(%t2599, %t2549) :: tuple<float, integer>
|
1473
|
-
%t2602 = fold %t2601 fn="agg.max" :: float
|
1474
|
-
%t2603 = const 0.009 :: float
|
1475
|
-
%t2604 = call core.mul(%t2602, %t2603) :: float
|
1476
|
-
%t2585 = call core.add(%t2583, %t2604) :: float
|
1477
|
-
%t2517 = call core.add(%t2532, %t2585) :: float
|
1478
|
-
%t2606 = load_input "state_rate" :: float
|
1479
|
-
%t2607 = call core.mul(%t2512, %t2606) :: float
|
1480
|
-
%t2519 = call core.add(%t2517, %t2607) :: float
|
1481
|
-
%t2609 = load_input "local_rate" :: float
|
1482
|
-
%t2610 = call core.mul(%t2512, %t2609) :: float
|
1483
|
-
%t2521 = call core.add(%t2519, %t2610) :: float
|
1484
|
-
%t2514 = call core.sub(%t2512, %t2521) :: float
|
1485
|
-
%t407 = load_input "retirement_contrib" :: float
|
1486
|
-
%t408 = call core.sub(%t2514, %t407) :: float
|
1487
|
-
yield %t408
|
1488
|
-
)
|
1489
|
-
(Declaration taxable_hoh
|
1490
|
-
%t409 = load_input "income" :: float
|
1491
|
-
%t410 = load_input "fed" :: any
|
1492
|
-
%t411 = load_field t410["head_of_household"] :: any
|
1493
|
-
%t412 = load_field t411["std"] :: float
|
1494
|
-
%t413 = call core.sub(%t409, %t412) :: float
|
1495
|
-
%t414 = const 0 :: integer
|
1496
|
-
%t415 = make_tuple(%t413, %t414) :: tuple<float, integer>
|
1497
|
-
%t416 = fold %t415 fn="agg.max" :: float
|
1498
|
-
yield %t416
|
1499
|
-
)
|
1500
|
-
(Declaration lo_h
|
1501
|
-
%t417 = load_input "fed" :: array
|
1502
|
-
%t418 = load_field t417["head_of_household"] :: any
|
1503
|
-
%t419 = load_field t418["rates"] :: any
|
1504
|
-
loop rates id=L25 in %t419 as el=%rates_el_420, idx=%rates_i_421
|
1505
|
-
%t422 = load_field rates_el_420["lo"] :: float
|
1506
|
-
yield %t422
|
1507
|
-
end_loop
|
1508
|
-
)
|
1509
|
-
(Declaration hi_h
|
1510
|
-
%t423 = load_input "fed" :: array
|
1511
|
-
%t424 = load_field t423["head_of_household"] :: any
|
1512
|
-
%t425 = load_field t424["rates"] :: any
|
1513
|
-
loop rates id=L26 in %t425 as el=%rates_el_426, idx=%rates_i_427
|
1514
|
-
%t428 = load_field rates_el_426["hi"] :: float
|
1515
|
-
yield %t428
|
1516
|
-
end_loop
|
1517
|
-
)
|
1518
|
-
(Declaration rate_h
|
1519
|
-
%t429 = load_input "fed" :: array
|
1520
|
-
%t430 = load_field t429["head_of_household"] :: any
|
1521
|
-
%t431 = load_field t430["rates"] :: any
|
1522
|
-
loop rates id=L27 in %t431 as el=%rates_el_432, idx=%rates_i_433
|
1523
|
-
%t434 = load_field rates_el_432["rate"] :: float
|
1524
|
-
yield %t434
|
1525
|
-
end_loop
|
1526
|
-
)
|
1527
|
-
(Declaration hi_h_eff
|
1528
|
-
%t435 = load_input "fed" :: array
|
1529
|
-
%t436 = load_field t435["head_of_household"] :: any
|
1530
|
-
%t437 = load_field t436["rates"] :: any
|
1531
|
-
%t441 = const -1 :: integer
|
1532
|
-
%t443 = const 100000000000.0 :: float
|
1533
|
-
loop rates id=L28 in %t437 as el=%rates_el_438, idx=%rates_i_439
|
1534
|
-
%t2614 = load_field rates_el_438["hi"] :: float
|
1535
|
-
%t442 = call core.eq(%t2614, %t441) :: boolean
|
1536
|
-
%t445 = select %t442, %t443, %t2614 :: float
|
1537
|
-
yield %t445
|
1538
|
-
end_loop
|
1539
|
-
)
|
1540
|
-
(Declaration amt_h
|
1541
|
-
%t446 = load_input "fed" :: array
|
1542
|
-
%t447 = load_field t446["head_of_household"] :: any
|
1543
|
-
%t448 = load_field t447["rates"] :: any
|
1544
|
-
%t2619 = load_input "income" :: float
|
1545
|
-
%t2620 = load_input "fed" :: any
|
1546
|
-
%t2621 = load_field t2620["head_of_household"] :: any
|
1547
|
-
%t2622 = load_field t2621["std"] :: float
|
1548
|
-
%t2623 = call core.sub(%t2619, %t2622) :: float
|
1549
|
-
%t2624 = const 0 :: integer
|
1550
|
-
%t2625 = make_tuple(%t2623, %t2624) :: tuple<float, integer>
|
1551
|
-
%t2626 = fold %t2625 fn="agg.max" :: float
|
1552
|
-
%t2635 = const -1 :: integer
|
1553
|
-
%t2637 = const 100000000000.0 :: float
|
1554
|
-
loop rates id=L29 in %t448 as el=%rates_el_449, idx=%rates_i_450
|
1555
|
-
%t2630 = load_field rates_el_449["lo"] :: float
|
1556
|
-
%t2643 = load_field rates_el_449["hi"] :: float
|
1557
|
-
%t453 = call core.sub(%t2626, %t2630) :: float
|
1558
|
-
%t2636 = call core.eq(%t2643, %t2635) :: boolean
|
1559
|
-
%t2639 = select %t2636, %t2637, %t2643 :: float
|
1560
|
-
%t457 = call core.sub(%t2639, %t2630) :: float
|
1561
|
-
%t458 = call core.clamp(%t453, %t2624, %t457) :: float
|
1562
|
-
yield %t458
|
1563
|
-
end_loop
|
1564
|
-
)
|
1565
|
-
(Declaration fed_tax_hoh
|
1566
|
-
%t2663 = load_input "income" :: float
|
1567
|
-
%t2664 = load_input "fed" :: any
|
1568
|
-
%t2665 = load_field t2664["head_of_household"] :: any
|
1569
|
-
%t2666 = load_field t2665["std"] :: float
|
1570
|
-
%t2667 = call core.sub(%t2663, %t2666) :: float
|
1571
|
-
%t2668 = const 0 :: integer
|
1572
|
-
%t2669 = make_tuple(%t2667, %t2668) :: tuple<float, integer>
|
1573
|
-
%t2670 = fold %t2669 fn="agg.max" :: float
|
1574
|
-
%acc_459 = decl_acc :: float
|
1575
|
-
%t460 = load_input "fed" :: array
|
1576
|
-
%t461 = load_field t460["head_of_household"] :: any
|
1577
|
-
%t462 = load_field t461["rates"] :: any
|
1578
|
-
%t2679 = const -1 :: integer
|
1579
|
-
%t2681 = const 100000000000.0 :: float
|
1580
|
-
loop rates id=L30 in %t462 as el=%rates_el_463, idx=%rates_i_464
|
1581
|
-
%t2674 = load_field rates_el_463["lo"] :: float
|
1582
|
-
%t2687 = load_field rates_el_463["hi"] :: float
|
1583
|
-
%t2699 = load_field rates_el_463["rate"] :: float
|
1584
|
-
%t2657 = call core.sub(%t2670, %t2674) :: float
|
1585
|
-
%t2680 = call core.eq(%t2687, %t2679) :: boolean
|
1586
|
-
%t2683 = select %t2680, %t2681, %t2687 :: float
|
1587
|
-
%t2661 = call core.sub(%t2683, %t2674) :: float
|
1588
|
-
%t2662 = call core.clamp(%t2657, %t2668, %t2661) :: float
|
1589
|
-
%t467 = call core.mul(%t2662, %t2699) :: float
|
1590
|
-
%acc_459 = acc_add agg.sum(%acc_459, %t467) :: float
|
1591
|
-
end_loop
|
1592
|
-
%t468 = acc_load %acc_459 :: float
|
1593
|
-
yield %t468
|
1594
|
-
)
|
1595
|
-
(Declaration in_br_h
|
1596
|
-
%t469 = load_input "fed" :: array
|
1597
|
-
%t470 = load_field t469["head_of_household"] :: any
|
1598
|
-
%t471 = load_field t470["rates"] :: any
|
1599
|
-
%t2700 = load_input "income" :: float
|
1600
|
-
%t2701 = load_input "fed" :: any
|
1601
|
-
%t2702 = load_field t2701["head_of_household"] :: any
|
1602
|
-
%t2703 = load_field t2702["std"] :: float
|
1603
|
-
%t2704 = call core.sub(%t2700, %t2703) :: float
|
1604
|
-
%t2705 = const 0 :: integer
|
1605
|
-
%t2706 = make_tuple(%t2704, %t2705) :: tuple<float, integer>
|
1606
|
-
%t2707 = fold %t2706 fn="agg.max" :: float
|
1607
|
-
%t2724 = const -1 :: integer
|
1608
|
-
%t2726 = const 100000000000.0 :: float
|
1609
|
-
loop rates id=L31 in %t471 as el=%rates_el_472, idx=%rates_i_473
|
1610
|
-
%t2719 = load_field rates_el_472["lo"] :: float
|
1611
|
-
%t2732 = load_field rates_el_472["hi"] :: float
|
1612
|
-
%t476 = call core.gte(%t2707, %t2719) :: boolean
|
1613
|
-
%t2725 = call core.eq(%t2732, %t2724) :: boolean
|
1614
|
-
%t2728 = select %t2725, %t2726, %t2732 :: float
|
1615
|
-
%t479 = call core.lt(%t2707, %t2728) :: boolean
|
1616
|
-
%t480 = call core.and(%t476, %t479) :: boolean
|
1617
|
-
yield %t480
|
1618
|
-
end_loop
|
1619
|
-
)
|
1620
|
-
(Declaration fed_marginal_hoh
|
1621
|
-
%t2747 = load_input "income" :: float
|
1622
|
-
%t2748 = load_input "fed" :: any
|
1623
|
-
%t2749 = load_field t2748["head_of_household"] :: any
|
1624
|
-
%t2750 = load_field t2749["std"] :: float
|
1625
|
-
%t2751 = call core.sub(%t2747, %t2750) :: float
|
1626
|
-
%t2752 = const 0 :: integer
|
1627
|
-
%t2753 = make_tuple(%t2751, %t2752) :: tuple<float, integer>
|
1628
|
-
%t2754 = fold %t2753 fn="agg.max" :: float
|
1629
|
-
%acc_481 = decl_acc :: float
|
1630
|
-
%t482 = load_input "fed" :: array
|
1631
|
-
%t483 = load_field t482["head_of_household"] :: any
|
1632
|
-
%t484 = load_field t483["rates"] :: any
|
1633
|
-
%t2771 = const -1 :: integer
|
1634
|
-
%t2773 = const 100000000000.0 :: float
|
1635
|
-
loop rates id=L32 in %t484 as el=%rates_el_485, idx=%rates_i_486
|
1636
|
-
%t2766 = load_field rates_el_485["lo"] :: float
|
1637
|
-
%t2779 = load_field rates_el_485["hi"] :: float
|
1638
|
-
%t2787 = load_field rates_el_485["rate"] :: float
|
1639
|
-
%t2743 = call core.gte(%t2754, %t2766) :: boolean
|
1640
|
-
%t2772 = call core.eq(%t2779, %t2771) :: boolean
|
1641
|
-
%t2775 = select %t2772, %t2773, %t2779 :: float
|
1642
|
-
%t2745 = call core.lt(%t2754, %t2775) :: boolean
|
1643
|
-
%t2746 = call core.and(%t2743, %t2745) :: boolean
|
1644
|
-
%t490 = select %t2746, %t2787, %t2752 :: float
|
1645
|
-
%acc_481 = acc_add agg.sum(%acc_481, %t490) :: float
|
1646
|
-
end_loop
|
1647
|
-
%t491 = acc_load %acc_481 :: float
|
1648
|
-
yield %t491
|
1649
|
-
)
|
1650
|
-
(Declaration fed_eff_hoh
|
1651
|
-
%t2810 = load_input "income" :: float
|
1652
|
-
%t2811 = load_input "fed" :: any
|
1653
|
-
%t2812 = load_field t2811["head_of_household"] :: any
|
1654
|
-
%t2813 = load_field t2812["std"] :: float
|
1655
|
-
%t2814 = call core.sub(%t2810, %t2813) :: float
|
1656
|
-
%t2815 = const 0 :: integer
|
1657
|
-
%t2816 = make_tuple(%t2814, %t2815) :: tuple<float, integer>
|
1658
|
-
%t2817 = fold %t2816 fn="agg.max" :: float
|
1659
|
-
%acc2789 = decl_acc :: float
|
1660
|
-
%t2790 = load_input "fed" :: array
|
1661
|
-
%t2791 = load_field t2790["head_of_household"] :: any
|
1662
|
-
%t2792 = load_field t2791["rates"] :: any
|
1663
|
-
%t2826 = const -1 :: integer
|
1664
|
-
%t2828 = const 100000000000.0 :: float
|
1665
|
-
loop rates id=L48 in %t2792 as el=%t2793, idx=%t2794
|
1666
|
-
%t2821 = load_field t2793["lo"] :: float
|
1667
|
-
%t2834 = load_field t2793["hi"] :: float
|
1668
|
-
%t2846 = load_field t2793["rate"] :: float
|
1669
|
-
%t2804 = call core.sub(%t2817, %t2821) :: float
|
1670
|
-
%t2827 = call core.eq(%t2834, %t2826) :: boolean
|
1671
|
-
%t2830 = select %t2827, %t2828, %t2834 :: float
|
1672
|
-
%t2808 = call core.sub(%t2830, %t2821) :: float
|
1673
|
-
%t2809 = call core.clamp(%t2804, %t2815, %t2808) :: float
|
1674
|
-
%t2797 = call core.mul(%t2809, %t2846) :: float
|
1675
|
-
%acc2789 = acc_add agg.sum(%acc2789, %t2797) :: float
|
1676
|
-
end_loop
|
1677
|
-
%t2798 = acc_load %acc2789 :: float
|
1678
|
-
%t494 = const 1.0 :: float
|
1679
|
-
%t495 = make_tuple(%t2810, %t494) :: tuple<float>
|
1680
|
-
%t496 = fold %t495 fn="agg.max" :: float
|
1681
|
-
%t497 = call core.div(%t2798, %t496) :: float
|
1682
|
-
yield %t497
|
1683
|
-
)
|
1684
|
-
(Declaration ss_tax_h
|
1685
|
-
%t2847 = load_input "income" :: float
|
1686
|
-
%t2848 = const 168600.0 :: float
|
1687
|
-
%t2849 = make_tuple(%t2847, %t2848) :: tuple<float>
|
1688
|
-
%t2850 = fold %t2849 fn="agg.min" :: float
|
1689
|
-
%t2851 = const 0.062 :: float
|
1690
|
-
%t2852 = call core.mul(%t2850, %t2851) :: float
|
1691
|
-
yield %t2852
|
1692
|
-
)
|
1693
|
-
(Declaration med_tax_h
|
1694
|
-
%t2853 = load_input "income" :: float
|
1695
|
-
%t2854 = const 0.0145 :: float
|
1696
|
-
%t2855 = call core.mul(%t2853, %t2854) :: float
|
1697
|
-
yield %t2855
|
1698
|
-
)
|
1699
|
-
(Declaration addl_threshold_hoh
|
1700
|
-
%t500 = const 200000.0 :: float
|
1701
|
-
yield %t500
|
1702
|
-
)
|
1703
|
-
(Declaration addl_med_tax_h
|
1704
|
-
%t501 = load_input "income" :: float
|
1705
|
-
%t502 = const 200000.0 :: float
|
1706
|
-
%t503 = call core.sub(%t501, %t502) :: float
|
1707
|
-
%t504 = const 0 :: integer
|
1708
|
-
%t505 = make_tuple(%t503, %t504) :: tuple<float, integer>
|
1709
|
-
%t506 = fold %t505 fn="agg.max" :: float
|
1710
|
-
%t507 = const 0.009 :: float
|
1711
|
-
%t508 = call core.mul(%t506, %t507) :: float
|
1712
|
-
yield %t508
|
1713
|
-
)
|
1714
|
-
(Declaration fica_tax_hoh
|
1715
|
-
%t2857 = load_input "income" :: float
|
1716
|
-
%t2858 = const 168600.0 :: float
|
1717
|
-
%t2859 = make_tuple(%t2857, %t2858) :: tuple<float>
|
1718
|
-
%t2860 = fold %t2859 fn="agg.min" :: float
|
1719
|
-
%t2861 = const 0.062 :: float
|
1720
|
-
%t2862 = call core.mul(%t2860, %t2861) :: float
|
1721
|
-
%t2865 = const 0.0145 :: float
|
1722
|
-
%t2866 = call core.mul(%t2857, %t2865) :: float
|
1723
|
-
%t511 = call core.add(%t2862, %t2866) :: float
|
1724
|
-
%t2868 = const 200000.0 :: float
|
1725
|
-
%t2869 = call core.sub(%t2857, %t2868) :: float
|
1726
|
-
%t2870 = const 0 :: integer
|
1727
|
-
%t2871 = make_tuple(%t2869, %t2870) :: tuple<float, integer>
|
1728
|
-
%t2872 = fold %t2871 fn="agg.max" :: float
|
1729
|
-
%t2873 = const 0.009 :: float
|
1730
|
-
%t2874 = call core.mul(%t2872, %t2873) :: float
|
1731
|
-
%t513 = call core.add(%t511, %t2874) :: float
|
1732
|
-
yield %t513
|
1733
|
-
)
|
1734
|
-
(Declaration fica_eff_hoh
|
1735
|
-
%t2881 = load_input "income" :: float
|
1736
|
-
%t2882 = const 168600.0 :: float
|
1737
|
-
%t2883 = make_tuple(%t2881, %t2882) :: tuple<float>
|
1738
|
-
%t2884 = fold %t2883 fn="agg.min" :: float
|
1739
|
-
%t2885 = const 0.062 :: float
|
1740
|
-
%t2886 = call core.mul(%t2884, %t2885) :: float
|
1741
|
-
%t2889 = const 0.0145 :: float
|
1742
|
-
%t2890 = call core.mul(%t2881, %t2889) :: float
|
1743
|
-
%t2877 = call core.add(%t2886, %t2890) :: float
|
1744
|
-
%t2892 = const 200000.0 :: float
|
1745
|
-
%t2893 = call core.sub(%t2881, %t2892) :: float
|
1746
|
-
%t2894 = const 0 :: integer
|
1747
|
-
%t2895 = make_tuple(%t2893, %t2894) :: tuple<float, integer>
|
1748
|
-
%t2896 = fold %t2895 fn="agg.max" :: float
|
1749
|
-
%t2897 = const 0.009 :: float
|
1750
|
-
%t2898 = call core.mul(%t2896, %t2897) :: float
|
1751
|
-
%t2879 = call core.add(%t2877, %t2898) :: float
|
1752
|
-
%t516 = const 1.0 :: float
|
1753
|
-
%t517 = make_tuple(%t2881, %t516) :: tuple<float>
|
1754
|
-
%t518 = fold %t517 fn="agg.max" :: float
|
1755
|
-
%t519 = call core.div(%t2879, %t518) :: float
|
1756
|
-
yield %t519
|
1757
|
-
)
|
1758
|
-
(Declaration total_tax_hoh
|
1759
|
-
%t2921 = load_input "income" :: float
|
1760
|
-
%t2922 = load_input "fed" :: any
|
1761
|
-
%t2923 = load_field t2922["head_of_household"] :: any
|
1762
|
-
%t2924 = load_field t2923["std"] :: float
|
1763
|
-
%t2925 = call core.sub(%t2921, %t2924) :: float
|
1764
|
-
%t2926 = const 0 :: integer
|
1765
|
-
%t2927 = make_tuple(%t2925, %t2926) :: tuple<float, integer>
|
1766
|
-
%t2928 = fold %t2927 fn="agg.max" :: float
|
1767
|
-
%acc2900 = decl_acc :: float
|
1768
|
-
%t2901 = load_input "fed" :: array
|
1769
|
-
%t2902 = load_field t2901["head_of_household"] :: any
|
1770
|
-
%t2903 = load_field t2902["rates"] :: any
|
1771
|
-
%t2937 = const -1 :: integer
|
1772
|
-
%t2939 = const 100000000000.0 :: float
|
1773
|
-
loop rates id=L49 in %t2903 as el=%t2904, idx=%t2905
|
1774
|
-
%t2932 = load_field t2904["lo"] :: float
|
1775
|
-
%t2945 = load_field t2904["hi"] :: float
|
1776
|
-
%t2957 = load_field t2904["rate"] :: float
|
1777
|
-
%t2915 = call core.sub(%t2928, %t2932) :: float
|
1778
|
-
%t2938 = call core.eq(%t2945, %t2937) :: boolean
|
1779
|
-
%t2941 = select %t2938, %t2939, %t2945 :: float
|
1780
|
-
%t2919 = call core.sub(%t2941, %t2932) :: float
|
1781
|
-
%t2920 = call core.clamp(%t2915, %t2926, %t2919) :: float
|
1782
|
-
%t2908 = call core.mul(%t2920, %t2957) :: float
|
1783
|
-
%acc2900 = acc_add agg.sum(%acc2900, %t2908) :: float
|
1784
|
-
end_loop
|
1785
|
-
%t2909 = acc_load %acc2900 :: float
|
1786
|
-
%t2965 = const 168600.0 :: float
|
1787
|
-
%t2966 = make_tuple(%t2921, %t2965) :: tuple<float>
|
1788
|
-
%t2967 = fold %t2966 fn="agg.min" :: float
|
1789
|
-
%t2968 = const 0.062 :: float
|
1790
|
-
%t2969 = call core.mul(%t2967, %t2968) :: float
|
1791
|
-
%t2972 = const 0.0145 :: float
|
1792
|
-
%t2973 = call core.mul(%t2921, %t2972) :: float
|
1793
|
-
%t2960 = call core.add(%t2969, %t2973) :: float
|
1794
|
-
%t2975 = const 200000.0 :: float
|
1795
|
-
%t2976 = call core.sub(%t2921, %t2975) :: float
|
1796
|
-
%t2978 = make_tuple(%t2976, %t2926) :: tuple<float, integer>
|
1797
|
-
%t2979 = fold %t2978 fn="agg.max" :: float
|
1798
|
-
%t2980 = const 0.009 :: float
|
1799
|
-
%t2981 = call core.mul(%t2979, %t2980) :: float
|
1800
|
-
%t2962 = call core.add(%t2960, %t2981) :: float
|
1801
|
-
%t522 = call core.add(%t2909, %t2962) :: float
|
1802
|
-
%t2983 = load_input "state_rate" :: float
|
1803
|
-
%t2984 = call core.mul(%t2921, %t2983) :: float
|
1804
|
-
%t524 = call core.add(%t522, %t2984) :: float
|
1805
|
-
%t2986 = load_input "local_rate" :: float
|
1806
|
-
%t2987 = call core.mul(%t2921, %t2986) :: float
|
1807
|
-
%t526 = call core.add(%t524, %t2987) :: float
|
1808
|
-
yield %t526
|
1809
|
-
)
|
1810
|
-
(Declaration total_eff_hoh
|
1811
|
-
%t3017 = load_input "income" :: float
|
1812
|
-
%t3018 = load_input "fed" :: any
|
1813
|
-
%t3019 = load_field t3018["head_of_household"] :: any
|
1814
|
-
%t3020 = load_field t3019["std"] :: float
|
1815
|
-
%t3021 = call core.sub(%t3017, %t3020) :: float
|
1816
|
-
%t3022 = const 0 :: integer
|
1817
|
-
%t3023 = make_tuple(%t3021, %t3022) :: tuple<float, integer>
|
1818
|
-
%t3024 = fold %t3023 fn="agg.max" :: float
|
1819
|
-
%acc2996 = decl_acc :: float
|
1820
|
-
%t2997 = load_input "fed" :: array
|
1821
|
-
%t2998 = load_field t2997["head_of_household"] :: any
|
1822
|
-
%t2999 = load_field t2998["rates"] :: any
|
1823
|
-
%t3033 = const -1 :: integer
|
1824
|
-
%t3035 = const 100000000000.0 :: float
|
1825
|
-
loop rates id=L50 in %t2999 as el=%t3000, idx=%t3001
|
1826
|
-
%t3028 = load_field t3000["lo"] :: float
|
1827
|
-
%t3041 = load_field t3000["hi"] :: float
|
1828
|
-
%t3053 = load_field t3000["rate"] :: float
|
1829
|
-
%t3011 = call core.sub(%t3024, %t3028) :: float
|
1830
|
-
%t3034 = call core.eq(%t3041, %t3033) :: boolean
|
1831
|
-
%t3037 = select %t3034, %t3035, %t3041 :: float
|
1832
|
-
%t3015 = call core.sub(%t3037, %t3028) :: float
|
1833
|
-
%t3016 = call core.clamp(%t3011, %t3022, %t3015) :: float
|
1834
|
-
%t3004 = call core.mul(%t3016, %t3053) :: float
|
1835
|
-
%acc2996 = acc_add agg.sum(%acc2996, %t3004) :: float
|
1836
|
-
end_loop
|
1837
|
-
%t3005 = acc_load %acc2996 :: float
|
1838
|
-
%t3061 = const 168600.0 :: float
|
1839
|
-
%t3062 = make_tuple(%t3017, %t3061) :: tuple<float>
|
1840
|
-
%t3063 = fold %t3062 fn="agg.min" :: float
|
1841
|
-
%t3064 = const 0.062 :: float
|
1842
|
-
%t3065 = call core.mul(%t3063, %t3064) :: float
|
1843
|
-
%t3068 = const 0.0145 :: float
|
1844
|
-
%t3069 = call core.mul(%t3017, %t3068) :: float
|
1845
|
-
%t3056 = call core.add(%t3065, %t3069) :: float
|
1846
|
-
%t3071 = const 200000.0 :: float
|
1847
|
-
%t3072 = call core.sub(%t3017, %t3071) :: float
|
1848
|
-
%t3074 = make_tuple(%t3072, %t3022) :: tuple<float, integer>
|
1849
|
-
%t3075 = fold %t3074 fn="agg.max" :: float
|
1850
|
-
%t3076 = const 0.009 :: float
|
1851
|
-
%t3077 = call core.mul(%t3075, %t3076) :: float
|
1852
|
-
%t3058 = call core.add(%t3056, %t3077) :: float
|
1853
|
-
%t2990 = call core.add(%t3005, %t3058) :: float
|
1854
|
-
%t3079 = load_input "state_rate" :: float
|
1855
|
-
%t3080 = call core.mul(%t3017, %t3079) :: float
|
1856
|
-
%t2992 = call core.add(%t2990, %t3080) :: float
|
1857
|
-
%t3082 = load_input "local_rate" :: float
|
1858
|
-
%t3083 = call core.mul(%t3017, %t3082) :: float
|
1859
|
-
%t2994 = call core.add(%t2992, %t3083) :: float
|
1860
|
-
%t529 = const 1.0 :: float
|
1861
|
-
%t530 = make_tuple(%t3017, %t529) :: tuple<float>
|
1862
|
-
%t531 = fold %t530 fn="agg.max" :: float
|
1863
|
-
%t532 = call core.div(%t2994, %t531) :: float
|
1864
|
-
yield %t532
|
1865
|
-
)
|
1866
|
-
(Declaration after_tax_hoh
|
1867
|
-
%t533 = load_input "income" :: float
|
1868
|
-
%t3114 = load_input "fed" :: any
|
1869
|
-
%t3115 = load_field t3114["head_of_household"] :: any
|
1870
|
-
%t3116 = load_field t3115["std"] :: float
|
1871
|
-
%t3117 = call core.sub(%t533, %t3116) :: float
|
1872
|
-
%t3118 = const 0 :: integer
|
1873
|
-
%t3119 = make_tuple(%t3117, %t3118) :: tuple<float, integer>
|
1874
|
-
%t3120 = fold %t3119 fn="agg.max" :: float
|
1875
|
-
%acc3092 = decl_acc :: float
|
1876
|
-
%t3093 = load_input "fed" :: array
|
1877
|
-
%t3094 = load_field t3093["head_of_household"] :: any
|
1878
|
-
%t3095 = load_field t3094["rates"] :: any
|
1879
|
-
%t3129 = const -1 :: integer
|
1880
|
-
%t3131 = const 100000000000.0 :: float
|
1881
|
-
loop rates id=L51 in %t3095 as el=%t3096, idx=%t3097
|
1882
|
-
%t3124 = load_field t3096["lo"] :: float
|
1883
|
-
%t3137 = load_field t3096["hi"] :: float
|
1884
|
-
%t3149 = load_field t3096["rate"] :: float
|
1885
|
-
%t3107 = call core.sub(%t3120, %t3124) :: float
|
1886
|
-
%t3130 = call core.eq(%t3137, %t3129) :: boolean
|
1887
|
-
%t3133 = select %t3130, %t3131, %t3137 :: float
|
1888
|
-
%t3111 = call core.sub(%t3133, %t3124) :: float
|
1889
|
-
%t3112 = call core.clamp(%t3107, %t3118, %t3111) :: float
|
1890
|
-
%t3100 = call core.mul(%t3112, %t3149) :: float
|
1891
|
-
%acc3092 = acc_add agg.sum(%acc3092, %t3100) :: float
|
1892
|
-
end_loop
|
1893
|
-
%t3101 = acc_load %acc3092 :: float
|
1894
|
-
%t3157 = const 168600.0 :: float
|
1895
|
-
%t3158 = make_tuple(%t533, %t3157) :: tuple<float>
|
1896
|
-
%t3159 = fold %t3158 fn="agg.min" :: float
|
1897
|
-
%t3160 = const 0.062 :: float
|
1898
|
-
%t3161 = call core.mul(%t3159, %t3160) :: float
|
1899
|
-
%t3164 = const 0.0145 :: float
|
1900
|
-
%t3165 = call core.mul(%t533, %t3164) :: float
|
1901
|
-
%t3152 = call core.add(%t3161, %t3165) :: float
|
1902
|
-
%t3167 = const 200000.0 :: float
|
1903
|
-
%t3168 = call core.sub(%t533, %t3167) :: float
|
1904
|
-
%t3170 = make_tuple(%t3168, %t3118) :: tuple<float, integer>
|
1905
|
-
%t3171 = fold %t3170 fn="agg.max" :: float
|
1906
|
-
%t3172 = const 0.009 :: float
|
1907
|
-
%t3173 = call core.mul(%t3171, %t3172) :: float
|
1908
|
-
%t3154 = call core.add(%t3152, %t3173) :: float
|
1909
|
-
%t3086 = call core.add(%t3101, %t3154) :: float
|
1910
|
-
%t3175 = load_input "state_rate" :: float
|
1911
|
-
%t3176 = call core.mul(%t533, %t3175) :: float
|
1912
|
-
%t3088 = call core.add(%t3086, %t3176) :: float
|
1913
|
-
%t3178 = load_input "local_rate" :: float
|
1914
|
-
%t3179 = call core.mul(%t533, %t3178) :: float
|
1915
|
-
%t3090 = call core.add(%t3088, %t3179) :: float
|
1916
|
-
%t535 = call core.sub(%t533, %t3090) :: float
|
1917
|
-
yield %t535
|
1918
|
-
)
|
1919
|
-
(Declaration take_home_hoh
|
1920
|
-
%t3180 = load_input "income" :: float
|
1921
|
-
%t3213 = load_input "fed" :: any
|
1922
|
-
%t3214 = load_field t3213["head_of_household"] :: any
|
1923
|
-
%t3215 = load_field t3214["std"] :: float
|
1924
|
-
%t3216 = call core.sub(%t3180, %t3215) :: float
|
1925
|
-
%t3217 = const 0 :: integer
|
1926
|
-
%t3218 = make_tuple(%t3216, %t3217) :: tuple<float, integer>
|
1927
|
-
%t3219 = fold %t3218 fn="agg.max" :: float
|
1928
|
-
%acc3191 = decl_acc :: float
|
1929
|
-
%t3192 = load_input "fed" :: array
|
1930
|
-
%t3193 = load_field t3192["head_of_household"] :: any
|
1931
|
-
%t3194 = load_field t3193["rates"] :: any
|
1932
|
-
%t3228 = const -1 :: integer
|
1933
|
-
%t3230 = const 100000000000.0 :: float
|
1934
|
-
loop rates id=L52 in %t3194 as el=%t3195, idx=%t3196
|
1935
|
-
%t3223 = load_field t3195["lo"] :: float
|
1936
|
-
%t3236 = load_field t3195["hi"] :: float
|
1937
|
-
%t3248 = load_field t3195["rate"] :: float
|
1938
|
-
%t3206 = call core.sub(%t3219, %t3223) :: float
|
1939
|
-
%t3229 = call core.eq(%t3236, %t3228) :: boolean
|
1940
|
-
%t3232 = select %t3229, %t3230, %t3236 :: float
|
1941
|
-
%t3210 = call core.sub(%t3232, %t3223) :: float
|
1942
|
-
%t3211 = call core.clamp(%t3206, %t3217, %t3210) :: float
|
1943
|
-
%t3199 = call core.mul(%t3211, %t3248) :: float
|
1944
|
-
%acc3191 = acc_add agg.sum(%acc3191, %t3199) :: float
|
1945
|
-
end_loop
|
1946
|
-
%t3200 = acc_load %acc3191 :: float
|
1947
|
-
%t3256 = const 168600.0 :: float
|
1948
|
-
%t3257 = make_tuple(%t3180, %t3256) :: tuple<float>
|
1949
|
-
%t3258 = fold %t3257 fn="agg.min" :: float
|
1950
|
-
%t3259 = const 0.062 :: float
|
1951
|
-
%t3260 = call core.mul(%t3258, %t3259) :: float
|
1952
|
-
%t3263 = const 0.0145 :: float
|
1953
|
-
%t3264 = call core.mul(%t3180, %t3263) :: float
|
1954
|
-
%t3251 = call core.add(%t3260, %t3264) :: float
|
1955
|
-
%t3266 = const 200000.0 :: float
|
1956
|
-
%t3267 = call core.sub(%t3180, %t3266) :: float
|
1957
|
-
%t3269 = make_tuple(%t3267, %t3217) :: tuple<float, integer>
|
1958
|
-
%t3270 = fold %t3269 fn="agg.max" :: float
|
1959
|
-
%t3271 = const 0.009 :: float
|
1960
|
-
%t3272 = call core.mul(%t3270, %t3271) :: float
|
1961
|
-
%t3253 = call core.add(%t3251, %t3272) :: float
|
1962
|
-
%t3185 = call core.add(%t3200, %t3253) :: float
|
1963
|
-
%t3274 = load_input "state_rate" :: float
|
1964
|
-
%t3275 = call core.mul(%t3180, %t3274) :: float
|
1965
|
-
%t3187 = call core.add(%t3185, %t3275) :: float
|
1966
|
-
%t3277 = load_input "local_rate" :: float
|
1967
|
-
%t3278 = call core.mul(%t3180, %t3277) :: float
|
1968
|
-
%t3189 = call core.add(%t3187, %t3278) :: float
|
1969
|
-
%t3182 = call core.sub(%t3180, %t3189) :: float
|
1970
|
-
%t537 = load_input "retirement_contrib" :: float
|
1971
|
-
%t538 = call core.sub(%t3182, %t537) :: float
|
1972
|
-
yield %t538
|
1973
519
|
)
|
1974
520
|
(Declaration summary
|
1975
|
-
%
|
1976
|
-
%
|
1977
|
-
%
|
1978
|
-
%
|
1979
|
-
%
|
1980
|
-
%
|
1981
|
-
%
|
1982
|
-
%
|
1983
|
-
%
|
1984
|
-
%
|
1985
|
-
%
|
1986
|
-
%
|
1987
|
-
%
|
1988
|
-
%
|
1989
|
-
%
|
1990
|
-
|
1991
|
-
|
1992
|
-
|
1993
|
-
|
1994
|
-
|
1995
|
-
|
1996
|
-
|
1997
|
-
|
1998
|
-
|
1999
|
-
|
2000
|
-
%
|
2001
|
-
%
|
2002
|
-
%
|
2003
|
-
%
|
2004
|
-
%
|
2005
|
-
%
|
2006
|
-
|
2007
|
-
|
2008
|
-
|
2009
|
-
|
2010
|
-
|
2011
|
-
|
2012
|
-
|
2013
|
-
|
2014
|
-
|
2015
|
-
%
|
2016
|
-
%
|
2017
|
-
|
2018
|
-
|
2019
|
-
|
2020
|
-
|
2021
|
-
|
2022
|
-
|
2023
|
-
|
2024
|
-
|
2025
|
-
|
2026
|
-
|
2027
|
-
|
2028
|
-
|
2029
|
-
|
2030
|
-
|
2031
|
-
|
2032
|
-
|
2033
|
-
|
2034
|
-
|
2035
|
-
|
2036
|
-
|
2037
|
-
|
2038
|
-
|
2039
|
-
|
2040
|
-
|
2041
|
-
|
2042
|
-
|
2043
|
-
|
2044
|
-
|
2045
|
-
|
2046
|
-
|
2047
|
-
|
2048
|
-
|
2049
|
-
|
2050
|
-
|
2051
|
-
|
2052
|
-
|
2053
|
-
%
|
2054
|
-
%
|
2055
|
-
%
|
2056
|
-
%
|
2057
|
-
%
|
2058
|
-
%
|
2059
|
-
%
|
2060
|
-
%
|
2061
|
-
%
|
2062
|
-
%
|
2063
|
-
|
2064
|
-
|
2065
|
-
|
2066
|
-
|
2067
|
-
|
2068
|
-
|
2069
|
-
|
2070
|
-
|
2071
|
-
%
|
2072
|
-
%
|
2073
|
-
%
|
2074
|
-
%
|
2075
|
-
%
|
2076
|
-
%
|
2077
|
-
|
2078
|
-
%t3650 = call core.clamp(%t3645, %t3306, %t3649) :: float
|
2079
|
-
%t3638 = call core.mul(%t3650, %t3687) :: float
|
2080
|
-
%acc3630 = acc_add agg.sum(%acc3630, %t3638) :: float
|
2081
|
-
end_loop
|
2082
|
-
%t3639 = acc_load %acc3630 :: float
|
2083
|
-
%t3624 = call core.add(%t3639, %t3476) :: float
|
2084
|
-
%t3626 = call core.add(%t3624, %t3518) :: float
|
2085
|
-
%t3628 = call core.add(%t3626, %t3521) :: float
|
2086
|
-
%t556 = make_object{effective: %t3527, tax: %t3628} :: object
|
2087
|
-
%acc3727 = decl_acc :: float
|
2088
|
-
loop rates id=L58 in %t3283 as el=%t3731, idx=%t3732
|
2089
|
-
%t3759 = load_field t3731["lo"] :: float
|
2090
|
-
%t3772 = load_field t3731["hi"] :: float
|
2091
|
-
%t3784 = load_field t3731["rate"] :: float
|
2092
|
-
%t3742 = call core.sub(%t3308, %t3759) :: float
|
2093
|
-
%t3765 = call core.eq(%t3772, %t3325) :: boolean
|
2094
|
-
%t3768 = select %t3765, %t3327, %t3772 :: float
|
2095
|
-
%t3746 = call core.sub(%t3768, %t3759) :: float
|
2096
|
-
%t3747 = call core.clamp(%t3742, %t3306, %t3746) :: float
|
2097
|
-
%t3735 = call core.mul(%t3747, %t3784) :: float
|
2098
|
-
%acc3727 = acc_add agg.sum(%acc3727, %t3735) :: float
|
2099
|
-
end_loop
|
2100
|
-
%t3736 = acc_load %acc3727 :: float
|
2101
|
-
%t3721 = call core.add(%t3736, %t3476) :: float
|
2102
|
-
%t3723 = call core.add(%t3721, %t3518) :: float
|
2103
|
-
%t3725 = call core.add(%t3723, %t3521) :: float
|
2104
|
-
%t3718 = call core.sub(%t3301, %t3725) :: float
|
2105
|
-
%t558 = load_input "retirement_contrib" :: float
|
2106
|
-
%acc3827 = decl_acc :: float
|
2107
|
-
loop rates id=L59 in %t3283 as el=%t3831, idx=%t3832
|
2108
|
-
%t3859 = load_field t3831["lo"] :: float
|
2109
|
-
%t3872 = load_field t3831["hi"] :: float
|
2110
|
-
%t3884 = load_field t3831["rate"] :: float
|
2111
|
-
%t3842 = call core.sub(%t3308, %t3859) :: float
|
2112
|
-
%t3865 = call core.eq(%t3872, %t3325) :: boolean
|
2113
|
-
%t3868 = select %t3865, %t3327, %t3872 :: float
|
2114
|
-
%t3846 = call core.sub(%t3868, %t3859) :: float
|
2115
|
-
%t3847 = call core.clamp(%t3842, %t3306, %t3846) :: float
|
2116
|
-
%t3835 = call core.mul(%t3847, %t3884) :: float
|
2117
|
-
%acc3827 = acc_add agg.sum(%acc3827, %t3835) :: float
|
2118
|
-
end_loop
|
2119
|
-
%t3836 = acc_load %acc3827 :: float
|
2120
|
-
%t3821 = call core.add(%t3836, %t3476) :: float
|
2121
|
-
%t3823 = call core.add(%t3821, %t3518) :: float
|
2122
|
-
%t3825 = call core.add(%t3823, %t3521) :: float
|
2123
|
-
%t3818 = call core.sub(%t3301, %t3825) :: float
|
2124
|
-
%t3815 = call core.sub(%t3818, %t558) :: float
|
2125
|
-
%t560 = make_object{federal: %t542, fica: %t545, state: %t549, local: %t553, total: %t556, after_tax: %t3718, retirement_contrib: %t558, take_home: %t3815} :: object
|
2126
|
-
%t3937 = load_field t3302["married_joint"] :: any
|
2127
|
-
%t3938 = load_field t3937["std"] :: float
|
2128
|
-
%t3939 = call core.sub(%t3301, %t3938) :: float
|
2129
|
-
%t3941 = make_tuple(%t3939, %t3306) :: tuple<float, integer>
|
2130
|
-
%t3942 = fold %t3941 fn="agg.max" :: float
|
2131
|
-
%acc3914 = decl_acc :: float
|
2132
|
-
%t3916 = load_field t3281["married_joint"] :: any
|
2133
|
-
%t3917 = load_field t3916["rates"] :: any
|
2134
|
-
%acc3983 = decl_acc :: float
|
2135
|
-
loop rates id=L60 in %t3917 as el=%t3918, idx=%t3919
|
2136
|
-
%t3954 = load_field t3918["lo"] :: float
|
2137
|
-
%t3967 = load_field t3918["hi"] :: float
|
2138
|
-
%t3975 = load_field t3918["rate"] :: float
|
2139
|
-
%t3931 = call core.gte(%t3942, %t3954) :: boolean
|
2140
|
-
%t3960 = call core.eq(%t3967, %t3325) :: boolean
|
2141
|
-
%t3963 = select %t3960, %t3327, %t3967 :: float
|
2142
|
-
%t3933 = call core.lt(%t3942, %t3963) :: boolean
|
2143
|
-
%t3934 = call core.and(%t3931, %t3933) :: boolean
|
2144
|
-
%t3923 = select %t3934, %t3975, %t3306 :: float
|
2145
|
-
%acc3914 = acc_add agg.sum(%acc3914, %t3923) :: float
|
2146
|
-
%t3998 = call core.sub(%t3942, %t3954) :: float
|
2147
|
-
%t4002 = call core.sub(%t3963, %t3954) :: float
|
2148
|
-
%t4003 = call core.clamp(%t3998, %t3306, %t4002) :: float
|
2149
|
-
%t3991 = call core.mul(%t4003, %t3975) :: float
|
2150
|
-
%acc3983 = acc_add agg.sum(%acc3983, %t3991) :: float
|
2151
|
-
end_loop
|
2152
|
-
%t3924 = acc_load %acc3914 :: float
|
2153
|
-
%t3992 = acc_load %acc3983 :: float
|
2154
|
-
%t3981 = call core.div(%t3992, %t3346) :: float
|
2155
|
-
%acc4042 = decl_acc :: float
|
2156
|
-
loop rates id=L62 in %t3917 as el=%t4046, idx=%t4047
|
2157
|
-
%t4074 = load_field t4046["lo"] :: float
|
2158
|
-
%t4087 = load_field t4046["hi"] :: float
|
2159
|
-
%t4099 = load_field t4046["rate"] :: float
|
2160
|
-
%t4057 = call core.sub(%t3942, %t4074) :: float
|
2161
|
-
%t4080 = call core.eq(%t4087, %t3325) :: boolean
|
2162
|
-
%t4083 = select %t4080, %t3327, %t4087 :: float
|
2163
|
-
%t4061 = call core.sub(%t4083, %t4074) :: float
|
2164
|
-
%t4062 = call core.clamp(%t4057, %t3306, %t4061) :: float
|
2165
|
-
%t4050 = call core.mul(%t4062, %t4099) :: float
|
2166
|
-
%acc4042 = acc_add agg.sum(%acc4042, %t4050) :: float
|
2167
|
-
end_loop
|
2168
|
-
%t4051 = acc_load %acc4042 :: float
|
2169
|
-
%t564 = make_object{marginal: %t3924, effective: %t3981, tax: %t4051} :: object
|
2170
|
-
%t4123 = const 250000.0 :: float
|
2171
|
-
%t4124 = call core.sub(%t3301, %t4123) :: float
|
2172
|
-
%t4126 = make_tuple(%t4124, %t3306) :: tuple<float, integer>
|
2173
|
-
%t4127 = fold %t4126 fn="agg.max" :: float
|
2174
|
-
%t4129 = call core.mul(%t4127, %t3492) :: float
|
2175
|
-
%t4110 = call core.add(%t3474, %t4129) :: float
|
2176
|
-
%t4105 = call core.div(%t4110, %t3346) :: float
|
2177
|
-
%t567 = make_object{effective: %t4105, tax: %t4110} :: object
|
2178
|
-
%acc4174 = decl_acc :: float
|
2179
|
-
loop rates id=L63 in %t3917 as el=%t4178, idx=%t4179
|
2180
|
-
%t4206 = load_field t4178["lo"] :: float
|
2181
|
-
%t4219 = load_field t4178["hi"] :: float
|
2182
|
-
%t4231 = load_field t4178["rate"] :: float
|
2183
|
-
%t4189 = call core.sub(%t3942, %t4206) :: float
|
2184
|
-
%t4212 = call core.eq(%t4219, %t3325) :: boolean
|
2185
|
-
%t4215 = select %t4212, %t3327, %t4219 :: float
|
2186
|
-
%t4193 = call core.sub(%t4215, %t4206) :: float
|
2187
|
-
%t4194 = call core.clamp(%t4189, %t3306, %t4193) :: float
|
2188
|
-
%t4182 = call core.mul(%t4194, %t4231) :: float
|
2189
|
-
%acc4174 = acc_add agg.sum(%acc4174, %t4182) :: float
|
2190
|
-
end_loop
|
2191
|
-
%t4183 = acc_load %acc4174 :: float
|
2192
|
-
%t4168 = call core.add(%t4183, %t4110) :: float
|
2193
|
-
%t4170 = call core.add(%t4168, %t3518) :: float
|
2194
|
-
%t4172 = call core.add(%t4170, %t3521) :: float
|
2195
|
-
%t4165 = call core.div(%t4172, %t3346) :: float
|
2196
|
-
%acc4270 = decl_acc :: float
|
2197
|
-
loop rates id=L64 in %t3917 as el=%t4274, idx=%t4275
|
2198
|
-
%t4302 = load_field t4274["lo"] :: float
|
2199
|
-
%t4315 = load_field t4274["hi"] :: float
|
2200
|
-
%t4327 = load_field t4274["rate"] :: float
|
2201
|
-
%t4285 = call core.sub(%t3942, %t4302) :: float
|
2202
|
-
%t4308 = call core.eq(%t4315, %t3325) :: boolean
|
2203
|
-
%t4311 = select %t4308, %t3327, %t4315 :: float
|
2204
|
-
%t4289 = call core.sub(%t4311, %t4302) :: float
|
2205
|
-
%t4290 = call core.clamp(%t4285, %t3306, %t4289) :: float
|
2206
|
-
%t4278 = call core.mul(%t4290, %t4327) :: float
|
2207
|
-
%acc4270 = acc_add agg.sum(%acc4270, %t4278) :: float
|
2208
|
-
end_loop
|
2209
|
-
%t4279 = acc_load %acc4270 :: float
|
2210
|
-
%t4264 = call core.add(%t4279, %t4110) :: float
|
2211
|
-
%t4266 = call core.add(%t4264, %t3518) :: float
|
2212
|
-
%t4268 = call core.add(%t4266, %t3521) :: float
|
2213
|
-
%t578 = make_object{effective: %t4165, tax: %t4268} :: object
|
2214
|
-
%acc4369 = decl_acc :: float
|
2215
|
-
loop rates id=L65 in %t3917 as el=%t4373, idx=%t4374
|
2216
|
-
%t4401 = load_field t4373["lo"] :: float
|
2217
|
-
%t4414 = load_field t4373["hi"] :: float
|
2218
|
-
%t4426 = load_field t4373["rate"] :: float
|
2219
|
-
%t4384 = call core.sub(%t3942, %t4401) :: float
|
2220
|
-
%t4407 = call core.eq(%t4414, %t3325) :: boolean
|
2221
|
-
%t4410 = select %t4407, %t3327, %t4414 :: float
|
2222
|
-
%t4388 = call core.sub(%t4410, %t4401) :: float
|
2223
|
-
%t4389 = call core.clamp(%t4384, %t3306, %t4388) :: float
|
2224
|
-
%t4377 = call core.mul(%t4389, %t4426) :: float
|
2225
|
-
%acc4369 = acc_add agg.sum(%acc4369, %t4377) :: float
|
2226
|
-
end_loop
|
2227
|
-
%t4378 = acc_load %acc4369 :: float
|
2228
|
-
%t4363 = call core.add(%t4378, %t4110) :: float
|
2229
|
-
%t4365 = call core.add(%t4363, %t3518) :: float
|
2230
|
-
%t4367 = call core.add(%t4365, %t3521) :: float
|
2231
|
-
%t4360 = call core.sub(%t3301, %t4367) :: float
|
2232
|
-
%acc4471 = decl_acc :: float
|
2233
|
-
loop rates id=L66 in %t3917 as el=%t4475, idx=%t4476
|
2234
|
-
%t4503 = load_field t4475["lo"] :: float
|
2235
|
-
%t4516 = load_field t4475["hi"] :: float
|
2236
|
-
%t4528 = load_field t4475["rate"] :: float
|
2237
|
-
%t4486 = call core.sub(%t3942, %t4503) :: float
|
2238
|
-
%t4509 = call core.eq(%t4516, %t3325) :: boolean
|
2239
|
-
%t4512 = select %t4509, %t3327, %t4516 :: float
|
2240
|
-
%t4490 = call core.sub(%t4512, %t4503) :: float
|
2241
|
-
%t4491 = call core.clamp(%t4486, %t3306, %t4490) :: float
|
2242
|
-
%t4479 = call core.mul(%t4491, %t4528) :: float
|
2243
|
-
%acc4471 = acc_add agg.sum(%acc4471, %t4479) :: float
|
2244
|
-
end_loop
|
2245
|
-
%t4480 = acc_load %acc4471 :: float
|
2246
|
-
%t4465 = call core.add(%t4480, %t4110) :: float
|
2247
|
-
%t4467 = call core.add(%t4465, %t3518) :: float
|
2248
|
-
%t4469 = call core.add(%t4467, %t3521) :: float
|
2249
|
-
%t4462 = call core.sub(%t3301, %t4469) :: float
|
2250
|
-
%t4459 = call core.sub(%t4462, %t558) :: float
|
2251
|
-
%t582 = make_object{federal: %t564, fica: %t567, state: %t549, local: %t553, total: %t578, after_tax: %t4360, retirement_contrib: %t558, take_home: %t4459} :: object
|
2252
|
-
%t4583 = load_field t3302["married_separate"] :: any
|
2253
|
-
%t4584 = load_field t4583["std"] :: float
|
2254
|
-
%t4585 = call core.sub(%t3301, %t4584) :: float
|
2255
|
-
%t4587 = make_tuple(%t4585, %t3306) :: tuple<float, integer>
|
2256
|
-
%t4588 = fold %t4587 fn="agg.max" :: float
|
2257
|
-
%acc4560 = decl_acc :: float
|
2258
|
-
%t4562 = load_field t3281["married_separate"] :: any
|
2259
|
-
%t4563 = load_field t4562["rates"] :: any
|
2260
|
-
%acc4629 = decl_acc :: float
|
2261
|
-
loop rates id=L67 in %t4563 as el=%t4564, idx=%t4565
|
2262
|
-
%t4600 = load_field t4564["lo"] :: float
|
2263
|
-
%t4613 = load_field t4564["hi"] :: float
|
2264
|
-
%t4621 = load_field t4564["rate"] :: float
|
2265
|
-
%t4577 = call core.gte(%t4588, %t4600) :: boolean
|
2266
|
-
%t4606 = call core.eq(%t4613, %t3325) :: boolean
|
2267
|
-
%t4609 = select %t4606, %t3327, %t4613 :: float
|
2268
|
-
%t4579 = call core.lt(%t4588, %t4609) :: boolean
|
2269
|
-
%t4580 = call core.and(%t4577, %t4579) :: boolean
|
2270
|
-
%t4569 = select %t4580, %t4621, %t3306 :: float
|
2271
|
-
%acc4560 = acc_add agg.sum(%acc4560, %t4569) :: float
|
2272
|
-
%t4644 = call core.sub(%t4588, %t4600) :: float
|
2273
|
-
%t4648 = call core.sub(%t4609, %t4600) :: float
|
2274
|
-
%t4649 = call core.clamp(%t4644, %t3306, %t4648) :: float
|
2275
|
-
%t4637 = call core.mul(%t4649, %t4621) :: float
|
2276
|
-
%acc4629 = acc_add agg.sum(%acc4629, %t4637) :: float
|
2277
|
-
end_loop
|
2278
|
-
%t4570 = acc_load %acc4560 :: float
|
2279
|
-
%t4638 = acc_load %acc4629 :: float
|
2280
|
-
%t4627 = call core.div(%t4638, %t3346) :: float
|
2281
|
-
%acc4688 = decl_acc :: float
|
2282
|
-
loop rates id=L69 in %t4563 as el=%t4692, idx=%t4693
|
2283
|
-
%t4720 = load_field t4692["lo"] :: float
|
2284
|
-
%t4733 = load_field t4692["hi"] :: float
|
2285
|
-
%t4745 = load_field t4692["rate"] :: float
|
2286
|
-
%t4703 = call core.sub(%t4588, %t4720) :: float
|
2287
|
-
%t4726 = call core.eq(%t4733, %t3325) :: boolean
|
2288
|
-
%t4729 = select %t4726, %t3327, %t4733 :: float
|
2289
|
-
%t4707 = call core.sub(%t4729, %t4720) :: float
|
2290
|
-
%t4708 = call core.clamp(%t4703, %t3306, %t4707) :: float
|
2291
|
-
%t4696 = call core.mul(%t4708, %t4745) :: float
|
2292
|
-
%acc4688 = acc_add agg.sum(%acc4688, %t4696) :: float
|
2293
|
-
end_loop
|
2294
|
-
%t4697 = acc_load %acc4688 :: float
|
2295
|
-
%t586 = make_object{marginal: %t4570, effective: %t4627, tax: %t4697} :: object
|
2296
|
-
%t4769 = const 125000.0 :: float
|
2297
|
-
%t4770 = call core.sub(%t3301, %t4769) :: float
|
2298
|
-
%t4772 = make_tuple(%t4770, %t3306) :: tuple<float, integer>
|
2299
|
-
%t4773 = fold %t4772 fn="agg.max" :: float
|
2300
|
-
%t4775 = call core.mul(%t4773, %t3492) :: float
|
2301
|
-
%t4756 = call core.add(%t3474, %t4775) :: float
|
2302
|
-
%t4751 = call core.div(%t4756, %t3346) :: float
|
2303
|
-
%t589 = make_object{effective: %t4751, tax: %t4756} :: object
|
2304
|
-
%acc4820 = decl_acc :: float
|
2305
|
-
loop rates id=L70 in %t4563 as el=%t4824, idx=%t4825
|
2306
|
-
%t4852 = load_field t4824["lo"] :: float
|
2307
|
-
%t4865 = load_field t4824["hi"] :: float
|
2308
|
-
%t4877 = load_field t4824["rate"] :: float
|
2309
|
-
%t4835 = call core.sub(%t4588, %t4852) :: float
|
2310
|
-
%t4858 = call core.eq(%t4865, %t3325) :: boolean
|
2311
|
-
%t4861 = select %t4858, %t3327, %t4865 :: float
|
2312
|
-
%t4839 = call core.sub(%t4861, %t4852) :: float
|
2313
|
-
%t4840 = call core.clamp(%t4835, %t3306, %t4839) :: float
|
2314
|
-
%t4828 = call core.mul(%t4840, %t4877) :: float
|
2315
|
-
%acc4820 = acc_add agg.sum(%acc4820, %t4828) :: float
|
2316
|
-
end_loop
|
2317
|
-
%t4829 = acc_load %acc4820 :: float
|
2318
|
-
%t4814 = call core.add(%t4829, %t4756) :: float
|
2319
|
-
%t4816 = call core.add(%t4814, %t3518) :: float
|
2320
|
-
%t4818 = call core.add(%t4816, %t3521) :: float
|
2321
|
-
%t4811 = call core.div(%t4818, %t3346) :: float
|
2322
|
-
%acc4916 = decl_acc :: float
|
2323
|
-
loop rates id=L71 in %t4563 as el=%t4920, idx=%t4921
|
2324
|
-
%t4948 = load_field t4920["lo"] :: float
|
2325
|
-
%t4961 = load_field t4920["hi"] :: float
|
2326
|
-
%t4973 = load_field t4920["rate"] :: float
|
2327
|
-
%t4931 = call core.sub(%t4588, %t4948) :: float
|
2328
|
-
%t4954 = call core.eq(%t4961, %t3325) :: boolean
|
2329
|
-
%t4957 = select %t4954, %t3327, %t4961 :: float
|
2330
|
-
%t4935 = call core.sub(%t4957, %t4948) :: float
|
2331
|
-
%t4936 = call core.clamp(%t4931, %t3306, %t4935) :: float
|
2332
|
-
%t4924 = call core.mul(%t4936, %t4973) :: float
|
2333
|
-
%acc4916 = acc_add agg.sum(%acc4916, %t4924) :: float
|
2334
|
-
end_loop
|
2335
|
-
%t4925 = acc_load %acc4916 :: float
|
2336
|
-
%t4910 = call core.add(%t4925, %t4756) :: float
|
2337
|
-
%t4912 = call core.add(%t4910, %t3518) :: float
|
2338
|
-
%t4914 = call core.add(%t4912, %t3521) :: float
|
2339
|
-
%t600 = make_object{effective: %t4811, tax: %t4914} :: object
|
2340
|
-
%acc5015 = decl_acc :: float
|
2341
|
-
loop rates id=L72 in %t4563 as el=%t5019, idx=%t5020
|
2342
|
-
%t5047 = load_field t5019["lo"] :: float
|
2343
|
-
%t5060 = load_field t5019["hi"] :: float
|
2344
|
-
%t5072 = load_field t5019["rate"] :: float
|
2345
|
-
%t5030 = call core.sub(%t4588, %t5047) :: float
|
2346
|
-
%t5053 = call core.eq(%t5060, %t3325) :: boolean
|
2347
|
-
%t5056 = select %t5053, %t3327, %t5060 :: float
|
2348
|
-
%t5034 = call core.sub(%t5056, %t5047) :: float
|
2349
|
-
%t5035 = call core.clamp(%t5030, %t3306, %t5034) :: float
|
2350
|
-
%t5023 = call core.mul(%t5035, %t5072) :: float
|
2351
|
-
%acc5015 = acc_add agg.sum(%acc5015, %t5023) :: float
|
2352
|
-
end_loop
|
2353
|
-
%t5024 = acc_load %acc5015 :: float
|
2354
|
-
%t5009 = call core.add(%t5024, %t4756) :: float
|
2355
|
-
%t5011 = call core.add(%t5009, %t3518) :: float
|
2356
|
-
%t5013 = call core.add(%t5011, %t3521) :: float
|
2357
|
-
%t5006 = call core.sub(%t3301, %t5013) :: float
|
2358
|
-
%acc5117 = decl_acc :: float
|
2359
|
-
loop rates id=L73 in %t4563 as el=%t5121, idx=%t5122
|
2360
|
-
%t5149 = load_field t5121["lo"] :: float
|
2361
|
-
%t5162 = load_field t5121["hi"] :: float
|
2362
|
-
%t5174 = load_field t5121["rate"] :: float
|
2363
|
-
%t5132 = call core.sub(%t4588, %t5149) :: float
|
2364
|
-
%t5155 = call core.eq(%t5162, %t3325) :: boolean
|
2365
|
-
%t5158 = select %t5155, %t3327, %t5162 :: float
|
2366
|
-
%t5136 = call core.sub(%t5158, %t5149) :: float
|
2367
|
-
%t5137 = call core.clamp(%t5132, %t3306, %t5136) :: float
|
2368
|
-
%t5125 = call core.mul(%t5137, %t5174) :: float
|
2369
|
-
%acc5117 = acc_add agg.sum(%acc5117, %t5125) :: float
|
2370
|
-
end_loop
|
2371
|
-
%t5126 = acc_load %acc5117 :: float
|
2372
|
-
%t5111 = call core.add(%t5126, %t4756) :: float
|
2373
|
-
%t5113 = call core.add(%t5111, %t3518) :: float
|
2374
|
-
%t5115 = call core.add(%t5113, %t3521) :: float
|
2375
|
-
%t5108 = call core.sub(%t3301, %t5115) :: float
|
2376
|
-
%t5105 = call core.sub(%t5108, %t558) :: float
|
2377
|
-
%t604 = make_object{federal: %t586, fica: %t589, state: %t549, local: %t553, total: %t600, after_tax: %t5006, retirement_contrib: %t558, take_home: %t5105} :: object
|
2378
|
-
%t5229 = load_field t3302["head_of_household"] :: any
|
2379
|
-
%t5230 = load_field t5229["std"] :: float
|
2380
|
-
%t5231 = call core.sub(%t3301, %t5230) :: float
|
2381
|
-
%t5233 = make_tuple(%t5231, %t3306) :: tuple<float, integer>
|
2382
|
-
%t5234 = fold %t5233 fn="agg.max" :: float
|
2383
|
-
%acc5206 = decl_acc :: float
|
2384
|
-
%t5208 = load_field t3281["head_of_household"] :: any
|
2385
|
-
%t5209 = load_field t5208["rates"] :: any
|
2386
|
-
%acc5275 = decl_acc :: float
|
2387
|
-
loop rates id=L74 in %t5209 as el=%t5210, idx=%t5211
|
2388
|
-
%t5246 = load_field t5210["lo"] :: float
|
2389
|
-
%t5259 = load_field t5210["hi"] :: float
|
2390
|
-
%t5267 = load_field t5210["rate"] :: float
|
2391
|
-
%t5223 = call core.gte(%t5234, %t5246) :: boolean
|
2392
|
-
%t5252 = call core.eq(%t5259, %t3325) :: boolean
|
2393
|
-
%t5255 = select %t5252, %t3327, %t5259 :: float
|
2394
|
-
%t5225 = call core.lt(%t5234, %t5255) :: boolean
|
2395
|
-
%t5226 = call core.and(%t5223, %t5225) :: boolean
|
2396
|
-
%t5215 = select %t5226, %t5267, %t3306 :: float
|
2397
|
-
%acc5206 = acc_add agg.sum(%acc5206, %t5215) :: float
|
2398
|
-
%t5290 = call core.sub(%t5234, %t5246) :: float
|
2399
|
-
%t5294 = call core.sub(%t5255, %t5246) :: float
|
2400
|
-
%t5295 = call core.clamp(%t5290, %t3306, %t5294) :: float
|
2401
|
-
%t5283 = call core.mul(%t5295, %t5267) :: float
|
2402
|
-
%acc5275 = acc_add agg.sum(%acc5275, %t5283) :: float
|
2403
|
-
end_loop
|
2404
|
-
%t5216 = acc_load %acc5206 :: float
|
2405
|
-
%t5284 = acc_load %acc5275 :: float
|
2406
|
-
%t5273 = call core.div(%t5284, %t3346) :: float
|
2407
|
-
%acc5334 = decl_acc :: float
|
2408
|
-
loop rates id=L76 in %t5209 as el=%t5338, idx=%t5339
|
2409
|
-
%t5366 = load_field t5338["lo"] :: float
|
2410
|
-
%t5379 = load_field t5338["hi"] :: float
|
2411
|
-
%t5391 = load_field t5338["rate"] :: float
|
2412
|
-
%t5349 = call core.sub(%t5234, %t5366) :: float
|
2413
|
-
%t5372 = call core.eq(%t5379, %t3325) :: boolean
|
2414
|
-
%t5375 = select %t5372, %t3327, %t5379 :: float
|
2415
|
-
%t5353 = call core.sub(%t5375, %t5366) :: float
|
2416
|
-
%t5354 = call core.clamp(%t5349, %t3306, %t5353) :: float
|
2417
|
-
%t5342 = call core.mul(%t5354, %t5391) :: float
|
2418
|
-
%acc5334 = acc_add agg.sum(%acc5334, %t5342) :: float
|
2419
|
-
end_loop
|
2420
|
-
%t5343 = acc_load %acc5334 :: float
|
2421
|
-
%t608 = make_object{marginal: %t5216, effective: %t5273, tax: %t5343} :: object
|
2422
|
-
%acc5466 = decl_acc :: float
|
2423
|
-
loop rates id=L77 in %t5209 as el=%t5470, idx=%t5471
|
2424
|
-
%t5498 = load_field t5470["lo"] :: float
|
2425
|
-
%t5511 = load_field t5470["hi"] :: float
|
2426
|
-
%t5523 = load_field t5470["rate"] :: float
|
2427
|
-
%t5481 = call core.sub(%t5234, %t5498) :: float
|
2428
|
-
%t5504 = call core.eq(%t5511, %t3325) :: boolean
|
2429
|
-
%t5507 = select %t5504, %t3327, %t5511 :: float
|
2430
|
-
%t5485 = call core.sub(%t5507, %t5498) :: float
|
2431
|
-
%t5486 = call core.clamp(%t5481, %t3306, %t5485) :: float
|
2432
|
-
%t5474 = call core.mul(%t5486, %t5523) :: float
|
2433
|
-
%acc5466 = acc_add agg.sum(%acc5466, %t5474) :: float
|
2434
|
-
end_loop
|
2435
|
-
%t5475 = acc_load %acc5466 :: float
|
2436
|
-
%t5460 = call core.add(%t5475, %t3476) :: float
|
2437
|
-
%t5462 = call core.add(%t5460, %t3518) :: float
|
2438
|
-
%t5464 = call core.add(%t5462, %t3521) :: float
|
2439
|
-
%t5457 = call core.div(%t5464, %t3346) :: float
|
2440
|
-
%acc5562 = decl_acc :: float
|
2441
|
-
loop rates id=L78 in %t5209 as el=%t5566, idx=%t5567
|
2442
|
-
%t5594 = load_field t5566["lo"] :: float
|
2443
|
-
%t5607 = load_field t5566["hi"] :: float
|
2444
|
-
%t5619 = load_field t5566["rate"] :: float
|
2445
|
-
%t5577 = call core.sub(%t5234, %t5594) :: float
|
2446
|
-
%t5600 = call core.eq(%t5607, %t3325) :: boolean
|
2447
|
-
%t5603 = select %t5600, %t3327, %t5607 :: float
|
2448
|
-
%t5581 = call core.sub(%t5603, %t5594) :: float
|
2449
|
-
%t5582 = call core.clamp(%t5577, %t3306, %t5581) :: float
|
2450
|
-
%t5570 = call core.mul(%t5582, %t5619) :: float
|
2451
|
-
%acc5562 = acc_add agg.sum(%acc5562, %t5570) :: float
|
2452
|
-
end_loop
|
2453
|
-
%t5571 = acc_load %acc5562 :: float
|
2454
|
-
%t5556 = call core.add(%t5571, %t3476) :: float
|
2455
|
-
%t5558 = call core.add(%t5556, %t3518) :: float
|
2456
|
-
%t5560 = call core.add(%t5558, %t3521) :: float
|
2457
|
-
%t622 = make_object{effective: %t5457, tax: %t5560} :: object
|
2458
|
-
%acc5661 = decl_acc :: float
|
2459
|
-
loop rates id=L79 in %t5209 as el=%t5665, idx=%t5666
|
2460
|
-
%t5693 = load_field t5665["lo"] :: float
|
2461
|
-
%t5706 = load_field t5665["hi"] :: float
|
2462
|
-
%t5718 = load_field t5665["rate"] :: float
|
2463
|
-
%t5676 = call core.sub(%t5234, %t5693) :: float
|
2464
|
-
%t5699 = call core.eq(%t5706, %t3325) :: boolean
|
2465
|
-
%t5702 = select %t5699, %t3327, %t5706 :: float
|
2466
|
-
%t5680 = call core.sub(%t5702, %t5693) :: float
|
2467
|
-
%t5681 = call core.clamp(%t5676, %t3306, %t5680) :: float
|
2468
|
-
%t5669 = call core.mul(%t5681, %t5718) :: float
|
2469
|
-
%acc5661 = acc_add agg.sum(%acc5661, %t5669) :: float
|
2470
|
-
end_loop
|
2471
|
-
%t5670 = acc_load %acc5661 :: float
|
2472
|
-
%t5655 = call core.add(%t5670, %t3476) :: float
|
2473
|
-
%t5657 = call core.add(%t5655, %t3518) :: float
|
2474
|
-
%t5659 = call core.add(%t5657, %t3521) :: float
|
2475
|
-
%t5652 = call core.sub(%t3301, %t5659) :: float
|
2476
|
-
%acc5763 = decl_acc :: float
|
2477
|
-
loop rates id=L80 in %t5209 as el=%t5767, idx=%t5768
|
2478
|
-
%t5795 = load_field t5767["lo"] :: float
|
2479
|
-
%t5808 = load_field t5767["hi"] :: float
|
2480
|
-
%t5820 = load_field t5767["rate"] :: float
|
2481
|
-
%t5778 = call core.sub(%t5234, %t5795) :: float
|
2482
|
-
%t5801 = call core.eq(%t5808, %t3325) :: boolean
|
2483
|
-
%t5804 = select %t5801, %t3327, %t5808 :: float
|
2484
|
-
%t5782 = call core.sub(%t5804, %t5795) :: float
|
2485
|
-
%t5783 = call core.clamp(%t5778, %t3306, %t5782) :: float
|
2486
|
-
%t5771 = call core.mul(%t5783, %t5820) :: float
|
2487
|
-
%acc5763 = acc_add agg.sum(%acc5763, %t5771) :: float
|
521
|
+
%t974 = load_input "income" :: float
|
522
|
+
%t975 = const 168600.0 :: float
|
523
|
+
%t976 = make_tuple(%t974, %t975) :: tuple<float, float>
|
524
|
+
%t977 = fold %t976 fn="agg.min" :: float
|
525
|
+
%t978 = const 0.062 :: float
|
526
|
+
%t979 = call core.mul(%t977, %t978) :: float
|
527
|
+
%t981 = const 0.0145 :: float
|
528
|
+
%t982 = call core.mul(%t974, %t981) :: float
|
529
|
+
%t1032 = load_input "state_rate" :: float
|
530
|
+
%t1033 = call core.mul(%t974, %t1032) :: float
|
531
|
+
%t1035 = load_input "local_rate" :: float
|
532
|
+
%t1036 = call core.mul(%t974, %t1035) :: float
|
533
|
+
%t181 = load_input "statuses" :: array
|
534
|
+
%t824 = const 0 :: integer
|
535
|
+
%t857 = const 1.0 :: float
|
536
|
+
%t971 = call core.add(%t979, %t982) :: float
|
537
|
+
%t990 = const 0.009 :: float
|
538
|
+
%t195 = make_object{marginal: %t1032, effective: %t1032, tax: %t1033} :: object
|
539
|
+
%t199 = make_object{marginal: %t1035, effective: %t1035, tax: %t1036} :: object
|
540
|
+
%t204 = load_input "retirement_contrib" :: float
|
541
|
+
%t840 = const -1 :: integer
|
542
|
+
%t842 = const 100000000000.0 :: float
|
543
|
+
%t858 = make_tuple(%t974, %t857) :: tuple<float, float>
|
544
|
+
%t859 = fold %t858 fn="agg.max" :: float
|
545
|
+
loop statuses id=L26 in %t181 as el=%statuses_el_182, idx=%statuses_i_183
|
546
|
+
%t184 = load_field statuses_el_182["name"] :: string
|
547
|
+
%t822 = load_field statuses_el_182["std"] :: float
|
548
|
+
%acc802 = decl_acc :: float
|
549
|
+
%t803 = load_field statuses_el_182["rates"] :: any
|
550
|
+
%acc863 = decl_acc :: float
|
551
|
+
%acc913 = decl_acc :: float
|
552
|
+
%t985 = load_field statuses_el_182["addl_threshold"] :: float
|
553
|
+
%acc1039 = decl_acc :: float
|
554
|
+
%acc1127 = decl_acc :: float
|
555
|
+
%acc1219 = decl_acc :: float
|
556
|
+
%acc1315 = decl_acc :: float
|
557
|
+
%t823 = call core.sub(%t974, %t822) :: float
|
558
|
+
%t986 = call core.sub(%t974, %t985) :: float
|
559
|
+
%t825 = make_tuple(%t823, %t824) :: tuple<float, integer>
|
560
|
+
%t988 = make_tuple(%t986, %t824) :: tuple<float, integer>
|
561
|
+
%t826 = fold %t825 fn="agg.max" :: float
|
562
|
+
%t989 = fold %t988 fn="agg.max" :: float
|
563
|
+
loop rates id=L32 in %t803 as el=%t804, idx=%t805
|
564
|
+
%t829 = load_field t804["lo"] :: float
|
565
|
+
%t815 = call core.gte(%t826, %t829) :: boolean
|
566
|
+
%t847 = load_field t804["hi"] :: float
|
567
|
+
%t841 = call core.eq(%t847, %t840) :: boolean
|
568
|
+
%t844 = select %t841, %t842, %t847 :: float
|
569
|
+
%t818 = call core.lt(%t826, %t844) :: boolean
|
570
|
+
%t819 = call core.and(%t815, %t818) :: boolean
|
571
|
+
%t853 = load_field t804["rate"] :: float
|
572
|
+
%t809 = select %t819, %t853, %t824 :: float
|
573
|
+
%acc802 = acc_add agg.sum(%acc802, %t809) :: float
|
574
|
+
end_loop
|
575
|
+
%t991 = call core.mul(%t989, %t990) :: float
|
576
|
+
%t810 = acc_load %acc802 :: float
|
577
|
+
loop rates id=L33 in %t803 as el=%t865, idx=%t866
|
578
|
+
%t890 = load_field t865["lo"] :: float
|
579
|
+
%t875 = call core.sub(%t826, %t890) :: float
|
580
|
+
%t901 = load_field t865["hi"] :: float
|
581
|
+
%t895 = call core.eq(%t901, %t840) :: boolean
|
582
|
+
%t898 = select %t895, %t842, %t901 :: float
|
583
|
+
%t879 = call core.sub(%t898, %t890) :: float
|
584
|
+
%t880 = call core.clamp(%t875, %t824, %t879) :: float
|
585
|
+
%t910 = load_field t865["rate"] :: float
|
586
|
+
%t869 = call core.mul(%t880, %t910) :: float
|
587
|
+
%acc863 = acc_add agg.sum(%acc863, %t869) :: float
|
588
|
+
%acc913 = acc_add agg.sum(%acc913, %t869) :: float
|
589
|
+
%acc1039 = acc_add agg.sum(%acc1039, %t869) :: float
|
590
|
+
%acc1127 = acc_add agg.sum(%acc1127, %t869) :: float
|
591
|
+
%acc1219 = acc_add agg.sum(%acc1219, %t869) :: float
|
592
|
+
%acc1315 = acc_add agg.sum(%acc1315, %t869) :: float
|
593
|
+
end_loop
|
594
|
+
%t973 = call core.add(%t971, %t991) :: float
|
595
|
+
%t870 = acc_load %acc863 :: float
|
596
|
+
%t920 = acc_load %acc913 :: float
|
597
|
+
%t1046 = acc_load %acc1039 :: float
|
598
|
+
%t1134 = acc_load %acc1127 :: float
|
599
|
+
%t1226 = acc_load %acc1219 :: float
|
600
|
+
%t1322 = acc_load %acc1315 :: float
|
601
|
+
%t967 = call core.div(%t973, %t859) :: float
|
602
|
+
%t860 = call core.div(%t870, %t859) :: float
|
603
|
+
%t1028 = call core.add(%t1046, %t973) :: float
|
604
|
+
%t1116 = call core.add(%t1134, %t973) :: float
|
605
|
+
%t1208 = call core.add(%t1226, %t973) :: float
|
606
|
+
%t1304 = call core.add(%t1322, %t973) :: float
|
607
|
+
%t191 = make_object{effective: %t967, tax: %t973} :: object
|
608
|
+
%t188 = make_object{marginal: %t810, effective: %t860, tax: %t920} :: object
|
609
|
+
%t1029 = call core.add(%t1028, %t1033) :: float
|
610
|
+
%t1117 = call core.add(%t1116, %t1033) :: float
|
611
|
+
%t1209 = call core.add(%t1208, %t1033) :: float
|
612
|
+
%t1305 = call core.add(%t1304, %t1033) :: float
|
613
|
+
%t1030 = call core.add(%t1029, %t1036) :: float
|
614
|
+
%t1118 = call core.add(%t1117, %t1036) :: float
|
615
|
+
%t1210 = call core.add(%t1209, %t1036) :: float
|
616
|
+
%t1306 = call core.add(%t1305, %t1036) :: float
|
617
|
+
%t1022 = call core.div(%t1030, %t859) :: float
|
618
|
+
%t1202 = call core.sub(%t974, %t1210) :: float
|
619
|
+
%t1298 = call core.sub(%t974, %t1306) :: float
|
620
|
+
%t202 = make_object{effective: %t1022, tax: %t1118} :: object
|
621
|
+
%t1294 = call core.sub(%t1298, %t204) :: float
|
622
|
+
%t206 = make_object{filing_status: %t184, federal: %t188, fica: %t191, state: %t195, local: %t199, total: %t202, after_tax: %t1202, retirement_contrib: %t204, take_home: %t1294} :: object
|
623
|
+
yield %t206
|
2488
624
|
end_loop
|
2489
|
-
%t5772 = acc_load %acc5763 :: float
|
2490
|
-
%t5757 = call core.add(%t5772, %t3476) :: float
|
2491
|
-
%t5759 = call core.add(%t5757, %t3518) :: float
|
2492
|
-
%t5761 = call core.add(%t5759, %t3521) :: float
|
2493
|
-
%t5754 = call core.sub(%t3301, %t5761) :: float
|
2494
|
-
%t5751 = call core.sub(%t5754, %t558) :: float
|
2495
|
-
%t626 = make_object{federal: %t608, fica: %t545, state: %t549, local: %t553, total: %t622, after_tax: %t5652, retirement_contrib: %t558, take_home: %t5751} :: object
|
2496
|
-
%t627 = make_object{single: %t560, married_joint: %t582, married_separate: %t604, head_of_household: %t626} :: object
|
2497
|
-
yield %t627
|
2498
625
|
)
|
2499
626
|
)
|