Details

Time bar (total: 9.0s)

analyze665.0ms (7.4%)

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 (26.7%)

Results
741.0ms5377×body128valid
649.0ms1172×body2048valid
338.0ms735×body1024valid
261.0ms408×body4096valid
153.0ms1128×body128invalid
122.0ms367×body512valid
46.0ms197×body256valid
Compiler

Compiled 62 to 44 computations (29% saved)

simplify52.0ms (0.6%)

Algorithm
egg-herbie
Rules
754×rules-20_binary64
594×fma-neg_binary64
502×rules-21_binary64
314×rules-11_binary64
289×rules-40_binary64
Counts
1 → 2
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01526
19326
228626
3112124
4358124
51424

prune3.0ms (0%)

Pruning

3 alts after pruning (3 fresh and 0 done)

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

Compiled 114 to 76 computations (33.3% saved)

localize10.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c))))) (*.f64 2 a))
1.2b
(+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c)))))
1.2b
(-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c)))
22.0b
(sqrt.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c))))

series190.0ms (2.1%)

Counts
4 → 96
Calls

4 calls:

87.0ms
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c))))) (*.f64 2 a))
51.0ms
(+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c)))))
42.0ms
(sqrt.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c))))
10.0ms
(-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c)))

rewrite97.0ms (1.1%)

Algorithm
batch-egg-rewrite
Rules
283×log1p-udef_binary64
168×egg-rr
158×add-sqr-sqrt_binary64
154×log1p-expm1-u_binary64
154×expm1-log1p-u_binary64
Counts
4 → 168
Calls

4 calls:

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

Useful iterations: 0 (0.0ms)

IterNodesCost
01574
136874
2467474
3500374
000
100

simplify88.0ms (1%)

Algorithm
egg-herbie
Rules
426×rules-21_binary64
290×fma-neg_binary64
237×rules-7-rev_binary64
212×rules-40_binary64
212×rules-41_binary64
Counts
264 → 235
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01212301
18812220
241142220
350532220

prune197.0ms (2.2%)

Pruning

11 alts after pruning (11 fresh and 0 done)

PrunedKeptTotal
New22510235
Fresh011
Picked101
Done000
Total22611237
Error
4.4b
Counts
237 → 11
Alt Table
StatusErrorProgram
40.5b
(/.f64 (+.f64 (neg.f64 b) (cbrt.f64 (pow.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c))) 3/2))) (*.f64 2 a))
33.5b
(*.f64 (sqrt.f64 (+.f64 (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c)))) (neg.f64 b))) (/.f64 (sqrt.f64 (+.f64 (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c)))) (neg.f64 b))) (*.f64 a 2)))
34.8b
(/.f64 (*.f64 (neg.f64 b) (+.f64 1 (/.f64 (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c)))) (neg.f64 b)))) (*.f64 2 a))
44.3b
(-.f64 (/.f64 c b) (/.f64 b a))
44.1b
(*.f64 -1 (/.f64 b a))
40.7b
(*.f64 -1 (/.f64 c b))
33.6b
(pow.f64 (cbrt.f64 (/.f64 (+.f64 (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c)))) (neg.f64 b)) (*.f64 a 2))) 3)
33.1b
(*.f64 (+.f64 (neg.f64 b) (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))) (/.f64 1/2 a))
33.4b
(/.f64 (+.f64 (neg.f64 b) (pow.f64 (pow.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c))) 1/4) 2)) (*.f64 2 a))
40.2b
(/.f64 (+.f64 (neg.f64 b) (/.f64 (pow.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c))) 3/2) (+.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c))) (+.f64 0 (*.f64 (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c)))) 0))))) (*.f64 2 a))
56.8b
(/.f64 (+.f64 (neg.f64 b) b) (*.f64 2 a))
Compiler

Compiled 6701 to 3680 computations (45.1% saved)

localize11.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(fma.f64 a (*.f64 c -4) (*.f64 b b))
0.2b
(*.f64 (+.f64 (neg.f64 b) (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))) (/.f64 1/2 a))
1.2b
(+.f64 (neg.f64 b) (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))))
22.0b
(sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))

series185.0ms (2.1%)

Counts
4 → 96
Calls

4 calls:

81.0ms
(*.f64 (+.f64 (neg.f64 b) (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))) (/.f64 1/2 a))
51.0ms
(+.f64 (neg.f64 b) (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))))
41.0ms
(sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))
11.0ms
(fma.f64 a (*.f64 c -4) (*.f64 b b))

rewrite107.0ms (1.2%)

Algorithm
batch-egg-rewrite
Rules
858×prod-diff_binary64
202×egg-rr
143×add-sqr-sqrt_binary64
136×log1p-expm1-u_binary64
136×expm1-log1p-u_binary64
Counts
4 → 202
Calls

4 calls:

102.0ms
(fma.f64 a (*.f64 c -4) (*.f64 b b))
102.0ms
(*.f64 (+.f64 (neg.f64 b) (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))) (/.f64 1/2 a))
102.0ms
(+.f64 (neg.f64 b) (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))))
102.0ms
(sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01466
133266
2405666
3564266
000
100

simplify82.0ms (0.9%)

Algorithm
egg-herbie
Rules
426×rules-21_binary64
290×fma-neg_binary64
237×rules-7-rev_binary64
212×rules-40_binary64
212×rules-41_binary64
Counts
298 → 272
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01212301
18812220
241142220
350532220

prune246.0ms (2.7%)

Pruning

13 alts after pruning (13 fresh and 0 done)

PrunedKeptTotal
New2675272
Fresh2810
Picked101
Done000
Total27013283
Error
4.4b
Counts
283 → 13
Alt Table
StatusErrorProgram
34.8b
(/.f64 (*.f64 (neg.f64 b) (+.f64 1 (/.f64 (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c)))) (neg.f64 b)))) (*.f64 2 a))
33.6b
(/.f64 (/.f64 (*.f64 (+.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) (neg.f64 b)) 1/2) (pow.f64 (cbrt.f64 a) 2)) (cbrt.f64 a))
40.7b
(*.f64 -1 (/.f64 c b))
36.0b
(*.f64 (+.f64 (neg.f64 b) (exp.f64 (log.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))))) (/.f64 1/2 a))
33.1b
(fma.f64 (+.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) (neg.f64 b)) (/.f64 1/2 a) 0)
33.5b
(*.f64 (sqrt.f64 (+.f64 (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c)))) (neg.f64 b))) (/.f64 (sqrt.f64 (+.f64 (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c)))) (neg.f64 b))) (*.f64 a 2)))
33.6b
(*.f64 (*.f64 (cbrt.f64 (+.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) (neg.f64 b))) (pow.f64 (cbrt.f64 (+.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) (neg.f64 b))) 2)) (/.f64 1/2 a))
44.3b
(-.f64 (/.f64 c b) (/.f64 b a))
44.1b
(*.f64 -1 (/.f64 b a))
33.1b
(/.f64 1/2 (/.f64 a (+.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) (neg.f64 b))))
33.6b
(pow.f64 (cbrt.f64 (/.f64 (+.f64 (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c)))) (neg.f64 b)) (*.f64 a 2))) 3)
33.4b
(/.f64 (+.f64 (neg.f64 b) (pow.f64 (pow.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c))) 1/4) 2)) (*.f64 2 a))
56.8b
(/.f64 (+.f64 (neg.f64 b) b) (*.f64 2 a))
Compiler

Compiled 8672 to 5013 computations (42.2% saved)

localize11.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(fma.f64 a (*.f64 c -4) (*.f64 b b))
0.2b
(fma.f64 (+.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) (neg.f64 b)) (/.f64 1/2 a) 0)
1.2b
(+.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) (neg.f64 b))
22.0b
(sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))

series133.0ms (1.5%)

Counts
2 → 40
Calls

2 calls:

82.0ms
(fma.f64 (+.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) (neg.f64 b)) (/.f64 1/2 a) 0)
51.0ms
(+.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) (neg.f64 b))

rewrite79.0ms (0.9%)

Algorithm
batch-egg-rewrite
Rules
598×prod-diff_binary64
144×add-sqr-sqrt_binary64
139×log1p-expm1-u_binary64
139×expm1-log1p-u_binary64
134×add-cbrt-cube_binary64
Counts
2 → 92
Calls

2 calls:

76.0ms
(fma.f64 (+.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) (neg.f64 b)) (/.f64 1/2 a) 0)
76.0ms
(+.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) (neg.f64 b))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01543
134642
2393642
3498242
000
100

simplify135.0ms (1.5%)

Algorithm
egg-herbie
Rules
679×rules-20_binary64
564×rules-21_binary64
230×fma-neg_binary64
222×rules-24-rev_binary64
193×rules-7-rev_binary64
Counts
132 → 135
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01031335
17541274
235351274
347651274
448451274
548081274
650851274

prune211.0ms (2.4%)

Pruning

13 alts after pruning (12 fresh and 1 done)

PrunedKeptTotal
New2471248
Fresh11112
Picked011
Done000
Total24813261
Error
4.4b
Counts
261 → 13
Alt Table
StatusErrorProgram
34.8b
(/.f64 (*.f64 (neg.f64 b) (+.f64 1 (/.f64 (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c)))) (neg.f64 b)))) (*.f64 2 a))
33.6b
(/.f64 (/.f64 (*.f64 (+.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) (neg.f64 b)) 1/2) (pow.f64 (cbrt.f64 a) 2)) (cbrt.f64 a))
33.1b
(fma.f64 (+.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) (neg.f64 b)) (/.f64 1/2 a) 0)
33.5b
(*.f64 (sqrt.f64 (+.f64 (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c)))) (neg.f64 b))) (/.f64 (sqrt.f64 (+.f64 (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c)))) (neg.f64 b))) (*.f64 a 2)))
33.6b
(*.f64 (*.f64 (cbrt.f64 (+.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) (neg.f64 b))) (pow.f64 (cbrt.f64 (+.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) (neg.f64 b))) 2)) (/.f64 1/2 a))
44.3b
(-.f64 (/.f64 c b) (/.f64 b a))
44.1b
(*.f64 -1 (/.f64 b a))
40.7b
(*.f64 -1 (/.f64 c b))
33.1b
(/.f64 1/2 (/.f64 a (+.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) (neg.f64 b))))
33.6b
(pow.f64 (cbrt.f64 (/.f64 (+.f64 (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c)))) (neg.f64 b)) (*.f64 a 2))) 3)
48.3b
(exp.f64 (+.f64 (log.f64 (+.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) (neg.f64 b))) (log.f64 (/.f64 1/2 a))))
33.4b
(/.f64 (+.f64 (neg.f64 b) (pow.f64 (pow.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c))) 1/4) 2)) (*.f64 2 a))
56.8b
(/.f64 (+.f64 (neg.f64 b) b) (*.f64 2 a))
Compiler

Compiled 7731 to 4516 computations (41.6% saved)

localize10.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(/.f64 a (+.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) (neg.f64 b)))
0.2b
(/.f64 1/2 (/.f64 a (+.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) (neg.f64 b))))
1.2b
(+.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) (neg.f64 b))
22.0b
(sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))

series301.0ms (3.4%)

Counts
2 → 40
Calls

2 calls:

216.0ms
(/.f64 a (+.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) (neg.f64 b)))
85.0ms
(/.f64 1/2 (/.f64 a (+.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) (neg.f64 b))))

rewrite73.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
612×prod-diff_binary64
142×add-sqr-sqrt_binary64
135×log1p-expm1-u_binary64
135×expm1-log1p-u_binary64
132×add-cbrt-cube_binary64
Counts
2 → 58
Calls

2 calls:

72.0ms
(/.f64 a (+.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) (neg.f64 b)))
72.0ms
(/.f64 1/2 (/.f64 a (+.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) (neg.f64 b))))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01445
132945
2396645
3504745
000
100

simplify84.0ms (0.9%)

Algorithm
egg-herbie
Rules
380×rules-21_binary64
245×fma-neg_binary64
238×rules-16-rev_binary64
202×rules-18_binary64
194×rules-40_binary64
Counts
98 → 99
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01081284
17901183
237321183
349991183
449241183

prune155.0ms (1.7%)

Pruning

12 alts after pruning (10 fresh and 2 done)

PrunedKeptTotal
New2152217
Fresh3811
Picked011
Done011
Total21812230
Error
4.3b
Counts
230 → 12
Alt Table
StatusErrorProgram
40.7b
(/.f64 1/2 (*.f64 1/2 (-.f64 (/.f64 a b) (/.f64 b c))))
48.3b
(exp.f64 (+.f64 (log.f64 (+.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) (neg.f64 b))) (log.f64 (/.f64 1/2 a))))
33.1b
(fma.f64 (+.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) (neg.f64 b)) (/.f64 1/2 a) 0)
33.5b
(*.f64 (sqrt.f64 (+.f64 (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c)))) (neg.f64 b))) (/.f64 (sqrt.f64 (+.f64 (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c)))) (neg.f64 b))) (*.f64 a 2)))
33.6b
(/.f64 (/.f64 (*.f64 (+.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) (neg.f64 b)) 1/2) (pow.f64 (cbrt.f64 a) 2)) (cbrt.f64 a))
33.6b
(*.f64 (*.f64 (cbrt.f64 (+.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) (neg.f64 b))) (pow.f64 (cbrt.f64 (+.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) (neg.f64 b))) 2)) (/.f64 1/2 a))
44.3b
(-.f64 (/.f64 c b) (/.f64 b a))
44.1b
(*.f64 -1 (/.f64 b a))
40.7b
(*.f64 -1 (/.f64 c b))
33.1b
(/.f64 1/2 (/.f64 a (+.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) (neg.f64 b))))
33.6b
(pow.f64 (cbrt.f64 (/.f64 1/2 (/.f64 a (+.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) (neg.f64 b))))) 3)
33.4b
(/.f64 (+.f64 (neg.f64 b) (pow.f64 (pow.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c))) 1/4) 2)) (*.f64 2 a))
Compiler

Compiled 5650 to 3286 computations (41.8% saved)

regimes3.1s (34.7%)

Accuracy

Total 4.4b remaining (44%)

Threshold costs 0b (0%)

Counts
191 → 3
Compiler

Compiled 18548 to 12866 computations (30.6% saved)

bsearch81.0ms (0.9%)

Steps
ItersRangePoint
10
1.901565658296121e-67
1.68094319869498e-53
2.7919095286000728e-58
6
-4.337663542347003e+121
-2.705837089243012e+119
-3.996635431194612e+121
Compiler

Compiled 4 to 3 computations (25% saved)

simplify1.0ms (0%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02959
12959

end247.0ms (2.8%)

Compiler

Compiled 329 to 220 computations (33.1% saved)

Profiling

Loading profile data...