kumi 0.0.24 → 0.0.25

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (108) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +5 -0
  3. data/golden/array_element/expected/schema_ruby.rb +1 -1
  4. data/golden/array_index/expected/schema_ruby.rb +1 -1
  5. data/golden/array_operations/expected/schema_ruby.rb +1 -1
  6. data/golden/cascade_logic/expected/lir_02_inlined.txt +8 -8
  7. data/golden/cascade_logic/expected/schema_ruby.rb +1 -1
  8. data/golden/chained_fusion/expected/lir_02_inlined.txt +36 -36
  9. data/golden/chained_fusion/expected/lir_03_cse.txt +23 -23
  10. data/golden/chained_fusion/expected/lir_04_1_loop_fusion.txt +25 -25
  11. data/golden/chained_fusion/expected/lir_04_loop_invcm.txt +23 -23
  12. data/golden/chained_fusion/expected/lir_06_const_prop.txt +23 -23
  13. data/golden/chained_fusion/expected/schema_javascript.mjs +23 -23
  14. data/golden/chained_fusion/expected/schema_ruby.rb +28 -28
  15. data/golden/element_arrays/expected/schema_ruby.rb +1 -1
  16. data/golden/empty_and_null_inputs/expected/lir_02_inlined.txt +18 -18
  17. data/golden/empty_and_null_inputs/expected/lir_03_cse.txt +17 -17
  18. data/golden/empty_and_null_inputs/expected/lir_04_1_loop_fusion.txt +17 -17
  19. data/golden/empty_and_null_inputs/expected/lir_04_loop_invcm.txt +17 -17
  20. data/golden/empty_and_null_inputs/expected/lir_06_const_prop.txt +17 -17
  21. data/golden/empty_and_null_inputs/expected/schema_javascript.mjs +13 -13
  22. data/golden/empty_and_null_inputs/expected/schema_ruby.rb +18 -18
  23. data/golden/game_of_life/expected/lir_02_inlined.txt +1291 -1291
  24. data/golden/game_of_life/expected/lir_03_cse.txt +396 -396
  25. data/golden/game_of_life/expected/lir_04_1_loop_fusion.txt +396 -396
  26. data/golden/game_of_life/expected/lir_04_loop_invcm.txt +396 -396
  27. data/golden/game_of_life/expected/lir_06_const_prop.txt +396 -396
  28. data/golden/game_of_life/expected/schema_javascript.mjs +85 -85
  29. data/golden/game_of_life/expected/schema_ruby.rb +86 -86
  30. data/golden/hash_keys/expected/schema_ruby.rb +1 -1
  31. data/golden/hash_value/expected/schema_ruby.rb +1 -1
  32. data/golden/hierarchical_complex/expected/lir_02_inlined.txt +15 -15
  33. data/golden/hierarchical_complex/expected/lir_03_cse.txt +1 -1
  34. data/golden/hierarchical_complex/expected/lir_04_1_loop_fusion.txt +1 -1
  35. data/golden/hierarchical_complex/expected/lir_04_loop_invcm.txt +1 -1
  36. data/golden/hierarchical_complex/expected/lir_06_const_prop.txt +1 -1
  37. data/golden/hierarchical_complex/expected/schema_javascript.mjs +1 -1
  38. data/golden/hierarchical_complex/expected/schema_ruby.rb +2 -2
  39. data/golden/inline_rename_scope_leak/expected/schema_ruby.rb +1 -1
  40. data/golden/input_reference/expected/schema_ruby.rb +1 -1
  41. data/golden/interleaved_fusion/expected/lir_02_inlined.txt +35 -35
  42. data/golden/interleaved_fusion/expected/lir_03_cse.txt +26 -26
  43. data/golden/interleaved_fusion/expected/lir_04_1_loop_fusion.txt +27 -26
  44. data/golden/interleaved_fusion/expected/lir_04_loop_invcm.txt +26 -26
  45. data/golden/interleaved_fusion/expected/lir_06_const_prop.txt +26 -26
  46. data/golden/interleaved_fusion/expected/schema_javascript.mjs +23 -23
  47. data/golden/interleaved_fusion/expected/schema_ruby.rb +29 -29
  48. data/golden/let_inline/expected/schema_ruby.rb +1 -1
  49. data/golden/loop_fusion/expected/lir_02_inlined.txt +17 -17
  50. data/golden/loop_fusion/expected/lir_03_cse.txt +14 -14
  51. data/golden/loop_fusion/expected/lir_04_1_loop_fusion.txt +14 -14
  52. data/golden/loop_fusion/expected/lir_04_loop_invcm.txt +14 -14
  53. data/golden/loop_fusion/expected/lir_06_const_prop.txt +14 -14
  54. data/golden/loop_fusion/expected/schema_javascript.mjs +12 -12
  55. data/golden/loop_fusion/expected/schema_ruby.rb +16 -16
  56. data/golden/min_reduce_scope/expected/schema_ruby.rb +1 -1
  57. data/golden/mixed_dimensions/expected/lir_02_inlined.txt +5 -5
  58. data/golden/mixed_dimensions/expected/lir_03_cse.txt +5 -5
  59. data/golden/mixed_dimensions/expected/lir_04_1_loop_fusion.txt +5 -5
  60. data/golden/mixed_dimensions/expected/lir_04_loop_invcm.txt +5 -5
  61. data/golden/mixed_dimensions/expected/lir_06_const_prop.txt +5 -5
  62. data/golden/mixed_dimensions/expected/schema_javascript.mjs +3 -3
  63. data/golden/mixed_dimensions/expected/schema_ruby.rb +6 -6
  64. data/golden/multirank_hoisting/expected/lir_02_inlined.txt +48 -48
  65. data/golden/multirank_hoisting/expected/lir_03_cse.txt +35 -35
  66. data/golden/multirank_hoisting/expected/lir_04_1_loop_fusion.txt +35 -35
  67. data/golden/multirank_hoisting/expected/lir_04_loop_invcm.txt +35 -35
  68. data/golden/multirank_hoisting/expected/lir_06_const_prop.txt +35 -35
  69. data/golden/multirank_hoisting/expected/schema_javascript.mjs +34 -34
  70. data/golden/multirank_hoisting/expected/schema_ruby.rb +36 -36
  71. data/golden/nested_hash/expected/schema_ruby.rb +1 -1
  72. data/golden/reduction_broadcast/expected/lir_02_inlined.txt +30 -30
  73. data/golden/reduction_broadcast/expected/lir_03_cse.txt +22 -22
  74. data/golden/reduction_broadcast/expected/lir_04_1_loop_fusion.txt +22 -22
  75. data/golden/reduction_broadcast/expected/lir_04_loop_invcm.txt +22 -22
  76. data/golden/reduction_broadcast/expected/lir_06_const_prop.txt +22 -22
  77. data/golden/reduction_broadcast/expected/schema_javascript.mjs +18 -18
  78. data/golden/reduction_broadcast/expected/schema_ruby.rb +23 -23
  79. data/golden/roll/expected/schema_ruby.rb +1 -1
  80. data/golden/shift/expected/schema_ruby.rb +1 -1
  81. data/golden/shift_2d/expected/schema_ruby.rb +1 -1
  82. data/golden/simple_math/expected/schema_ruby.rb +1 -1
  83. data/golden/streaming_basics/expected/lir_02_inlined.txt +25 -25
  84. data/golden/streaming_basics/expected/lir_03_cse.txt +13 -13
  85. data/golden/streaming_basics/expected/lir_04_1_loop_fusion.txt +13 -13
  86. data/golden/streaming_basics/expected/lir_04_loop_invcm.txt +13 -13
  87. data/golden/streaming_basics/expected/lir_06_const_prop.txt +13 -13
  88. data/golden/streaming_basics/expected/schema_javascript.mjs +13 -13
  89. data/golden/streaming_basics/expected/schema_ruby.rb +14 -14
  90. data/golden/tuples/expected/schema_ruby.rb +1 -1
  91. data/golden/tuples_and_arrays/expected/lir_02_inlined.txt +16 -16
  92. data/golden/tuples_and_arrays/expected/lir_03_cse.txt +13 -13
  93. data/golden/tuples_and_arrays/expected/lir_04_1_loop_fusion.txt +13 -13
  94. data/golden/tuples_and_arrays/expected/lir_04_loop_invcm.txt +13 -13
  95. data/golden/tuples_and_arrays/expected/lir_06_const_prop.txt +13 -13
  96. data/golden/tuples_and_arrays/expected/schema_javascript.mjs +13 -13
  97. data/golden/tuples_and_arrays/expected/schema_ruby.rb +14 -14
  98. data/golden/us_tax_2024/expected/lir_02_inlined.txt +524 -524
  99. data/golden/us_tax_2024/expected/lir_03_cse.txt +283 -283
  100. data/golden/us_tax_2024/expected/lir_04_1_loop_fusion.txt +283 -283
  101. data/golden/us_tax_2024/expected/lir_04_loop_invcm.txt +320 -260
  102. data/golden/us_tax_2024/expected/lir_06_const_prop.txt +320 -260
  103. data/golden/us_tax_2024/expected/schema_javascript.mjs +24 -24
  104. data/golden/us_tax_2024/expected/schema_ruby.rb +25 -25
  105. data/golden/with_constants/expected/schema_ruby.rb +1 -1
  106. data/lib/kumi/core/analyzer/passes/lir/inline_declarations_pass.rb +118 -74
  107. data/lib/kumi/version.rb +1 -1
  108. metadata +1 -1
@@ -83,7 +83,7 @@
83
83
  %t660 = load_field rates_el_48["hi"] :: float
84
84
  %t652 = const -1 :: integer
85
85
  %t654 = const 100000000000.0 :: float
86
- %t52 = call core.sub(%t50, %t647) :: float
86
+ %t52 = call core.sub(%t643, %t647) :: float
87
87
  %t653 = call core.eq(%t660, %t652) :: boolean
88
88
  %t656 = select %t653, %t654, %t660 :: float
89
89
  %t56 = call core.sub(%t656, %t647) :: float
@@ -92,28 +92,28 @@
92
92
  end_loop
93
93
  )
94
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
95
103
  %acc_58 = decl_acc :: float
96
104
  %t59 = load_input "fed" :: array
97
105
  %t60 = load_field t59["single"] :: any
98
106
  %t61 = load_field t60["rates"] :: any
99
107
  loop rates id=L6 in %t61 as el=%rates_el_62, idx=%rates_i_63
100
- %t680 = load_input "income" :: float
101
- %t681 = load_input "fed" :: any
102
- %t685 = const 0 :: integer
103
108
  %t691 = load_field rates_el_62["lo"] :: float
104
109
  %t704 = load_field rates_el_62["hi"] :: float
105
110
  %t696 = const -1 :: integer
106
111
  %t698 = const 100000000000.0 :: float
107
112
  %t716 = load_field rates_el_62["rate"] :: float
108
- %t682 = load_field t681["single"] :: any
113
+ %t674 = call core.sub(%t687, %t691) :: float
109
114
  %t697 = call core.eq(%t704, %t696) :: boolean
110
- %t683 = load_field t682["std"] :: float
111
115
  %t700 = select %t697, %t698, %t704 :: float
112
- %t684 = call core.sub(%t680, %t683) :: float
113
116
  %t678 = call core.sub(%t700, %t691) :: float
114
- %t686 = make_tuple(%t684, %t685) :: tuple<float, integer>
115
- %t687 = fold %t686 fn="agg.max" :: float
116
- %t674 = call core.sub(%t687, %t691) :: float
117
117
  %t679 = call core.clamp(%t674, %t685, %t678) :: float
118
118
  %t66 = call core.mul(%t679, %t716) :: float
119
119
  %acc_58 = acc_add agg.sum(%acc_58, %t66) :: float
@@ -138,36 +138,36 @@
138
138
  %t749 = load_field rates_el_71["hi"] :: float
139
139
  %t741 = const -1 :: integer
140
140
  %t743 = const 100000000000.0 :: float
141
- %t75 = call core.gte(%t73, %t736) :: boolean
141
+ %t75 = call core.gte(%t724, %t736) :: boolean
142
142
  %t742 = call core.eq(%t749, %t741) :: boolean
143
143
  %t745 = select %t742, %t743, %t749 :: float
144
- %t78 = call core.lt(%t76, %t745) :: boolean
144
+ %t78 = call core.lt(%t724, %t745) :: boolean
145
145
  %t79 = call core.and(%t75, %t78) :: boolean
146
146
  yield %t79
147
147
  end_loop
148
148
  )
149
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
150
158
  %acc_80 = decl_acc :: float
151
159
  %t81 = load_input "fed" :: array
152
160
  %t82 = load_field t81["single"] :: any
153
161
  %t83 = load_field t82["rates"] :: any
154
162
  loop rates id=L8 in %t83 as el=%rates_el_84, idx=%rates_i_85
155
- %t764 = load_input "income" :: float
156
- %t765 = load_input "fed" :: any
157
- %t769 = const 0 :: integer
158
163
  %t783 = load_field rates_el_84["lo"] :: float
159
164
  %t796 = load_field rates_el_84["hi"] :: float
160
165
  %t788 = const -1 :: integer
161
166
  %t790 = const 100000000000.0 :: float
162
167
  %t804 = load_field rates_el_84["rate"] :: float
163
- %t766 = load_field t765["single"] :: any
168
+ %t760 = call core.gte(%t771, %t783) :: boolean
164
169
  %t789 = call core.eq(%t796, %t788) :: boolean
165
- %t767 = load_field t766["std"] :: float
166
170
  %t792 = select %t789, %t790, %t796 :: float
167
- %t768 = call core.sub(%t764, %t767) :: float
168
- %t770 = make_tuple(%t768, %t769) :: tuple<float, integer>
169
- %t771 = fold %t770 fn="agg.max" :: float
170
- %t760 = call core.gte(%t771, %t783) :: boolean
171
171
  %t762 = call core.lt(%t771, %t792) :: boolean
172
172
  %t763 = call core.and(%t760, %t762) :: boolean
173
173
  %t89 = select %t763, %t804, %t769 :: float
@@ -177,28 +177,28 @@
177
177
  yield %t90
178
178
  )
179
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
180
188
  %acc806 = decl_acc :: float
181
189
  %t807 = load_input "fed" :: array
182
190
  %t808 = load_field t807["single"] :: any
183
191
  %t809 = load_field t808["rates"] :: any
184
192
  loop rates id=L33 in %t809 as el=%t810, idx=%t811
185
- %t827 = load_input "income" :: float
186
- %t828 = load_input "fed" :: any
187
- %t832 = const 0 :: integer
188
193
  %t838 = load_field t810["lo"] :: float
189
194
  %t851 = load_field t810["hi"] :: float
190
195
  %t843 = const -1 :: integer
191
196
  %t845 = const 100000000000.0 :: float
192
197
  %t863 = load_field t810["rate"] :: float
193
- %t829 = load_field t828["single"] :: any
198
+ %t821 = call core.sub(%t834, %t838) :: float
194
199
  %t844 = call core.eq(%t851, %t843) :: boolean
195
- %t830 = load_field t829["std"] :: float
196
200
  %t847 = select %t844, %t845, %t851 :: float
197
- %t831 = call core.sub(%t827, %t830) :: float
198
201
  %t825 = call core.sub(%t847, %t838) :: float
199
- %t833 = make_tuple(%t831, %t832) :: tuple<float, integer>
200
- %t834 = fold %t833 fn="agg.max" :: float
201
- %t821 = call core.sub(%t834, %t838) :: float
202
202
  %t826 = call core.clamp(%t821, %t832, %t825) :: float
203
203
  %t814 = call core.mul(%t826, %t863) :: float
204
204
  %acc806 = acc_add agg.sum(%acc806, %t814) :: float
@@ -301,28 +301,28 @@
301
301
  yield %t129
302
302
  )
303
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
304
312
  %acc904 = decl_acc :: float
305
313
  %t905 = load_input "fed" :: array
306
314
  %t906 = load_field t905["single"] :: any
307
315
  %t907 = load_field t906["rates"] :: any
308
316
  loop rates id=L34 in %t907 as el=%t908, idx=%t909
309
- %t925 = load_input "income" :: float
310
- %t926 = load_input "fed" :: any
311
- %t930 = const 0 :: integer
312
317
  %t936 = load_field t908["lo"] :: float
313
318
  %t949 = load_field t908["hi"] :: float
314
319
  %t941 = const -1 :: integer
315
320
  %t943 = const 100000000000.0 :: float
316
321
  %t961 = load_field t908["rate"] :: float
317
- %t927 = load_field t926["single"] :: any
322
+ %t919 = call core.sub(%t932, %t936) :: float
318
323
  %t942 = call core.eq(%t949, %t941) :: boolean
319
- %t928 = load_field t927["std"] :: float
320
324
  %t945 = select %t942, %t943, %t949 :: float
321
- %t929 = call core.sub(%t925, %t928) :: float
322
325
  %t923 = call core.sub(%t945, %t936) :: float
323
- %t931 = make_tuple(%t929, %t930) :: tuple<float, integer>
324
- %t932 = fold %t931 fn="agg.max" :: float
325
- %t919 = call core.sub(%t932, %t936) :: float
326
326
  %t924 = call core.clamp(%t919, %t930, %t923) :: float
327
327
  %t912 = call core.mul(%t924, %t961) :: float
328
328
  %acc904 = acc_add agg.sum(%acc904, %t912) :: float
@@ -353,28 +353,28 @@
353
353
  yield %t136
354
354
  )
355
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
356
364
  %acc998 = decl_acc :: float
357
365
  %t999 = load_input "fed" :: array
358
366
  %t1000 = load_field t999["single"] :: any
359
367
  %t1001 = load_field t1000["rates"] :: any
360
368
  loop rates id=L35 in %t1001 as el=%t1002, idx=%t1003
361
- %t1019 = load_input "income" :: float
362
- %t1020 = load_input "fed" :: any
363
- %t1024 = const 0 :: integer
364
369
  %t1030 = load_field t1002["lo"] :: float
365
370
  %t1043 = load_field t1002["hi"] :: float
366
371
  %t1035 = const -1 :: integer
367
372
  %t1037 = const 100000000000.0 :: float
368
373
  %t1055 = load_field t1002["rate"] :: float
369
- %t1021 = load_field t1020["single"] :: any
374
+ %t1013 = call core.sub(%t1026, %t1030) :: float
370
375
  %t1036 = call core.eq(%t1043, %t1035) :: boolean
371
- %t1022 = load_field t1021["std"] :: float
372
376
  %t1039 = select %t1036, %t1037, %t1043 :: float
373
- %t1023 = call core.sub(%t1019, %t1022) :: float
374
377
  %t1017 = call core.sub(%t1039, %t1030) :: float
375
- %t1025 = make_tuple(%t1023, %t1024) :: tuple<float, integer>
376
- %t1026 = fold %t1025 fn="agg.max" :: float
377
- %t1013 = call core.sub(%t1026, %t1030) :: float
378
378
  %t1018 = call core.clamp(%t1013, %t1024, %t1017) :: float
379
379
  %t1006 = call core.mul(%t1018, %t1055) :: float
380
380
  %acc998 = acc_add agg.sum(%acc998, %t1006) :: float
@@ -410,27 +410,27 @@
410
410
  )
411
411
  (Declaration after_tax_single
412
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
413
420
  %acc1092 = decl_acc :: float
414
421
  %t1093 = load_input "fed" :: array
415
422
  %t1094 = load_field t1093["single"] :: any
416
423
  %t1095 = load_field t1094["rates"] :: any
417
424
  loop rates id=L36 in %t1095 as el=%t1096, idx=%t1097
418
- %t1114 = load_input "fed" :: any
419
- %t1118 = const 0 :: integer
420
425
  %t1124 = load_field t1096["lo"] :: float
421
426
  %t1137 = load_field t1096["hi"] :: float
422
427
  %t1129 = const -1 :: integer
423
428
  %t1131 = const 100000000000.0 :: float
424
429
  %t1149 = load_field t1096["rate"] :: float
425
- %t1115 = load_field t1114["single"] :: any
430
+ %t1107 = call core.sub(%t1120, %t1124) :: float
426
431
  %t1130 = call core.eq(%t1137, %t1129) :: boolean
427
- %t1116 = load_field t1115["std"] :: float
428
432
  %t1133 = select %t1130, %t1131, %t1137 :: float
429
- %t1117 = call core.sub(%t143, %t1116) :: float
430
433
  %t1111 = call core.sub(%t1133, %t1124) :: float
431
- %t1119 = make_tuple(%t1117, %t1118) :: tuple<float, integer>
432
- %t1120 = fold %t1119 fn="agg.max" :: float
433
- %t1107 = call core.sub(%t1120, %t1124) :: float
434
434
  %t1112 = call core.clamp(%t1107, %t1118, %t1111) :: float
435
435
  %t1100 = call core.mul(%t1112, %t1149) :: float
436
436
  %acc1092 = acc_add agg.sum(%acc1092, %t1100) :: float
@@ -463,27 +463,27 @@
463
463
  )
464
464
  (Declaration take_home_single
465
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
466
473
  %acc1189 = decl_acc :: float
467
474
  %t1190 = load_input "fed" :: array
468
475
  %t1191 = load_field t1190["single"] :: any
469
476
  %t1192 = load_field t1191["rates"] :: any
470
477
  loop rates id=L37 in %t1192 as el=%t1193, idx=%t1194
471
- %t1211 = load_input "fed" :: any
472
- %t1215 = const 0 :: integer
473
478
  %t1221 = load_field t1193["lo"] :: float
474
479
  %t1234 = load_field t1193["hi"] :: float
475
480
  %t1226 = const -1 :: integer
476
481
  %t1228 = const 100000000000.0 :: float
477
482
  %t1246 = load_field t1193["rate"] :: float
478
- %t1212 = load_field t1211["single"] :: any
483
+ %t1204 = call core.sub(%t1217, %t1221) :: float
479
484
  %t1227 = call core.eq(%t1234, %t1226) :: boolean
480
- %t1213 = load_field t1212["std"] :: float
481
485
  %t1230 = select %t1227, %t1228, %t1234 :: float
482
- %t1214 = call core.sub(%t1178, %t1213) :: float
483
486
  %t1208 = call core.sub(%t1230, %t1221) :: float
484
- %t1216 = make_tuple(%t1214, %t1215) :: tuple<float, integer>
485
- %t1217 = fold %t1216 fn="agg.max" :: float
486
- %t1204 = call core.sub(%t1217, %t1221) :: float
487
487
  %t1209 = call core.clamp(%t1204, %t1215, %t1208) :: float
488
488
  %t1197 = call core.mul(%t1209, %t1246) :: float
489
489
  %acc1189 = acc_add agg.sum(%acc1189, %t1197) :: float
@@ -584,7 +584,7 @@
584
584
  %t1307 = load_field rates_el_189["hi"] :: float
585
585
  %t1299 = const -1 :: integer
586
586
  %t1301 = const 100000000000.0 :: float
587
- %t193 = call core.sub(%t191, %t1294) :: float
587
+ %t193 = call core.sub(%t1290, %t1294) :: float
588
588
  %t1300 = call core.eq(%t1307, %t1299) :: boolean
589
589
  %t1303 = select %t1300, %t1301, %t1307 :: float
590
590
  %t197 = call core.sub(%t1303, %t1294) :: float
@@ -593,28 +593,28 @@
593
593
  end_loop
594
594
  )
595
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
596
604
  %acc_199 = decl_acc :: float
597
605
  %t200 = load_input "fed" :: array
598
606
  %t201 = load_field t200["married_joint"] :: any
599
607
  %t202 = load_field t201["rates"] :: any
600
608
  loop rates id=L14 in %t202 as el=%rates_el_203, idx=%rates_i_204
601
- %t1327 = load_input "income" :: float
602
- %t1328 = load_input "fed" :: any
603
- %t1332 = const 0 :: integer
604
609
  %t1338 = load_field rates_el_203["lo"] :: float
605
610
  %t1351 = load_field rates_el_203["hi"] :: float
606
611
  %t1343 = const -1 :: integer
607
612
  %t1345 = const 100000000000.0 :: float
608
613
  %t1363 = load_field rates_el_203["rate"] :: float
609
- %t1329 = load_field t1328["married_joint"] :: any
614
+ %t1321 = call core.sub(%t1334, %t1338) :: float
610
615
  %t1344 = call core.eq(%t1351, %t1343) :: boolean
611
- %t1330 = load_field t1329["std"] :: float
612
616
  %t1347 = select %t1344, %t1345, %t1351 :: float
613
- %t1331 = call core.sub(%t1327, %t1330) :: float
614
617
  %t1325 = call core.sub(%t1347, %t1338) :: float
615
- %t1333 = make_tuple(%t1331, %t1332) :: tuple<float, integer>
616
- %t1334 = fold %t1333 fn="agg.max" :: float
617
- %t1321 = call core.sub(%t1334, %t1338) :: float
618
618
  %t1326 = call core.clamp(%t1321, %t1332, %t1325) :: float
619
619
  %t207 = call core.mul(%t1326, %t1363) :: float
620
620
  %acc_199 = acc_add agg.sum(%acc_199, %t207) :: float
@@ -639,36 +639,36 @@
639
639
  %t1396 = load_field rates_el_212["hi"] :: float
640
640
  %t1388 = const -1 :: integer
641
641
  %t1390 = const 100000000000.0 :: float
642
- %t216 = call core.gte(%t214, %t1383) :: boolean
642
+ %t216 = call core.gte(%t1371, %t1383) :: boolean
643
643
  %t1389 = call core.eq(%t1396, %t1388) :: boolean
644
644
  %t1392 = select %t1389, %t1390, %t1396 :: float
645
- %t219 = call core.lt(%t217, %t1392) :: boolean
645
+ %t219 = call core.lt(%t1371, %t1392) :: boolean
646
646
  %t220 = call core.and(%t216, %t219) :: boolean
647
647
  yield %t220
648
648
  end_loop
649
649
  )
650
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
651
659
  %acc_221 = decl_acc :: float
652
660
  %t222 = load_input "fed" :: array
653
661
  %t223 = load_field t222["married_joint"] :: any
654
662
  %t224 = load_field t223["rates"] :: any
655
663
  loop rates id=L16 in %t224 as el=%rates_el_225, idx=%rates_i_226
656
- %t1411 = load_input "income" :: float
657
- %t1412 = load_input "fed" :: any
658
- %t1416 = const 0 :: integer
659
664
  %t1430 = load_field rates_el_225["lo"] :: float
660
665
  %t1443 = load_field rates_el_225["hi"] :: float
661
666
  %t1435 = const -1 :: integer
662
667
  %t1437 = const 100000000000.0 :: float
663
668
  %t1451 = load_field rates_el_225["rate"] :: float
664
- %t1413 = load_field t1412["married_joint"] :: any
669
+ %t1407 = call core.gte(%t1418, %t1430) :: boolean
665
670
  %t1436 = call core.eq(%t1443, %t1435) :: boolean
666
- %t1414 = load_field t1413["std"] :: float
667
671
  %t1439 = select %t1436, %t1437, %t1443 :: float
668
- %t1415 = call core.sub(%t1411, %t1414) :: float
669
- %t1417 = make_tuple(%t1415, %t1416) :: tuple<float, integer>
670
- %t1418 = fold %t1417 fn="agg.max" :: float
671
- %t1407 = call core.gte(%t1418, %t1430) :: boolean
672
672
  %t1409 = call core.lt(%t1418, %t1439) :: boolean
673
673
  %t1410 = call core.and(%t1407, %t1409) :: boolean
674
674
  %t230 = select %t1410, %t1451, %t1416 :: float
@@ -678,28 +678,28 @@
678
678
  yield %t231
679
679
  )
680
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
681
689
  %acc1453 = decl_acc :: float
682
690
  %t1454 = load_input "fed" :: array
683
691
  %t1455 = load_field t1454["married_joint"] :: any
684
692
  %t1456 = load_field t1455["rates"] :: any
685
693
  loop rates id=L38 in %t1456 as el=%t1457, idx=%t1458
686
- %t1474 = load_input "income" :: float
687
- %t1475 = load_input "fed" :: any
688
- %t1479 = const 0 :: integer
689
694
  %t1485 = load_field t1457["lo"] :: float
690
695
  %t1498 = load_field t1457["hi"] :: float
691
696
  %t1490 = const -1 :: integer
692
697
  %t1492 = const 100000000000.0 :: float
693
698
  %t1510 = load_field t1457["rate"] :: float
694
- %t1476 = load_field t1475["married_joint"] :: any
699
+ %t1468 = call core.sub(%t1481, %t1485) :: float
695
700
  %t1491 = call core.eq(%t1498, %t1490) :: boolean
696
- %t1477 = load_field t1476["std"] :: float
697
701
  %t1494 = select %t1491, %t1492, %t1498 :: float
698
- %t1478 = call core.sub(%t1474, %t1477) :: float
699
702
  %t1472 = call core.sub(%t1494, %t1485) :: float
700
- %t1480 = make_tuple(%t1478, %t1479) :: tuple<float, integer>
701
- %t1481 = fold %t1480 fn="agg.max" :: float
702
- %t1468 = call core.sub(%t1481, %t1485) :: float
703
703
  %t1473 = call core.clamp(%t1468, %t1479, %t1472) :: float
704
704
  %t1461 = call core.mul(%t1473, %t1510) :: float
705
705
  %acc1453 = acc_add agg.sum(%acc1453, %t1461) :: float
@@ -786,28 +786,28 @@
786
786
  yield %t259
787
787
  )
788
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
789
797
  %acc1564 = decl_acc :: float
790
798
  %t1565 = load_input "fed" :: array
791
799
  %t1566 = load_field t1565["married_joint"] :: any
792
800
  %t1567 = load_field t1566["rates"] :: any
793
801
  loop rates id=L39 in %t1567 as el=%t1568, idx=%t1569
794
- %t1585 = load_input "income" :: float
795
- %t1586 = load_input "fed" :: any
796
- %t1590 = const 0 :: integer
797
802
  %t1596 = load_field t1568["lo"] :: float
798
803
  %t1609 = load_field t1568["hi"] :: float
799
804
  %t1601 = const -1 :: integer
800
805
  %t1603 = const 100000000000.0 :: float
801
806
  %t1621 = load_field t1568["rate"] :: float
802
- %t1587 = load_field t1586["married_joint"] :: any
807
+ %t1579 = call core.sub(%t1592, %t1596) :: float
803
808
  %t1602 = call core.eq(%t1609, %t1601) :: boolean
804
- %t1588 = load_field t1587["std"] :: float
805
809
  %t1605 = select %t1602, %t1603, %t1609 :: float
806
- %t1589 = call core.sub(%t1585, %t1588) :: float
807
810
  %t1583 = call core.sub(%t1605, %t1596) :: float
808
- %t1591 = make_tuple(%t1589, %t1590) :: tuple<float, integer>
809
- %t1592 = fold %t1591 fn="agg.max" :: float
810
- %t1579 = call core.sub(%t1592, %t1596) :: float
811
811
  %t1584 = call core.clamp(%t1579, %t1590, %t1583) :: float
812
812
  %t1572 = call core.mul(%t1584, %t1621) :: float
813
813
  %acc1564 = acc_add agg.sum(%acc1564, %t1572) :: float
@@ -838,28 +838,28 @@
838
838
  yield %t266
839
839
  )
840
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
841
849
  %acc1660 = decl_acc :: float
842
850
  %t1661 = load_input "fed" :: array
843
851
  %t1662 = load_field t1661["married_joint"] :: any
844
852
  %t1663 = load_field t1662["rates"] :: any
845
853
  loop rates id=L40 in %t1663 as el=%t1664, idx=%t1665
846
- %t1681 = load_input "income" :: float
847
- %t1682 = load_input "fed" :: any
848
- %t1686 = const 0 :: integer
849
854
  %t1692 = load_field t1664["lo"] :: float
850
855
  %t1705 = load_field t1664["hi"] :: float
851
856
  %t1697 = const -1 :: integer
852
857
  %t1699 = const 100000000000.0 :: float
853
858
  %t1717 = load_field t1664["rate"] :: float
854
- %t1683 = load_field t1682["married_joint"] :: any
859
+ %t1675 = call core.sub(%t1688, %t1692) :: float
855
860
  %t1698 = call core.eq(%t1705, %t1697) :: boolean
856
- %t1684 = load_field t1683["std"] :: float
857
861
  %t1701 = select %t1698, %t1699, %t1705 :: float
858
- %t1685 = call core.sub(%t1681, %t1684) :: float
859
862
  %t1679 = call core.sub(%t1701, %t1692) :: float
860
- %t1687 = make_tuple(%t1685, %t1686) :: tuple<float, integer>
861
- %t1688 = fold %t1687 fn="agg.max" :: float
862
- %t1675 = call core.sub(%t1688, %t1692) :: float
863
863
  %t1680 = call core.clamp(%t1675, %t1686, %t1679) :: float
864
864
  %t1668 = call core.mul(%t1680, %t1717) :: float
865
865
  %acc1660 = acc_add agg.sum(%acc1660, %t1668) :: float
@@ -895,27 +895,27 @@
895
895
  )
896
896
  (Declaration after_tax_mj
897
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
898
905
  %acc1756 = decl_acc :: float
899
906
  %t1757 = load_input "fed" :: array
900
907
  %t1758 = load_field t1757["married_joint"] :: any
901
908
  %t1759 = load_field t1758["rates"] :: any
902
909
  loop rates id=L41 in %t1759 as el=%t1760, idx=%t1761
903
- %t1778 = load_input "fed" :: any
904
- %t1782 = const 0 :: integer
905
910
  %t1788 = load_field t1760["lo"] :: float
906
911
  %t1801 = load_field t1760["hi"] :: float
907
912
  %t1793 = const -1 :: integer
908
913
  %t1795 = const 100000000000.0 :: float
909
914
  %t1813 = load_field t1760["rate"] :: float
910
- %t1779 = load_field t1778["married_joint"] :: any
915
+ %t1771 = call core.sub(%t1784, %t1788) :: float
911
916
  %t1794 = call core.eq(%t1801, %t1793) :: boolean
912
- %t1780 = load_field t1779["std"] :: float
913
917
  %t1797 = select %t1794, %t1795, %t1801 :: float
914
- %t1781 = call core.sub(%t273, %t1780) :: float
915
918
  %t1775 = call core.sub(%t1797, %t1788) :: float
916
- %t1783 = make_tuple(%t1781, %t1782) :: tuple<float, integer>
917
- %t1784 = fold %t1783 fn="agg.max" :: float
918
- %t1771 = call core.sub(%t1784, %t1788) :: float
919
919
  %t1776 = call core.clamp(%t1771, %t1782, %t1775) :: float
920
920
  %t1764 = call core.mul(%t1776, %t1813) :: float
921
921
  %acc1756 = acc_add agg.sum(%acc1756, %t1764) :: float
@@ -948,27 +948,27 @@
948
948
  )
949
949
  (Declaration take_home_mj
950
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
951
958
  %acc1855 = decl_acc :: float
952
959
  %t1856 = load_input "fed" :: array
953
960
  %t1857 = load_field t1856["married_joint"] :: any
954
961
  %t1858 = load_field t1857["rates"] :: any
955
962
  loop rates id=L42 in %t1858 as el=%t1859, idx=%t1860
956
- %t1877 = load_input "fed" :: any
957
- %t1881 = const 0 :: integer
958
963
  %t1887 = load_field t1859["lo"] :: float
959
964
  %t1900 = load_field t1859["hi"] :: float
960
965
  %t1892 = const -1 :: integer
961
966
  %t1894 = const 100000000000.0 :: float
962
967
  %t1912 = load_field t1859["rate"] :: float
963
- %t1878 = load_field t1877["married_joint"] :: any
968
+ %t1870 = call core.sub(%t1883, %t1887) :: float
964
969
  %t1893 = call core.eq(%t1900, %t1892) :: boolean
965
- %t1879 = load_field t1878["std"] :: float
966
970
  %t1896 = select %t1893, %t1894, %t1900 :: float
967
- %t1880 = call core.sub(%t1844, %t1879) :: float
968
971
  %t1874 = call core.sub(%t1896, %t1887) :: float
969
- %t1882 = make_tuple(%t1880, %t1881) :: tuple<float, integer>
970
- %t1883 = fold %t1882 fn="agg.max" :: float
971
- %t1870 = call core.sub(%t1883, %t1887) :: float
972
972
  %t1875 = call core.clamp(%t1870, %t1881, %t1874) :: float
973
973
  %t1863 = call core.mul(%t1875, %t1912) :: float
974
974
  %acc1855 = acc_add agg.sum(%acc1855, %t1863) :: float
@@ -1069,7 +1069,7 @@
1069
1069
  %t1975 = load_field rates_el_319["hi"] :: float
1070
1070
  %t1967 = const -1 :: integer
1071
1071
  %t1969 = const 100000000000.0 :: float
1072
- %t323 = call core.sub(%t321, %t1962) :: float
1072
+ %t323 = call core.sub(%t1958, %t1962) :: float
1073
1073
  %t1968 = call core.eq(%t1975, %t1967) :: boolean
1074
1074
  %t1971 = select %t1968, %t1969, %t1975 :: float
1075
1075
  %t327 = call core.sub(%t1971, %t1962) :: float
@@ -1078,28 +1078,28 @@
1078
1078
  end_loop
1079
1079
  )
1080
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
1081
1089
  %acc_329 = decl_acc :: float
1082
1090
  %t330 = load_input "fed" :: array
1083
1091
  %t331 = load_field t330["married_separate"] :: any
1084
1092
  %t332 = load_field t331["rates"] :: any
1085
1093
  loop rates id=L22 in %t332 as el=%rates_el_333, idx=%rates_i_334
1086
- %t1995 = load_input "income" :: float
1087
- %t1996 = load_input "fed" :: any
1088
- %t2000 = const 0 :: integer
1089
1094
  %t2006 = load_field rates_el_333["lo"] :: float
1090
1095
  %t2019 = load_field rates_el_333["hi"] :: float
1091
1096
  %t2011 = const -1 :: integer
1092
1097
  %t2013 = const 100000000000.0 :: float
1093
1098
  %t2031 = load_field rates_el_333["rate"] :: float
1094
- %t1997 = load_field t1996["married_separate"] :: any
1099
+ %t1989 = call core.sub(%t2002, %t2006) :: float
1095
1100
  %t2012 = call core.eq(%t2019, %t2011) :: boolean
1096
- %t1998 = load_field t1997["std"] :: float
1097
1101
  %t2015 = select %t2012, %t2013, %t2019 :: float
1098
- %t1999 = call core.sub(%t1995, %t1998) :: float
1099
1102
  %t1993 = call core.sub(%t2015, %t2006) :: float
1100
- %t2001 = make_tuple(%t1999, %t2000) :: tuple<float, integer>
1101
- %t2002 = fold %t2001 fn="agg.max" :: float
1102
- %t1989 = call core.sub(%t2002, %t2006) :: float
1103
1103
  %t1994 = call core.clamp(%t1989, %t2000, %t1993) :: float
1104
1104
  %t337 = call core.mul(%t1994, %t2031) :: float
1105
1105
  %acc_329 = acc_add agg.sum(%acc_329, %t337) :: float
@@ -1124,36 +1124,36 @@
1124
1124
  %t2064 = load_field rates_el_342["hi"] :: float
1125
1125
  %t2056 = const -1 :: integer
1126
1126
  %t2058 = const 100000000000.0 :: float
1127
- %t346 = call core.gte(%t344, %t2051) :: boolean
1127
+ %t346 = call core.gte(%t2039, %t2051) :: boolean
1128
1128
  %t2057 = call core.eq(%t2064, %t2056) :: boolean
1129
1129
  %t2060 = select %t2057, %t2058, %t2064 :: float
1130
- %t349 = call core.lt(%t347, %t2060) :: boolean
1130
+ %t349 = call core.lt(%t2039, %t2060) :: boolean
1131
1131
  %t350 = call core.and(%t346, %t349) :: boolean
1132
1132
  yield %t350
1133
1133
  end_loop
1134
1134
  )
1135
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
1136
1144
  %acc_351 = decl_acc :: float
1137
1145
  %t352 = load_input "fed" :: array
1138
1146
  %t353 = load_field t352["married_separate"] :: any
1139
1147
  %t354 = load_field t353["rates"] :: any
1140
1148
  loop rates id=L24 in %t354 as el=%rates_el_355, idx=%rates_i_356
1141
- %t2079 = load_input "income" :: float
1142
- %t2080 = load_input "fed" :: any
1143
- %t2084 = const 0 :: integer
1144
1149
  %t2098 = load_field rates_el_355["lo"] :: float
1145
1150
  %t2111 = load_field rates_el_355["hi"] :: float
1146
1151
  %t2103 = const -1 :: integer
1147
1152
  %t2105 = const 100000000000.0 :: float
1148
1153
  %t2119 = load_field rates_el_355["rate"] :: float
1149
- %t2081 = load_field t2080["married_separate"] :: any
1154
+ %t2075 = call core.gte(%t2086, %t2098) :: boolean
1150
1155
  %t2104 = call core.eq(%t2111, %t2103) :: boolean
1151
- %t2082 = load_field t2081["std"] :: float
1152
1156
  %t2107 = select %t2104, %t2105, %t2111 :: float
1153
- %t2083 = call core.sub(%t2079, %t2082) :: float
1154
- %t2085 = make_tuple(%t2083, %t2084) :: tuple<float, integer>
1155
- %t2086 = fold %t2085 fn="agg.max" :: float
1156
- %t2075 = call core.gte(%t2086, %t2098) :: boolean
1157
1157
  %t2077 = call core.lt(%t2086, %t2107) :: boolean
1158
1158
  %t2078 = call core.and(%t2075, %t2077) :: boolean
1159
1159
  %t360 = select %t2078, %t2119, %t2084 :: float
@@ -1163,28 +1163,28 @@
1163
1163
  yield %t361
1164
1164
  )
1165
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
1166
1174
  %acc2121 = decl_acc :: float
1167
1175
  %t2122 = load_input "fed" :: array
1168
1176
  %t2123 = load_field t2122["married_separate"] :: any
1169
1177
  %t2124 = load_field t2123["rates"] :: any
1170
1178
  loop rates id=L43 in %t2124 as el=%t2125, idx=%t2126
1171
- %t2142 = load_input "income" :: float
1172
- %t2143 = load_input "fed" :: any
1173
- %t2147 = const 0 :: integer
1174
1179
  %t2153 = load_field t2125["lo"] :: float
1175
1180
  %t2166 = load_field t2125["hi"] :: float
1176
1181
  %t2158 = const -1 :: integer
1177
1182
  %t2160 = const 100000000000.0 :: float
1178
1183
  %t2178 = load_field t2125["rate"] :: float
1179
- %t2144 = load_field t2143["married_separate"] :: any
1184
+ %t2136 = call core.sub(%t2149, %t2153) :: float
1180
1185
  %t2159 = call core.eq(%t2166, %t2158) :: boolean
1181
- %t2145 = load_field t2144["std"] :: float
1182
1186
  %t2162 = select %t2159, %t2160, %t2166 :: float
1183
- %t2146 = call core.sub(%t2142, %t2145) :: float
1184
1187
  %t2140 = call core.sub(%t2162, %t2153) :: float
1185
- %t2148 = make_tuple(%t2146, %t2147) :: tuple<float, integer>
1186
- %t2149 = fold %t2148 fn="agg.max" :: float
1187
- %t2136 = call core.sub(%t2149, %t2153) :: float
1188
1188
  %t2141 = call core.clamp(%t2136, %t2147, %t2140) :: float
1189
1189
  %t2129 = call core.mul(%t2141, %t2178) :: float
1190
1190
  %acc2121 = acc_add agg.sum(%acc2121, %t2129) :: float
@@ -1271,28 +1271,28 @@
1271
1271
  yield %t389
1272
1272
  )
1273
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
1274
1282
  %acc2232 = decl_acc :: float
1275
1283
  %t2233 = load_input "fed" :: array
1276
1284
  %t2234 = load_field t2233["married_separate"] :: any
1277
1285
  %t2235 = load_field t2234["rates"] :: any
1278
1286
  loop rates id=L44 in %t2235 as el=%t2236, idx=%t2237
1279
- %t2253 = load_input "income" :: float
1280
- %t2254 = load_input "fed" :: any
1281
- %t2258 = const 0 :: integer
1282
1287
  %t2264 = load_field t2236["lo"] :: float
1283
1288
  %t2277 = load_field t2236["hi"] :: float
1284
1289
  %t2269 = const -1 :: integer
1285
1290
  %t2271 = const 100000000000.0 :: float
1286
1291
  %t2289 = load_field t2236["rate"] :: float
1287
- %t2255 = load_field t2254["married_separate"] :: any
1292
+ %t2247 = call core.sub(%t2260, %t2264) :: float
1288
1293
  %t2270 = call core.eq(%t2277, %t2269) :: boolean
1289
- %t2256 = load_field t2255["std"] :: float
1290
1294
  %t2273 = select %t2270, %t2271, %t2277 :: float
1291
- %t2257 = call core.sub(%t2253, %t2256) :: float
1292
1295
  %t2251 = call core.sub(%t2273, %t2264) :: float
1293
- %t2259 = make_tuple(%t2257, %t2258) :: tuple<float, integer>
1294
- %t2260 = fold %t2259 fn="agg.max" :: float
1295
- %t2247 = call core.sub(%t2260, %t2264) :: float
1296
1296
  %t2252 = call core.clamp(%t2247, %t2258, %t2251) :: float
1297
1297
  %t2240 = call core.mul(%t2252, %t2289) :: float
1298
1298
  %acc2232 = acc_add agg.sum(%acc2232, %t2240) :: float
@@ -1323,28 +1323,28 @@
1323
1323
  yield %t396
1324
1324
  )
1325
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
1326
1334
  %acc2328 = decl_acc :: float
1327
1335
  %t2329 = load_input "fed" :: array
1328
1336
  %t2330 = load_field t2329["married_separate"] :: any
1329
1337
  %t2331 = load_field t2330["rates"] :: any
1330
1338
  loop rates id=L45 in %t2331 as el=%t2332, idx=%t2333
1331
- %t2349 = load_input "income" :: float
1332
- %t2350 = load_input "fed" :: any
1333
- %t2354 = const 0 :: integer
1334
1339
  %t2360 = load_field t2332["lo"] :: float
1335
1340
  %t2373 = load_field t2332["hi"] :: float
1336
1341
  %t2365 = const -1 :: integer
1337
1342
  %t2367 = const 100000000000.0 :: float
1338
1343
  %t2385 = load_field t2332["rate"] :: float
1339
- %t2351 = load_field t2350["married_separate"] :: any
1344
+ %t2343 = call core.sub(%t2356, %t2360) :: float
1340
1345
  %t2366 = call core.eq(%t2373, %t2365) :: boolean
1341
- %t2352 = load_field t2351["std"] :: float
1342
1346
  %t2369 = select %t2366, %t2367, %t2373 :: float
1343
- %t2353 = call core.sub(%t2349, %t2352) :: float
1344
1347
  %t2347 = call core.sub(%t2369, %t2360) :: float
1345
- %t2355 = make_tuple(%t2353, %t2354) :: tuple<float, integer>
1346
- %t2356 = fold %t2355 fn="agg.max" :: float
1347
- %t2343 = call core.sub(%t2356, %t2360) :: float
1348
1348
  %t2348 = call core.clamp(%t2343, %t2354, %t2347) :: float
1349
1349
  %t2336 = call core.mul(%t2348, %t2385) :: float
1350
1350
  %acc2328 = acc_add agg.sum(%acc2328, %t2336) :: float
@@ -1380,27 +1380,27 @@
1380
1380
  )
1381
1381
  (Declaration after_tax_ms
1382
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
1383
1390
  %acc2424 = decl_acc :: float
1384
1391
  %t2425 = load_input "fed" :: array
1385
1392
  %t2426 = load_field t2425["married_separate"] :: any
1386
1393
  %t2427 = load_field t2426["rates"] :: any
1387
1394
  loop rates id=L46 in %t2427 as el=%t2428, idx=%t2429
1388
- %t2446 = load_input "fed" :: any
1389
- %t2450 = const 0 :: integer
1390
1395
  %t2456 = load_field t2428["lo"] :: float
1391
1396
  %t2469 = load_field t2428["hi"] :: float
1392
1397
  %t2461 = const -1 :: integer
1393
1398
  %t2463 = const 100000000000.0 :: float
1394
1399
  %t2481 = load_field t2428["rate"] :: float
1395
- %t2447 = load_field t2446["married_separate"] :: any
1400
+ %t2439 = call core.sub(%t2452, %t2456) :: float
1396
1401
  %t2462 = call core.eq(%t2469, %t2461) :: boolean
1397
- %t2448 = load_field t2447["std"] :: float
1398
1402
  %t2465 = select %t2462, %t2463, %t2469 :: float
1399
- %t2449 = call core.sub(%t403, %t2448) :: float
1400
1403
  %t2443 = call core.sub(%t2465, %t2456) :: float
1401
- %t2451 = make_tuple(%t2449, %t2450) :: tuple<float, integer>
1402
- %t2452 = fold %t2451 fn="agg.max" :: float
1403
- %t2439 = call core.sub(%t2452, %t2456) :: float
1404
1404
  %t2444 = call core.clamp(%t2439, %t2450, %t2443) :: float
1405
1405
  %t2432 = call core.mul(%t2444, %t2481) :: float
1406
1406
  %acc2424 = acc_add agg.sum(%acc2424, %t2432) :: float
@@ -1433,27 +1433,27 @@
1433
1433
  )
1434
1434
  (Declaration take_home_ms
1435
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
1436
1443
  %acc2523 = decl_acc :: float
1437
1444
  %t2524 = load_input "fed" :: array
1438
1445
  %t2525 = load_field t2524["married_separate"] :: any
1439
1446
  %t2526 = load_field t2525["rates"] :: any
1440
1447
  loop rates id=L47 in %t2526 as el=%t2527, idx=%t2528
1441
- %t2545 = load_input "fed" :: any
1442
- %t2549 = const 0 :: integer
1443
1448
  %t2555 = load_field t2527["lo"] :: float
1444
1449
  %t2568 = load_field t2527["hi"] :: float
1445
1450
  %t2560 = const -1 :: integer
1446
1451
  %t2562 = const 100000000000.0 :: float
1447
1452
  %t2580 = load_field t2527["rate"] :: float
1448
- %t2546 = load_field t2545["married_separate"] :: any
1453
+ %t2538 = call core.sub(%t2551, %t2555) :: float
1449
1454
  %t2561 = call core.eq(%t2568, %t2560) :: boolean
1450
- %t2547 = load_field t2546["std"] :: float
1451
1455
  %t2564 = select %t2561, %t2562, %t2568 :: float
1452
- %t2548 = call core.sub(%t2512, %t2547) :: float
1453
1456
  %t2542 = call core.sub(%t2564, %t2555) :: float
1454
- %t2550 = make_tuple(%t2548, %t2549) :: tuple<float, integer>
1455
- %t2551 = fold %t2550 fn="agg.max" :: float
1456
- %t2538 = call core.sub(%t2551, %t2555) :: float
1457
1457
  %t2543 = call core.clamp(%t2538, %t2549, %t2542) :: float
1458
1458
  %t2531 = call core.mul(%t2543, %t2580) :: float
1459
1459
  %acc2523 = acc_add agg.sum(%acc2523, %t2531) :: float
@@ -1554,7 +1554,7 @@
1554
1554
  %t2643 = load_field rates_el_449["hi"] :: float
1555
1555
  %t2635 = const -1 :: integer
1556
1556
  %t2637 = const 100000000000.0 :: float
1557
- %t453 = call core.sub(%t451, %t2630) :: float
1557
+ %t453 = call core.sub(%t2626, %t2630) :: float
1558
1558
  %t2636 = call core.eq(%t2643, %t2635) :: boolean
1559
1559
  %t2639 = select %t2636, %t2637, %t2643 :: float
1560
1560
  %t457 = call core.sub(%t2639, %t2630) :: float
@@ -1563,28 +1563,28 @@
1563
1563
  end_loop
1564
1564
  )
1565
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
1566
1574
  %acc_459 = decl_acc :: float
1567
1575
  %t460 = load_input "fed" :: array
1568
1576
  %t461 = load_field t460["head_of_household"] :: any
1569
1577
  %t462 = load_field t461["rates"] :: any
1570
1578
  loop rates id=L30 in %t462 as el=%rates_el_463, idx=%rates_i_464
1571
- %t2663 = load_input "income" :: float
1572
- %t2664 = load_input "fed" :: any
1573
- %t2668 = const 0 :: integer
1574
1579
  %t2674 = load_field rates_el_463["lo"] :: float
1575
1580
  %t2687 = load_field rates_el_463["hi"] :: float
1576
1581
  %t2679 = const -1 :: integer
1577
1582
  %t2681 = const 100000000000.0 :: float
1578
1583
  %t2699 = load_field rates_el_463["rate"] :: float
1579
- %t2665 = load_field t2664["head_of_household"] :: any
1584
+ %t2657 = call core.sub(%t2670, %t2674) :: float
1580
1585
  %t2680 = call core.eq(%t2687, %t2679) :: boolean
1581
- %t2666 = load_field t2665["std"] :: float
1582
1586
  %t2683 = select %t2680, %t2681, %t2687 :: float
1583
- %t2667 = call core.sub(%t2663, %t2666) :: float
1584
1587
  %t2661 = call core.sub(%t2683, %t2674) :: float
1585
- %t2669 = make_tuple(%t2667, %t2668) :: tuple<float, integer>
1586
- %t2670 = fold %t2669 fn="agg.max" :: float
1587
- %t2657 = call core.sub(%t2670, %t2674) :: float
1588
1588
  %t2662 = call core.clamp(%t2657, %t2668, %t2661) :: float
1589
1589
  %t467 = call core.mul(%t2662, %t2699) :: float
1590
1590
  %acc_459 = acc_add agg.sum(%acc_459, %t467) :: float
@@ -1609,36 +1609,36 @@
1609
1609
  %t2732 = load_field rates_el_472["hi"] :: float
1610
1610
  %t2724 = const -1 :: integer
1611
1611
  %t2726 = const 100000000000.0 :: float
1612
- %t476 = call core.gte(%t474, %t2719) :: boolean
1612
+ %t476 = call core.gte(%t2707, %t2719) :: boolean
1613
1613
  %t2725 = call core.eq(%t2732, %t2724) :: boolean
1614
1614
  %t2728 = select %t2725, %t2726, %t2732 :: float
1615
- %t479 = call core.lt(%t477, %t2728) :: boolean
1615
+ %t479 = call core.lt(%t2707, %t2728) :: boolean
1616
1616
  %t480 = call core.and(%t476, %t479) :: boolean
1617
1617
  yield %t480
1618
1618
  end_loop
1619
1619
  )
1620
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
1621
1629
  %acc_481 = decl_acc :: float
1622
1630
  %t482 = load_input "fed" :: array
1623
1631
  %t483 = load_field t482["head_of_household"] :: any
1624
1632
  %t484 = load_field t483["rates"] :: any
1625
1633
  loop rates id=L32 in %t484 as el=%rates_el_485, idx=%rates_i_486
1626
- %t2747 = load_input "income" :: float
1627
- %t2748 = load_input "fed" :: any
1628
- %t2752 = const 0 :: integer
1629
1634
  %t2766 = load_field rates_el_485["lo"] :: float
1630
1635
  %t2779 = load_field rates_el_485["hi"] :: float
1631
1636
  %t2771 = const -1 :: integer
1632
1637
  %t2773 = const 100000000000.0 :: float
1633
1638
  %t2787 = load_field rates_el_485["rate"] :: float
1634
- %t2749 = load_field t2748["head_of_household"] :: any
1639
+ %t2743 = call core.gte(%t2754, %t2766) :: boolean
1635
1640
  %t2772 = call core.eq(%t2779, %t2771) :: boolean
1636
- %t2750 = load_field t2749["std"] :: float
1637
1641
  %t2775 = select %t2772, %t2773, %t2779 :: float
1638
- %t2751 = call core.sub(%t2747, %t2750) :: float
1639
- %t2753 = make_tuple(%t2751, %t2752) :: tuple<float, integer>
1640
- %t2754 = fold %t2753 fn="agg.max" :: float
1641
- %t2743 = call core.gte(%t2754, %t2766) :: boolean
1642
1642
  %t2745 = call core.lt(%t2754, %t2775) :: boolean
1643
1643
  %t2746 = call core.and(%t2743, %t2745) :: boolean
1644
1644
  %t490 = select %t2746, %t2787, %t2752 :: float
@@ -1648,28 +1648,28 @@
1648
1648
  yield %t491
1649
1649
  )
1650
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
1651
1659
  %acc2789 = decl_acc :: float
1652
1660
  %t2790 = load_input "fed" :: array
1653
1661
  %t2791 = load_field t2790["head_of_household"] :: any
1654
1662
  %t2792 = load_field t2791["rates"] :: any
1655
1663
  loop rates id=L48 in %t2792 as el=%t2793, idx=%t2794
1656
- %t2810 = load_input "income" :: float
1657
- %t2811 = load_input "fed" :: any
1658
- %t2815 = const 0 :: integer
1659
1664
  %t2821 = load_field t2793["lo"] :: float
1660
1665
  %t2834 = load_field t2793["hi"] :: float
1661
1666
  %t2826 = const -1 :: integer
1662
1667
  %t2828 = const 100000000000.0 :: float
1663
1668
  %t2846 = load_field t2793["rate"] :: float
1664
- %t2812 = load_field t2811["head_of_household"] :: any
1669
+ %t2804 = call core.sub(%t2817, %t2821) :: float
1665
1670
  %t2827 = call core.eq(%t2834, %t2826) :: boolean
1666
- %t2813 = load_field t2812["std"] :: float
1667
1671
  %t2830 = select %t2827, %t2828, %t2834 :: float
1668
- %t2814 = call core.sub(%t2810, %t2813) :: float
1669
1672
  %t2808 = call core.sub(%t2830, %t2821) :: float
1670
- %t2816 = make_tuple(%t2814, %t2815) :: tuple<float, integer>
1671
- %t2817 = fold %t2816 fn="agg.max" :: float
1672
- %t2804 = call core.sub(%t2817, %t2821) :: float
1673
1673
  %t2809 = call core.clamp(%t2804, %t2815, %t2808) :: float
1674
1674
  %t2797 = call core.mul(%t2809, %t2846) :: float
1675
1675
  %acc2789 = acc_add agg.sum(%acc2789, %t2797) :: float
@@ -1756,28 +1756,28 @@
1756
1756
  yield %t519
1757
1757
  )
1758
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
1759
1767
  %acc2900 = decl_acc :: float
1760
1768
  %t2901 = load_input "fed" :: array
1761
1769
  %t2902 = load_field t2901["head_of_household"] :: any
1762
1770
  %t2903 = load_field t2902["rates"] :: any
1763
1771
  loop rates id=L49 in %t2903 as el=%t2904, idx=%t2905
1764
- %t2921 = load_input "income" :: float
1765
- %t2922 = load_input "fed" :: any
1766
- %t2926 = const 0 :: integer
1767
1772
  %t2932 = load_field t2904["lo"] :: float
1768
1773
  %t2945 = load_field t2904["hi"] :: float
1769
1774
  %t2937 = const -1 :: integer
1770
1775
  %t2939 = const 100000000000.0 :: float
1771
1776
  %t2957 = load_field t2904["rate"] :: float
1772
- %t2923 = load_field t2922["head_of_household"] :: any
1777
+ %t2915 = call core.sub(%t2928, %t2932) :: float
1773
1778
  %t2938 = call core.eq(%t2945, %t2937) :: boolean
1774
- %t2924 = load_field t2923["std"] :: float
1775
1779
  %t2941 = select %t2938, %t2939, %t2945 :: float
1776
- %t2925 = call core.sub(%t2921, %t2924) :: float
1777
1780
  %t2919 = call core.sub(%t2941, %t2932) :: float
1778
- %t2927 = make_tuple(%t2925, %t2926) :: tuple<float, integer>
1779
- %t2928 = fold %t2927 fn="agg.max" :: float
1780
- %t2915 = call core.sub(%t2928, %t2932) :: float
1781
1781
  %t2920 = call core.clamp(%t2915, %t2926, %t2919) :: float
1782
1782
  %t2908 = call core.mul(%t2920, %t2957) :: float
1783
1783
  %acc2900 = acc_add agg.sum(%acc2900, %t2908) :: float
@@ -1808,28 +1808,28 @@
1808
1808
  yield %t526
1809
1809
  )
1810
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
1811
1819
  %acc2996 = decl_acc :: float
1812
1820
  %t2997 = load_input "fed" :: array
1813
1821
  %t2998 = load_field t2997["head_of_household"] :: any
1814
1822
  %t2999 = load_field t2998["rates"] :: any
1815
1823
  loop rates id=L50 in %t2999 as el=%t3000, idx=%t3001
1816
- %t3017 = load_input "income" :: float
1817
- %t3018 = load_input "fed" :: any
1818
- %t3022 = const 0 :: integer
1819
1824
  %t3028 = load_field t3000["lo"] :: float
1820
1825
  %t3041 = load_field t3000["hi"] :: float
1821
1826
  %t3033 = const -1 :: integer
1822
1827
  %t3035 = const 100000000000.0 :: float
1823
1828
  %t3053 = load_field t3000["rate"] :: float
1824
- %t3019 = load_field t3018["head_of_household"] :: any
1829
+ %t3011 = call core.sub(%t3024, %t3028) :: float
1825
1830
  %t3034 = call core.eq(%t3041, %t3033) :: boolean
1826
- %t3020 = load_field t3019["std"] :: float
1827
1831
  %t3037 = select %t3034, %t3035, %t3041 :: float
1828
- %t3021 = call core.sub(%t3017, %t3020) :: float
1829
1832
  %t3015 = call core.sub(%t3037, %t3028) :: float
1830
- %t3023 = make_tuple(%t3021, %t3022) :: tuple<float, integer>
1831
- %t3024 = fold %t3023 fn="agg.max" :: float
1832
- %t3011 = call core.sub(%t3024, %t3028) :: float
1833
1833
  %t3016 = call core.clamp(%t3011, %t3022, %t3015) :: float
1834
1834
  %t3004 = call core.mul(%t3016, %t3053) :: float
1835
1835
  %acc2996 = acc_add agg.sum(%acc2996, %t3004) :: float
@@ -1865,27 +1865,27 @@
1865
1865
  )
1866
1866
  (Declaration after_tax_hoh
1867
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
1868
1875
  %acc3092 = decl_acc :: float
1869
1876
  %t3093 = load_input "fed" :: array
1870
1877
  %t3094 = load_field t3093["head_of_household"] :: any
1871
1878
  %t3095 = load_field t3094["rates"] :: any
1872
1879
  loop rates id=L51 in %t3095 as el=%t3096, idx=%t3097
1873
- %t3114 = load_input "fed" :: any
1874
- %t3118 = const 0 :: integer
1875
1880
  %t3124 = load_field t3096["lo"] :: float
1876
1881
  %t3137 = load_field t3096["hi"] :: float
1877
1882
  %t3129 = const -1 :: integer
1878
1883
  %t3131 = const 100000000000.0 :: float
1879
1884
  %t3149 = load_field t3096["rate"] :: float
1880
- %t3115 = load_field t3114["head_of_household"] :: any
1885
+ %t3107 = call core.sub(%t3120, %t3124) :: float
1881
1886
  %t3130 = call core.eq(%t3137, %t3129) :: boolean
1882
- %t3116 = load_field t3115["std"] :: float
1883
1887
  %t3133 = select %t3130, %t3131, %t3137 :: float
1884
- %t3117 = call core.sub(%t533, %t3116) :: float
1885
1888
  %t3111 = call core.sub(%t3133, %t3124) :: float
1886
- %t3119 = make_tuple(%t3117, %t3118) :: tuple<float, integer>
1887
- %t3120 = fold %t3119 fn="agg.max" :: float
1888
- %t3107 = call core.sub(%t3120, %t3124) :: float
1889
1889
  %t3112 = call core.clamp(%t3107, %t3118, %t3111) :: float
1890
1890
  %t3100 = call core.mul(%t3112, %t3149) :: float
1891
1891
  %acc3092 = acc_add agg.sum(%acc3092, %t3100) :: float
@@ -1918,27 +1918,27 @@
1918
1918
  )
1919
1919
  (Declaration take_home_hoh
1920
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
1921
1928
  %acc3191 = decl_acc :: float
1922
1929
  %t3192 = load_input "fed" :: array
1923
1930
  %t3193 = load_field t3192["head_of_household"] :: any
1924
1931
  %t3194 = load_field t3193["rates"] :: any
1925
1932
  loop rates id=L52 in %t3194 as el=%t3195, idx=%t3196
1926
- %t3213 = load_input "fed" :: any
1927
- %t3217 = const 0 :: integer
1928
1933
  %t3223 = load_field t3195["lo"] :: float
1929
1934
  %t3236 = load_field t3195["hi"] :: float
1930
1935
  %t3228 = const -1 :: integer
1931
1936
  %t3230 = const 100000000000.0 :: float
1932
1937
  %t3248 = load_field t3195["rate"] :: float
1933
- %t3214 = load_field t3213["head_of_household"] :: any
1938
+ %t3206 = call core.sub(%t3219, %t3223) :: float
1934
1939
  %t3229 = call core.eq(%t3236, %t3228) :: boolean
1935
- %t3215 = load_field t3214["std"] :: float
1936
1940
  %t3232 = select %t3229, %t3230, %t3236 :: float
1937
- %t3216 = call core.sub(%t3180, %t3215) :: float
1938
1941
  %t3210 = call core.sub(%t3232, %t3223) :: float
1939
- %t3218 = make_tuple(%t3216, %t3217) :: tuple<float, integer>
1940
- %t3219 = fold %t3218 fn="agg.max" :: float
1941
- %t3206 = call core.sub(%t3219, %t3223) :: float
1942
1942
  %t3211 = call core.clamp(%t3206, %t3217, %t3210) :: float
1943
1943
  %t3199 = call core.mul(%t3211, %t3248) :: float
1944
1944
  %acc3191 = acc_add agg.sum(%acc3191, %t3199) :: float
@@ -1972,28 +1972,28 @@
1972
1972
  yield %t538
1973
1973
  )
1974
1974
  (Declaration summary
1975
+ %t3301 = load_input "income" :: float
1976
+ %t3302 = load_input "fed" :: any
1977
+ %t3303 = load_field t3302["single"] :: any
1978
+ %t3304 = load_field t3303["std"] :: float
1979
+ %t3305 = call core.sub(%t3301, %t3304) :: float
1980
+ %t3306 = const 0 :: integer
1981
+ %t3307 = make_tuple(%t3305, %t3306) :: tuple<float, integer>
1982
+ %t3308 = fold %t3307 fn="agg.max" :: float
1975
1983
  %acc3280 = decl_acc :: float
1976
1984
  %t3281 = load_input "fed" :: array
1977
1985
  %t3282 = load_field t3281["single"] :: any
1978
1986
  %t3283 = load_field t3282["rates"] :: any
1979
1987
  %acc3349 = decl_acc :: float
1980
1988
  loop rates id=L53 in %t3283 as el=%t3284, idx=%t3285
1981
- %t3301 = load_input "income" :: float
1982
- %t3302 = load_input "fed" :: any
1983
- %t3306 = const 0 :: integer
1984
1989
  %t3320 = load_field t3284["lo"] :: float
1985
1990
  %t3333 = load_field t3284["hi"] :: float
1986
1991
  %t3325 = const -1 :: integer
1987
1992
  %t3327 = const 100000000000.0 :: float
1988
1993
  %t3341 = load_field t3284["rate"] :: float
1989
- %t3303 = load_field t3302["single"] :: any
1994
+ %t3297 = call core.gte(%t3308, %t3320) :: boolean
1990
1995
  %t3326 = call core.eq(%t3333, %t3325) :: boolean
1991
- %t3304 = load_field t3303["std"] :: float
1992
1996
  %t3329 = select %t3326, %t3327, %t3333 :: float
1993
- %t3305 = call core.sub(%t3301, %t3304) :: float
1994
- %t3307 = make_tuple(%t3305, %t3306) :: tuple<float, integer>
1995
- %t3308 = fold %t3307 fn="agg.max" :: float
1996
- %t3297 = call core.gte(%t3308, %t3320) :: boolean
1997
1997
  %t3299 = call core.lt(%t3308, %t3329) :: boolean
1998
1998
  %t3300 = call core.and(%t3297, %t3299) :: boolean
1999
1999
  %t3289 = select %t3300, %t3341, %t3306 :: float
@@ -2123,22 +2123,22 @@
2123
2123
  %t3818 = call core.sub(%t3301, %t3825) :: float
2124
2124
  %t3815 = call core.sub(%t3818, %t558) :: float
2125
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
2126
2131
  %acc3914 = decl_acc :: float
2127
2132
  %t3916 = load_field t3281["married_joint"] :: any
2128
2133
  %t3917 = load_field t3916["rates"] :: any
2129
2134
  %acc3983 = decl_acc :: float
2130
2135
  loop rates id=L60 in %t3917 as el=%t3918, idx=%t3919
2131
- %t3937 = load_field t3302["married_joint"] :: any
2132
2136
  %t3954 = load_field t3918["lo"] :: float
2133
2137
  %t3967 = load_field t3918["hi"] :: float
2134
2138
  %t3975 = load_field t3918["rate"] :: float
2135
- %t3938 = load_field t3937["std"] :: float
2139
+ %t3931 = call core.gte(%t3942, %t3954) :: boolean
2136
2140
  %t3960 = call core.eq(%t3967, %t3325) :: boolean
2137
- %t3939 = call core.sub(%t3301, %t3938) :: float
2138
2141
  %t3963 = select %t3960, %t3327, %t3967 :: float
2139
- %t3941 = make_tuple(%t3939, %t3306) :: tuple<float, integer>
2140
- %t3942 = fold %t3941 fn="agg.max" :: float
2141
- %t3931 = call core.gte(%t3942, %t3954) :: boolean
2142
2142
  %t3933 = call core.lt(%t3942, %t3963) :: boolean
2143
2143
  %t3934 = call core.and(%t3931, %t3933) :: boolean
2144
2144
  %t3923 = select %t3934, %t3975, %t3306 :: float
@@ -2249,22 +2249,22 @@
2249
2249
  %t4462 = call core.sub(%t3301, %t4469) :: float
2250
2250
  %t4459 = call core.sub(%t4462, %t558) :: float
2251
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
2252
2257
  %acc4560 = decl_acc :: float
2253
2258
  %t4562 = load_field t3281["married_separate"] :: any
2254
2259
  %t4563 = load_field t4562["rates"] :: any
2255
2260
  %acc4629 = decl_acc :: float
2256
2261
  loop rates id=L67 in %t4563 as el=%t4564, idx=%t4565
2257
- %t4583 = load_field t3302["married_separate"] :: any
2258
2262
  %t4600 = load_field t4564["lo"] :: float
2259
2263
  %t4613 = load_field t4564["hi"] :: float
2260
2264
  %t4621 = load_field t4564["rate"] :: float
2261
- %t4584 = load_field t4583["std"] :: float
2265
+ %t4577 = call core.gte(%t4588, %t4600) :: boolean
2262
2266
  %t4606 = call core.eq(%t4613, %t3325) :: boolean
2263
- %t4585 = call core.sub(%t3301, %t4584) :: float
2264
2267
  %t4609 = select %t4606, %t3327, %t4613 :: float
2265
- %t4587 = make_tuple(%t4585, %t3306) :: tuple<float, integer>
2266
- %t4588 = fold %t4587 fn="agg.max" :: float
2267
- %t4577 = call core.gte(%t4588, %t4600) :: boolean
2268
2268
  %t4579 = call core.lt(%t4588, %t4609) :: boolean
2269
2269
  %t4580 = call core.and(%t4577, %t4579) :: boolean
2270
2270
  %t4569 = select %t4580, %t4621, %t3306 :: float
@@ -2375,22 +2375,22 @@
2375
2375
  %t5108 = call core.sub(%t3301, %t5115) :: float
2376
2376
  %t5105 = call core.sub(%t5108, %t558) :: float
2377
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
2378
2383
  %acc5206 = decl_acc :: float
2379
2384
  %t5208 = load_field t3281["head_of_household"] :: any
2380
2385
  %t5209 = load_field t5208["rates"] :: any
2381
2386
  %acc5275 = decl_acc :: float
2382
2387
  loop rates id=L74 in %t5209 as el=%t5210, idx=%t5211
2383
- %t5229 = load_field t3302["head_of_household"] :: any
2384
2388
  %t5246 = load_field t5210["lo"] :: float
2385
2389
  %t5259 = load_field t5210["hi"] :: float
2386
2390
  %t5267 = load_field t5210["rate"] :: float
2387
- %t5230 = load_field t5229["std"] :: float
2391
+ %t5223 = call core.gte(%t5234, %t5246) :: boolean
2388
2392
  %t5252 = call core.eq(%t5259, %t3325) :: boolean
2389
- %t5231 = call core.sub(%t3301, %t5230) :: float
2390
2393
  %t5255 = select %t5252, %t3327, %t5259 :: float
2391
- %t5233 = make_tuple(%t5231, %t3306) :: tuple<float, integer>
2392
- %t5234 = fold %t5233 fn="agg.max" :: float
2393
- %t5223 = call core.gte(%t5234, %t5246) :: boolean
2394
2394
  %t5225 = call core.lt(%t5234, %t5255) :: boolean
2395
2395
  %t5226 = call core.and(%t5223, %t5225) :: boolean
2396
2396
  %t5215 = select %t5226, %t5267, %t3306 :: float