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