Details

Time bar (total: 42.2s)

analyze3.3s (7.9%)

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.8s (16.1%)

Results
1.5s5751×body128valid
839.0ms896×body1024valid
811.0ms650×body2048invalid
783.0ms839×body1024invalid
767.0ms2966×body128invalid
762.0ms657×body2048valid
510.0ms616×body512valid
403.0ms596×body512invalid
169.0ms380×body256invalid
160.0ms334×body256valid
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
46.6b
Counts
3 → 2
Alt Table
StatusErrorProgram
50.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)))
47.1b
(/.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)

localize16.0ms (0%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.8b
(+.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))
3.7b
(*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (*.f64 2 (*.f64 F (+.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C))))))
14.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)))))))
20.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)))))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))

series16.9s (40%)

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.9s
(/.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)))
205.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))))))
52.0ms
(+.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))

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

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

Pruning

29 alts after pruning (29 fresh and 0 done)

PrunedKeptTotal
New33328361
Fresh011
Picked101
Done000
Total33429363
Error
22.1b
Counts
363 → 29
Alt Table
StatusErrorProgram
58.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)))
52.5b
(/.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)))
55.3b
(neg.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 -1/2 (/.f64 F A)))))
47.3b
(/.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)))
59.1b
(/.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)))
61.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))))))
56.4b
(neg.f64 (*.f64 (sqrt.f64 (*.f64 -1/2 (/.f64 F C))) (sqrt.f64 2)))
56.8b
(/.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.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)))
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)))
52.3b
(/.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)))
57.8b
(/.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)))
57.8b
(neg.f64 (*.f64 (sqrt.f64 (*.f64 F (+.f64 A (sqrt.f64 (+.f64 (*.f64 A A) (*.f64 B B)))))) (/.f64 (sqrt.f64 2) B)))
51.1b
(/.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)))))))) (sqrt.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)))) (sqrt.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B))))
54.3b
(/.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)))
47.1b
(/.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)))))))))
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)))
47.2b
(/.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)))))))))))
59.7b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 2 (*.f64 F (pow.f64 B 3))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
57.3b
(neg.f64 (*.f64 (sqrt.f64 (*.f64 (+.f64 (sqrt.f64 (+.f64 (*.f64 B B) (*.f64 C C))) C) F)) (/.f64 (sqrt.f64 2) B)))
57.7b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 -16 (*.f64 A (*.f64 (pow.f64 C 2) F))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
47.5b
(/.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)))
45.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)))))
60.4b
(/.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)))
61.1b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 -2 (*.f64 F (pow.f64 B 3))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
47.2b
(*.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))))
54.1b
(/.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)))
59.3b
(-.f64 (*.f64 1/16 (/.f64 (*.f64 F (*.f64 (sqrt.f64 2) (pow.f64 B 2))) (*.f64 (pow.f64 A 2) (*.f64 C (sqrt.f64 (*.f64 -1/2 (/.f64 F A))))))) (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 -1/2 (/.f64 F A)))))
56.0b
(/.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)))))))
Compiler

Compiled 61958 to 33984 computations (45.1% saved)

localize18.0ms (0%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.3b
(fma.f64 A (*.f64 C -4) (*.f64 B B))
0.8b
(+.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))
11.4b
(sqrt.f64 (*.f64 2 (*.f64 F (+.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C))))))
17.8b
(sqrt.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)))

series1.2s (2.7%)

Counts
3 → 76
Calls

3 calls:

1.1s
(sqrt.f64 (*.f64 2 (*.f64 F (+.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C))))))
41.0ms
(sqrt.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)))
10.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))

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

prune1.0s (2.4%)

Pruning

31 alts after pruning (31 fresh and 0 done)

PrunedKeptTotal
New1928200
Fresh52328
Picked101
Done000
Total19831229
Error
16.1b
Counts
229 → 31
Alt Table
StatusErrorProgram
58.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)))
52.5b
(/.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)))
55.3b
(neg.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 -1/2 (/.f64 F A)))))
47.3b
(/.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)))
59.1b
(/.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.7b
(*.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)))))
54.8b
(*.f64 -1 (/.f64 (sqrt.f64 (*.f64 2 (*.f64 F (+.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))))) (neg.f64 B)))
61.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))))))
56.4b
(neg.f64 (*.f64 (sqrt.f64 (*.f64 -1/2 (/.f64 F C))) (sqrt.f64 2)))
56.8b
(/.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.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)))
52.3b
(/.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)))
57.8b
(/.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)))
51.1b
(/.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)))))))) (sqrt.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)))) (sqrt.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B))))
54.3b
(/.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)))
52.2b
(*.f64 -1 (/.f64 (sqrt.f64 (*.f64 2 (*.f64 F (+.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))))) B))
47.2b
(/.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)))))))))))
59.7b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 2 (*.f64 F (pow.f64 B 3))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
56.0b
(/.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)))))))
45.9b
(*.f64 -1 (/.f64 (sqrt.f64 (*.f64 2 (*.f64 F (+.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))))) (*.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)))))
57.3b
(neg.f64 (*.f64 (sqrt.f64 (*.f64 (+.f64 (sqrt.f64 (+.f64 (*.f64 B B) (*.f64 C C))) C) F)) (/.f64 (sqrt.f64 2) B)))
57.7b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 -16 (*.f64 A (*.f64 (pow.f64 C 2) F))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
47.5b
(/.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.4b
(/.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)))
61.1b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 -2 (*.f64 F (pow.f64 B 3))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
54.9b
(*.f64 -1 (/.f64 (*.f64 2 (sqrt.f64 (*.f64 C F))) (sqrt.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)))))
47.2b
(*.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))))
47.1b
(/.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)))))))))
58.7b
(*.f64 -1 (/.f64 (*.f64 2 (sqrt.f64 (*.f64 A F))) (sqrt.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)))))
58.7b
(*.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.0b
(*.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)))))
Compiler

Compiled 14827 to 8580 computations (42.1% saved)

localize19.0ms (0%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.3b
(cbrt.f64 (hypot.f64 (sqrt.f64 (*.f64 A (*.f64 C -4))) B))
0.8b
(+.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))
11.4b
(sqrt.f64 (*.f64 2 (*.f64 F (+.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C))))))
13.0b
(sqrt.f64 (*.f64 A (*.f64 C -4)))

series264.0ms (0.6%)

Counts
2 → 14
Calls

2 calls:

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

rewrite5.0ms (0%)

Algorithm
rewrite-expression-head
Rules
pow1_binary64
cbrt-prod_binary64
*-un-lft-identity_binary64
sqrt-pow1_binary64
pow-prod-down_binary64
Counts
2 → 27
Calls

2 calls:

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

simplify50.0ms (0.1%)

Algorithm
egg-herbie
Rules
787×associate-*l*_binary64
529×fma-neg_binary64
484×distribute-lft-neg-in_binary64
481×distribute-rgt-neg-in_binary64
425×unswap-sqr_binary64
Counts
41 → 67
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
0116928
1279888
2822868
32820856
45193856

prune512.0ms (1.2%)

Pruning

36 alts after pruning (36 fresh and 0 done)

PrunedKeptTotal
New3336339
Fresh03030
Picked101
Done000
Total33436370
Error
16.1b
Counts
370 → 36
Alt Table
StatusErrorProgram
58.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)))
52.5b
(/.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)))
55.3b
(neg.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 -1/2 (/.f64 F A)))))
47.3b
(/.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)))
59.1b
(/.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.7b
(*.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)))))
54.8b
(*.f64 -1 (/.f64 (sqrt.f64 (*.f64 2 (*.f64 F (+.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))))) (neg.f64 B)))
61.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))))))
56.4b
(neg.f64 (*.f64 (sqrt.f64 (*.f64 -1/2 (/.f64 F C))) (sqrt.f64 2)))
56.8b
(/.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)))
45.9b
(*.f64 -1 (/.f64 (sqrt.f64 (*.f64 2 (*.f64 F (*.f64 (*.f64 (cbrt.f64 (+.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))) (cbrt.f64 (+.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C))))) (cbrt.f64 (+.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))))))) (*.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)))))
50.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)))
52.3b
(/.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)))
47.2b
(*.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))))
47.0b
(*.f64 -1 (/.f64 (*.f64 (sqrt.f64 (*.f64 (+.f64 C (hypot.f64 B C)) 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)))))
57.8b
(/.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)))
51.1b
(/.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)))))))) (sqrt.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)))) (sqrt.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B))))
54.3b
(/.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)))
56.3b
(*.f64 -1 (/.f64 (*.f64 (sqrt.f64 (*.f64 C F)) (pow.f64 (sqrt.f64 2) 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)))))
52.2b
(*.f64 -1 (/.f64 (sqrt.f64 (*.f64 2 (*.f64 F (+.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))))) B))
47.2b
(/.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)))))))))))
59.7b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 2 (*.f64 F (pow.f64 B 3))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
59.5b
(*.f64 -1 (/.f64 (*.f64 (sqrt.f64 (*.f64 A F)) (pow.f64 (sqrt.f64 2) 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)))))
56.0b
(/.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)))))))
60.1b
(*.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 (*.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)))))
57.3b
(neg.f64 (*.f64 (sqrt.f64 (*.f64 (+.f64 (sqrt.f64 (+.f64 (*.f64 B B) (*.f64 C C))) C) F)) (/.f64 (sqrt.f64 2) B)))
57.7b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 -16 (*.f64 A (*.f64 (pow.f64 C 2) F))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
47.5b
(/.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.4b
(/.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)))
61.1b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 -2 (*.f64 F (pow.f64 B 3))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
54.9b
(*.f64 -1 (/.f64 (*.f64 2 (sqrt.f64 (*.f64 C F))) (sqrt.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)))))
45.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 (+.f64 A C) (hypot.f64 B (-.f64 A C)))))))) (*.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)))))
47.1b
(/.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)))))))))
58.7b
(*.f64 -1 (/.f64 (*.f64 2 (sqrt.f64 (*.f64 A F))) (sqrt.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)))))
58.7b
(*.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.0b
(*.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)))))
Compiler

Compiled 27628 to 17052 computations (38.3% saved)

localize22.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.5b
(cbrt.f64 (+.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C))))
0.8b
(+.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))
11.4b
(sqrt.f64 (*.f64 2 (*.f64 F (*.f64 (*.f64 (cbrt.f64 (+.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))) (cbrt.f64 (+.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C))))) (cbrt.f64 (+.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C))))))))
13.0b
(sqrt.f64 (*.f64 A (*.f64 C -4)))

series1.3s (3%)

Counts
2 → 56
Calls

2 calls:

1.0s
(sqrt.f64 (*.f64 2 (*.f64 F (*.f64 (*.f64 (cbrt.f64 (+.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))) (cbrt.f64 (+.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C))))) (cbrt.f64 (+.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C))))))))
248.0ms
(cbrt.f64 (+.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C))))

rewrite48.0ms (0.1%)

Algorithm
rewrite-expression-head
Rules
60×associate-*r/_binary64
56×cbrt-div_binary64
28×flip-+_binary64
28×frac-times_binary64
28×flip3-+_binary64
Counts
2 → 59
Calls

2 calls:

22.0ms
(sqrt.f64 (*.f64 2 (*.f64 F (*.f64 (*.f64 (cbrt.f64 (+.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))) (cbrt.f64 (+.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C))))) (cbrt.f64 (+.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C))))))))
4.0ms
(cbrt.f64 (+.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C))))

simplify354.0ms (0.8%)

Algorithm
egg-herbie
Rules
455×*-commutative_binary64
235×associate-*r*_binary64
188×times-frac_binary64
183×+-commutative_binary64
159×fma-def_binary64
Counts
115 → 194
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
0107813486
1316611981
2499411979
3495611979

prune1.5s (3.6%)

Pruning

39 alts after pruning (38 fresh and 1 done)

PrunedKeptTotal
New6944698
Fresh13435
Picked011
Done000
Total69539734
Error
16.0b
Counts
734 → 39
Alt Table
StatusErrorProgram
58.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)))
60.3b
(*.f64 -1 (/.f64 (sqrt.f64 (*.f64 2 (*.f64 F (*.f64 (*.f64 (cbrt.f64 (+.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))) (cbrt.f64 (+.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C))))) (cbrt.f64 (*.f64 2 A)))))) (*.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)))))
52.5b
(/.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)))
47.3b
(/.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)))
60.6b
(*.f64 -1 (/.f64 (sqrt.f64 (*.f64 2 (*.f64 F (*.f64 (*.f64 (cbrt.f64 (+.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))) (pow.f64 (*.f64 2 A) 1/3)) (cbrt.f64 (+.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))))))) (*.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)))))
55.3b
(neg.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 -1/2 (/.f64 F A)))))
59.1b
(/.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.7b
(*.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)))))
54.8b
(*.f64 -1 (/.f64 (sqrt.f64 (*.f64 2 (*.f64 F (+.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))))) (neg.f64 B)))
61.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))))))
56.4b
(neg.f64 (*.f64 (sqrt.f64 (*.f64 -1/2 (/.f64 F C))) (sqrt.f64 2)))
56.8b
(/.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)))
45.9b
(*.f64 -1 (/.f64 (sqrt.f64 (*.f64 2 (*.f64 F (*.f64 (*.f64 (cbrt.f64 (+.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))) (cbrt.f64 (+.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C))))) (cbrt.f64 (+.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))))))) (*.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)))))
50.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)))
52.3b
(/.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)))
47.2b
(*.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))))
47.0b
(*.f64 -1 (/.f64 (*.f64 (sqrt.f64 (*.f64 (+.f64 C (hypot.f64 B C)) 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)))))
57.8b
(/.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)))
51.1b
(/.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)))))))) (sqrt.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)))) (sqrt.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B))))
54.3b
(/.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)))
56.3b
(*.f64 -1 (/.f64 (*.f64 (sqrt.f64 (*.f64 C F)) (pow.f64 (sqrt.f64 2) 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)))))
52.2b
(*.f64 -1 (/.f64 (sqrt.f64 (*.f64 2 (*.f64 F (+.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))))) B))
47.2b
(/.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)))))))))))
59.7b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 2 (*.f64 F (pow.f64 B 3))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
59.5b
(*.f64 -1 (/.f64 (*.f64 (sqrt.f64 (*.f64 A F)) (pow.f64 (sqrt.f64 2) 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)))))
56.0b
(/.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)))))))
60.1b
(*.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 (*.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)))))
57.3b
(neg.f64 (*.f64 (sqrt.f64 (*.f64 (+.f64 (sqrt.f64 (+.f64 (*.f64 B B) (*.f64 C C))) C) F)) (/.f64 (sqrt.f64 2) B)))
57.7b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 -16 (*.f64 A (*.f64 (pow.f64 C 2) F))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
61.5b
(*.f64 -1 (/.f64 (sqrt.f64 (*.f64 2 (*.f64 F (*.f64 (*.f64 (cbrt.f64 (+.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))) (cbrt.f64 (+.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C))))) (cbrt.f64 (-.f64 (*.f64 2 A) (*.f64 1/2 (/.f64 (*.f64 B B) C)))))))) (*.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)))))
47.5b
(/.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.4b
(/.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)))
61.1b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 -2 (*.f64 F (pow.f64 B 3))))) (fma.f64 A (*.f64 C -4) (*.f64 B B)))
54.9b
(*.f64 -1 (/.f64 (*.f64 2 (sqrt.f64 (*.f64 C F))) (sqrt.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)))))
45.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 (+.f64 A C) (hypot.f64 B (-.f64 A C)))))))) (*.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.2b
(*.f64 -1 (/.f64 (sqrt.f64 (*.f64 2 (*.f64 F (*.f64 (*.f64 (cbrt.f64 (+.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))) (cbrt.f64 (+.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C))))) (pow.f64 (*.f64 2 C) 1/3))))) (*.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)))))
47.1b
(/.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)))))))))
58.7b
(*.f64 -1 (/.f64 (*.f64 2 (sqrt.f64 (*.f64 A F))) (sqrt.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)))))
58.7b
(*.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)))))
Compiler

Compiled 80486 to 42463 computations (47.2% saved)

regimes4.6s (11%)

Accuracy

Total 26.9b remaining (62.9%)

Threshold costs 0b (0%)

Counts
184 → 12
Compiler

Compiled 58093 to 35863 computations (38.3% saved)

bsearch1.4s (3.4%)

Steps
ItersRangePoint
10
4.980840315721753e+172
4.8089051275019884e+188
9.070489695444037e+172
10
1.1585210531147694e+159
2.7960833938947674e+169
5.48701879697187e+159
9
1.2236568351887733e+152
2.6082655323060756e+158
1.8247188167373362e+153
8
4.501335300082188e+114
2.301610243396325e+117
7.020914566277488e+115
9
4.277146904588747e+21
7.184725522327955e+28
1.525172088274872e+28
3
1.4359632913725204e-196
1.8377347828038433e-196
1.461074009586978e-196
11
-1.5003871474398763e-58
-1.742933409196347e-79
-7.898288287255473e-59
8
-14059214864599069000.0
-33092260147620876.0
-13902718134128933000.0
10
-1.035474797313275e+82
-5.133417069522795e+71
-1.0277110279859103e+73
7
-4.999675215128283e+94
-4.7895807335777225e+92
-6.715914155896905e+93
8
-3.11997341852303e+163
-5.464803961195357e+158
-1.547843111002865e+160
Compiler

Compiled 5 to 4 computations (20% saved)

simplify25.0ms (0.1%)

Algorithm
egg-herbie
Rules
63×*-commutative_binary64
41×+-commutative_binary64
33×sub-neg_binary64
29×neg-sub0_binary64
26×neg-mul-1_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0138670
1229670
2286670
3344670
4376670
5389670
6393670
7391670

end882.0ms (2.1%)

Compiler

Compiled 2478 to 1505 computations (39.3% saved)

Profiling

Loading profile data...