Details

Time bar (total: 7.7s)

analyze632.0ms (8.2%)

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
12.5%87.4%0.1%5
18.7%81.1%0.1%6
21.8%71.8%6.4%7
31.2%62.4%6.4%8
35.9%55.4%8.7%9
37.8%48.8%13.4%10
42.7%42.3%15%11
47.7%34.2%18.1%12
49.1%30.4%20.5%13
51.9%25.8%22.3%14
Compiler

Compiled 21 to 15 computations (28.6% saved)

sample2.4s (31.6%)

Results
767.0ms5399×body128valid
643.0ms1193×body2048valid
383.0ms743×body1024valid
246.0ms401×body4096valid
162.0ms1145×body128invalid
141.0ms370×body512valid
35.0ms150×body256valid
Compiler

Compiled 62 to 44 computations (29% saved)

simplify64.0ms (0.8%)

Algorithm
egg-herbie
Rules
648×rules-33_binary64
343×rules-1_binary64
333×rules-6-rev_binary64
291×rules-5-rev_binary64
260×rules-1-rev_binary64
Counts
1 → 2
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01526
13225
27725
321422
482222
5362522
6468822
7586722

prune3.0ms (0%)

Pruning

2 alts after pruning (2 fresh and 0 done)

PrunedKeptTotal
New112
Fresh011
Picked000
Done000
Total123
Error
34.0b
Counts
3 → 1
Alt Table
StatusErrorProgram
34.0b
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 a))
Compiler

Compiled 75 to 50 computations (33.3% saved)

localize11.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.2b
(*.f64 (*.f64 4 a) c)
0.5b
(+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))
0.8b
(-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))
22.2b
(sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))

series77.0ms (1%)

Counts
4 → 100
Calls

4 calls:

34.0ms
(+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))
28.0ms
(sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))
11.0ms
(-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))
4.0ms
(*.f64 (*.f64 4 a) c)

rewrite90.0ms (1.2%)

Algorithm
batch-egg-rewrite
Rules
231×expm1-udef_binary64
231×log1p-udef_binary64
204×log-pow_binary64
202×log-div_binary64
193×egg-rr
Counts
4 → 193
Calls

4 calls:

84.0ms
(*.f64 (*.f64 4 a) c)
84.0ms
(+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))
84.0ms
(-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))
84.0ms
(sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01255
130053
2388051
3504651
000
100

simplify96.0ms (1.2%)

Algorithm
egg-herbie
Rules
467×fma-def_binary64
371×rules-11_binary64
311×fma-neg_binary64
304×rules-20_binary64
277×rules-13_binary64
Counts
293 → 243
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
0841835
12571694
211111675
348801675
449971675
549411675

prune185.0ms (2.4%)

Pruning

10 alts after pruning (10 fresh and 0 done)

PrunedKeptTotal
New23310243
Fresh000
Picked101
Done000
Total23410244
Error
8.4b
Counts
244 → 10
Alt Table
StatusErrorProgram
37.8b
(/.f64 (fma.f64 (pow.f64 (cbrt.f64 (neg.f64 b)) 2) (cbrt.f64 (neg.f64 b)) (hypot.f64 b (sqrt.f64 (neg.f64 (*.f64 (*.f64 4 a) c))))) (*.f64 2 a))
56.0b
(/.f64 (+.f64 (neg.f64 b) b) (*.f64 2 a))
35.9b
(/.f64 (exp.f64 (log.f64 (-.f64 (hypot.f64 b (sqrt.f64 (neg.f64 (*.f64 (*.f64 4 a) c)))) b))) (*.f64 2 a))
37.2b
(/.f64 (+.f64 (neg.f64 b) (pow.f64 (cbrt.f64 (hypot.f64 b (sqrt.f64 (neg.f64 (*.f64 (*.f64 4 a) c))))) 3)) (*.f64 2 a))
36.4b
(/.f64 (fma.f64 (pow.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)) 1/4) (pow.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)) 1/4) (neg.f64 b)) (*.f64 2 a))
46.6b
(/.f64 (+.f64 (neg.f64 b) (*.f64 (sqrt.f64 c) (sqrt.f64 (-.f64 (/.f64 (*.f64 b b) c) (*.f64 4 a))))) (*.f64 2 a))
47.2b
(/.f64 (*.f64 -2 b) (*.f64 2 a))
53.7b
(/.f64 (*.f64 -2 (fma.f64 c (/.f64 a b) (/.f64 (*.f64 (*.f64 c c) (*.f64 a a)) (pow.f64 b 3)))) (*.f64 2 a))
44.4b
(/.f64 (*.f64 -2 (/.f64 (*.f64 c a) b)) (*.f64 2 a))
46.1b
(/.f64 (-.f64 (/.f64 (fma.f64 1/2 (*.f64 b b) (*.f64 c (*.f64 a -4))) (sqrt.f64 (*.f64 c (*.f64 a -4)))) b) (*.f64 2 a))
Compiler

Compiled 6537 to 4106 computations (37.2% saved)

localize13.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.2b
(*.f64 (*.f64 4 a) c)
0.2b
(-.f64 (hypot.f64 b (sqrt.f64 (neg.f64 (*.f64 (*.f64 4 a) c)))) b)
2.8b
(exp.f64 (log.f64 (-.f64 (hypot.f64 b (sqrt.f64 (neg.f64 (*.f64 (*.f64 4 a) c)))) b)))
12.2b
(sqrt.f64 (neg.f64 (*.f64 (*.f64 4 a) c)))

series283.0ms (3.7%)

Counts
3 → 24
Calls

3 calls:

149.0ms
(-.f64 (hypot.f64 b (sqrt.f64 (neg.f64 (*.f64 (*.f64 4 a) c)))) b)
121.0ms
(exp.f64 (log.f64 (-.f64 (hypot.f64 b (sqrt.f64 (neg.f64 (*.f64 (*.f64 4 a) c)))) b)))
13.0ms
(sqrt.f64 (neg.f64 (*.f64 (*.f64 4 a) c)))

rewrite84.0ms (1.1%)

Algorithm
batch-egg-rewrite
Rules
627×prod-diff_binary64
215×log1p-udef_binary64
139×egg-rr
120×add-sqr-sqrt_binary64
117×log1p-expm1-u_binary64
Counts
3 → 139
Calls

3 calls:

80.0ms
(-.f64 (hypot.f64 b (sqrt.f64 (neg.f64 (*.f64 (*.f64 4 a) c)))) b)
80.0ms
(exp.f64 (log.f64 (-.f64 (hypot.f64 b (sqrt.f64 (neg.f64 (*.f64 (*.f64 4 a) c)))) b)))
80.0ms
(sqrt.f64 (neg.f64 (*.f64 (*.f64 4 a) c)))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01345
128245
2349945
3499345
000
100

simplify53.0ms (0.7%)

Algorithm
egg-herbie
Rules
585×rules-14-rev_binary64
237×rules-4_binary64
201×rules-21_binary64
189×fma-neg_binary64
187×rules-11_binary64
Counts
163 → 114
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
059982
1160820
2660770
33992770
45766770

prune123.0ms (1.6%)

Pruning

11 alts after pruning (11 fresh and 0 done)

PrunedKeptTotal
New1433146
Fresh189
Picked101
Done000
Total14511156
Error
8.4b
Counts
156 → 11
Alt Table
StatusErrorProgram
55.2b
(/.f64 (+.f64 (-.f64 (hypot.f64 b (sqrt.f64 (neg.f64 (*.f64 (*.f64 4 a) c)))) b) (fma.f64 (neg.f64 (sqrt.f64 b)) (sqrt.f64 b) b)) (*.f64 2 a))
37.2b
(/.f64 (+.f64 (neg.f64 b) (pow.f64 (cbrt.f64 (hypot.f64 b (sqrt.f64 (neg.f64 (*.f64 (*.f64 4 a) c))))) 3)) (*.f64 2 a))
37.0b
(/.f64 (pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (-.f64 (hypot.f64 b (sqrt.f64 (neg.f64 (*.f64 (*.f64 4 a) c)))) b))) 2)) (cbrt.f64 (log.f64 (-.f64 (hypot.f64 b (sqrt.f64 (neg.f64 (*.f64 (*.f64 4 a) c)))) b)))) (*.f64 2 a))
56.0b
(/.f64 (+.f64 (neg.f64 b) b) (*.f64 2 a))
36.4b
(/.f64 (fma.f64 (pow.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)) 1/4) (pow.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)) 1/4) (neg.f64 b)) (*.f64 2 a))
46.6b
(/.f64 (+.f64 (neg.f64 b) (*.f64 (sqrt.f64 c) (sqrt.f64 (-.f64 (/.f64 (*.f64 b b) c) (*.f64 4 a))))) (*.f64 2 a))
39.0b
(/.f64 (*.f64 (cbrt.f64 b) (-.f64 (/.f64 (hypot.f64 b (sqrt.f64 (neg.f64 (*.f64 (*.f64 4 a) c)))) (cbrt.f64 b)) (cbrt.f64 (*.f64 b b)))) (*.f64 2 a))
47.2b
(/.f64 (*.f64 -2 b) (*.f64 2 a))
53.7b
(/.f64 (*.f64 -2 (fma.f64 c (/.f64 a b) (/.f64 (*.f64 (*.f64 c c) (*.f64 a a)) (pow.f64 b 3)))) (*.f64 2 a))
44.4b
(/.f64 (*.f64 -2 (/.f64 (*.f64 c a) b)) (*.f64 2 a))
46.1b
(/.f64 (-.f64 (/.f64 (fma.f64 1/2 (*.f64 b b) (*.f64 c (*.f64 a -4))) (sqrt.f64 (*.f64 c (*.f64 a -4)))) b) (*.f64 2 a))
Compiler

Compiled 4037 to 2824 computations (30% saved)

localize14.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.2b
(*.f64 (*.f64 4 a) c)
0.8b
(-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))
22.8b
(pow.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)) 1/4)
23.1b
(fma.f64 (pow.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)) 1/4) (pow.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)) 1/4) (neg.f64 b))

series121.0ms (1.6%)

Counts
2 → 72
Calls

2 calls:

80.0ms
(fma.f64 (pow.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)) 1/4) (pow.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)) 1/4) (neg.f64 b))
41.0ms
(pow.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)) 1/4)

rewrite71.0ms (0.9%)

Algorithm
batch-egg-rewrite
Rules
240×expm1-udef_binary64
240×log1p-udef_binary64
210×log-pow_binary64
191×log-div_binary64
134×add-sqr-sqrt_binary64
Counts
2 → 67
Calls

2 calls:

69.0ms
(pow.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)) 1/4)
69.0ms
(fma.f64 (pow.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)) 1/4) (pow.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)) 1/4) (neg.f64 b))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01353
132036
2391035
3498035
000
100

simplify95.0ms (1.2%)

Algorithm
egg-herbie
Rules
406×fma-neg_binary64
300×fma-def_binary64
257×rules-4_binary64
238×rules-20_binary64
219×rules-13_binary64
Counts
139 → 176
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
03033930
110033671
246953671
351833671

prune422.0ms (5.5%)

Pruning

11 alts after pruning (10 fresh and 1 done)

PrunedKeptTotal
New4625467
Fresh5510
Picked011
Done000
Total46711478
Error
4.2b
Counts
478 → 11
Alt Table
StatusErrorProgram
36.4b
(/.f64 (fma.f64 (pow.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)) 1/4) (pow.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)) 1/4) (neg.f64 b)) (*.f64 2 a))
52.8b
(/.f64 (-.f64 (pow.f64 (exp.f64 (*.f64 1/4 (-.f64 (log.f64 (neg.f64 (*.f64 4 c))) (log.f64 (/.f64 1 a))))) 2) b) (*.f64 2 a))
46.6b
(/.f64 (+.f64 (neg.f64 b) (*.f64 (sqrt.f64 c) (sqrt.f64 (-.f64 (/.f64 (*.f64 b b) c) (*.f64 4 a))))) (*.f64 2 a))
46.2b
(/.f64 (*.f64 c (/.f64 a (/.f64 b -2))) (*.f64 2 a))
51.4b
(/.f64 (-.f64 (pow.f64 (pow.f64 (exp.f64 1/4) (+.f64 (log.f64 c) (log.f64 (*.f64 -4 a)))) 2) b) (*.f64 2 a))
52.8b
(/.f64 (-.f64 (pow.f64 (exp.f64 (*.f64 1/4 (-.f64 (log.f64 (*.f64 4 a)) (log.f64 (/.f64 -1 c))))) 2) b) (*.f64 2 a))
37.2b
(/.f64 (+.f64 (neg.f64 b) (pow.f64 (cbrt.f64 (hypot.f64 b (sqrt.f64 (neg.f64 (*.f64 (*.f64 4 a) c))))) 3)) (*.f64 2 a))
34.0b
(/.f64 (+.f64 (hypot.f64 b (sqrt.f64 (neg.f64 (*.f64 (*.f64 4 a) c)))) (neg.f64 b)) (*.f64 2 a))
47.2b
(/.f64 (*.f64 -2 b) (*.f64 2 a))
44.4b
(/.f64 (*.f64 -2 (/.f64 (*.f64 c a) b)) (*.f64 2 a))
46.1b
(/.f64 (-.f64 (/.f64 (fma.f64 1/2 (*.f64 b b) (*.f64 c (*.f64 a -4))) (sqrt.f64 (*.f64 c (*.f64 a -4)))) b) (*.f64 2 a))
Compiler

Compiled 19790 to 12475 computations (37% saved)

localize11.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(/.f64 (+.f64 (hypot.f64 b (sqrt.f64 (neg.f64 (*.f64 (*.f64 4 a) c)))) (neg.f64 b)) (*.f64 2 a))
0.2b
(*.f64 (*.f64 4 a) c)
0.2b
(+.f64 (hypot.f64 b (sqrt.f64 (neg.f64 (*.f64 (*.f64 4 a) c)))) (neg.f64 b))
12.2b
(sqrt.f64 (neg.f64 (*.f64 (*.f64 4 a) c)))

series232.0ms (3%)

Counts
2 → 24
Calls

2 calls:

142.0ms
(/.f64 (+.f64 (hypot.f64 b (sqrt.f64 (neg.f64 (*.f64 (*.f64 4 a) c)))) (neg.f64 b)) (*.f64 2 a))
90.0ms
(+.f64 (hypot.f64 b (sqrt.f64 (neg.f64 (*.f64 (*.f64 4 a) c)))) (neg.f64 b))

rewrite93.0ms (1.2%)

Algorithm
batch-egg-rewrite
Rules
976×prod-diff_binary64
150×add-sqr-sqrt_binary64
144×log1p-expm1-u_binary64
144×expm1-log1p-u_binary64
141×add-cbrt-cube_binary64
Counts
2 → 76
Calls

2 calls:

88.0ms
(/.f64 (+.f64 (hypot.f64 b (sqrt.f64 (neg.f64 (*.f64 (*.f64 4 a) c)))) (neg.f64 b)) (*.f64 2 a))
88.0ms
(+.f64 (hypot.f64 b (sqrt.f64 (neg.f64 (*.f64 (*.f64 4 a) c)))) (neg.f64 b))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01544
135740
2439440
3620940
000
100

simplify40.0ms (0.5%)

Algorithm
egg-herbie
Rules
418×rules-15-rev_binary64
404×rules-12-rev_binary64
400×fma-neg_binary64
378×rules-20_binary64
255×fma-def_binary64
Counts
100 → 124
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01021084
1333917
21483906
35064906

prune145.0ms (1.9%)

Pruning

12 alts after pruning (10 fresh and 2 done)

PrunedKeptTotal
New1883191
Fresh279
Picked011
Done011
Total19012202
Error
2.2b
Counts
202 → 12
Alt Table
StatusErrorProgram
36.4b
(/.f64 (fma.f64 (pow.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)) 1/4) (pow.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)) 1/4) (neg.f64 b)) (*.f64 2 a))
52.8b
(/.f64 (-.f64 (pow.f64 (exp.f64 (*.f64 1/4 (-.f64 (log.f64 (neg.f64 (*.f64 4 c))) (log.f64 (/.f64 1 a))))) 2) b) (*.f64 2 a))
46.6b
(/.f64 (+.f64 (neg.f64 b) (*.f64 (sqrt.f64 c) (sqrt.f64 (-.f64 (/.f64 (*.f64 b b) c) (*.f64 4 a))))) (*.f64 2 a))
46.2b
(/.f64 (*.f64 c (/.f64 a (/.f64 b -2))) (*.f64 2 a))
44.4b
(/.f64 (*.f64 -2 (/.f64 (*.f64 c a) b)) (*.f64 2 a))
34.1b
(*.f64 (-.f64 (hypot.f64 b (sqrt.f64 (neg.f64 (*.f64 (*.f64 4 a) c)))) b) (/.f64 1 (*.f64 a 2)))
51.4b
(/.f64 (-.f64 (pow.f64 (pow.f64 (exp.f64 1/4) (+.f64 (log.f64 c) (log.f64 (*.f64 -4 a)))) 2) b) (*.f64 2 a))
52.8b
(/.f64 (-.f64 (pow.f64 (exp.f64 (*.f64 1/4 (-.f64 (log.f64 (*.f64 4 a)) (log.f64 (/.f64 -1 c))))) 2) b) (*.f64 2 a))
44.4b
(*.f64 1/4 (/.f64 (*.f64 (*.f64 c a) -4) (*.f64 a b)))
34.0b
(/.f64 (+.f64 (hypot.f64 b (sqrt.f64 (neg.f64 (*.f64 (*.f64 4 a) c)))) (neg.f64 b)) (*.f64 2 a))
47.2b
(/.f64 (*.f64 -2 b) (*.f64 2 a))
34.5b
(*.f64 (pow.f64 (cbrt.f64 (-.f64 (hypot.f64 b (sqrt.f64 (neg.f64 (*.f64 (*.f64 4 a) c)))) b)) 2) (/.f64 (cbrt.f64 (-.f64 (hypot.f64 b (sqrt.f64 (neg.f64 (*.f64 (*.f64 4 a) c)))) b)) (*.f64 a 2)))
Compiler

Compiled 4860 to 3304 computations (32% saved)

regimes2.1s (27.1%)

Accuracy

Total 11.5b remaining (82.4%)

Threshold costs 0b (0%)

Counts
169 → 3
Compiler

Compiled 14936 to 10946 computations (26.7% saved)

bsearch61.0ms (0.8%)

Steps
ItersRangePoint
5
3.547526034174891e-7
7.910935688616029e-7
5.206062075003178e-7
8
-1.761622937979916e+128
-7.291574701407998e+119
-1.3104263752164671e+126
Compiler

Compiled 4 to 3 computations (25% saved)

simplify2.0ms (0%)

Algorithm
egg-herbie
Rules
1-exp_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
03363
13563
23463

end169.0ms (2.2%)

Compiler

Compiled 338 to 247 computations (26.9% saved)

Profiling

Loading profile data...