Details

Time bar (total: 11.3s)

analyze2.5s (22.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
0%99.9%0.1%5
0%99.9%0.1%6
0%93.6%6.4%7
0%93.6%6.4%8
0%91.3%8.7%9
0%86.6%13.4%10
0%85.8%14.2%11
1.6%81.5%16.9%12
2.3%78.3%19.4%13
2.3%77.1%20.6%14
Compiler

Compiled 42 to 27 computations (35.7% saved)

sample2.5s (22.4%)

Results
1.7s8256×body128valid
565.0ms390×body8192exit
175.0ms940×body128invalid
Compiler

Compiled 83 to 53 computations (36.1% saved)

simplify129.0ms (1.1%)

Algorithm
egg-herbie
Rules
1002×fma-def_binary64
782×fma-neg_binary64
748×distribute-rgt-in_binary64
560×div-sub_binary64
469×associate-/l*_binary64
Counts
1 → 2
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
02258
14452
29452
321150
434150
559450
6108250
7170250
8206650
9287050
10349550
11350150
12350350
13419650
14424950
15488150

prune5.0ms (0%)

Pruning

3 alts after pruning (3 fresh and 0 done)

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

Compiled 231 to 143 computations (38.1% saved)

localize20.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.4b
(/.f64 (*.f64 2 c) (-.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))))
1.0b
(+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))
1.1b
(-.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))
23.5b
(sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))
Compiler

Compiled 1536 to 1280 computations (16.7% saved)

series447.0ms (4%)

Counts
4 → 80
Calls

4 calls:

272.0ms
(/.f64 (*.f64 2 c) (-.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))))
71.0ms
(-.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))
59.0ms
(+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))
44.0ms
(sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))

rewrite55.0ms (0.5%)

Algorithm
rewrite-expression-head
Rules
69×*-un-lft-identity_binary64
66×add-sqr-sqrt_binary64
60×prod-diff_binary64
53×add-cube-cbrt_binary64
39×sqrt-prod_binary64
Counts
4 → 172
Calls

4 calls:

19.0ms
(/.f64 (*.f64 2 c) (-.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))))
9.0ms
(-.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))
7.0ms
(+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))
4.0ms
(sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))

simplify201.0ms (1.8%)

Algorithm
egg-herbie
Rules
462×fma-neg_binary64
417×cancel-sign-sub-inv_binary64
186×sub-neg_binary64
180×associate-*r*_binary64
169×unswap-sqr_binary64
Counts
252 → 284
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
03159152
18266984
229955850
348575850
448985850

prune523.0ms (4.6%)

Pruning

10 alts after pruning (10 fresh and 0 done)

PrunedKeptTotal
New3239332
Fresh011
Picked101
Done000
Total32410334
Error
6.2b
Counts
334 → 10
Alt Table
StatusErrorProgram
20.0b
(if (>=.f64 b 0) (*.f64 c (/.f64 -2 (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))))) (*.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b) (/.f64 1/2 a)))
23.2b
(if (>=.f64 b 0) (/.f64 (*.f64 2 c) (-.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))) (/.f64 (+.f64 (neg.f64 b) (*.f64 -1 b)) (*.f64 2 a)))
32.6b
(if (>=.f64 b 0) (cbrt.f64 (pow.f64 (/.f64 (*.f64 c 2) (-.f64 (neg.f64 b) (hypot.f64 (sqrt.f64 (*.f64 (*.f64 c a) -4)) b))) 3)) (/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 a)))
21.9b
(if (>=.f64 b 0) (/.f64 (*.f64 2 c) (-.f64 (neg.f64 b) b)) (/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 a)))
20.2b
(if (>=.f64 b 0) (/.f64 2 (/.f64 (-.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) c)) (/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 a)))
35.0b
(if (>=.f64 b 0) (*.f64 (/.f64 (*.f64 c 2) (*.f64 4 (*.f64 c a))) (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))) (/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 a)))
21.7b
(if (>=.f64 b 0) (/.f64 (*.f64 2 c) (-.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))) (/.f64 (+.f64 (neg.f64 b) (exp.f64 (log.f64 (hypot.f64 (sqrt.f64 (*.f64 (*.f64 c a) -4)) b)))) (*.f64 2 a)))
24.4b
(if (>=.f64 b 0) (expm1.f64 (log1p.f64 (/.f64 (*.f64 2 c) (-.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))))) (/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 a)))
27.5b
(if (>=.f64 b 0) (/.f64 (*.f64 2 c) (-.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))) (/.f64 (/.f64 (*.f64 4 (*.f64 c a)) (-.f64 (neg.f64 b) (hypot.f64 (sqrt.f64 (*.f64 (*.f64 c a) -4)) b))) (*.f64 2 a)))
29.9b
(if (>=.f64 b 0) (/.f64 (*.f64 2 c) (-.f64 (neg.f64 b) (cbrt.f64 (pow.f64 (hypot.f64 (sqrt.f64 (*.f64 (*.f64 c a) -4)) b) 3)))) (/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 a)))
Compiler

Compiled 19125 to 10931 computations (42.8% saved)

localize19.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.2b
(*.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b) (/.f64 1/2 a))
1.0b
(-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b)
1.1b
(+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))))
23.5b
(sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))
Compiler

Compiled 1536 to 1280 computations (16.7% saved)

series242.0ms (2.2%)

Counts
4 → 80
Calls

4 calls:

85.0ms
(*.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b) (/.f64 1/2 a))
57.0ms
(-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b)
55.0ms
(+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))))
45.0ms
(sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))

rewrite28.0ms (0.3%)

Algorithm
rewrite-expression-head
Rules
43×add-sqr-sqrt_binary64
35×*-un-lft-identity_binary64
29×add-cube-cbrt_binary64
18×prod-diff_binary64
17×sqrt-prod_binary64
Counts
4 → 116
Calls

4 calls:

12.0ms
(*.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b) (/.f64 1/2 a))
4.0ms
(-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b)
3.0ms
(+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))))
1.0ms
(sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))

simplify143.0ms (1.3%)

Algorithm
egg-herbie
Rules
765×fma-neg_binary64
376×cancel-sign-sub-inv_binary64
373×distribute-rgt-in_binary64
165×associate-*r*_binary64
164×distribute-rgt-neg-in_binary64
Counts
196 → 254
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
02815766
17334840
227074645
349114645
451214645

prune504.0ms (4.5%)

Pruning

13 alts after pruning (13 fresh and 0 done)

PrunedKeptTotal
New2935298
Fresh189
Picked101
Done000
Total29513308
Error
6.1b
Counts
308 → 13
Alt Table
StatusErrorProgram
32.6b
(if (>=.f64 b 0) (cbrt.f64 (pow.f64 (/.f64 (*.f64 c 2) (-.f64 (neg.f64 b) (hypot.f64 (sqrt.f64 (*.f64 (*.f64 c a) -4)) b))) 3)) (/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 a)))
21.9b
(if (>=.f64 b 0) (/.f64 (*.f64 2 c) (-.f64 (neg.f64 b) b)) (/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 a)))
20.2b
(if (>=.f64 b 0) (/.f64 2 (/.f64 (-.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) c)) (/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 a)))
35.0b
(if (>=.f64 b 0) (*.f64 (/.f64 (*.f64 c 2) (*.f64 4 (*.f64 c a))) (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))) (/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 a)))
20.9b
(if (>=.f64 b 0) (*.f64 c (/.f64 -2 (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))))) (*.f64 (*.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4)))) b) (*.f64 (cbrt.f64 (/.f64 1/2 a)) (cbrt.f64 (/.f64 1/2 a)))) (cbrt.f64 (/.f64 1/2 a))))
23.2b
(if (>=.f64 b 0) (/.f64 (*.f64 2 c) (-.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))) (/.f64 (+.f64 (neg.f64 b) (*.f64 -1 b)) (*.f64 2 a)))
23.3b
(if (>=.f64 b 0) (*.f64 c (/.f64 -2 (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))))) (-.f64 (/.f64 c b) (/.f64 b a)))
20.1b
(if (>=.f64 b 0) (*.f64 c (/.f64 -2 (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))))) (*.f64 (sqrt.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b)) (*.f64 (sqrt.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b)) (/.f64 1/2 a))))
24.4b
(if (>=.f64 b 0) (expm1.f64 (log1p.f64 (/.f64 (*.f64 2 c) (-.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))))) (/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 a)))
27.5b
(if (>=.f64 b 0) (/.f64 (*.f64 2 c) (-.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))) (/.f64 (/.f64 (*.f64 4 (*.f64 c a)) (-.f64 (neg.f64 b) (hypot.f64 (sqrt.f64 (*.f64 (*.f64 c a) -4)) b))) (*.f64 2 a)))
29.7b
(if (>=.f64 b 0) (*.f64 c (/.f64 -2 (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))))) (/.f64 (*.f64 1/2 (+.f64 (*.f64 a (*.f64 c -4)) 0)) (*.f64 a (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4))))))))
23.3b
(if (>=.f64 b 0) (*.f64 c (/.f64 -2 (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))))) (*.f64 (-.f64 (*.f64 -1 b) b) (/.f64 1/2 a)))
29.9b
(if (>=.f64 b 0) (/.f64 (*.f64 2 c) (-.f64 (neg.f64 b) (cbrt.f64 (pow.f64 (hypot.f64 (sqrt.f64 (*.f64 (*.f64 c a) -4)) b) 3)))) (/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 a)))
Compiler

Compiled 14534 to 8543 computations (41.2% saved)

localize22.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.2b
(*.f64 (sqrt.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b)) (*.f64 (sqrt.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b)) (/.f64 1/2 a)))
1.0b
(-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b)
1.1b
(+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))))
23.5b
(sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))
Compiler

Compiled 1536 to 1280 computations (16.7% saved)

series90.0ms (0.8%)

Counts
1 → 20
Calls

1 calls:

89.0ms
(*.f64 (sqrt.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b)) (*.f64 (sqrt.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b)) (/.f64 1/2 a)))

rewrite23.0ms (0.2%)

Algorithm
rewrite-expression-head
Rules
24×sqrt-div_binary64
16×frac-times_binary64
12×flip--_binary64
12×flip3--_binary64
10×add-cbrt-cube_binary64
Counts
1 → 45
Calls

1 calls:

13.0ms
(*.f64 (sqrt.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b)) (*.f64 (sqrt.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b)) (/.f64 1/2 a)))

simplify88.0ms (0.8%)

Algorithm
egg-herbie
Rules
449×times-frac_binary64
336×associate-/l*_binary64
333×associate-*r/_binary64
296×associate-*l/_binary64
284×associate-/r*_binary64
Counts
65 → 90
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01672753
14672454
213282266
348992266
449502266

prune788.0ms (7%)

Pruning

13 alts after pruning (12 fresh and 1 done)

PrunedKeptTotal
New4121413
Fresh11112
Picked011
Done000
Total41313426
Error
6.1b
Counts
426 → 13
Alt Table
StatusErrorProgram
32.6b
(if (>=.f64 b 0) (cbrt.f64 (pow.f64 (/.f64 (*.f64 c 2) (-.f64 (neg.f64 b) (hypot.f64 (sqrt.f64 (*.f64 (*.f64 c a) -4)) b))) 3)) (/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 a)))
21.9b
(if (>=.f64 b 0) (/.f64 (*.f64 2 c) (-.f64 (neg.f64 b) b)) (/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 a)))
29.7b
(if (>=.f64 b 0) (*.f64 c (/.f64 -2 (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))))) (/.f64 (*.f64 1/2 (fma.f64 a (*.f64 c -4) 0)) (*.f64 a (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4))))))))
29.9b
(if (>=.f64 b 0) (/.f64 (*.f64 2 c) (-.f64 (neg.f64 b) (cbrt.f64 (pow.f64 (hypot.f64 (sqrt.f64 (*.f64 (*.f64 c a) -4)) b) 3)))) (/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 a)))
20.2b
(if (>=.f64 b 0) (/.f64 2 (/.f64 (-.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) c)) (/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 a)))
35.0b
(if (>=.f64 b 0) (*.f64 (/.f64 (*.f64 c 2) (*.f64 4 (*.f64 c a))) (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))) (/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 a)))
20.9b
(if (>=.f64 b 0) (*.f64 c (/.f64 -2 (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))))) (*.f64 (*.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4)))) b) (*.f64 (cbrt.f64 (/.f64 1/2 a)) (cbrt.f64 (/.f64 1/2 a)))) (cbrt.f64 (/.f64 1/2 a))))
23.2b
(if (>=.f64 b 0) (/.f64 (*.f64 2 c) (-.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))) (/.f64 (+.f64 (neg.f64 b) (*.f64 -1 b)) (*.f64 2 a)))
23.3b
(if (>=.f64 b 0) (*.f64 c (/.f64 -2 (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))))) (-.f64 (/.f64 c b) (/.f64 b a)))
20.1b
(if (>=.f64 b 0) (*.f64 c (/.f64 -2 (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))))) (*.f64 (sqrt.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b)) (*.f64 (sqrt.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b)) (/.f64 1/2 a))))
24.4b
(if (>=.f64 b 0) (expm1.f64 (log1p.f64 (/.f64 (*.f64 2 c) (-.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))))) (/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 a)))
27.5b
(if (>=.f64 b 0) (/.f64 (*.f64 2 c) (-.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))) (/.f64 (/.f64 (*.f64 4 (*.f64 c a)) (-.f64 (neg.f64 b) (hypot.f64 (sqrt.f64 (*.f64 (*.f64 c a) -4)) b))) (*.f64 2 a)))
23.3b
(if (>=.f64 b 0) (*.f64 c (/.f64 -2 (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))))) (*.f64 (-.f64 (*.f64 -1 b) b) (/.f64 1/2 a)))
Compiler

Compiled 25927 to 14998 computations (42.2% saved)

localize21.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.7b
(/.f64 2 (/.f64 (-.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) c))
1.0b
(+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))
1.1b
(-.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))
23.5b
(sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))
Compiler

Compiled 1536 to 1280 computations (16.7% saved)

series285.0ms (2.5%)

Counts
1 → 20
Calls

1 calls:

284.0ms
(/.f64 2 (/.f64 (-.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) c))

rewrite32.0ms (0.3%)

Algorithm
rewrite-expression-head
Rules
159×times-frac_binary64
119×*-un-lft-identity_binary64
119×add-sqr-sqrt_binary64
71×add-cube-cbrt_binary64
25×associate-/r*_binary64
Counts
1 → 120
Calls

1 calls:

11.0ms
(/.f64 2 (/.f64 (-.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) c))

simplify135.0ms (1.2%)

Algorithm
egg-herbie
Rules
754×times-frac_binary64
572×associate-/l*_binary64
454×associate-/r/_binary64
306×associate-/l/_binary64
182×fma-def_binary64
Counts
140 → 179
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
02495866
16065672
218275455
350405455

prune991.0ms (8.8%)

Pruning

12 alts after pruning (10 fresh and 2 done)

PrunedKeptTotal
New4391440
Fresh2911
Picked011
Done011
Total44112453
Error
6.1b
Counts
453 → 12
Alt Table
StatusErrorProgram
21.9b
(if (>=.f64 b 0) (/.f64 (*.f64 2 c) (-.f64 (neg.f64 b) b)) (/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 a)))
20.3b
(if (>=.f64 b 0) (/.f64 (sqrt.f64 2) (/.f64 (/.f64 (-.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) c) (sqrt.f64 2))) (/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 a)))
20.2b
(if (>=.f64 b 0) (/.f64 2 (/.f64 (-.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) c)) (/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 a)))
35.0b
(if (>=.f64 b 0) (*.f64 (/.f64 (*.f64 c 2) (*.f64 4 (*.f64 c a))) (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))) (/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 a)))
20.9b
(if (>=.f64 b 0) (*.f64 c (/.f64 -2 (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))))) (*.f64 (*.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4)))) b) (*.f64 (cbrt.f64 (/.f64 1/2 a)) (cbrt.f64 (/.f64 1/2 a)))) (cbrt.f64 (/.f64 1/2 a))))
23.2b
(if (>=.f64 b 0) (/.f64 (*.f64 2 c) (-.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))) (/.f64 (+.f64 (neg.f64 b) (*.f64 -1 b)) (*.f64 2 a)))
23.3b
(if (>=.f64 b 0) (*.f64 c (/.f64 -2 (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))))) (-.f64 (/.f64 c b) (/.f64 b a)))
20.1b
(if (>=.f64 b 0) (*.f64 c (/.f64 -2 (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))))) (*.f64 (sqrt.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b)) (*.f64 (sqrt.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b)) (/.f64 1/2 a))))
24.4b
(if (>=.f64 b 0) (expm1.f64 (log1p.f64 (/.f64 (*.f64 2 c) (-.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))))) (/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 a)))
27.5b
(if (>=.f64 b 0) (/.f64 (*.f64 2 c) (-.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))) (/.f64 (/.f64 (*.f64 4 (*.f64 c a)) (-.f64 (neg.f64 b) (hypot.f64 (sqrt.f64 (*.f64 (*.f64 c a) -4)) b))) (*.f64 2 a)))
23.3b
(if (>=.f64 b 0) (*.f64 c (/.f64 -2 (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))))) (*.f64 (-.f64 (*.f64 -1 b) b) (/.f64 1/2 a)))
29.7b
(if (>=.f64 b 0) (*.f64 c (/.f64 -2 (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))))) (/.f64 (*.f64 1/2 (fma.f64 a (*.f64 c -4) 0)) (*.f64 a (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4))))))))
Compiler

Compiled 25129 to 14423 computations (42.6% saved)

regimes1.1s (9.4%)

Accuracy

Total 1.1b remaining (16.6%)

Threshold costs 0b (0%)

Counts
103 → 3
Compiler

Compiled 17694 to 11678 computations (34% saved)

bsearch84.0ms (0.7%)

Steps
ItersRangePoint
4
1.3489364754836958e+119
1.1824665961964641e+122
7.523821768677853e+121
11
-3.2033102230879885e+77
-5.3930075293582715e+53
-1.3083832570146259e+77
Compiler

Compiled 4 to 3 computations (25% saved)

simplify7.0ms (0.1%)

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

Useful iterations: 1 (0.0ms)

IterNodesCost
043152
164148
292148
3111148
4123148
5127148
6126148

end276.0ms (2.5%)

Compiler

Compiled 692 to 443 computations (36% saved)

Profiling

Loading profile data...