Details

Time bar (total: 36.6s)

analyze3.2s (8.8%)

Algorithm
search
Search
TrueOtherFalseIter
0%99.8%0.2%0
0%99.8%0.2%1
0%99.8%0.2%2
0%99.8%0.2%3
0%99.8%0.2%4
0%99.8%0.2%5
0%99.8%0.2%6
0%99.8%0.2%7
0%98.2%1.8%8
0%94.3%5.7%9
0.4%93%6.6%10
7.4%83.3%9.3%11
12.4%75.2%12.4%12
14.4%68.9%16.7%13
16.8%65.4%17.8%14
Compiler

Compiled 45 to 33 computations (26.7% saved)

sample6.4s (17.6%)

Results
1.5s5760×body128valid
814.0ms714×body2048valid
783.0ms871×body1024invalid
772.0ms838×body1024valid
719.0ms2913×body128invalid
684.0ms606×body2048invalid
410.0ms592×body512valid
390.0ms578×body512invalid
165.0ms351×body256valid
158.0ms333×body256invalid
3.0msbody4096valid
Compiler

Compiled 134 to 98 computations (26.9% saved)

simplify76.0ms (0.2%)

Algorithm
egg-herbie
Rules
560×associate-*l*_binary64
528×associate-*r*_binary64
455×distribute-rgt-in_binary64
450×fma-def_binary64
449×distribute-lft-in_binary64
Counts
1 → 2
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
02361
16649
220249
372149
4297349
5496849
6496649
7496949
8493949

prune6.0ms (0%)

Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New022
Fresh011
Picked000
Done000
Total033
Error
50.0b
Counts
3 → 2
Alt Table
StatusErrorProgram
54.1b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (*.f64 2 (*.f64 (-.f64 (pow.f64 B 2) (*.f64 (*.f64 4 A) C)) F)) (+.f64 (+.f64 A C) (sqrt.f64 (+.f64 (pow.f64 (-.f64 A C) 2) (pow.f64 B 2))))))) (-.f64 (pow.f64 B 2) (*.f64 (*.f64 4 A) C)))
50.5b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (*.f64 2 (*.f64 F (+.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
Compiler

Compiled 239 to 156 computations (34.7% saved)

localize17.0ms (0%)

Local error

Found 4 expressions with local error:

NewErrorProgram
2.2b
(+.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))
3.3b
(*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (*.f64 2 (*.f64 F (+.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C))))))
18.5b
(sqrt.f64 (*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (*.f64 2 (*.f64 F (+.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))))))
23.2b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (*.f64 2 (*.f64 F (+.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))

series16.3s (44.5%)

Counts
4 → 124
Calls

4 calls:

8.7s
(sqrt.f64 (*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (*.f64 2 (*.f64 F (+.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))))))
7.3s
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (*.f64 2 (*.f64 F (+.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
210.0ms
(*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (*.f64 2 (*.f64 F (+.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C))))))
91.0ms
(+.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))

rewrite52.0ms (0.1%)

Algorithm
rewrite-expression-head
Rules
38×*-un-lft-identity_binary64
36×times-frac_binary64
31×add-sqr-sqrt_binary64
31×add-cube-cbrt_binary64
23×pow1_binary64
Counts
4 → 140
Calls

4 calls:

10.0ms
(sqrt.f64 (*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (*.f64 2 (*.f64 F (+.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))))))
10.0ms
(*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (*.f64 2 (*.f64 F (+.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C))))))
9.0ms
(+.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))
6.0ms
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (*.f64 2 (*.f64 F (+.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))

simplify409.0ms (1.1%)

Algorithm
egg-herbie
Rules
583×fma-def_binary64
274×associate-/l*_binary64
213×associate-*l/_binary64
183×associate-/r*_binary64
149×times-frac_binary64
Counts
264 → 361
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0244845159
1505245159

prune1.2s (3.2%)

Pruning

28 alts after pruning (28 fresh and 0 done)

PrunedKeptTotal
New33427361
Fresh011
Picked101
Done000
Total33528363
Error
25.1b
Counts
363 → 28
Alt Table
StatusErrorProgram
62.1b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 -2 (*.f64 F (pow.f64 B 3))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
48.5b
(*.f64 -1 (/.f64 (sqrt.f64 (*.f64 2 (*.f64 F (+.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))))) (sqrt.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)))))
55.1b
(/.f64 (neg.f64 (*.f64 (sqrt.f64 (*.f64 -8 (*.f64 A F))) (*.f64 C (sqrt.f64 2)))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
49.2b
(/.f64 (sqrt.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B))) (/.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (neg.f64 (sqrt.f64 (*.f64 2 (*.f64 F (+.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))))))))
60.1b
(/.f64 (neg.f64 (sqrt.f64 (-.f64 (+.f64 (*.f64 2 (*.f64 C (*.f64 F (pow.f64 B 2)))) (+.f64 (*.f64 2 (*.f64 A (*.f64 F (pow.f64 B 2)))) (+.f64 (*.f64 2 (*.f64 F (pow.f64 B 3))) (+.f64 (*.f64 (pow.f64 A 2) (*.f64 F B)) (*.f64 (pow.f64 C 2) (*.f64 F B)))))) (*.f64 10 (*.f64 A (*.f64 C (*.f64 F B))))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
60.7b
(neg.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 -1/4 (/.f64 (*.f64 F (+.f64 A (+.f64 C (sqrt.f64 (-.f64 (+.f64 (*.f64 A A) (*.f64 C C)) (*.f64 2 (*.f64 A C))))))) (*.f64 A C))))))
50.8b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (*.f64 2 (*.f64 F (fma.f64 (*.f64 (cbrt.f64 (+.f64 A C)) (cbrt.f64 (+.f64 A C))) (cbrt.f64 (+.f64 A C)) (hypot.f64 B (-.f64 A C)))))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
54.9b
(cbrt.f64 (*.f64 (*.f64 (/.f64 (neg.f64 (sqrt.f64 (*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (*.f64 2 (*.f64 F (+.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))))))) (fma.f64 A (*.f64 C -4) (*.f64 B B))) (/.f64 (neg.f64 (sqrt.f64 (*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (*.f64 2 (*.f64 F (+.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))) (/.f64 (neg.f64 (sqrt.f64 (*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (*.f64 2 (*.f64 F (+.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))))
50.6b
(/.f64 (sqrt.f64 (sqrt.f64 (*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (*.f64 2 (*.f64 F (+.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))))))) (/.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (neg.f64 (sqrt.f64 (sqrt.f64 (*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (*.f64 2 (*.f64 F (+.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))))))))))
54.1b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (*.f64 2 (*.f64 (-.f64 (pow.f64 B 2) (*.f64 (*.f64 4 A) C)) F)) (+.f64 (+.f64 A C) (sqrt.f64 (+.f64 (pow.f64 (-.f64 A C) 2) (pow.f64 B 2))))))) (-.f64 (pow.f64 B 2) (*.f64 (*.f64 4 A) C)))
54.7b
(neg.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 -1/2 (/.f64 F A)))))
50.6b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (*.f64 (cbrt.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B))) (cbrt.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)))) (*.f64 (cbrt.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B))) (*.f64 2 (*.f64 F (+.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C))))))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
56.6b
(/.f64 (neg.f64 (*.f64 A (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 -8 (*.f64 C F)))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
58.6b
(neg.f64 (*.f64 (sqrt.f64 (*.f64 F (+.f64 A (sqrt.f64 (+.f64 (*.f64 A A) (*.f64 B B)))))) (/.f64 (sqrt.f64 2) B)))
57.9b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (*.f64 2 (*.f64 F (fma.f64 2 A (*.f64 1/2 (/.f64 (*.f64 B B) A)))))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
49.4b
(*.f64 (/.f64 (sqrt.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B))) (*.f64 (cbrt.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B))) (cbrt.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B))))) (/.f64 (neg.f64 (sqrt.f64 (*.f64 2 (*.f64 F (+.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C))))))) (cbrt.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)))))
59.7b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (*.f64 2 (*.f64 F B))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
62.5b
(/.f64 (neg.f64 (sqrt.f64 (-.f64 (fma.f64 2 (*.f64 C (*.f64 F (*.f64 B B))) (fma.f64 2 (*.f64 A (*.f64 F (*.f64 B B))) (*.f64 10 (*.f64 A (*.f64 C (*.f64 F B)))))) (fma.f64 2 (*.f64 F (pow.f64 B 3)) (*.f64 (*.f64 F B) (+.f64 (*.f64 A A) (*.f64 C C))))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
55.5b
(neg.f64 (*.f64 (sqrt.f64 (*.f64 -1/2 (/.f64 F C))) (sqrt.f64 2)))
57.2b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (*.f64 2 (*.f64 F (-.f64 (*.f64 2 A) (*.f64 1/2 (/.f64 (pow.f64 B 2) C)))))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
59.5b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 2 (*.f64 F (pow.f64 B 3))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
55.6b
(/.f64 (neg.f64 (fma.f64 (sqrt.f64 (*.f64 -8 (*.f64 A F))) (*.f64 C (sqrt.f64 2)) (/.f64 (*.f64 F (*.f64 (sqrt.f64 2) (*.f64 B B))) (sqrt.f64 (*.f64 -8 (*.f64 A F)))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
61.8b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (*.f64 2 (*.f64 F (neg.f64 B)))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
54.5b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (*.f64 2 (*.f64 F (*.f64 2 C)))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
63.1b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (*.f64 2 (*.f64 F (log.f64 (*.f64 (exp.f64 (+.f64 A C)) (exp.f64 (hypot.f64 B (-.f64 A C)))))))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
59.2b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 -16 (*.f64 A (*.f64 (pow.f64 C 2) F))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
59.4b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 -16 (*.f64 (pow.f64 A 2) (*.f64 C F))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
59.2b
(/.f64 (neg.f64 (sqrt.f64 (/.f64 (*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (*.f64 2 (*.f64 F (-.f64 (*.f64 (+.f64 A C) (+.f64 A C)) (*.f64 (hypot.f64 B (-.f64 A C)) (hypot.f64 B (-.f64 A C))))))) (-.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
Compiler

Compiled 62140 to 34044 computations (45.2% saved)

localize18.0ms (0%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.2b
(fma.f64 A (*.f64 C -4) (*.f64 B B))
2.2b
(+.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))
10.3b
(sqrt.f64 (*.f64 2 (*.f64 F (+.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C))))))
20.4b
(sqrt.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)))

series1.1s (3.1%)

Counts
3 → 76
Calls

3 calls:

1.1s
(sqrt.f64 (*.f64 2 (*.f64 F (+.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C))))))
47.0ms
(sqrt.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)))
11.0ms
(fma.f64 A (*.f64 C -4) (*.f64 B B))

rewrite11.0ms (0%)

Algorithm
rewrite-expression-head
Rules
10×pow1_binary64
add-sqr-sqrt_binary64
associate-*r/_binary64
*-un-lft-identity_binary64
sqrt-prod_binary64
Counts
3 → 41
Calls

3 calls:

8.0ms
(sqrt.f64 (*.f64 2 (*.f64 F (+.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C))))))
1.0ms
(sqrt.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)))
0.0ms
(fma.f64 A (*.f64 C -4) (*.f64 B B))

simplify126.0ms (0.3%)

Algorithm
egg-herbie
Rules
521×fma-def_binary64
457×associate-*l*_binary64
213×associate-/r*_binary64
195×*-commutative_binary64
163×associate-*r/_binary64
Counts
117 → 118
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
05256271
116425185
249625170
349815170

prune324.0ms (0.9%)

Pruning

36 alts after pruning (36 fresh and 0 done)

PrunedKeptTotal
New18713200
Fresh42327
Picked101
Done000
Total19236228
Error
15.0b
Counts
228 → 36
Alt Table
StatusErrorProgram
61.8b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (*.f64 2 (*.f64 F (neg.f64 B)))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
57.0b
(*.f64 -1 (/.f64 (sqrt.f64 (*.f64 2 (*.f64 F (-.f64 (*.f64 2 C) (*.f64 1/2 (/.f64 (*.f64 B B) A)))))) (sqrt.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)))))
59.3b
(*.f64 -1 (/.f64 (*.f64 2 (sqrt.f64 (*.f64 A F))) (sqrt.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)))))
62.1b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 -2 (*.f64 F (pow.f64 B 3))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
55.1b
(/.f64 (neg.f64 (*.f64 (sqrt.f64 (*.f64 -8 (*.f64 A F))) (*.f64 C (sqrt.f64 2)))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
59.1b
(*.f64 -1 (/.f64 (sqrt.f64 (*.f64 2 (*.f64 F (-.f64 (*.f64 2 A) (*.f64 1/2 (/.f64 (*.f64 B B) C)))))) (sqrt.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)))))
53.8b
(*.f64 -1 (/.f64 (fma.f64 1/2 (*.f64 (*.f64 C (sqrt.f64 2)) (sqrt.f64 (/.f64 F (+.f64 A (hypot.f64 B A))))) (fma.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 F (+.f64 A (hypot.f64 B A)))) (*.f64 (*.f64 (*.f64 A (*.f64 C (sqrt.f64 2))) (sqrt.f64 (/.f64 F (*.f64 (fma.f64 B B (*.f64 A A)) (+.f64 A (hypot.f64 B A)))))) -1/2))) (sqrt.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)))))
60.7b
(neg.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 -1/4 (/.f64 (*.f64 F (+.f64 A (+.f64 C (sqrt.f64 (-.f64 (+.f64 (*.f64 A A) (*.f64 C C)) (*.f64 2 (*.f64 A C))))))) (*.f64 A C))))))
48.5b
(*.f64 -1 (/.f64 (sqrt.f64 (*.f64 2 (*.f64 F (*.f64 (sqrt.f64 (+.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))) (sqrt.f64 (+.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))))))) (sqrt.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)))))
56.1b
(*.f64 -1 (/.f64 (*.f64 2 (sqrt.f64 (*.f64 C F))) (sqrt.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)))))
50.8b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (*.f64 2 (*.f64 F (fma.f64 (*.f64 (cbrt.f64 (+.f64 A C)) (cbrt.f64 (+.f64 A C))) (cbrt.f64 (+.f64 A C)) (hypot.f64 B (-.f64 A C)))))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
60.1b
(/.f64 (neg.f64 (sqrt.f64 (-.f64 (+.f64 (*.f64 2 (*.f64 C (*.f64 F (pow.f64 B 2)))) (+.f64 (*.f64 2 (*.f64 A (*.f64 F (pow.f64 B 2)))) (+.f64 (*.f64 2 (*.f64 F (pow.f64 B 3))) (+.f64 (*.f64 (pow.f64 A 2) (*.f64 F B)) (*.f64 (pow.f64 C 2) (*.f64 F B)))))) (*.f64 10 (*.f64 A (*.f64 C (*.f64 F B))))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
54.9b
(cbrt.f64 (*.f64 (*.f64 (/.f64 (neg.f64 (sqrt.f64 (*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (*.f64 2 (*.f64 F (+.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))))))) (fma.f64 A (*.f64 C -4) (*.f64 B B))) (/.f64 (neg.f64 (sqrt.f64 (*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (*.f64 2 (*.f64 F (+.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))) (/.f64 (neg.f64 (sqrt.f64 (*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (*.f64 2 (*.f64 F (+.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))))
55.2b
(*.f64 -1 (/.f64 (sqrt.f64 (*.f64 2 (*.f64 F (/.f64 (-.f64 (*.f64 (+.f64 A C) (+.f64 A C)) (*.f64 (hypot.f64 B (-.f64 A C)) (hypot.f64 B (-.f64 A C)))) (-.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C))))))) (sqrt.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)))))
50.6b
(/.f64 (sqrt.f64 (sqrt.f64 (*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (*.f64 2 (*.f64 F (+.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))))))) (/.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (neg.f64 (sqrt.f64 (sqrt.f64 (*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (*.f64 2 (*.f64 F (+.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))))))))))
54.1b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (*.f64 2 (*.f64 (-.f64 (pow.f64 B 2) (*.f64 (*.f64 4 A) C)) F)) (+.f64 (+.f64 A C) (sqrt.f64 (+.f64 (pow.f64 (-.f64 A C) 2) (pow.f64 B 2))))))) (-.f64 (pow.f64 B 2) (*.f64 (*.f64 4 A) C)))
48.3b
(*.f64 -1 (/.f64 (*.f64 (sqrt.f64 (*.f64 (+.f64 C (hypot.f64 B C)) F)) (sqrt.f64 2)) (sqrt.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)))))
59.4b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 -16 (*.f64 (pow.f64 A 2) (*.f64 C F))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
54.7b
(neg.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 -1/2 (/.f64 F A)))))
50.6b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (*.f64 (cbrt.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B))) (cbrt.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)))) (*.f64 (cbrt.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B))) (*.f64 2 (*.f64 F (+.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C))))))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
56.6b
(/.f64 (neg.f64 (*.f64 A (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 -8 (*.f64 C F)))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
48.6b
(*.f64 -1 (/.f64 (sqrt.f64 (*.f64 2 (*.f64 F (+.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))))) (*.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)))))))
53.6b
(*.f64 -1 (/.f64 (sqrt.f64 (*.f64 2 (*.f64 F (+.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))))) (neg.f64 B)))
58.6b
(neg.f64 (*.f64 (sqrt.f64 (*.f64 F (+.f64 A (sqrt.f64 (+.f64 (*.f64 A A) (*.f64 B B)))))) (/.f64 (sqrt.f64 2) B)))
57.9b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (*.f64 2 (*.f64 F (fma.f64 2 A (*.f64 1/2 (/.f64 (*.f64 B B) A)))))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
59.7b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (*.f64 2 (*.f64 F B))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
48.4b
(*.f64 -1 (/.f64 (sqrt.f64 (*.f64 2 (*.f64 F (+.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))))) (*.f64 (sqrt.f64 (hypot.f64 (sqrt.f64 (*.f64 A (*.f64 C -4))) B)) (sqrt.f64 (hypot.f64 (sqrt.f64 (*.f64 A (*.f64 C -4))) B)))))
62.5b
(/.f64 (neg.f64 (sqrt.f64 (-.f64 (fma.f64 2 (*.f64 C (*.f64 F (*.f64 B B))) (fma.f64 2 (*.f64 A (*.f64 F (*.f64 B B))) (*.f64 10 (*.f64 A (*.f64 C (*.f64 F B)))))) (fma.f64 2 (*.f64 F (pow.f64 B 3)) (*.f64 (*.f64 F B) (+.f64 (*.f64 A A) (*.f64 C C))))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
55.5b
(neg.f64 (*.f64 (sqrt.f64 (*.f64 -1/2 (/.f64 F C))) (sqrt.f64 2)))
57.2b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (*.f64 2 (*.f64 F (-.f64 (*.f64 2 A) (*.f64 1/2 (/.f64 (pow.f64 B 2) C)))))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
49.6b
(*.f64 -1 (/.f64 (sqrt.f64 (*.f64 2 (*.f64 F (+.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))))) (exp.f64 (log.f64 (hypot.f64 (sqrt.f64 (*.f64 A (*.f64 C -4))) B)))))
50.8b
(*.f64 -1 (/.f64 (sqrt.f64 (*.f64 2 (*.f64 F (+.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))))) B))
59.5b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 2 (*.f64 F (pow.f64 B 3))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
55.6b
(/.f64 (neg.f64 (fma.f64 (sqrt.f64 (*.f64 -8 (*.f64 A F))) (*.f64 C (sqrt.f64 2)) (/.f64 (*.f64 F (*.f64 (sqrt.f64 2) (*.f64 B B))) (sqrt.f64 (*.f64 -8 (*.f64 A F)))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
54.5b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (*.f64 2 (*.f64 F (*.f64 2 C)))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
63.1b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (*.f64 2 (*.f64 F (log.f64 (*.f64 (exp.f64 (+.f64 A C)) (exp.f64 (hypot.f64 B (-.f64 A C)))))))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
Compiler

Compiled 15405 to 8902 computations (42.2% saved)

localize16.0ms (0%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.3b
(*.f64 (sqrt.f64 (*.f64 (+.f64 C (hypot.f64 B C)) F)) (sqrt.f64 2))
1.5b
(+.f64 C (hypot.f64 B C))
10.0b
(sqrt.f64 (*.f64 (+.f64 C (hypot.f64 B C)) F))
20.4b
(sqrt.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)))

series446.0ms (1.2%)

Counts
3 → 40
Calls

3 calls:

251.0ms
(*.f64 (sqrt.f64 (*.f64 (+.f64 C (hypot.f64 B C)) F)) (sqrt.f64 2))
183.0ms
(sqrt.f64 (*.f64 (+.f64 C (hypot.f64 B C)) F))
13.0ms
(+.f64 C (hypot.f64 B C))

rewrite17.0ms (0%)

Algorithm
rewrite-expression-head
Rules
13×pow1_binary64
11×add-sqr-sqrt_binary64
*-un-lft-identity_binary64
add-cube-cbrt_binary64
associate-*r*_binary64
Counts
3 → 63
Calls

3 calls:

8.0ms
(*.f64 (sqrt.f64 (*.f64 (+.f64 C (hypot.f64 B C)) F)) (sqrt.f64 2))
3.0ms
(sqrt.f64 (*.f64 (+.f64 C (hypot.f64 B C)) F))
2.0ms
(+.f64 C (hypot.f64 B C))

simplify86.0ms (0.2%)

Algorithm
egg-herbie
Rules
698×fma-def_binary64
415×times-frac_binary64
396×associate-/l*_binary64
395×cancel-sign-sub-inv_binary64
332×fma-neg_binary64
Counts
103 → 149
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
02392294
16212238
218652163
348282163
449512163

prune229.0ms (0.6%)

Pruning

33 alts after pruning (33 fresh and 0 done)

PrunedKeptTotal
New1885193
Fresh72835
Picked101
Done000
Total19633229
Error
12.5b
Counts
229 → 33
Alt Table
StatusErrorProgram
61.8b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (*.f64 2 (*.f64 F (neg.f64 B)))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
57.0b
(*.f64 -1 (/.f64 (sqrt.f64 (*.f64 2 (*.f64 F (-.f64 (*.f64 2 C) (*.f64 1/2 (/.f64 (*.f64 B B) A)))))) (sqrt.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)))))
44.7b
(*.f64 -1 (/.f64 (*.f64 (*.f64 (sqrt.f64 (+.f64 C (hypot.f64 B C))) (sqrt.f64 F)) (sqrt.f64 2)) (sqrt.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)))))
60.7b
(neg.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 -1/4 (/.f64 (*.f64 F (+.f64 A (+.f64 C (sqrt.f64 (-.f64 (+.f64 (*.f64 A A) (*.f64 C C)) (*.f64 2 (*.f64 A C))))))) (*.f64 A C))))))
50.8b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (*.f64 2 (*.f64 F (fma.f64 (*.f64 (cbrt.f64 (+.f64 A C)) (cbrt.f64 (+.f64 A C))) (cbrt.f64 (+.f64 A C)) (hypot.f64 B (-.f64 A C)))))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
60.1b
(/.f64 (neg.f64 (sqrt.f64 (-.f64 (+.f64 (*.f64 2 (*.f64 C (*.f64 F (pow.f64 B 2)))) (+.f64 (*.f64 2 (*.f64 A (*.f64 F (pow.f64 B 2)))) (+.f64 (*.f64 2 (*.f64 F (pow.f64 B 3))) (+.f64 (*.f64 (pow.f64 A 2) (*.f64 F B)) (*.f64 (pow.f64 C 2) (*.f64 F B)))))) (*.f64 10 (*.f64 A (*.f64 C (*.f64 F B))))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
54.9b
(cbrt.f64 (*.f64 (*.f64 (/.f64 (neg.f64 (sqrt.f64 (*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (*.f64 2 (*.f64 F (+.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))))))) (fma.f64 A (*.f64 C -4) (*.f64 B B))) (/.f64 (neg.f64 (sqrt.f64 (*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (*.f64 2 (*.f64 F (+.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))) (/.f64 (neg.f64 (sqrt.f64 (*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (*.f64 2 (*.f64 F (+.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))))
50.6b
(/.f64 (sqrt.f64 (sqrt.f64 (*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (*.f64 2 (*.f64 F (+.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))))))) (/.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (neg.f64 (sqrt.f64 (sqrt.f64 (*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (*.f64 2 (*.f64 F (+.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))))))))))
51.4b
(*.f64 -1 (/.f64 (*.f64 (sqrt.f64 (*.f64 (+.f64 C (hypot.f64 B C)) F)) (sqrt.f64 2)) B))
55.2b
(*.f64 -1 (/.f64 (sqrt.f64 (*.f64 2 (*.f64 F (/.f64 (-.f64 (*.f64 (+.f64 A C) (+.f64 A C)) (*.f64 (hypot.f64 B (-.f64 A C)) (hypot.f64 B (-.f64 A C)))) (-.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C))))))) (sqrt.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)))))
54.1b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (*.f64 2 (*.f64 (-.f64 (pow.f64 B 2) (*.f64 (*.f64 4 A) C)) F)) (+.f64 (+.f64 A C) (sqrt.f64 (+.f64 (pow.f64 (-.f64 A C) 2) (pow.f64 B 2))))))) (-.f64 (pow.f64 B 2) (*.f64 (*.f64 4 A) C)))
44.7b
(*.f64 -1 (/.f64 (*.f64 (sqrt.f64 (+.f64 C (hypot.f64 B C))) (*.f64 (sqrt.f64 F) (sqrt.f64 2))) (sqrt.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)))))
54.7b
(neg.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 -1/2 (/.f64 F A)))))
50.6b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (*.f64 (cbrt.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B))) (cbrt.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)))) (*.f64 (cbrt.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B))) (*.f64 2 (*.f64 F (+.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C))))))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
53.7b
(*.f64 -1 (/.f64 (*.f64 (sqrt.f64 (*.f64 (+.f64 C (hypot.f64 B C)) F)) (sqrt.f64 2)) (neg.f64 B)))
56.6b
(/.f64 (neg.f64 (*.f64 A (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 -8 (*.f64 C F)))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
48.6b
(*.f64 -1 (/.f64 (sqrt.f64 (*.f64 2 (*.f64 F (+.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))))) (*.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)))))))
53.6b
(*.f64 -1 (/.f64 (sqrt.f64 (*.f64 2 (*.f64 F (+.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))))) (neg.f64 B)))
58.6b
(neg.f64 (*.f64 (sqrt.f64 (*.f64 F (+.f64 A (sqrt.f64 (+.f64 (*.f64 A A) (*.f64 B B)))))) (/.f64 (sqrt.f64 2) B)))
57.9b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (*.f64 2 (*.f64 F (fma.f64 2 A (*.f64 1/2 (/.f64 (*.f64 B B) A)))))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
59.7b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (*.f64 2 (*.f64 F B))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
62.5b
(/.f64 (neg.f64 (sqrt.f64 (-.f64 (fma.f64 2 (*.f64 C (*.f64 F (*.f64 B B))) (fma.f64 2 (*.f64 A (*.f64 F (*.f64 B B))) (*.f64 10 (*.f64 A (*.f64 C (*.f64 F B)))))) (fma.f64 2 (*.f64 F (pow.f64 B 3)) (*.f64 (*.f64 F B) (+.f64 (*.f64 A A) (*.f64 C C))))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
55.5b
(neg.f64 (*.f64 (sqrt.f64 (*.f64 -1/2 (/.f64 F C))) (sqrt.f64 2)))
57.2b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (*.f64 2 (*.f64 F (-.f64 (*.f64 2 A) (*.f64 1/2 (/.f64 (pow.f64 B 2) C)))))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
50.8b
(*.f64 -1 (/.f64 (sqrt.f64 (*.f64 2 (*.f64 F (+.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))))) B))
59.5b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 2 (*.f64 F (pow.f64 B 3))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
55.6b
(/.f64 (neg.f64 (fma.f64 (sqrt.f64 (*.f64 -8 (*.f64 A F))) (*.f64 C (sqrt.f64 2)) (/.f64 (*.f64 F (*.f64 (sqrt.f64 2) (*.f64 B B))) (sqrt.f64 (*.f64 -8 (*.f64 A F)))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
54.5b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (*.f64 2 (*.f64 F (*.f64 2 C)))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
62.1b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 -2 (*.f64 F (pow.f64 B 3))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
48.8b
(*.f64 -1 (/.f64 (*.f64 (sqrt.f64 (*.f64 (+.f64 C (hypot.f64 B C)) F)) (sqrt.f64 2)) (exp.f64 (log.f64 (hypot.f64 (sqrt.f64 (*.f64 A (*.f64 C -4))) B)))))
59.1b
(*.f64 -1 (/.f64 (sqrt.f64 (*.f64 2 (*.f64 F (-.f64 (*.f64 2 A) (*.f64 1/2 (/.f64 (*.f64 B B) C)))))) (sqrt.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)))))
63.1b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (*.f64 2 (*.f64 F (log.f64 (*.f64 (exp.f64 (+.f64 A C)) (exp.f64 (hypot.f64 B (-.f64 A C)))))))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
59.4b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 -16 (*.f64 (pow.f64 A 2) (*.f64 C F))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
Compiler

Compiled 8996 to 5100 computations (43.3% saved)

localize17.0ms (0%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.2b
(fma.f64 A (*.f64 C -4) (*.f64 B B))
0.3b
(*.f64 (*.f64 (sqrt.f64 (+.f64 C (hypot.f64 B C))) (sqrt.f64 F)) (sqrt.f64 2))
1.5b
(+.f64 C (hypot.f64 B C))
20.4b
(sqrt.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)))

series203.0ms (0.6%)

Counts
1 → 8
Calls

1 calls:

202.0ms
(*.f64 (*.f64 (sqrt.f64 (+.f64 C (hypot.f64 B C))) (sqrt.f64 F)) (sqrt.f64 2))

rewrite11.0ms (0%)

Algorithm
rewrite-expression-head
Rules
pow1_binary64
pow-prod-down_binary64
associate-*r*_binary64
add-sqr-sqrt_binary64
add-cbrt-cube_binary64
Counts
1 → 29
Calls

1 calls:

9.0ms
(*.f64 (*.f64 (sqrt.f64 (+.f64 C (hypot.f64 B C))) (sqrt.f64 F)) (sqrt.f64 2))

simplify59.0ms (0.2%)

Algorithm
egg-herbie
Rules
368×*-commutative_binary64
353×distribute-rgt-in_binary64
350×distribute-lft-in_binary64
311×cancel-sign-sub-inv_binary64
292×fma-def_binary64
Counts
37 → 58
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01431009
1357971
21137941
32866933
45047933

prune187.0ms (0.5%)

Pruning

38 alts after pruning (38 fresh and 0 done)

PrunedKeptTotal
New1599168
Fresh32932
Picked101
Done000
Total16338201
Error
7.8b
Counts
201 → 38
Alt Table
StatusErrorProgram
61.8b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (*.f64 2 (*.f64 F (neg.f64 B)))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
57.0b
(*.f64 -1 (/.f64 (sqrt.f64 (*.f64 2 (*.f64 F (-.f64 (*.f64 2 C) (*.f64 1/2 (/.f64 (*.f64 B B) A)))))) (sqrt.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)))))
49.4b
(*.f64 -1 (/.f64 (*.f64 (*.f64 (sqrt.f64 (+.f64 C (hypot.f64 B C))) (sqrt.f64 F)) (sqrt.f64 2)) (neg.f64 B)))
59.1b
(*.f64 -1 (/.f64 (sqrt.f64 (*.f64 2 (*.f64 F (-.f64 (*.f64 2 A) (*.f64 1/2 (/.f64 (*.f64 B B) C)))))) (sqrt.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)))))
43.4b
(*.f64 -1 (/.f64 (*.f64 (*.f64 (sqrt.f64 (+.f64 C (hypot.f64 B C))) (sqrt.f64 F)) (sqrt.f64 2)) (exp.f64 (log.f64 (hypot.f64 (sqrt.f64 (*.f64 A (*.f64 C -4))) B)))))
41.7b
(*.f64 -1 (/.f64 (*.f64 (*.f64 (sqrt.f64 (+.f64 C (hypot.f64 B C))) (sqrt.f64 F)) (sqrt.f64 2)) (*.f64 (sqrt.f64 (hypot.f64 (sqrt.f64 (*.f64 A (*.f64 C -4))) B)) (sqrt.f64 (hypot.f64 (sqrt.f64 (*.f64 A (*.f64 C -4))) B)))))
50.8b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (*.f64 2 (*.f64 F (fma.f64 (*.f64 (cbrt.f64 (+.f64 A C)) (cbrt.f64 (+.f64 A C))) (cbrt.f64 (+.f64 A C)) (hypot.f64 B (-.f64 A C)))))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
60.1b
(/.f64 (neg.f64 (sqrt.f64 (-.f64 (+.f64 (*.f64 2 (*.f64 C (*.f64 F (pow.f64 B 2)))) (+.f64 (*.f64 2 (*.f64 A (*.f64 F (pow.f64 B 2)))) (+.f64 (*.f64 2 (*.f64 F (pow.f64 B 3))) (+.f64 (*.f64 (pow.f64 A 2) (*.f64 F B)) (*.f64 (pow.f64 C 2) (*.f64 F B)))))) (*.f64 10 (*.f64 A (*.f64 C (*.f64 F B))))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
54.9b
(cbrt.f64 (*.f64 (*.f64 (/.f64 (neg.f64 (sqrt.f64 (*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (*.f64 2 (*.f64 F (+.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))))))) (fma.f64 A (*.f64 C -4) (*.f64 B B))) (/.f64 (neg.f64 (sqrt.f64 (*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (*.f64 2 (*.f64 F (+.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))) (/.f64 (neg.f64 (sqrt.f64 (*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (*.f64 2 (*.f64 F (+.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))))
50.6b
(/.f64 (sqrt.f64 (sqrt.f64 (*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (*.f64 2 (*.f64 F (+.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))))))) (/.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (neg.f64 (sqrt.f64 (sqrt.f64 (*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (*.f64 2 (*.f64 F (+.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))))))))))
51.4b
(*.f64 -1 (/.f64 (*.f64 (sqrt.f64 (*.f64 (+.f64 C (hypot.f64 B C)) F)) (sqrt.f64 2)) B))
55.2b
(*.f64 -1 (/.f64 (sqrt.f64 (*.f64 2 (*.f64 F (/.f64 (-.f64 (*.f64 (+.f64 A C) (+.f64 A C)) (*.f64 (hypot.f64 B (-.f64 A C)) (hypot.f64 B (-.f64 A C)))) (-.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C))))))) (sqrt.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)))))
44.8b
(*.f64 -1 (/.f64 (*.f64 (*.f64 (sqrt.f64 (+.f64 C (hypot.f64 B C))) (sqrt.f64 F)) (sqrt.f64 2)) (*.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)))))))
54.1b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (*.f64 2 (*.f64 (-.f64 (pow.f64 B 2) (*.f64 (*.f64 4 A) C)) F)) (+.f64 (+.f64 A C) (sqrt.f64 (+.f64 (pow.f64 (-.f64 A C) 2) (pow.f64 B 2))))))) (-.f64 (pow.f64 B 2) (*.f64 (*.f64 4 A) C)))
44.7b
(*.f64 -1 (/.f64 (*.f64 (sqrt.f64 (+.f64 C (hypot.f64 B C))) (*.f64 (sqrt.f64 F) (sqrt.f64 2))) (sqrt.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)))))
54.7b
(neg.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 -1/2 (/.f64 F A)))))
48.4b
(*.f64 -1 (/.f64 (*.f64 (*.f64 (sqrt.f64 (+.f64 C (hypot.f64 B C))) (sqrt.f64 F)) (sqrt.f64 2)) B))
44.7b
(*.f64 -1 (/.f64 (*.f64 (*.f64 (*.f64 (sqrt.f64 (+.f64 C (hypot.f64 B C))) (sqrt.f64 F)) (sqrt.f64 (sqrt.f64 2))) (sqrt.f64 (sqrt.f64 2))) (sqrt.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)))))
50.6b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (*.f64 (cbrt.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B))) (cbrt.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)))) (*.f64 (cbrt.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B))) (*.f64 2 (*.f64 F (+.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C))))))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
53.7b
(*.f64 -1 (/.f64 (*.f64 (sqrt.f64 (*.f64 (+.f64 C (hypot.f64 B C)) F)) (sqrt.f64 2)) (neg.f64 B)))
56.6b
(/.f64 (neg.f64 (*.f64 A (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 -8 (*.f64 C F)))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
48.5b
(*.f64 -1 (/.f64 (*.f64 (*.f64 (sqrt.f64 (+.f64 C (hypot.f64 B C))) (sqrt.f64 F)) (sqrt.f64 2)) (-.f64 B (*.f64 2 (/.f64 (*.f64 A C) B)))))
53.6b
(*.f64 -1 (/.f64 (sqrt.f64 (*.f64 2 (*.f64 F (+.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))))) (neg.f64 B)))
58.6b
(neg.f64 (*.f64 (sqrt.f64 (*.f64 F (+.f64 A (sqrt.f64 (+.f64 (*.f64 A A) (*.f64 B B)))))) (/.f64 (sqrt.f64 2) B)))
57.9b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (*.f64 2 (*.f64 F (fma.f64 2 A (*.f64 1/2 (/.f64 (*.f64 B B) A)))))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
53.6b
(*.f64 -1 (/.f64 (*.f64 (*.f64 (sqrt.f64 (*.f64 C 2)) (sqrt.f64 F)) (sqrt.f64 2)) (sqrt.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)))))
59.7b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (*.f64 2 (*.f64 F B))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
62.5b
(/.f64 (neg.f64 (sqrt.f64 (-.f64 (fma.f64 2 (*.f64 C (*.f64 F (*.f64 B B))) (fma.f64 2 (*.f64 A (*.f64 F (*.f64 B B))) (*.f64 10 (*.f64 A (*.f64 C (*.f64 F B)))))) (fma.f64 2 (*.f64 F (pow.f64 B 3)) (*.f64 (*.f64 F B) (+.f64 (*.f64 A A) (*.f64 C C))))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
55.5b
(neg.f64 (*.f64 (sqrt.f64 (*.f64 -1/2 (/.f64 F C))) (sqrt.f64 2)))
57.2b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (*.f64 2 (*.f64 F (-.f64 (*.f64 2 A) (*.f64 1/2 (/.f64 (pow.f64 B 2) C)))))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
50.8b
(*.f64 -1 (/.f64 (sqrt.f64 (*.f64 2 (*.f64 F (+.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))))) B))
59.5b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 2 (*.f64 F (pow.f64 B 3))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
55.6b
(/.f64 (neg.f64 (fma.f64 (sqrt.f64 (*.f64 -8 (*.f64 A F))) (*.f64 C (sqrt.f64 2)) (/.f64 (*.f64 F (*.f64 (sqrt.f64 2) (*.f64 B B))) (sqrt.f64 (*.f64 -8 (*.f64 A F)))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
54.5b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (*.f64 2 (*.f64 F (*.f64 2 C)))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
62.1b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 -2 (*.f64 F (pow.f64 B 3))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
63.1b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (*.f64 2 (*.f64 F (log.f64 (*.f64 (exp.f64 (+.f64 A C)) (exp.f64 (hypot.f64 B (-.f64 A C)))))))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
42.0b
(*.f64 -1 (/.f64 (*.f64 (*.f64 (sqrt.f64 (+.f64 C (hypot.f64 B C))) (sqrt.f64 F)) (sqrt.f64 2)) (*.f64 (*.f64 (cbrt.f64 (hypot.f64 (sqrt.f64 (*.f64 A (*.f64 C -4))) B)) (cbrt.f64 (hypot.f64 (sqrt.f64 (*.f64 A (*.f64 C -4))) B))) (cbrt.f64 (hypot.f64 (sqrt.f64 (*.f64 A (*.f64 C -4))) B)))))
59.4b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 -16 (*.f64 (pow.f64 A 2) (*.f64 C F))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
Compiler

Compiled 6927 to 3843 computations (44.5% saved)

regimes4.6s (12.6%)

Accuracy

Total 25.6b remaining (72.8%)

Threshold costs 0b (0%)

Counts
230 → 5
Compiler

Compiled 58530 to 36177 computations (38.2% saved)

bsearch763.0ms (2.1%)

Steps
ItersRangePoint
6
7.35257931601469e+96
4.888433981408039e+97
8.87383987340921e+96
9
2.2872528385738317e-159
4.64585637503025e-151
3.1016763674985758e-152
7
1.7845640036940609e-208
9.830755338581716e-207
3.7629617721837925e-208
9
-2.2087195814052107e-151
-1.0031712438063459e-159
-2.1674256738196374e-151
Compiler

Compiled 5 to 4 computations (20% saved)

simplify9.0ms (0%)

Algorithm
egg-herbie
Rules
30×*-commutative_binary64
20×+-commutative_binary64
19×sub-neg_binary64
19×neg-sub0_binary64
16×neg-mul-1_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
059168
194168
2127168
3159168
4188168
5201168
6209168
7212168
8212168

end682.0ms (1.9%)

Compiler

Compiled 1569 to 1003 computations (36.1% saved)

Profiling

Loading profile data...