Details

Time bar (total: 10.5s)

analyze492.0ms (4.7%)

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
25%74.9%0.1%4
25%74.9%0.1%5
34.3%65.5%0.1%6
37.4%56.2%6.4%7
41.3%52.3%6.4%8
50.7%40.6%8.7%9
54.2%32.4%13.4%10
58.9%26.9%14.2%11
62.7%20.7%16.5%12
64.5%16.6%19%13
67.1%13.5%19.4%14
Compiler

Compiled 42 to 27 computations (35.7% saved)

sample2.0s (18.7%)

Infinites
91.7% of outputs are infinite.
Results
1.7s8256×body128valid
107.0ms694×body128invalid
Compiler

Compiled 125 to 80 computations (36% saved)

simplify128.0ms (1.2%)

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
16.7b
Counts
3 → 2
Alt Table
StatusErrorProgram
16.8b
(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)))
16.8b
(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)

localize19.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.4b
(+.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.2b
(-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))
23.3b
(sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))
Compiler

Compiled 1536 to 1280 computations (16.7% saved)

series173.0ms (1.7%)

Counts
4 → 96
Calls

4 calls:

58.0ms
(-.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))
53.0ms
(+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))
51.0ms
(sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))
10.0ms
(-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))

rewrite39.0ms (0.4%)

Algorithm
rewrite-expression-head
Rules
61×prod-diff_binary64
59×*-un-lft-identity_binary64
56×add-sqr-sqrt_binary64
51×add-cube-cbrt_binary64
37×sqrt-prod_binary64
Counts
4 → 155
Calls

4 calls:

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)))
3.0ms
(-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))

simplify200.0ms (1.9%)

Algorithm
egg-herbie
Rules
413×fma-neg_binary64
345×cancel-sign-sub-inv_binary64
235×exp-prod_binary64
216×distribute-rgt-neg-in_binary64
177×distribute-lft-neg-in_binary64
Counts
251 → 246
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
02497252
16135514
221194942
344064869
448704869
548254869

prune617.0ms (5.9%)

Pruning

12 alts after pruning (12 fresh and 0 done)

PrunedKeptTotal
New31611327
Fresh011
Picked101
Done000
Total31712329
Error
5.0b
Counts
329 → 12
Alt Table
StatusErrorProgram
16.8b
(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)))
18.1b
(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)))
19.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 (neg.f64 b) (*.f64 -1 b)) (*.f64 2 a)))
28.1b
(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 (*.f64 (*.f64 b b) (*.f64 b b)) (*.f64 (*.f64 (*.f64 4 a) c) (*.f64 (*.f64 4 a) c))) (+.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))) (*.f64 2 a)))
25.2b
(if (>=.f64 b 0) (/.f64 (*.f64 2 c) (-.f64 (neg.f64 b) (sqrt.f64 (cbrt.f64 (pow.f64 (fma.f64 b b (*.f64 c (*.f64 a -4))) 3))))) (/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 a)))
16.9b
(if (>=.f64 b 0) (/.f64 (*.f64 2 c) (-.f64 (neg.f64 b) (*.f64 (cbrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -4)))) (sqrt.f64 (cbrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -4)))))))) (/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 a)))
16.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) (*.f64 (cbrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -4)))) (sqrt.f64 (cbrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -4))))))) (*.f64 2 a)))
16.8b
(if (>=.f64 b 0) (/.f64 (*.f64 2 c) (-.f64 (neg.f64 b) (*.f64 (sqrt.f64 (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (sqrt.f64 (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)))
23.2b
(if (>=.f64 b 0) (/.f64 (*.f64 2 c) (-.f64 (neg.f64 b) (*.f64 (cbrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -4)))) (cbrt.f64 (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) b))))) (/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 a)))
20.5b
(if (>=.f64 b 0) (/.f64 (*.f64 2 c) (-.f64 (neg.f64 b) (exp.f64 (log.f64 (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) b))))) (/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 a)))
23.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) (exp.f64 (log.f64 (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) b)))) (*.f64 2 a)))
16.8b
(if (>=.f64 b 0) (/.f64 (*.f64 2 c) (-.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))) (/.f64 (fma.f64 (sqrt.f64 (neg.f64 b)) (sqrt.f64 (neg.f64 b)) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 a)))
Compiler

Compiled 18795 to 10872 computations (42.2% saved)

localize22.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.3b
(/.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.2b
(-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))
23.3b
(sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))
Compiler

Compiled 1536 to 1280 computations (16.7% saved)

series271.0ms (2.6%)

Counts
1 → 20
Calls

1 calls:

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

rewrite14.0ms (0.1%)

Algorithm
rewrite-expression-head
Rules
11×*-un-lft-identity_binary64
11×add-sqr-sqrt_binary64
associate-/r*_binary64
times-frac_binary64
add-cbrt-cube_binary64
Counts
1 → 33
Calls

1 calls:

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

simplify91.0ms (0.9%)

Algorithm
egg-herbie
Rules
704×associate-/l*_binary64
432×associate-/r*_binary64
238×fma-neg_binary64
221×associate-*l/_binary64
220×fma-def_binary64
Counts
53 → 71
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01371740
13881573
213161490
347721490
449881490
549121490

prune824.0ms (7.9%)

Pruning

12 alts after pruning (12 fresh and 0 done)

PrunedKeptTotal
New3525357
Fresh4711
Picked101
Done000
Total35712369
Error
4.7b
Counts
369 → 12
Alt Table
StatusErrorProgram
20.5b
(if (>=.f64 b 0) (/.f64 (*.f64 2 c) (-.f64 (neg.f64 b) (exp.f64 (log.f64 (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) b))))) (/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 a)))
17.1b
(if (>=.f64 b 0) (/.f64 (/.f64 (*.f64 2 c) (*.f64 (cbrt.f64 (-.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))) (cbrt.f64 (-.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))))) (cbrt.f64 (-.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))))) (/.f64 (fma.f64 (sqrt.f64 (neg.f64 b)) (sqrt.f64 (neg.f64 b)) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 a)))
19.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 (neg.f64 b) (*.f64 -1 b)) (*.f64 2 a)))
16.8b
(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)))
28.1b
(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 (*.f64 (*.f64 b b) (*.f64 b b)) (*.f64 (*.f64 (*.f64 4 a) c) (*.f64 (*.f64 4 a) c))) (+.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))) (*.f64 2 a)))
26.6b
(if (>=.f64 b 0) (*.f64 (sqrt.f64 (/.f64 (*.f64 2 c) (-.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))))) (sqrt.f64 (/.f64 (*.f64 2 c) (-.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))))) (/.f64 (fma.f64 (sqrt.f64 (neg.f64 b)) (sqrt.f64 (neg.f64 b)) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 a)))
16.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) (*.f64 (cbrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -4)))) (sqrt.f64 (cbrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -4))))))) (*.f64 2 a)))
17.8b
(if (>=.f64 b 0) (*.f64 -1 (/.f64 c b)) (/.f64 (fma.f64 (sqrt.f64 (neg.f64 b)) (sqrt.f64 (neg.f64 b)) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 a)))
19.6b
(if (>=.f64 b 0) (/.f64 (*.f64 2 c) (-.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))) (/.f64 (fma.f64 (sqrt.f64 (neg.f64 b)) (sqrt.f64 (neg.f64 b)) (neg.f64 b)) (*.f64 2 a)))
23.2b
(if (>=.f64 b 0) (/.f64 (*.f64 2 c) (-.f64 (neg.f64 b) (*.f64 (cbrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -4)))) (cbrt.f64 (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) b))))) (/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 a)))
23.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) (exp.f64 (log.f64 (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) b)))) (*.f64 2 a)))
16.9b
(if (>=.f64 b 0) (/.f64 1 (/.f64 (-.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 c))) (/.f64 (fma.f64 (sqrt.f64 (neg.f64 b)) (sqrt.f64 (neg.f64 b)) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 a)))
Compiler

Compiled 21864 to 11799 computations (46% saved)

localize21.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.3b
(/.f64 -2 (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))))
0.4b
(-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b)
1.0b
(+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))))
23.3b
(sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))
Compiler

Compiled 1536 to 1280 computations (16.7% saved)

series528.0ms (5%)

Counts
4 → 80
Calls

4 calls:

378.0ms
(/.f64 -2 (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))))
54.0ms
(-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b)
51.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)))

rewrite19.0ms (0.2%)

Algorithm
rewrite-expression-head
Rules
42×*-un-lft-identity_binary64
35×add-sqr-sqrt_binary64
30×add-cube-cbrt_binary64
18×prod-diff_binary64
16×sqrt-prod_binary64
Counts
4 → 110
Calls

4 calls:

4.0ms
(-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b)
4.0ms
(/.f64 -2 (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 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)))

simplify192.0ms (1.8%)

Algorithm
egg-herbie
Rules
973×fma-neg_binary64
459×cancel-sign-sub-inv_binary64
173×associate-/r/_binary64
157×distribute-rgt-neg-in_binary64
155×distribute-rgt-in_binary64
Counts
190 → 241
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
02565502
16284671
221484484
343344468
449014468
549804468
648434468

prune684.0ms (6.5%)

Pruning

13 alts after pruning (13 fresh and 0 done)

PrunedKeptTotal
New2832285
Fresh01111
Picked101
Done000
Total28413297
Error
4.7b
Counts
297 → 13
Alt Table
StatusErrorProgram
28.1b
(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 (*.f64 (*.f64 b b) (*.f64 b b)) (*.f64 (*.f64 (*.f64 4 a) c) (*.f64 (*.f64 4 a) c))) (+.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))) (*.f64 2 a)))
19.6b
(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)))
20.6b
(if (>=.f64 b 0) (*.f64 c (/.f64 -2 (exp.f64 (log.f64 (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4))))))))) (*.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b) (/.f64 1/2 a)))
19.6b
(if (>=.f64 b 0) (/.f64 (*.f64 2 c) (-.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))) (/.f64 (fma.f64 (sqrt.f64 (neg.f64 b)) (sqrt.f64 (neg.f64 b)) (neg.f64 b)) (*.f64 2 a)))
20.5b
(if (>=.f64 b 0) (/.f64 (*.f64 2 c) (-.f64 (neg.f64 b) (exp.f64 (log.f64 (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) b))))) (/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 a)))
17.1b
(if (>=.f64 b 0) (/.f64 (/.f64 (*.f64 2 c) (*.f64 (cbrt.f64 (-.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))) (cbrt.f64 (-.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))))) (cbrt.f64 (-.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))))) (/.f64 (fma.f64 (sqrt.f64 (neg.f64 b)) (sqrt.f64 (neg.f64 b)) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 a)))
19.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 (neg.f64 b) (*.f64 -1 b)) (*.f64 2 a)))
26.6b
(if (>=.f64 b 0) (*.f64 (sqrt.f64 (/.f64 (*.f64 2 c) (-.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))))) (sqrt.f64 (/.f64 (*.f64 2 c) (-.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))))) (/.f64 (fma.f64 (sqrt.f64 (neg.f64 b)) (sqrt.f64 (neg.f64 b)) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 a)))
16.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) (*.f64 (cbrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -4)))) (sqrt.f64 (cbrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -4))))))) (*.f64 2 a)))
17.8b
(if (>=.f64 b 0) (*.f64 -1 (/.f64 c b)) (/.f64 (fma.f64 (sqrt.f64 (neg.f64 b)) (sqrt.f64 (neg.f64 b)) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 a)))
23.2b
(if (>=.f64 b 0) (/.f64 (*.f64 2 c) (-.f64 (neg.f64 b) (*.f64 (cbrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -4)))) (cbrt.f64 (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) b))))) (/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 a)))
23.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) (exp.f64 (log.f64 (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) b)))) (*.f64 2 a)))
16.9b
(if (>=.f64 b 0) (/.f64 1 (/.f64 (-.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 c))) (/.f64 (fma.f64 (sqrt.f64 (neg.f64 b)) (sqrt.f64 (neg.f64 b)) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 a)))
Compiler

Compiled 14212 to 8389 computations (41% saved)

localize23.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.3b
(/.f64 (-.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 c))
1.0b
(-.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))
1.2b
(-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))
23.3b
(sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))
Compiler

Compiled 1536 to 1280 computations (16.7% saved)

series83.0ms (0.8%)

Counts
1 → 20
Calls

1 calls:

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

rewrite15.0ms (0.1%)

Algorithm
rewrite-expression-head
Rules
11×*-un-lft-identity_binary64
11×add-sqr-sqrt_binary64
associate-/l*_binary64
times-frac_binary64
add-cbrt-cube_binary64
Counts
1 → 34
Calls

1 calls:

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

simplify75.0ms (0.7%)

Algorithm
egg-herbie
Rules
808×times-frac_binary64
474×associate-/l*_binary64
375×fma-neg_binary64
321×fma-def_binary64
168×distribute-rgt-in_binary64
Counts
54 → 71
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01391677
13991518
213371451
348741449
450981449

prune893.0ms (8.5%)

Pruning

12 alts after pruning (11 fresh and 1 done)

PrunedKeptTotal
New3561357
Fresh21012
Picked011
Done000
Total35812370
Error
4.7b
Counts
370 → 12
Alt Table
StatusErrorProgram
28.1b
(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 (*.f64 (*.f64 b b) (*.f64 b b)) (*.f64 (*.f64 (*.f64 4 a) c) (*.f64 (*.f64 4 a) c))) (+.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))) (*.f64 2 a)))
19.6b
(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)))
17.9b
(if (>=.f64 b 0) (/.f64 1 (-.f64 (/.f64 a b) (/.f64 b c))) (/.f64 (fma.f64 (sqrt.f64 (neg.f64 b)) (sqrt.f64 (neg.f64 b)) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 a)))
26.6b
(if (>=.f64 b 0) (*.f64 (sqrt.f64 (/.f64 (*.f64 2 c) (-.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))))) (sqrt.f64 (/.f64 (*.f64 2 c) (-.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))))) (/.f64 (fma.f64 (sqrt.f64 (neg.f64 b)) (sqrt.f64 (neg.f64 b)) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 a)))
19.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 (neg.f64 b) (*.f64 -1 b)) (*.f64 2 a)))
16.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) (*.f64 (cbrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -4)))) (sqrt.f64 (cbrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -4))))))) (*.f64 2 a)))
17.8b
(if (>=.f64 b 0) (*.f64 -1 (/.f64 c b)) (/.f64 (fma.f64 (sqrt.f64 (neg.f64 b)) (sqrt.f64 (neg.f64 b)) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 a)))
19.6b
(if (>=.f64 b 0) (/.f64 (*.f64 2 c) (-.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))) (/.f64 (fma.f64 (sqrt.f64 (neg.f64 b)) (sqrt.f64 (neg.f64 b)) (neg.f64 b)) (*.f64 2 a)))
23.2b
(if (>=.f64 b 0) (/.f64 (*.f64 2 c) (-.f64 (neg.f64 b) (*.f64 (cbrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -4)))) (cbrt.f64 (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) b))))) (/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 a)))
17.1b
(if (>=.f64 b 0) (/.f64 (/.f64 (*.f64 2 c) (*.f64 (cbrt.f64 (-.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))) (cbrt.f64 (-.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))))) (cbrt.f64 (-.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))))) (/.f64 (fma.f64 (sqrt.f64 (neg.f64 b)) (sqrt.f64 (neg.f64 b)) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 a)))
23.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) (exp.f64 (log.f64 (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) b)))) (*.f64 2 a)))
16.9b
(if (>=.f64 b 0) (/.f64 1 (/.f64 (-.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 c))) (/.f64 (fma.f64 (sqrt.f64 (neg.f64 b)) (sqrt.f64 (neg.f64 b)) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 a)))
Compiler

Compiled 21957 to 12119 computations (44.8% saved)

regimes2.6s (25.3%)

Accuracy

Total 0.8b remaining (14.1%)

Threshold costs 0.8b (14.1%)

Counts
190 → 3
Compiler

Compiled 34518 to 22222 computations (35.6% saved)

bsearch59.0ms (0.6%)

Steps
ItersRangePoint
6
1.588209678957361e+104
2.0927799489779192e+105
1.7930757211015575e+105
8
-4.684101613605904e+108
-9.922587655201207e+104
-4.402828950487531e+108
Compiler

Compiled 4 to 3 computations (25% saved)

simplify7.0ms (0.1%)

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

Useful iterations: 1 (0.0ms)

IterNodesCost
044166
161164
282164
3102164
4116164
5122164
6123164
7122164

end368.0ms (3.5%)

Compiler

Compiled 783 to 478 computations (39% saved)

Profiling

Loading profile data...