Details

Time bar (total: 2.5min)

analyze3.4s (2.2%)

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)

sample177.0ms (0.1%)

Algorithm
intervals
Results
30.0ms174×body128valid
23.0ms30×body1024nan
22.0ms32×body1024valid
21.0ms19×body2048valid
17.0ms21×body2048nan
17.0ms79×body128nan
9.0ms18×body512valid
8.0ms15×body512nan
5.0ms13×body256valid
5.0ms14×body256nan
Compiler

Compiled 93 to 69 computations (25.8% saved)

simplify81.0ms (0.1%)

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
48.6b
Counts
3 → 2
Alt Table
StatusErrorProgram
52.5b
(/.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.6b
(/.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)

localize18.0ms (0%)

Local error

Found 4 expressions with local error:

NewErrorProgram
1.8b
(+.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))))))
17.1b
(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)))))))
18.9b
(/.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)))

series17.3s (11.5%)

Counts
4 → 124
Calls

4 calls:

9.6s
(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)))
223.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))))))
63.0ms
(+.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))

rewrite52.0ms (0%)

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 (+.f64 A C) (hypot.f64 B (-.f64 A C)))
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))))))
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)))

simplify416.0ms (0.3%)

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.3s (0.8%)

Pruning

26 alts after pruning (26 fresh and 0 done)

PrunedKeptTotal
New33526361
Fresh101
Picked101
Done000
Total33726363
Error
21.3b
Counts
363 → 26
Alt Table
StatusErrorProgram
48.7b
(/.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)))))))))
59.4b
(/.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)))
54.4b
(/.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)))
57.8b
(/.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)))
56.8b
(/.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)))
57.9b
(neg.f64 (*.f64 (sqrt.f64 (*.f64 (+.f64 (sqrt.f64 (+.f64 (*.f64 B B) (*.f64 C C))) C) F)) (/.f64 (sqrt.f64 2) B)))
55.2b
(/.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)))
56.8b
(/.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)))
56.1b
(/.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 (+.f64 (*.f64 (+.f64 A C) (+.f64 A C)) (-.f64 (*.f64 (hypot.f64 B (-.f64 A C)) (hypot.f64 B (-.f64 A C))) (*.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C))))))))
55.6b
(/.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 (sqrt.f64 (*.f64 -16 (*.f64 A (*.f64 (pow.f64 C 2) F))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
60.6b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 -2 (*.f64 F (pow.f64 B 3))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
54.1b
(neg.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 -1/2 (/.f64 F A)))))
47.9b
(*.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)))))
60.9b
(/.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))) (fma.f64 2 (*.f64 F (pow.f64 B 3)) (*.f64 (*.f64 F B) (+.f64 (*.f64 A A) (*.f64 C C)))))) (*.f64 10 (*.f64 A (*.f64 C (*.f64 F B))))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
58.0b
(/.f64 (neg.f64 (sqrt.f64 (-.f64 (fma.f64 4 (/.f64 (*.f64 (*.f64 A A) (*.f64 F (*.f64 B B))) C) (*.f64 8 (*.f64 A (*.f64 F (*.f64 B B))))) (fma.f64 16 (*.f64 (*.f64 A A) (*.f64 C F)) (/.f64 (*.f64 F (pow.f64 B 4)) C))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
55.3b
(/.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)))
48.7b
(*.f64 (sqrt.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))))))) (fma.f64 A (*.f64 C -4) (*.f64 B B))))
54.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)))
53.8b
(neg.f64 (*.f64 (sqrt.f64 (*.f64 -1/2 (/.f64 F C))) (sqrt.f64 2)))
54.7b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (*.f64 2 (*.f64 F (-.f64 (*.f64 2 C) (*.f64 1/2 (/.f64 (pow.f64 B 2) A)))))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
60.3b
(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.7b
(*.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))))
58.7b
(-.f64 (*.f64 1/2 (*.f64 (/.f64 (*.f64 A (*.f64 C (sqrt.f64 2))) B) (sqrt.f64 (/.f64 F (*.f64 (+.f64 (*.f64 A A) (*.f64 B B)) (+.f64 A (sqrt.f64 (+.f64 (*.f64 A A) (*.f64 B B))))))))) (fma.f64 1/2 (*.f64 (/.f64 (*.f64 C (sqrt.f64 2)) B) (sqrt.f64 (/.f64 F (+.f64 A (sqrt.f64 (+.f64 (*.f64 A A) (*.f64 B B))))))) (fma.f64 2 (*.f64 (/.f64 (*.f64 A (*.f64 C (sqrt.f64 2))) (pow.f64 B 3)) (sqrt.f64 (/.f64 (*.f64 F (+.f64 (*.f64 A A) (*.f64 B B))) (+.f64 A (sqrt.f64 (+.f64 (*.f64 A A) (*.f64 B B))))))) (fma.f64 (sqrt.f64 (*.f64 F (+.f64 A (sqrt.f64 (+.f64 (*.f64 A A) (*.f64 B B)))))) (/.f64 (sqrt.f64 2) B) (*.f64 2 (*.f64 (/.f64 (*.f64 (*.f64 A A) (*.f64 C (sqrt.f64 2))) (pow.f64 B 3)) (sqrt.f64 (/.f64 F (+.f64 A (sqrt.f64 (+.f64 (*.f64 A A) (*.f64 B B))))))))))))
60.4b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 2 (*.f64 F (pow.f64 B 3))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
57.9b
(/.f64 (neg.f64 (*.f64 (sqrt.f64 (*.f64 F (+.f64 A (sqrt.f64 (+.f64 (pow.f64 A 2) (pow.f64 B 2)))))) (*.f64 (sqrt.f64 2) B))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
Compiler

Compiled 61950 to 33914 computations (45.3% saved)

localize20.0ms (0%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.2b
(/.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))))
1.8b
(+.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))
10.2b
(sqrt.f64 (*.f64 2 (*.f64 F (+.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C))))))
16.9b
(sqrt.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)))

series6.2s (4.1%)

Counts
3 → 60
Calls

3 calls:

4.9s
(/.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))))
1.2s
(sqrt.f64 (*.f64 2 (*.f64 F (+.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C))))))
45.0ms
(sqrt.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)))

rewrite51.0ms (0%)

Algorithm
rewrite-expression-head
Rules
26×sqrt-prod_binary64
24×times-frac_binary64
22×add-sqr-sqrt_binary64
21×*-un-lft-identity_binary64
21×add-cube-cbrt_binary64
Counts
3 → 82
Calls

3 calls:

18.0ms
(/.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))))
15.0ms
(sqrt.f64 (*.f64 2 (*.f64 F (+.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C))))))
2.0ms
(sqrt.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)))

simplify453.0ms (0.3%)

Algorithm
egg-herbie
Rules
657×*-commutative_binary64
324×fma-def_binary64
297×associate-*r*_binary64
284×associate-+r+_binary64
170×associate-/l*_binary64
Counts
142 → 189
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0151926044
1520126044

prune1.2s (0.8%)

Pruning

28 alts after pruning (28 fresh and 0 done)

PrunedKeptTotal
New26011271
Fresh81725
Picked101
Done000
Total26928297
Error
14.4b
Counts
297 → 28
Alt Table
StatusErrorProgram
48.7b
(/.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)))))))))
59.4b
(/.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)))
54.4b
(/.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)))
57.8b
(/.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)))
56.8b
(/.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)))
55.2b
(*.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)))))
56.1b
(/.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 (+.f64 (*.f64 (+.f64 A C) (+.f64 A C)) (-.f64 (*.f64 (hypot.f64 B (-.f64 A C)) (hypot.f64 B (-.f64 A C))) (*.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C))))))))
57.8b
(*.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)))))
60.3b
(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))))))
54.0b
(*.f64 -1 (/.f64 (sqrt.f64 (*.f64 2 (*.f64 F (+.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))))) (neg.f64 B)))
54.1b
(neg.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 -1/2 (/.f64 F A)))))
48.0b
(*.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)))))
60.6b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 -2 (*.f64 F (pow.f64 B 3))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
49.2b
(*.f64 -1 (sqrt.f64 (/.f64 (*.f64 2 (*.f64 F (+.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))))
60.9b
(/.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))) (fma.f64 2 (*.f64 F (pow.f64 B 3)) (*.f64 (*.f64 F B) (+.f64 (*.f64 A A) (*.f64 C C)))))) (*.f64 10 (*.f64 A (*.f64 C (*.f64 F B))))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
59.0b
(*.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)))))
55.4b
(*.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)))))
53.5b
(*.f64 -1 (/.f64 (sqrt.f64 (*.f64 2 (*.f64 F (+.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))))) B))
58.0b
(/.f64 (neg.f64 (sqrt.f64 (-.f64 (fma.f64 4 (/.f64 (*.f64 (*.f64 A A) (*.f64 F (*.f64 B B))) C) (*.f64 8 (*.f64 A (*.f64 F (*.f64 B B))))) (fma.f64 16 (*.f64 (*.f64 A A) (*.f64 C F)) (/.f64 (*.f64 F (pow.f64 B 4)) C))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
55.3b
(/.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.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)))
53.8b
(neg.f64 (*.f64 (sqrt.f64 (*.f64 -1/2 (/.f64 F C))) (sqrt.f64 2)))
53.5b
(*.f64 -1 (/.f64 (-.f64 (fma.f64 1/2 (*.f64 (sqrt.f64 (/.f64 F (+.f64 (sqrt.f64 (+.f64 (*.f64 B B) (*.f64 C C))) C))) (*.f64 A (sqrt.f64 2))) (*.f64 (sqrt.f64 (*.f64 (+.f64 (sqrt.f64 (+.f64 (*.f64 B B) (*.f64 C C))) C) F)) (sqrt.f64 2))) (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 F (*.f64 (+.f64 (*.f64 B B) (*.f64 C C)) (+.f64 (sqrt.f64 (+.f64 (*.f64 B B) (*.f64 C C))) C)))) (*.f64 A (*.f64 C (sqrt.f64 2)))))) (sqrt.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)))))
55.2b
(/.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)))
48.7b
(*.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))))
60.4b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 2 (*.f64 F (pow.f64 B 3))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
52.3b
(*.f64 -1 (/.f64 (sqrt.f64 (*.f64 2 (*.f64 F (+.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))))) (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)))))))
54.5b
(*.f64 -1 (/.f64 (-.f64 (fma.f64 1/2 (*.f64 (*.f64 C (sqrt.f64 2)) (sqrt.f64 (/.f64 F (+.f64 A (sqrt.f64 (+.f64 (*.f64 A A) (*.f64 B B))))))) (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 F (+.f64 A (sqrt.f64 (+.f64 (*.f64 A A) (*.f64 B B)))))))) (*.f64 1/2 (*.f64 (*.f64 A (*.f64 C (sqrt.f64 2))) (sqrt.f64 (/.f64 F (*.f64 (+.f64 (*.f64 A A) (*.f64 B B)) (+.f64 A (sqrt.f64 (+.f64 (*.f64 A A) (*.f64 B B)))))))))) (sqrt.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)))))
Compiler

Compiled 40627 to 22895 computations (43.6% saved)

localize21.0ms (0%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.4b
(*.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)))))
1.8b
(+.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))
9.9b
(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))))))))
16.9b
(sqrt.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)))

series1.1s (0.7%)

Counts
2 → 56
Calls

2 calls:

1.1s
(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))))))))
53.0ms
(*.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)))))

rewrite47.0ms (0%)

Algorithm
rewrite-expression-head
Rules
54×*-un-lft-identity_binary64
39×sqrt-prod_binary64
32×sqrt-div_binary64
27×pow1_binary64
26×add-sqr-sqrt_binary64
Counts
2 → 96
Calls

2 calls:

18.0ms
(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))))))))
13.0ms
(*.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)))))

simplify153.0ms (0.1%)

Algorithm
egg-herbie
Rules
685×fma-def_binary64
267×associate-/r*_binary64
254×*-commutative_binary64
208×associate-/l*_binary64
183×times-frac_binary64
Counts
152 → 214
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
07169010
121937617
249757617

prune504.0ms (0.3%)

Pruning

32 alts after pruning (32 fresh and 0 done)

PrunedKeptTotal
New4069415
Fresh42327
Picked101
Done000
Total41132443
Error
14.4b
Counts
443 → 32
Alt Table
StatusErrorProgram
48.7b
(/.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)))))))))
59.4b
(/.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)))
54.2b
(*.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)))))))) (-.f64 (*.f64 2 (/.f64 (*.f64 A C) B)) B)))
54.4b
(/.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)))
57.8b
(/.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)))
56.8b
(/.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)))
55.2b
(*.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)))))
53.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.1b
(/.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 (+.f64 (*.f64 (+.f64 A C) (+.f64 A C)) (-.f64 (*.f64 (hypot.f64 B (-.f64 A C)) (hypot.f64 B (-.f64 A C))) (*.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C))))))))
51.9b
(*.f64 -1 (/.f64 (fma.f64 1/2 (*.f64 (sqrt.f64 (/.f64 F (+.f64 C (hypot.f64 B C)))) (*.f64 (sqrt.f64 2) A)) (fma.f64 (sqrt.f64 (*.f64 (+.f64 C (hypot.f64 B C)) F)) (sqrt.f64 2) (*.f64 (*.f64 (sqrt.f64 (/.f64 F (*.f64 (fma.f64 B B (*.f64 C C)) (+.f64 C (hypot.f64 B C))))) (*.f64 A (*.f64 C (sqrt.f64 2)))) -1/2))) (sqrt.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)))))
60.3b
(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))))))
54.0b
(*.f64 -1 (/.f64 (sqrt.f64 (*.f64 2 (*.f64 F (+.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))))) (neg.f64 B)))
60.6b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 -2 (*.f64 F (pow.f64 B 3))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
54.1b
(neg.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 -1/2 (/.f64 F A)))))
49.2b
(*.f64 -1 (sqrt.f64 (/.f64 (*.f64 2 (*.f64 F (+.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))))
58.3b
(*.f64 -1 (/.f64 (sqrt.f64 (*.f64 2 (*.f64 F (*.f64 (sqrt.f64 (+.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))) (sqrt.f64 B))))) (sqrt.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)))))
60.9b
(/.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))) (fma.f64 2 (*.f64 F (pow.f64 B 3)) (*.f64 (*.f64 F B) (+.f64 (*.f64 A A) (*.f64 C C)))))) (*.f64 10 (*.f64 A (*.f64 C (*.f64 F B))))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
60.9b
(*.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 2 A)))))) (sqrt.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)))))
59.0b
(*.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.4b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 2 (*.f64 F (pow.f64 B 3))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
58.8b
(*.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 2 C)))))) (sqrt.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)))))
58.0b
(/.f64 (neg.f64 (sqrt.f64 (-.f64 (fma.f64 4 (/.f64 (*.f64 (*.f64 A A) (*.f64 F (*.f64 B B))) C) (*.f64 8 (*.f64 A (*.f64 F (*.f64 B B))))) (fma.f64 16 (*.f64 (*.f64 A A) (*.f64 C F)) (/.f64 (*.f64 F (pow.f64 B 4)) C))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
55.3b
(/.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)))
53.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)))))))) B))
52.3b
(*.f64 -1 (/.f64 (sqrt.f64 (*.f64 2 (*.f64 F (+.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))))) (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)))))))
57.8b
(*.f64 -1 (/.f64 (sqrt.f64 (*.f64 2 (*.f64 F (fma.f64 2 A (*.f64 (/.f64 (*.f64 B B) C) -1/2))))) (sqrt.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)))))
54.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)))
53.8b
(neg.f64 (*.f64 (sqrt.f64 (*.f64 -1/2 (/.f64 F C))) (sqrt.f64 2)))
55.2b
(/.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)))
48.7b
(*.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))))
53.5b
(*.f64 -1 (/.f64 (sqrt.f64 (*.f64 2 (*.f64 F (+.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))))) B))
55.4b
(*.f64 -1 (/.f64 (sqrt.f64 (*.f64 2 (*.f64 F (fma.f64 2 C (*.f64 (/.f64 (*.f64 B B) A) -1/2))))) (sqrt.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)))))
Compiler

Compiled 29243 to 14311 computations (51.1% saved)

localize17.0ms (0%)

Local error

Found 4 expressions with local error:

NewErrorProgram
1.8b
(+.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))))))
17.1b
(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)))))))
18.5b
(/.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))))))))

series1.6min (64.7%)

Counts
1 → 20
Calls

1 calls:

1.6min
(/.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))))))))

rewrite13.0ms (0%)

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

1 calls:

9.0ms
(/.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))))))))

simplify188.0ms (0.1%)

Algorithm
egg-herbie
Rules
996×fma-def_binary64
460×*-commutative_binary64
229×associate-*r*_binary64
189×+-commutative_binary64
185×distribute-rgt-in_binary64
Counts
55 → 102
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0103716452
1344213557
2508013557

prune837.0ms (0.6%)

Pruning

35 alts after pruning (34 fresh and 1 done)

PrunedKeptTotal
New33110341
Fresh72431
Picked011
Done000
Total33835373
Error
14.3b
Counts
373 → 35
Alt Table
StatusErrorProgram
48.7b
(/.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)))))))))
59.4b
(/.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)))
54.2b
(*.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)))))))) (-.f64 (*.f64 2 (/.f64 (*.f64 A C) B)) B)))
54.4b
(/.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)))
57.8b
(/.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)))
60.5b
(/.f64 -1 (/.f64 (sqrt.f64 (*.f64 -4 (/.f64 (*.f64 A C) (*.f64 F (+.f64 A (+.f64 C (sqrt.f64 (-.f64 (+.f64 (pow.f64 A 2) (pow.f64 C 2)) (*.f64 2 (*.f64 A C)))))))))) (sqrt.f64 2)))
55.2b
(*.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)))))
53.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 -1 (/.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (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)))))))
61.4b
(/.f64 -1 (-.f64 (fma.f64 1/4 (fma.f64 (/.f64 A (*.f64 C C)) (/.f64 (*.f64 B B) (*.f64 F (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 -2 (/.f64 A F)))))) (/.f64 (*.f64 B B) (*.f64 C (*.f64 F (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 -2 (/.f64 A F)))))))) (/.f64 (sqrt.f64 (*.f64 -2 (/.f64 A F))) (sqrt.f64 2))) (*.f64 1/32 (/.f64 (pow.f64 B 4) (*.f64 (*.f64 C C) (*.f64 (*.f64 F F) (*.f64 (sqrt.f64 2) (pow.f64 (sqrt.f64 (*.f64 -2 (/.f64 A F))) 3))))))))
54.2b
(/.f64 -1 (/.f64 (sqrt.f64 (*.f64 -2 (/.f64 A F))) (sqrt.f64 2)))
51.9b
(*.f64 -1 (/.f64 (fma.f64 1/2 (*.f64 (sqrt.f64 (/.f64 F (+.f64 C (hypot.f64 B C)))) (*.f64 (sqrt.f64 2) A)) (fma.f64 (sqrt.f64 (*.f64 (+.f64 C (hypot.f64 B C)) F)) (sqrt.f64 2) (*.f64 (*.f64 (sqrt.f64 (/.f64 F (*.f64 (fma.f64 B B (*.f64 C C)) (+.f64 C (hypot.f64 B C))))) (*.f64 A (*.f64 C (sqrt.f64 2)))) -1/2))) (sqrt.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)))))
54.4b
(/.f64 -1 (*.f64 (/.f64 B (sqrt.f64 2)) (sqrt.f64 (/.f64 1 (*.f64 F (+.f64 A (hypot.f64 B A)))))))
54.0b
(*.f64 -1 (/.f64 (sqrt.f64 (*.f64 2 (*.f64 F (+.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))))) (neg.f64 B)))
48.7b
(*.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))))
55.3b
(/.f64 -1 (/.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (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)))))))
58.3b
(*.f64 -1 (/.f64 (sqrt.f64 (*.f64 2 (*.f64 F (*.f64 (sqrt.f64 (+.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))) (sqrt.f64 B))))) (sqrt.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)))))
54.1b
(/.f64 -1 (/.f64 (sqrt.f64 (*.f64 -2 (/.f64 C F))) (sqrt.f64 2)))
60.6b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 -2 (*.f64 F (pow.f64 B 3))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
54.1b
(neg.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 -1/2 (/.f64 F A)))))
49.2b
(*.f64 -1 (sqrt.f64 (/.f64 (*.f64 2 (*.f64 F (+.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))))
59.0b
(*.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)))))
54.2b
(/.f64 -1 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 F (+.f64 C (hypot.f64 C B))))) (/.f64 B (sqrt.f64 2))))
60.9b
(/.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))) (fma.f64 2 (*.f64 F (pow.f64 B 3)) (*.f64 (*.f64 F B) (+.f64 (*.f64 A A) (*.f64 C C)))))) (*.f64 10 (*.f64 A (*.f64 C (*.f64 F B))))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
60.9b
(*.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 2 A)))))) (sqrt.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)))))
54.4b
(/.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 2 A) (*.f64 1/2 (/.f64 (*.f64 B B) C)))))))))
58.8b
(*.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 2 C)))))) (sqrt.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)))))
58.0b
(/.f64 (neg.f64 (sqrt.f64 (-.f64 (fma.f64 4 (/.f64 (*.f64 (*.f64 A A) (*.f64 F (*.f64 B B))) C) (*.f64 8 (*.f64 A (*.f64 F (*.f64 B B))))) (fma.f64 16 (*.f64 (*.f64 A A) (*.f64 C F)) (/.f64 (*.f64 F (pow.f64 B 4)) C))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
52.8b
(/.f64 -1 (*.f64 (sqrt.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B))) (/.f64 (sqrt.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 C A) (hypot.f64 B (-.f64 A C))))))))))
53.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)))))))) B))
54.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)))
53.8b
(neg.f64 (*.f64 (sqrt.f64 (*.f64 -1/2 (/.f64 F C))) (sqrt.f64 2)))
55.2b
(/.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)))
57.8b
(*.f64 -1 (/.f64 (sqrt.f64 (*.f64 2 (*.f64 F (fma.f64 2 A (*.f64 (/.f64 (*.f64 B B) C) -1/2))))) (sqrt.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)))))
55.4b
(*.f64 -1 (/.f64 (sqrt.f64 (*.f64 2 (*.f64 F (fma.f64 2 C (*.f64 (/.f64 (*.f64 B B) A) -1/2))))) (sqrt.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)))))
Compiler

Compiled 53969 to 30612 computations (43.3% saved)

regimes5.6s (3.8%)

Accuracy

Total 23.5b remaining (59.3%)

Threshold costs 0b (0%)

Counts
260 → 7
Compiler

Compiled 69896 to 43562 computations (37.7% saved)

bsearch755.0ms (0.5%)

Steps
ItersRangePoint
5
6.088582401381689e-12
1.482793704034907e-11
6.4709542352011415e-12
9
4.750068690566693e-170
3.1279486243144705e-163
7.188285169875155e-169
10
-4.2377671794310114e-226
-1.1582273180771168e-237
-5.421061115337358e-229
8
-1.9264398386291934e-104
-1.5074797070138038e-107
-1.1148721127505119e-104
8
-2.7023173519515316e-84
-2.2140627483863102e-88
-2.3644555656536877e-87
6
-3.328319398720565e+84
-5.970423337538486e+83
-6.441662385210033e+83
Compiler

Compiled 5 to 4 computations (20% saved)

simplify12.0ms (0%)

Algorithm
egg-herbie
Rules
33×*-commutative_binary64
24×+-commutative_binary64
19×sub-neg_binary64
17×neg-sub0_binary64
14×neg-mul-1_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
084320
1130320
2165320
3192320
4209320
5214320
6215320
7214320

end4.0ms (0%)

Compiler

Compiled 215 to 110 computations (48.8% saved)

sample13.2s (8.8%)

Algorithm
intervals
Results
956.0ms5538×body128valid
613.0ms897×body1024valid
557.0ms637×body2048valid
536.0ms771×body1024nan
512.0ms587×body2048nan
507.0ms2865×body128nan
306.0ms598×body512valid
285.0ms567×body512nan
124.0ms330×body256valid
105.0ms319×body256nan
Compiler

Compiled 1826 to 1132 computations (38% saved)

Profiling

Loading profile data...