kumi 0.0.25 → 0.0.27

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