Details

Time bar (total: 8.1s)

analyze698.0ms (8.6%)

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)

sample1.8s (22.5%)

Results
1.5s8256×body128valid
190.0ms1101×body128invalid
Compiler

Compiled 125 to 80 computations (36% saved)

simplify156.0ms (1.9%)

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
20.5b
Counts
3 → 1
Alt Table
StatusErrorProgram
20.5b
(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.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(/.f64 (*.f64 c 2) (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b))
1.1b
(-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b)
1.2b
(+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))))
25.0b
(sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))
Compiler

Compiled 1536 to 1280 computations (16.7% saved)

series411.0ms (5%)

Counts
4 → 80
Calls

4 calls:

261.0ms
(/.f64 (*.f64 c 2) (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b))
53.0ms
(+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))))
51.0ms
(-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b)
45.0ms
(sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))

rewrite21.0ms (0.3%)

Algorithm
rewrite-expression-head
Rules
36×add-sqr-sqrt_binary64
31×*-un-lft-identity_binary64
23×add-cube-cbrt_binary64
18×prod-diff_binary64
18×sqrt-prod_binary64
Counts
4 → 106
Calls

4 calls:

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

simplify144.0ms (1.8%)

Algorithm
egg-herbie
Rules
885×fma-neg_binary64
381×cancel-sign-sub-inv_binary64
181×distribute-rgt-neg-in_binary64
159×distribute-rgt-in_binary64
157×distribute-lft-neg-in_binary64
Counts
186 → 234
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
02615384
16864516
225464321
345004319
448654319

prune423.0ms (5.2%)

Pruning

11 alts after pruning (11 fresh and 0 done)

PrunedKeptTotal
New26711278
Fresh000
Picked101
Done000
Total26811279
Error
4.1b
Counts
279 → 11
Alt Table
StatusErrorProgram
30.4b
(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 (pow.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) 3) (pow.f64 b 3)) (+.f64 (*.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))) (+.f64 (*.f64 b b) (*.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b))))))
20.7b
(if (>=.f64 b 0) (*.f64 -1/2 (/.f64 (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))) a)) (/.f64 1 (/.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b) (*.f64 c 2))))
33.1b
(if (>=.f64 b 0) (*.f64 -1/2 (/.f64 (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))) a)) (cbrt.f64 (pow.f64 (/.f64 (*.f64 2 c) (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4)))) b)) 3)))
20.6b
(if (>=.f64 b 0) (*.f64 -1/2 (/.f64 (*.f64 (*.f64 (cbrt.f64 (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4)))))) (cbrt.f64 (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4))))))) (cbrt.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)))
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 (*.f64 -1 b) b)))
22.1b
(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)))
20.6b
(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)))
29.7b
(if (>=.f64 b 0) (*.f64 -1/2 (/.f64 (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))) a)) (*.f64 (sqrt.f64 (/.f64 (*.f64 c 2) (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b))) (sqrt.f64 (/.f64 (*.f64 c 2) (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b)))))
30.4b
(if (>=.f64 b 0) (*.f64 -1/2 (/.f64 (/.f64 (neg.f64 (+.f64 (*.f64 a (*.f64 c -4)) 0)) (-.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)))
21.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 (exp.f64 (log.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))))) b)))
33.3b
(if (>=.f64 b 0) (*.f64 -1/2 (/.f64 (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))) a)) (exp.f64 (-.f64 (log.f64 (*.f64 c 2)) (log.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b)))))
Compiler

Compiled 13611 to 7979 computations (41.4% saved)

localize22.0ms (0.3%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.1b
(/.f64 (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))) a)
1.2b
(+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))))
25.0b
(sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))
Compiler

Compiled 1536 to 1280 computations (16.7% saved)

series71.0ms (0.9%)

Counts
1 → 20
Calls

1 calls:

71.0ms
(/.f64 (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))) a)

rewrite8.0ms (0.1%)

Algorithm
rewrite-expression-head
Rules
18×*-un-lft-identity_binary64
12×times-frac_binary64
10×add-sqr-sqrt_binary64
10×add-cube-cbrt_binary64
associate-/l*_binary64
Counts
1 → 35
Calls

1 calls:

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

simplify68.0ms (0.8%)

Algorithm
egg-herbie
Rules
411×times-frac_binary64
390×unswap-sqr_binary64
384×fma-neg_binary64
293×associate-/l*_binary64
285×associate-*r*_binary64
Counts
55 → 78
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01191633
13261543
29451470
340831470
452171470

prune322.0ms (4%)

Pruning

13 alts after pruning (13 fresh and 0 done)

PrunedKeptTotal
New1636169
Fresh3710
Picked101
Done000
Total16713180
Error
4.1b
Counts
180 → 13
Alt Table
StatusErrorProgram
29.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 (*.f64 -1 b) b)))
27.8b
(if (>=.f64 b 0) (*.f64 -1/2 (+.f64 (/.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) a) (/.f64 b a))) (/.f64 (*.f64 c 2) (-.f64 (*.f64 -1 b) b)))
30.4b
(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 (pow.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) 3) (pow.f64 b 3)) (+.f64 (*.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))) (+.f64 (*.f64 b b) (*.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b))))))
20.7b
(if (>=.f64 b 0) (*.f64 -1/2 (/.f64 (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))) a)) (/.f64 1 (/.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b) (*.f64 c 2))))
30.4b
(if (>=.f64 b 0) (*.f64 -1/2 (/.f64 (/.f64 (neg.f64 (+.f64 (*.f64 a (*.f64 c -4)) 0)) (-.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)))
38.3b
(if (>=.f64 b 0) (*.f64 -1/2 (log.f64 (exp.f64 (/.f64 (+.f64 b (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) b)) a)))) (/.f64 (*.f64 c 2) (-.f64 (*.f64 -1 b) b)))
33.1b
(if (>=.f64 b 0) (*.f64 -1/2 (/.f64 (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))) a)) (cbrt.f64 (pow.f64 (/.f64 (*.f64 2 c) (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4)))) b)) 3)))
21.5b
(if (>=.f64 b 0) (*.f64 -1/2 (*.f64 2 (-.f64 (/.f64 b a) (/.f64 c b)))) (/.f64 (*.f64 c 2) (-.f64 (*.f64 -1 b) b)))
21.5b
(if (>=.f64 b 0) (*.f64 -1/2 (*.f64 2 (/.f64 b a))) (/.f64 (*.f64 c 2) (-.f64 (*.f64 -1 b) b)))
19.9b
(if (>=.f64 b 0) (*.f64 -1/2 (*.f64 (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))) (/.f64 1 a))) (/.f64 (*.f64 c 2) (-.f64 (*.f64 -1 b) b)))
29.7b
(if (>=.f64 b 0) (*.f64 -1/2 (/.f64 (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))) a)) (*.f64 (sqrt.f64 (/.f64 (*.f64 c 2) (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b))) (sqrt.f64 (/.f64 (*.f64 c 2) (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b)))))
21.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 (exp.f64 (log.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))))) b)))
33.3b
(if (>=.f64 b 0) (*.f64 -1/2 (/.f64 (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))) a)) (exp.f64 (-.f64 (log.f64 (*.f64 c 2)) (log.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b)))))
Compiler

Compiled 7590 to 4811 computations (36.6% saved)

localize22.0ms (0.3%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.5b
(*.f64 (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))) (/.f64 1 a))
1.2b
(+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))))
25.0b
(sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))
Compiler

Compiled 1536 to 1280 computations (16.7% saved)

series72.0ms (0.9%)

Counts
1 → 20
Calls

1 calls:

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

rewrite12.0ms (0.1%)

Algorithm
rewrite-expression-head
Rules
16×add-sqr-sqrt_binary64
13×associate-*r*_binary64
12×*-un-lft-identity_binary64
11×times-frac_binary64
10×add-exp-log_binary64
Counts
1 → 43
Calls

1 calls:

8.0ms
(*.f64 (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))) (/.f64 1 a))

simplify70.0ms (0.9%)

Algorithm
egg-herbie
Rules
460×times-frac_binary64
408×associate-*l*_binary64
317×unswap-sqr_binary64
311×associate-/l*_binary64
305×fma-def_binary64
Counts
63 → 91
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01311718
13701571
211781497
344451497
452761497

prune339.0ms (4.2%)

Pruning

14 alts after pruning (13 fresh and 1 done)

PrunedKeptTotal
New1811182
Fresh01212
Picked011
Done000
Total18114195
Error
4.0b
Counts
195 → 14
Alt Table
StatusErrorProgram
29.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 (*.f64 -1 b) b)))
27.8b
(if (>=.f64 b 0) (*.f64 -1/2 (+.f64 (/.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) a) (/.f64 b a))) (/.f64 (*.f64 c 2) (-.f64 (*.f64 -1 b) b)))
30.4b
(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 (pow.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) 3) (pow.f64 b 3)) (+.f64 (*.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))) (+.f64 (*.f64 b b) (*.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b))))))
20.7b
(if (>=.f64 b 0) (*.f64 -1/2 (/.f64 (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))) a)) (/.f64 1 (/.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b) (*.f64 c 2))))
31.9b
(if (>=.f64 b 0) (*.f64 -1/2 (/.f64 (-.f64 (*.f64 b b) (fma.f64 a (*.f64 c -4) (*.f64 b b))) (*.f64 a (-.f64 b (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 -4 a))) b))))) (/.f64 (*.f64 c 2) (-.f64 (*.f64 -1 b) b)))
19.9b
(if (>=.f64 b 0) (*.f64 -1/2 (*.f64 (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))) (/.f64 1 a))) (/.f64 (*.f64 c 2) (-.f64 (*.f64 -1 b) b)))
30.4b
(if (>=.f64 b 0) (*.f64 -1/2 (/.f64 (/.f64 (neg.f64 (+.f64 (*.f64 a (*.f64 c -4)) 0)) (-.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)))
38.3b
(if (>=.f64 b 0) (*.f64 -1/2 (log.f64 (exp.f64 (/.f64 (+.f64 b (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) b)) a)))) (/.f64 (*.f64 c 2) (-.f64 (*.f64 -1 b) b)))
33.1b
(if (>=.f64 b 0) (*.f64 -1/2 (/.f64 (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))) a)) (cbrt.f64 (pow.f64 (/.f64 (*.f64 2 c) (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4)))) b)) 3)))
21.5b
(if (>=.f64 b 0) (*.f64 -1/2 (*.f64 2 (-.f64 (/.f64 b a) (/.f64 c b)))) (/.f64 (*.f64 c 2) (-.f64 (*.f64 -1 b) b)))
21.5b
(if (>=.f64 b 0) (*.f64 -1/2 (*.f64 2 (/.f64 b a))) (/.f64 (*.f64 c 2) (-.f64 (*.f64 -1 b) b)))
29.7b
(if (>=.f64 b 0) (*.f64 -1/2 (/.f64 (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))) a)) (*.f64 (sqrt.f64 (/.f64 (*.f64 c 2) (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b))) (sqrt.f64 (/.f64 (*.f64 c 2) (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b)))))
21.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 (exp.f64 (log.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))))) b)))
33.3b
(if (>=.f64 b 0) (*.f64 -1/2 (/.f64 (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))) a)) (exp.f64 (-.f64 (log.f64 (*.f64 c 2)) (log.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b)))))
Compiler

Compiled 8347 to 5408 computations (35.2% saved)

localize20.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.7b
(/.f64 1 (/.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b) (*.f64 c 2)))
1.1b
(-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b)
1.2b
(+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))))
25.0b
(sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))
Compiler

Compiled 1536 to 1280 computations (16.7% saved)

series260.0ms (3.2%)

Counts
1 → 20
Calls

1 calls:

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

rewrite15.0ms (0.2%)

Algorithm
rewrite-expression-head
Rules
54×times-frac_binary64
36×add-sqr-sqrt_binary64
28×*-un-lft-identity_binary64
22×add-exp-log_binary64
20×add-cube-cbrt_binary64
Counts
1 → 70
Calls

1 calls:

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

simplify94.0ms (1.1%)

Algorithm
egg-herbie
Rules
731×fma-def_binary64
663×associate-/l*_binary64
592×associate-/r*_binary64
349×associate-*l/_binary64
325×associate-/r/_binary64
Counts
90 → 110
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01553096
13852703
213512577
348092576
453382576

prune835.0ms (10.3%)

Pruning

13 alts after pruning (12 fresh and 1 done)

PrunedKeptTotal
New3143317
Fresh3912
Picked101
Done011
Total31813331
Error
4.0b
Counts
331 → 13
Alt Table
StatusErrorProgram
31.9b
(if (>=.f64 b 0) (*.f64 -1/2 (/.f64 (-.f64 (*.f64 b b) (fma.f64 a (*.f64 c -4) (*.f64 b b))) (*.f64 a (-.f64 b (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 -4 a))) b))))) (/.f64 (*.f64 c 2) (-.f64 (*.f64 -1 b) b)))
19.9b
(if (>=.f64 b 0) (*.f64 -1/2 (*.f64 (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))) (/.f64 1 a))) (/.f64 (*.f64 c 2) (-.f64 (*.f64 -1 b) b)))
30.4b
(if (>=.f64 b 0) (*.f64 -1/2 (/.f64 (/.f64 (neg.f64 (+.f64 (*.f64 a (*.f64 c -4)) 0)) (-.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)))
38.3b
(if (>=.f64 b 0) (*.f64 -1/2 (log.f64 (exp.f64 (/.f64 (+.f64 b (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) b)) a)))) (/.f64 (*.f64 c 2) (-.f64 (*.f64 -1 b) b)))
33.1b
(if (>=.f64 b 0) (*.f64 -1/2 (/.f64 (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))) a)) (cbrt.f64 (pow.f64 (/.f64 (*.f64 2 c) (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4)))) b)) 3)))
21.5b
(if (>=.f64 b 0) (*.f64 -1/2 (*.f64 2 (-.f64 (/.f64 b a) (/.f64 c b)))) (/.f64 (*.f64 c 2) (-.f64 (*.f64 -1 b) b)))
21.5b
(if (>=.f64 b 0) (*.f64 -1/2 (*.f64 2 (/.f64 b a))) (/.f64 (*.f64 c 2) (-.f64 (*.f64 -1 b) b)))
27.8b
(if (>=.f64 b 0) (*.f64 -1/2 (+.f64 (/.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) a) (/.f64 b a))) (/.f64 (*.f64 c 2) (-.f64 (*.f64 -1 b) b)))
20.4b
(if (>=.f64 b 0) (*.f64 -1/2 (/.f64 (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))) a)) (/.f64 1 (/.f64 (-.f64 (neg.f64 b) b) (*.f64 c 2))))
20.7b
(if (>=.f64 b 0) (*.f64 -1/2 (/.f64 (fma.f64 (sqrt.f64 b) (sqrt.f64 b) (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))) a)) (/.f64 1 (/.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b) (*.f64 c 2))))
20.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 1 (/.f64 (*.f64 (cbrt.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b)) (cbrt.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b))) c)) (/.f64 (cbrt.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b)) 2)))
21.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 (exp.f64 (log.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))))) b)))
33.3b
(if (>=.f64 b 0) (*.f64 -1/2 (/.f64 (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))) a)) (exp.f64 (-.f64 (log.f64 (*.f64 c 2)) (log.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b)))))
Compiler

Compiled 15499 to 9365 computations (39.6% saved)

regimes1.8s (22.5%)

Accuracy

Total 1.1b remaining (17.7%)

Threshold costs 0b (0%)

Counts
133 → 3
Compiler

Compiled 23162 to 15326 computations (33.8% saved)

bsearch74.0ms (0.9%)

Steps
ItersRangePoint
8
5.578383699742264e+77
2.8266591081539867e+80
5.5055700004826897e+79
8
-3.2236795514813885e+159
-1.6736714136635723e+155
-1.7035750295212249e+155
Compiler

Compiled 4 to 3 computations (25% saved)

simplify9.0ms (0.1%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
047129
169129
285129
395129
4103129
5106129
6104129

end285.0ms (3.5%)

Compiler

Compiled 671 to 443 computations (34% saved)

Profiling

Loading profile data...