kumi 0.0.23 → 0.0.25

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