Details

Time bar (total: 3.8s)

analyze191.0ms (5%)

Algorithm
search
Search
TrueOtherFalseIter
0%99.9%0.1%0
0%99.9%0.1%1
0%99.9%0.1%2
0%99.9%0.1%3
0%99.9%0.1%4
25%74.9%0.1%5
25%62.4%12.6%6
31.2%50%18.8%7
40.6%37.5%22%8
45.3%26.5%28.2%9
46.8%19.5%33.7%10
48.8%14%37.2%11
51.7%10.1%38.1%12
52.8%7.1%40.1%13
53.3%5.1%41.6%14
Compiler

Compiled 22 to 12 computations (45.5% saved)

sample1.1s (29%)

Results
955.0ms8256×body128valid
53.0ms440×body128invalid
Compiler

Compiled 65 to 35 computations (46.2% saved)

simplify129.0ms (3.4%)

Algorithm
egg-herbie
Rules
680×unsub-neg_binary64
594×fma-neg_binary64
560×sub-neg_binary64
520×fma-def_binary64
399×cancel-sign-sub-inv_binary64
Counts
1 → 2
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
01226
13025
27123
319416
457314
5177914
6304814
7413714
8461514
9474914
10478414
11490714
12499814

prune4.0ms (0.1%)

Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New022
Fresh011
Picked000
Done000
Total033
Error
8.9b
Counts
3 → 2
Alt Table
StatusErrorProgram
9.0b
(-.f64 (*.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.re) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.im))
9.0b
(*.f64 x.re (fma.f64 x.re x.re (*.f64 (*.f64 x.im x.im) -3)))
Compiler

Compiled 97 to 51 computations (47.4% saved)

localize13.0ms (0.3%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))
0.1b
(-.f64 (*.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.re) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.im))
0.2b
(*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.im)
8.4b
(*.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.re)

series39.0ms (1%)

Counts
4 → 96
Calls

4 calls:

14.0ms
(-.f64 (*.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.re) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.im))
10.0ms
(*.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.re)
9.0ms
(*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.im)
6.0ms
(-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))

rewrite99.0ms (2.6%)

Algorithm
batch-egg-rewrite
Rules
866×fma-def_binary64
377×egg-rr
373×fma-neg_binary64
214×expm1-udef_binary64
214×log1p-udef_binary64
Counts
4 → 377
Calls

4 calls:

90.0ms
(-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))
90.0ms
(-.f64 (*.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.re) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.im))
90.0ms
(*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.im)
90.0ms
(*.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.re)
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01260
126450
2327250
3504550
000
100

simplify133.0ms (3.5%)

Algorithm
egg-herbie
Rules
825×fma-def_binary64
674×unswap-sqr_binary64
499×fma-neg_binary64
483×*-commutative_binary64
444×cancel-sign-sub-inv_binary64
Counts
473 → 393
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
0191053
1581053
21331017
33851017
413341017
526291017
649711017
749561017
850001017
949061017

prune298.0ms (7.8%)

Pruning

9 alts after pruning (9 fresh and 0 done)

PrunedKeptTotal
New3858393
Fresh011
Picked101
Done000
Total3869395
Error
7.0b
Counts
395 → 9
Alt Table
StatusErrorProgram
28.7b
(-.f64 (pow.f64 (sqrt.f64 (*.f64 x.re (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))) 2) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.im))
25.8b
(-.f64 (pow.f64 x.re 3) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.im))
18.2b
(-.f64 (*.f64 (fma.f64 (+.f64 x.re x.im) (-.f64 x.re x.im) (fma.f64 (neg.f64 (pow.f64 (cbrt.f64 x.im) 2)) (cbrt.f64 (pow.f64 x.im 4)) (*.f64 x.im x.im))) x.re) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.im))
8.9b
(-.f64 (fma.f64 1 (pow.f64 x.re 3) (*.f64 (neg.f64 (*.f64 x.im x.im)) x.re)) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.im))
9.2b
(-.f64 (pow.f64 (cbrt.f64 (*.f64 x.re (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))) 3) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.im))
18.5b
(-.f64 (*.f64 (fma.f64 (cbrt.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))) (pow.f64 (cbrt.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))) 2) (fma.f64 (neg.f64 (pow.f64 (cbrt.f64 x.im) 2)) (cbrt.f64 (pow.f64 x.im 4)) (*.f64 x.im x.im))) x.re) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.im))
9.0b
(-.f64 (*.f64 (fma.f64 (-.f64 x.re x.im) (+.f64 x.re x.im) (fma.f64 x.im (neg.f64 x.im) (*.f64 x.im x.im))) x.re) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.im))
9.0b
(*.f64 x.re (fma.f64 x.re x.re (*.f64 (*.f64 x.im x.im) -3)))
8.9b
(fma.f64 (*.f64 x.re (*.f64 x.im x.im)) -3 (pow.f64 x.re 3))
Compiler

Compiled 11921 to 3879 computations (67.5% saved)

localize6.0ms (0.2%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.1b
(fma.f64 (*.f64 x.re (*.f64 x.im x.im)) -3 (pow.f64 x.re 3))
9.6b
(*.f64 x.re (*.f64 x.im x.im))

series22.0ms (0.6%)

Counts
2 → 48
Calls

2 calls:

11.0ms
(fma.f64 (*.f64 x.re (*.f64 x.im x.im)) -3 (pow.f64 x.re 3))
10.0ms
(*.f64 x.re (*.f64 x.im x.im))

rewrite42.0ms (1.1%)

Algorithm
batch-egg-rewrite
Rules
730×log1p-expm1-u_binary64
730×expm1-log1p-u_binary64
148×log1p-udef_binary64
140×prod-diff_binary64
87×add-sqr-sqrt_binary64
Counts
2 → 40
Calls

2 calls:

41.0ms
(fma.f64 (*.f64 x.re (*.f64 x.im x.im)) -3 (pow.f64 x.re 3))
41.0ms
(*.f64 x.re (*.f64 x.im x.im))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0921
118521
2191721
3490321
000
100

simplify119.0ms (3.1%)

Algorithm
egg-herbie
Rules
973×fma-def_binary64
896×fma-neg_binary64
593×unswap-sqr_binary64
420×distribute-rgt-neg-in_binary64
370×distribute-lft-neg-in_binary64
Counts
88 → 45
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
012498
135498
279462
3200462
4527462
5865462
61356462
72113462
83981462
93970462
104835462
114898462
124839462

prune55.0ms (1.4%)

Pruning

10 alts after pruning (9 fresh and 1 done)

PrunedKeptTotal
New44145
Fresh088
Picked011
Done000
Total441054
Error
3.6b
Counts
54 → 10
Alt Table
StatusErrorProgram
28.7b
(-.f64 (pow.f64 (sqrt.f64 (*.f64 x.re (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))) 2) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.im))
25.8b
(-.f64 (pow.f64 x.re 3) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.im))
18.2b
(-.f64 (*.f64 (fma.f64 (+.f64 x.re x.im) (-.f64 x.re x.im) (fma.f64 (neg.f64 (pow.f64 (cbrt.f64 x.im) 2)) (cbrt.f64 (pow.f64 x.im 4)) (*.f64 x.im x.im))) x.re) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.im))
8.9b
(-.f64 (fma.f64 1 (pow.f64 x.re 3) (*.f64 (neg.f64 (*.f64 x.im x.im)) x.re)) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.im))
9.0b
(*.f64 x.re (fma.f64 x.re x.re (*.f64 (*.f64 x.im x.im) -3)))
33.9b
(fma.f64 (pow.f64 (*.f64 x.im (sqrt.f64 x.re)) 2) -3 (pow.f64 x.re 3))
9.2b
(-.f64 (pow.f64 (cbrt.f64 (*.f64 x.re (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))) 3) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.im))
18.5b
(-.f64 (*.f64 (fma.f64 (cbrt.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))) (pow.f64 (cbrt.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))) 2) (fma.f64 (neg.f64 (pow.f64 (cbrt.f64 x.im) 2)) (cbrt.f64 (pow.f64 x.im 4)) (*.f64 x.im x.im))) x.re) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.im))
9.0b
(-.f64 (*.f64 (fma.f64 (-.f64 x.re x.im) (+.f64 x.re x.im) (fma.f64 x.im (neg.f64 x.im) (*.f64 x.im x.im))) x.re) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.im))
8.9b
(fma.f64 (*.f64 x.re (*.f64 x.im x.im)) -3 (pow.f64 x.re 3))
Compiler

Compiled 1084 to 597 computations (44.9% saved)

localize12.0ms (0.3%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re))
0.1b
(-.f64 (fma.f64 1 (pow.f64 x.re 3) (*.f64 (neg.f64 (*.f64 x.im x.im)) x.re)) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.im))
0.2b
(*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.im)
9.6b
(*.f64 (neg.f64 (*.f64 x.im x.im)) x.re)

series32.0ms (0.8%)

Counts
3 → 72
Calls

3 calls:

17.0ms
(-.f64 (fma.f64 1 (pow.f64 x.re 3) (*.f64 (neg.f64 (*.f64 x.im x.im)) x.re)) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.im))
10.0ms
(*.f64 (neg.f64 (*.f64 x.im x.im)) x.re)
5.0ms
(+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re))

rewrite102.0ms (2.7%)

Algorithm
batch-egg-rewrite
Rules
410×fma-def_binary64
367×fma-neg_binary64
216×expm1-udef_binary64
216×log1p-udef_binary64
192×egg-rr
Counts
3 → 192
Calls

3 calls:

98.0ms
(+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re))
98.0ms
(-.f64 (fma.f64 1 (pow.f64 x.re 3) (*.f64 (neg.f64 (*.f64 x.im x.im)) x.re)) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.im))
98.0ms
(*.f64 (neg.f64 (*.f64 x.im x.im)) x.re)
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01545
130533
2314729
3495329
4498229
000
100

simplify151.0ms (4%)

Algorithm
egg-herbie
Rules
1079×fma-def_binary64
689×fma-neg_binary64
593×unswap-sqr_binary64
410×distribute-rgt-neg-in_binary64
350×distribute-lft-neg-in_binary64
Counts
264 → 200
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
016714
147714
2105678
3245678
4596678
5957678
61439678
72218678
84096678
94535678
104255678
114645678
124934678
134778678

prune169.0ms (4.5%)

Pruning

10 alts after pruning (8 fresh and 2 done)

PrunedKeptTotal
New2270227
Fresh088
Picked011
Done011
Total22710237
Error
3.6b
Counts
237 → 10
Alt Table
StatusErrorProgram
28.7b
(-.f64 (pow.f64 (sqrt.f64 (*.f64 x.re (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))) 2) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.im))
25.8b
(-.f64 (pow.f64 x.re 3) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.im))
18.2b
(-.f64 (*.f64 (fma.f64 (+.f64 x.re x.im) (-.f64 x.re x.im) (fma.f64 (neg.f64 (pow.f64 (cbrt.f64 x.im) 2)) (cbrt.f64 (pow.f64 x.im 4)) (*.f64 x.im x.im))) x.re) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.im))
8.9b
(-.f64 (fma.f64 1 (pow.f64 x.re 3) (*.f64 (neg.f64 (*.f64 x.im x.im)) x.re)) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.im))
9.0b
(*.f64 x.re (fma.f64 x.re x.re (*.f64 (*.f64 x.im x.im) -3)))
33.9b
(fma.f64 (pow.f64 (*.f64 x.im (sqrt.f64 x.re)) 2) -3 (pow.f64 x.re 3))
9.2b
(-.f64 (pow.f64 (cbrt.f64 (*.f64 x.re (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))) 3) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.im))
18.5b
(-.f64 (*.f64 (fma.f64 (cbrt.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))) (pow.f64 (cbrt.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))) 2) (fma.f64 (neg.f64 (pow.f64 (cbrt.f64 x.im) 2)) (cbrt.f64 (pow.f64 x.im 4)) (*.f64 x.im x.im))) x.re) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.im))
9.0b
(-.f64 (*.f64 (fma.f64 (-.f64 x.re x.im) (+.f64 x.re x.im) (fma.f64 x.im (neg.f64 x.im) (*.f64 x.im x.im))) x.re) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.im))
8.9b
(fma.f64 (*.f64 x.re (*.f64 x.im x.im)) -3 (pow.f64 x.re 3))
Compiler

Compiled 5743 to 3134 computations (45.4% saved)

localize15.0ms (0.4%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(-.f64 (*.f64 (fma.f64 (-.f64 x.re x.im) (+.f64 x.re x.im) (fma.f64 x.im (neg.f64 x.im) (*.f64 x.im x.im))) x.re) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.im))
0.2b
(*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.im)
8.4b
(*.f64 (fma.f64 (-.f64 x.re x.im) (+.f64 x.re x.im) (fma.f64 x.im (neg.f64 x.im) (*.f64 x.im x.im))) x.re)
44.8b
(fma.f64 x.im (neg.f64 x.im) (*.f64 x.im x.im))

series35.0ms (0.9%)

Counts
3 → 60
Calls

3 calls:

19.0ms
(-.f64 (*.f64 (fma.f64 (-.f64 x.re x.im) (+.f64 x.re x.im) (fma.f64 x.im (neg.f64 x.im) (*.f64 x.im x.im))) x.re) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.im))
13.0ms
(*.f64 (fma.f64 (-.f64 x.re x.im) (+.f64 x.re x.im) (fma.f64 x.im (neg.f64 x.im) (*.f64 x.im x.im))) x.re)
4.0ms
(fma.f64 x.im (neg.f64 x.im) (*.f64 x.im x.im))

rewrite91.0ms (2.4%)

Algorithm
batch-egg-rewrite
Rules
688×fma-def_binary64
464×fma-neg_binary64
210×expm1-udef_binary64
210×log1p-udef_binary64
166×add-sqr-sqrt_binary64
Counts
3 → 125
Calls

3 calls:

88.0ms
(-.f64 (*.f64 (fma.f64 (-.f64 x.re x.im) (+.f64 x.re x.im) (fma.f64 x.im (neg.f64 x.im) (*.f64 x.im x.im))) x.re) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.im))
88.0ms
(*.f64 (fma.f64 (-.f64 x.re x.im) (+.f64 x.re x.im) (fma.f64 x.im (neg.f64 x.im) (*.f64 x.im x.im))) x.re)
88.0ms
(fma.f64 x.im (neg.f64 x.im) (*.f64 x.im x.im))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01569
132328
2325928
3487728
4471828
000
100

simplify150.0ms (4%)

Algorithm
egg-herbie
Rules
781×fma-neg_binary64
689×fma-def_binary64
604×unswap-sqr_binary64
452×unsub-neg_binary64
435×distribute-rgt-neg-in_binary64
Counts
185 → 135
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
016615
147615
2104579
3254579
4629579
51047579
61781579
72805579
84547579
94660579
104903579
114884579
124999579
134817579

prune139.0ms (3.7%)

Pruning

10 alts after pruning (7 fresh and 3 done)

PrunedKeptTotal
New1620162
Fresh077
Picked011
Done022
Total16210172
Error
3.6b
Counts
172 → 10
Alt Table
StatusErrorProgram
28.7b
(-.f64 (pow.f64 (sqrt.f64 (*.f64 x.re (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))) 2) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.im))
25.8b
(-.f64 (pow.f64 x.re 3) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.im))
18.2b
(-.f64 (*.f64 (fma.f64 (+.f64 x.re x.im) (-.f64 x.re x.im) (fma.f64 (neg.f64 (pow.f64 (cbrt.f64 x.im) 2)) (cbrt.f64 (pow.f64 x.im 4)) (*.f64 x.im x.im))) x.re) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.im))
8.9b
(-.f64 (fma.f64 1 (pow.f64 x.re 3) (*.f64 (neg.f64 (*.f64 x.im x.im)) x.re)) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.im))
9.0b
(*.f64 x.re (fma.f64 x.re x.re (*.f64 (*.f64 x.im x.im) -3)))
33.9b
(fma.f64 (pow.f64 (*.f64 x.im (sqrt.f64 x.re)) 2) -3 (pow.f64 x.re 3))
9.2b
(-.f64 (pow.f64 (cbrt.f64 (*.f64 x.re (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))) 3) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.im))
18.5b
(-.f64 (*.f64 (fma.f64 (cbrt.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))) (pow.f64 (cbrt.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))) 2) (fma.f64 (neg.f64 (pow.f64 (cbrt.f64 x.im) 2)) (cbrt.f64 (pow.f64 x.im 4)) (*.f64 x.im x.im))) x.re) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.im))
9.0b
(-.f64 (*.f64 (fma.f64 (-.f64 x.re x.im) (+.f64 x.re x.im) (fma.f64 x.im (neg.f64 x.im) (*.f64 x.im x.im))) x.re) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.im))
8.9b
(fma.f64 (*.f64 x.re (*.f64 x.im x.im)) -3 (pow.f64 x.re 3))
Compiler

Compiled 3825 to 1338 computations (65% saved)

regimes485.0ms (12.7%)

Accuracy

Total 0.8b remaining (22.3%)

Threshold costs 0.8b (22.3%)

Counts
96 → 2
Compiler

Compiled 7179 to 3984 computations (44.5% saved)

bsearch4.0ms (0.1%)

Compiler

Compiled 21 to 11 computations (47.6% saved)

simplify4.0ms (0.1%)

Algorithm
egg-herbie
Rules
11×*-commutative_binary64
+-commutative_binary64
sub-neg_binary64
neg-sub0_binary64
neg-mul-1_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02663
14063
25663
37263
48063
58363
68463
78463

end159.0ms (4.2%)

Compiler

Compiled 321 to 185 computations (42.4% saved)

Profiling

Loading profile data...