Details

Time bar (total: 9.2s)

analyze1.0s (11.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
12.5%87.4%0.1%6
20.3%73.3%6.4%7
27.3%66.3%6.4%8
38.2%53%8.7%9
46%40.6%13.4%10
49.9%35.1%15%11
54.9%26.9%18.1%12
57.4%22%20.6%13
59.7%18%22.4%14
Compiler

Compiled 42 to 27 computations (35.7% saved)

sample150.0ms (1.6%)

Algorithm
intervals
Results
32.0ms256×body128valid
2.0ms20×body128nan
1.0ms10×body128invalid
Compiler

Compiled 86 to 56 computations (34.9% saved)

simplify125.0ms (1.4%)

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.1%)

Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New022
Fresh011
Picked000
Done000
Total033
Error
19.4b
Counts
3 → 2
Alt Table
StatusErrorProgram
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) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 a)))
19.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)))
Compiler

Compiled 231 to 143 computations (38.1% saved)

localize22.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.6b
(-.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.6b
(-.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))
22.7b
(sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))
Compiler

Compiled 1530 to 1275 computations (16.7% saved)

series202.0ms (2.2%)

Counts
4 → 96
Calls

4 calls:

82.0ms
(-.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))
63.0ms
(+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))
46.0ms
(sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))
10.0ms
(-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))

rewrite40.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:

10.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))

simplify225.0ms (2.5%)

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
02498106
16136063
221194942
344064869
448704869
548254869

prune696.0ms (7.6%)

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
35.6b
(if (>=.f64 b 0) (/.f64 (*.f64 2 c) (/.f64 (*.f64 4 (*.f64 c a)) (-.f64 (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) b) b))) (/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 a)))
20.4b
(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)))
28.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) (/.f64 (sqrt.f64 (-.f64 (pow.f64 b 6) (pow.f64 (*.f64 4 (*.f64 c a)) 3))) (sqrt.f64 (fma.f64 (*.f64 4 (*.f64 c a)) (fma.f64 4 (*.f64 c a) (*.f64 b b)) (pow.f64 b 4))))) (*.f64 2 a)))
20.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) (expm1.f64 (log1p.f64 (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))))) (*.f64 2 a)))
22.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 (exp.f64 (log.f64 (-.f64 (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) b) b))) (*.f64 2 a)))
20.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) (*.f64 -1 b)) (*.f64 2 a)))
19.8b
(if (>=.f64 b 0) (/.f64 (*.f64 2 c) (-.f64 (neg.f64 b) (*.f64 (*.f64 (cbrt.f64 (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (cbrt.f64 (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))) (cbrt.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)))
19.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)))
25.4b
(if (>=.f64 b 0) (/.f64 (*.f64 2 c) (-.f64 (neg.f64 b) (cbrt.f64 (*.f64 (*.f64 (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (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)))
26.1b
(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)))
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 (+.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)))
19.6b
(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)))
Compiler

Compiled 18851 to 10910 computations (42.1% saved)

localize23.0ms (0.3%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.6b
(-.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))))
9.7b
(-.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))))))
22.7b
(sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))
Compiler

Compiled 1530 to 1275 computations (16.7% saved)

series65.0ms (0.7%)

Counts
1 → 20
Calls

1 calls:

64.0ms
(-.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))))))

rewrite9.0ms (0.1%)

Algorithm
rewrite-expression-head
Rules
10×fma-neg_binary64
10×prod-diff_binary64
add-sqr-sqrt_binary64
*-un-lft-identity_binary64
add-cube-cbrt_binary64
Counts
1 → 37
Calls

1 calls:

4.0ms
(-.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))))))

simplify87.0ms (1%)

Algorithm
egg-herbie
Rules
753×times-frac_binary64
598×fma-neg_binary64
365×fma-def_binary64
347×associate-*l*_binary64
299×associate-/l*_binary64
Counts
57 → 80
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01271859
13641481
210831264
350001262
453921262

prune725.0ms (7.9%)

Pruning

12 alts after pruning (11 fresh and 1 done)

PrunedKeptTotal
New3631364
Fresh11011
Picked011
Done000
Total36412376
Error
5.0b
Counts
376 → 12
Alt Table
StatusErrorProgram
25.8b
(if (>=.f64 b 0) (/.f64 (*.f64 2 c) (*.f64 2 (-.f64 (fma.f64 (/.f64 c b) a (/.f64 (*.f64 (*.f64 c a) (*.f64 c a)) (pow.f64 b 3))) b))) (/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 a)))
35.6b
(if (>=.f64 b 0) (/.f64 (*.f64 2 c) (/.f64 (*.f64 4 (*.f64 c a)) (-.f64 (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) b) b))) (/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 a)))
20.4b
(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)))
28.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) (/.f64 (sqrt.f64 (-.f64 (pow.f64 b 6) (pow.f64 (*.f64 4 (*.f64 c a)) 3))) (sqrt.f64 (fma.f64 (*.f64 4 (*.f64 c a)) (fma.f64 4 (*.f64 c a) (*.f64 b b)) (pow.f64 b 4))))) (*.f64 2 a)))
20.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) (expm1.f64 (log1p.f64 (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))))) (*.f64 2 a)))
22.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 (exp.f64 (log.f64 (-.f64 (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) b) b))) (*.f64 2 a)))
20.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) (*.f64 -1 b)) (*.f64 2 a)))
19.8b
(if (>=.f64 b 0) (/.f64 (*.f64 2 c) (-.f64 (neg.f64 b) (*.f64 (*.f64 (cbrt.f64 (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (cbrt.f64 (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))) (cbrt.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)))
19.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)))
26.1b
(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)))
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 (+.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)))
19.6b
(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)))
Compiler

Compiled 22496 to 13182 computations (41.4% saved)

localize26.0ms (0.3%)

Local error

Found 4 expressions with local error:

NewErrorProgram
1.6b
(-.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))
11.0b
(+.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)))))))
22.7b
(sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))
23.5b
(cbrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -4))))
Compiler

Compiled 1530 to 1275 computations (16.7% saved)

series116.0ms (1.3%)

Counts
2 → 56
Calls

2 calls:

59.0ms
(cbrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -4))))
57.0ms
(+.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)))))))

rewrite7.0ms (0.1%)

Algorithm
rewrite-expression-head
Rules
10×fma-def_binary64
*-un-lft-identity_binary64
add-sqr-sqrt_binary64
add-cube-cbrt_binary64
add-log-exp_binary64
Counts
2 → 38
Calls

2 calls:

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

simplify87.0ms (0.9%)

Algorithm
egg-herbie
Rules
543×cancel-sign-sub-inv_binary64
230×unswap-sqr_binary64
217×fma-neg_binary64
185×associate-*r*_binary64
176×sub-neg_binary64
Counts
94 → 128
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
02643695
18393276
230993224
350023224

prune1.0s (11.3%)

Pruning

12 alts after pruning (10 fresh and 2 done)

PrunedKeptTotal
New3701371
Fresh1910
Picked011
Done011
Total37112383
Error
5.0b
Counts
383 → 12
Alt Table
StatusErrorProgram
25.8b
(if (>=.f64 b 0) (/.f64 (*.f64 2 c) (*.f64 2 (-.f64 (fma.f64 (/.f64 c b) a (/.f64 (*.f64 (*.f64 c a) (*.f64 c a)) (pow.f64 b 3))) b))) (/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 a)))
35.6b
(if (>=.f64 b 0) (/.f64 (*.f64 2 c) (/.f64 (*.f64 4 (*.f64 c a)) (-.f64 (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) b) b))) (/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 a)))
20.4b
(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)))
22.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 (exp.f64 (log.f64 (-.f64 (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) b) b))) (*.f64 2 a)))
20.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) (*.f64 -1 b)) (*.f64 2 a)))
19.8b
(if (>=.f64 b 0) (/.f64 (*.f64 2 c) (-.f64 (neg.f64 b) (*.f64 (*.f64 (cbrt.f64 (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (cbrt.f64 (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))) (cbrt.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)))
19.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)))
26.1b
(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)))
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 (+.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)))
28.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) (/.f64 (sqrt.f64 (-.f64 (pow.f64 b 6) (pow.f64 (*.f64 4 (*.f64 c a)) 3))) (sqrt.f64 (fma.f64 (*.f64 4 (*.f64 c a)) (fma.f64 4 (*.f64 c a) (*.f64 b b)) (pow.f64 b 4))))) (*.f64 2 a)))
19.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 0 (-.f64 b (pow.f64 (sqrt.f64 (cbrt.f64 (fma.f64 b b (*.f64 -4 (*.f64 c a))))) 3))) (*.f64 2 a)))
19.6b
(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)))
Compiler

Compiled 26694 to 16329 computations (38.8% saved)

localize33.0ms (0.4%)

Local error

Found 4 expressions with local error:

NewErrorProgram
1.6b
(-.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))
16.6b
(-.f64 b (pow.f64 (sqrt.f64 (cbrt.f64 (fma.f64 b b (*.f64 -4 (*.f64 c a))))) 3))
22.7b
(sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))
23.5b
(cbrt.f64 (fma.f64 b b (*.f64 -4 (*.f64 c a))))
Compiler

Compiled 1530 to 1275 computations (16.7% saved)

series118.0ms (1.3%)

Counts
2 → 56
Calls

2 calls:

61.0ms
(-.f64 b (pow.f64 (sqrt.f64 (cbrt.f64 (fma.f64 b b (*.f64 -4 (*.f64 c a))))) 3))
57.0ms
(cbrt.f64 (fma.f64 b b (*.f64 -4 (*.f64 c a))))

rewrite33.0ms (0.4%)

Algorithm
rewrite-expression-head
Rules
72×prod-diff_binary64
71×add-sqr-sqrt_binary64
58×*-un-lft-identity_binary64
56×add-cube-cbrt_binary64
52×sqrt-prod_binary64
Counts
2 → 134
Calls

2 calls:

12.0ms
(-.f64 b (pow.f64 (sqrt.f64 (cbrt.f64 (fma.f64 b b (*.f64 -4 (*.f64 c a))))) 3))
1.0ms
(cbrt.f64 (fma.f64 b b (*.f64 -4 (*.f64 c a))))

simplify211.0ms (2.3%)

Algorithm
egg-herbie
Rules
433×fma-neg_binary64
411×unswap-sqr_binary64
272×associate-*r*_binary64
205×associate-*l*_binary64
191×sub-neg_binary64
Counts
190 → 175
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
03779903
19677460
235565850
347705850
448255850

prune814.0ms (8.9%)

Pruning

13 alts after pruning (10 fresh and 3 done)

PrunedKeptTotal
New3452347
Fresh189
Picked011
Done022
Total34613359
Error
3.0b
Counts
359 → 13
Alt Table
StatusErrorProgram
25.8b
(if (>=.f64 b 0) (/.f64 (*.f64 2 c) (*.f64 2 (-.f64 (fma.f64 (/.f64 c b) a (/.f64 (*.f64 (*.f64 c a) (*.f64 c a)) (pow.f64 b 3))) b))) (/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 a)))
35.6b
(if (>=.f64 b 0) (/.f64 (*.f64 2 c) (/.f64 (*.f64 4 (*.f64 c a)) (-.f64 (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) b) b))) (/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 a)))
20.4b
(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.8b
(if (>=.f64 b 0) (/.f64 (*.f64 2 c) (-.f64 (neg.f64 b) (*.f64 (*.f64 (cbrt.f64 (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (cbrt.f64 (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))) (cbrt.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)))
19.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)))
26.1b
(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)))
32.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 0 (-.f64 b (pow.f64 (sqrt.f64 (exp.f64 (*.f64 1/3 (-.f64 (log.f64 (*.f64 4 c)) (log.f64 (/.f64 -1 a)))))) 3))) (*.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 (+.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)))
28.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) (/.f64 (sqrt.f64 (-.f64 (pow.f64 b 6) (pow.f64 (*.f64 4 (*.f64 c a)) 3))) (sqrt.f64 (fma.f64 (*.f64 4 (*.f64 c a)) (fma.f64 4 (*.f64 c a) (*.f64 b b)) (pow.f64 b 4))))) (*.f64 2 a)))
19.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 0 (-.f64 b (pow.f64 (sqrt.f64 (cbrt.f64 (fma.f64 b b (*.f64 -4 (*.f64 c a))))) 3))) (*.f64 2 a)))
20.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) (*.f64 -1 b)) (*.f64 2 a)))
32.3b
(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 0 (-.f64 b (pow.f64 (sqrt.f64 (exp.f64 (*.f64 1/3 (-.f64 (log.f64 (*.f64 4 a)) (log.f64 (/.f64 -1 c)))))) 3))) (*.f64 2 a)))
19.6b
(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)))
Compiler

Compiled 24803 to 15483 computations (37.6% saved)

regimes1.1s (12.5%)

Accuracy

Total 3.4b remaining (50.3%)

Threshold costs 0b (0%)

Counts
79 → 3
Compiler

Compiled 15614 to 10358 computations (33.7% saved)

bsearch71.0ms (0.8%)

Steps
ItersRangePoint
7
1.0709906923331112e+128
3.773110330540282e+133
2.1551913558757867e+128
10
-3.773369676859572e+160
-4.104825089895383e+149
-6.183544261957572e+150
Compiler

Compiled 4 to 3 computations (25% saved)

simplify7.0ms (0.1%)

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

Useful iterations: 1 (0.0ms)

IterNodesCost
036158
150154
274154
393154
4106154
5112154
6113154
7112154

end1.0ms (0%)

Compiler

Compiled 105 to 63 computations (40% saved)

sample2.0s (22.3%)

Algorithm
intervals
Results
1.2s8000×body128valid
71.0ms667×body128nan
47.0ms390×body128invalid
Compiler

Compiled 757 to 498 computations (34.2% saved)

Profiling

Loading profile data...