Details

Time bar (total: 3.6s)

analyze180.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 (31%)

Results
956.0ms8256×body128valid
55.0ms483×body128invalid
Compiler

Compiled 65 to 35 computations (46.2% saved)

simplify128.0ms (3.6%)

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

prune3.0ms (0.1%)

Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New022
Fresh011
Picked000
Done000
Total033
Error
9.1b
Counts
3 → 2
Alt Table
StatusErrorProgram
9.2b
(*.f64 x.re (fma.f64 x.re x.re (*.f64 (*.f64 x.im x.im) -3)))
9.2b
(-.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))
Compiler

Compiled 97 to 51 computations (47.4% saved)

localize10.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 x.re x.im) (*.f64 x.im x.re)) x.im)
0.2b
(-.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))
8.6b
(*.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.re)

series42.0ms (1.2%)

Counts
4 → 96
Calls

4 calls:

15.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))
12.0ms
(*.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.re)
10.0ms
(*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.im)
4.0ms
(+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re))

rewrite106.0ms (3%)

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

4 calls:

98.0ms
(+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re))
98.0ms
(*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.im)
98.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))
98.0ms
(*.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.re)
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01258
126444
2327244
3504544
000
100

simplify140.0ms (3.9%)

Algorithm
egg-herbie
Rules
781×fma-neg_binary64
689×fma-def_binary64
604×unswap-sqr_binary64
508×unsub-neg_binary64
307×*-commutative_binary64
Counts
399 → 314
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
0181011
1551011
2123975
3288975
4726975
51145975
61879975
72932975
84510975
94863975
104969975
114818975

prune188.0ms (5.2%)

Pruning

9 alts after pruning (9 fresh and 0 done)

PrunedKeptTotal
New3068314
Fresh011
Picked101
Done000
Total3079316
Error
7.2b
Counts
316 → 9
Alt Table
StatusErrorProgram
9.2b
(*.f64 x.re (fma.f64 x.re x.re (*.f64 (*.f64 x.im x.im) -3)))
35.9b
(-.f64 (fma.f64 (sqrt.f64 x.re) (*.f64 (sqrt.f64 x.re) (-.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.re)) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.im))
9.3b
(-.f64 (*.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.re) (*.f64 (fma.f64 (pow.f64 (cbrt.f64 x.im) 2) (*.f64 (cbrt.f64 x.im) x.re) (*.f64 x.re x.im)) x.im))
9.5b
(-.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))
9.6b
(-.f64 (fma.f64 (pow.f64 (cbrt.f64 x.re) 2) (*.f64 (cbrt.f64 x.re) (-.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.re)) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.im))
9.1b
(fma.f64 (*.f64 x.re (*.f64 x.im x.im)) -3 (pow.f64 x.re 3))
45.3b
(-.f64 (*.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.re) (/.f64 (*.f64 (*.f64 2 (pow.f64 (*.f64 x.re x.im) 3)) x.im) (+.f64 (pow.f64 (*.f64 x.re x.im) 2) 0)))
26.5b
(-.f64 (pow.f64 x.re 3) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.im))
9.1b
(-.f64 (-.f64 (pow.f64 x.re 3) (*.f64 x.re (pow.f64 x.im 2))) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.im))
Compiler

Compiled 9040 to 3469 computations (61.6% saved)

localize10.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 x.re x.im) (*.f64 x.im x.re)) x.im)
0.2b
(-.f64 (-.f64 (pow.f64 x.re 3) (*.f64 x.re (pow.f64 x.im 2))) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.im))
9.5b
(*.f64 x.re (pow.f64 x.im 2))

series25.0ms (0.7%)

Counts
2 → 24
Calls

2 calls:

13.0ms
(-.f64 (-.f64 (pow.f64 x.re 3) (*.f64 x.re (pow.f64 x.im 2))) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.im))
11.0ms
(*.f64 x.re (pow.f64 x.im 2))

rewrite76.0ms (2.1%)

Algorithm
batch-egg-rewrite
Rules
629×fma-def_binary64
363×fma-neg_binary64
237×expm1-udef_binary64
237×log1p-udef_binary64
148×add-sqr-sqrt_binary64
Counts
2 → 117
Calls

2 calls:

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

Useful iterations: 0 (0.0ms)

IterNodesCost
01433
130427
2350527
3500727
000
100

simplify110.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
141 → 122
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
012330
135330
279294
3200294
4527294
5865294
61356294
72113294
83981294
93970294
104835294
114898294
124839294

prune135.0ms (3.8%)

Pruning

9 alts after pruning (8 fresh and 1 done)

PrunedKeptTotal
New2121213
Fresh178
Picked011
Done000
Total2139222
Error
3.8b
Counts
222 → 9
Alt Table
StatusErrorProgram
9.3b
(-.f64 (*.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.re) (*.f64 (fma.f64 (pow.f64 (cbrt.f64 x.im) 2) (*.f64 (cbrt.f64 x.im) x.re) (*.f64 x.re x.im)) x.im))
9.5b
(-.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))
9.2b
(*.f64 x.re (fma.f64 x.re x.re (*.f64 (*.f64 x.im x.im) -3)))
31.6b
(-.f64 (-.f64 (pow.f64 x.re 3) (pow.f64 (*.f64 x.im (sqrt.f64 x.re)) 2)) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.im))
9.6b
(-.f64 (fma.f64 (pow.f64 (cbrt.f64 x.re) 2) (*.f64 (cbrt.f64 x.re) (-.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.re)) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.im))
9.1b
(fma.f64 (*.f64 x.re (*.f64 x.im x.im)) -3 (pow.f64 x.re 3))
45.3b
(-.f64 (*.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.re) (/.f64 (*.f64 (*.f64 2 (pow.f64 (*.f64 x.re x.im) 3)) x.im) (+.f64 (pow.f64 (*.f64 x.re x.im) 2) 0)))
26.5b
(-.f64 (pow.f64 x.re 3) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.im))
9.1b
(-.f64 (-.f64 (pow.f64 x.re 3) (*.f64 x.re (pow.f64 x.im 2))) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.im))
Compiler

Compiled 5370 to 3026 computations (43.6% saved)

localize8.0ms (0.2%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.2b
(fma.f64 (*.f64 x.re (*.f64 x.im x.im)) -3 (pow.f64 x.re 3))
9.5b
(*.f64 x.re (*.f64 x.im x.im))

series21.0ms (0.6%)

Counts
2 → 48
Calls

2 calls:

13.0ms
(fma.f64 (*.f64 x.re (*.f64 x.im x.im)) -3 (pow.f64 x.re 3))
8.0ms
(*.f64 x.re (*.f64 x.im x.im))

rewrite43.0ms (1.2%)

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 → 38
Calls

2 calls:

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

Useful iterations: 0 (0.0ms)

IterNodesCost
0921
118521
2191721
3490321
000
100

simplify118.0ms (3.3%)

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
86 → 45
Iterations

Useful iterations: 2 (0.0ms)

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

prune45.0ms (1.3%)

Pruning

9 alts after pruning (7 fresh and 2 done)

PrunedKeptTotal
New44145
Fresh167
Picked011
Done011
Total45954
Error
3.8b
Counts
54 → 9
Alt Table
StatusErrorProgram
9.3b
(-.f64 (*.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.re) (*.f64 (fma.f64 (pow.f64 (cbrt.f64 x.im) 2) (*.f64 (cbrt.f64 x.im) x.re) (*.f64 x.re x.im)) x.im))
9.5b
(-.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))
9.2b
(*.f64 x.re (fma.f64 x.re x.re (*.f64 (*.f64 x.im x.im) -3)))
31.6b
(-.f64 (-.f64 (pow.f64 x.re 3) (pow.f64 (*.f64 x.im (sqrt.f64 x.re)) 2)) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.im))
31.7b
(fma.f64 (pow.f64 (*.f64 x.im (sqrt.f64 x.re)) 2) -3 (pow.f64 x.re 3))
9.1b
(fma.f64 (*.f64 x.re (*.f64 x.im x.im)) -3 (pow.f64 x.re 3))
45.3b
(-.f64 (*.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.re) (/.f64 (*.f64 (*.f64 2 (pow.f64 (*.f64 x.re x.im) 3)) x.im) (+.f64 (pow.f64 (*.f64 x.re x.im) 2) 0)))
26.5b
(-.f64 (pow.f64 x.re 3) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.im))
9.1b
(-.f64 (-.f64 (pow.f64 x.re 3) (*.f64 x.re (pow.f64 x.im 2))) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.im))
Compiler

Compiled 949 to 532 computations (43.9% saved)

localize6.0ms (0.2%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.0b
(fma.f64 x.re x.re (*.f64 (*.f64 x.im x.im) -3))
0.2b
(*.f64 (*.f64 x.im x.im) -3)
8.6b
(*.f64 x.re (fma.f64 x.re x.re (*.f64 (*.f64 x.im x.im) -3)))

series26.0ms (0.7%)

Counts
3 → 60
Calls

3 calls:

14.0ms
(*.f64 x.re (fma.f64 x.re x.re (*.f64 (*.f64 x.im x.im) -3)))
8.0ms
(fma.f64 x.re x.re (*.f64 (*.f64 x.im x.im) -3))
4.0ms
(*.f64 (*.f64 x.im x.im) -3)

rewrite101.0ms (2.8%)

Algorithm
batch-egg-rewrite
Rules
666×log1p-expm1-u_binary64
666×expm1-log1p-u_binary64
139×expm1-udef_binary64
139×log1p-udef_binary64
123×prod-diff_binary64
Counts
3 → 69
Calls

3 calls:

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

Useful iterations: 0 (0.0ms)

IterNodesCost
0832
116132
2176732
3493732
4498732
5495232
000
100

simplify113.0ms (3.2%)

Algorithm
egg-herbie
Rules
902×fma-def_binary64
768×fma-neg_binary64
672×unswap-sqr_binary64
449×distribute-rgt-neg-in_binary64
408×distribute-lft-neg-in_binary64
Counts
129 → 80
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
016681
146645
2101609
3291609
41007609
51869609
64046609
74643609
84962609
94968609
104883609

prune80.0ms (2.2%)

Pruning

9 alts after pruning (7 fresh and 2 done)

PrunedKeptTotal
New78280
Fresh156
Picked101
Done022
Total80989
Error
3.8b
Counts
89 → 9
Alt Table
StatusErrorProgram
9.3b
(-.f64 (*.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.re) (*.f64 (fma.f64 (pow.f64 (cbrt.f64 x.im) 2) (*.f64 (cbrt.f64 x.im) x.re) (*.f64 x.re x.im)) x.im))
9.5b
(-.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))
31.6b
(-.f64 (-.f64 (pow.f64 x.re 3) (pow.f64 (*.f64 x.im (sqrt.f64 x.re)) 2)) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.im))
9.5b
(*.f64 x.re (fma.f64 x.re x.re (pow.f64 (cbrt.f64 (*.f64 (*.f64 x.im x.im) -3)) 3)))
31.7b
(fma.f64 (pow.f64 (*.f64 x.im (sqrt.f64 x.re)) 2) -3 (pow.f64 x.re 3))
9.1b
(fma.f64 (*.f64 x.re (*.f64 x.im x.im)) -3 (pow.f64 x.re 3))
9.2b
(*.f64 x.re (fma.f64 -3 (*.f64 x.im x.im) (*.f64 x.re x.re)))
26.5b
(-.f64 (pow.f64 x.re 3) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.im))
9.1b
(-.f64 (-.f64 (pow.f64 x.re 3) (*.f64 x.re (pow.f64 x.im 2))) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.im))
Compiler

Compiled 1213 to 636 computations (47.6% saved)

regimes440.0ms (12.3%)

Accuracy

Total 1.0b remaining (25.8%)

Threshold costs 1.0b (25.8%)

Counts
79 → 2
Compiler

Compiled 4422 to 2592 computations (41.4% saved)

bsearch40.0ms (1.1%)

Steps
ItersRangePoint
9
-1.0278170934138718e-299
-2.1139087088715185e-305
-2.1348970050771735e-305
Compiler

Compiled 3 to 2 computations (33.3% saved)

simplify13.0ms (0.4%)

Algorithm
egg-herbie
Rules
16×*-commutative_binary64
15×+-commutative_binary64
14×sub-neg_binary64
10×distribute-rgt-neg-in_binary64
10×neg-sub0_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02561
14761
28361
310861
412161
512461
612361

end265.0ms (7.4%)

Compiler

Compiled 246 to 151 computations (38.6% saved)

Profiling

Loading profile data...