kumi 0.0.24 → 0.0.26

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (234) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +14 -0
  3. data/README.md +70 -71
  4. data/data/functions/agg/boolean.yaml +6 -2
  5. data/data/functions/agg/numeric.yaml +32 -16
  6. data/data/functions/agg/string.yaml +4 -3
  7. data/data/functions/core/arithmetic.yaml +62 -14
  8. data/data/functions/core/boolean.yaml +12 -6
  9. data/data/functions/core/comparison.yaml +25 -13
  10. data/data/functions/core/constructor.yaml +16 -8
  11. data/data/functions/core/select.yaml +3 -1
  12. data/data/functions/core/stencil.yaml +14 -5
  13. data/data/functions/core/string.yaml +9 -4
  14. data/data/kernels/ruby/agg/numeric.yaml +1 -1
  15. data/docs/UNSAT_DETECTION.md +83 -0
  16. data/golden/array_element/expected/nast.txt +1 -1
  17. data/golden/array_element/expected/schema_ruby.rb +1 -1
  18. data/golden/array_index/expected/nast.txt +7 -7
  19. data/golden/array_index/expected/schema_ruby.rb +1 -1
  20. data/golden/array_operations/expected/nast.txt +2 -2
  21. data/golden/array_operations/expected/schema_ruby.rb +1 -1
  22. data/golden/array_operations/expected/snast.txt +3 -3
  23. data/golden/cascade_logic/expected/lir_02_inlined.txt +8 -8
  24. data/golden/cascade_logic/expected/schema_ruby.rb +1 -1
  25. data/golden/cascade_logic/expected/snast.txt +2 -2
  26. data/golden/chained_fusion/expected/lir_02_inlined.txt +36 -36
  27. data/golden/chained_fusion/expected/lir_03_cse.txt +23 -23
  28. data/golden/chained_fusion/expected/lir_04_1_loop_fusion.txt +25 -25
  29. data/golden/chained_fusion/expected/lir_04_loop_invcm.txt +23 -23
  30. data/golden/chained_fusion/expected/lir_06_const_prop.txt +23 -23
  31. data/golden/chained_fusion/expected/nast.txt +2 -2
  32. data/golden/chained_fusion/expected/schema_javascript.mjs +23 -23
  33. data/golden/chained_fusion/expected/schema_ruby.rb +28 -28
  34. data/golden/element_arrays/expected/nast.txt +2 -2
  35. data/golden/element_arrays/expected/schema_ruby.rb +1 -1
  36. data/golden/element_arrays/expected/snast.txt +1 -1
  37. data/golden/empty_and_null_inputs/expected/lir_02_inlined.txt +18 -18
  38. data/golden/empty_and_null_inputs/expected/lir_03_cse.txt +17 -17
  39. data/golden/empty_and_null_inputs/expected/lir_04_1_loop_fusion.txt +17 -17
  40. data/golden/empty_and_null_inputs/expected/lir_04_loop_invcm.txt +17 -17
  41. data/golden/empty_and_null_inputs/expected/lir_06_const_prop.txt +17 -17
  42. data/golden/empty_and_null_inputs/expected/nast.txt +3 -3
  43. data/golden/empty_and_null_inputs/expected/schema_javascript.mjs +13 -13
  44. data/golden/empty_and_null_inputs/expected/schema_ruby.rb +18 -18
  45. data/golden/function_overload/expected/ast.txt +29 -0
  46. data/golden/function_overload/expected/input_plan.txt +4 -0
  47. data/golden/function_overload/expected/lir_00_unoptimized.txt +18 -0
  48. data/golden/function_overload/expected/lir_01_hoist_scalar_references.txt +18 -0
  49. data/golden/function_overload/expected/lir_02_inlined.txt +20 -0
  50. data/golden/function_overload/expected/lir_03_cse.txt +20 -0
  51. data/golden/function_overload/expected/lir_04_1_loop_fusion.txt +20 -0
  52. data/golden/function_overload/expected/lir_04_loop_invcm.txt +20 -0
  53. data/golden/function_overload/expected/lir_06_const_prop.txt +20 -0
  54. data/golden/function_overload/expected/nast.txt +22 -0
  55. data/golden/function_overload/expected/schema_javascript.mjs +12 -0
  56. data/golden/function_overload/expected/schema_ruby.rb +39 -0
  57. data/golden/function_overload/expected/snast.txt +22 -0
  58. data/golden/function_overload/input.json +8 -0
  59. data/golden/function_overload/schema.kumi +19 -0
  60. data/golden/game_of_life/expected/lir_00_unoptimized.txt +4 -4
  61. data/golden/game_of_life/expected/lir_01_hoist_scalar_references.txt +4 -4
  62. data/golden/game_of_life/expected/lir_02_inlined.txt +1294 -1294
  63. data/golden/game_of_life/expected/lir_03_cse.txt +403 -399
  64. data/golden/game_of_life/expected/lir_04_1_loop_fusion.txt +403 -399
  65. data/golden/game_of_life/expected/lir_04_loop_invcm.txt +403 -399
  66. data/golden/game_of_life/expected/lir_06_const_prop.txt +403 -399
  67. data/golden/game_of_life/expected/nast.txt +4 -4
  68. data/golden/game_of_life/expected/schema_javascript.mjs +87 -85
  69. data/golden/game_of_life/expected/schema_ruby.rb +88 -86
  70. data/golden/game_of_life/expected/snast.txt +10 -10
  71. data/golden/hash_keys/expected/schema_ruby.rb +1 -1
  72. data/golden/hash_value/expected/nast.txt +1 -1
  73. data/golden/hash_value/expected/schema_ruby.rb +1 -1
  74. data/golden/hash_value/expected/snast.txt +1 -1
  75. data/golden/hierarchical_complex/expected/lir_02_inlined.txt +15 -15
  76. data/golden/hierarchical_complex/expected/lir_03_cse.txt +1 -1
  77. data/golden/hierarchical_complex/expected/lir_04_1_loop_fusion.txt +1 -1
  78. data/golden/hierarchical_complex/expected/lir_04_loop_invcm.txt +1 -1
  79. data/golden/hierarchical_complex/expected/lir_06_const_prop.txt +1 -1
  80. data/golden/hierarchical_complex/expected/nast.txt +3 -3
  81. data/golden/hierarchical_complex/expected/schema_javascript.mjs +1 -1
  82. data/golden/hierarchical_complex/expected/schema_ruby.rb +2 -2
  83. data/golden/hierarchical_complex/expected/snast.txt +3 -3
  84. data/golden/inline_rename_scope_leak/expected/nast.txt +3 -3
  85. data/golden/inline_rename_scope_leak/expected/schema_ruby.rb +1 -1
  86. data/golden/input_reference/expected/nast.txt +2 -2
  87. data/golden/input_reference/expected/schema_ruby.rb +1 -1
  88. data/golden/interleaved_fusion/expected/lir_02_inlined.txt +35 -35
  89. data/golden/interleaved_fusion/expected/lir_03_cse.txt +26 -26
  90. data/golden/interleaved_fusion/expected/lir_04_1_loop_fusion.txt +27 -26
  91. data/golden/interleaved_fusion/expected/lir_04_loop_invcm.txt +26 -26
  92. data/golden/interleaved_fusion/expected/lir_06_const_prop.txt +26 -26
  93. data/golden/interleaved_fusion/expected/nast.txt +2 -2
  94. data/golden/interleaved_fusion/expected/schema_javascript.mjs +23 -23
  95. data/golden/interleaved_fusion/expected/schema_ruby.rb +29 -29
  96. data/golden/let_inline/expected/nast.txt +4 -4
  97. data/golden/let_inline/expected/schema_ruby.rb +1 -1
  98. data/golden/loop_fusion/expected/lir_02_inlined.txt +17 -17
  99. data/golden/loop_fusion/expected/lir_03_cse.txt +14 -14
  100. data/golden/loop_fusion/expected/lir_04_1_loop_fusion.txt +14 -14
  101. data/golden/loop_fusion/expected/lir_04_loop_invcm.txt +14 -14
  102. data/golden/loop_fusion/expected/lir_06_const_prop.txt +14 -14
  103. data/golden/loop_fusion/expected/nast.txt +1 -1
  104. data/golden/loop_fusion/expected/schema_javascript.mjs +12 -12
  105. data/golden/loop_fusion/expected/schema_ruby.rb +16 -16
  106. data/golden/min_reduce_scope/expected/nast.txt +3 -3
  107. data/golden/min_reduce_scope/expected/schema_ruby.rb +1 -1
  108. data/golden/min_reduce_scope/expected/snast.txt +1 -1
  109. data/golden/mixed_dimensions/expected/lir_02_inlined.txt +5 -5
  110. data/golden/mixed_dimensions/expected/lir_03_cse.txt +5 -5
  111. data/golden/mixed_dimensions/expected/lir_04_1_loop_fusion.txt +5 -5
  112. data/golden/mixed_dimensions/expected/lir_04_loop_invcm.txt +5 -5
  113. data/golden/mixed_dimensions/expected/lir_06_const_prop.txt +5 -5
  114. data/golden/mixed_dimensions/expected/nast.txt +2 -2
  115. data/golden/mixed_dimensions/expected/schema_javascript.mjs +3 -3
  116. data/golden/mixed_dimensions/expected/schema_ruby.rb +6 -6
  117. data/golden/multirank_hoisting/expected/lir_02_inlined.txt +48 -48
  118. data/golden/multirank_hoisting/expected/lir_03_cse.txt +35 -35
  119. data/golden/multirank_hoisting/expected/lir_04_1_loop_fusion.txt +35 -35
  120. data/golden/multirank_hoisting/expected/lir_04_loop_invcm.txt +35 -35
  121. data/golden/multirank_hoisting/expected/lir_06_const_prop.txt +35 -35
  122. data/golden/multirank_hoisting/expected/nast.txt +7 -7
  123. data/golden/multirank_hoisting/expected/schema_javascript.mjs +34 -34
  124. data/golden/multirank_hoisting/expected/schema_ruby.rb +36 -36
  125. data/golden/nested_hash/expected/nast.txt +1 -1
  126. data/golden/nested_hash/expected/schema_ruby.rb +1 -1
  127. data/golden/reduction_broadcast/expected/lir_02_inlined.txt +30 -30
  128. data/golden/reduction_broadcast/expected/lir_03_cse.txt +22 -22
  129. data/golden/reduction_broadcast/expected/lir_04_1_loop_fusion.txt +22 -22
  130. data/golden/reduction_broadcast/expected/lir_04_loop_invcm.txt +22 -22
  131. data/golden/reduction_broadcast/expected/lir_06_const_prop.txt +22 -22
  132. data/golden/reduction_broadcast/expected/nast.txt +3 -3
  133. data/golden/reduction_broadcast/expected/schema_javascript.mjs +18 -18
  134. data/golden/reduction_broadcast/expected/schema_ruby.rb +23 -23
  135. data/golden/reduction_broadcast/expected/snast.txt +1 -1
  136. data/golden/roll/expected/schema_ruby.rb +1 -1
  137. data/golden/shift/expected/schema_ruby.rb +1 -1
  138. data/golden/shift_2d/expected/schema_ruby.rb +1 -1
  139. data/golden/simple_math/expected/lir_00_unoptimized.txt +1 -1
  140. data/golden/simple_math/expected/lir_01_hoist_scalar_references.txt +1 -1
  141. data/golden/simple_math/expected/lir_02_inlined.txt +1 -1
  142. data/golden/simple_math/expected/lir_03_cse.txt +1 -1
  143. data/golden/simple_math/expected/lir_04_1_loop_fusion.txt +1 -1
  144. data/golden/simple_math/expected/lir_04_loop_invcm.txt +1 -1
  145. data/golden/simple_math/expected/lir_06_const_prop.txt +1 -1
  146. data/golden/simple_math/expected/nast.txt +5 -5
  147. data/golden/simple_math/expected/schema_ruby.rb +1 -1
  148. data/golden/simple_math/expected/snast.txt +2 -2
  149. data/golden/streaming_basics/expected/lir_02_inlined.txt +25 -25
  150. data/golden/streaming_basics/expected/lir_03_cse.txt +13 -13
  151. data/golden/streaming_basics/expected/lir_04_1_loop_fusion.txt +13 -13
  152. data/golden/streaming_basics/expected/lir_04_loop_invcm.txt +13 -13
  153. data/golden/streaming_basics/expected/lir_06_const_prop.txt +13 -13
  154. data/golden/streaming_basics/expected/nast.txt +8 -8
  155. data/golden/streaming_basics/expected/schema_javascript.mjs +13 -13
  156. data/golden/streaming_basics/expected/schema_ruby.rb +14 -14
  157. data/golden/streaming_basics/expected/snast.txt +1 -1
  158. data/golden/tuples/expected/lir_00_unoptimized.txt +5 -5
  159. data/golden/tuples/expected/lir_01_hoist_scalar_references.txt +5 -5
  160. data/golden/tuples/expected/lir_02_inlined.txt +5 -5
  161. data/golden/tuples/expected/lir_03_cse.txt +5 -5
  162. data/golden/tuples/expected/lir_04_1_loop_fusion.txt +5 -5
  163. data/golden/tuples/expected/lir_04_loop_invcm.txt +5 -5
  164. data/golden/tuples/expected/lir_06_const_prop.txt +5 -5
  165. data/golden/tuples/expected/nast.txt +4 -4
  166. data/golden/tuples/expected/schema_ruby.rb +1 -1
  167. data/golden/tuples/expected/snast.txt +6 -6
  168. data/golden/tuples_and_arrays/expected/lir_00_unoptimized.txt +1 -1
  169. data/golden/tuples_and_arrays/expected/lir_01_hoist_scalar_references.txt +1 -1
  170. data/golden/tuples_and_arrays/expected/lir_02_inlined.txt +17 -17
  171. data/golden/tuples_and_arrays/expected/lir_03_cse.txt +13 -13
  172. data/golden/tuples_and_arrays/expected/lir_04_1_loop_fusion.txt +13 -13
  173. data/golden/tuples_and_arrays/expected/lir_04_loop_invcm.txt +13 -13
  174. data/golden/tuples_and_arrays/expected/lir_06_const_prop.txt +13 -13
  175. data/golden/tuples_and_arrays/expected/nast.txt +3 -3
  176. data/golden/tuples_and_arrays/expected/schema_javascript.mjs +13 -13
  177. data/golden/tuples_and_arrays/expected/schema_ruby.rb +14 -14
  178. data/golden/tuples_and_arrays/expected/snast.txt +2 -2
  179. data/golden/us_tax_2024/expected/ast.txt +63 -670
  180. data/golden/us_tax_2024/expected/input_plan.txt +8 -45
  181. data/golden/us_tax_2024/expected/lir_00_unoptimized.txt +253 -863
  182. data/golden/us_tax_2024/expected/lir_01_hoist_scalar_references.txt +253 -863
  183. data/golden/us_tax_2024/expected/lir_02_inlined.txt +1215 -5139
  184. data/golden/us_tax_2024/expected/lir_03_cse.txt +587 -2460
  185. data/golden/us_tax_2024/expected/lir_04_1_loop_fusion.txt +632 -2480
  186. data/golden/us_tax_2024/expected/lir_04_loop_invcm.txt +587 -2400
  187. data/golden/us_tax_2024/expected/lir_06_const_prop.txt +587 -2400
  188. data/golden/us_tax_2024/expected/nast.txt +123 -826
  189. data/golden/us_tax_2024/expected/schema_javascript.mjs +127 -581
  190. data/golden/us_tax_2024/expected/schema_ruby.rb +135 -610
  191. data/golden/us_tax_2024/expected/snast.txt +155 -858
  192. data/golden/us_tax_2024/expected.json +120 -1
  193. data/golden/us_tax_2024/input.json +18 -9
  194. data/golden/us_tax_2024/schema.kumi +48 -178
  195. data/golden/with_constants/expected/lir_00_unoptimized.txt +1 -1
  196. data/golden/with_constants/expected/lir_01_hoist_scalar_references.txt +1 -1
  197. data/golden/with_constants/expected/lir_02_inlined.txt +1 -1
  198. data/golden/with_constants/expected/lir_03_cse.txt +1 -1
  199. data/golden/with_constants/expected/lir_04_1_loop_fusion.txt +1 -1
  200. data/golden/with_constants/expected/lir_04_loop_invcm.txt +1 -1
  201. data/golden/with_constants/expected/lir_06_const_prop.txt +1 -1
  202. data/golden/with_constants/expected/nast.txt +2 -2
  203. data/golden/with_constants/expected/schema_ruby.rb +1 -1
  204. data/golden/with_constants/expected/snast.txt +2 -2
  205. data/lib/kumi/analyzer.rb +12 -12
  206. data/lib/kumi/core/analyzer/passes/formal_constraint_propagator.rb +236 -0
  207. data/lib/kumi/core/analyzer/passes/input_collector.rb +22 -4
  208. data/lib/kumi/core/analyzer/passes/lir/inline_declarations_pass.rb +118 -74
  209. data/lib/kumi/core/analyzer/passes/nast_dimensional_analyzer_pass.rb +64 -18
  210. data/lib/kumi/core/analyzer/passes/normalize_to_nast_pass.rb +9 -4
  211. data/lib/kumi/core/analyzer/passes/snast_pass.rb +3 -1
  212. data/lib/kumi/core/analyzer/passes/unsat_detector.rb +172 -198
  213. data/lib/kumi/core/error_reporter.rb +36 -1
  214. data/lib/kumi/core/errors.rb +33 -1
  215. data/lib/kumi/core/functions/function_spec.rb +5 -4
  216. data/lib/kumi/core/functions/loader.rb +17 -1
  217. data/lib/kumi/core/functions/overload_resolver.rb +164 -0
  218. data/lib/kumi/core/functions/type_error_reporter.rb +118 -0
  219. data/lib/kumi/core/functions/type_rules.rb +155 -35
  220. data/lib/kumi/core/types/inference.rb +29 -22
  221. data/lib/kumi/core/types/normalizer.rb +29 -45
  222. data/lib/kumi/core/types/validator.rb +16 -27
  223. data/lib/kumi/core/types/value_objects.rb +116 -0
  224. data/lib/kumi/core/types.rb +45 -37
  225. data/lib/kumi/registry_v2/loader.rb +90 -0
  226. data/lib/kumi/registry_v2.rb +18 -1
  227. data/lib/kumi/version.rb +1 -1
  228. metadata +21 -7
  229. data/lib/kumi/core/analyzer/unsat_constant_evaluator.rb +0 -59
  230. data/lib/kumi/core/atom_unsat_solver.rb +0 -396
  231. data/lib/kumi/core/constraint_relationship_solver.rb +0 -641
  232. data/lib/kumi/core/types/builder.rb +0 -23
  233. data/lib/kumi/core/types/compatibility.rb +0 -96
  234. data/lib/kumi/core/types/formatter.rb +0 -26
@@ -11,2509 +11,661 @@
11
11
  %t6 = call core.mul(%t4, %t5) :: float
12
12
  yield %t6
13
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
14
+ (Declaration taxable
15
+ %t7 = load_input "statuses" :: array
16
+ loop statuses id=L1 in %t7 as el=%statuses_el_8, idx=%statuses_i_9
17
+ %t10 = load_input "income" :: float
18
+ %t11 = load_field statuses_el_8["std"] :: float
19
+ %t13 = const 0 :: integer
20
+ %t12 = call core.sub(%t10, %t11) :: float
21
+ %t14 = make_tuple(%t12, %t13) :: tuple<float, integer>
22
+ %t15 = fold %t14 fn="agg.max" :: float
23
+ yield %t15
24
+ end_loop
25
+ )
26
+ (Declaration lo
27
+ %t16 = load_input "statuses" :: array
28
+ loop statuses id=L2 in %t16 as el=%statuses_el_17, idx=%statuses_i_18
29
+ %t19 = load_field statuses_el_17["rates"] :: any
30
+ loop rates id=L3 in %t19 as el=%rates_el_20, idx=%rates_i_21
31
+ %t22 = load_field rates_el_20["lo"] :: float
32
+ yield %t22
33
+ end_loop
34
+ end_loop
35
+ )
36
+ (Declaration hi
37
+ %t23 = load_input "statuses" :: array
38
+ loop statuses id=L4 in %t23 as el=%statuses_el_24, idx=%statuses_i_25
39
+ %t26 = load_field statuses_el_24["rates"] :: any
40
+ loop rates id=L5 in %t26 as el=%rates_el_27, idx=%rates_i_28
41
+ %t29 = load_field rates_el_27["hi"] :: float
42
+ yield %t29
43
+ end_loop
44
+ end_loop
45
+ )
46
+ (Declaration rate
47
+ %t30 = load_input "statuses" :: array
48
+ loop statuses id=L6 in %t30 as el=%statuses_el_31, idx=%statuses_i_32
49
+ %t33 = load_field statuses_el_31["rates"] :: any
50
+ loop rates id=L7 in %t33 as el=%rates_el_34, idx=%rates_i_35
51
+ %t36 = load_field rates_el_34["rate"] :: float
52
+ yield %t36
53
+ end_loop
50
54
  end_loop
51
55
  )
52
56
  (Declaration big_hi
53
- %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
- loop rates id=L4 in %t36 as el=%rates_el_37, idx=%rates_i_38
61
- %t631 = load_field rates_el_37["hi"] :: float
62
- %t40 = const -1 :: integer
63
- %t42 = const 100000000000.0 :: 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
- loop rates id=L5 in %t47 as el=%rates_el_48, idx=%rates_i_49
82
- %t647 = load_field rates_el_48["lo"] :: float
83
- %t660 = load_field rates_el_48["hi"] :: float
84
- %t652 = const -1 :: integer
85
- %t654 = const 100000000000.0 :: float
86
- %t52 = call core.sub(%t50, %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
- %acc_58 = decl_acc :: float
96
- %t59 = load_input "fed" :: array
97
- %t60 = load_field t59["single"] :: any
98
- %t61 = load_field t60["rates"] :: any
99
- loop rates id=L6 in %t61 as el=%rates_el_62, idx=%rates_i_63
100
- %t680 = load_input "income" :: float
101
- %t681 = load_input "fed" :: any
102
- %t685 = const 0 :: integer
103
- %t691 = load_field rates_el_62["lo"] :: float
104
- %t704 = load_field rates_el_62["hi"] :: float
105
- %t696 = const -1 :: integer
106
- %t698 = const 100000000000.0 :: float
107
- %t716 = load_field rates_el_62["rate"] :: float
108
- %t682 = load_field t681["single"] :: any
109
- %t697 = call core.eq(%t704, %t696) :: boolean
110
- %t683 = load_field t682["std"] :: float
111
- %t700 = select %t697, %t698, %t704 :: float
112
- %t684 = call core.sub(%t680, %t683) :: float
113
- %t678 = call core.sub(%t700, %t691) :: float
114
- %t686 = make_tuple(%t684, %t685) :: tuple<float, integer>
115
- %t687 = fold %t686 fn="agg.max" :: float
116
- %t674 = call core.sub(%t687, %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
57
+ %t37 = const 100000000000.0 :: float
58
+ yield %t37
59
+ )
60
+ (Declaration hi_eff
61
+ %t38 = load_input "statuses" :: array
62
+ loop statuses id=L8 in %t38 as el=%statuses_el_39, idx=%statuses_i_40
63
+ %t41 = load_field statuses_el_39["rates"] :: any
64
+ loop rates id=L9 in %t41 as el=%rates_el_42, idx=%rates_i_43
65
+ %t209 = load_field rates_el_42["hi"] :: float
66
+ %t45 = const -1 :: integer
67
+ %t46 = call core.eq(%t209, %t45) :: boolean
68
+ %t47 = const 100000000000.0 :: float
69
+ %t49 = select %t46, %t47, %t209 :: float
70
+ yield %t49
71
+ end_loop
72
+ end_loop
73
+ )
74
+ (Declaration amt
75
+ %t50 = load_input "statuses" :: array
76
+ loop statuses id=L10 in %t50 as el=%statuses_el_51, idx=%statuses_i_52
77
+ %t214 = load_input "income" :: float
78
+ %t215 = load_field statuses_el_51["std"] :: float
79
+ %t217 = const 0 :: integer
80
+ %t53 = load_field statuses_el_51["rates"] :: any
81
+ %t216 = call core.sub(%t214, %t215) :: float
82
+ %t218 = make_tuple(%t216, %t217) :: tuple<float, integer>
83
+ %t219 = fold %t218 fn="agg.max" :: float
84
+ loop rates id=L11 in %t53 as el=%rates_el_54, idx=%rates_i_55
85
+ %t222 = load_field rates_el_54["lo"] :: float
86
+ %t58 = call core.sub(%t219, %t222) :: float
87
+ %t233 = load_field rates_el_54["hi"] :: float
88
+ %t226 = const -1 :: integer
89
+ %t227 = call core.eq(%t233, %t226) :: boolean
90
+ %t228 = const 100000000000.0 :: float
91
+ %t230 = select %t227, %t228, %t233 :: float
92
+ %t62 = call core.sub(%t230, %t222) :: float
93
+ %t63 = call core.clamp(%t58, %t217, %t62) :: float
94
+ yield %t63
95
+ end_loop
96
+ end_loop
97
+ )
98
+ (Declaration fed_tax
99
+ %t64 = load_input "statuses" :: array
100
+ loop statuses id=L12 in %t64 as el=%statuses_el_65, idx=%statuses_i_66
101
+ %t251 = load_input "income" :: float
102
+ %t252 = load_field statuses_el_65["std"] :: float
103
+ %t254 = const 0 :: integer
104
+ %acc_67 = decl_acc :: float
105
+ %t68 = load_field statuses_el_65["rates"] :: any
106
+ %t253 = call core.sub(%t251, %t252) :: float
107
+ %t255 = make_tuple(%t253, %t254) :: tuple<float, integer>
108
+ %t256 = fold %t255 fn="agg.max" :: float
109
+ loop rates id=L13 in %t68 as el=%rates_el_69, idx=%rates_i_70
110
+ %t259 = load_field rates_el_69["lo"] :: float
111
+ %t244 = call core.sub(%t256, %t259) :: float
112
+ %t270 = load_field rates_el_69["hi"] :: float
113
+ %t263 = const -1 :: integer
114
+ %t264 = call core.eq(%t270, %t263) :: boolean
115
+ %t265 = const 100000000000.0 :: float
116
+ %t267 = select %t264, %t265, %t270 :: float
117
+ %t248 = call core.sub(%t267, %t259) :: float
118
+ %t249 = call core.clamp(%t244, %t254, %t248) :: float
119
+ %t279 = load_field rates_el_69["rate"] :: float
120
+ %t73 = call core.mul(%t249, %t279) :: float
121
+ %acc_67 = acc_add agg.sum(%acc_67, %t73) :: float
122
+ end_loop
123
+ %t74 = acc_load %acc_67 :: float
124
+ yield %t74
125
+ end_loop
126
+ )
127
+ (Declaration in_br
128
+ %t75 = load_input "statuses" :: array
129
+ loop statuses id=L14 in %t75 as el=%statuses_el_76, idx=%statuses_i_77
130
+ %t281 = load_input "income" :: float
131
+ %t282 = load_field statuses_el_76["std"] :: float
132
+ %t284 = const 0 :: integer
133
+ %t78 = load_field statuses_el_76["rates"] :: any
134
+ %t283 = call core.sub(%t281, %t282) :: float
135
+ %t285 = make_tuple(%t283, %t284) :: tuple<float, integer>
136
+ %t286 = fold %t285 fn="agg.max" :: float
137
+ loop rates id=L15 in %t78 as el=%rates_el_79, idx=%rates_i_80
138
+ %t289 = load_field rates_el_79["lo"] :: float
139
+ %t83 = call core.gte(%t286, %t289) :: boolean
140
+ %t307 = load_field rates_el_79["hi"] :: float
141
+ %t300 = const -1 :: integer
142
+ %t301 = call core.eq(%t307, %t300) :: boolean
143
+ %t302 = const 100000000000.0 :: float
144
+ %t304 = select %t301, %t302, %t307 :: float
145
+ %t86 = call core.lt(%t286, %t304) :: boolean
146
+ %t87 = call core.and(%t83, %t86) :: boolean
147
+ yield %t87
148
+ end_loop
149
+ end_loop
150
+ )
151
+ (Declaration fed_marg
152
+ %t88 = load_input "statuses" :: array
153
+ loop statuses id=L16 in %t88 as el=%statuses_el_89, idx=%statuses_i_90
154
+ %t321 = load_input "income" :: float
155
+ %t322 = load_field statuses_el_89["std"] :: float
156
+ %t324 = const 0 :: integer
157
+ %acc_91 = decl_acc :: float
158
+ %t92 = load_field statuses_el_89["rates"] :: any
159
+ %t323 = call core.sub(%t321, %t322) :: float
160
+ %t325 = make_tuple(%t323, %t324) :: tuple<float, integer>
161
+ %t326 = fold %t325 fn="agg.max" :: float
162
+ loop rates id=L17 in %t92 as el=%rates_el_93, idx=%rates_i_94
163
+ %t329 = load_field rates_el_93["lo"] :: float
164
+ %t315 = call core.gte(%t326, %t329) :: boolean
165
+ %t347 = load_field rates_el_93["hi"] :: float
166
+ %t340 = const -1 :: integer
167
+ %t341 = call core.eq(%t347, %t340) :: boolean
168
+ %t342 = const 100000000000.0 :: float
169
+ %t344 = select %t341, %t342, %t347 :: float
170
+ %t318 = call core.lt(%t326, %t344) :: boolean
171
+ %t319 = call core.and(%t315, %t318) :: boolean
172
+ %t353 = load_field rates_el_93["rate"] :: float
173
+ %t98 = select %t319, %t353, %t324 :: float
174
+ %acc_91 = acc_add agg.sum(%acc_91, %t98) :: float
175
+ end_loop
176
+ %t99 = acc_load %acc_91 :: float
177
+ yield %t99
178
+ end_loop
179
+ )
180
+ (Declaration fed_eff
181
+ %t100 = load_input "statuses" :: array
182
+ loop statuses id=L18 in %t100 as el=%statuses_el_101, idx=%statuses_i_102
183
+ %t375 = load_input "income" :: float
184
+ %t376 = load_field statuses_el_101["std"] :: float
185
+ %t378 = const 0 :: integer
186
+ %acc356 = decl_acc :: float
187
+ %t357 = load_field statuses_el_101["rates"] :: any
188
+ %t105 = const 1.0 :: float
189
+ %t377 = call core.sub(%t375, %t376) :: float
190
+ %t106 = make_tuple(%t375, %t105) :: tuple<float, float>
191
+ %t379 = make_tuple(%t377, %t378) :: tuple<float, integer>
192
+ %t107 = fold %t106 fn="agg.max" :: float
193
+ %t380 = fold %t379 fn="agg.max" :: float
194
+ loop rates id=L27 in %t357 as el=%t358, idx=%t359
195
+ %t383 = load_field t358["lo"] :: float
196
+ %t368 = call core.sub(%t380, %t383) :: float
197
+ %t394 = load_field t358["hi"] :: float
198
+ %t387 = const -1 :: integer
199
+ %t388 = call core.eq(%t394, %t387) :: boolean
200
+ %t389 = const 100000000000.0 :: float
201
+ %t391 = select %t388, %t389, %t394 :: float
202
+ %t372 = call core.sub(%t391, %t383) :: float
203
+ %t373 = call core.clamp(%t368, %t378, %t372) :: float
204
+ %t403 = load_field t358["rate"] :: float
205
+ %t362 = call core.mul(%t373, %t403) :: float
206
+ %acc356 = acc_add agg.sum(%acc356, %t362) :: float
207
+ end_loop
208
+ %t363 = acc_load %acc356 :: float
209
+ %t108 = call core.div(%t363, %t107) :: float
210
+ yield %t108
120
211
  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
- loop rates id=L7 in %t70 as el=%rates_el_71, idx=%rates_i_72
137
- %t736 = load_field rates_el_71["lo"] :: float
138
- %t749 = load_field rates_el_71["hi"] :: float
139
- %t741 = const -1 :: integer
140
- %t743 = const 100000000000.0 :: float
141
- %t75 = call core.gte(%t73, %t736) :: boolean
142
- %t742 = call core.eq(%t749, %t741) :: boolean
143
- %t745 = select %t742, %t743, %t749 :: float
144
- %t78 = call core.lt(%t76, %t745) :: boolean
145
- %t79 = call core.and(%t75, %t78) :: boolean
146
- yield %t79
147
- end_loop
148
- )
149
- (Declaration fed_marginal_single
150
- %acc_80 = decl_acc :: float
151
- %t81 = load_input "fed" :: array
152
- %t82 = load_field t81["single"] :: any
153
- %t83 = load_field t82["rates"] :: any
154
- loop rates id=L8 in %t83 as el=%rates_el_84, idx=%rates_i_85
155
- %t764 = load_input "income" :: float
156
- %t765 = load_input "fed" :: any
157
- %t769 = const 0 :: integer
158
- %t783 = load_field rates_el_84["lo"] :: float
159
- %t796 = load_field rates_el_84["hi"] :: float
160
- %t788 = const -1 :: integer
161
- %t790 = const 100000000000.0 :: float
162
- %t804 = load_field rates_el_84["rate"] :: float
163
- %t766 = load_field t765["single"] :: any
164
- %t789 = call core.eq(%t796, %t788) :: boolean
165
- %t767 = load_field t766["std"] :: float
166
- %t792 = select %t789, %t790, %t796 :: float
167
- %t768 = call core.sub(%t764, %t767) :: float
168
- %t770 = make_tuple(%t768, %t769) :: tuple<float, integer>
169
- %t771 = fold %t770 fn="agg.max" :: float
170
- %t760 = call core.gte(%t771, %t783) :: boolean
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
- %acc806 = decl_acc :: float
181
- %t807 = load_input "fed" :: array
182
- %t808 = load_field t807["single"] :: any
183
- %t809 = load_field t808["rates"] :: any
184
- loop rates id=L33 in %t809 as el=%t810, idx=%t811
185
- %t827 = load_input "income" :: float
186
- %t828 = load_input "fed" :: any
187
- %t832 = const 0 :: integer
188
- %t838 = load_field t810["lo"] :: float
189
- %t851 = load_field t810["hi"] :: float
190
- %t843 = const -1 :: integer
191
- %t845 = const 100000000000.0 :: float
192
- %t863 = load_field t810["rate"] :: float
193
- %t829 = load_field t828["single"] :: any
194
- %t844 = call core.eq(%t851, %t843) :: boolean
195
- %t830 = load_field t829["std"] :: float
196
- %t847 = select %t844, %t845, %t851 :: float
197
- %t831 = call core.sub(%t827, %t830) :: float
198
- %t825 = call core.sub(%t847, %t838) :: float
199
- %t833 = make_tuple(%t831, %t832) :: tuple<float, integer>
200
- %t834 = fold %t833 fn="agg.max" :: float
201
- %t821 = call core.sub(%t834, %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
212
  )
213
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
214
+ %t109 = const 168600.0 :: float
242
215
  yield %t109
243
216
  )
244
- (Declaration addl_med_rate
245
- %t110 = const 0.009 :: float
217
+ (Declaration ss_rate
218
+ %t110 = const 0.062 :: float
246
219
  yield %t110
247
220
  )
248
- (Declaration addl_med_tax_s
221
+ (Declaration ss_tax
249
222
  %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
- %acc904 = decl_acc :: float
305
- %t905 = load_input "fed" :: array
306
- %t906 = load_field t905["single"] :: any
307
- %t907 = load_field t906["rates"] :: any
308
- loop rates id=L34 in %t907 as el=%t908, idx=%t909
309
- %t925 = load_input "income" :: float
310
- %t926 = load_input "fed" :: any
311
- %t930 = const 0 :: integer
312
- %t936 = load_field t908["lo"] :: float
313
- %t949 = load_field t908["hi"] :: float
314
- %t941 = const -1 :: integer
315
- %t943 = const 100000000000.0 :: float
316
- %t961 = load_field t908["rate"] :: float
317
- %t927 = load_field t926["single"] :: any
318
- %t942 = call core.eq(%t949, %t941) :: boolean
319
- %t928 = load_field t927["std"] :: float
320
- %t945 = select %t942, %t943, %t949 :: float
321
- %t929 = call core.sub(%t925, %t928) :: float
322
- %t923 = call core.sub(%t945, %t936) :: float
323
- %t931 = make_tuple(%t929, %t930) :: tuple<float, integer>
324
- %t932 = fold %t931 fn="agg.max" :: float
325
- %t919 = call core.sub(%t932, %t936) :: float
326
- %t924 = call core.clamp(%t919, %t930, %t923) :: float
327
- %t912 = call core.mul(%t924, %t961) :: float
328
- %acc904 = acc_add agg.sum(%acc904, %t912) :: float
329
- end_loop
330
- %t913 = acc_load %acc904 :: float
331
- %t968 = const 168600.0 :: float
332
- %t969 = make_tuple(%t925, %t968) :: tuple<float>
333
- %t970 = fold %t969 fn="agg.min" :: float
334
- %t971 = const 0.062 :: float
335
- %t972 = call core.mul(%t970, %t971) :: float
336
- %t974 = const 0.0145 :: float
337
- %t975 = call core.mul(%t925, %t974) :: float
338
- %t964 = call core.add(%t972, %t975) :: float
339
- %t977 = const 200000.0 :: float
340
- %t978 = call core.sub(%t925, %t977) :: float
341
- %t980 = make_tuple(%t978, %t930) :: tuple<float, integer>
342
- %t981 = fold %t980 fn="agg.max" :: float
343
- %t982 = const 0.009 :: float
344
- %t983 = call core.mul(%t981, %t982) :: float
345
- %t966 = call core.add(%t964, %t983) :: float
346
- %t132 = call core.add(%t913, %t966) :: float
347
- %t985 = load_input "state_rate" :: float
348
- %t986 = call core.mul(%t925, %t985) :: float
349
- %t134 = call core.add(%t132, %t986) :: float
350
- %t988 = load_input "local_rate" :: float
351
- %t989 = call core.mul(%t925, %t988) :: float
352
- %t136 = call core.add(%t134, %t989) :: float
353
- yield %t136
223
+ %t112 = const 168600.0 :: float
224
+ %t113 = make_tuple(%t111, %t112) :: tuple<float, float>
225
+ %t114 = fold %t113 fn="agg.min" :: float
226
+ %t115 = const 0.062 :: float
227
+ %t116 = call core.mul(%t114, %t115) :: float
228
+ yield %t116
354
229
  )
355
- (Declaration total_eff_single
356
- %acc998 = decl_acc :: float
357
- %t999 = load_input "fed" :: array
358
- %t1000 = load_field t999["single"] :: any
359
- %t1001 = load_field t1000["rates"] :: any
360
- loop rates id=L35 in %t1001 as el=%t1002, idx=%t1003
361
- %t1019 = load_input "income" :: float
362
- %t1020 = load_input "fed" :: any
363
- %t1024 = const 0 :: integer
364
- %t1030 = load_field t1002["lo"] :: float
365
- %t1043 = load_field t1002["hi"] :: float
366
- %t1035 = const -1 :: integer
367
- %t1037 = const 100000000000.0 :: float
368
- %t1055 = load_field t1002["rate"] :: float
369
- %t1021 = load_field t1020["single"] :: any
370
- %t1036 = call core.eq(%t1043, %t1035) :: boolean
371
- %t1022 = load_field t1021["std"] :: float
372
- %t1039 = select %t1036, %t1037, %t1043 :: float
373
- %t1023 = call core.sub(%t1019, %t1022) :: float
374
- %t1017 = call core.sub(%t1039, %t1030) :: float
375
- %t1025 = make_tuple(%t1023, %t1024) :: tuple<float, integer>
376
- %t1026 = fold %t1025 fn="agg.max" :: float
377
- %t1013 = call core.sub(%t1026, %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
- %acc1092 = decl_acc :: float
414
- %t1093 = load_input "fed" :: array
415
- %t1094 = load_field t1093["single"] :: any
416
- %t1095 = load_field t1094["rates"] :: any
417
- loop rates id=L36 in %t1095 as el=%t1096, idx=%t1097
418
- %t1114 = load_input "fed" :: any
419
- %t1118 = const 0 :: integer
420
- %t1124 = load_field t1096["lo"] :: float
421
- %t1137 = load_field t1096["hi"] :: float
422
- %t1129 = const -1 :: integer
423
- %t1131 = const 100000000000.0 :: float
424
- %t1149 = load_field t1096["rate"] :: float
425
- %t1115 = load_field t1114["single"] :: any
426
- %t1130 = call core.eq(%t1137, %t1129) :: boolean
427
- %t1116 = load_field t1115["std"] :: float
428
- %t1133 = select %t1130, %t1131, %t1137 :: float
429
- %t1117 = call core.sub(%t143, %t1116) :: float
430
- %t1111 = call core.sub(%t1133, %t1124) :: float
431
- %t1119 = make_tuple(%t1117, %t1118) :: tuple<float, integer>
432
- %t1120 = fold %t1119 fn="agg.max" :: float
433
- %t1107 = call core.sub(%t1120, %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
- %acc1189 = decl_acc :: float
467
- %t1190 = load_input "fed" :: array
468
- %t1191 = load_field t1190["single"] :: any
469
- %t1192 = load_field t1191["rates"] :: any
470
- loop rates id=L37 in %t1192 as el=%t1193, idx=%t1194
471
- %t1211 = load_input "fed" :: any
472
- %t1215 = const 0 :: integer
473
- %t1221 = load_field t1193["lo"] :: float
474
- %t1234 = load_field t1193["hi"] :: float
475
- %t1226 = const -1 :: integer
476
- %t1228 = const 100000000000.0 :: float
477
- %t1246 = load_field t1193["rate"] :: float
478
- %t1212 = load_field t1211["single"] :: any
479
- %t1227 = call core.eq(%t1234, %t1226) :: boolean
480
- %t1213 = load_field t1212["std"] :: float
481
- %t1230 = select %t1227, %t1228, %t1234 :: float
482
- %t1214 = call core.sub(%t1178, %t1213) :: float
483
- %t1208 = call core.sub(%t1230, %t1221) :: float
484
- %t1216 = make_tuple(%t1214, %t1215) :: tuple<float, integer>
485
- %t1217 = fold %t1216 fn="agg.max" :: float
486
- %t1204 = call core.sub(%t1217, %t1221) :: float
487
- %t1209 = call core.clamp(%t1204, %t1215, %t1208) :: float
488
- %t1197 = call core.mul(%t1209, %t1246) :: float
489
- %acc1189 = acc_add agg.sum(%acc1189, %t1197) :: float
490
- end_loop
491
- %t1198 = acc_load %acc1189 :: float
492
- %t1253 = const 168600.0 :: float
493
- %t1254 = make_tuple(%t1178, %t1253) :: tuple<float>
494
- %t1255 = fold %t1254 fn="agg.min" :: float
495
- %t1256 = const 0.062 :: float
496
- %t1257 = call core.mul(%t1255, %t1256) :: float
497
- %t1259 = const 0.0145 :: float
498
- %t1260 = call core.mul(%t1178, %t1259) :: float
499
- %t1249 = call core.add(%t1257, %t1260) :: float
500
- %t1262 = const 200000.0 :: float
501
- %t1263 = call core.sub(%t1178, %t1262) :: float
502
- %t1265 = make_tuple(%t1263, %t1215) :: tuple<float, integer>
503
- %t1266 = fold %t1265 fn="agg.max" :: float
504
- %t1267 = const 0.009 :: float
505
- %t1268 = call core.mul(%t1266, %t1267) :: float
506
- %t1251 = call core.add(%t1249, %t1268) :: float
507
- %t1183 = call core.add(%t1198, %t1251) :: float
508
- %t1270 = load_input "state_rate" :: float
509
- %t1271 = call core.mul(%t1178, %t1270) :: float
510
- %t1185 = call core.add(%t1183, %t1271) :: float
511
- %t1273 = load_input "local_rate" :: float
512
- %t1274 = call core.mul(%t1178, %t1273) :: float
513
- %t1187 = call core.add(%t1185, %t1274) :: float
514
- %t1180 = call core.sub(%t1178, %t1187) :: float
515
- %t147 = load_input "retirement_contrib" :: float
516
- %t148 = call core.sub(%t1180, %t147) :: float
517
- yield %t148
518
- )
519
- (Declaration taxable_mj
520
- %t149 = load_input "income" :: float
521
- %t150 = load_input "fed" :: any
522
- %t151 = load_field t150["married_joint"] :: any
523
- %t152 = load_field t151["std"] :: float
524
- %t153 = call core.sub(%t149, %t152) :: float
525
- %t154 = const 0 :: integer
526
- %t155 = make_tuple(%t153, %t154) :: tuple<float, integer>
527
- %t156 = fold %t155 fn="agg.max" :: float
528
- yield %t156
230
+ (Declaration med_base_rate
231
+ %t117 = const 0.0145 :: float
232
+ yield %t117
529
233
  )
530
- (Declaration 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
234
+ (Declaration med_tax
235
+ %t118 = load_input "income" :: float
236
+ %t119 = const 0.0145 :: float
237
+ %t120 = call core.mul(%t118, %t119) :: float
238
+ yield %t120
538
239
  )
539
- (Declaration 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
240
+ (Declaration addl_med_rate
241
+ %t121 = const 0.009 :: float
242
+ yield %t121
243
+ )
244
+ (Declaration addl_med_tax
245
+ %t122 = load_input "statuses" :: array
246
+ loop statuses id=L19 in %t122 as el=%statuses_el_123, idx=%statuses_i_124
247
+ %t125 = load_input "income" :: float
248
+ %t126 = load_field statuses_el_123["addl_threshold"] :: float
249
+ %t128 = const 0 :: integer
250
+ %t131 = const 0.009 :: float
251
+ %t127 = call core.sub(%t125, %t126) :: float
252
+ %t129 = make_tuple(%t127, %t128) :: tuple<float, integer>
253
+ %t130 = fold %t129 fn="agg.max" :: float
254
+ %t132 = call core.mul(%t130, %t131) :: float
255
+ yield %t132
256
+ end_loop
257
+ )
258
+ (Declaration fica_tax
259
+ %t133 = load_input "statuses" :: array
260
+ %t404 = load_input "income" :: float
261
+ %t405 = const 168600.0 :: float
262
+ %t406 = make_tuple(%t404, %t405) :: tuple<float, float>
263
+ %t407 = fold %t406 fn="agg.min" :: float
264
+ %t408 = const 0.062 :: float
265
+ %t409 = call core.mul(%t407, %t408) :: float
266
+ %t411 = const 0.0145 :: float
267
+ %t412 = call core.mul(%t404, %t411) :: float
268
+ loop statuses id=L20 in %t133 as el=%statuses_el_134, idx=%statuses_i_135
269
+ %t138 = call core.add(%t409, %t412) :: float
270
+ %t415 = load_field statuses_el_134["addl_threshold"] :: float
271
+ %t417 = const 0 :: integer
272
+ %t420 = const 0.009 :: float
273
+ %t416 = call core.sub(%t404, %t415) :: float
274
+ %t418 = make_tuple(%t416, %t417) :: tuple<float, integer>
275
+ %t419 = fold %t418 fn="agg.max" :: float
276
+ %t421 = call core.mul(%t419, %t420) :: float
277
+ %t140 = call core.add(%t138, %t421) :: float
278
+ yield %t140
279
+ end_loop
280
+ )
281
+ (Declaration fica_eff
282
+ %t428 = load_input "income" :: float
283
+ %t429 = const 168600.0 :: float
284
+ %t430 = make_tuple(%t428, %t429) :: tuple<float, float>
285
+ %t431 = fold %t430 fn="agg.min" :: float
286
+ %t432 = const 0.062 :: float
287
+ %t433 = call core.mul(%t431, %t432) :: float
288
+ %t435 = const 0.0145 :: float
289
+ %t436 = call core.mul(%t428, %t435) :: float
290
+ %t141 = load_input "statuses" :: array
291
+ loop statuses id=L21 in %t141 as el=%statuses_el_142, idx=%statuses_i_143
292
+ %t425 = call core.add(%t433, %t436) :: float
293
+ %t439 = load_field statuses_el_142["addl_threshold"] :: float
294
+ %t441 = const 0 :: integer
295
+ %t444 = const 0.009 :: float
296
+ %t146 = const 1.0 :: float
297
+ %t440 = call core.sub(%t428, %t439) :: float
298
+ %t147 = make_tuple(%t428, %t146) :: tuple<float, float>
299
+ %t442 = make_tuple(%t440, %t441) :: tuple<float, integer>
300
+ %t148 = fold %t147 fn="agg.max" :: float
301
+ %t443 = fold %t442 fn="agg.max" :: float
302
+ %t445 = call core.mul(%t443, %t444) :: float
303
+ %t427 = call core.add(%t425, %t445) :: float
304
+ %t149 = call core.div(%t427, %t148) :: float
305
+ yield %t149
306
+ end_loop
307
+ )
308
+ (Declaration total_tax
309
+ %t508 = load_input "income" :: float
310
+ %t509 = const 168600.0 :: float
311
+ %t510 = make_tuple(%t508, %t509) :: tuple<float, float>
312
+ %t511 = fold %t510 fn="agg.min" :: float
313
+ %t512 = const 0.062 :: float
314
+ %t513 = call core.mul(%t511, %t512) :: float
315
+ %t515 = const 0.0145 :: float
316
+ %t516 = call core.mul(%t508, %t515) :: float
317
+ %t150 = load_input "statuses" :: array
318
+ %t447 = load_input "state_rate" :: float
319
+ %t448 = call core.mul(%t508, %t447) :: float
320
+ %t450 = load_input "local_rate" :: float
321
+ %t451 = call core.mul(%t508, %t450) :: float
322
+ loop statuses id=L22 in %t150 as el=%statuses_el_151, idx=%statuses_i_152
323
+ %t474 = load_field statuses_el_151["std"] :: float
324
+ %t476 = const 0 :: integer
325
+ %acc454 = decl_acc :: float
326
+ %t455 = load_field statuses_el_151["rates"] :: any
327
+ %t505 = call core.add(%t513, %t516) :: float
328
+ %t519 = load_field statuses_el_151["addl_threshold"] :: float
329
+ %t524 = const 0.009 :: float
330
+ %t475 = call core.sub(%t508, %t474) :: float
331
+ %t520 = call core.sub(%t508, %t519) :: float
332
+ %t477 = make_tuple(%t475, %t476) :: tuple<float, integer>
333
+ %t522 = make_tuple(%t520, %t476) :: tuple<float, integer>
334
+ %t478 = fold %t477 fn="agg.max" :: float
335
+ %t523 = fold %t522 fn="agg.max" :: float
336
+ loop rates id=L28 in %t455 as el=%t456, idx=%t457
337
+ %t481 = load_field t456["lo"] :: float
338
+ %t466 = call core.sub(%t478, %t481) :: float
339
+ %t492 = load_field t456["hi"] :: float
340
+ %t485 = const -1 :: integer
341
+ %t486 = call core.eq(%t492, %t485) :: boolean
342
+ %t487 = const 100000000000.0 :: float
343
+ %t489 = select %t486, %t487, %t492 :: float
344
+ %t470 = call core.sub(%t489, %t481) :: float
345
+ %t471 = call core.clamp(%t466, %t476, %t470) :: float
346
+ %t501 = load_field t456["rate"] :: float
347
+ %t460 = call core.mul(%t471, %t501) :: float
348
+ %acc454 = acc_add agg.sum(%acc454, %t460) :: float
349
+ end_loop
350
+ %t525 = call core.mul(%t523, %t524) :: float
351
+ %t461 = acc_load %acc454 :: float
352
+ %t507 = call core.add(%t505, %t525) :: float
353
+ %t155 = call core.add(%t461, %t507) :: float
354
+ %t157 = call core.add(%t155, %t448) :: float
355
+ %t159 = call core.add(%t157, %t451) :: float
356
+ yield %t159
357
+ end_loop
358
+ )
359
+ (Declaration total_eff
360
+ %t534 = load_input "income" :: float
361
+ %t535 = load_input "state_rate" :: float
362
+ %t536 = call core.mul(%t534, %t535) :: float
363
+ %t538 = load_input "local_rate" :: float
364
+ %t539 = call core.mul(%t534, %t538) :: float
365
+ %t597 = const 168600.0 :: float
366
+ %t598 = make_tuple(%t534, %t597) :: tuple<float, float>
367
+ %t599 = fold %t598 fn="agg.min" :: float
368
+ %t600 = const 0.062 :: float
369
+ %t601 = call core.mul(%t599, %t600) :: float
370
+ %t603 = const 0.0145 :: float
371
+ %t604 = call core.mul(%t534, %t603) :: float
372
+ %t160 = load_input "statuses" :: array
373
+ loop statuses id=L23 in %t160 as el=%statuses_el_161, idx=%statuses_i_162
374
+ %t562 = load_field statuses_el_161["std"] :: float
375
+ %t564 = const 0 :: integer
376
+ %acc542 = decl_acc :: float
377
+ %t543 = load_field statuses_el_161["rates"] :: any
378
+ %t593 = call core.add(%t601, %t604) :: float
379
+ %t607 = load_field statuses_el_161["addl_threshold"] :: float
380
+ %t612 = const 0.009 :: float
381
+ %t165 = const 1.0 :: float
382
+ %t563 = call core.sub(%t534, %t562) :: float
383
+ %t608 = call core.sub(%t534, %t607) :: float
384
+ %t166 = make_tuple(%t534, %t165) :: tuple<float, float>
385
+ %t565 = make_tuple(%t563, %t564) :: tuple<float, integer>
386
+ %t610 = make_tuple(%t608, %t564) :: tuple<float, integer>
387
+ %t167 = fold %t166 fn="agg.max" :: float
388
+ %t566 = fold %t565 fn="agg.max" :: float
389
+ %t611 = fold %t610 fn="agg.max" :: float
390
+ loop rates id=L29 in %t543 as el=%t544, idx=%t545
391
+ %t569 = load_field t544["lo"] :: float
392
+ %t554 = call core.sub(%t566, %t569) :: float
393
+ %t580 = load_field t544["hi"] :: float
394
+ %t573 = const -1 :: integer
395
+ %t574 = call core.eq(%t580, %t573) :: boolean
396
+ %t575 = const 100000000000.0 :: float
397
+ %t577 = select %t574, %t575, %t580 :: float
398
+ %t558 = call core.sub(%t577, %t569) :: float
399
+ %t559 = call core.clamp(%t554, %t564, %t558) :: float
400
+ %t589 = load_field t544["rate"] :: float
401
+ %t548 = call core.mul(%t559, %t589) :: float
402
+ %acc542 = acc_add agg.sum(%acc542, %t548) :: float
403
+ end_loop
404
+ %t613 = call core.mul(%t611, %t612) :: float
405
+ %t549 = acc_load %acc542 :: float
406
+ %t595 = call core.add(%t593, %t613) :: float
407
+ %t531 = call core.add(%t549, %t595) :: float
408
+ %t532 = call core.add(%t531, %t536) :: float
409
+ %t533 = call core.add(%t532, %t539) :: float
410
+ %t168 = call core.div(%t533, %t167) :: float
545
411
  yield %t168
546
412
  end_loop
547
413
  )
548
- (Declaration 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
414
+ (Declaration after_tax
415
+ %t622 = load_input "income" :: float
416
+ %t623 = load_input "state_rate" :: float
417
+ %t624 = call core.mul(%t622, %t623) :: float
418
+ %t626 = load_input "local_rate" :: float
419
+ %t627 = call core.mul(%t622, %t626) :: float
420
+ %t685 = const 168600.0 :: float
421
+ %t686 = make_tuple(%t622, %t685) :: tuple<float, float>
422
+ %t687 = fold %t686 fn="agg.min" :: float
423
+ %t688 = const 0.062 :: float
424
+ %t689 = call core.mul(%t687, %t688) :: float
425
+ %t691 = const 0.0145 :: float
426
+ %t692 = call core.mul(%t622, %t691) :: float
427
+ %t169 = load_input "statuses" :: array
428
+ loop statuses id=L24 in %t169 as el=%statuses_el_170, idx=%statuses_i_171
429
+ %t650 = load_field statuses_el_170["std"] :: float
430
+ %t652 = const 0 :: integer
431
+ %acc630 = decl_acc :: float
432
+ %t631 = load_field statuses_el_170["rates"] :: any
433
+ %t681 = call core.add(%t689, %t692) :: float
434
+ %t695 = load_field statuses_el_170["addl_threshold"] :: float
435
+ %t700 = const 0.009 :: float
436
+ %t651 = call core.sub(%t622, %t650) :: float
437
+ %t696 = call core.sub(%t622, %t695) :: float
438
+ %t653 = make_tuple(%t651, %t652) :: tuple<float, integer>
439
+ %t698 = make_tuple(%t696, %t652) :: tuple<float, integer>
440
+ %t654 = fold %t653 fn="agg.max" :: float
441
+ %t699 = fold %t698 fn="agg.max" :: float
442
+ loop rates id=L30 in %t631 as el=%t632, idx=%t633
443
+ %t657 = load_field t632["lo"] :: float
444
+ %t642 = call core.sub(%t654, %t657) :: float
445
+ %t668 = load_field t632["hi"] :: float
446
+ %t661 = const -1 :: integer
447
+ %t662 = call core.eq(%t668, %t661) :: boolean
448
+ %t663 = const 100000000000.0 :: float
449
+ %t665 = select %t662, %t663, %t668 :: float
450
+ %t646 = call core.sub(%t665, %t657) :: float
451
+ %t647 = call core.clamp(%t642, %t652, %t646) :: float
452
+ %t677 = load_field t632["rate"] :: float
453
+ %t636 = call core.mul(%t647, %t677) :: float
454
+ %acc630 = acc_add agg.sum(%acc630, %t636) :: float
455
+ end_loop
456
+ %t701 = call core.mul(%t699, %t700) :: float
457
+ %t637 = acc_load %acc630 :: float
458
+ %t683 = call core.add(%t681, %t701) :: float
459
+ %t619 = call core.add(%t637, %t683) :: float
460
+ %t620 = call core.add(%t619, %t624) :: float
461
+ %t621 = call core.add(%t620, %t627) :: float
462
+ %t174 = call core.sub(%t622, %t621) :: float
554
463
  yield %t174
555
464
  end_loop
556
465
  )
557
- (Declaration 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
- loop rates id=L12 in %t177 as el=%rates_el_178, idx=%rates_i_179
562
- %t1278 = load_field rates_el_178["hi"] :: float
563
- %t181 = const -1 :: integer
564
- %t183 = const 100000000000.0 :: float
565
- %t182 = call core.eq(%t1278, %t181) :: boolean
566
- %t185 = select %t182, %t183, %t1278 :: float
567
- yield %t185
466
+ (Declaration take_home
467
+ %t714 = load_input "income" :: float
468
+ %t715 = load_input "state_rate" :: float
469
+ %t716 = call core.mul(%t714, %t715) :: float
470
+ %t718 = load_input "local_rate" :: float
471
+ %t719 = call core.mul(%t714, %t718) :: float
472
+ %t777 = const 168600.0 :: float
473
+ %t778 = make_tuple(%t714, %t777) :: tuple<float, float>
474
+ %t779 = fold %t778 fn="agg.min" :: float
475
+ %t780 = const 0.062 :: float
476
+ %t781 = call core.mul(%t779, %t780) :: float
477
+ %t783 = const 0.0145 :: float
478
+ %t784 = call core.mul(%t714, %t783) :: float
479
+ %t175 = load_input "statuses" :: array
480
+ loop statuses id=L25 in %t175 as el=%statuses_el_176, idx=%statuses_i_177
481
+ %t742 = load_field statuses_el_176["std"] :: float
482
+ %t744 = const 0 :: integer
483
+ %acc722 = decl_acc :: float
484
+ %t723 = load_field statuses_el_176["rates"] :: any
485
+ %t773 = call core.add(%t781, %t784) :: float
486
+ %t787 = load_field statuses_el_176["addl_threshold"] :: float
487
+ %t792 = const 0.009 :: float
488
+ %t179 = load_input "retirement_contrib" :: float
489
+ %t743 = call core.sub(%t714, %t742) :: float
490
+ %t788 = call core.sub(%t714, %t787) :: float
491
+ %t745 = make_tuple(%t743, %t744) :: tuple<float, integer>
492
+ %t790 = make_tuple(%t788, %t744) :: tuple<float, integer>
493
+ %t746 = fold %t745 fn="agg.max" :: float
494
+ %t791 = fold %t790 fn="agg.max" :: float
495
+ loop rates id=L31 in %t723 as el=%t724, idx=%t725
496
+ %t749 = load_field t724["lo"] :: float
497
+ %t734 = call core.sub(%t746, %t749) :: float
498
+ %t760 = load_field t724["hi"] :: float
499
+ %t753 = const -1 :: integer
500
+ %t754 = call core.eq(%t760, %t753) :: boolean
501
+ %t755 = const 100000000000.0 :: float
502
+ %t757 = select %t754, %t755, %t760 :: float
503
+ %t738 = call core.sub(%t757, %t749) :: float
504
+ %t739 = call core.clamp(%t734, %t744, %t738) :: float
505
+ %t769 = load_field t724["rate"] :: float
506
+ %t728 = call core.mul(%t739, %t769) :: float
507
+ %acc722 = acc_add agg.sum(%acc722, %t728) :: float
508
+ end_loop
509
+ %t793 = call core.mul(%t791, %t792) :: float
510
+ %t729 = acc_load %acc722 :: float
511
+ %t775 = call core.add(%t773, %t793) :: float
512
+ %t711 = call core.add(%t729, %t775) :: float
513
+ %t712 = call core.add(%t711, %t716) :: float
514
+ %t713 = call core.add(%t712, %t719) :: float
515
+ %t705 = call core.sub(%t714, %t713) :: float
516
+ %t180 = call core.sub(%t705, %t179) :: float
517
+ yield %t180
568
518
  end_loop
569
519
  )
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
- loop rates id=L13 in %t188 as el=%rates_el_189, idx=%rates_i_190
583
- %t1294 = load_field rates_el_189["lo"] :: float
584
- %t1307 = load_field rates_el_189["hi"] :: float
585
- %t1299 = const -1 :: integer
586
- %t1301 = const 100000000000.0 :: float
587
- %t193 = call core.sub(%t191, %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
- %acc_199 = decl_acc :: float
597
- %t200 = load_input "fed" :: array
598
- %t201 = load_field t200["married_joint"] :: any
599
- %t202 = load_field t201["rates"] :: any
600
- loop rates id=L14 in %t202 as el=%rates_el_203, idx=%rates_i_204
601
- %t1327 = load_input "income" :: float
602
- %t1328 = load_input "fed" :: any
603
- %t1332 = const 0 :: integer
604
- %t1338 = load_field rates_el_203["lo"] :: float
605
- %t1351 = load_field rates_el_203["hi"] :: float
606
- %t1343 = const -1 :: integer
607
- %t1345 = const 100000000000.0 :: float
608
- %t1363 = load_field rates_el_203["rate"] :: float
609
- %t1329 = load_field t1328["married_joint"] :: any
610
- %t1344 = call core.eq(%t1351, %t1343) :: boolean
611
- %t1330 = load_field t1329["std"] :: float
612
- %t1347 = select %t1344, %t1345, %t1351 :: float
613
- %t1331 = call core.sub(%t1327, %t1330) :: float
614
- %t1325 = call core.sub(%t1347, %t1338) :: float
615
- %t1333 = make_tuple(%t1331, %t1332) :: tuple<float, integer>
616
- %t1334 = fold %t1333 fn="agg.max" :: float
617
- %t1321 = call core.sub(%t1334, %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
- loop rates id=L15 in %t211 as el=%rates_el_212, idx=%rates_i_213
638
- %t1383 = load_field rates_el_212["lo"] :: float
639
- %t1396 = load_field rates_el_212["hi"] :: float
640
- %t1388 = const -1 :: integer
641
- %t1390 = const 100000000000.0 :: float
642
- %t216 = call core.gte(%t214, %t1383) :: boolean
643
- %t1389 = call core.eq(%t1396, %t1388) :: boolean
644
- %t1392 = select %t1389, %t1390, %t1396 :: float
645
- %t219 = call core.lt(%t217, %t1392) :: boolean
646
- %t220 = call core.and(%t216, %t219) :: boolean
647
- yield %t220
648
- end_loop
649
- )
650
- (Declaration fed_marginal_mj
651
- %acc_221 = decl_acc :: float
652
- %t222 = load_input "fed" :: array
653
- %t223 = load_field t222["married_joint"] :: any
654
- %t224 = load_field t223["rates"] :: any
655
- loop rates id=L16 in %t224 as el=%rates_el_225, idx=%rates_i_226
656
- %t1411 = load_input "income" :: float
657
- %t1412 = load_input "fed" :: any
658
- %t1416 = const 0 :: integer
659
- %t1430 = load_field rates_el_225["lo"] :: float
660
- %t1443 = load_field rates_el_225["hi"] :: float
661
- %t1435 = const -1 :: integer
662
- %t1437 = const 100000000000.0 :: float
663
- %t1451 = load_field rates_el_225["rate"] :: float
664
- %t1413 = load_field t1412["married_joint"] :: any
665
- %t1436 = call core.eq(%t1443, %t1435) :: boolean
666
- %t1414 = load_field t1413["std"] :: float
667
- %t1439 = select %t1436, %t1437, %t1443 :: float
668
- %t1415 = call core.sub(%t1411, %t1414) :: float
669
- %t1417 = make_tuple(%t1415, %t1416) :: tuple<float, integer>
670
- %t1418 = fold %t1417 fn="agg.max" :: float
671
- %t1407 = call core.gte(%t1418, %t1430) :: boolean
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
- %acc1453 = decl_acc :: float
682
- %t1454 = load_input "fed" :: array
683
- %t1455 = load_field t1454["married_joint"] :: any
684
- %t1456 = load_field t1455["rates"] :: any
685
- loop rates id=L38 in %t1456 as el=%t1457, idx=%t1458
686
- %t1474 = load_input "income" :: float
687
- %t1475 = load_input "fed" :: any
688
- %t1479 = const 0 :: integer
689
- %t1485 = load_field t1457["lo"] :: float
690
- %t1498 = load_field t1457["hi"] :: float
691
- %t1490 = const -1 :: integer
692
- %t1492 = const 100000000000.0 :: float
693
- %t1510 = load_field t1457["rate"] :: float
694
- %t1476 = load_field t1475["married_joint"] :: any
695
- %t1491 = call core.eq(%t1498, %t1490) :: boolean
696
- %t1477 = load_field t1476["std"] :: float
697
- %t1494 = select %t1491, %t1492, %t1498 :: float
698
- %t1478 = call core.sub(%t1474, %t1477) :: float
699
- %t1472 = call core.sub(%t1494, %t1485) :: float
700
- %t1480 = make_tuple(%t1478, %t1479) :: tuple<float, integer>
701
- %t1481 = fold %t1480 fn="agg.max" :: float
702
- %t1468 = call core.sub(%t1481, %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
- %acc1564 = decl_acc :: float
790
- %t1565 = load_input "fed" :: array
791
- %t1566 = load_field t1565["married_joint"] :: any
792
- %t1567 = load_field t1566["rates"] :: any
793
- loop rates id=L39 in %t1567 as el=%t1568, idx=%t1569
794
- %t1585 = load_input "income" :: float
795
- %t1586 = load_input "fed" :: any
796
- %t1590 = const 0 :: integer
797
- %t1596 = load_field t1568["lo"] :: float
798
- %t1609 = load_field t1568["hi"] :: float
799
- %t1601 = const -1 :: integer
800
- %t1603 = const 100000000000.0 :: float
801
- %t1621 = load_field t1568["rate"] :: float
802
- %t1587 = load_field t1586["married_joint"] :: any
803
- %t1602 = call core.eq(%t1609, %t1601) :: boolean
804
- %t1588 = load_field t1587["std"] :: float
805
- %t1605 = select %t1602, %t1603, %t1609 :: float
806
- %t1589 = call core.sub(%t1585, %t1588) :: float
807
- %t1583 = call core.sub(%t1605, %t1596) :: float
808
- %t1591 = make_tuple(%t1589, %t1590) :: tuple<float, integer>
809
- %t1592 = fold %t1591 fn="agg.max" :: float
810
- %t1579 = call core.sub(%t1592, %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
- %acc1660 = decl_acc :: float
842
- %t1661 = load_input "fed" :: array
843
- %t1662 = load_field t1661["married_joint"] :: any
844
- %t1663 = load_field t1662["rates"] :: any
845
- loop rates id=L40 in %t1663 as el=%t1664, idx=%t1665
846
- %t1681 = load_input "income" :: float
847
- %t1682 = load_input "fed" :: any
848
- %t1686 = const 0 :: integer
849
- %t1692 = load_field t1664["lo"] :: float
850
- %t1705 = load_field t1664["hi"] :: float
851
- %t1697 = const -1 :: integer
852
- %t1699 = const 100000000000.0 :: float
853
- %t1717 = load_field t1664["rate"] :: float
854
- %t1683 = load_field t1682["married_joint"] :: any
855
- %t1698 = call core.eq(%t1705, %t1697) :: boolean
856
- %t1684 = load_field t1683["std"] :: float
857
- %t1701 = select %t1698, %t1699, %t1705 :: float
858
- %t1685 = call core.sub(%t1681, %t1684) :: float
859
- %t1679 = call core.sub(%t1701, %t1692) :: float
860
- %t1687 = make_tuple(%t1685, %t1686) :: tuple<float, integer>
861
- %t1688 = fold %t1687 fn="agg.max" :: float
862
- %t1675 = call core.sub(%t1688, %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
- %acc1756 = decl_acc :: float
899
- %t1757 = load_input "fed" :: array
900
- %t1758 = load_field t1757["married_joint"] :: any
901
- %t1759 = load_field t1758["rates"] :: any
902
- loop rates id=L41 in %t1759 as el=%t1760, idx=%t1761
903
- %t1778 = load_input "fed" :: any
904
- %t1782 = const 0 :: integer
905
- %t1788 = load_field t1760["lo"] :: float
906
- %t1801 = load_field t1760["hi"] :: float
907
- %t1793 = const -1 :: integer
908
- %t1795 = const 100000000000.0 :: float
909
- %t1813 = load_field t1760["rate"] :: float
910
- %t1779 = load_field t1778["married_joint"] :: any
911
- %t1794 = call core.eq(%t1801, %t1793) :: boolean
912
- %t1780 = load_field t1779["std"] :: float
913
- %t1797 = select %t1794, %t1795, %t1801 :: float
914
- %t1781 = call core.sub(%t273, %t1780) :: float
915
- %t1775 = call core.sub(%t1797, %t1788) :: float
916
- %t1783 = make_tuple(%t1781, %t1782) :: tuple<float, integer>
917
- %t1784 = fold %t1783 fn="agg.max" :: float
918
- %t1771 = call core.sub(%t1784, %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
- %acc1855 = decl_acc :: float
952
- %t1856 = load_input "fed" :: array
953
- %t1857 = load_field t1856["married_joint"] :: any
954
- %t1858 = load_field t1857["rates"] :: any
955
- loop rates id=L42 in %t1858 as el=%t1859, idx=%t1860
956
- %t1877 = load_input "fed" :: any
957
- %t1881 = const 0 :: integer
958
- %t1887 = load_field t1859["lo"] :: float
959
- %t1900 = load_field t1859["hi"] :: float
960
- %t1892 = const -1 :: integer
961
- %t1894 = const 100000000000.0 :: float
962
- %t1912 = load_field t1859["rate"] :: float
963
- %t1878 = load_field t1877["married_joint"] :: any
964
- %t1893 = call core.eq(%t1900, %t1892) :: boolean
965
- %t1879 = load_field t1878["std"] :: float
966
- %t1896 = select %t1893, %t1894, %t1900 :: float
967
- %t1880 = call core.sub(%t1844, %t1879) :: float
968
- %t1874 = call core.sub(%t1896, %t1887) :: float
969
- %t1882 = make_tuple(%t1880, %t1881) :: tuple<float, integer>
970
- %t1883 = fold %t1882 fn="agg.max" :: float
971
- %t1870 = call core.sub(%t1883, %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
- loop rates id=L20 in %t307 as el=%rates_el_308, idx=%rates_i_309
1047
- %t1946 = load_field rates_el_308["hi"] :: float
1048
- %t311 = const -1 :: integer
1049
- %t313 = const 100000000000.0 :: 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
- loop rates id=L21 in %t318 as el=%rates_el_319, idx=%rates_i_320
1068
- %t1962 = load_field rates_el_319["lo"] :: float
1069
- %t1975 = load_field rates_el_319["hi"] :: float
1070
- %t1967 = const -1 :: integer
1071
- %t1969 = const 100000000000.0 :: float
1072
- %t323 = call core.sub(%t321, %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
- %acc_329 = decl_acc :: float
1082
- %t330 = load_input "fed" :: array
1083
- %t331 = load_field t330["married_separate"] :: any
1084
- %t332 = load_field t331["rates"] :: any
1085
- loop rates id=L22 in %t332 as el=%rates_el_333, idx=%rates_i_334
1086
- %t1995 = load_input "income" :: float
1087
- %t1996 = load_input "fed" :: any
1088
- %t2000 = const 0 :: integer
1089
- %t2006 = load_field rates_el_333["lo"] :: float
1090
- %t2019 = load_field rates_el_333["hi"] :: float
1091
- %t2011 = const -1 :: integer
1092
- %t2013 = const 100000000000.0 :: float
1093
- %t2031 = load_field rates_el_333["rate"] :: float
1094
- %t1997 = load_field t1996["married_separate"] :: any
1095
- %t2012 = call core.eq(%t2019, %t2011) :: boolean
1096
- %t1998 = load_field t1997["std"] :: float
1097
- %t2015 = select %t2012, %t2013, %t2019 :: float
1098
- %t1999 = call core.sub(%t1995, %t1998) :: float
1099
- %t1993 = call core.sub(%t2015, %t2006) :: float
1100
- %t2001 = make_tuple(%t1999, %t2000) :: tuple<float, integer>
1101
- %t2002 = fold %t2001 fn="agg.max" :: float
1102
- %t1989 = call core.sub(%t2002, %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
- loop rates id=L23 in %t341 as el=%rates_el_342, idx=%rates_i_343
1123
- %t2051 = load_field rates_el_342["lo"] :: float
1124
- %t2064 = load_field rates_el_342["hi"] :: float
1125
- %t2056 = const -1 :: integer
1126
- %t2058 = const 100000000000.0 :: float
1127
- %t346 = call core.gte(%t344, %t2051) :: boolean
1128
- %t2057 = call core.eq(%t2064, %t2056) :: boolean
1129
- %t2060 = select %t2057, %t2058, %t2064 :: float
1130
- %t349 = call core.lt(%t347, %t2060) :: boolean
1131
- %t350 = call core.and(%t346, %t349) :: boolean
1132
- yield %t350
1133
- end_loop
1134
- )
1135
- (Declaration fed_marginal_ms
1136
- %acc_351 = decl_acc :: float
1137
- %t352 = load_input "fed" :: array
1138
- %t353 = load_field t352["married_separate"] :: any
1139
- %t354 = load_field t353["rates"] :: any
1140
- loop rates id=L24 in %t354 as el=%rates_el_355, idx=%rates_i_356
1141
- %t2079 = load_input "income" :: float
1142
- %t2080 = load_input "fed" :: any
1143
- %t2084 = const 0 :: integer
1144
- %t2098 = load_field rates_el_355["lo"] :: float
1145
- %t2111 = load_field rates_el_355["hi"] :: float
1146
- %t2103 = const -1 :: integer
1147
- %t2105 = const 100000000000.0 :: float
1148
- %t2119 = load_field rates_el_355["rate"] :: float
1149
- %t2081 = load_field t2080["married_separate"] :: any
1150
- %t2104 = call core.eq(%t2111, %t2103) :: boolean
1151
- %t2082 = load_field t2081["std"] :: float
1152
- %t2107 = select %t2104, %t2105, %t2111 :: float
1153
- %t2083 = call core.sub(%t2079, %t2082) :: float
1154
- %t2085 = make_tuple(%t2083, %t2084) :: tuple<float, integer>
1155
- %t2086 = fold %t2085 fn="agg.max" :: float
1156
- %t2075 = call core.gte(%t2086, %t2098) :: boolean
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
- %acc2121 = decl_acc :: float
1167
- %t2122 = load_input "fed" :: array
1168
- %t2123 = load_field t2122["married_separate"] :: any
1169
- %t2124 = load_field t2123["rates"] :: any
1170
- loop rates id=L43 in %t2124 as el=%t2125, idx=%t2126
1171
- %t2142 = load_input "income" :: float
1172
- %t2143 = load_input "fed" :: any
1173
- %t2147 = const 0 :: integer
1174
- %t2153 = load_field t2125["lo"] :: float
1175
- %t2166 = load_field t2125["hi"] :: float
1176
- %t2158 = const -1 :: integer
1177
- %t2160 = const 100000000000.0 :: float
1178
- %t2178 = load_field t2125["rate"] :: float
1179
- %t2144 = load_field t2143["married_separate"] :: any
1180
- %t2159 = call core.eq(%t2166, %t2158) :: boolean
1181
- %t2145 = load_field t2144["std"] :: float
1182
- %t2162 = select %t2159, %t2160, %t2166 :: float
1183
- %t2146 = call core.sub(%t2142, %t2145) :: float
1184
- %t2140 = call core.sub(%t2162, %t2153) :: float
1185
- %t2148 = make_tuple(%t2146, %t2147) :: tuple<float, integer>
1186
- %t2149 = fold %t2148 fn="agg.max" :: float
1187
- %t2136 = call core.sub(%t2149, %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
- %acc2232 = decl_acc :: float
1275
- %t2233 = load_input "fed" :: array
1276
- %t2234 = load_field t2233["married_separate"] :: any
1277
- %t2235 = load_field t2234["rates"] :: any
1278
- loop rates id=L44 in %t2235 as el=%t2236, idx=%t2237
1279
- %t2253 = load_input "income" :: float
1280
- %t2254 = load_input "fed" :: any
1281
- %t2258 = const 0 :: integer
1282
- %t2264 = load_field t2236["lo"] :: float
1283
- %t2277 = load_field t2236["hi"] :: float
1284
- %t2269 = const -1 :: integer
1285
- %t2271 = const 100000000000.0 :: float
1286
- %t2289 = load_field t2236["rate"] :: float
1287
- %t2255 = load_field t2254["married_separate"] :: any
1288
- %t2270 = call core.eq(%t2277, %t2269) :: boolean
1289
- %t2256 = load_field t2255["std"] :: float
1290
- %t2273 = select %t2270, %t2271, %t2277 :: float
1291
- %t2257 = call core.sub(%t2253, %t2256) :: float
1292
- %t2251 = call core.sub(%t2273, %t2264) :: float
1293
- %t2259 = make_tuple(%t2257, %t2258) :: tuple<float, integer>
1294
- %t2260 = fold %t2259 fn="agg.max" :: float
1295
- %t2247 = call core.sub(%t2260, %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
- %acc2328 = decl_acc :: float
1327
- %t2329 = load_input "fed" :: array
1328
- %t2330 = load_field t2329["married_separate"] :: any
1329
- %t2331 = load_field t2330["rates"] :: any
1330
- loop rates id=L45 in %t2331 as el=%t2332, idx=%t2333
1331
- %t2349 = load_input "income" :: float
1332
- %t2350 = load_input "fed" :: any
1333
- %t2354 = const 0 :: integer
1334
- %t2360 = load_field t2332["lo"] :: float
1335
- %t2373 = load_field t2332["hi"] :: float
1336
- %t2365 = const -1 :: integer
1337
- %t2367 = const 100000000000.0 :: float
1338
- %t2385 = load_field t2332["rate"] :: float
1339
- %t2351 = load_field t2350["married_separate"] :: any
1340
- %t2366 = call core.eq(%t2373, %t2365) :: boolean
1341
- %t2352 = load_field t2351["std"] :: float
1342
- %t2369 = select %t2366, %t2367, %t2373 :: float
1343
- %t2353 = call core.sub(%t2349, %t2352) :: float
1344
- %t2347 = call core.sub(%t2369, %t2360) :: float
1345
- %t2355 = make_tuple(%t2353, %t2354) :: tuple<float, integer>
1346
- %t2356 = fold %t2355 fn="agg.max" :: float
1347
- %t2343 = call core.sub(%t2356, %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
- %acc2424 = decl_acc :: float
1384
- %t2425 = load_input "fed" :: array
1385
- %t2426 = load_field t2425["married_separate"] :: any
1386
- %t2427 = load_field t2426["rates"] :: any
1387
- loop rates id=L46 in %t2427 as el=%t2428, idx=%t2429
1388
- %t2446 = load_input "fed" :: any
1389
- %t2450 = const 0 :: integer
1390
- %t2456 = load_field t2428["lo"] :: float
1391
- %t2469 = load_field t2428["hi"] :: float
1392
- %t2461 = const -1 :: integer
1393
- %t2463 = const 100000000000.0 :: float
1394
- %t2481 = load_field t2428["rate"] :: float
1395
- %t2447 = load_field t2446["married_separate"] :: any
1396
- %t2462 = call core.eq(%t2469, %t2461) :: boolean
1397
- %t2448 = load_field t2447["std"] :: float
1398
- %t2465 = select %t2462, %t2463, %t2469 :: float
1399
- %t2449 = call core.sub(%t403, %t2448) :: float
1400
- %t2443 = call core.sub(%t2465, %t2456) :: float
1401
- %t2451 = make_tuple(%t2449, %t2450) :: tuple<float, integer>
1402
- %t2452 = fold %t2451 fn="agg.max" :: float
1403
- %t2439 = call core.sub(%t2452, %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
- %acc2523 = decl_acc :: float
1437
- %t2524 = load_input "fed" :: array
1438
- %t2525 = load_field t2524["married_separate"] :: any
1439
- %t2526 = load_field t2525["rates"] :: any
1440
- loop rates id=L47 in %t2526 as el=%t2527, idx=%t2528
1441
- %t2545 = load_input "fed" :: any
1442
- %t2549 = const 0 :: integer
1443
- %t2555 = load_field t2527["lo"] :: float
1444
- %t2568 = load_field t2527["hi"] :: float
1445
- %t2560 = const -1 :: integer
1446
- %t2562 = const 100000000000.0 :: float
1447
- %t2580 = load_field t2527["rate"] :: float
1448
- %t2546 = load_field t2545["married_separate"] :: any
1449
- %t2561 = call core.eq(%t2568, %t2560) :: boolean
1450
- %t2547 = load_field t2546["std"] :: float
1451
- %t2564 = select %t2561, %t2562, %t2568 :: float
1452
- %t2548 = call core.sub(%t2512, %t2547) :: float
1453
- %t2542 = call core.sub(%t2564, %t2555) :: float
1454
- %t2550 = make_tuple(%t2548, %t2549) :: tuple<float, integer>
1455
- %t2551 = fold %t2550 fn="agg.max" :: float
1456
- %t2538 = call core.sub(%t2551, %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
- loop rates id=L28 in %t437 as el=%rates_el_438, idx=%rates_i_439
1532
- %t2614 = load_field rates_el_438["hi"] :: float
1533
- %t441 = const -1 :: integer
1534
- %t443 = const 100000000000.0 :: 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
- loop rates id=L29 in %t448 as el=%rates_el_449, idx=%rates_i_450
1553
- %t2630 = load_field rates_el_449["lo"] :: float
1554
- %t2643 = load_field rates_el_449["hi"] :: float
1555
- %t2635 = const -1 :: integer
1556
- %t2637 = const 100000000000.0 :: float
1557
- %t453 = call core.sub(%t451, %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
- %acc_459 = decl_acc :: float
1567
- %t460 = load_input "fed" :: array
1568
- %t461 = load_field t460["head_of_household"] :: any
1569
- %t462 = load_field t461["rates"] :: any
1570
- loop rates id=L30 in %t462 as el=%rates_el_463, idx=%rates_i_464
1571
- %t2663 = load_input "income" :: float
1572
- %t2664 = load_input "fed" :: any
1573
- %t2668 = const 0 :: integer
1574
- %t2674 = load_field rates_el_463["lo"] :: float
1575
- %t2687 = load_field rates_el_463["hi"] :: float
1576
- %t2679 = const -1 :: integer
1577
- %t2681 = const 100000000000.0 :: float
1578
- %t2699 = load_field rates_el_463["rate"] :: float
1579
- %t2665 = load_field t2664["head_of_household"] :: any
1580
- %t2680 = call core.eq(%t2687, %t2679) :: boolean
1581
- %t2666 = load_field t2665["std"] :: float
1582
- %t2683 = select %t2680, %t2681, %t2687 :: float
1583
- %t2667 = call core.sub(%t2663, %t2666) :: float
1584
- %t2661 = call core.sub(%t2683, %t2674) :: float
1585
- %t2669 = make_tuple(%t2667, %t2668) :: tuple<float, integer>
1586
- %t2670 = fold %t2669 fn="agg.max" :: float
1587
- %t2657 = call core.sub(%t2670, %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
- loop rates id=L31 in %t471 as el=%rates_el_472, idx=%rates_i_473
1608
- %t2719 = load_field rates_el_472["lo"] :: float
1609
- %t2732 = load_field rates_el_472["hi"] :: float
1610
- %t2724 = const -1 :: integer
1611
- %t2726 = const 100000000000.0 :: float
1612
- %t476 = call core.gte(%t474, %t2719) :: boolean
1613
- %t2725 = call core.eq(%t2732, %t2724) :: boolean
1614
- %t2728 = select %t2725, %t2726, %t2732 :: float
1615
- %t479 = call core.lt(%t477, %t2728) :: boolean
1616
- %t480 = call core.and(%t476, %t479) :: boolean
1617
- yield %t480
1618
- end_loop
1619
- )
1620
- (Declaration fed_marginal_hoh
1621
- %acc_481 = decl_acc :: float
1622
- %t482 = load_input "fed" :: array
1623
- %t483 = load_field t482["head_of_household"] :: any
1624
- %t484 = load_field t483["rates"] :: any
1625
- loop rates id=L32 in %t484 as el=%rates_el_485, idx=%rates_i_486
1626
- %t2747 = load_input "income" :: float
1627
- %t2748 = load_input "fed" :: any
1628
- %t2752 = const 0 :: integer
1629
- %t2766 = load_field rates_el_485["lo"] :: float
1630
- %t2779 = load_field rates_el_485["hi"] :: float
1631
- %t2771 = const -1 :: integer
1632
- %t2773 = const 100000000000.0 :: float
1633
- %t2787 = load_field rates_el_485["rate"] :: float
1634
- %t2749 = load_field t2748["head_of_household"] :: any
1635
- %t2772 = call core.eq(%t2779, %t2771) :: boolean
1636
- %t2750 = load_field t2749["std"] :: float
1637
- %t2775 = select %t2772, %t2773, %t2779 :: float
1638
- %t2751 = call core.sub(%t2747, %t2750) :: float
1639
- %t2753 = make_tuple(%t2751, %t2752) :: tuple<float, integer>
1640
- %t2754 = fold %t2753 fn="agg.max" :: float
1641
- %t2743 = call core.gte(%t2754, %t2766) :: boolean
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
- %acc2789 = decl_acc :: float
1652
- %t2790 = load_input "fed" :: array
1653
- %t2791 = load_field t2790["head_of_household"] :: any
1654
- %t2792 = load_field t2791["rates"] :: any
1655
- loop rates id=L48 in %t2792 as el=%t2793, idx=%t2794
1656
- %t2810 = load_input "income" :: float
1657
- %t2811 = load_input "fed" :: any
1658
- %t2815 = const 0 :: integer
1659
- %t2821 = load_field t2793["lo"] :: float
1660
- %t2834 = load_field t2793["hi"] :: float
1661
- %t2826 = const -1 :: integer
1662
- %t2828 = const 100000000000.0 :: float
1663
- %t2846 = load_field t2793["rate"] :: float
1664
- %t2812 = load_field t2811["head_of_household"] :: any
1665
- %t2827 = call core.eq(%t2834, %t2826) :: boolean
1666
- %t2813 = load_field t2812["std"] :: float
1667
- %t2830 = select %t2827, %t2828, %t2834 :: float
1668
- %t2814 = call core.sub(%t2810, %t2813) :: float
1669
- %t2808 = call core.sub(%t2830, %t2821) :: float
1670
- %t2816 = make_tuple(%t2814, %t2815) :: tuple<float, integer>
1671
- %t2817 = fold %t2816 fn="agg.max" :: float
1672
- %t2804 = call core.sub(%t2817, %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
- %acc2900 = decl_acc :: float
1760
- %t2901 = load_input "fed" :: array
1761
- %t2902 = load_field t2901["head_of_household"] :: any
1762
- %t2903 = load_field t2902["rates"] :: any
1763
- loop rates id=L49 in %t2903 as el=%t2904, idx=%t2905
1764
- %t2921 = load_input "income" :: float
1765
- %t2922 = load_input "fed" :: any
1766
- %t2926 = const 0 :: integer
1767
- %t2932 = load_field t2904["lo"] :: float
1768
- %t2945 = load_field t2904["hi"] :: float
1769
- %t2937 = const -1 :: integer
1770
- %t2939 = const 100000000000.0 :: float
1771
- %t2957 = load_field t2904["rate"] :: float
1772
- %t2923 = load_field t2922["head_of_household"] :: any
1773
- %t2938 = call core.eq(%t2945, %t2937) :: boolean
1774
- %t2924 = load_field t2923["std"] :: float
1775
- %t2941 = select %t2938, %t2939, %t2945 :: float
1776
- %t2925 = call core.sub(%t2921, %t2924) :: float
1777
- %t2919 = call core.sub(%t2941, %t2932) :: float
1778
- %t2927 = make_tuple(%t2925, %t2926) :: tuple<float, integer>
1779
- %t2928 = fold %t2927 fn="agg.max" :: float
1780
- %t2915 = call core.sub(%t2928, %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
- %acc2996 = decl_acc :: float
1812
- %t2997 = load_input "fed" :: array
1813
- %t2998 = load_field t2997["head_of_household"] :: any
1814
- %t2999 = load_field t2998["rates"] :: any
1815
- loop rates id=L50 in %t2999 as el=%t3000, idx=%t3001
1816
- %t3017 = load_input "income" :: float
1817
- %t3018 = load_input "fed" :: any
1818
- %t3022 = const 0 :: integer
1819
- %t3028 = load_field t3000["lo"] :: float
1820
- %t3041 = load_field t3000["hi"] :: float
1821
- %t3033 = const -1 :: integer
1822
- %t3035 = const 100000000000.0 :: float
1823
- %t3053 = load_field t3000["rate"] :: float
1824
- %t3019 = load_field t3018["head_of_household"] :: any
1825
- %t3034 = call core.eq(%t3041, %t3033) :: boolean
1826
- %t3020 = load_field t3019["std"] :: float
1827
- %t3037 = select %t3034, %t3035, %t3041 :: float
1828
- %t3021 = call core.sub(%t3017, %t3020) :: float
1829
- %t3015 = call core.sub(%t3037, %t3028) :: float
1830
- %t3023 = make_tuple(%t3021, %t3022) :: tuple<float, integer>
1831
- %t3024 = fold %t3023 fn="agg.max" :: float
1832
- %t3011 = call core.sub(%t3024, %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
- %acc3092 = decl_acc :: float
1869
- %t3093 = load_input "fed" :: array
1870
- %t3094 = load_field t3093["head_of_household"] :: any
1871
- %t3095 = load_field t3094["rates"] :: any
1872
- loop rates id=L51 in %t3095 as el=%t3096, idx=%t3097
1873
- %t3114 = load_input "fed" :: any
1874
- %t3118 = const 0 :: integer
1875
- %t3124 = load_field t3096["lo"] :: float
1876
- %t3137 = load_field t3096["hi"] :: float
1877
- %t3129 = const -1 :: integer
1878
- %t3131 = const 100000000000.0 :: float
1879
- %t3149 = load_field t3096["rate"] :: float
1880
- %t3115 = load_field t3114["head_of_household"] :: any
1881
- %t3130 = call core.eq(%t3137, %t3129) :: boolean
1882
- %t3116 = load_field t3115["std"] :: float
1883
- %t3133 = select %t3130, %t3131, %t3137 :: float
1884
- %t3117 = call core.sub(%t533, %t3116) :: float
1885
- %t3111 = call core.sub(%t3133, %t3124) :: float
1886
- %t3119 = make_tuple(%t3117, %t3118) :: tuple<float, integer>
1887
- %t3120 = fold %t3119 fn="agg.max" :: float
1888
- %t3107 = call core.sub(%t3120, %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
- %acc3191 = decl_acc :: float
1922
- %t3192 = load_input "fed" :: array
1923
- %t3193 = load_field t3192["head_of_household"] :: any
1924
- %t3194 = load_field t3193["rates"] :: any
1925
- loop rates id=L52 in %t3194 as el=%t3195, idx=%t3196
1926
- %t3213 = load_input "fed" :: any
1927
- %t3217 = const 0 :: integer
1928
- %t3223 = load_field t3195["lo"] :: float
1929
- %t3236 = load_field t3195["hi"] :: float
1930
- %t3228 = const -1 :: integer
1931
- %t3230 = const 100000000000.0 :: float
1932
- %t3248 = load_field t3195["rate"] :: float
1933
- %t3214 = load_field t3213["head_of_household"] :: any
1934
- %t3229 = call core.eq(%t3236, %t3228) :: boolean
1935
- %t3215 = load_field t3214["std"] :: float
1936
- %t3232 = select %t3229, %t3230, %t3236 :: float
1937
- %t3216 = call core.sub(%t3180, %t3215) :: float
1938
- %t3210 = call core.sub(%t3232, %t3223) :: float
1939
- %t3218 = make_tuple(%t3216, %t3217) :: tuple<float, integer>
1940
- %t3219 = fold %t3218 fn="agg.max" :: float
1941
- %t3206 = call core.sub(%t3219, %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
520
  (Declaration summary
1975
- %acc3280 = decl_acc :: float
1976
- %t3281 = load_input "fed" :: array
1977
- %t3282 = load_field t3281["single"] :: any
1978
- %t3283 = load_field t3282["rates"] :: any
1979
- %acc3349 = decl_acc :: float
1980
- loop rates id=L53 in %t3283 as el=%t3284, idx=%t3285
1981
- %t3301 = load_input "income" :: float
1982
- %t3302 = load_input "fed" :: any
1983
- %t3306 = const 0 :: integer
1984
- %t3320 = load_field t3284["lo"] :: float
1985
- %t3333 = load_field t3284["hi"] :: float
1986
- %t3325 = const -1 :: integer
1987
- %t3327 = const 100000000000.0 :: float
1988
- %t3341 = load_field t3284["rate"] :: float
1989
- %t3303 = load_field t3302["single"] :: any
1990
- %t3326 = call core.eq(%t3333, %t3325) :: boolean
1991
- %t3304 = load_field t3303["std"] :: float
1992
- %t3329 = select %t3326, %t3327, %t3333 :: float
1993
- %t3305 = call core.sub(%t3301, %t3304) :: float
1994
- %t3307 = make_tuple(%t3305, %t3306) :: tuple<float, integer>
1995
- %t3308 = fold %t3307 fn="agg.max" :: float
1996
- %t3297 = call core.gte(%t3308, %t3320) :: boolean
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
- %t3381 = load_field t3284["lo"] :: float
2002
- %t3394 = load_field t3284["hi"] :: float
2003
- %t3406 = load_field t3284["rate"] :: float
2004
- %t3364 = call core.sub(%t3308, %t3381) :: float
2005
- %t3387 = call core.eq(%t3394, %t3325) :: boolean
2006
- %t3390 = select %t3387, %t3327, %t3394 :: float
2007
- %t3368 = call core.sub(%t3390, %t3381) :: float
2008
- %t3369 = call core.clamp(%t3364, %t3306, %t3368) :: float
2009
- %t3357 = call core.mul(%t3369, %t3406) :: float
2010
- %acc3349 = acc_add agg.sum(%acc3349, %t3357) :: float
2011
- end_loop
2012
- %t3290 = acc_load %acc3280 :: float
2013
- %t3358 = acc_load %acc3349 :: float
2014
- %t3344 = const 1.0 :: float
2015
- %t3345 = make_tuple(%t3301, %t3344) :: tuple<float>
2016
- %t3346 = fold %t3345 fn="agg.max" :: float
2017
- %t3347 = call core.div(%t3358, %t3346) :: float
2018
- %acc3408 = decl_acc :: float
2019
- loop rates id=L55 in %t3283 as el=%t3412, idx=%t3413
2020
- %t3440 = load_field t3412["lo"] :: float
2021
- %t3453 = load_field t3412["hi"] :: float
2022
- %t3465 = load_field t3412["rate"] :: float
2023
- %t3423 = call core.sub(%t3308, %t3440) :: float
2024
- %t3446 = call core.eq(%t3453, %t3325) :: boolean
2025
- %t3449 = select %t3446, %t3327, %t3453 :: float
2026
- %t3427 = call core.sub(%t3449, %t3440) :: float
2027
- %t3428 = call core.clamp(%t3423, %t3306, %t3427) :: float
2028
- %t3416 = call core.mul(%t3428, %t3465) :: float
2029
- %acc3408 = acc_add agg.sum(%acc3408, %t3416) :: float
2030
- end_loop
2031
- %t3417 = acc_load %acc3408 :: float
2032
- %t542 = make_object{marginal: %t3290, effective: %t3347, tax: %t3417} :: object
2033
- %t3478 = const 168600.0 :: float
2034
- %t3479 = make_tuple(%t3301, %t3478) :: tuple<float>
2035
- %t3480 = fold %t3479 fn="agg.min" :: float
2036
- %t3481 = const 0.062 :: float
2037
- %t3482 = call core.mul(%t3480, %t3481) :: float
2038
- %t3484 = const 0.0145 :: float
2039
- %t3485 = call core.mul(%t3301, %t3484) :: float
2040
- %t3474 = call core.add(%t3482, %t3485) :: float
2041
- %t3487 = const 200000.0 :: float
2042
- %t3488 = call core.sub(%t3301, %t3487) :: float
2043
- %t3490 = make_tuple(%t3488, %t3306) :: tuple<float, integer>
2044
- %t3491 = fold %t3490 fn="agg.max" :: float
2045
- %t3492 = const 0.009 :: float
2046
- %t3493 = call core.mul(%t3491, %t3492) :: float
2047
- %t3476 = call core.add(%t3474, %t3493) :: float
2048
- %t3471 = call core.div(%t3476, %t3346) :: float
2049
- %t545 = make_object{effective: %t3471, tax: %t3476} :: object
2050
- %t546 = load_input "state_rate" :: float
2051
- %t3518 = call core.mul(%t3301, %t546) :: float
2052
- %t549 = make_object{marginal: %t546, effective: %t546, tax: %t3518} :: object
2053
- %t550 = load_input "local_rate" :: float
2054
- %t3521 = call core.mul(%t3301, %t550) :: float
2055
- %t553 = make_object{marginal: %t550, effective: %t550, tax: %t3521} :: object
2056
- %acc3536 = decl_acc :: float
2057
- loop rates id=L56 in %t3283 as el=%t3540, idx=%t3541
2058
- %t3568 = load_field t3540["lo"] :: float
2059
- %t3581 = load_field t3540["hi"] :: float
2060
- %t3593 = load_field t3540["rate"] :: float
2061
- %t3551 = call core.sub(%t3308, %t3568) :: float
2062
- %t3574 = call core.eq(%t3581, %t3325) :: boolean
2063
- %t3577 = select %t3574, %t3327, %t3581 :: float
2064
- %t3555 = call core.sub(%t3577, %t3568) :: float
2065
- %t3556 = call core.clamp(%t3551, %t3306, %t3555) :: float
2066
- %t3544 = call core.mul(%t3556, %t3593) :: float
2067
- %acc3536 = acc_add agg.sum(%acc3536, %t3544) :: float
2068
- end_loop
2069
- %t3545 = acc_load %acc3536 :: float
2070
- %t3530 = call core.add(%t3545, %t3476) :: float
2071
- %t3532 = call core.add(%t3530, %t3518) :: float
2072
- %t3534 = call core.add(%t3532, %t3521) :: float
2073
- %t3527 = call core.div(%t3534, %t3346) :: float
2074
- %acc3630 = decl_acc :: float
2075
- loop rates id=L57 in %t3283 as el=%t3634, idx=%t3635
2076
- %t3662 = load_field t3634["lo"] :: float
2077
- %t3675 = load_field t3634["hi"] :: float
2078
- %t3687 = load_field t3634["rate"] :: float
2079
- %t3645 = call core.sub(%t3308, %t3662) :: float
2080
- %t3668 = call core.eq(%t3675, %t3325) :: boolean
2081
- %t3671 = select %t3668, %t3327, %t3675 :: float
2082
- %t3649 = call core.sub(%t3671, %t3662) :: float
2083
- %t3650 = call core.clamp(%t3645, %t3306, %t3649) :: float
2084
- %t3638 = call core.mul(%t3650, %t3687) :: float
2085
- %acc3630 = acc_add agg.sum(%acc3630, %t3638) :: float
2086
- end_loop
2087
- %t3639 = acc_load %acc3630 :: float
2088
- %t3624 = call core.add(%t3639, %t3476) :: float
2089
- %t3626 = call core.add(%t3624, %t3518) :: float
2090
- %t3628 = call core.add(%t3626, %t3521) :: float
2091
- %t556 = make_object{effective: %t3527, tax: %t3628} :: object
2092
- %acc3727 = decl_acc :: float
2093
- loop rates id=L58 in %t3283 as el=%t3731, idx=%t3732
2094
- %t3759 = load_field t3731["lo"] :: float
2095
- %t3772 = load_field t3731["hi"] :: float
2096
- %t3784 = load_field t3731["rate"] :: float
2097
- %t3742 = call core.sub(%t3308, %t3759) :: float
2098
- %t3765 = call core.eq(%t3772, %t3325) :: boolean
2099
- %t3768 = select %t3765, %t3327, %t3772 :: float
2100
- %t3746 = call core.sub(%t3768, %t3759) :: float
2101
- %t3747 = call core.clamp(%t3742, %t3306, %t3746) :: float
2102
- %t3735 = call core.mul(%t3747, %t3784) :: float
2103
- %acc3727 = acc_add agg.sum(%acc3727, %t3735) :: float
2104
- end_loop
2105
- %t3736 = acc_load %acc3727 :: float
2106
- %t3721 = call core.add(%t3736, %t3476) :: float
2107
- %t3723 = call core.add(%t3721, %t3518) :: float
2108
- %t3725 = call core.add(%t3723, %t3521) :: float
2109
- %t3718 = call core.sub(%t3301, %t3725) :: float
2110
- %t558 = load_input "retirement_contrib" :: float
2111
- %acc3827 = decl_acc :: float
2112
- loop rates id=L59 in %t3283 as el=%t3831, idx=%t3832
2113
- %t3859 = load_field t3831["lo"] :: float
2114
- %t3872 = load_field t3831["hi"] :: float
2115
- %t3884 = load_field t3831["rate"] :: float
2116
- %t3842 = call core.sub(%t3308, %t3859) :: float
2117
- %t3865 = call core.eq(%t3872, %t3325) :: boolean
2118
- %t3868 = select %t3865, %t3327, %t3872 :: float
2119
- %t3846 = call core.sub(%t3868, %t3859) :: float
2120
- %t3847 = call core.clamp(%t3842, %t3306, %t3846) :: float
2121
- %t3835 = call core.mul(%t3847, %t3884) :: float
2122
- %acc3827 = acc_add agg.sum(%acc3827, %t3835) :: float
2123
- end_loop
2124
- %t3836 = acc_load %acc3827 :: float
2125
- %t3821 = call core.add(%t3836, %t3476) :: float
2126
- %t3823 = call core.add(%t3821, %t3518) :: float
2127
- %t3825 = call core.add(%t3823, %t3521) :: float
2128
- %t3818 = call core.sub(%t3301, %t3825) :: float
2129
- %t3815 = call core.sub(%t3818, %t558) :: float
2130
- %t560 = make_object{federal: %t542, fica: %t545, state: %t549, local: %t553, total: %t556, after_tax: %t3718, retirement_contrib: %t558, take_home: %t3815} :: object
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
- %t3937 = load_field t3302["married_joint"] :: any
2137
- %t3954 = load_field t3918["lo"] :: float
2138
- %t3967 = load_field t3918["hi"] :: float
2139
- %t3975 = load_field t3918["rate"] :: float
2140
- %t3938 = load_field t3937["std"] :: float
2141
- %t3960 = call core.eq(%t3967, %t3325) :: boolean
2142
- %t3939 = call core.sub(%t3301, %t3938) :: float
2143
- %t3963 = select %t3960, %t3327, %t3967 :: float
2144
- %t3941 = make_tuple(%t3939, %t3306) :: tuple<float, integer>
2145
- %t3942 = fold %t3941 fn="agg.max" :: float
2146
- %t3931 = call core.gte(%t3942, %t3954) :: boolean
2147
- %t3933 = call core.lt(%t3942, %t3963) :: boolean
2148
- %t3934 = call core.and(%t3931, %t3933) :: boolean
2149
- %t3923 = select %t3934, %t3975, %t3306 :: float
2150
- %acc3914 = acc_add agg.sum(%acc3914, %t3923) :: float
2151
- %t4015 = load_field t3918["lo"] :: float
2152
- %t4028 = load_field t3918["hi"] :: float
2153
- %t4040 = load_field t3918["rate"] :: float
2154
- %t3998 = call core.sub(%t3942, %t4015) :: float
2155
- %t4021 = call core.eq(%t4028, %t3325) :: boolean
2156
- %t4024 = select %t4021, %t3327, %t4028 :: float
2157
- %t4002 = call core.sub(%t4024, %t4015) :: float
2158
- %t4003 = call core.clamp(%t3998, %t3306, %t4002) :: float
2159
- %t3991 = call core.mul(%t4003, %t4040) :: float
2160
- %acc3983 = acc_add agg.sum(%acc3983, %t3991) :: float
2161
- end_loop
2162
- %t3924 = acc_load %acc3914 :: float
2163
- %t3992 = acc_load %acc3983 :: float
2164
- %t3981 = call core.div(%t3992, %t3346) :: float
2165
- %acc4042 = decl_acc :: float
2166
- loop rates id=L62 in %t3917 as el=%t4046, idx=%t4047
2167
- %t4074 = load_field t4046["lo"] :: float
2168
- %t4087 = load_field t4046["hi"] :: float
2169
- %t4099 = load_field t4046["rate"] :: float
2170
- %t4057 = call core.sub(%t3942, %t4074) :: float
2171
- %t4080 = call core.eq(%t4087, %t3325) :: boolean
2172
- %t4083 = select %t4080, %t3327, %t4087 :: float
2173
- %t4061 = call core.sub(%t4083, %t4074) :: float
2174
- %t4062 = call core.clamp(%t4057, %t3306, %t4061) :: float
2175
- %t4050 = call core.mul(%t4062, %t4099) :: float
2176
- %acc4042 = acc_add agg.sum(%acc4042, %t4050) :: float
2177
- end_loop
2178
- %t4051 = acc_load %acc4042 :: float
2179
- %t564 = make_object{marginal: %t3924, effective: %t3981, tax: %t4051} :: object
2180
- %t4123 = const 250000.0 :: float
2181
- %t4124 = call core.sub(%t3301, %t4123) :: float
2182
- %t4126 = make_tuple(%t4124, %t3306) :: tuple<float, integer>
2183
- %t4127 = fold %t4126 fn="agg.max" :: float
2184
- %t4129 = call core.mul(%t4127, %t3492) :: float
2185
- %t4110 = call core.add(%t3474, %t4129) :: float
2186
- %t4105 = call core.div(%t4110, %t3346) :: float
2187
- %t567 = make_object{effective: %t4105, tax: %t4110} :: object
2188
- %acc4174 = decl_acc :: float
2189
- loop rates id=L63 in %t3917 as el=%t4178, idx=%t4179
2190
- %t4206 = load_field t4178["lo"] :: float
2191
- %t4219 = load_field t4178["hi"] :: float
2192
- %t4231 = load_field t4178["rate"] :: float
2193
- %t4189 = call core.sub(%t3942, %t4206) :: float
2194
- %t4212 = call core.eq(%t4219, %t3325) :: boolean
2195
- %t4215 = select %t4212, %t3327, %t4219 :: float
2196
- %t4193 = call core.sub(%t4215, %t4206) :: float
2197
- %t4194 = call core.clamp(%t4189, %t3306, %t4193) :: float
2198
- %t4182 = call core.mul(%t4194, %t4231) :: float
2199
- %acc4174 = acc_add agg.sum(%acc4174, %t4182) :: float
2200
- end_loop
2201
- %t4183 = acc_load %acc4174 :: float
2202
- %t4168 = call core.add(%t4183, %t4110) :: float
2203
- %t4170 = call core.add(%t4168, %t3518) :: float
2204
- %t4172 = call core.add(%t4170, %t3521) :: float
2205
- %t4165 = call core.div(%t4172, %t3346) :: float
2206
- %acc4270 = decl_acc :: float
2207
- loop rates id=L64 in %t3917 as el=%t4274, idx=%t4275
2208
- %t4302 = load_field t4274["lo"] :: float
2209
- %t4315 = load_field t4274["hi"] :: float
2210
- %t4327 = load_field t4274["rate"] :: float
2211
- %t4285 = call core.sub(%t3942, %t4302) :: float
2212
- %t4308 = call core.eq(%t4315, %t3325) :: boolean
2213
- %t4311 = select %t4308, %t3327, %t4315 :: float
2214
- %t4289 = call core.sub(%t4311, %t4302) :: float
2215
- %t4290 = call core.clamp(%t4285, %t3306, %t4289) :: float
2216
- %t4278 = call core.mul(%t4290, %t4327) :: float
2217
- %acc4270 = acc_add agg.sum(%acc4270, %t4278) :: float
2218
- end_loop
2219
- %t4279 = acc_load %acc4270 :: float
2220
- %t4264 = call core.add(%t4279, %t4110) :: float
2221
- %t4266 = call core.add(%t4264, %t3518) :: float
2222
- %t4268 = call core.add(%t4266, %t3521) :: float
2223
- %t578 = make_object{effective: %t4165, tax: %t4268} :: object
2224
- %acc4369 = decl_acc :: float
2225
- loop rates id=L65 in %t3917 as el=%t4373, idx=%t4374
2226
- %t4401 = load_field t4373["lo"] :: float
2227
- %t4414 = load_field t4373["hi"] :: float
2228
- %t4426 = load_field t4373["rate"] :: float
2229
- %t4384 = call core.sub(%t3942, %t4401) :: float
2230
- %t4407 = call core.eq(%t4414, %t3325) :: boolean
2231
- %t4410 = select %t4407, %t3327, %t4414 :: float
2232
- %t4388 = call core.sub(%t4410, %t4401) :: float
2233
- %t4389 = call core.clamp(%t4384, %t3306, %t4388) :: float
2234
- %t4377 = call core.mul(%t4389, %t4426) :: float
2235
- %acc4369 = acc_add agg.sum(%acc4369, %t4377) :: float
2236
- end_loop
2237
- %t4378 = acc_load %acc4369 :: float
2238
- %t4363 = call core.add(%t4378, %t4110) :: float
2239
- %t4365 = call core.add(%t4363, %t3518) :: float
2240
- %t4367 = call core.add(%t4365, %t3521) :: float
2241
- %t4360 = call core.sub(%t3301, %t4367) :: float
2242
- %acc4471 = decl_acc :: float
2243
- loop rates id=L66 in %t3917 as el=%t4475, idx=%t4476
2244
- %t4503 = load_field t4475["lo"] :: float
2245
- %t4516 = load_field t4475["hi"] :: float
2246
- %t4528 = load_field t4475["rate"] :: float
2247
- %t4486 = call core.sub(%t3942, %t4503) :: float
2248
- %t4509 = call core.eq(%t4516, %t3325) :: boolean
2249
- %t4512 = select %t4509, %t3327, %t4516 :: float
2250
- %t4490 = call core.sub(%t4512, %t4503) :: float
2251
- %t4491 = call core.clamp(%t4486, %t3306, %t4490) :: float
2252
- %t4479 = call core.mul(%t4491, %t4528) :: float
2253
- %acc4471 = acc_add agg.sum(%acc4471, %t4479) :: float
2254
- end_loop
2255
- %t4480 = acc_load %acc4471 :: float
2256
- %t4465 = call core.add(%t4480, %t4110) :: float
2257
- %t4467 = call core.add(%t4465, %t3518) :: float
2258
- %t4469 = call core.add(%t4467, %t3521) :: float
2259
- %t4462 = call core.sub(%t3301, %t4469) :: float
2260
- %t4459 = call core.sub(%t4462, %t558) :: float
2261
- %t582 = make_object{federal: %t564, fica: %t567, state: %t549, local: %t553, total: %t578, after_tax: %t4360, retirement_contrib: %t558, take_home: %t4459} :: object
2262
- %acc4560 = decl_acc :: float
2263
- %t4562 = load_field t3281["married_separate"] :: any
2264
- %t4563 = load_field t4562["rates"] :: any
2265
- %acc4629 = decl_acc :: float
2266
- loop rates id=L67 in %t4563 as el=%t4564, idx=%t4565
2267
- %t4583 = load_field t3302["married_separate"] :: any
2268
- %t4600 = load_field t4564["lo"] :: float
2269
- %t4613 = load_field t4564["hi"] :: float
2270
- %t4621 = load_field t4564["rate"] :: float
2271
- %t4584 = load_field t4583["std"] :: float
2272
- %t4606 = call core.eq(%t4613, %t3325) :: boolean
2273
- %t4585 = call core.sub(%t3301, %t4584) :: float
2274
- %t4609 = select %t4606, %t3327, %t4613 :: float
2275
- %t4587 = make_tuple(%t4585, %t3306) :: tuple<float, integer>
2276
- %t4588 = fold %t4587 fn="agg.max" :: float
2277
- %t4577 = call core.gte(%t4588, %t4600) :: boolean
2278
- %t4579 = call core.lt(%t4588, %t4609) :: boolean
2279
- %t4580 = call core.and(%t4577, %t4579) :: boolean
2280
- %t4569 = select %t4580, %t4621, %t3306 :: float
2281
- %acc4560 = acc_add agg.sum(%acc4560, %t4569) :: float
2282
- %t4661 = load_field t4564["lo"] :: float
2283
- %t4674 = load_field t4564["hi"] :: float
2284
- %t4686 = load_field t4564["rate"] :: float
2285
- %t4644 = call core.sub(%t4588, %t4661) :: float
2286
- %t4667 = call core.eq(%t4674, %t3325) :: boolean
2287
- %t4670 = select %t4667, %t3327, %t4674 :: float
2288
- %t4648 = call core.sub(%t4670, %t4661) :: float
2289
- %t4649 = call core.clamp(%t4644, %t3306, %t4648) :: float
2290
- %t4637 = call core.mul(%t4649, %t4686) :: float
2291
- %acc4629 = acc_add agg.sum(%acc4629, %t4637) :: float
2292
- end_loop
2293
- %t4570 = acc_load %acc4560 :: float
2294
- %t4638 = acc_load %acc4629 :: float
2295
- %t4627 = call core.div(%t4638, %t3346) :: float
2296
- %acc4688 = decl_acc :: float
2297
- loop rates id=L69 in %t4563 as el=%t4692, idx=%t4693
2298
- %t4720 = load_field t4692["lo"] :: float
2299
- %t4733 = load_field t4692["hi"] :: float
2300
- %t4745 = load_field t4692["rate"] :: float
2301
- %t4703 = call core.sub(%t4588, %t4720) :: float
2302
- %t4726 = call core.eq(%t4733, %t3325) :: boolean
2303
- %t4729 = select %t4726, %t3327, %t4733 :: float
2304
- %t4707 = call core.sub(%t4729, %t4720) :: float
2305
- %t4708 = call core.clamp(%t4703, %t3306, %t4707) :: float
2306
- %t4696 = call core.mul(%t4708, %t4745) :: float
2307
- %acc4688 = acc_add agg.sum(%acc4688, %t4696) :: float
2308
- end_loop
2309
- %t4697 = acc_load %acc4688 :: float
2310
- %t586 = make_object{marginal: %t4570, effective: %t4627, tax: %t4697} :: object
2311
- %t4769 = const 125000.0 :: float
2312
- %t4770 = call core.sub(%t3301, %t4769) :: float
2313
- %t4772 = make_tuple(%t4770, %t3306) :: tuple<float, integer>
2314
- %t4773 = fold %t4772 fn="agg.max" :: float
2315
- %t4775 = call core.mul(%t4773, %t3492) :: float
2316
- %t4756 = call core.add(%t3474, %t4775) :: float
2317
- %t4751 = call core.div(%t4756, %t3346) :: float
2318
- %t589 = make_object{effective: %t4751, tax: %t4756} :: object
2319
- %acc4820 = decl_acc :: float
2320
- loop rates id=L70 in %t4563 as el=%t4824, idx=%t4825
2321
- %t4852 = load_field t4824["lo"] :: float
2322
- %t4865 = load_field t4824["hi"] :: float
2323
- %t4877 = load_field t4824["rate"] :: float
2324
- %t4835 = call core.sub(%t4588, %t4852) :: float
2325
- %t4858 = call core.eq(%t4865, %t3325) :: boolean
2326
- %t4861 = select %t4858, %t3327, %t4865 :: float
2327
- %t4839 = call core.sub(%t4861, %t4852) :: float
2328
- %t4840 = call core.clamp(%t4835, %t3306, %t4839) :: float
2329
- %t4828 = call core.mul(%t4840, %t4877) :: float
2330
- %acc4820 = acc_add agg.sum(%acc4820, %t4828) :: float
2331
- end_loop
2332
- %t4829 = acc_load %acc4820 :: float
2333
- %t4814 = call core.add(%t4829, %t4756) :: float
2334
- %t4816 = call core.add(%t4814, %t3518) :: float
2335
- %t4818 = call core.add(%t4816, %t3521) :: float
2336
- %t4811 = call core.div(%t4818, %t3346) :: float
2337
- %acc4916 = decl_acc :: float
2338
- loop rates id=L71 in %t4563 as el=%t4920, idx=%t4921
2339
- %t4948 = load_field t4920["lo"] :: float
2340
- %t4961 = load_field t4920["hi"] :: float
2341
- %t4973 = load_field t4920["rate"] :: float
2342
- %t4931 = call core.sub(%t4588, %t4948) :: float
2343
- %t4954 = call core.eq(%t4961, %t3325) :: boolean
2344
- %t4957 = select %t4954, %t3327, %t4961 :: float
2345
- %t4935 = call core.sub(%t4957, %t4948) :: float
2346
- %t4936 = call core.clamp(%t4931, %t3306, %t4935) :: float
2347
- %t4924 = call core.mul(%t4936, %t4973) :: float
2348
- %acc4916 = acc_add agg.sum(%acc4916, %t4924) :: float
2349
- end_loop
2350
- %t4925 = acc_load %acc4916 :: float
2351
- %t4910 = call core.add(%t4925, %t4756) :: float
2352
- %t4912 = call core.add(%t4910, %t3518) :: float
2353
- %t4914 = call core.add(%t4912, %t3521) :: float
2354
- %t600 = make_object{effective: %t4811, tax: %t4914} :: object
2355
- %acc5015 = decl_acc :: float
2356
- loop rates id=L72 in %t4563 as el=%t5019, idx=%t5020
2357
- %t5047 = load_field t5019["lo"] :: float
2358
- %t5060 = load_field t5019["hi"] :: float
2359
- %t5072 = load_field t5019["rate"] :: float
2360
- %t5030 = call core.sub(%t4588, %t5047) :: float
2361
- %t5053 = call core.eq(%t5060, %t3325) :: boolean
2362
- %t5056 = select %t5053, %t3327, %t5060 :: float
2363
- %t5034 = call core.sub(%t5056, %t5047) :: float
2364
- %t5035 = call core.clamp(%t5030, %t3306, %t5034) :: float
2365
- %t5023 = call core.mul(%t5035, %t5072) :: float
2366
- %acc5015 = acc_add agg.sum(%acc5015, %t5023) :: float
2367
- end_loop
2368
- %t5024 = acc_load %acc5015 :: float
2369
- %t5009 = call core.add(%t5024, %t4756) :: float
2370
- %t5011 = call core.add(%t5009, %t3518) :: float
2371
- %t5013 = call core.add(%t5011, %t3521) :: float
2372
- %t5006 = call core.sub(%t3301, %t5013) :: float
2373
- %acc5117 = decl_acc :: float
2374
- loop rates id=L73 in %t4563 as el=%t5121, idx=%t5122
2375
- %t5149 = load_field t5121["lo"] :: float
2376
- %t5162 = load_field t5121["hi"] :: float
2377
- %t5174 = load_field t5121["rate"] :: float
2378
- %t5132 = call core.sub(%t4588, %t5149) :: float
2379
- %t5155 = call core.eq(%t5162, %t3325) :: boolean
2380
- %t5158 = select %t5155, %t3327, %t5162 :: float
2381
- %t5136 = call core.sub(%t5158, %t5149) :: float
2382
- %t5137 = call core.clamp(%t5132, %t3306, %t5136) :: float
2383
- %t5125 = call core.mul(%t5137, %t5174) :: float
2384
- %acc5117 = acc_add agg.sum(%acc5117, %t5125) :: float
2385
- end_loop
2386
- %t5126 = acc_load %acc5117 :: float
2387
- %t5111 = call core.add(%t5126, %t4756) :: float
2388
- %t5113 = call core.add(%t5111, %t3518) :: float
2389
- %t5115 = call core.add(%t5113, %t3521) :: float
2390
- %t5108 = call core.sub(%t3301, %t5115) :: float
2391
- %t5105 = call core.sub(%t5108, %t558) :: float
2392
- %t604 = make_object{federal: %t586, fica: %t589, state: %t549, local: %t553, total: %t600, after_tax: %t5006, retirement_contrib: %t558, take_home: %t5105} :: object
2393
- %acc5206 = decl_acc :: float
2394
- %t5208 = load_field t3281["head_of_household"] :: any
2395
- %t5209 = load_field t5208["rates"] :: any
2396
- %acc5275 = decl_acc :: float
2397
- loop rates id=L74 in %t5209 as el=%t5210, idx=%t5211
2398
- %t5229 = load_field t3302["head_of_household"] :: any
2399
- %t5246 = load_field t5210["lo"] :: float
2400
- %t5259 = load_field t5210["hi"] :: float
2401
- %t5267 = load_field t5210["rate"] :: float
2402
- %t5230 = load_field t5229["std"] :: float
2403
- %t5252 = call core.eq(%t5259, %t3325) :: boolean
2404
- %t5231 = call core.sub(%t3301, %t5230) :: float
2405
- %t5255 = select %t5252, %t3327, %t5259 :: float
2406
- %t5233 = make_tuple(%t5231, %t3306) :: tuple<float, integer>
2407
- %t5234 = fold %t5233 fn="agg.max" :: float
2408
- %t5223 = call core.gte(%t5234, %t5246) :: boolean
2409
- %t5225 = call core.lt(%t5234, %t5255) :: boolean
2410
- %t5226 = call core.and(%t5223, %t5225) :: boolean
2411
- %t5215 = select %t5226, %t5267, %t3306 :: float
2412
- %acc5206 = acc_add agg.sum(%acc5206, %t5215) :: float
2413
- %t5307 = load_field t5210["lo"] :: float
2414
- %t5320 = load_field t5210["hi"] :: float
2415
- %t5332 = load_field t5210["rate"] :: float
2416
- %t5290 = call core.sub(%t5234, %t5307) :: float
2417
- %t5313 = call core.eq(%t5320, %t3325) :: boolean
2418
- %t5316 = select %t5313, %t3327, %t5320 :: float
2419
- %t5294 = call core.sub(%t5316, %t5307) :: float
2420
- %t5295 = call core.clamp(%t5290, %t3306, %t5294) :: float
2421
- %t5283 = call core.mul(%t5295, %t5332) :: float
2422
- %acc5275 = acc_add agg.sum(%acc5275, %t5283) :: float
2423
- end_loop
2424
- %t5216 = acc_load %acc5206 :: float
2425
- %t5284 = acc_load %acc5275 :: float
2426
- %t5273 = call core.div(%t5284, %t3346) :: float
2427
- %acc5334 = decl_acc :: float
2428
- loop rates id=L76 in %t5209 as el=%t5338, idx=%t5339
2429
- %t5366 = load_field t5338["lo"] :: float
2430
- %t5379 = load_field t5338["hi"] :: float
2431
- %t5391 = load_field t5338["rate"] :: float
2432
- %t5349 = call core.sub(%t5234, %t5366) :: float
2433
- %t5372 = call core.eq(%t5379, %t3325) :: boolean
2434
- %t5375 = select %t5372, %t3327, %t5379 :: float
2435
- %t5353 = call core.sub(%t5375, %t5366) :: float
2436
- %t5354 = call core.clamp(%t5349, %t3306, %t5353) :: float
2437
- %t5342 = call core.mul(%t5354, %t5391) :: float
2438
- %acc5334 = acc_add agg.sum(%acc5334, %t5342) :: float
2439
- end_loop
2440
- %t5343 = acc_load %acc5334 :: float
2441
- %t608 = make_object{marginal: %t5216, effective: %t5273, tax: %t5343} :: object
2442
- %acc5466 = decl_acc :: float
2443
- loop rates id=L77 in %t5209 as el=%t5470, idx=%t5471
2444
- %t5498 = load_field t5470["lo"] :: float
2445
- %t5511 = load_field t5470["hi"] :: float
2446
- %t5523 = load_field t5470["rate"] :: float
2447
- %t5481 = call core.sub(%t5234, %t5498) :: float
2448
- %t5504 = call core.eq(%t5511, %t3325) :: boolean
2449
- %t5507 = select %t5504, %t3327, %t5511 :: float
2450
- %t5485 = call core.sub(%t5507, %t5498) :: float
2451
- %t5486 = call core.clamp(%t5481, %t3306, %t5485) :: float
2452
- %t5474 = call core.mul(%t5486, %t5523) :: float
2453
- %acc5466 = acc_add agg.sum(%acc5466, %t5474) :: float
2454
- end_loop
2455
- %t5475 = acc_load %acc5466 :: float
2456
- %t5460 = call core.add(%t5475, %t3476) :: float
2457
- %t5462 = call core.add(%t5460, %t3518) :: float
2458
- %t5464 = call core.add(%t5462, %t3521) :: float
2459
- %t5457 = call core.div(%t5464, %t3346) :: float
2460
- %acc5562 = decl_acc :: float
2461
- loop rates id=L78 in %t5209 as el=%t5566, idx=%t5567
2462
- %t5594 = load_field t5566["lo"] :: float
2463
- %t5607 = load_field t5566["hi"] :: float
2464
- %t5619 = load_field t5566["rate"] :: float
2465
- %t5577 = call core.sub(%t5234, %t5594) :: float
2466
- %t5600 = call core.eq(%t5607, %t3325) :: boolean
2467
- %t5603 = select %t5600, %t3327, %t5607 :: float
2468
- %t5581 = call core.sub(%t5603, %t5594) :: float
2469
- %t5582 = call core.clamp(%t5577, %t3306, %t5581) :: float
2470
- %t5570 = call core.mul(%t5582, %t5619) :: float
2471
- %acc5562 = acc_add agg.sum(%acc5562, %t5570) :: float
2472
- end_loop
2473
- %t5571 = acc_load %acc5562 :: float
2474
- %t5556 = call core.add(%t5571, %t3476) :: float
2475
- %t5558 = call core.add(%t5556, %t3518) :: float
2476
- %t5560 = call core.add(%t5558, %t3521) :: float
2477
- %t622 = make_object{effective: %t5457, tax: %t5560} :: object
2478
- %acc5661 = decl_acc :: float
2479
- loop rates id=L79 in %t5209 as el=%t5665, idx=%t5666
2480
- %t5693 = load_field t5665["lo"] :: float
2481
- %t5706 = load_field t5665["hi"] :: float
2482
- %t5718 = load_field t5665["rate"] :: float
2483
- %t5676 = call core.sub(%t5234, %t5693) :: float
2484
- %t5699 = call core.eq(%t5706, %t3325) :: boolean
2485
- %t5702 = select %t5699, %t3327, %t5706 :: float
2486
- %t5680 = call core.sub(%t5702, %t5693) :: float
2487
- %t5681 = call core.clamp(%t5676, %t3306, %t5680) :: float
2488
- %t5669 = call core.mul(%t5681, %t5718) :: float
2489
- %acc5661 = acc_add agg.sum(%acc5661, %t5669) :: float
2490
- end_loop
2491
- %t5670 = acc_load %acc5661 :: float
2492
- %t5655 = call core.add(%t5670, %t3476) :: float
2493
- %t5657 = call core.add(%t5655, %t3518) :: float
2494
- %t5659 = call core.add(%t5657, %t3521) :: float
2495
- %t5652 = call core.sub(%t3301, %t5659) :: float
2496
- %acc5763 = decl_acc :: float
2497
- loop rates id=L80 in %t5209 as el=%t5767, idx=%t5768
2498
- %t5795 = load_field t5767["lo"] :: float
2499
- %t5808 = load_field t5767["hi"] :: float
2500
- %t5820 = load_field t5767["rate"] :: float
2501
- %t5778 = call core.sub(%t5234, %t5795) :: float
2502
- %t5801 = call core.eq(%t5808, %t3325) :: boolean
2503
- %t5804 = select %t5801, %t3327, %t5808 :: float
2504
- %t5782 = call core.sub(%t5804, %t5795) :: float
2505
- %t5783 = call core.clamp(%t5778, %t3306, %t5782) :: float
2506
- %t5771 = call core.mul(%t5783, %t5820) :: float
2507
- %acc5763 = acc_add agg.sum(%acc5763, %t5771) :: float
521
+ %t974 = load_input "income" :: float
522
+ %t975 = const 168600.0 :: float
523
+ %t976 = make_tuple(%t974, %t975) :: tuple<float, float>
524
+ %t977 = fold %t976 fn="agg.min" :: float
525
+ %t978 = const 0.062 :: float
526
+ %t979 = call core.mul(%t977, %t978) :: float
527
+ %t981 = const 0.0145 :: float
528
+ %t982 = call core.mul(%t974, %t981) :: float
529
+ %t1032 = load_input "state_rate" :: float
530
+ %t1033 = call core.mul(%t974, %t1032) :: float
531
+ %t1035 = load_input "local_rate" :: float
532
+ %t1036 = call core.mul(%t974, %t1035) :: float
533
+ %t181 = load_input "statuses" :: array
534
+ loop statuses id=L26 in %t181 as el=%statuses_el_182, idx=%statuses_i_183
535
+ %t184 = load_field statuses_el_182["name"] :: string
536
+ %t822 = load_field statuses_el_182["std"] :: float
537
+ %t824 = const 0 :: integer
538
+ %acc802 = decl_acc :: float
539
+ %t803 = load_field statuses_el_182["rates"] :: any
540
+ %acc863 = decl_acc :: float
541
+ %t857 = const 1.0 :: float
542
+ %acc913 = decl_acc :: float
543
+ %t971 = call core.add(%t979, %t982) :: float
544
+ %t985 = load_field statuses_el_182["addl_threshold"] :: float
545
+ %t990 = const 0.009 :: float
546
+ %t195 = make_object{marginal: %t1032, effective: %t1032, tax: %t1033} :: object
547
+ %t199 = make_object{marginal: %t1035, effective: %t1035, tax: %t1036} :: object
548
+ %acc1039 = decl_acc :: float
549
+ %acc1127 = decl_acc :: float
550
+ %acc1219 = decl_acc :: float
551
+ %t204 = load_input "retirement_contrib" :: float
552
+ %acc1315 = decl_acc :: float
553
+ %t823 = call core.sub(%t974, %t822) :: float
554
+ %t858 = make_tuple(%t974, %t857) :: tuple<float, float>
555
+ %t986 = call core.sub(%t974, %t985) :: float
556
+ %t825 = make_tuple(%t823, %t824) :: tuple<float, integer>
557
+ %t859 = fold %t858 fn="agg.max" :: float
558
+ %t988 = make_tuple(%t986, %t824) :: tuple<float, integer>
559
+ %t826 = fold %t825 fn="agg.max" :: float
560
+ %t989 = fold %t988 fn="agg.max" :: float
561
+ loop rates id=L32 in %t803 as el=%t804, idx=%t805
562
+ %t829 = load_field t804["lo"] :: float
563
+ %t815 = call core.gte(%t826, %t829) :: boolean
564
+ %t847 = load_field t804["hi"] :: float
565
+ %t840 = const -1 :: integer
566
+ %t841 = call core.eq(%t847, %t840) :: boolean
567
+ %t842 = const 100000000000.0 :: float
568
+ %t844 = select %t841, %t842, %t847 :: float
569
+ %t818 = call core.lt(%t826, %t844) :: boolean
570
+ %t819 = call core.and(%t815, %t818) :: boolean
571
+ %t853 = load_field t804["rate"] :: float
572
+ %t809 = select %t819, %t853, %t824 :: float
573
+ %acc802 = acc_add agg.sum(%acc802, %t809) :: float
574
+ end_loop
575
+ %t991 = call core.mul(%t989, %t990) :: float
576
+ %t810 = acc_load %acc802 :: float
577
+ loop rates id=L33 in %t803 as el=%t865, idx=%t866
578
+ %t890 = load_field t865["lo"] :: float
579
+ %t875 = call core.sub(%t826, %t890) :: float
580
+ %t901 = load_field t865["hi"] :: float
581
+ %t895 = call core.eq(%t901, %t840) :: boolean
582
+ %t898 = select %t895, %t842, %t901 :: float
583
+ %t879 = call core.sub(%t898, %t890) :: float
584
+ %t880 = call core.clamp(%t875, %t824, %t879) :: float
585
+ %t910 = load_field t865["rate"] :: float
586
+ %t869 = call core.mul(%t880, %t910) :: float
587
+ %acc863 = acc_add agg.sum(%acc863, %t869) :: float
588
+ %t940 = load_field t865["lo"] :: float
589
+ %t925 = call core.sub(%t826, %t940) :: float
590
+ %t951 = load_field t865["hi"] :: float
591
+ %t945 = call core.eq(%t951, %t840) :: boolean
592
+ %t948 = select %t945, %t842, %t951 :: float
593
+ %t929 = call core.sub(%t948, %t940) :: float
594
+ %t930 = call core.clamp(%t925, %t824, %t929) :: float
595
+ %t960 = load_field t865["rate"] :: float
596
+ %t919 = call core.mul(%t930, %t960) :: float
597
+ %acc913 = acc_add agg.sum(%acc913, %t919) :: float
598
+ %t1066 = load_field t865["lo"] :: float
599
+ %t1051 = call core.sub(%t826, %t1066) :: float
600
+ %t1077 = load_field t865["hi"] :: float
601
+ %t1071 = call core.eq(%t1077, %t840) :: boolean
602
+ %t1074 = select %t1071, %t842, %t1077 :: float
603
+ %t1055 = call core.sub(%t1074, %t1066) :: float
604
+ %t1056 = call core.clamp(%t1051, %t824, %t1055) :: float
605
+ %t1086 = load_field t865["rate"] :: float
606
+ %t1045 = call core.mul(%t1056, %t1086) :: float
607
+ %acc1039 = acc_add agg.sum(%acc1039, %t1045) :: float
608
+ %t1154 = load_field t865["lo"] :: float
609
+ %t1139 = call core.sub(%t826, %t1154) :: float
610
+ %t1165 = load_field t865["hi"] :: float
611
+ %t1159 = call core.eq(%t1165, %t840) :: boolean
612
+ %t1162 = select %t1159, %t842, %t1165 :: float
613
+ %t1143 = call core.sub(%t1162, %t1154) :: float
614
+ %t1144 = call core.clamp(%t1139, %t824, %t1143) :: float
615
+ %t1174 = load_field t865["rate"] :: float
616
+ %t1133 = call core.mul(%t1144, %t1174) :: float
617
+ %acc1127 = acc_add agg.sum(%acc1127, %t1133) :: float
618
+ %t1246 = load_field t865["lo"] :: float
619
+ %t1231 = call core.sub(%t826, %t1246) :: float
620
+ %t1257 = load_field t865["hi"] :: float
621
+ %t1251 = call core.eq(%t1257, %t840) :: boolean
622
+ %t1254 = select %t1251, %t842, %t1257 :: float
623
+ %t1235 = call core.sub(%t1254, %t1246) :: float
624
+ %t1236 = call core.clamp(%t1231, %t824, %t1235) :: float
625
+ %t1266 = load_field t865["rate"] :: float
626
+ %t1225 = call core.mul(%t1236, %t1266) :: float
627
+ %acc1219 = acc_add agg.sum(%acc1219, %t1225) :: float
628
+ %t1342 = load_field t865["lo"] :: float
629
+ %t1327 = call core.sub(%t826, %t1342) :: float
630
+ %t1353 = load_field t865["hi"] :: float
631
+ %t1347 = call core.eq(%t1353, %t840) :: boolean
632
+ %t1350 = select %t1347, %t842, %t1353 :: float
633
+ %t1331 = call core.sub(%t1350, %t1342) :: float
634
+ %t1332 = call core.clamp(%t1327, %t824, %t1331) :: float
635
+ %t1362 = load_field t865["rate"] :: float
636
+ %t1321 = call core.mul(%t1332, %t1362) :: float
637
+ %acc1315 = acc_add agg.sum(%acc1315, %t1321) :: float
638
+ end_loop
639
+ %t973 = call core.add(%t971, %t991) :: float
640
+ %t870 = acc_load %acc863 :: float
641
+ %t920 = acc_load %acc913 :: float
642
+ %t1046 = acc_load %acc1039 :: float
643
+ %t1134 = acc_load %acc1127 :: float
644
+ %t1226 = acc_load %acc1219 :: float
645
+ %t1322 = acc_load %acc1315 :: float
646
+ %t967 = call core.div(%t973, %t859) :: float
647
+ %t860 = call core.div(%t870, %t859) :: float
648
+ %t1028 = call core.add(%t1046, %t973) :: float
649
+ %t1116 = call core.add(%t1134, %t973) :: float
650
+ %t1208 = call core.add(%t1226, %t973) :: float
651
+ %t1304 = call core.add(%t1322, %t973) :: float
652
+ %t191 = make_object{effective: %t967, tax: %t973} :: object
653
+ %t188 = make_object{marginal: %t810, effective: %t860, tax: %t920} :: object
654
+ %t1029 = call core.add(%t1028, %t1033) :: float
655
+ %t1117 = call core.add(%t1116, %t1033) :: float
656
+ %t1209 = call core.add(%t1208, %t1033) :: float
657
+ %t1305 = call core.add(%t1304, %t1033) :: float
658
+ %t1030 = call core.add(%t1029, %t1036) :: float
659
+ %t1118 = call core.add(%t1117, %t1036) :: float
660
+ %t1210 = call core.add(%t1209, %t1036) :: float
661
+ %t1306 = call core.add(%t1305, %t1036) :: float
662
+ %t1022 = call core.div(%t1030, %t859) :: float
663
+ %t1202 = call core.sub(%t974, %t1210) :: float
664
+ %t1298 = call core.sub(%t974, %t1306) :: float
665
+ %t202 = make_object{effective: %t1022, tax: %t1118} :: object
666
+ %t1294 = call core.sub(%t1298, %t204) :: float
667
+ %t206 = make_object{filing_status: %t184, federal: %t188, fica: %t191, state: %t195, local: %t199, total: %t202, after_tax: %t1202, retirement_contrib: %t204, take_home: %t1294} :: object
668
+ yield %t206
2508
669
  end_loop
2509
- %t5772 = acc_load %acc5763 :: float
2510
- %t5757 = call core.add(%t5772, %t3476) :: float
2511
- %t5759 = call core.add(%t5757, %t3518) :: float
2512
- %t5761 = call core.add(%t5759, %t3521) :: float
2513
- %t5754 = call core.sub(%t3301, %t5761) :: float
2514
- %t5751 = call core.sub(%t5754, %t558) :: float
2515
- %t626 = make_object{federal: %t608, fica: %t545, state: %t549, local: %t553, total: %t622, after_tax: %t5652, retirement_contrib: %t558, take_home: %t5751} :: object
2516
- %t627 = make_object{single: %t560, married_joint: %t582, married_separate: %t604, head_of_household: %t626} :: object
2517
- yield %t627
2518
670
  )
2519
671
  )