Details

Time bar (total: 7.8s)

analyze745.0ms (9.5%)

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 (23.3%)

Results
1.5s8256×body128valid
195.0ms1134×body128invalid
Compiler

Compiled 125 to 80 computations (36% saved)

simplify151.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
16.6b
Counts
3 → 1
Alt Table
StatusErrorProgram
16.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 (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 c 2) (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b))
0.9b
(-.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))))
19.3b
(sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))
Compiler

Compiled 1536 to 1280 computations (16.7% saved)

series387.0ms (4.9%)

Counts
4 → 80
Calls

4 calls:

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

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

simplify136.0ms (1.7%)

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

prune408.0ms (5.2%)

Pruning

9 alts after pruning (9 fresh and 0 done)

PrunedKeptTotal
New2699278
Fresh000
Picked101
Done000
Total2709279
Error
3.8b
Counts
279 → 9
Alt Table
StatusErrorProgram
22.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)))))
17.5b
(if (>=.f64 b 0) (*.f64 -1/2 (/.f64 (*.f64 (sqrt.f64 (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4)))))) (sqrt.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)))
18.7b
(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)))
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 -1 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 (sqrt.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4)))) b))) (/.f64 2 (sqrt.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4)))) b)))))
20.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)))
27.9b
(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.3b
(if (>=.f64 b 0) (*.f64 -1/2 (/.f64 (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))) a)) (cbrt.f64 (*.f64 (*.f64 (/.f64 (*.f64 c 2) (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b)) (/.f64 (*.f64 c 2) (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b))) (/.f64 (*.f64 c 2) (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b)))))
25.8b
(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)))
Compiler

Compiled 13411 to 7863 computations (41.4% saved)

localize26.0ms (0.3%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.6b
(+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4)))))
0.9b
(-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b)
11.1b
(sqrt.f64 (*.f64 a (*.f64 c -4)))
19.3b
(sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))
Compiler

Compiled 1536 to 1280 computations (16.7% saved)

series163.0ms (2.1%)

Counts
2 → 14
Calls

2 calls:

136.0ms
(+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4)))))
26.0ms
(sqrt.f64 (*.f64 a (*.f64 c -4)))

rewrite6.0ms (0.1%)

Algorithm
rewrite-expression-head
Rules
pow1_binary64
*-un-lft-identity_binary64
add-log-exp_binary64
fma-def_binary64
sqrt-pow1_binary64
Counts
2 → 31
Calls

2 calls:

3.0ms
(sqrt.f64 (*.f64 a (*.f64 c -4)))
2.0ms
(+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4)))))

simplify53.0ms (0.7%)

Algorithm
egg-herbie
Rules
535×times-frac_binary64
382×associate-*r*_binary64
364×distribute-neg-frac_binary64
312×fma-neg_binary64
283×associate-/l*_binary64
Counts
45 → 69
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
096880
1242826
2652810
33767808
44997808

prune449.0ms (5.7%)

Pruning

8 alts after pruning (8 fresh and 0 done)

PrunedKeptTotal
New2531254
Fresh178
Picked101
Done000
Total2558263
Error
3.8b
Counts
263 → 8
Alt Table
StatusErrorProgram
27.9b
(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)))))
17.7b
(if (>=.f64 b 0) (*.f64 -1/2 (/.f64 (*.f64 (sqrt.f64 (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4)))))) (sqrt.f64 (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4))))))) a)) (/.f64 (*.f64 c 2) (-.f64 (*.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))))) b)))
22.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)))))
18.7b
(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)))
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 -1 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 (sqrt.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4)))) b))) (/.f64 2 (sqrt.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4)))) b)))))
20.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)))
25.8b
(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)))
Compiler

Compiled 15176 to 9557 computations (37% saved)

localize26.0ms (0.3%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.6b
(+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4)))))
6.3b
(-.f64 (*.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))))) b)
11.1b
(sqrt.f64 (*.f64 a (*.f64 c -4)))
20.0b
(cbrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))
Compiler

Compiled 1536 to 1280 computations (16.7% saved)

series152.0ms (1.9%)

Counts
2 → 72
Calls

2 calls:

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

rewrite14.0ms (0.2%)

Algorithm
rewrite-expression-head
Rules
*-un-lft-identity_binary64
add-sqr-sqrt_binary64
add-cube-cbrt_binary64
add-log-exp_binary64
cancel-sign-sub-inv_binary64
Counts
2 → 33
Calls

2 calls:

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

simplify134.0ms (1.7%)

Algorithm
egg-herbie
Rules
404×associate-*r*_binary64
351×times-frac_binary64
305×associate-*l*_binary64
267×associate-/r*_binary64
259×fma-def_binary64
Counts
105 → 149
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
04076283
113075592
249375592
349495592

prune674.0ms (8.6%)

Pruning

8 alts after pruning (7 fresh and 1 done)

PrunedKeptTotal
New3500350
Fresh077
Picked011
Done000
Total3508358
Error
3.8b
Counts
358 → 8
Alt Table
StatusErrorProgram
27.9b
(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)))))
17.7b
(if (>=.f64 b 0) (*.f64 -1/2 (/.f64 (*.f64 (sqrt.f64 (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4)))))) (sqrt.f64 (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4))))))) a)) (/.f64 (*.f64 c 2) (-.f64 (*.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))))) b)))
22.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)))))
18.7b
(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)))
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 -1 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 (sqrt.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4)))) b))) (/.f64 2 (sqrt.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4)))) b)))))
20.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)))
25.8b
(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)))
Compiler

Compiled 28258 to 18493 computations (34.6% saved)

localize26.0ms (0.3%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.9b
(-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b)
2.4b
(exp.f64 (log.f64 (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4)))))))
11.1b
(sqrt.f64 (*.f64 a (*.f64 c -4)))
19.3b
(sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))
Compiler

Compiled 1536 to 1280 computations (16.7% saved)

series205.0ms (2.6%)

Counts
1 → 14
Calls

1 calls:

205.0ms
(exp.f64 (log.f64 (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4)))))))

rewrite4.0ms (0.1%)

Algorithm
rewrite-expression-head
Rules
*-un-lft-identity_binary64
exp-sum_binary64
log-prod_binary64
exp-prod_binary64
add-sqr-sqrt_binary64
Counts
1 → 20
Calls

1 calls:

3.0ms
(exp.f64 (log.f64 (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4)))))))

simplify87.0ms (1.1%)

Algorithm
egg-herbie
Rules
462×cancel-sign-sub-inv_binary64
415×neg-mul-1_binary64
367×distribute-rgt-neg-in_binary64
361×distribute-lft-neg-in_binary64
291×fma-neg_binary64
Counts
34 → 54
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
0109944
1244850
2594815
32559805
44481805
55009805

prune308.0ms (3.9%)

Pruning

10 alts after pruning (9 fresh and 1 done)

PrunedKeptTotal
New1873190
Fresh066
Picked101
Done011
Total18810198
Error
2.7b
Counts
198 → 10
Alt Table
StatusErrorProgram
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 (sqrt.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4)))) b))) (/.f64 2 (sqrt.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4)))) b)))))
19.4b
(if (>=.f64 b 0) (*.f64 -1/2 (/.f64 (pow.f64 (exp.f64 (*.f64 (cbrt.f64 (log.f64 (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4))))))) (cbrt.f64 (log.f64 (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4))))))))) (cbrt.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)))
20.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)))
18.8b
(if (>=.f64 b 0) (*.f64 -1/2 (/.f64 (pow.f64 (E.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)))
27.9b
(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)))))
17.7b
(if (>=.f64 b 0) (*.f64 -1/2 (/.f64 (*.f64 (sqrt.f64 (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4)))))) (sqrt.f64 (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4))))))) a)) (/.f64 (*.f64 c 2) (-.f64 (*.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))))) b)))
22.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)))))
25.5b
(if (>=.f64 b 0) (*.f64 -1/2 (/.f64 (exp.f64 (log.f64 (+.f64 b (hypot.f64 b (*.f64 (sqrt.f64 a) (sqrt.f64 (*.f64 -4 c))))))) 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 -1 b) b)))
25.8b
(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)))
Compiler

Compiled 9294 to 5826 computations (37.3% saved)

regimes1.3s (16.6%)

Accuracy

Total 3.4b remaining (42.9%)

Threshold costs 0b (0%)

Counts
97 → 5
Compiler

Compiled 16646 to 11230 computations (32.5% saved)

bsearch7.0ms (0.1%)

Compiler

Compiled 41 to 26 computations (36.6% saved)

simplify14.0ms (0.2%)

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

Useful iterations: 1 (0.0ms)

IterNodesCost
065493
186483
2109483
3128483
4141483
5147483
6148483
7147483

end479.0ms (6.1%)

Compiler

Compiled 1097 to 691 computations (37% saved)

Profiling

Loading profile data...