Details

Time bar (total: 23.3s)

analyze1.1s (4.8%)

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
25%68.6%6.4%7
31.2%62.4%6.4%8
36.7%54.6%8.7%9
38.2%48.4%13.4%10
42.7%42.3%15%11
47.8%34.1%18.1%12
49.1%30.3%20.5%13
51.9%25.8%22.3%14
Compiler

Compiled 21 to 15 computations (28.6% saved)

sample4.7s (20%)

Results
1.7s5374×body128valid
1.1s1189×body2048valid
578.0ms435×body4096valid
558.0ms718×body1024valid
278.0ms1079×body128invalid
201.0ms358×body512valid
74.0ms182×body256valid
Compiler

Compiled 62 to 44 computations (29% saved)

simplify362.0ms (1.6%)

Algorithm
egg-herbie
Rules
1968×fma-neg_binary64
1363×fma-def_binary64
898×div-sub_binary64
743×associate-/l*_binary64
567×times-frac_binary64
Counts
1 → 2
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01326
13022
26422
313522
420122
533522
655422
792922
8147722
9211522
10259922
11255422
12260222
13267122
14311722
15232722
16237522
17238322
18238922
19239522
20239722
21239722
22258522
23268522
24261922
25263122
26266122
27267722
28270722
29270722
30275122
31285122
32282722
33282722
34263822

prune8.0ms (0%)

Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New022
Fresh011
Picked000
Done000
Total033
Error
35.1b
Counts
3 → 2
Alt Table
StatusErrorProgram
35.2b
(*.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) b) (/.f64 1/3 a))
35.4b
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c)))) (*.f64 3 a))
Compiler

Compiled 111 to 74 computations (33.3% saved)

localize21.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.2b
(*.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) b) (/.f64 1/3 a))
0.4b
(/.f64 1/3 a)
0.9b
(-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) b)
23.5b
(sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b)))

series328.0ms (1.4%)

Counts
4 → 60
Calls

4 calls:

155.0ms
(*.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) b) (/.f64 1/3 a))
93.0ms
(-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) b)
77.0ms
(sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b)))
3.0ms
(/.f64 1/3 a)

rewrite116.0ms (0.5%)

Algorithm
batch-egg-rewrite
Rules
781×prod-diff_binary64
245×log1p-udef_binary64
159×egg-rr
139×add-sqr-sqrt_binary64
133×log1p-expm1-u_binary64
Counts
4 → 159
Calls

4 calls:

108.0ms
(*.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) b) (/.f64 1/3 a))
108.0ms
(/.f64 1/3 a)
108.0ms
(-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) b)
108.0ms
(sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b)))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01355
128055
2340655
3511855
000
100

simplify122.0ms (0.5%)

Algorithm
egg-herbie
Rules
766×times-frac_binary64
487×associate-/l*_binary64
405×associate-/r*_binary64
391×fma-def_binary64
368×fma-neg_binary64
Counts
219 → 226
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01341923
14201901
213721860
349651854
451721854

prune476.0ms (2%)

Pruning

11 alts after pruning (11 fresh and 0 done)

PrunedKeptTotal
New21610226
Fresh011
Picked101
Done000
Total21711228
Error
4.8b
Counts
228 → 11
Alt Table
StatusErrorProgram
45.1b
(*.f64 (*.f64 -2 b) (/.f64 1/3 a))
45.1b
(*.f64 -2/3 (/.f64 b a))
35.4b
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c)))) (*.f64 3 a))
35.3b
(*.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) b) (*.f64 1/3 (/.f64 1 a)))
46.5b
(*.f64 (/.f64 (-.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b)) (*.f64 b b)) (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))))) (/.f64 1/3 a))
35.2b
(/.f64 (*.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) b) 1/3) a)
37.1b
(*.f64 (exp.f64 (log.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) b))) (/.f64 1/3 a))
37.3b
(*.f64 -1/2 (/.f64 c b))
45.2b
(fma.f64 1/2 (/.f64 c b) (*.f64 (/.f64 b a) -2/3))
49.5b
(/.f64 (-.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b)) (*.f64 b b)) (*.f64 (*.f64 a 3) (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))))))
36.9b
(*.f64 (fma.f64 (cbrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) (cbrt.f64 (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b)))) (neg.f64 b)) (/.f64 1/3 a))
Compiler

Compiled 6296 to 3691 computations (41.4% saved)

localize20.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.2b
(/.f64 (*.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) b) 1/3) a)
0.3b
(*.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) b) 1/3)
0.9b
(-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) b)
23.5b
(sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b)))

series284.0ms (1.2%)

Counts
2 → 40
Calls

2 calls:

158.0ms
(/.f64 (*.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) b) 1/3) a)
126.0ms
(*.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) b) 1/3)

rewrite86.0ms (0.4%)

Algorithm
batch-egg-rewrite
Rules
790×prod-diff_binary64
246×log1p-udef_binary64
139×add-sqr-sqrt_binary64
133×log1p-expm1-u_binary64
133×expm1-log1p-u_binary64
Counts
2 → 63
Calls

2 calls:

83.0ms
(/.f64 (*.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) b) 1/3) a)
83.0ms
(*.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) b) 1/3)
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01341
127941
2347541
3523141
000
100

simplify94.0ms (0.4%)

Algorithm
egg-herbie
Rules
731×times-frac_binary64
467×associate-/l*_binary64
371×associate-/r*_binary64
336×fma-def_binary64
310×fma-neg_binary64
Counts
103 → 108
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01111382
13621368
212001336
349251330
450841330

prune442.0ms (1.9%)

Pruning

10 alts after pruning (10 fresh and 0 done)

PrunedKeptTotal
New2434247
Fresh4610
Picked101
Done000
Total24810258
Error
4.8b
Counts
258 → 10
Alt Table
StatusErrorProgram
45.1b
(*.f64 (*.f64 -2 b) (/.f64 1/3 a))
43.6b
(/.f64 (/.f64 (*.f64 (-.f64 (pow.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b)) 3/2) (pow.f64 b 3)) 1/3) (+.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b)) (*.f64 b (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))))))) a)
35.4b
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c)))) (*.f64 3 a))
37.0b
(/.f64 (*.f64 (+.f64 (fma.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) 2)) (sqrt.f64 (cbrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b)))) (neg.f64 b)) (fma.f64 -1 b b)) 1/3) a)
37.3b
(*.f64 -1/2 (/.f64 c b))
45.2b
(fma.f64 1/2 (/.f64 c b) (*.f64 (/.f64 b a) -2/3))
45.1b
(/.f64 (*.f64 -2/3 b) a)
35.8b
(-.f64 (/.f64 (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) (*.f64 a 3)) (/.f64 b (*.f64 a 3)))
49.5b
(/.f64 (-.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b)) (*.f64 b b)) (*.f64 (*.f64 a 3) (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))))))
36.9b
(*.f64 (fma.f64 (cbrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) (cbrt.f64 (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b)))) (neg.f64 b)) (/.f64 1/3 a))
Compiler

Compiled 6842 to 4058 computations (40.7% saved)

localize20.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.4b
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c)))) (*.f64 3 a))
0.9b
(+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c))))
1.8b
(-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c))
23.5b
(sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c)))

series419.0ms (1.8%)

Counts
4 → 96
Calls

4 calls:

221.0ms
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c)))) (*.f64 3 a))
96.0ms
(+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c))))
83.0ms
(sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c)))
18.0ms
(-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c))

rewrite177.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
725×fma-def_binary64
366×fma-neg_binary64
297×egg-rr
248×expm1-udef_binary64
248×log1p-udef_binary64
Counts
4 → 297
Calls

4 calls:

160.0ms
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c)))) (*.f64 3 a))
160.0ms
(+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c))))
160.0ms
(-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c))
160.0ms
(sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c)))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01374
129762
2376962
3548062
000
100

simplify123.0ms (0.5%)

Algorithm
egg-herbie
Rules
780×times-frac_binary64
487×associate-/l*_binary64
417×associate-/r*_binary64
406×fma-def_binary64
142×cancel-sign-sub-inv_binary64
Counts
393 → 370
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01372325
14252249
213822208
349792208

prune599.0ms (2.6%)

Pruning

9 alts after pruning (8 fresh and 1 done)

PrunedKeptTotal
New3673370
Fresh459
Picked011
Done000
Total3719380
Error
4.8b
Counts
380 → 9
Alt Table
StatusErrorProgram
35.5b
(*.f64 (-.f64 b (sqrt.f64 (fma.f64 -3 (*.f64 a c) (*.f64 b b)))) (/.f64 1 (*.f64 a -3)))
37.3b
(*.f64 -1/2 (/.f64 c b))
45.2b
(fma.f64 1/2 (/.f64 c b) (*.f64 (/.f64 b a) -2/3))
43.6b
(/.f64 (/.f64 (*.f64 (-.f64 (pow.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b)) 3/2) (pow.f64 b 3)) 1/3) (+.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b)) (*.f64 b (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))))))) a)
45.3b
(/.f64 (*.f64 -2 b) (*.f64 3 a))
35.4b
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c)))) (*.f64 3 a))
35.8b
(-.f64 (/.f64 (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) (*.f64 a 3)) (/.f64 b (*.f64 a 3)))
49.5b
(/.f64 (-.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b)) (*.f64 b b)) (*.f64 (*.f64 a 3) (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))))))
36.8b
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (fma.f64 (pow.f64 (cbrt.f64 b) 2) (*.f64 (cbrt.f64 b) b) (*.f64 -3 (*.f64 a c))))) (*.f64 3 a))
Compiler

Compiled 11050 to 6043 computations (45.3% saved)

localize22.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.5b
(/.f64 1 (*.f64 a -3))
0.9b
(-.f64 b (sqrt.f64 (fma.f64 -3 (*.f64 a c) (*.f64 b b))))
1.9b
(fma.f64 -3 (*.f64 a c) (*.f64 b b))
23.5b
(sqrt.f64 (fma.f64 -3 (*.f64 a c) (*.f64 b b)))

series218.0ms (0.9%)

Counts
4 → 88
Calls

4 calls:

113.0ms
(-.f64 b (sqrt.f64 (fma.f64 -3 (*.f64 a c) (*.f64 b b))))
82.0ms
(sqrt.f64 (fma.f64 -3 (*.f64 a c) (*.f64 b b)))
20.0ms
(fma.f64 -3 (*.f64 a c) (*.f64 b b))
3.0ms
(/.f64 1 (*.f64 a -3))

rewrite168.0ms (0.7%)

Algorithm
batch-egg-rewrite
Rules
729×prod-diff_binary64
231×log1p-udef_binary64
230×expm1-udef_binary64
148×egg-rr
133×add-sqr-sqrt_binary64
Counts
4 → 148
Calls

4 calls:

160.0ms
(/.f64 1 (*.f64 a -3))
160.0ms
(-.f64 b (sqrt.f64 (fma.f64 -3 (*.f64 a c) (*.f64 b b))))
160.0ms
(fma.f64 -3 (*.f64 a c) (*.f64 b b))
160.0ms
(sqrt.f64 (fma.f64 -3 (*.f64 a c) (*.f64 b b)))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01347
127144
2315644
3499644
4517144
000
100

simplify144.0ms (0.6%)

Algorithm
egg-herbie
Rules
455×times-frac_binary64
447×unswap-sqr_binary64
407×fma-neg_binary64
274×associate-/l*_binary64
273×associate-*r*_binary64
Counts
236 → 200
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
0851684
12541618
27751604
338631602
450141602

prune357.0ms (1.5%)

Pruning

10 alts after pruning (8 fresh and 2 done)

PrunedKeptTotal
New1991200
Fresh077
Picked011
Done011
Total19910209
Error
4.8b
Counts
209 → 10
Alt Table
StatusErrorProgram
35.5b
(*.f64 (-.f64 b (sqrt.f64 (fma.f64 -3 (*.f64 a c) (*.f64 b b)))) (/.f64 1 (*.f64 a -3)))
37.3b
(*.f64 -1/2 (/.f64 c b))
45.3b
(*.f64 (*.f64 2 b) (/.f64 1 (*.f64 a -3)))
45.2b
(fma.f64 1/2 (/.f64 c b) (*.f64 (/.f64 b a) -2/3))
43.6b
(/.f64 (/.f64 (*.f64 (-.f64 (pow.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b)) 3/2) (pow.f64 b 3)) 1/3) (+.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b)) (*.f64 b (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))))))) a)
45.3b
(/.f64 (*.f64 -2 b) (*.f64 3 a))
35.4b
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c)))) (*.f64 3 a))
35.8b
(-.f64 (/.f64 (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) (*.f64 a 3)) (/.f64 b (*.f64 a 3)))
49.5b
(/.f64 (-.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b)) (*.f64 b b)) (*.f64 (*.f64 a 3) (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))))))
36.8b
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (fma.f64 (pow.f64 (cbrt.f64 b) 2) (*.f64 (cbrt.f64 b) b) (*.f64 -3 (*.f64 a c))))) (*.f64 3 a))
Compiler

Compiled 6582 to 3744 computations (43.1% saved)

regimes12.3s (52.6%)

Accuracy

Total 5.0b remaining (46.8%)

Threshold costs 0b (0%)

Counts
325 → 5
Compiler

Compiled 38527 to 26271 computations (31.8% saved)

bsearch314.0ms (1.3%)

Steps
ItersRangePoint
8
7.560900787665848e-46
3.1287933573560865e-43
1.1474036072114028e-45
10
4.083050964430481e-102
1.197830895422842e-91
4.629430298105775e-102
7
9.04385804579909e-134
2.35081976312017e-132
2.3252761482698304e-132
9
-8.644997366783787e+79
-1.5160909950614094e+71
-7.129467328473503e+79
Compiler

Compiled 4 to 3 computations (25% saved)

simplify10.0ms (0%)

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

Useful iterations: 1 (0.0ms)

IterNodesCost
043106
161104
274104
382104
486104
587104
686104

end321.0ms (1.4%)

Compiler

Compiled 353 to 228 computations (35.4% saved)

Profiling

Loading profile data...