Details

Time bar (total: 7.9s)

analyze759.0ms (9.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.9s (23.7%)

Results
1.6s8256×body128valid
200.0ms1069×body128invalid
Compiler

Compiled 125 to 80 computations (36% saved)

simplify161.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
21.4b
Counts
3 → 1
Alt Table
StatusErrorProgram
21.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 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b)))
Compiler

Compiled 149 to 91 computations (38.9% saved)

localize19.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))
0.6b
(+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))))
1.2b
(-.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 1536 to 1280 computations (16.7% saved)

series418.0ms (5.3%)

Counts
4 → 80
Calls

4 calls:

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

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

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

simplify139.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

prune407.0ms (5.1%)

Pruning

13 alts after pruning (13 fresh and 0 done)

PrunedKeptTotal
New26513278
Fresh000
Picked101
Done000
Total26613279
Error
6.7b
Counts
279 → 13
Alt Table
StatusErrorProgram
25.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 (cbrt.f64 (/.f64 (*.f64 2 c) (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4)))) b))) (cbrt.f64 (/.f64 (*.f64 2 c) (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4)))) b)))) (cbrt.f64 (/.f64 (*.f64 2 c) (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4)))) b)))))
21.8b
(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)))
20.8b
(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)))
35.1b
(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))))))))
19.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)))
26.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) (exp.f64 (log.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4)))) b)))))
26.1b
(if (>=.f64 b 0) (*.f64 -1/2 (/.f64 (+.f64 b (cbrt.f64 (*.f64 (*.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b 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)))
27.1b
(if (>=.f64 b 0) (*.f64 -1/2 (/.f64 (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))) a)) (expm1.f64 (log1p.f64 (/.f64 (*.f64 2 c) (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4)))) b)))))
35.6b
(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)))
35.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 (*.f64 2 c) (+.f64 (*.f64 a (*.f64 c -4)) 0)) (+.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b)))
26.4b
(if (>=.f64 b 0) (*.f64 -1/2 (/.f64 (/.f64 (+.f64 (pow.f64 b 3) (pow.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) 3)) (+.f64 (*.f64 b b) (-.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 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)))
22.1b
(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)))
21.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 (sqrt.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b))) (/.f64 2 (sqrt.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b)))))
Compiler

Compiled 13805 to 8113 computations (41.2% saved)

localize25.0ms (0.3%)

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))
0.2b
(/.f64 (+.f64 b b) a)
1.2b
(-.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 1536 to 1280 computations (16.7% saved)

series7.0ms (0.1%)

Counts
1 → 24
Calls

1 calls:

7.0ms
(/.f64 (+.f64 b b) a)

rewrite10.0ms (0.1%)

Algorithm
rewrite-expression-head
Rules
42×*-un-lft-identity_binary64
36×times-frac_binary64
34×add-sqr-sqrt_binary64
34×add-cube-cbrt_binary64
12×associate-/l*_binary64
Counts
1 → 67
Calls

1 calls:

5.0ms
(/.f64 (+.f64 b b) a)

simplify104.0ms (1.3%)

Algorithm
egg-herbie
Rules
555×div-sub_binary64
500×associate-/r*_binary64
500×associate-/r/_binary64
498×fma-neg_binary64
406×associate-*r/_binary64
Counts
91 → 86
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01011082
11881046
24511046
313141046
435211046
549431046
649941046
749241046

prune515.0ms (6.5%)

Pruning

15 alts after pruning (15 fresh and 0 done)

PrunedKeptTotal
New2685273
Fresh21012
Picked101
Done000
Total27115286
Error
6.7b
Counts
286 → 15
Alt Table
StatusErrorProgram
20.1b
(if (>=.f64 b 0) (*.f64 -1/2 (*.f64 (/.f64 b (*.f64 (cbrt.f64 a) (cbrt.f64 a))) (/.f64 2 (cbrt.f64 a)))) (/.f64 (*.f64 c 2) (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b)))
26.1b
(if (>=.f64 b 0) (*.f64 -1/2 (/.f64 (+.f64 b (cbrt.f64 (*.f64 (*.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b 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)))
19.1b
(if (>=.f64 b 0) (*.f64 -1/2 (/.f64 (+.f64 b b) a)) (/.f64 (*.f64 c 2) (*.f64 b -2)))
19.9b
(if (>=.f64 b 0) (*.f64 -1/2 (*.f64 (/.f64 (sqrt.f64 (+.f64 b b)) 1) (/.f64 (sqrt.f64 (+.f64 b b)) a))) (/.f64 (*.f64 c 2) (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b)))
25.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 (cbrt.f64 (/.f64 (*.f64 2 c) (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4)))) b))) (cbrt.f64 (/.f64 (*.f64 2 c) (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4)))) b)))) (cbrt.f64 (/.f64 (*.f64 2 c) (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4)))) b)))))
21.8b
(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)))
31.8b
(if (>=.f64 b 0) (*.f64 -1/2 (exp.f64 (-.f64 (log.f64 (+.f64 b b)) (log.f64 a)))) (/.f64 (*.f64 c 2) (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b)))
27.1b
(if (>=.f64 b 0) (*.f64 -1/2 (/.f64 (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))) a)) (expm1.f64 (log1p.f64 (/.f64 (*.f64 2 c) (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4)))) b)))))
28.1b
(if (>=.f64 b 0) (*.f64 -1/2 (/.f64 (+.f64 b b) a)) (/.f64 (*.f64 c 2) (-.f64 (cbrt.f64 (pow.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4)))) 3)) b)))
21.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 (sqrt.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b))) (/.f64 2 (sqrt.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b)))))
35.6b
(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)))
35.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 (*.f64 2 c) (+.f64 (*.f64 a (*.f64 c -4)) 0)) (+.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b)))
26.4b
(if (>=.f64 b 0) (*.f64 -1/2 (/.f64 (/.f64 (+.f64 (pow.f64 b 3) (pow.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) 3)) (+.f64 (*.f64 b b) (-.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 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)))
22.1b
(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)))
26.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) (exp.f64 (log.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4)))) b)))))
Compiler

Compiled 11235 to 6112 computations (45.6% saved)

localize17.0ms (0.2%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.2b
(/.f64 (+.f64 b b) a)
Compiler

Compiled 1536 to 1280 computations (16.7% saved)

prune150.0ms (1.9%)

Pruning

14 alts after pruning (14 fresh and 0 done)

PrunedKeptTotal
New83386
Fresh31114
Picked101
Done000
Total8714101
Error
6.7b
Counts
101 → 14
Alt Table
StatusErrorProgram
25.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 (cbrt.f64 (/.f64 (*.f64 2 c) (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4)))) b))) (cbrt.f64 (/.f64 (*.f64 2 c) (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4)))) b)))) (cbrt.f64 (/.f64 (*.f64 2 c) (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4)))) b)))))
21.8b
(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)))
19.2b
(if (>=.f64 b 0) (*.f64 -1/2 (/.f64 2 (/.f64 a b))) (/.f64 (*.f64 c 2) (*.f64 b -2)))
22.1b
(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)))
19.3b
(if (>=.f64 b 0) (*.f64 -1/2 (*.f64 (sqrt.f64 (+.f64 b b)) (/.f64 (sqrt.f64 (+.f64 b b)) a))) (/.f64 (*.f64 c 2) (*.f64 b -2)))
26.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) (exp.f64 (log.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4)))) b)))))
28.1b
(if (>=.f64 b 0) (*.f64 -1/2 (/.f64 (+.f64 b b) a)) (/.f64 (*.f64 c 2) (-.f64 (cbrt.f64 (pow.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4)))) 3)) b)))
21.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 (sqrt.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b))) (/.f64 2 (sqrt.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b)))))
26.1b
(if (>=.f64 b 0) (*.f64 -1/2 (/.f64 (+.f64 b (cbrt.f64 (*.f64 (*.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b 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)))
31.3b
(if (>=.f64 b 0) (*.f64 -1/2 (exp.f64 (-.f64 (log.f64 (+.f64 b b)) (log.f64 a)))) (/.f64 (*.f64 c 2) (*.f64 b -2)))
27.1b
(if (>=.f64 b 0) (*.f64 -1/2 (/.f64 (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))) a)) (expm1.f64 (log1p.f64 (/.f64 (*.f64 2 c) (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4)))) b)))))
35.6b
(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)))
35.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 (*.f64 2 c) (+.f64 (*.f64 a (*.f64 c -4)) 0)) (+.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b)))
26.4b
(if (>=.f64 b 0) (*.f64 -1/2 (/.f64 (/.f64 (+.f64 (pow.f64 b 3) (pow.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) 3)) (+.f64 (*.f64 b b) (-.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 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 3350 to 1975 computations (41% saved)

localize13.0ms (0.2%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.2b
(/.f64 2 (/.f64 a b))
Compiler

Compiled 1536 to 1280 computations (16.7% saved)

series7.0ms (0.1%)

Counts
1 → 24
Calls

1 calls:

7.0ms
(/.f64 2 (/.f64 a b))

rewrite9.0ms (0.1%)

Algorithm
rewrite-expression-head
Rules
75×times-frac_binary64
43×*-un-lft-identity_binary64
43×add-sqr-sqrt_binary64
43×add-cube-cbrt_binary64
13×associate-/r*_binary64
Counts
1 → 72
Calls

1 calls:

4.0ms
(/.f64 2 (/.f64 a b))

simplify180.0ms (2.3%)

Algorithm
egg-herbie
Rules
662×fma-def_binary64
416×*-commutative_binary64
303×associate-/r/_binary64
293×distribute-rgt-in_binary64
273×fma-neg_binary64
Counts
96 → 111
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01521428
13061368
28321365
318131365
420911365
522871365
625241365
732311365
846561365
949031365

prune171.0ms (2.2%)

Pruning

14 alts after pruning (14 fresh and 0 done)

PrunedKeptTotal
New1092111
Fresh11213
Picked101
Done000
Total11114125
Error
6.7b
Counts
125 → 14
Alt Table
StatusErrorProgram
25.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 (cbrt.f64 (/.f64 (*.f64 2 c) (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4)))) b))) (cbrt.f64 (/.f64 (*.f64 2 c) (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4)))) b)))) (cbrt.f64 (/.f64 (*.f64 2 c) (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4)))) b)))))
21.8b
(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)))
19.8b
(if (>=.f64 b 0) (*.f64 -1/2 (*.f64 (/.f64 (*.f64 (cbrt.f64 2) (cbrt.f64 2)) (*.f64 (cbrt.f64 a) (cbrt.f64 a))) (/.f64 (cbrt.f64 2) (/.f64 (cbrt.f64 a) b)))) (/.f64 (*.f64 c 2) (*.f64 b -2)))
35.6b
(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)))
19.8b
(if (>=.f64 b 0) (*.f64 -1/2 (*.f64 (/.f64 (*.f64 (cbrt.f64 2) (cbrt.f64 2)) (*.f64 (cbrt.f64 (/.f64 a b)) (cbrt.f64 (/.f64 a b)))) (/.f64 (cbrt.f64 2) (cbrt.f64 (/.f64 a b))))) (/.f64 (*.f64 c 2) (*.f64 b -2)))
26.4b
(if (>=.f64 b 0) (*.f64 -1/2 (/.f64 (/.f64 (+.f64 (pow.f64 b 3) (pow.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) 3)) (+.f64 (*.f64 b b) (-.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 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)))
28.1b
(if (>=.f64 b 0) (*.f64 -1/2 (/.f64 (+.f64 b b) a)) (/.f64 (*.f64 c 2) (-.f64 (cbrt.f64 (pow.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4)))) 3)) b)))
21.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 (sqrt.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b))) (/.f64 2 (sqrt.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b)))))
26.1b
(if (>=.f64 b 0) (*.f64 -1/2 (/.f64 (+.f64 b (cbrt.f64 (*.f64 (*.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b 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)))
31.3b
(if (>=.f64 b 0) (*.f64 -1/2 (exp.f64 (-.f64 (log.f64 (+.f64 b b)) (log.f64 a)))) (/.f64 (*.f64 c 2) (*.f64 b -2)))
27.1b
(if (>=.f64 b 0) (*.f64 -1/2 (/.f64 (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))) a)) (expm1.f64 (log1p.f64 (/.f64 (*.f64 2 c) (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4)))) b)))))
35.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 (*.f64 2 c) (+.f64 (*.f64 a (*.f64 c -4)) 0)) (+.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b)))
22.1b
(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)))
26.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) (exp.f64 (log.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4)))) b)))))
Compiler

Compiled 3555 to 2264 computations (36.3% saved)

regimes2.3s (29.1%)

Accuracy

Total 1.1b remaining (15.7%)

Threshold costs 0b (0%)

Counts
175 → 3
Compiler

Compiled 22394 to 15554 computations (30.5% saved)

bsearch72.0ms (0.9%)

Steps
ItersRangePoint
7
1.0708155733422024e+121
5.30092268030776e+122
7.250966043701229e+121
8
-2.1488194316017615e+82
-7.183095331642665e+79
-2.1244998464394334e+82
Compiler

Compiled 4 to 3 computations (25% saved)

simplify5.0ms (0.1%)

Algorithm
egg-herbie
Rules
11×*-commutative_binary64
+-commutative_binary64
sub-neg_binary64
*-lft-identity_binary64
neg-sub0_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
046123
160123
264123
366123
467123
565123

end513.0ms (6.5%)

Compiler

Compiled 800 to 528 computations (34% saved)

Profiling

Loading profile data...