Details

Time bar (total: 7.6s)

analyze677.0ms (8.9%)

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
18.7%81.1%0.1%6
26.5%67.1%6.4%7
35.1%58.5%6.4%8
41.3%49.9%8.7%9
46.4%40.2%13.4%10
50.8%34.2%15%11
55.2%26.7%18.1%12
57.4%22%20.6%13
59.8%17.9%22.3%14
Compiler

Compiled 42 to 27 computations (35.7% saved)

sample144.0ms (1.9%)

Algorithm
intervals
Results
30.0ms256×body128valid
1.0ms13×body128invalid
1.0ms13×body128nan
Compiler

Compiled 86 to 56 computations (34.9% saved)

simplify155.0ms (2%)

Algorithm
egg-herbie
Rules
1753×fma-neg_binary64
1288×fma-def_binary64
631×div-sub_binary64
512×times-frac_binary64
430×associate-/l*_binary64
Counts
1 → 2
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
02258
14752
211852
326950
442950
574350
6131550
7173850
8217650
9285350
10406650
11352350
12357550
13354350
14355750
15451050
16462250
17476150

prune4.0ms (0.1%)

Pruning

1 alts after pruning (1 fresh and 0 done)

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

Compiled 149 to 91 computations (38.9% saved)

localize20.0ms (0.3%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(/.f64 (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))) a)
0.4b
(-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b)
1.3b
(+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))))
25.2b
(sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))
Compiler

Compiled 1530 to 1275 computations (16.7% saved)

series218.0ms (2.9%)

Counts
4 → 80
Calls

4 calls:

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

rewrite20.0ms (0.3%)

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:

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

simplify193.0ms (2.5%)

Algorithm
egg-herbie
Rules
878×fma-neg_binary64
423×cancel-sign-sub-inv_binary64
171×distribute-rgt-in_binary64
160×distribute-rgt-neg-in_binary64
153×fma-def_binary64
Counts
190 → 240
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
02515471
16384667
221874480
344024480
449474480
549864480
648724480

prune461.0ms (6%)

Pruning

14 alts after pruning (14 fresh and 0 done)

PrunedKeptTotal
New27014284
Fresh000
Picked101
Done000
Total27114285
Error
6.8b
Counts
285 → 14
Alt Table
StatusErrorProgram
20.0b
(if (>=.f64 b 0) (*.f64 -1/2 (/.f64 1 (/.f64 a (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))))))) (/.f64 (*.f64 c 2) (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b)))
28.6b
(if (>=.f64 b 0) (*.f64 -1/2 (/.f64 (/.f64 (-.f64 (*.f64 b b) (*.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))))) (-.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))))) a)) (/.f64 (*.f64 c 2) (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b)))
20.0b
(if (>=.f64 b 0) (*.f64 -1/2 (/.f64 (+.f64 b (*.f64 (fabs.f64 (cbrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))) (sqrt.f64 (cbrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))))) a)) (/.f64 (*.f64 c 2) (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b)))
21.4b
(if (>=.f64 b 0) (*.f64 -1/2 (/.f64 (+.f64 b (exp.f64 (log.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4))))))) a)) (/.f64 (*.f64 c 2) (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b)))
36.7b
(if (>=.f64 b 0) (*.f64 -1/2 (/.f64 (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))) a)) (/.f64 (*.f64 c 2) (/.f64 (+.f64 (*.f64 a (*.f64 c -4)) 0) (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4))))))))
17.6b
(if (>=.f64 b 0) (*.f64 -1/2 (-.f64 (*.f64 2 (/.f64 b a)) (*.f64 2 (/.f64 c b)))) (/.f64 (*.f64 c 2) (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b)))
27.6b
(if (>=.f64 b 0) (*.f64 -1/2 (/.f64 (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))) a)) (/.f64 (*.f64 c 2) (exp.f64 (log.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4)))) b)))))
21.5b
(if (>=.f64 b 0) (*.f64 -1/2 (/.f64 (exp.f64 (log.f64 (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4))))))) a)) (/.f64 (*.f64 c 2) (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b)))
24.2b
(if (>=.f64 b 0) (*.f64 -1/2 (/.f64 (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))) a)) (/.f64 (*.f64 c 2) (-.f64 (*.f64 2 (/.f64 (*.f64 c a) b)) (*.f64 2 b))))
20.0b
(if (>=.f64 b 0) (*.f64 -1/2 (/.f64 (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))) a)) (/.f64 (*.f64 c 2) (+.f64 (fma.f64 (fabs.f64 (cbrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))) (sqrt.f64 (cbrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))) (neg.f64 b)) 0)))
23.6b
(if (>=.f64 b 0) (*.f64 -1/2 (/.f64 (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))) a)) (/.f64 (*.f64 c 2) (-.f64 (*.f64 -1 b) b)))
28.5b
(if (>=.f64 b 0) (*.f64 -1/2 (/.f64 (/.f64 (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))) (sqrt.f64 a)) (sqrt.f64 a))) (/.f64 (*.f64 c 2) (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b)))
20.0b
(if (>=.f64 b 0) (*.f64 -1/2 (/.f64 (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))) a)) (/.f64 (*.f64 c 2) (-.f64 (*.f64 (sqrt.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))) (sqrt.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))))) b)))
17.7b
(if (>=.f64 b 0) (*.f64 -1/2 (/.f64 (+.f64 b b) a)) (/.f64 (*.f64 c 2) (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b)))
Compiler

Compiled 14140 to 8284 computations (41.4% saved)

localize21.0ms (0.3%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(*.f64 2 (/.f64 b a))
0.1b
(/.f64 (*.f64 c 2) (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b))
0.4b
(-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b)
25.2b
(sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))
Compiler

Compiled 1530 to 1275 computations (16.7% saved)

series265.0ms (3.5%)

Counts
2 → 20
Calls

2 calls:

258.0ms
(/.f64 (*.f64 c 2) (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b))
7.0ms
(*.f64 2 (/.f64 b a))

rewrite15.0ms (0.2%)

Algorithm
rewrite-expression-head
Rules
25×add-sqr-sqrt_binary64
16×*-un-lft-identity_binary64
16×times-frac_binary64
13×associate-*r*_binary64
12×add-cube-cbrt_binary64
Counts
2 → 65
Calls

2 calls:

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

simplify66.0ms (0.9%)

Algorithm
egg-herbie
Rules
922×times-frac_binary64
803×associate-/l*_binary64
283×associate-/l/_binary64
242×fma-def_binary64
211×associate-/r/_binary64
Counts
85 → 121
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01901929
15011739
216181658
352381658

prune447.0ms (5.8%)

Pruning

13 alts after pruning (13 fresh and 0 done)

PrunedKeptTotal
New2325237
Fresh5813
Picked101
Done000
Total23813251
Error
6.8b
Counts
251 → 13
Alt Table
StatusErrorProgram
20.0b
(if (>=.f64 b 0) (*.f64 -1/2 (/.f64 1 (/.f64 a (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))))))) (/.f64 (*.f64 c 2) (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b)))
28.6b
(if (>=.f64 b 0) (*.f64 -1/2 (/.f64 (/.f64 (-.f64 (*.f64 b b) (*.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))))) (-.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))))) a)) (/.f64 (*.f64 c 2) (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b)))
33.3b
(if (>=.f64 b 0) (*.f64 -1/2 (-.f64 (*.f64 2 (/.f64 b a)) (*.f64 2 (/.f64 c b)))) (exp.f64 (-.f64 (log.f64 (*.f64 c 2)) (log.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b)))))
20.0b
(if (>=.f64 b 0) (*.f64 -1/2 (/.f64 (+.f64 b (*.f64 (fabs.f64 (cbrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))) (sqrt.f64 (cbrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))))) a)) (/.f64 (*.f64 c 2) (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b)))
21.4b
(if (>=.f64 b 0) (*.f64 -1/2 (/.f64 (+.f64 b (exp.f64 (log.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4))))))) a)) (/.f64 (*.f64 c 2) (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b)))
27.6b
(if (>=.f64 b 0) (*.f64 -1/2 (/.f64 (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))) a)) (/.f64 (*.f64 c 2) (exp.f64 (log.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4)))) b)))))
21.5b
(if (>=.f64 b 0) (*.f64 -1/2 (/.f64 (exp.f64 (log.f64 (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4))))))) a)) (/.f64 (*.f64 c 2) (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b)))
28.5b
(if (>=.f64 b 0) (*.f64 -1/2 (/.f64 (/.f64 (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))) (sqrt.f64 a)) (sqrt.f64 a))) (/.f64 (*.f64 c 2) (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b)))
17.8b
(if (>=.f64 b 0) (*.f64 -1/2 (-.f64 (*.f64 2 (/.f64 b a)) (*.f64 2 (/.f64 c b)))) (/.f64 (/.f64 (*.f64 c 2) (sqrt.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b))) (sqrt.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b))))
21.3b
(if (>=.f64 b 0) (*.f64 -1/2 (-.f64 (*.f64 2 (/.f64 b a)) (*.f64 2 (/.f64 c b)))) (*.f64 -1 (/.f64 c b)))
36.0b
(if (>=.f64 b 0) (*.f64 -1/2 (-.f64 (*.f64 2 (/.f64 b a)) (*.f64 2 (/.f64 c b)))) (*.f64 (/.f64 (*.f64 c 2) (fma.f64 a (*.f64 c -4) 0)) (+.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b)))
21.9b
(if (>=.f64 b 0) (*.f64 -1/2 (-.f64 (*.f64 2 (/.f64 b a)) (*.f64 2 (/.f64 c b)))) (/.f64 (*.f64 c 2) (*.f64 2 (-.f64 (/.f64 (*.f64 c a) b) b))))
17.7b
(if (>=.f64 b 0) (*.f64 -1/2 (/.f64 (+.f64 b b) a)) (/.f64 (*.f64 c 2) (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b)))
Compiler

Compiled 11132 to 6502 computations (41.6% saved)

localize18.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(fma.f64 a (*.f64 c -4) (*.f64 b b))
0.1b
(/.f64 (*.f64 c 2) (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b))
0.4b
(-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b)
25.2b
(sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))
Compiler

Compiled 1530 to 1275 computations (16.7% saved)

series10.0ms (0.1%)

Counts
1 → 36
Calls

1 calls:

10.0ms
(fma.f64 a (*.f64 c -4) (*.f64 b b))

rewrite1.0ms (0%)

Algorithm
rewrite-expression-head
Rules
*-un-lft-identity_binary64
add-sqr-sqrt_binary64
add-cube-cbrt_binary64
add-cbrt-cube_binary64
add-exp-log_binary64
Counts
1 → 10
Calls

1 calls:

0.0ms
(fma.f64 a (*.f64 c -4) (*.f64 b b))

simplify79.0ms (1%)

Algorithm
egg-herbie
Rules
490×*-commutative_binary64
334×neg-sub0_binary64
314×neg-mul-1_binary64
291×associate-*l*_binary64
290×times-frac_binary64
Counts
46 → 24
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
025565
142488
290488
3294488
41369488
52959488
64609488
75240488

prune368.0ms (4.8%)

Pruning

12 alts after pruning (12 fresh and 0 done)

PrunedKeptTotal
New2092211
Fresh21012
Picked101
Done000
Total21212224
Error
6.8b
Counts
224 → 12
Alt Table
StatusErrorProgram
20.0b
(if (>=.f64 b 0) (*.f64 -1/2 (/.f64 1 (/.f64 a (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))))))) (/.f64 (*.f64 c 2) (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b)))
28.6b
(if (>=.f64 b 0) (*.f64 -1/2 (/.f64 (/.f64 (-.f64 (*.f64 b b) (*.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))))) (-.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))))) a)) (/.f64 (*.f64 c 2) (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b)))
33.3b
(if (>=.f64 b 0) (*.f64 -1/2 (-.f64 (*.f64 2 (/.f64 b a)) (*.f64 2 (/.f64 c b)))) (exp.f64 (-.f64 (log.f64 (*.f64 c 2)) (log.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b)))))
20.0b
(if (>=.f64 b 0) (*.f64 -1/2 (/.f64 (+.f64 b (*.f64 (fabs.f64 (cbrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))) (sqrt.f64 (cbrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))))) a)) (/.f64 (*.f64 c 2) (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b)))
21.4b
(if (>=.f64 b 0) (*.f64 -1/2 (/.f64 (+.f64 b (exp.f64 (log.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4))))))) a)) (/.f64 (*.f64 c 2) (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b)))
17.7b
(if (>=.f64 b 0) (*.f64 -1/2 (/.f64 (+.f64 b b) a)) (*.f64 (*.f64 c 2) (/.f64 1 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b))))
36.0b
(if (>=.f64 b 0) (*.f64 -1/2 (-.f64 (*.f64 2 (/.f64 b a)) (*.f64 2 (/.f64 c b)))) (*.f64 (/.f64 (*.f64 c 2) (fma.f64 a (*.f64 c -4) 0)) (+.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b)))
27.6b
(if (>=.f64 b 0) (*.f64 -1/2 (/.f64 (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))) a)) (/.f64 (*.f64 c 2) (exp.f64 (log.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4)))) b)))))
21.5b
(if (>=.f64 b 0) (*.f64 -1/2 (/.f64 (exp.f64 (log.f64 (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4))))))) a)) (/.f64 (*.f64 c 2) (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b)))
28.5b
(if (>=.f64 b 0) (*.f64 -1/2 (/.f64 (/.f64 (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))) (sqrt.f64 a)) (sqrt.f64 a))) (/.f64 (*.f64 c 2) (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b)))
17.8b
(if (>=.f64 b 0) (*.f64 -1/2 (-.f64 (*.f64 2 (/.f64 b a)) (*.f64 2 (/.f64 c b)))) (/.f64 (/.f64 (*.f64 c 2) (sqrt.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b))) (sqrt.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b))))
21.3b
(if (>=.f64 b 0) (*.f64 -1/2 (/.f64 (+.f64 b b) a)) (/.f64 (*.f64 c 2) (*.f64 b -2)))
Compiler

Compiled 8771 to 4828 computations (45% saved)

localize21.0ms (0.3%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(/.f64 1 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b))
0.1b
(*.f64 (*.f64 c 2) (/.f64 1 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b)))
0.4b
(-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b)
25.2b
(sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))
Compiler

Compiled 1530 to 1275 computations (16.7% saved)

series466.0ms (6.1%)

Counts
2 → 40
Calls

2 calls:

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

rewrite27.0ms (0.4%)

Algorithm
rewrite-expression-head
Rules
51×add-sqr-sqrt_binary64
37×*-un-lft-identity_binary64
36×times-frac_binary64
28×add-exp-log_binary64
24×associate-*r*_binary64
Counts
2 → 98
Calls

2 calls:

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

simplify141.0ms (1.8%)

Algorithm
egg-herbie
Rules
912×times-frac_binary64
430×fma-def_binary64
324×fma-neg_binary64
148×associate-*l*_binary64
144×associate-/r/_binary64
Counts
138 → 171
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01933846
15313506
218263316
347243316
449853316
549353316

prune459.0ms (6%)

Pruning

13 alts after pruning (12 fresh and 1 done)

PrunedKeptTotal
New2861287
Fresh01111
Picked011
Done000
Total28613299
Error
6.8b
Counts
299 → 13
Alt Table
StatusErrorProgram
20.0b
(if (>=.f64 b 0) (*.f64 -1/2 (/.f64 1 (/.f64 a (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))))))) (/.f64 (*.f64 c 2) (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b)))
28.6b
(if (>=.f64 b 0) (*.f64 -1/2 (/.f64 (/.f64 (-.f64 (*.f64 b b) (*.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))))) (-.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))))) a)) (/.f64 (*.f64 c 2) (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b)))
33.3b
(if (>=.f64 b 0) (*.f64 -1/2 (-.f64 (*.f64 2 (/.f64 b a)) (*.f64 2 (/.f64 c b)))) (exp.f64 (-.f64 (log.f64 (*.f64 c 2)) (log.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b)))))
20.0b
(if (>=.f64 b 0) (*.f64 -1/2 (/.f64 (+.f64 b (*.f64 (fabs.f64 (cbrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))) (sqrt.f64 (cbrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))))) a)) (/.f64 (*.f64 c 2) (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b)))
21.4b
(if (>=.f64 b 0) (*.f64 -1/2 (/.f64 (+.f64 b (exp.f64 (log.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4))))))) a)) (/.f64 (*.f64 c 2) (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b)))
17.7b
(if (>=.f64 b 0) (*.f64 -1/2 (/.f64 (+.f64 b b) a)) (*.f64 (*.f64 c 2) (/.f64 1 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b))))
36.0b
(if (>=.f64 b 0) (*.f64 -1/2 (-.f64 (*.f64 2 (/.f64 b a)) (*.f64 2 (/.f64 c b)))) (*.f64 (/.f64 (*.f64 c 2) (fma.f64 a (*.f64 c -4) 0)) (+.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b)))
27.6b
(if (>=.f64 b 0) (*.f64 -1/2 (/.f64 (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))) a)) (/.f64 (*.f64 c 2) (exp.f64 (log.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4)))) b)))))
21.5b
(if (>=.f64 b 0) (*.f64 -1/2 (/.f64 (exp.f64 (log.f64 (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4))))))) a)) (/.f64 (*.f64 c 2) (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b)))
28.5b
(if (>=.f64 b 0) (*.f64 -1/2 (/.f64 (/.f64 (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))) (sqrt.f64 a)) (sqrt.f64 a))) (/.f64 (*.f64 c 2) (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b)))
17.8b
(if (>=.f64 b 0) (*.f64 -1/2 (-.f64 (*.f64 2 (/.f64 b a)) (*.f64 2 (/.f64 c b)))) (/.f64 (/.f64 (*.f64 c 2) (sqrt.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b))) (sqrt.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b))))
21.4b
(if (>=.f64 b 0) (*.f64 -1/2 (/.f64 (+.f64 b b) a)) (*.f64 (*.f64 c 2) (/.f64 -1/2 b)))
21.3b
(if (>=.f64 b 0) (*.f64 -1/2 (/.f64 (+.f64 b b) a)) (/.f64 (*.f64 c 2) (*.f64 b -2)))
Compiler

Compiled 11989 to 6864 computations (42.7% saved)

regimes1.5s (20.3%)

Accuracy

Total 1.4b remaining (19.8%)

Threshold costs 0b (0%)

Counts
106 → 5
Compiler

Compiled 16474 to 10926 computations (33.7% saved)

bsearch6.0ms (0.1%)

Compiler

Compiled 41 to 26 computations (36.6% saved)

simplify16.0ms (0.2%)

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

Useful iterations: 1 (0.0ms)

IterNodesCost
056458
174446
298446
3118446
4132446
5138446
6139446
7138446

end3.0ms (0%)

Compiler

Compiled 298 to 174 computations (41.6% saved)

sample1.8s (23.2%)

Algorithm
intervals
Results
922.0ms8000×body128valid
75.0ms687×body128nan
38.0ms388×body128invalid
Compiler

Compiled 849 to 535 computations (37% saved)

Profiling

Loading profile data...