kumi 0.0.23 → 0.0.24
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +3 -0
- data/README.md +2 -2
- data/golden/array_element/expected/schema_ruby.rb +1 -1
- data/golden/array_index/expected/schema_ruby.rb +1 -1
- data/golden/array_operations/expected/schema_ruby.rb +1 -1
- data/golden/cascade_logic/expected/schema_ruby.rb +1 -1
- data/golden/chained_fusion/expected/schema_ruby.rb +1 -1
- data/golden/element_arrays/expected/schema_ruby.rb +1 -1
- data/golden/empty_and_null_inputs/expected/schema_ruby.rb +1 -1
- data/golden/game_of_life/expected/lir_00_unoptimized.txt +33 -33
- data/golden/game_of_life/expected/lir_01_hoist_scalar_references.txt +33 -33
- data/golden/game_of_life/expected/lir_02_inlined.txt +296 -296
- data/golden/game_of_life/expected/lir_03_cse.txt +128 -128
- data/golden/game_of_life/expected/lir_04_1_loop_fusion.txt +128 -128
- data/golden/game_of_life/expected/lir_04_loop_invcm.txt +128 -128
- data/golden/game_of_life/expected/lir_06_const_prop.txt +128 -128
- data/golden/game_of_life/expected/schema_ruby.rb +1 -1
- data/golden/hash_keys/expected/schema_ruby.rb +1 -1
- data/golden/hash_keys/schema.kumi +4 -5
- data/golden/hash_value/expected/schema_ruby.rb +1 -1
- data/golden/hierarchical_complex/expected/schema_ruby.rb +1 -1
- data/golden/inline_rename_scope_leak/expected/ast.txt +48 -0
- data/golden/inline_rename_scope_leak/expected/input_plan.txt +10 -0
- data/golden/inline_rename_scope_leak/expected/lir_00_unoptimized.txt +35 -0
- data/golden/inline_rename_scope_leak/expected/lir_01_hoist_scalar_references.txt +35 -0
- data/golden/inline_rename_scope_leak/expected/lir_02_inlined.txt +49 -0
- data/golden/inline_rename_scope_leak/expected/lir_03_cse.txt +49 -0
- data/golden/inline_rename_scope_leak/expected/lir_04_1_loop_fusion.txt +49 -0
- data/golden/inline_rename_scope_leak/expected/lir_04_loop_invcm.txt +49 -0
- data/golden/inline_rename_scope_leak/expected/lir_06_const_prop.txt +49 -0
- data/golden/inline_rename_scope_leak/expected/nast.txt +31 -0
- data/golden/inline_rename_scope_leak/expected/schema_javascript.mjs +51 -0
- data/golden/inline_rename_scope_leak/expected/schema_ruby.rb +82 -0
- data/golden/inline_rename_scope_leak/expected/snast.txt +31 -0
- data/golden/inline_rename_scope_leak/expected.json +7 -0
- data/golden/inline_rename_scope_leak/input.json +4 -0
- data/golden/inline_rename_scope_leak/schema.kumi +24 -0
- data/golden/input_reference/expected/schema_ruby.rb +1 -1
- data/golden/interleaved_fusion/expected/schema_ruby.rb +1 -1
- data/golden/let_inline/expected/schema_ruby.rb +1 -1
- data/golden/loop_fusion/expected/schema_ruby.rb +1 -1
- data/golden/min_reduce_scope/expected/schema_ruby.rb +1 -1
- data/golden/mixed_dimensions/expected/schema_ruby.rb +1 -1
- data/golden/multirank_hoisting/expected/schema_ruby.rb +1 -1
- data/golden/nested_hash/expected/schema_ruby.rb +1 -1
- data/golden/reduction_broadcast/expected/schema_ruby.rb +1 -1
- data/golden/roll/expected/lir_00_unoptimized.txt +8 -8
- data/golden/roll/expected/lir_01_hoist_scalar_references.txt +8 -8
- data/golden/roll/expected/lir_02_inlined.txt +8 -8
- data/golden/roll/expected/lir_03_cse.txt +8 -8
- data/golden/roll/expected/lir_04_1_loop_fusion.txt +8 -8
- data/golden/roll/expected/lir_04_loop_invcm.txt +8 -8
- data/golden/roll/expected/lir_06_const_prop.txt +8 -8
- data/golden/roll/expected/schema_ruby.rb +1 -1
- data/golden/shift/expected/lir_00_unoptimized.txt +12 -12
- data/golden/shift/expected/lir_01_hoist_scalar_references.txt +12 -12
- data/golden/shift/expected/lir_02_inlined.txt +12 -12
- data/golden/shift/expected/lir_03_cse.txt +12 -12
- data/golden/shift/expected/lir_04_1_loop_fusion.txt +12 -12
- data/golden/shift/expected/lir_04_loop_invcm.txt +12 -12
- data/golden/shift/expected/lir_06_const_prop.txt +12 -12
- data/golden/shift/expected/schema_ruby.rb +1 -1
- data/golden/shift_2d/expected/lir_00_unoptimized.txt +48 -48
- data/golden/shift_2d/expected/lir_01_hoist_scalar_references.txt +48 -48
- data/golden/shift_2d/expected/lir_02_inlined.txt +48 -48
- data/golden/shift_2d/expected/lir_03_cse.txt +48 -48
- data/golden/shift_2d/expected/lir_04_1_loop_fusion.txt +48 -48
- data/golden/shift_2d/expected/lir_04_loop_invcm.txt +48 -48
- data/golden/shift_2d/expected/lir_06_const_prop.txt +48 -48
- data/golden/shift_2d/expected/schema_ruby.rb +1 -1
- data/golden/simple_math/expected/schema_ruby.rb +1 -1
- data/golden/streaming_basics/expected/schema_ruby.rb +1 -1
- data/golden/tuples/expected/lir_00_unoptimized.txt +4 -4
- data/golden/tuples/expected/lir_01_hoist_scalar_references.txt +4 -4
- data/golden/tuples/expected/lir_02_inlined.txt +4 -4
- data/golden/tuples/expected/lir_03_cse.txt +4 -4
- data/golden/tuples/expected/lir_04_1_loop_fusion.txt +4 -4
- data/golden/tuples/expected/lir_04_loop_invcm.txt +4 -4
- data/golden/tuples/expected/lir_06_const_prop.txt +4 -4
- data/golden/tuples/expected/schema_ruby.rb +1 -1
- data/golden/tuples_and_arrays/expected/lir_00_unoptimized.txt +1 -1
- data/golden/tuples_and_arrays/expected/lir_01_hoist_scalar_references.txt +1 -1
- data/golden/tuples_and_arrays/expected/lir_02_inlined.txt +2 -2
- data/golden/tuples_and_arrays/expected/lir_03_cse.txt +2 -2
- data/golden/tuples_and_arrays/expected/lir_04_1_loop_fusion.txt +2 -2
- data/golden/tuples_and_arrays/expected/lir_04_loop_invcm.txt +2 -2
- data/golden/tuples_and_arrays/expected/lir_06_const_prop.txt +2 -2
- data/golden/tuples_and_arrays/expected/schema_ruby.rb +1 -1
- data/golden/us_tax_2024/expected/ast.txt +865 -0
- data/golden/us_tax_2024/expected/input_plan.txt +61 -0
- data/golden/us_tax_2024/expected/lir_00_unoptimized.txt +901 -0
- data/golden/us_tax_2024/expected/lir_01_hoist_scalar_references.txt +901 -0
- data/golden/us_tax_2024/expected/lir_02_inlined.txt +5178 -0
- data/golden/us_tax_2024/expected/lir_03_cse.txt +2499 -0
- data/golden/us_tax_2024/expected/lir_04_1_loop_fusion.txt +2519 -0
- data/golden/us_tax_2024/expected/lir_04_loop_invcm.txt +2439 -0
- data/golden/us_tax_2024/expected/lir_06_const_prop.txt +2439 -0
- data/golden/us_tax_2024/expected/nast.txt +976 -0
- data/golden/us_tax_2024/expected/schema_javascript.mjs +584 -0
- data/golden/us_tax_2024/expected/schema_ruby.rb +639 -0
- data/golden/us_tax_2024/expected/snast.txt +976 -0
- data/golden/us_tax_2024/expected.json +1 -0
- data/golden/us_tax_2024/input.json +168 -0
- data/golden/us_tax_2024/schema.kumi +203 -0
- data/golden/with_constants/expected/schema_ruby.rb +1 -1
- data/lib/kumi/core/analyzer/passes/lir/inline_declarations_pass.rb +181 -105
- data/lib/kumi/version.rb +1 -1
- metadata +33 -1
@@ -0,0 +1,639 @@
|
|
1
|
+
# Autogenerated by Kumi Codegen
|
2
|
+
module Kumi::Compiled::KUMI_579630ac2e4efb73c2ff1d43016b1220da91788dd8ebe96021285d536e08ec39
|
3
|
+
def self.from(input_data = nil)
|
4
|
+
instance = Object.new
|
5
|
+
instance.extend(self)
|
6
|
+
instance.instance_variable_set(:@input, input_data)
|
7
|
+
instance
|
8
|
+
end
|
9
|
+
|
10
|
+
def self.__kumi_executable__
|
11
|
+
instance = Object.new
|
12
|
+
instance.extend(self)
|
13
|
+
instance
|
14
|
+
end
|
15
|
+
|
16
|
+
def update(input_data)
|
17
|
+
@input = @input.merge(input_data)
|
18
|
+
self
|
19
|
+
end
|
20
|
+
|
21
|
+
def [](name)
|
22
|
+
case name
|
23
|
+
when :summary then _summary
|
24
|
+
else raise KeyError, "Unknown declaration"
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
def _summary(input = @input)
|
29
|
+
acc3280 = 0.0
|
30
|
+
t3281 = input["fed"] || input[:fed]
|
31
|
+
t3282 = t3281["single"] || t3281[:single]
|
32
|
+
t3283 = t3282["rates"] || t3282[:rates]
|
33
|
+
acc3349 = 0.0
|
34
|
+
t3301 = input["income"] || input[:income]
|
35
|
+
t3302 = input["fed"] || input[:fed]
|
36
|
+
t3306 = 0
|
37
|
+
t3325 = -1
|
38
|
+
t3327 = 100000000000.0
|
39
|
+
t3303 = t3302["single"] || t3302[:single]
|
40
|
+
t3304 = t3303["std"] || t3303[:std]
|
41
|
+
t3305 = t3301 - t3304
|
42
|
+
t3307 = [t3305, t3306]
|
43
|
+
t3308 = t3307.max
|
44
|
+
t3283.each_with_index do |t3284, t3285|
|
45
|
+
t3320 = t3284["lo"] || t3284[:lo]
|
46
|
+
t3333 = t3284["hi"] || t3284[:hi]
|
47
|
+
t3341 = t3284["rate"] || t3284[:rate]
|
48
|
+
t3326 = t3333 == t3325
|
49
|
+
t3329 = t3326 ? t3327 : t3333
|
50
|
+
t3297 = t3308 >= t3320
|
51
|
+
t3299 = t3308 < t3329
|
52
|
+
t3300 = t3297 && t3299
|
53
|
+
t3289 = t3300 ? t3341 : t3306
|
54
|
+
acc3280 += t3289
|
55
|
+
t3364 = t3308 - t3320
|
56
|
+
t3368 = t3329 - t3320
|
57
|
+
t3369 = [[ t3364, t3306 ].max, t3368 ].min
|
58
|
+
t3357 = t3369 * t3341
|
59
|
+
acc3349 += t3357
|
60
|
+
end
|
61
|
+
t3290 = acc3280
|
62
|
+
t3358 = acc3349
|
63
|
+
t3344 = 1.0
|
64
|
+
t3345 = [t3301, t3344]
|
65
|
+
t3346 = t3345.max
|
66
|
+
t3347 = t3358 / t3346.to_f
|
67
|
+
acc3408 = 0.0
|
68
|
+
t3283.each_with_index do |t3412, t3413|
|
69
|
+
t3440 = t3412["lo"] || t3412[:lo]
|
70
|
+
t3453 = t3412["hi"] || t3412[:hi]
|
71
|
+
t3465 = t3412["rate"] || t3412[:rate]
|
72
|
+
t3423 = t3308 - t3440
|
73
|
+
t3446 = t3453 == t3325
|
74
|
+
t3449 = t3446 ? t3327 : t3453
|
75
|
+
t3427 = t3449 - t3440
|
76
|
+
t3428 = [[ t3423, t3306 ].max, t3427 ].min
|
77
|
+
t3416 = t3428 * t3465
|
78
|
+
acc3408 += t3416
|
79
|
+
end
|
80
|
+
t3417 = acc3408
|
81
|
+
t542 = {
|
82
|
+
"marginal" => t3290,
|
83
|
+
"effective" => t3347,
|
84
|
+
"tax" => t3417
|
85
|
+
}
|
86
|
+
t3478 = 168600.0
|
87
|
+
t3479 = [t3301, t3478]
|
88
|
+
t3480 = t3479.min
|
89
|
+
t3481 = 0.062
|
90
|
+
t3482 = t3480 * t3481
|
91
|
+
t3484 = 0.0145
|
92
|
+
t3485 = t3301 * t3484
|
93
|
+
t3474 = t3482 + t3485
|
94
|
+
t3487 = 200000.0
|
95
|
+
t3488 = t3301 - t3487
|
96
|
+
t3490 = [t3488, t3306]
|
97
|
+
t3491 = t3490.max
|
98
|
+
t3492 = 0.009
|
99
|
+
t3493 = t3491 * t3492
|
100
|
+
t3476 = t3474 + t3493
|
101
|
+
t3471 = t3476 / t3346.to_f
|
102
|
+
t545 = {
|
103
|
+
"effective" => t3471,
|
104
|
+
"tax" => t3476
|
105
|
+
}
|
106
|
+
t546 = input["state_rate"] || input[:state_rate]
|
107
|
+
t3518 = t3301 * t546
|
108
|
+
t549 = {
|
109
|
+
"marginal" => t546,
|
110
|
+
"effective" => t546,
|
111
|
+
"tax" => t3518
|
112
|
+
}
|
113
|
+
t550 = input["local_rate"] || input[:local_rate]
|
114
|
+
t3521 = t3301 * t550
|
115
|
+
t553 = {
|
116
|
+
"marginal" => t550,
|
117
|
+
"effective" => t550,
|
118
|
+
"tax" => t3521
|
119
|
+
}
|
120
|
+
acc3536 = 0.0
|
121
|
+
t3283.each_with_index do |t3540, t3541|
|
122
|
+
t3568 = t3540["lo"] || t3540[:lo]
|
123
|
+
t3581 = t3540["hi"] || t3540[:hi]
|
124
|
+
t3593 = t3540["rate"] || t3540[:rate]
|
125
|
+
t3551 = t3308 - t3568
|
126
|
+
t3574 = t3581 == t3325
|
127
|
+
t3577 = t3574 ? t3327 : t3581
|
128
|
+
t3555 = t3577 - t3568
|
129
|
+
t3556 = [[ t3551, t3306 ].max, t3555 ].min
|
130
|
+
t3544 = t3556 * t3593
|
131
|
+
acc3536 += t3544
|
132
|
+
end
|
133
|
+
t3545 = acc3536
|
134
|
+
t3530 = t3545 + t3476
|
135
|
+
t3532 = t3530 + t3518
|
136
|
+
t3534 = t3532 + t3521
|
137
|
+
t3527 = t3534 / t3346.to_f
|
138
|
+
acc3630 = 0.0
|
139
|
+
t3283.each_with_index do |t3634, t3635|
|
140
|
+
t3662 = t3634["lo"] || t3634[:lo]
|
141
|
+
t3675 = t3634["hi"] || t3634[:hi]
|
142
|
+
t3687 = t3634["rate"] || t3634[:rate]
|
143
|
+
t3645 = t3308 - t3662
|
144
|
+
t3668 = t3675 == t3325
|
145
|
+
t3671 = t3668 ? t3327 : t3675
|
146
|
+
t3649 = t3671 - t3662
|
147
|
+
t3650 = [[ t3645, t3306 ].max, t3649 ].min
|
148
|
+
t3638 = t3650 * t3687
|
149
|
+
acc3630 += t3638
|
150
|
+
end
|
151
|
+
t3639 = acc3630
|
152
|
+
t3624 = t3639 + t3476
|
153
|
+
t3626 = t3624 + t3518
|
154
|
+
t3628 = t3626 + t3521
|
155
|
+
t556 = {
|
156
|
+
"effective" => t3527,
|
157
|
+
"tax" => t3628
|
158
|
+
}
|
159
|
+
acc3727 = 0.0
|
160
|
+
t3283.each_with_index do |t3731, t3732|
|
161
|
+
t3759 = t3731["lo"] || t3731[:lo]
|
162
|
+
t3772 = t3731["hi"] || t3731[:hi]
|
163
|
+
t3784 = t3731["rate"] || t3731[:rate]
|
164
|
+
t3742 = t3308 - t3759
|
165
|
+
t3765 = t3772 == t3325
|
166
|
+
t3768 = t3765 ? t3327 : t3772
|
167
|
+
t3746 = t3768 - t3759
|
168
|
+
t3747 = [[ t3742, t3306 ].max, t3746 ].min
|
169
|
+
t3735 = t3747 * t3784
|
170
|
+
acc3727 += t3735
|
171
|
+
end
|
172
|
+
t3736 = acc3727
|
173
|
+
t3721 = t3736 + t3476
|
174
|
+
t3723 = t3721 + t3518
|
175
|
+
t3725 = t3723 + t3521
|
176
|
+
t3718 = t3301 - t3725
|
177
|
+
t558 = input["retirement_contrib"] || input[:retirement_contrib]
|
178
|
+
acc3827 = 0.0
|
179
|
+
t3283.each_with_index do |t3831, t3832|
|
180
|
+
t3859 = t3831["lo"] || t3831[:lo]
|
181
|
+
t3872 = t3831["hi"] || t3831[:hi]
|
182
|
+
t3884 = t3831["rate"] || t3831[:rate]
|
183
|
+
t3842 = t3308 - t3859
|
184
|
+
t3865 = t3872 == t3325
|
185
|
+
t3868 = t3865 ? t3327 : t3872
|
186
|
+
t3846 = t3868 - t3859
|
187
|
+
t3847 = [[ t3842, t3306 ].max, t3846 ].min
|
188
|
+
t3835 = t3847 * t3884
|
189
|
+
acc3827 += t3835
|
190
|
+
end
|
191
|
+
t3836 = acc3827
|
192
|
+
t3821 = t3836 + t3476
|
193
|
+
t3823 = t3821 + t3518
|
194
|
+
t3825 = t3823 + t3521
|
195
|
+
t3818 = t3301 - t3825
|
196
|
+
t3815 = t3818 - t558
|
197
|
+
t560 = {
|
198
|
+
"federal" => t542,
|
199
|
+
"fica" => t545,
|
200
|
+
"state" => t549,
|
201
|
+
"local" => t553,
|
202
|
+
"total" => t556,
|
203
|
+
"after_tax" => t3718,
|
204
|
+
"retirement_contrib" => t558,
|
205
|
+
"take_home" => t3815
|
206
|
+
}
|
207
|
+
acc3914 = 0.0
|
208
|
+
t3916 = t3281["married_joint"] || t3281[:married_joint]
|
209
|
+
t3917 = t3916["rates"] || t3916[:rates]
|
210
|
+
acc3983 = 0.0
|
211
|
+
t3937 = t3302["married_joint"] || t3302[:married_joint]
|
212
|
+
t3938 = t3937["std"] || t3937[:std]
|
213
|
+
t3939 = t3301 - t3938
|
214
|
+
t3941 = [t3939, t3306]
|
215
|
+
t3942 = t3941.max
|
216
|
+
t3917.each_with_index do |t3918, t3919|
|
217
|
+
t3954 = t3918["lo"] || t3918[:lo]
|
218
|
+
t3967 = t3918["hi"] || t3918[:hi]
|
219
|
+
t3975 = t3918["rate"] || t3918[:rate]
|
220
|
+
t3960 = t3967 == t3325
|
221
|
+
t3963 = t3960 ? t3327 : t3967
|
222
|
+
t3931 = t3942 >= t3954
|
223
|
+
t3933 = t3942 < t3963
|
224
|
+
t3934 = t3931 && t3933
|
225
|
+
t3923 = t3934 ? t3975 : t3306
|
226
|
+
acc3914 += t3923
|
227
|
+
t3998 = t3942 - t3954
|
228
|
+
t4002 = t3963 - t3954
|
229
|
+
t4003 = [[ t3998, t3306 ].max, t4002 ].min
|
230
|
+
t3991 = t4003 * t3975
|
231
|
+
acc3983 += t3991
|
232
|
+
end
|
233
|
+
t3924 = acc3914
|
234
|
+
t3992 = acc3983
|
235
|
+
t3981 = t3992 / t3346.to_f
|
236
|
+
acc4042 = 0.0
|
237
|
+
t3917.each_with_index do |t4046, t4047|
|
238
|
+
t4074 = t4046["lo"] || t4046[:lo]
|
239
|
+
t4087 = t4046["hi"] || t4046[:hi]
|
240
|
+
t4099 = t4046["rate"] || t4046[:rate]
|
241
|
+
t4057 = t3942 - t4074
|
242
|
+
t4080 = t4087 == t3325
|
243
|
+
t4083 = t4080 ? t3327 : t4087
|
244
|
+
t4061 = t4083 - t4074
|
245
|
+
t4062 = [[ t4057, t3306 ].max, t4061 ].min
|
246
|
+
t4050 = t4062 * t4099
|
247
|
+
acc4042 += t4050
|
248
|
+
end
|
249
|
+
t4051 = acc4042
|
250
|
+
t564 = {
|
251
|
+
"marginal" => t3924,
|
252
|
+
"effective" => t3981,
|
253
|
+
"tax" => t4051
|
254
|
+
}
|
255
|
+
t4123 = 250000.0
|
256
|
+
t4124 = t3301 - t4123
|
257
|
+
t4126 = [t4124, t3306]
|
258
|
+
t4127 = t4126.max
|
259
|
+
t4129 = t4127 * t3492
|
260
|
+
t4110 = t3474 + t4129
|
261
|
+
t4105 = t4110 / t3346.to_f
|
262
|
+
t567 = {
|
263
|
+
"effective" => t4105,
|
264
|
+
"tax" => t4110
|
265
|
+
}
|
266
|
+
acc4174 = 0.0
|
267
|
+
t3917.each_with_index do |t4178, t4179|
|
268
|
+
t4206 = t4178["lo"] || t4178[:lo]
|
269
|
+
t4219 = t4178["hi"] || t4178[:hi]
|
270
|
+
t4231 = t4178["rate"] || t4178[:rate]
|
271
|
+
t4189 = t3942 - t4206
|
272
|
+
t4212 = t4219 == t3325
|
273
|
+
t4215 = t4212 ? t3327 : t4219
|
274
|
+
t4193 = t4215 - t4206
|
275
|
+
t4194 = [[ t4189, t3306 ].max, t4193 ].min
|
276
|
+
t4182 = t4194 * t4231
|
277
|
+
acc4174 += t4182
|
278
|
+
end
|
279
|
+
t4183 = acc4174
|
280
|
+
t4168 = t4183 + t4110
|
281
|
+
t4170 = t4168 + t3518
|
282
|
+
t4172 = t4170 + t3521
|
283
|
+
t4165 = t4172 / t3346.to_f
|
284
|
+
acc4270 = 0.0
|
285
|
+
t3917.each_with_index do |t4274, t4275|
|
286
|
+
t4302 = t4274["lo"] || t4274[:lo]
|
287
|
+
t4315 = t4274["hi"] || t4274[:hi]
|
288
|
+
t4327 = t4274["rate"] || t4274[:rate]
|
289
|
+
t4285 = t3942 - t4302
|
290
|
+
t4308 = t4315 == t3325
|
291
|
+
t4311 = t4308 ? t3327 : t4315
|
292
|
+
t4289 = t4311 - t4302
|
293
|
+
t4290 = [[ t4285, t3306 ].max, t4289 ].min
|
294
|
+
t4278 = t4290 * t4327
|
295
|
+
acc4270 += t4278
|
296
|
+
end
|
297
|
+
t4279 = acc4270
|
298
|
+
t4264 = t4279 + t4110
|
299
|
+
t4266 = t4264 + t3518
|
300
|
+
t4268 = t4266 + t3521
|
301
|
+
t578 = {
|
302
|
+
"effective" => t4165,
|
303
|
+
"tax" => t4268
|
304
|
+
}
|
305
|
+
acc4369 = 0.0
|
306
|
+
t3917.each_with_index do |t4373, t4374|
|
307
|
+
t4401 = t4373["lo"] || t4373[:lo]
|
308
|
+
t4414 = t4373["hi"] || t4373[:hi]
|
309
|
+
t4426 = t4373["rate"] || t4373[:rate]
|
310
|
+
t4384 = t3942 - t4401
|
311
|
+
t4407 = t4414 == t3325
|
312
|
+
t4410 = t4407 ? t3327 : t4414
|
313
|
+
t4388 = t4410 - t4401
|
314
|
+
t4389 = [[ t4384, t3306 ].max, t4388 ].min
|
315
|
+
t4377 = t4389 * t4426
|
316
|
+
acc4369 += t4377
|
317
|
+
end
|
318
|
+
t4378 = acc4369
|
319
|
+
t4363 = t4378 + t4110
|
320
|
+
t4365 = t4363 + t3518
|
321
|
+
t4367 = t4365 + t3521
|
322
|
+
t4360 = t3301 - t4367
|
323
|
+
acc4471 = 0.0
|
324
|
+
t3917.each_with_index do |t4475, t4476|
|
325
|
+
t4503 = t4475["lo"] || t4475[:lo]
|
326
|
+
t4516 = t4475["hi"] || t4475[:hi]
|
327
|
+
t4528 = t4475["rate"] || t4475[:rate]
|
328
|
+
t4486 = t3942 - t4503
|
329
|
+
t4509 = t4516 == t3325
|
330
|
+
t4512 = t4509 ? t3327 : t4516
|
331
|
+
t4490 = t4512 - t4503
|
332
|
+
t4491 = [[ t4486, t3306 ].max, t4490 ].min
|
333
|
+
t4479 = t4491 * t4528
|
334
|
+
acc4471 += t4479
|
335
|
+
end
|
336
|
+
t4480 = acc4471
|
337
|
+
t4465 = t4480 + t4110
|
338
|
+
t4467 = t4465 + t3518
|
339
|
+
t4469 = t4467 + t3521
|
340
|
+
t4462 = t3301 - t4469
|
341
|
+
t4459 = t4462 - t558
|
342
|
+
t582 = {
|
343
|
+
"federal" => t564,
|
344
|
+
"fica" => t567,
|
345
|
+
"state" => t549,
|
346
|
+
"local" => t553,
|
347
|
+
"total" => t578,
|
348
|
+
"after_tax" => t4360,
|
349
|
+
"retirement_contrib" => t558,
|
350
|
+
"take_home" => t4459
|
351
|
+
}
|
352
|
+
acc4560 = 0.0
|
353
|
+
t4562 = t3281["married_separate"] || t3281[:married_separate]
|
354
|
+
t4563 = t4562["rates"] || t4562[:rates]
|
355
|
+
acc4629 = 0.0
|
356
|
+
t4583 = t3302["married_separate"] || t3302[:married_separate]
|
357
|
+
t4584 = t4583["std"] || t4583[:std]
|
358
|
+
t4585 = t3301 - t4584
|
359
|
+
t4587 = [t4585, t3306]
|
360
|
+
t4588 = t4587.max
|
361
|
+
t4563.each_with_index do |t4564, t4565|
|
362
|
+
t4600 = t4564["lo"] || t4564[:lo]
|
363
|
+
t4613 = t4564["hi"] || t4564[:hi]
|
364
|
+
t4621 = t4564["rate"] || t4564[:rate]
|
365
|
+
t4606 = t4613 == t3325
|
366
|
+
t4609 = t4606 ? t3327 : t4613
|
367
|
+
t4577 = t4588 >= t4600
|
368
|
+
t4579 = t4588 < t4609
|
369
|
+
t4580 = t4577 && t4579
|
370
|
+
t4569 = t4580 ? t4621 : t3306
|
371
|
+
acc4560 += t4569
|
372
|
+
t4644 = t4588 - t4600
|
373
|
+
t4648 = t4609 - t4600
|
374
|
+
t4649 = [[ t4644, t3306 ].max, t4648 ].min
|
375
|
+
t4637 = t4649 * t4621
|
376
|
+
acc4629 += t4637
|
377
|
+
end
|
378
|
+
t4570 = acc4560
|
379
|
+
t4638 = acc4629
|
380
|
+
t4627 = t4638 / t3346.to_f
|
381
|
+
acc4688 = 0.0
|
382
|
+
t4563.each_with_index do |t4692, t4693|
|
383
|
+
t4720 = t4692["lo"] || t4692[:lo]
|
384
|
+
t4733 = t4692["hi"] || t4692[:hi]
|
385
|
+
t4745 = t4692["rate"] || t4692[:rate]
|
386
|
+
t4703 = t4588 - t4720
|
387
|
+
t4726 = t4733 == t3325
|
388
|
+
t4729 = t4726 ? t3327 : t4733
|
389
|
+
t4707 = t4729 - t4720
|
390
|
+
t4708 = [[ t4703, t3306 ].max, t4707 ].min
|
391
|
+
t4696 = t4708 * t4745
|
392
|
+
acc4688 += t4696
|
393
|
+
end
|
394
|
+
t4697 = acc4688
|
395
|
+
t586 = {
|
396
|
+
"marginal" => t4570,
|
397
|
+
"effective" => t4627,
|
398
|
+
"tax" => t4697
|
399
|
+
}
|
400
|
+
t4769 = 125000.0
|
401
|
+
t4770 = t3301 - t4769
|
402
|
+
t4772 = [t4770, t3306]
|
403
|
+
t4773 = t4772.max
|
404
|
+
t4775 = t4773 * t3492
|
405
|
+
t4756 = t3474 + t4775
|
406
|
+
t4751 = t4756 / t3346.to_f
|
407
|
+
t589 = {
|
408
|
+
"effective" => t4751,
|
409
|
+
"tax" => t4756
|
410
|
+
}
|
411
|
+
acc4820 = 0.0
|
412
|
+
t4563.each_with_index do |t4824, t4825|
|
413
|
+
t4852 = t4824["lo"] || t4824[:lo]
|
414
|
+
t4865 = t4824["hi"] || t4824[:hi]
|
415
|
+
t4877 = t4824["rate"] || t4824[:rate]
|
416
|
+
t4835 = t4588 - t4852
|
417
|
+
t4858 = t4865 == t3325
|
418
|
+
t4861 = t4858 ? t3327 : t4865
|
419
|
+
t4839 = t4861 - t4852
|
420
|
+
t4840 = [[ t4835, t3306 ].max, t4839 ].min
|
421
|
+
t4828 = t4840 * t4877
|
422
|
+
acc4820 += t4828
|
423
|
+
end
|
424
|
+
t4829 = acc4820
|
425
|
+
t4814 = t4829 + t4756
|
426
|
+
t4816 = t4814 + t3518
|
427
|
+
t4818 = t4816 + t3521
|
428
|
+
t4811 = t4818 / t3346.to_f
|
429
|
+
acc4916 = 0.0
|
430
|
+
t4563.each_with_index do |t4920, t4921|
|
431
|
+
t4948 = t4920["lo"] || t4920[:lo]
|
432
|
+
t4961 = t4920["hi"] || t4920[:hi]
|
433
|
+
t4973 = t4920["rate"] || t4920[:rate]
|
434
|
+
t4931 = t4588 - t4948
|
435
|
+
t4954 = t4961 == t3325
|
436
|
+
t4957 = t4954 ? t3327 : t4961
|
437
|
+
t4935 = t4957 - t4948
|
438
|
+
t4936 = [[ t4931, t3306 ].max, t4935 ].min
|
439
|
+
t4924 = t4936 * t4973
|
440
|
+
acc4916 += t4924
|
441
|
+
end
|
442
|
+
t4925 = acc4916
|
443
|
+
t4910 = t4925 + t4756
|
444
|
+
t4912 = t4910 + t3518
|
445
|
+
t4914 = t4912 + t3521
|
446
|
+
t600 = {
|
447
|
+
"effective" => t4811,
|
448
|
+
"tax" => t4914
|
449
|
+
}
|
450
|
+
acc5015 = 0.0
|
451
|
+
t4563.each_with_index do |t5019, t5020|
|
452
|
+
t5047 = t5019["lo"] || t5019[:lo]
|
453
|
+
t5060 = t5019["hi"] || t5019[:hi]
|
454
|
+
t5072 = t5019["rate"] || t5019[:rate]
|
455
|
+
t5030 = t4588 - t5047
|
456
|
+
t5053 = t5060 == t3325
|
457
|
+
t5056 = t5053 ? t3327 : t5060
|
458
|
+
t5034 = t5056 - t5047
|
459
|
+
t5035 = [[ t5030, t3306 ].max, t5034 ].min
|
460
|
+
t5023 = t5035 * t5072
|
461
|
+
acc5015 += t5023
|
462
|
+
end
|
463
|
+
t5024 = acc5015
|
464
|
+
t5009 = t5024 + t4756
|
465
|
+
t5011 = t5009 + t3518
|
466
|
+
t5013 = t5011 + t3521
|
467
|
+
t5006 = t3301 - t5013
|
468
|
+
acc5117 = 0.0
|
469
|
+
t4563.each_with_index do |t5121, t5122|
|
470
|
+
t5149 = t5121["lo"] || t5121[:lo]
|
471
|
+
t5162 = t5121["hi"] || t5121[:hi]
|
472
|
+
t5174 = t5121["rate"] || t5121[:rate]
|
473
|
+
t5132 = t4588 - t5149
|
474
|
+
t5155 = t5162 == t3325
|
475
|
+
t5158 = t5155 ? t3327 : t5162
|
476
|
+
t5136 = t5158 - t5149
|
477
|
+
t5137 = [[ t5132, t3306 ].max, t5136 ].min
|
478
|
+
t5125 = t5137 * t5174
|
479
|
+
acc5117 += t5125
|
480
|
+
end
|
481
|
+
t5126 = acc5117
|
482
|
+
t5111 = t5126 + t4756
|
483
|
+
t5113 = t5111 + t3518
|
484
|
+
t5115 = t5113 + t3521
|
485
|
+
t5108 = t3301 - t5115
|
486
|
+
t5105 = t5108 - t558
|
487
|
+
t604 = {
|
488
|
+
"federal" => t586,
|
489
|
+
"fica" => t589,
|
490
|
+
"state" => t549,
|
491
|
+
"local" => t553,
|
492
|
+
"total" => t600,
|
493
|
+
"after_tax" => t5006,
|
494
|
+
"retirement_contrib" => t558,
|
495
|
+
"take_home" => t5105
|
496
|
+
}
|
497
|
+
acc5206 = 0.0
|
498
|
+
t5208 = t3281["head_of_household"] || t3281[:head_of_household]
|
499
|
+
t5209 = t5208["rates"] || t5208[:rates]
|
500
|
+
acc5275 = 0.0
|
501
|
+
t5229 = t3302["head_of_household"] || t3302[:head_of_household]
|
502
|
+
t5230 = t5229["std"] || t5229[:std]
|
503
|
+
t5231 = t3301 - t5230
|
504
|
+
t5233 = [t5231, t3306]
|
505
|
+
t5234 = t5233.max
|
506
|
+
t5209.each_with_index do |t5210, t5211|
|
507
|
+
t5246 = t5210["lo"] || t5210[:lo]
|
508
|
+
t5259 = t5210["hi"] || t5210[:hi]
|
509
|
+
t5267 = t5210["rate"] || t5210[:rate]
|
510
|
+
t5252 = t5259 == t3325
|
511
|
+
t5255 = t5252 ? t3327 : t5259
|
512
|
+
t5223 = t5234 >= t5246
|
513
|
+
t5225 = t5234 < t5255
|
514
|
+
t5226 = t5223 && t5225
|
515
|
+
t5215 = t5226 ? t5267 : t3306
|
516
|
+
acc5206 += t5215
|
517
|
+
t5290 = t5234 - t5246
|
518
|
+
t5294 = t5255 - t5246
|
519
|
+
t5295 = [[ t5290, t3306 ].max, t5294 ].min
|
520
|
+
t5283 = t5295 * t5267
|
521
|
+
acc5275 += t5283
|
522
|
+
end
|
523
|
+
t5216 = acc5206
|
524
|
+
t5284 = acc5275
|
525
|
+
t5273 = t5284 / t3346.to_f
|
526
|
+
acc5334 = 0.0
|
527
|
+
t5209.each_with_index do |t5338, t5339|
|
528
|
+
t5366 = t5338["lo"] || t5338[:lo]
|
529
|
+
t5379 = t5338["hi"] || t5338[:hi]
|
530
|
+
t5391 = t5338["rate"] || t5338[:rate]
|
531
|
+
t5349 = t5234 - t5366
|
532
|
+
t5372 = t5379 == t3325
|
533
|
+
t5375 = t5372 ? t3327 : t5379
|
534
|
+
t5353 = t5375 - t5366
|
535
|
+
t5354 = [[ t5349, t3306 ].max, t5353 ].min
|
536
|
+
t5342 = t5354 * t5391
|
537
|
+
acc5334 += t5342
|
538
|
+
end
|
539
|
+
t5343 = acc5334
|
540
|
+
t608 = {
|
541
|
+
"marginal" => t5216,
|
542
|
+
"effective" => t5273,
|
543
|
+
"tax" => t5343
|
544
|
+
}
|
545
|
+
acc5466 = 0.0
|
546
|
+
t5209.each_with_index do |t5470, t5471|
|
547
|
+
t5498 = t5470["lo"] || t5470[:lo]
|
548
|
+
t5511 = t5470["hi"] || t5470[:hi]
|
549
|
+
t5523 = t5470["rate"] || t5470[:rate]
|
550
|
+
t5481 = t5234 - t5498
|
551
|
+
t5504 = t5511 == t3325
|
552
|
+
t5507 = t5504 ? t3327 : t5511
|
553
|
+
t5485 = t5507 - t5498
|
554
|
+
t5486 = [[ t5481, t3306 ].max, t5485 ].min
|
555
|
+
t5474 = t5486 * t5523
|
556
|
+
acc5466 += t5474
|
557
|
+
end
|
558
|
+
t5475 = acc5466
|
559
|
+
t5460 = t5475 + t3476
|
560
|
+
t5462 = t5460 + t3518
|
561
|
+
t5464 = t5462 + t3521
|
562
|
+
t5457 = t5464 / t3346.to_f
|
563
|
+
acc5562 = 0.0
|
564
|
+
t5209.each_with_index do |t5566, t5567|
|
565
|
+
t5594 = t5566["lo"] || t5566[:lo]
|
566
|
+
t5607 = t5566["hi"] || t5566[:hi]
|
567
|
+
t5619 = t5566["rate"] || t5566[:rate]
|
568
|
+
t5577 = t5234 - t5594
|
569
|
+
t5600 = t5607 == t3325
|
570
|
+
t5603 = t5600 ? t3327 : t5607
|
571
|
+
t5581 = t5603 - t5594
|
572
|
+
t5582 = [[ t5577, t3306 ].max, t5581 ].min
|
573
|
+
t5570 = t5582 * t5619
|
574
|
+
acc5562 += t5570
|
575
|
+
end
|
576
|
+
t5571 = acc5562
|
577
|
+
t5556 = t5571 + t3476
|
578
|
+
t5558 = t5556 + t3518
|
579
|
+
t5560 = t5558 + t3521
|
580
|
+
t622 = {
|
581
|
+
"effective" => t5457,
|
582
|
+
"tax" => t5560
|
583
|
+
}
|
584
|
+
acc5661 = 0.0
|
585
|
+
t5209.each_with_index do |t5665, t5666|
|
586
|
+
t5693 = t5665["lo"] || t5665[:lo]
|
587
|
+
t5706 = t5665["hi"] || t5665[:hi]
|
588
|
+
t5718 = t5665["rate"] || t5665[:rate]
|
589
|
+
t5676 = t5234 - t5693
|
590
|
+
t5699 = t5706 == t3325
|
591
|
+
t5702 = t5699 ? t3327 : t5706
|
592
|
+
t5680 = t5702 - t5693
|
593
|
+
t5681 = [[ t5676, t3306 ].max, t5680 ].min
|
594
|
+
t5669 = t5681 * t5718
|
595
|
+
acc5661 += t5669
|
596
|
+
end
|
597
|
+
t5670 = acc5661
|
598
|
+
t5655 = t5670 + t3476
|
599
|
+
t5657 = t5655 + t3518
|
600
|
+
t5659 = t5657 + t3521
|
601
|
+
t5652 = t3301 - t5659
|
602
|
+
acc5763 = 0.0
|
603
|
+
t5209.each_with_index do |t5767, t5768|
|
604
|
+
t5795 = t5767["lo"] || t5767[:lo]
|
605
|
+
t5808 = t5767["hi"] || t5767[:hi]
|
606
|
+
t5820 = t5767["rate"] || t5767[:rate]
|
607
|
+
t5778 = t5234 - t5795
|
608
|
+
t5801 = t5808 == t3325
|
609
|
+
t5804 = t5801 ? t3327 : t5808
|
610
|
+
t5782 = t5804 - t5795
|
611
|
+
t5783 = [[ t5778, t3306 ].max, t5782 ].min
|
612
|
+
t5771 = t5783 * t5820
|
613
|
+
acc5763 += t5771
|
614
|
+
end
|
615
|
+
t5772 = acc5763
|
616
|
+
t5757 = t5772 + t3476
|
617
|
+
t5759 = t5757 + t3518
|
618
|
+
t5761 = t5759 + t3521
|
619
|
+
t5754 = t3301 - t5761
|
620
|
+
t5751 = t5754 - t558
|
621
|
+
t626 = {
|
622
|
+
"federal" => t608,
|
623
|
+
"fica" => t545,
|
624
|
+
"state" => t549,
|
625
|
+
"local" => t553,
|
626
|
+
"total" => t622,
|
627
|
+
"after_tax" => t5652,
|
628
|
+
"retirement_contrib" => t558,
|
629
|
+
"take_home" => t5751
|
630
|
+
}
|
631
|
+
t627 = {
|
632
|
+
"single" => t560,
|
633
|
+
"married_joint" => t582,
|
634
|
+
"married_separate" => t604,
|
635
|
+
"head_of_household" => t626
|
636
|
+
}
|
637
|
+
t627
|
638
|
+
end
|
639
|
+
end
|