Details

Time bar (total: 35.9s)

analyze3.3s (9.1%)

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.5s (18.1%)

Results
1.5s5718×body128valid
825.0ms702×body2048valid
812.0ms861×body1024invalid
799.0ms895×body1024valid
706.0ms2978×body128invalid
668.0ms598×body2048invalid
404.0ms580×body512invalid
402.0ms604×body512valid
157.0ms337×body256valid
145.0ms337×body256invalid
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
47.3b
Counts
3 → 2
Alt Table
StatusErrorProgram
51.8b
(/.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)))
47.3b
(/.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
0.7b
(+.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))
3.5b
(*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (*.f64 2 (*.f64 F (+.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C))))))
13.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)))))))
19.3b
(/.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.0s (44.5%)

Counts
4 → 124
Calls

4 calls:

8.3s
(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.4s
(/.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)))
195.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))))))
57.0ms
(+.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))

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

9.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))))))
8.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)))))))
5.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)))
5.0ms
(+.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))

simplify417.0ms (1.2%)

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.0s (2.8%)

Pruning

25 alts after pruning (25 fresh and 0 done)

PrunedKeptTotal
New33625361
Fresh101
Picked101
Done000
Total33825363
Error
21.6b
Counts
363 → 25
Alt Table
StatusErrorProgram
47.3b
(*.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)))))))) (/.f64 1 (fma.f64 A (*.f64 C -4) (*.f64 B B))))
59.1b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 2 (*.f64 F (pow.f64 B 3))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
57.0b
(/.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)))
57.2b
(neg.f64 (*.f64 (sqrt.f64 (*.f64 F (+.f64 A (sqrt.f64 (+.f64 (*.f64 A A) (*.f64 B B)))))) (/.f64 (sqrt.f64 2) B)))
47.7b
(/.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.3b
(/.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)))
56.8b
(/.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)))
52.4b
(neg.f64 (*.f64 (sqrt.f64 (*.f64 -1/2 (/.f64 F C))) (sqrt.f64 2)))
59.0b
(/.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)))
59.0b
(/.f64 (neg.f64 (sqrt.f64 (-.f64 (fma.f64 4 (/.f64 (*.f64 (*.f64 C C) (*.f64 F (*.f64 B B))) A) (*.f64 8 (*.f64 C (*.f64 F (*.f64 B B))))) (+.f64 (/.f64 (*.f64 F (pow.f64 B 4)) A) (*.f64 16 (*.f64 A (*.f64 (*.f64 C C) F))))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
57.2b
(/.f64 (neg.f64 (fma.f64 A (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 -8 (*.f64 C F)))) (/.f64 (*.f64 F (*.f64 (sqrt.f64 2) (*.f64 B B))) (sqrt.f64 (*.f64 -8 (*.f64 C F)))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
45.3b
(*.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.4b
(/.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)))
58.3b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 -16 (*.f64 A (*.f64 (pow.f64 C 2) F))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
53.8b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (*.f64 2 (*.f64 F (*.f64 2 A)))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
58.1b
(/.f64 (neg.f64 (*.f64 (sqrt.f64 (*.f64 F (+.f64 C (sqrt.f64 (+.f64 (pow.f64 C 2) (pow.f64 B 2)))))) (*.f64 (sqrt.f64 2) B))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
47.2b
(/.f64 -1 (/.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (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)))))))))
61.4b
(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))))))
57.7b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (*.f64 2 (*.f64 F (+.f64 (pow.f64 (+.f64 A C) 3) (pow.f64 (hypot.f64 B (-.f64 A C)) 3))))))) (*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (sqrt.f64 (fma.f64 (+.f64 A C) (+.f64 A C) (*.f64 (hypot.f64 B (-.f64 A C)) (-.f64 (hypot.f64 B (-.f64 A C)) (+.f64 A C)))))))
47.3b
(*.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 (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))))))))) (fma.f64 A (*.f64 C -4) (*.f64 B B))))
61.8b
(/.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)))
56.2b
(neg.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 -1/2 (/.f64 F A)))))
61.1b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 -2 (*.f64 F (pow.f64 B 3))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
52.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)))
58.1b
(/.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 61674 to 33784 computations (45.2% saved)

localize15.0ms (0%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.2b
(fma.f64 A (*.f64 C -4) (*.f64 B B))
0.7b
(+.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))
10.9b
(sqrt.f64 (*.f64 2 (*.f64 F (+.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C))))))
17.1b
(sqrt.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)))

series1.0s (2.9%)

Counts
3 → 76
Calls

3 calls:

979.0ms
(sqrt.f64 (*.f64 2 (*.f64 F (+.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C))))))
43.0ms
(sqrt.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)))
9.0ms
(fma.f64 A (*.f64 C -4) (*.f64 B B))

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

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

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

prune336.0ms (0.9%)

Pruning

33 alts after pruning (33 fresh and 0 done)

PrunedKeptTotal
New18911200
Fresh22224
Picked101
Done000
Total19233225
Error
13.9b
Counts
225 → 33
Alt Table
StatusErrorProgram
61.1b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 -2 (*.f64 F (pow.f64 B 3))))) (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))
47.3b
(*.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)))))))) (/.f64 1 (fma.f64 A (*.f64 C -4) (*.f64 B B))))
59.1b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 2 (*.f64 F (pow.f64 B 3))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
57.0b
(/.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)))
57.2b
(neg.f64 (*.f64 (sqrt.f64 (*.f64 F (+.f64 A (sqrt.f64 (+.f64 (*.f64 A A) (*.f64 B B)))))) (/.f64 (sqrt.f64 2) B)))
58.3b
(*.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)))))
55.6b
(*.f64 -1 (/.f64 (*.f64 (sqrt.f64 (*.f64 A F)) (pow.f64 (sqrt.f64 2) 2)) (sqrt.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)))))
60.3b
(/.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)))
45.4b
(*.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)))))))
47.7b
(/.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)))
50.6b
(*.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)))))
56.8b
(/.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)))
52.4b
(neg.f64 (*.f64 (sqrt.f64 (*.f64 -1/2 (/.f64 F C))) (sqrt.f64 2)))
59.0b
(/.f64 (neg.f64 (sqrt.f64 (-.f64 (fma.f64 4 (/.f64 (*.f64 (*.f64 C C) (*.f64 F (*.f64 B B))) A) (*.f64 8 (*.f64 C (*.f64 F (*.f64 B B))))) (+.f64 (/.f64 (*.f64 F (pow.f64 B 4)) A) (*.f64 16 (*.f64 A (*.f64 (*.f64 C C) F))))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
46.7b
(*.f64 -1 (/.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 F (+.f64 A (hypot.f64 B A))))) (sqrt.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)))))
59.0b
(/.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)))
57.2b
(/.f64 (neg.f64 (fma.f64 A (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 -8 (*.f64 C F)))) (/.f64 (*.f64 F (*.f64 (sqrt.f64 2) (*.f64 B B))) (sqrt.f64 (*.f64 -8 (*.f64 C F)))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
52.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)))
43.9b
(*.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)))))
55.4b
(/.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)))
45.3b
(*.f64 -1 (/.f64 (sqrt.f64 (*.f64 2 (*.f64 F (+.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))))) (*.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)))))))
55.4b
(*.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)))))
58.3b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 -16 (*.f64 A (*.f64 (pow.f64 C 2) F))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
57.4b
(*.f64 -1 (/.f64 (*.f64 (sqrt.f64 (*.f64 C F)) (pow.f64 (sqrt.f64 2) 2)) (sqrt.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)))))
58.1b
(/.f64 (neg.f64 (*.f64 (sqrt.f64 (*.f64 F (+.f64 C (sqrt.f64 (+.f64 (pow.f64 C 2) (pow.f64 B 2)))))) (*.f64 (sqrt.f64 2) B))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
58.1b
(/.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.2b
(*.f64 -1 (/.f64 (sqrt.f64 (*.f64 2 (*.f64 F (+.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))))) (neg.f64 B)))
57.7b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (*.f64 2 (*.f64 F (+.f64 (pow.f64 (+.f64 A C) 3) (pow.f64 (hypot.f64 B (-.f64 A C)) 3))))))) (*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (sqrt.f64 (fma.f64 (+.f64 A C) (+.f64 A C) (*.f64 (hypot.f64 B (-.f64 A C)) (-.f64 (hypot.f64 B (-.f64 A C)) (+.f64 A C)))))))
47.3b
(*.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 (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))))))))) (fma.f64 A (*.f64 C -4) (*.f64 B B))))
61.8b
(/.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)))
56.2b
(neg.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 -1/2 (/.f64 F A)))))
61.4b
(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))))))
Compiler

Compiled 15007 to 8686 computations (42.1% saved)

localize18.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.3b
(*.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)))
0.7b
(+.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))
10.1b
(sqrt.f64 (*.f64 A (*.f64 C -4)))
10.9b
(sqrt.f64 (*.f64 2 (*.f64 F (+.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C))))))

series120.0ms (0.3%)

Counts
2 → 14
Calls

2 calls:

102.0ms
(*.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)))
18.0ms
(sqrt.f64 (*.f64 A (*.f64 C -4)))

rewrite13.0ms (0%)

Algorithm
rewrite-expression-head
Rules
26×add-sqr-sqrt_binary64
23×pow1_binary64
19×sqrt-prod_binary64
11×sqrt-pow1_binary64
10×*-un-lft-identity_binary64
Counts
2 → 67
Calls

2 calls:

5.0ms
(*.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)))
2.0ms
(sqrt.f64 (*.f64 A (*.f64 C -4)))

simplify84.0ms (0.2%)

Algorithm
egg-herbie
Rules
767×fma-def_binary64
542×times-frac_binary64
416×fma-neg_binary64
389×associate-*r*_binary64
366×associate-*l*_binary64
Counts
81 → 105
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01101605
12311417
26771333
338471293
449871293
549691293

prune396.0ms (1.1%)

Pruning

37 alts after pruning (37 fresh and 0 done)

PrunedKeptTotal
New2585263
Fresh03232
Picked101
Done000
Total25937296
Error
13.8b
Counts
296 → 37
Alt Table
StatusErrorProgram
61.1b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 -2 (*.f64 F (pow.f64 B 3))))) (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))
47.3b
(*.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)))))))) (/.f64 1 (fma.f64 A (*.f64 C -4) (*.f64 B B))))
59.1b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 2 (*.f64 F (pow.f64 B 3))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
57.0b
(/.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)))
57.2b
(neg.f64 (*.f64 (sqrt.f64 (*.f64 F (+.f64 A (sqrt.f64 (+.f64 (*.f64 A A) (*.f64 B B)))))) (/.f64 (sqrt.f64 2) B)))
44.1b
(*.f64 -1 (/.f64 (sqrt.f64 (*.f64 2 (*.f64 F (+.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))))) (*.f64 (*.f64 (sqrt.f64 (hypot.f64 (sqrt.f64 (*.f64 A (*.f64 C -4))) B)) (*.f64 (cbrt.f64 (sqrt.f64 (hypot.f64 (sqrt.f64 (*.f64 A (*.f64 C -4))) B))) (cbrt.f64 (sqrt.f64 (hypot.f64 (sqrt.f64 (*.f64 A (*.f64 C -4))) B))))) (cbrt.f64 (sqrt.f64 (hypot.f64 (sqrt.f64 (*.f64 A (*.f64 C -4))) B))))))
58.3b
(*.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)))))
55.6b
(*.f64 -1 (/.f64 (*.f64 (sqrt.f64 (*.f64 A F)) (pow.f64 (sqrt.f64 2) 2)) (sqrt.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)))))
60.3b
(/.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)))
45.4b
(*.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)))))))
47.7b
(/.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)))
50.6b
(*.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)))))
56.8b
(/.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)))
52.4b
(neg.f64 (*.f64 (sqrt.f64 (*.f64 -1/2 (/.f64 F C))) (sqrt.f64 2)))
59.0b
(/.f64 (neg.f64 (sqrt.f64 (-.f64 (fma.f64 4 (/.f64 (*.f64 (*.f64 C C) (*.f64 F (*.f64 B B))) A) (*.f64 8 (*.f64 C (*.f64 F (*.f64 B B))))) (+.f64 (/.f64 (*.f64 F (pow.f64 B 4)) A) (*.f64 16 (*.f64 A (*.f64 (*.f64 C C) F))))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
46.7b
(*.f64 -1 (/.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 F (+.f64 A (hypot.f64 B A))))) (sqrt.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)))))
59.0b
(/.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)))
57.2b
(/.f64 (neg.f64 (fma.f64 A (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 -8 (*.f64 C F)))) (/.f64 (*.f64 F (*.f64 (sqrt.f64 2) (*.f64 B B))) (sqrt.f64 (*.f64 -8 (*.f64 C F)))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
48.5b
(*.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))) (*.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)))))
52.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)))
55.4b
(/.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)))
45.3b
(*.f64 -1 (/.f64 (sqrt.f64 (*.f64 2 (*.f64 F (+.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))))) (*.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)))))))
55.4b
(*.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)))))
58.3b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 -16 (*.f64 A (*.f64 (pow.f64 C 2) F))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
57.4b
(*.f64 -1 (/.f64 (*.f64 (sqrt.f64 (*.f64 C F)) (pow.f64 (sqrt.f64 2) 2)) (sqrt.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)))))
58.1b
(/.f64 (neg.f64 (*.f64 (sqrt.f64 (*.f64 F (+.f64 C (sqrt.f64 (+.f64 (pow.f64 C 2) (pow.f64 B 2)))))) (*.f64 (sqrt.f64 2) B))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
58.1b
(/.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.2b
(*.f64 -1 (/.f64 (sqrt.f64 (*.f64 2 (*.f64 F (+.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))))) (neg.f64 B)))
57.7b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (*.f64 2 (*.f64 F (+.f64 (pow.f64 (+.f64 A C) 3) (pow.f64 (hypot.f64 B (-.f64 A C)) 3))))))) (*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (sqrt.f64 (fma.f64 (+.f64 A C) (+.f64 A C) (*.f64 (hypot.f64 B (-.f64 A C)) (-.f64 (hypot.f64 B (-.f64 A C)) (+.f64 A C)))))))
47.3b
(*.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 (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))))))))) (fma.f64 A (*.f64 C -4) (*.f64 B B))))
61.8b
(/.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)))
56.2b
(neg.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 -1/2 (/.f64 F A)))))
48.9b
(*.f64 -1 (/.f64 (cbrt.f64 (pow.f64 (sqrt.f64 (*.f64 2 (*.f64 F (+.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))))) 3)) (*.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)))))
57.9b
(*.f64 -1 (/.f64 (*.f64 (sqrt.f64 (*.f64 C F)) (pow.f64 (sqrt.f64 2) 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)))))
59.8b
(*.f64 -1 (/.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 F (+.f64 A (+.f64 C (sqrt.f64 (fma.f64 A A (*.f64 C (-.f64 C (*.f64 2 A)))))))))) (*.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)))))
61.4b
(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))))))
Compiler

Compiled 19840 to 12040 computations (39.3% saved)

localize24.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.3b
(cbrt.f64 (sqrt.f64 (hypot.f64 (sqrt.f64 (*.f64 A (*.f64 C -4))) B)))
0.7b
(+.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))
10.1b
(sqrt.f64 (*.f64 A (*.f64 C -4)))
10.9b
(sqrt.f64 (*.f64 2 (*.f64 F (+.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C))))))

series252.0ms (0.7%)

Counts
1 → 14
Calls

1 calls:

252.0ms
(cbrt.f64 (sqrt.f64 (hypot.f64 (sqrt.f64 (*.f64 A (*.f64 C -4))) B)))

rewrite2.0ms (0%)

Algorithm
rewrite-expression-head
Rules
cbrt-prod_binary64
*-un-lft-identity_binary64
sqrt-prod_binary64
add-sqr-sqrt_binary64
add-cube-cbrt_binary64
Counts
1 → 16
Calls

1 calls:

1.0ms
(cbrt.f64 (sqrt.f64 (hypot.f64 (sqrt.f64 (*.f64 A (*.f64 C -4))) B)))

simplify79.0ms (0.2%)

Algorithm
egg-herbie
Rules
536×unswap-sqr_binary64
535×fma-neg_binary64
499×associate-*r*_binary64
451×associate-*l*_binary64
441×distribute-rgt-neg-in_binary64
Counts
30 → 48
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
0111980
1263940
2691906
32856902
44913902
55064902

prune738.0ms (2.1%)

Pruning

36 alts after pruning (36 fresh and 0 done)

PrunedKeptTotal
New3593362
Fresh33336
Picked101
Done000
Total36336399
Error
13.8b
Counts
399 → 36
Alt Table
StatusErrorProgram
61.1b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 -2 (*.f64 F (pow.f64 B 3))))) (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))
47.3b
(*.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)))))))) (/.f64 1 (fma.f64 A (*.f64 C -4) (*.f64 B B))))
59.1b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 2 (*.f64 F (pow.f64 B 3))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
48.9b
(*.f64 -1 (/.f64 (cbrt.f64 (pow.f64 (sqrt.f64 (*.f64 2 (*.f64 F (+.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))))) 3)) (*.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)))))
56.1b
(*.f64 -1 (/.f64 (*.f64 (sqrt.f64 (*.f64 A F)) (pow.f64 (sqrt.f64 2) 2)) (*.f64 (*.f64 (sqrt.f64 (hypot.f64 (sqrt.f64 (*.f64 A (*.f64 C -4))) B)) (*.f64 (cbrt.f64 (sqrt.f64 (hypot.f64 (sqrt.f64 (*.f64 A (*.f64 C -4))) B))) (cbrt.f64 (sqrt.f64 (hypot.f64 (sqrt.f64 (*.f64 A (*.f64 C -4))) B))))) (cbrt.f64 (sqrt.f64 (hypot.f64 (sqrt.f64 (*.f64 A (*.f64 C -4))) B))))))
57.0b
(/.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)))
57.2b
(neg.f64 (*.f64 (sqrt.f64 (*.f64 F (+.f64 A (sqrt.f64 (+.f64 (*.f64 A A) (*.f64 B B)))))) (/.f64 (sqrt.f64 2) B)))
58.3b
(*.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)))))
55.6b
(*.f64 -1 (/.f64 (*.f64 (sqrt.f64 (*.f64 A F)) (pow.f64 (sqrt.f64 2) 2)) (sqrt.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)))))
60.3b
(/.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)))
45.4b
(*.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)))))))
47.7b
(/.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)))
50.6b
(*.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)))))
56.8b
(/.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)))
52.4b
(neg.f64 (*.f64 (sqrt.f64 (*.f64 -1/2 (/.f64 F C))) (sqrt.f64 2)))
59.0b
(/.f64 (neg.f64 (sqrt.f64 (-.f64 (fma.f64 4 (/.f64 (*.f64 (*.f64 C C) (*.f64 F (*.f64 B B))) A) (*.f64 8 (*.f64 C (*.f64 F (*.f64 B B))))) (+.f64 (/.f64 (*.f64 F (pow.f64 B 4)) A) (*.f64 16 (*.f64 A (*.f64 (*.f64 C C) F))))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
57.2b
(/.f64 (neg.f64 (fma.f64 A (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 -8 (*.f64 C F)))) (/.f64 (*.f64 F (*.f64 (sqrt.f64 2) (*.f64 B B))) (sqrt.f64 (*.f64 -8 (*.f64 C F)))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
48.5b
(*.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))) (*.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)))))
52.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)))
55.4b
(/.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)))
45.3b
(*.f64 -1 (/.f64 (sqrt.f64 (*.f64 2 (*.f64 F (+.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))))) (*.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)))))))
55.4b
(*.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)))))
58.3b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 -16 (*.f64 A (*.f64 (pow.f64 C 2) F))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
57.4b
(*.f64 -1 (/.f64 (*.f64 (sqrt.f64 (*.f64 C F)) (pow.f64 (sqrt.f64 2) 2)) (sqrt.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)))))
58.1b
(/.f64 (neg.f64 (*.f64 (sqrt.f64 (*.f64 F (+.f64 C (sqrt.f64 (+.f64 (pow.f64 C 2) (pow.f64 B 2)))))) (*.f64 (sqrt.f64 2) B))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
57.9b
(*.f64 -1 (/.f64 (*.f64 (sqrt.f64 (*.f64 C F)) (pow.f64 (sqrt.f64 2) 2)) (*.f64 (*.f64 (sqrt.f64 (hypot.f64 (sqrt.f64 (*.f64 A (*.f64 C -4))) B)) (*.f64 (cbrt.f64 (sqrt.f64 (hypot.f64 (sqrt.f64 (*.f64 A (*.f64 C -4))) B))) (cbrt.f64 (sqrt.f64 (hypot.f64 (sqrt.f64 (*.f64 A (*.f64 C -4))) B))))) (cbrt.f64 (sqrt.f64 (hypot.f64 (sqrt.f64 (*.f64 A (*.f64 C -4))) B))))))
58.1b
(/.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.2b
(*.f64 -1 (/.f64 (sqrt.f64 (*.f64 2 (*.f64 F (+.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))))) (neg.f64 B)))
57.7b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (*.f64 2 (*.f64 F (+.f64 (pow.f64 (+.f64 A C) 3) (pow.f64 (hypot.f64 B (-.f64 A C)) 3))))))) (*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (sqrt.f64 (fma.f64 (+.f64 A C) (+.f64 A C) (*.f64 (hypot.f64 B (-.f64 A C)) (-.f64 (hypot.f64 B (-.f64 A C)) (+.f64 A C)))))))
47.3b
(*.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 (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))))))))) (fma.f64 A (*.f64 C -4) (*.f64 B B))))
61.8b
(/.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)))
56.5b
(*.f64 -1 (/.f64 (sqrt.f64 (*.f64 2 (*.f64 F B))) (*.f64 (*.f64 (sqrt.f64 (hypot.f64 (sqrt.f64 (*.f64 A (*.f64 C -4))) B)) (*.f64 (cbrt.f64 (sqrt.f64 (hypot.f64 (sqrt.f64 (*.f64 A (*.f64 C -4))) B))) (cbrt.f64 (sqrt.f64 (hypot.f64 (sqrt.f64 (*.f64 A (*.f64 C -4))) B))))) (cbrt.f64 (sqrt.f64 (hypot.f64 (sqrt.f64 (*.f64 A (*.f64 C -4))) B))))))
56.2b
(neg.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 -1/2 (/.f64 F A)))))
57.9b
(*.f64 -1 (/.f64 (*.f64 (sqrt.f64 (*.f64 C F)) (pow.f64 (sqrt.f64 2) 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)))))
61.4b
(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))))))
Compiler

Compiled 32423 to 20772 computations (35.9% saved)

regimes4.1s (11.5%)

Accuracy

Total 26.0b remaining (61.8%)

Threshold costs 0b (0%)

Counts
210 → 6
Compiler

Compiled 61157 to 38553 computations (37% saved)

bsearch590.0ms (1.6%)

Steps
ItersRangePoint
7
5.564714352415159e+152
1.2241584666825242e+155
1.5281556949108983e+153
5
9.518137252297709e-117
2.2981855726167303e-116
2.116237083777588e-116
10
-3.910669829016136e-24
-6.397618016122035e-34
-3.262389646343389e-33
6
-9.943154998055778e+32
-1.8306339176123615e+32
-3.402280393262435e+32
9
-3.1319364677254346e+104
-1.2679296176760101e+98
-8.822223828748478e+98
Compiler

Compiled 5 to 4 computations (20% saved)

simplify9.0ms (0%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
075244
1123244
2162244
3187244
4201244
5204244
6203244

end679.0ms (1.9%)

Compiler

Compiled 1707 to 1109 computations (35% saved)

Profiling

Loading profile data...