Details

Time bar (total: 3.3s)

analyze185.0ms (5.6%)

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%74.9%0.1%6
31.2%50%18.8%7
34.3%43.7%22%8
45.3%26.5%28.2%9
46.8%23.4%29.8%10
48.8%14%37.2%11
49.8%12.1%38.1%12
52.8%7.1%40.1%13
53.3%6.1%40.6%14
Compiler

Compiled 22 to 12 computations (45.5% saved)

sample1.1s (33.1%)

Results
922.0ms8256×body128valid
70.0ms621×body128invalid
Compiler

Compiled 65 to 35 computations (46.2% saved)

simplify130.0ms (3.9%)

Algorithm
egg-herbie
Rules
613×sub-neg_binary64
578×fma-neg_binary64
529×neg-mul-1_binary64
501×neg-sub0_binary64
455×unsub-neg_binary64
Counts
1 → 2
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01224
12623
26023
313016
433516
588116
6149616
7351116
8406116
9397716
10461416
11477116
12491816
13491416

prune3.0ms (0.1%)

Pruning

3 alts after pruning (3 fresh and 0 done)

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

Compiled 100 to 54 computations (46% saved)

localize11.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 (*.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.im) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.re))
0.2b
(*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.re)
6.8b
(*.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.im)

series42.0ms (1.3%)

Counts
4 → 96
Calls

4 calls:

15.0ms
(+.f64 (*.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.im) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.re))
13.0ms
(*.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.im)
9.0ms
(*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.re)
4.0ms
(+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re))

rewrite83.0ms (2.5%)

Algorithm
batch-egg-rewrite
Rules
835×fma-def_binary64
359×fma-neg_binary64
216×expm1-udef_binary64
216×log1p-udef_binary64
199×egg-rr
Counts
4 → 199
Calls

4 calls:

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

Useful iterations: 0 (0.0ms)

IterNodesCost
01256
125844
2328844
3504044
000
100

simplify128.0ms (3.9%)

Algorithm
egg-herbie
Rules
975×fma-neg_binary64
640×fma-def_binary64
634×unswap-sqr_binary64
571×associate-*l*_binary64
441×distribute-rgt-neg-in_binary64
Counts
295 → 212
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0161017
1451017
21081017
32241017
45571017
516371017
633781017
745671017
849011017
949701017
1048991017

prune121.0ms (3.7%)

Pruning

7 alts after pruning (6 fresh and 1 done)

PrunedKeptTotal
New2075212
Fresh011
Picked011
Done000
Total2077214
Error
0.0b
Counts
214 → 7
Alt Table
StatusErrorProgram
7.2b
(*.f64 x.im (fma.f64 x.re (*.f64 x.re 3) (neg.f64 (*.f64 x.im x.im))))
7.1b
(-.f64 (*.f64 3 (*.f64 (pow.f64 x.re 2) x.im)) (pow.f64 x.im 3))
7.2b
(+.f64 (*.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.im) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.re))
0.2b
(+.f64 (fma.f64 (+.f64 x.re x.im) (*.f64 (-.f64 x.re x.im) x.im) (*.f64 (fma.f64 x.im (neg.f64 x.im) (*.f64 x.im x.im)) x.im)) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.re))
36.2b
(+.f64 (fma.f64 (sqrt.f64 x.im) (*.f64 (sqrt.f64 x.im) (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))) (*.f64 (fma.f64 x.im (neg.f64 x.im) (*.f64 x.im x.im)) x.im)) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.re))
7.7b
(+.f64 (fma.f64 (pow.f64 (cbrt.f64 x.im) 2) (*.f64 (cbrt.f64 x.im) (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))) (*.f64 (fma.f64 x.im (neg.f64 x.im) (*.f64 x.im x.im)) x.im)) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.re))
29.9b
(+.f64 (pow.f64 (sqrt.f64 (*.f64 x.im (-.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.re))
Compiler

Compiled 5410 to 1614 computations (70.2% saved)

localize22.0ms (0.7%)

Local error

Found 4 expressions with local error:

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

series42.0ms (1.3%)

Counts
3 → 60
Calls

3 calls:

22.0ms
(+.f64 (fma.f64 (+.f64 x.re x.im) (*.f64 (-.f64 x.re x.im) x.im) (*.f64 (fma.f64 x.im (neg.f64 x.im) (*.f64 x.im x.im)) x.im)) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.re))
16.0ms
(fma.f64 (+.f64 x.re x.im) (*.f64 (-.f64 x.re x.im) x.im) (*.f64 (fma.f64 x.im (neg.f64 x.im) (*.f64 x.im x.im)) x.im))
4.0ms
(fma.f64 x.im (neg.f64 x.im) (*.f64 x.im x.im))

rewrite110.0ms (3.3%)

Algorithm
batch-egg-rewrite
Rules
724×fma-def_binary64
468×fma-neg_binary64
217×expm1-udef_binary64
217×log1p-udef_binary64
177×egg-rr
Counts
3 → 177
Calls

3 calls:

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

Useful iterations: 0 (0.0ms)

IterNodesCost
01662
133651
2336747
3492547
4469147
000
100

simplify118.0ms (3.6%)

Algorithm
egg-herbie
Rules
628×fma-neg_binary64
580×fma-def_binary64
452×unswap-sqr_binary64
441×distribute-rgt-neg-in_binary64
374×associate-*l*_binary64
Counts
237 → 152
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
014621
136621
289621
3190621
4456621
51307621
62816621
74657621
84954621
94990621
104894621

prune125.0ms (3.8%)

Pruning

8 alts after pruning (6 fresh and 2 done)

PrunedKeptTotal
New1751176
Fresh055
Picked011
Done011
Total1758183
Error
0.0b
Counts
183 → 8
Alt Table
StatusErrorProgram
7.2b
(*.f64 x.im (fma.f64 x.re (*.f64 x.re 3) (neg.f64 (*.f64 x.im x.im))))
7.1b
(-.f64 (*.f64 3 (*.f64 (pow.f64 x.re 2) x.im)) (pow.f64 x.im 3))
7.2b
(+.f64 (*.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.im) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.re))
0.2b
(+.f64 (fma.f64 (+.f64 x.re x.im) (*.f64 (-.f64 x.re x.im) x.im) (*.f64 (fma.f64 x.im (neg.f64 x.im) (*.f64 x.im x.im)) x.im)) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.re))
36.2b
(+.f64 (fma.f64 (sqrt.f64 x.im) (*.f64 (sqrt.f64 x.im) (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))) (*.f64 (fma.f64 x.im (neg.f64 x.im) (*.f64 x.im x.im)) x.im)) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.re))
7.7b
(+.f64 (fma.f64 (pow.f64 (cbrt.f64 x.im) 2) (*.f64 (cbrt.f64 x.im) (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))) (*.f64 (fma.f64 x.im (neg.f64 x.im) (*.f64 x.im x.im)) x.im)) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.re))
38.6b
(+.f64 (fma.f64 (+.f64 x.re x.im) (*.f64 (-.f64 x.re x.im) x.im) (*.f64 (fma.f64 x.im (neg.f64 x.im) (*.f64 x.im x.im)) x.im)) (/.f64 (*.f64 x.re (*.f64 2 (pow.f64 (*.f64 x.re x.im) 3))) (+.f64 (pow.f64 (*.f64 x.re x.im) 2) 0)))
29.9b
(+.f64 (pow.f64 (sqrt.f64 (*.f64 x.im (-.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.re))
Compiler

Compiled 5633 to 1700 computations (69.8% saved)

localize6.0ms (0.2%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.0b
(-.f64 (*.f64 3 (*.f64 (pow.f64 x.re 2) x.im)) (pow.f64 x.im 3))
0.2b
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
7.7b
(*.f64 (pow.f64 x.re 2) x.im)

series33.0ms (1%)

Counts
3 → 6
Calls

3 calls:

14.0ms
(-.f64 (*.f64 3 (*.f64 (pow.f64 x.re 2) x.im)) (pow.f64 x.im 3))
10.0ms
(*.f64 (pow.f64 x.re 2) x.im)
9.0ms
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))

rewrite62.0ms (1.9%)

Algorithm
batch-egg-rewrite
Rules
495×log-prod_binary64
299×fma-def_binary64
258×pow2_binary64
178×expm1-udef_binary64
178×log1p-udef_binary64
Counts
3 → 152
Calls

3 calls:

59.0ms
(-.f64 (*.f64 3 (*.f64 (pow.f64 x.re 2) x.im)) (pow.f64 x.im 3))
59.0ms
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
59.0ms
(*.f64 (pow.f64 x.re 2) x.im)
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01033
121933
2244133
3495433
000
100

simplify105.0ms (3.2%)

Algorithm
egg-herbie
Rules
834×fma-def_binary64
528×fma-neg_binary64
450×unswap-sqr_binary64
425×distribute-rgt-neg-in_binary64
424×distribute-lft-neg-in_binary64
Counts
158 → 156
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01148
12948
27448
313148
428148
577148
6108048
7171248
8249248
9322048
10368048
11415648
12444748
13468548
14503148

prune156.0ms (4.7%)

Pruning

7 alts after pruning (4 fresh and 3 done)

PrunedKeptTotal
New1533156
Fresh415
Picked011
Done022
Total1577164
Error
0.0b
Counts
164 → 7
Alt Table
StatusErrorProgram
0.2b
(+.f64 (fma.f64 (+.f64 x.re x.im) (*.f64 (-.f64 x.re x.im) x.im) (*.f64 (fma.f64 x.im (neg.f64 x.im) (*.f64 x.im x.im)) x.im)) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.re))
7.2b
(*.f64 x.im (-.f64 (*.f64 (*.f64 x.re x.re) 3) (*.f64 x.im x.im)))
7.1b
(-.f64 (*.f64 3 (*.f64 (pow.f64 x.re 2) x.im)) (pow.f64 x.im 3))
7.2b
(+.f64 (*.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.im) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.re))
7.1b
(fma.f64 (*.f64 x.re x.re) (*.f64 x.im 3) (neg.f64 (pow.f64 x.im 3)))
36.1b
(fma.f64 (*.f64 (*.f64 (*.f64 x.re x.re) 3) (sqrt.f64 x.im)) (sqrt.f64 x.im) (neg.f64 (pow.f64 x.im 3)))
38.6b
(+.f64 (fma.f64 (+.f64 x.re x.im) (*.f64 (-.f64 x.re x.im) x.im) (*.f64 (fma.f64 x.im (neg.f64 x.im) (*.f64 x.im x.im)) x.im)) (/.f64 (*.f64 x.re (*.f64 2 (pow.f64 (*.f64 x.re x.im) 3))) (+.f64 (pow.f64 (*.f64 x.re x.im) 2) 0)))
Compiler

Compiled 3132 to 1769 computations (43.5% saved)

localize6.0ms (0.2%)

Local error

Found 1 expressions with local error:

NewErrorProgram
6.7b
(fma.f64 (*.f64 x.re x.re) (*.f64 x.im 3) (neg.f64 (pow.f64 x.im 3)))

series12.0ms (0.4%)

Counts
1 → 24
Calls

1 calls:

12.0ms
(fma.f64 (*.f64 x.re x.re) (*.f64 x.im 3) (neg.f64 (pow.f64 x.im 3)))

rewrite81.0ms (2.5%)

Algorithm
batch-egg-rewrite
Rules
681×log1p-expm1-u_binary64
681×expm1-log1p-u_binary64
290×egg-rr
286×prod-diff_binary64
138×expm1-udef_binary64
Counts
1 → 290
Calls

1 calls:

73.0ms
(fma.f64 (*.f64 x.re x.re) (*.f64 x.im 3) (neg.f64 (pow.f64 x.im 3)))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0916
118614
2180514
3492114
000
100

simplify97.0ms (2.9%)

Algorithm
egg-herbie
Rules
884×fma-neg_binary64
450×unswap-sqr_binary64
404×distribute-rgt-neg-in_binary64
382×neg-mul-1_binary64
376×fma-def_binary64
Counts
314 → 296
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
012336
132336
282336
3161336
4376336
51125336
62347336
73618336
84629336
94987336
104885336

prune245.0ms (7.4%)

Pruning

7 alts after pruning (4 fresh and 3 done)

PrunedKeptTotal
New2951296
Fresh033
Picked011
Done123
Total2967303
Error
0b
Counts
303 → 7
Alt Table
StatusErrorProgram
20.9b
(+.f64 (fma.f64 x.re (*.f64 x.re (*.f64 x.im 3)) (pow.f64 x.im 3)) (fma.f64 -1 (pow.f64 x.im 3) (pow.f64 x.im 3)))
7.1b
(fma.f64 (*.f64 x.re x.re) (*.f64 x.im 3) (neg.f64 (pow.f64 x.im 3)))
0.2b
(+.f64 (fma.f64 (+.f64 x.re x.im) (*.f64 (-.f64 x.re x.im) x.im) (*.f64 (fma.f64 x.im (neg.f64 x.im) (*.f64 x.im x.im)) x.im)) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.re))
7.2b
(*.f64 x.im (-.f64 (*.f64 (*.f64 x.re x.re) 3) (*.f64 x.im x.im)))
7.2b
(+.f64 (*.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.im) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.re))
36.1b
(fma.f64 (*.f64 (*.f64 (*.f64 x.re x.re) 3) (sqrt.f64 x.im)) (sqrt.f64 x.im) (neg.f64 (pow.f64 x.im 3)))
38.6b
(+.f64 (fma.f64 (+.f64 x.re x.im) (*.f64 (-.f64 x.re x.im) x.im) (*.f64 (fma.f64 x.im (neg.f64 x.im) (*.f64 x.im x.im)) x.im)) (/.f64 (*.f64 x.re (*.f64 2 (pow.f64 (*.f64 x.re x.im) 3))) (+.f64 (pow.f64 (*.f64 x.re x.im) 2) 0)))
Compiler

Compiled 8885 to 4621 computations (48% saved)

regimes170.0ms (5.1%)

Accuracy

Total 0.2b remaining (89%)

Threshold costs 0.2b (89%)

Counts
59 → 1
Compiler

Compiled 3441 to 2115 computations (38.5% saved)

simplify3.0ms (0.1%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
01641
12641
22941
33041
43041

end115.0ms (3.5%)

Compiler

Compiled 213 to 119 computations (44.1% saved)

Profiling

Loading profile data...