Details

Time bar (total: 31.5s)

analyze3.4s (10.8%)

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

Compiled 45 to 33 computations (26.7% saved)

sample6.8s (21.5%)

Results
1.5s5743×body128valid
824.0ms665×body2048valid
819.0ms834×body1024valid
788.0ms835×body1024invalid
767.0ms2959×body128invalid
739.0ms604×body2048invalid
479.0ms641×body512valid
422.0ms606×body512invalid
177.0ms371×body256valid
171.0ms362×body256invalid
5.0msbody4096valid
Compiler

Compiled 134 to 98 computations (26.9% saved)

simplify15.0ms (0%)

Algorithm
egg-herbie
Rules
552×associate-*l*_binary64
520×associate-*r*_binary64
455×distribute-rgt-in_binary64
450×fma-def_binary64
449×distribute-lft-in_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
02361
16649
222549
3100349
Stop Event
node limit
Counts
1 → 2

prune6.0ms (0%)

Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New022
Fresh011
Picked000
Done000
Total033
Error
50.2b
Counts
3 → 2
Alt Table
StatusErrorProgram
50.2b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 2 (*.f64 (*.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))) F) (+.f64 C (+.f64 A (hypot.f64 B (-.f64 A C)))))))) (fma.f64 B B (*.f64 A (*.f64 C -4))))
54.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)))
Compiler

Compiled 239 to 160 computations (33.1% saved)

localize18.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
2.6b
(*.f64 (*.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))) F) (+.f64 C (+.f64 A (hypot.f64 B (-.f64 A C)))))
6.4b
(*.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))) F)
16.9b
(sqrt.f64 (*.f64 2 (*.f64 (*.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))) F) (+.f64 C (+.f64 A (hypot.f64 B (-.f64 A C)))))))
23.2b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 2 (*.f64 (*.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))) F) (+.f64 C (+.f64 A (hypot.f64 B (-.f64 A C)))))))) (fma.f64 B B (*.f64 A (*.f64 C -4))))

series8.4s (26.8%)

Counts
4 → 136
Calls

4 calls:

4.5s
(sqrt.f64 (*.f64 2 (*.f64 (*.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))) F) (+.f64 C (+.f64 A (hypot.f64 B (-.f64 A C)))))))
3.8s
(/.f64 (neg.f64 (sqrt.f64 (*.f64 2 (*.f64 (*.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))) F) (+.f64 C (+.f64 A (hypot.f64 B (-.f64 A C)))))))) (fma.f64 B B (*.f64 A (*.f64 C -4))))
132.0ms
(*.f64 (*.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))) F) (+.f64 C (+.f64 A (hypot.f64 B (-.f64 A C)))))
28.0ms
(*.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))) F)

rewrite52.0ms (0.2%)

Algorithm
batch-egg-rewrite
Rules
231×add-sqr-sqrt_binary64
219×log1p-expm1-u_binary64
219×expm1-log1p-u_binary64
218×add-cbrt-cube_binary64
214×add-exp-log_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
020126
1454124
Stop Event
node limit
Counts
4 → 97
Calls

4 calls:

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

simplify224.0ms (0.7%)

Algorithm
egg-herbie
Rules
542×fma-def_binary64
490×associate-*r*_binary64
257×associate-/l*_binary64
210×associate-*l/_binary64
171×associate-/r*_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0207436539
Stop Event
node limit
Counts
233 → 257

prune913.0ms (2.9%)

Pruning

30 alts after pruning (30 fresh and 0 done)

PrunedKeptTotal
New22730257
Fresh101
Picked101
Done000
Total22930259
Error
28.5b
Counts
259 → 30
Alt Table
StatusErrorProgram
57.8b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 2 (-.f64 (fma.f64 2 (/.f64 (*.f64 C C) (/.f64 A (*.f64 F (*.f64 B B)))) (*.f64 4 (*.f64 (*.f64 C F) (*.f64 B B)))) (fma.f64 1/2 (/.f64 F (/.f64 A (pow.f64 B 4))) (*.f64 (*.f64 8 A) (*.f64 (*.f64 C C) F))))))) (fma.f64 B B (*.f64 A (*.f64 C -4))))
61.5b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 2 (neg.f64 (*.f64 F (pow.f64 B 3)))))) (fma.f64 B B (*.f64 A (*.f64 C -4))))
57.5b
(/.f64 (neg.f64 (fma.f64 A (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 -8 (*.f64 C F)))) (/.f64 F (/.f64 (sqrt.f64 (*.f64 -8 (*.f64 C F))) (*.f64 (sqrt.f64 2) (*.f64 B B)))))) (fma.f64 B B (*.f64 A (*.f64 C -4))))
58.3b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 2 (-.f64 (+.f64 (*.f64 2 (/.f64 (*.f64 (pow.f64 C 2) (*.f64 F (pow.f64 B 2))) A)) (*.f64 4 (*.f64 C (*.f64 F (pow.f64 B 2))))) (+.f64 (*.f64 1/2 (/.f64 (*.f64 F (pow.f64 B 4)) A)) (*.f64 8 (*.f64 A (*.f64 (pow.f64 C 2) F)))))))) (fma.f64 B B (*.f64 A (*.f64 C -4))))
63.6b
(pow.f64 (/.f64 (pow.f64 (*.f64 2 (*.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))) (*.f64 F (+.f64 (+.f64 C A) (hypot.f64 B (-.f64 A C)))))) 1/4) (hypot.f64 B (sqrt.f64 (*.f64 A (*.f64 C -4))))) 2)
62.3b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 2 (-.f64 (+.f64 (*.f64 C (*.f64 F (pow.f64 B 2))) (+.f64 (*.f64 A (*.f64 F (pow.f64 B 2))) (+.f64 (*.f64 F (pow.f64 B 3)) (+.f64 (*.f64 1/2 (*.f64 (pow.f64 A 2) (*.f64 F B))) (*.f64 1/2 (*.f64 (pow.f64 C 2) (*.f64 F B))))))) (*.f64 5 (*.f64 A (*.f64 C (*.f64 F B)))))))) (fma.f64 B B (*.f64 A (*.f64 C -4))))
60.4b
(neg.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 -1/4 (*.f64 (/.f64 F A) (/.f64 (+.f64 A (+.f64 C (sqrt.f64 (+.f64 (+.f64 (*.f64 A A) (*.f64 C C)) (*.f64 -2 (*.f64 A C)))))) C))))))
58.3b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 2 (*.f64 -8 (*.f64 A (*.f64 (pow.f64 C 2) F)))))) (fma.f64 B B (*.f64 A (*.f64 C -4))))
61.7b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 2 (*.f64 F (pow.f64 B 3))))) (fma.f64 B B (*.f64 A (*.f64 C -4))))
61.0b
(*.f64 -1 (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 -1/4 (/.f64 (*.f64 F (+.f64 A (+.f64 C (sqrt.f64 (-.f64 (+.f64 (pow.f64 A 2) (pow.f64 C 2)) (*.f64 2 (*.f64 A C))))))) (*.f64 A C))))))
54.4b
(neg.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 -1/2 (/.f64 F A)))))
51.1b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 2 (pow.f64 (*.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))) (*.f64 F (+.f64 (+.f64 C A) (hypot.f64 B (-.f64 A C))))) 1)))) (fma.f64 B B (*.f64 A (*.f64 C -4))))
50.3b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 2 (+.f64 (*.f64 C (*.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))) F)) (*.f64 (+.f64 A (hypot.f64 B (-.f64 A C))) (*.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))) F)))))) (fma.f64 B B (*.f64 A (*.f64 C -4))))
58.8b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 2 (-.f64 (fma.f64 2 (/.f64 (*.f64 A A) (/.f64 C (*.f64 F (*.f64 B B)))) (*.f64 4 (*.f64 (*.f64 A F) (*.f64 B B)))) (fma.f64 8 (*.f64 (*.f64 A A) (*.f64 C F)) (*.f64 1/2 (/.f64 F (/.f64 C (pow.f64 B 4))))))))) (fma.f64 B B (*.f64 A (*.f64 C -4))))
58.6b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 2 (*.f64 -8 (*.f64 (pow.f64 A 2) (*.f64 C F)))))) (fma.f64 B B (*.f64 A (*.f64 C -4))))
62.1b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 2 (*.f64 (cbrt.f64 (*.f64 (pow.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))) 3) (pow.f64 F 3))) (+.f64 C (+.f64 A (hypot.f64 B (-.f64 A C)))))))) (fma.f64 B B (*.f64 A (*.f64 C -4))))
62.7b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 2 (*.f64 (log.f64 (pow.f64 (exp.f64 F) (fma.f64 B B (*.f64 A (*.f64 C -4))))) (+.f64 C (+.f64 A (hypot.f64 B (-.f64 A C)))))))) (fma.f64 B B (*.f64 A (*.f64 C -4))))
58.8b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 2 (+.f64 (*.f64 4 (*.f64 (*.f64 A F) (*.f64 B B))) (*.f64 -8 (*.f64 (*.f64 A A) (*.f64 C F))))))) (fma.f64 B B (*.f64 A (*.f64 C -4))))
56.0b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 2 (*.f64 (*.f64 -4 (*.f64 A (*.f64 C F))) (+.f64 C (+.f64 A (hypot.f64 B (-.f64 A C)))))))) (fma.f64 B B (*.f64 A (*.f64 C -4))))
60.9b
(neg.f64 (*.f64 (sqrt.f64 (*.f64 F (+.f64 A (sqrt.f64 (+.f64 (*.f64 A A) (*.f64 B B)))))) (/.f64 (sqrt.f64 2) B)))
50.3b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 2 (*.f64 (pow.f64 (cbrt.f64 (*.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))) F)) 3) (+.f64 C (+.f64 A (hypot.f64 B (-.f64 A C)))))))) (fma.f64 B B (*.f64 A (*.f64 C -4))))
54.6b
(/.f64 (neg.f64 (fma.f64 (sqrt.f64 (*.f64 (*.f64 -8 A) F)) (*.f64 C (sqrt.f64 2)) (/.f64 (*.f64 (*.f64 F (sqrt.f64 2)) (*.f64 B B)) (sqrt.f64 (*.f64 (*.f64 -8 A) F))))) (fma.f64 B B (*.f64 A (*.f64 C -4))))
46.4b
(/.f64 (neg.f64 (*.f64 (sqrt.f64 (*.f64 2 (*.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))) F))) (sqrt.f64 (+.f64 (+.f64 C A) (hypot.f64 B (-.f64 A C)))))) (fma.f64 B B (*.f64 A (*.f64 C -4))))
62.0b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 2 (-.f64 (+.f64 (*.f64 C (*.f64 F (pow.f64 B 2))) (+.f64 (*.f64 A (*.f64 F (pow.f64 B 2))) (*.f64 5 (*.f64 A (*.f64 C (*.f64 F B)))))) (+.f64 (*.f64 F (pow.f64 B 3)) (+.f64 (*.f64 1/2 (*.f64 (pow.f64 A 2) (*.f64 F B))) (*.f64 1/2 (*.f64 (pow.f64 C 2) (*.f64 F B))))))))) (fma.f64 B B (*.f64 A (*.f64 C -4))))
60.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 B B (*.f64 A (*.f64 C -4))))
58.6b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 2 (+.f64 (*.f64 4 (*.f64 (*.f64 C F) (*.f64 B B))) (*.f64 (*.f64 -8 A) (*.f64 (*.f64 C C) F)))))) (fma.f64 B B (*.f64 A (*.f64 C -4))))
59.0b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 2 (-.f64 (*.f64 2 (*.f64 (*.f64 A F) (*.f64 B B))) (fma.f64 2 (*.f64 (*.f64 C F) (*.f64 B B)) (*.f64 8 (*.f64 (*.f64 A A) (*.f64 C F)))))))) (fma.f64 B B (*.f64 A (*.f64 C -4))))
63.0b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 2 (log.f64 (pow.f64 (exp.f64 (+.f64 (+.f64 C A) (hypot.f64 B (-.f64 A C)))) (*.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))) F)))))) (fma.f64 B B (*.f64 A (*.f64 C -4))))
56.1b
(neg.f64 (*.f64 (sqrt.f64 (*.f64 -1/2 (/.f64 F C))) (sqrt.f64 2)))
54.7b
(/.f64 (neg.f64 (*.f64 (sqrt.f64 (*.f64 -8 (*.f64 A F))) (*.f64 C (sqrt.f64 2)))) (fma.f64 B B (*.f64 A (*.f64 C -4))))
Compiler

Compiled 54456 to 31091 computations (42.9% saved)

localize18.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
2.3b
(+.f64 (+.f64 C A) (hypot.f64 B (-.f64 A C)))
6.4b
(*.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))) F)
15.6b
(sqrt.f64 (*.f64 2 (*.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))) F)))
20.8b
(/.f64 (neg.f64 (*.f64 (sqrt.f64 (*.f64 2 (*.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))) F))) (sqrt.f64 (+.f64 (+.f64 C A) (hypot.f64 B (-.f64 A C)))))) (fma.f64 B B (*.f64 A (*.f64 C -4))))

series1.9s (5.9%)

Counts
3 → 76
Calls

3 calls:

1.7s
(/.f64 (neg.f64 (*.f64 (sqrt.f64 (*.f64 2 (*.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))) F))) (sqrt.f64 (+.f64 (+.f64 C A) (hypot.f64 B (-.f64 A C)))))) (fma.f64 B B (*.f64 A (*.f64 C -4))))
124.0ms
(sqrt.f64 (*.f64 2 (*.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))) F)))
39.0ms
(+.f64 (+.f64 C A) (hypot.f64 B (-.f64 A C)))

rewrite47.0ms (0.2%)

Algorithm
batch-egg-rewrite
Rules
234×add-sqr-sqrt_binary64
223×log1p-expm1-u_binary64
223×expm1-log1p-u_binary64
222×add-cbrt-cube_binary64
218×add-exp-log_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
02181
147179
Stop Event
node limit
Counts
3 → 98
Calls

3 calls:

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

simplify135.0ms (0.4%)

Algorithm
egg-herbie
Rules
571×*-commutative_binary64
331×+-commutative_binary64
298×fma-def_binary64
279×associate-+r+_binary64
251×associate-*r*_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0131320322
Stop Event
node limit
Counts
174 → 224

prune744.0ms (2.4%)

Pruning

28 alts after pruning (28 fresh and 0 done)

PrunedKeptTotal
New2379246
Fresh101929
Picked101
Done000
Total24828276
Error
25.9b
Counts
276 → 28
Alt Table
StatusErrorProgram
61.5b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 2 (neg.f64 (*.f64 F (pow.f64 B 3)))))) (fma.f64 B B (*.f64 A (*.f64 C -4))))
57.5b
(/.f64 (neg.f64 (fma.f64 A (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 -8 (*.f64 C F)))) (/.f64 F (/.f64 (sqrt.f64 (*.f64 -8 (*.f64 C F))) (*.f64 (sqrt.f64 2) (*.f64 B B)))))) (fma.f64 B B (*.f64 A (*.f64 C -4))))
62.3b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 2 (-.f64 (+.f64 (*.f64 C (*.f64 F (pow.f64 B 2))) (+.f64 (*.f64 A (*.f64 F (pow.f64 B 2))) (+.f64 (*.f64 F (pow.f64 B 3)) (+.f64 (*.f64 1/2 (*.f64 (pow.f64 A 2) (*.f64 F B))) (*.f64 1/2 (*.f64 (pow.f64 C 2) (*.f64 F B))))))) (*.f64 5 (*.f64 A (*.f64 C (*.f64 F B)))))))) (fma.f64 B B (*.f64 A (*.f64 C -4))))
60.4b
(neg.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 -1/4 (*.f64 (/.f64 F A) (/.f64 (+.f64 A (+.f64 C (sqrt.f64 (+.f64 (+.f64 (*.f64 A A) (*.f64 C C)) (*.f64 -2 (*.f64 A C)))))) C))))))
49.3b
(/.f64 (neg.f64 (*.f64 (*.f64 (sqrt.f64 (*.f64 2 (fma.f64 B B (*.f64 A (*.f64 C -4))))) (sqrt.f64 F)) (sqrt.f64 (+.f64 (+.f64 C A) (hypot.f64 B (-.f64 A C)))))) (fma.f64 B B (*.f64 A (*.f64 C -4))))
58.3b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 2 (*.f64 -8 (*.f64 A (*.f64 (pow.f64 C 2) F)))))) (fma.f64 B B (*.f64 A (*.f64 C -4))))
61.7b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 2 (*.f64 F (pow.f64 B 3))))) (fma.f64 B B (*.f64 A (*.f64 C -4))))
61.0b
(*.f64 -1 (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 -1/4 (/.f64 (*.f64 F (+.f64 A (+.f64 C (sqrt.f64 (-.f64 (+.f64 (pow.f64 A 2) (pow.f64 C 2)) (*.f64 2 (*.f64 A C))))))) (*.f64 A C))))))
53.0b
(/.f64 (neg.f64 (*.f64 (sqrt.f64 (*.f64 2 (*.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))) F))) (sqrt.f64 (-.f64 (*.f64 2 C) (*.f64 1/2 (/.f64 (pow.f64 B 2) A)))))) (fma.f64 B B (*.f64 A (*.f64 C -4))))
50.3b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 2 (+.f64 (*.f64 C (*.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))) F)) (*.f64 (+.f64 A (hypot.f64 B (-.f64 A C))) (*.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))) F)))))) (fma.f64 B B (*.f64 A (*.f64 C -4))))
58.8b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 2 (-.f64 (fma.f64 2 (/.f64 (*.f64 A A) (/.f64 C (*.f64 F (*.f64 B B)))) (*.f64 4 (*.f64 (*.f64 A F) (*.f64 B B)))) (fma.f64 8 (*.f64 (*.f64 A A) (*.f64 C F)) (*.f64 1/2 (/.f64 F (/.f64 C (pow.f64 B 4))))))))) (fma.f64 B B (*.f64 A (*.f64 C -4))))
61.1b
(sqrt.f64 (/.f64 (*.f64 (*.f64 2 (*.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))) F)) (+.f64 C (+.f64 A (hypot.f64 B (-.f64 A C))))) (pow.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))) 2)))
62.1b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 2 (*.f64 (cbrt.f64 (*.f64 (pow.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))) 3) (pow.f64 F 3))) (+.f64 C (+.f64 A (hypot.f64 B (-.f64 A C)))))))) (fma.f64 B B (*.f64 A (*.f64 C -4))))
58.6b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 2 (*.f64 -8 (*.f64 (pow.f64 A 2) (*.f64 C F)))))) (fma.f64 B B (*.f64 A (*.f64 C -4))))
56.0b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 2 (*.f64 (*.f64 -4 (*.f64 A (*.f64 C F))) (+.f64 C (+.f64 A (hypot.f64 B (-.f64 A C)))))))) (fma.f64 B B (*.f64 A (*.f64 C -4))))
60.9b
(neg.f64 (*.f64 (sqrt.f64 (*.f64 F (+.f64 A (sqrt.f64 (+.f64 (*.f64 A A) (*.f64 B B)))))) (/.f64 (sqrt.f64 2) B)))
46.0b
(*.f64 (/.f64 (sqrt.f64 (*.f64 2 (*.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))) F))) 1) (/.f64 (neg.f64 (sqrt.f64 (+.f64 C (+.f64 A (hypot.f64 B (-.f64 A C)))))) (fma.f64 B B (*.f64 A (*.f64 C -4)))))
50.3b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 2 (*.f64 (pow.f64 (cbrt.f64 (*.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))) F)) 3) (+.f64 C (+.f64 A (hypot.f64 B (-.f64 A C)))))))) (fma.f64 B B (*.f64 A (*.f64 C -4))))
56.3b
(/.f64 (neg.f64 (*.f64 (sqrt.f64 (*.f64 2 (*.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))) F))) (sqrt.f64 (-.f64 (*.f64 2 A) (*.f64 1/2 (/.f64 (pow.f64 B 2) C)))))) (fma.f64 B B (*.f64 A (*.f64 C -4))))
50.4b
(*.f64 (/.f64 -1 (pow.f64 (cbrt.f64 (fma.f64 B B (*.f64 A (*.f64 C -4)))) 2)) (/.f64 (sqrt.f64 (*.f64 (*.f64 2 (*.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))) F)) (+.f64 C (+.f64 A (hypot.f64 B (-.f64 A C)))))) (cbrt.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))))))
60.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 B B (*.f64 A (*.f64 C -4))))
54.5b
(*.f64 (/.f64 (sqrt.f64 (*.f64 2 (*.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))) F))) (hypot.f64 B (sqrt.f64 (*.f64 A (*.f64 C -4))))) (/.f64 (neg.f64 (sqrt.f64 (+.f64 C (+.f64 A (hypot.f64 B (-.f64 A C)))))) (hypot.f64 B (sqrt.f64 (*.f64 A (*.f64 C -4))))))
56.6b
(/.f64 (neg.f64 (*.f64 (neg.f64 (*.f64 (sqrt.f64 F) (*.f64 (sqrt.f64 2) B))) (sqrt.f64 (+.f64 (+.f64 C A) (hypot.f64 B (-.f64 A C)))))) (fma.f64 B B (*.f64 A (*.f64 C -4))))
59.0b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 2 (-.f64 (*.f64 2 (*.f64 (*.f64 A F) (*.f64 B B))) (fma.f64 2 (*.f64 (*.f64 C F) (*.f64 B B)) (*.f64 8 (*.f64 (*.f64 A A) (*.f64 C F)))))))) (fma.f64 B B (*.f64 A (*.f64 C -4))))
54.4b
(neg.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 -1/2 (/.f64 F A)))))
46.2b
(*.f64 (/.f64 (sqrt.f64 (*.f64 2 (*.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))) F))) (pow.f64 (cbrt.f64 (fma.f64 B B (*.f64 A (*.f64 C -4)))) 2)) (/.f64 (neg.f64 (sqrt.f64 (+.f64 C (+.f64 A (hypot.f64 B (-.f64 A C)))))) (cbrt.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))))))
56.1b
(neg.f64 (*.f64 (sqrt.f64 (*.f64 -1/2 (/.f64 F C))) (sqrt.f64 2)))
54.7b
(/.f64 (neg.f64 (*.f64 (sqrt.f64 (*.f64 -8 (*.f64 A F))) (*.f64 C (sqrt.f64 2)))) (fma.f64 B B (*.f64 A (*.f64 C -4))))
Compiler

Compiled 35393 to 20442 computations (42.2% saved)

localize20.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
6.4b
(*.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))) F)
7.9b
(/.f64 (neg.f64 (sqrt.f64 (+.f64 C (+.f64 A (hypot.f64 B (-.f64 A C)))))) (fma.f64 B B (*.f64 A (*.f64 C -4))))
12.4b
(*.f64 (/.f64 (sqrt.f64 (*.f64 2 (*.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))) F))) 1) (/.f64 (neg.f64 (sqrt.f64 (+.f64 C (+.f64 A (hypot.f64 B (-.f64 A C)))))) (fma.f64 B B (*.f64 A (*.f64 C -4)))))
15.6b
(sqrt.f64 (*.f64 2 (*.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))) F)))

series2.0s (6.4%)

Counts
2 → 40
Calls

2 calls:

1.7s
(*.f64 (/.f64 (sqrt.f64 (*.f64 2 (*.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))) F))) 1) (/.f64 (neg.f64 (sqrt.f64 (+.f64 C (+.f64 A (hypot.f64 B (-.f64 A C)))))) (fma.f64 B B (*.f64 A (*.f64 C -4)))))
287.0ms
(/.f64 (neg.f64 (sqrt.f64 (+.f64 C (+.f64 A (hypot.f64 B (-.f64 A C)))))) (fma.f64 B B (*.f64 A (*.f64 C -4))))

rewrite31.0ms (0.1%)

Algorithm
batch-egg-rewrite
Rules
239×add-sqr-sqrt_binary64
227×log1p-expm1-u_binary64
227×expm1-log1p-u_binary64
226×add-cbrt-cube_binary64
222×add-log-exp_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
02381
151177
Stop Event
node limit
Counts
2 → 37
Calls

2 calls:

29.0ms
(/.f64 (neg.f64 (sqrt.f64 (+.f64 C (+.f64 A (hypot.f64 B (-.f64 A C)))))) (fma.f64 B B (*.f64 A (*.f64 C -4))))
29.0ms
(*.f64 (/.f64 (sqrt.f64 (*.f64 2 (*.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))) F))) 1) (/.f64 (neg.f64 (sqrt.f64 (+.f64 C (+.f64 A (hypot.f64 B (-.f64 A C)))))) (fma.f64 B B (*.f64 A (*.f64 C -4)))))

simplify158.0ms (0.5%)

Algorithm
egg-herbie
Rules
383×fma-def_binary64
342×associate-+r+_binary64
333×associate-*r*_binary64
199×associate-/r*_binary64
199×associate-/l*_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0165624973
Stop Event
node limit
Counts
77 → 116

prune639.0ms (2%)

Pruning

29 alts after pruning (28 fresh and 1 done)

PrunedKeptTotal
New1824186
Fresh32427
Picked011
Done000
Total18529214
Error
25.3b
Counts
214 → 29
Alt Table
StatusErrorProgram
61.5b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 2 (neg.f64 (*.f64 F (pow.f64 B 3)))))) (fma.f64 B B (*.f64 A (*.f64 C -4))))
57.5b
(/.f64 (neg.f64 (fma.f64 A (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 -8 (*.f64 C F)))) (/.f64 F (/.f64 (sqrt.f64 (*.f64 -8 (*.f64 C F))) (*.f64 (sqrt.f64 2) (*.f64 B B)))))) (fma.f64 B B (*.f64 A (*.f64 C -4))))
61.9b
(log.f64 (pow.f64 (exp.f64 (/.f64 (sqrt.f64 (+.f64 (+.f64 C A) (hypot.f64 B (-.f64 A C)))) (fma.f64 B B (*.f64 A (*.f64 C -4))))) (sqrt.f64 (*.f64 2 (*.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))) F)))))
62.3b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 2 (-.f64 (+.f64 (*.f64 C (*.f64 F (pow.f64 B 2))) (+.f64 (*.f64 A (*.f64 F (pow.f64 B 2))) (+.f64 (*.f64 F (pow.f64 B 3)) (+.f64 (*.f64 1/2 (*.f64 (pow.f64 A 2) (*.f64 F B))) (*.f64 1/2 (*.f64 (pow.f64 C 2) (*.f64 F B))))))) (*.f64 5 (*.f64 A (*.f64 C (*.f64 F B)))))))) (fma.f64 B B (*.f64 A (*.f64 C -4))))
60.4b
(neg.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 -1/4 (*.f64 (/.f64 F A) (/.f64 (+.f64 A (+.f64 C (sqrt.f64 (+.f64 (+.f64 (*.f64 A A) (*.f64 C C)) (*.f64 -2 (*.f64 A C)))))) C))))))
49.3b
(/.f64 (neg.f64 (*.f64 (*.f64 (sqrt.f64 (*.f64 2 (fma.f64 B B (*.f64 A (*.f64 C -4))))) (sqrt.f64 F)) (sqrt.f64 (+.f64 (+.f64 C A) (hypot.f64 B (-.f64 A C)))))) (fma.f64 B B (*.f64 A (*.f64 C -4))))
58.3b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 2 (*.f64 -8 (*.f64 A (*.f64 (pow.f64 C 2) F)))))) (fma.f64 B B (*.f64 A (*.f64 C -4))))
61.7b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 2 (*.f64 F (pow.f64 B 3))))) (fma.f64 B B (*.f64 A (*.f64 C -4))))
61.0b
(*.f64 -1 (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 -1/4 (/.f64 (*.f64 F (+.f64 A (+.f64 C (sqrt.f64 (-.f64 (+.f64 (pow.f64 A 2) (pow.f64 C 2)) (*.f64 2 (*.f64 A C))))))) (*.f64 A C))))))
54.4b
(neg.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 -1/2 (/.f64 F A)))))
46.1b
(*.f64 (/.f64 (sqrt.f64 (*.f64 2 (pow.f64 (cbrt.f64 (*.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))) F)) 3))) 1) (/.f64 (neg.f64 (sqrt.f64 (+.f64 C (+.f64 A (hypot.f64 B (-.f64 A C)))))) (fma.f64 B B (*.f64 A (*.f64 C -4)))))
53.0b
(/.f64 (neg.f64 (*.f64 (sqrt.f64 (*.f64 2 (*.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))) F))) (sqrt.f64 (-.f64 (*.f64 2 C) (*.f64 1/2 (/.f64 (pow.f64 B 2) A)))))) (fma.f64 B B (*.f64 A (*.f64 C -4))))
50.3b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 2 (+.f64 (*.f64 C (*.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))) F)) (*.f64 (+.f64 A (hypot.f64 B (-.f64 A C))) (*.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))) F)))))) (fma.f64 B B (*.f64 A (*.f64 C -4))))
58.8b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 2 (-.f64 (fma.f64 2 (/.f64 (*.f64 A A) (/.f64 C (*.f64 F (*.f64 B B)))) (*.f64 4 (*.f64 (*.f64 A F) (*.f64 B B)))) (fma.f64 8 (*.f64 (*.f64 A A) (*.f64 C F)) (*.f64 1/2 (/.f64 F (/.f64 C (pow.f64 B 4))))))))) (fma.f64 B B (*.f64 A (*.f64 C -4))))
61.1b
(sqrt.f64 (/.f64 (*.f64 (*.f64 2 (*.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))) F)) (+.f64 C (+.f64 A (hypot.f64 B (-.f64 A C))))) (pow.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))) 2)))
62.1b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 2 (*.f64 (cbrt.f64 (*.f64 (pow.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))) 3) (pow.f64 F 3))) (+.f64 C (+.f64 A (hypot.f64 B (-.f64 A C)))))))) (fma.f64 B B (*.f64 A (*.f64 C -4))))
58.6b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 2 (*.f64 -8 (*.f64 (pow.f64 A 2) (*.f64 C F)))))) (fma.f64 B B (*.f64 A (*.f64 C -4))))
56.0b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 2 (*.f64 (*.f64 -4 (*.f64 A (*.f64 C F))) (+.f64 C (+.f64 A (hypot.f64 B (-.f64 A C)))))))) (fma.f64 B B (*.f64 A (*.f64 C -4))))
60.9b
(neg.f64 (*.f64 (sqrt.f64 (*.f64 F (+.f64 A (sqrt.f64 (+.f64 (*.f64 A A) (*.f64 B B)))))) (/.f64 (sqrt.f64 2) B)))
46.0b
(*.f64 (/.f64 (sqrt.f64 (*.f64 2 (*.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))) F))) 1) (/.f64 (neg.f64 (sqrt.f64 (+.f64 C (+.f64 A (hypot.f64 B (-.f64 A C)))))) (fma.f64 B B (*.f64 A (*.f64 C -4)))))
50.3b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 2 (*.f64 (pow.f64 (cbrt.f64 (*.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))) F)) 3) (+.f64 C (+.f64 A (hypot.f64 B (-.f64 A C)))))))) (fma.f64 B B (*.f64 A (*.f64 C -4))))
56.3b
(/.f64 (neg.f64 (*.f64 (sqrt.f64 (*.f64 2 (*.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))) F))) (sqrt.f64 (-.f64 (*.f64 2 A) (*.f64 1/2 (/.f64 (pow.f64 B 2) C)))))) (fma.f64 B B (*.f64 A (*.f64 C -4))))
50.4b
(*.f64 (/.f64 -1 (pow.f64 (cbrt.f64 (fma.f64 B B (*.f64 A (*.f64 C -4)))) 2)) (/.f64 (sqrt.f64 (*.f64 (*.f64 2 (*.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))) F)) (+.f64 C (+.f64 A (hypot.f64 B (-.f64 A C)))))) (cbrt.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))))))
56.1b
(neg.f64 (*.f64 (sqrt.f64 (*.f64 -1/2 (/.f64 F C))) (sqrt.f64 2)))
48.1b
(*.f64 (/.f64 (*.f64 (sqrt.f64 (*.f64 2 (fma.f64 B B (*.f64 A (*.f64 C -4))))) (sqrt.f64 F)) 1) (/.f64 (neg.f64 (sqrt.f64 (+.f64 C (+.f64 A (hypot.f64 B (-.f64 A C)))))) (fma.f64 B B (*.f64 A (*.f64 C -4)))))
54.7b
(/.f64 (neg.f64 (*.f64 (sqrt.f64 (*.f64 -8 (*.f64 A F))) (*.f64 C (sqrt.f64 2)))) (fma.f64 B B (*.f64 A (*.f64 C -4))))
46.0b
(*.f64 (/.f64 (pow.f64 (pow.f64 (*.f64 2 (*.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))) F)) 1/4) 2) 1) (/.f64 (neg.f64 (sqrt.f64 (+.f64 C (+.f64 A (hypot.f64 B (-.f64 A C)))))) (fma.f64 B B (*.f64 A (*.f64 C -4)))))
59.0b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 2 (-.f64 (*.f64 2 (*.f64 (*.f64 A F) (*.f64 B B))) (fma.f64 2 (*.f64 (*.f64 C F) (*.f64 B B)) (*.f64 8 (*.f64 (*.f64 A A) (*.f64 C F)))))))) (fma.f64 B B (*.f64 A (*.f64 C -4))))
60.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 B B (*.f64 A (*.f64 C -4))))
Compiler

Compiled 40487 to 23694 computations (41.5% saved)

localize22.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
6.4b
(*.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))) F)
7.9b
(/.f64 (neg.f64 (sqrt.f64 (+.f64 C (+.f64 A (hypot.f64 B (-.f64 A C)))))) (fma.f64 B B (*.f64 A (*.f64 C -4))))
12.4b
(*.f64 (/.f64 (pow.f64 (pow.f64 (*.f64 2 (*.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))) F)) 1/4) 2) 1) (/.f64 (neg.f64 (sqrt.f64 (+.f64 C (+.f64 A (hypot.f64 B (-.f64 A C)))))) (fma.f64 B B (*.f64 A (*.f64 C -4)))))
23.8b
(pow.f64 (*.f64 2 (*.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))) F)) 1/4)

series2.1s (6.6%)

Counts
2 → 68
Calls

2 calls:

1.6s
(*.f64 (/.f64 (pow.f64 (pow.f64 (*.f64 2 (*.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))) F)) 1/4) 2) 1) (/.f64 (neg.f64 (sqrt.f64 (+.f64 C (+.f64 A (hypot.f64 B (-.f64 A C)))))) (fma.f64 B B (*.f64 A (*.f64 C -4)))))
475.0ms
(pow.f64 (*.f64 2 (*.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))) F)) 1/4)

rewrite32.0ms (0.1%)

Algorithm
batch-egg-rewrite
Rules
257×add-sqr-sqrt_binary64
251×log1p-expm1-u_binary64
251×expm1-log1p-u_binary64
247×add-cbrt-cube_binary64
242×add-log-exp_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
02572
156471
Stop Event
node limit
Counts
2 → 34
Calls

2 calls:

31.0ms
(*.f64 (/.f64 (pow.f64 (pow.f64 (*.f64 2 (*.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))) F)) 1/4) 2) 1) (/.f64 (neg.f64 (sqrt.f64 (+.f64 C (+.f64 A (hypot.f64 B (-.f64 A C)))))) (fma.f64 B B (*.f64 A (*.f64 C -4)))))
31.0ms
(pow.f64 (*.f64 2 (*.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))) F)) 1/4)

simplify127.0ms (0.4%)

Algorithm
egg-herbie
Rules
590×*-commutative_binary64
279×+-commutative_binary64
269×fma-def_binary64
256×associate-*r*_binary64
240×associate-+r+_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0132420527
Stop Event
node limit
Counts
102 → 144

prune682.0ms (2.2%)

Pruning

32 alts after pruning (31 fresh and 1 done)

PrunedKeptTotal
New2214225
Fresh02727
Picked101
Done011
Total22232254
Error
24.9b
Counts
254 → 32
Alt Table
StatusErrorProgram
61.5b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 2 (neg.f64 (*.f64 F (pow.f64 B 3)))))) (fma.f64 B B (*.f64 A (*.f64 C -4))))
57.5b
(/.f64 (neg.f64 (fma.f64 A (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 -8 (*.f64 C F)))) (/.f64 F (/.f64 (sqrt.f64 (*.f64 -8 (*.f64 C F))) (*.f64 (sqrt.f64 2) (*.f64 B B)))))) (fma.f64 B B (*.f64 A (*.f64 C -4))))
61.9b
(log.f64 (pow.f64 (exp.f64 (/.f64 (sqrt.f64 (+.f64 (+.f64 C A) (hypot.f64 B (-.f64 A C)))) (fma.f64 B B (*.f64 A (*.f64 C -4))))) (sqrt.f64 (*.f64 2 (*.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))) F)))))
62.3b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 2 (-.f64 (+.f64 (*.f64 C (*.f64 F (pow.f64 B 2))) (+.f64 (*.f64 A (*.f64 F (pow.f64 B 2))) (+.f64 (*.f64 F (pow.f64 B 3)) (+.f64 (*.f64 1/2 (*.f64 (pow.f64 A 2) (*.f64 F B))) (*.f64 1/2 (*.f64 (pow.f64 C 2) (*.f64 F B))))))) (*.f64 5 (*.f64 A (*.f64 C (*.f64 F B)))))))) (fma.f64 B B (*.f64 A (*.f64 C -4))))
60.4b
(neg.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 -1/4 (*.f64 (/.f64 F A) (/.f64 (+.f64 A (+.f64 C (sqrt.f64 (+.f64 (+.f64 (*.f64 A A) (*.f64 C C)) (*.f64 -2 (*.f64 A C)))))) C))))))
49.3b
(/.f64 (neg.f64 (*.f64 (*.f64 (sqrt.f64 (*.f64 2 (fma.f64 B B (*.f64 A (*.f64 C -4))))) (sqrt.f64 F)) (sqrt.f64 (+.f64 (+.f64 C A) (hypot.f64 B (-.f64 A C)))))) (fma.f64 B B (*.f64 A (*.f64 C -4))))
58.3b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 2 (*.f64 -8 (*.f64 A (*.f64 (pow.f64 C 2) F)))))) (fma.f64 B B (*.f64 A (*.f64 C -4))))
61.7b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 2 (*.f64 F (pow.f64 B 3))))) (fma.f64 B B (*.f64 A (*.f64 C -4))))
61.0b
(*.f64 -1 (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 -1/4 (/.f64 (*.f64 F (+.f64 A (+.f64 C (sqrt.f64 (-.f64 (+.f64 (pow.f64 A 2) (pow.f64 C 2)) (*.f64 2 (*.f64 A C))))))) (*.f64 A C))))))
55.6b
(*.f64 (/.f64 (pow.f64 (pow.f64 (*.f64 2 (*.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))) F)) 1/4) 2) 1) (*.f64 (*.f64 1/4 (/.f64 (sqrt.f64 2) A)) (sqrt.f64 (/.f64 1 C))))
54.4b
(neg.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 -1/2 (/.f64 F A)))))
46.1b
(*.f64 (/.f64 (sqrt.f64 (*.f64 2 (pow.f64 (cbrt.f64 (*.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))) F)) 3))) 1) (/.f64 (neg.f64 (sqrt.f64 (+.f64 C (+.f64 A (hypot.f64 B (-.f64 A C)))))) (fma.f64 B B (*.f64 A (*.f64 C -4)))))
53.0b
(/.f64 (neg.f64 (*.f64 (sqrt.f64 (*.f64 2 (*.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))) F))) (sqrt.f64 (-.f64 (*.f64 2 C) (*.f64 1/2 (/.f64 (pow.f64 B 2) A)))))) (fma.f64 B B (*.f64 A (*.f64 C -4))))
50.3b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 2 (+.f64 (*.f64 C (*.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))) F)) (*.f64 (+.f64 A (hypot.f64 B (-.f64 A C))) (*.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))) F)))))) (fma.f64 B B (*.f64 A (*.f64 C -4))))
58.8b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 2 (-.f64 (fma.f64 2 (/.f64 (*.f64 A A) (/.f64 C (*.f64 F (*.f64 B B)))) (*.f64 4 (*.f64 (*.f64 A F) (*.f64 B B)))) (fma.f64 8 (*.f64 (*.f64 A A) (*.f64 C F)) (*.f64 1/2 (/.f64 F (/.f64 C (pow.f64 B 4))))))))) (fma.f64 B B (*.f64 A (*.f64 C -4))))
61.1b
(sqrt.f64 (/.f64 (*.f64 (*.f64 2 (*.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))) F)) (+.f64 C (+.f64 A (hypot.f64 B (-.f64 A C))))) (pow.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))) 2)))
62.1b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 2 (*.f64 (cbrt.f64 (*.f64 (pow.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))) 3) (pow.f64 F 3))) (+.f64 C (+.f64 A (hypot.f64 B (-.f64 A C)))))))) (fma.f64 B B (*.f64 A (*.f64 C -4))))
58.6b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 2 (*.f64 -8 (*.f64 (pow.f64 A 2) (*.f64 C F)))))) (fma.f64 B B (*.f64 A (*.f64 C -4))))
56.0b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 2 (*.f64 (*.f64 -4 (*.f64 A (*.f64 C F))) (+.f64 C (+.f64 A (hypot.f64 B (-.f64 A C)))))))) (fma.f64 B B (*.f64 A (*.f64 C -4))))
60.9b
(neg.f64 (*.f64 (sqrt.f64 (*.f64 F (+.f64 A (sqrt.f64 (+.f64 (*.f64 A A) (*.f64 B B)))))) (/.f64 (sqrt.f64 2) B)))
46.0b
(*.f64 (/.f64 (sqrt.f64 (*.f64 2 (*.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))) F))) 1) (/.f64 (neg.f64 (sqrt.f64 (+.f64 C (+.f64 A (hypot.f64 B (-.f64 A C)))))) (fma.f64 B B (*.f64 A (*.f64 C -4)))))
50.3b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 2 (*.f64 (pow.f64 (cbrt.f64 (*.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))) F)) 3) (+.f64 C (+.f64 A (hypot.f64 B (-.f64 A C)))))))) (fma.f64 B B (*.f64 A (*.f64 C -4))))
56.3b
(/.f64 (neg.f64 (*.f64 (sqrt.f64 (*.f64 2 (*.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))) F))) (sqrt.f64 (-.f64 (*.f64 2 A) (*.f64 1/2 (/.f64 (pow.f64 B 2) C)))))) (fma.f64 B B (*.f64 A (*.f64 C -4))))
50.4b
(*.f64 (/.f64 -1 (pow.f64 (cbrt.f64 (fma.f64 B B (*.f64 A (*.f64 C -4)))) 2)) (/.f64 (sqrt.f64 (*.f64 (*.f64 2 (*.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))) F)) (+.f64 C (+.f64 A (hypot.f64 B (-.f64 A C)))))) (cbrt.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))))))
57.9b
(*.f64 (/.f64 (pow.f64 (exp.f64 (*.f64 1/4 (-.f64 (log.f64 (*.f64 -2 (-.f64 (pow.f64 B 2) (*.f64 4 (*.f64 A C))))) (log.f64 (/.f64 -1 F))))) 2) 1) (/.f64 (neg.f64 (sqrt.f64 (+.f64 C (+.f64 A (hypot.f64 B (-.f64 A C)))))) (fma.f64 B B (*.f64 A (*.f64 C -4)))))
56.1b
(neg.f64 (*.f64 (sqrt.f64 (*.f64 -1/2 (/.f64 F C))) (sqrt.f64 2)))
48.1b
(*.f64 (/.f64 (*.f64 (sqrt.f64 (*.f64 2 (fma.f64 B B (*.f64 A (*.f64 C -4))))) (sqrt.f64 F)) 1) (/.f64 (neg.f64 (sqrt.f64 (+.f64 C (+.f64 A (hypot.f64 B (-.f64 A C)))))) (fma.f64 B B (*.f64 A (*.f64 C -4)))))
55.2b
(*.f64 (/.f64 (pow.f64 (exp.f64 (*.f64 1/4 (-.f64 (log.f64 (*.f64 -8 (*.f64 A F))) (log.f64 (/.f64 1 C))))) 2) 1) (/.f64 (neg.f64 (sqrt.f64 (+.f64 C (+.f64 A (hypot.f64 B (-.f64 A C)))))) (fma.f64 B B (*.f64 A (*.f64 C -4)))))
59.0b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 2 (-.f64 (*.f64 2 (*.f64 (*.f64 A F) (*.f64 B B))) (fma.f64 2 (*.f64 (*.f64 C F) (*.f64 B B)) (*.f64 8 (*.f64 (*.f64 A A) (*.f64 C F)))))))) (fma.f64 B B (*.f64 A (*.f64 C -4))))
48.2b
(*.f64 (/.f64 (pow.f64 (*.f64 (pow.f64 (*.f64 2 (fma.f64 B B (*.f64 A (*.f64 C -4)))) 1/4) (pow.f64 F 1/4)) 2) 1) (/.f64 (neg.f64 (sqrt.f64 (+.f64 C (+.f64 A (hypot.f64 B (-.f64 A C)))))) (fma.f64 B B (*.f64 A (*.f64 C -4)))))
54.7b
(/.f64 (neg.f64 (*.f64 (sqrt.f64 (*.f64 -8 (*.f64 A F))) (*.f64 C (sqrt.f64 2)))) (fma.f64 B B (*.f64 A (*.f64 C -4))))
60.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 B B (*.f64 A (*.f64 C -4))))
Compiler

Compiled 43254 to 25370 computations (41.3% saved)

regimes2.3s (7.2%)

Accuracy

Total 13.7b remaining (37.9%)

Threshold costs 0b (0%)

Counts
164 → 4
Compiler

Compiled 46403 to 30828 computations (33.6% saved)

bsearch13.0ms (0%)

Compiler

Compiled 44 to 32 computations (27.3% saved)

simplify14.0ms (0%)

Algorithm
egg-herbie
Rules
51×*-commutative_binary64
37×+-commutative_binary64
32×sub-neg_binary64
29×neg-sub0_binary64
29×neg-mul-1_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
085387
1157387
2229387
3285387
4322387
5337387
6344387
7346387
Stop Event
saturated

end714.0ms (2.3%)

Compiler

Compiled 1707 to 1148 computations (32.7% saved)

Profiling

Loading profile data...