Details

Time bar (total: 40.8s)

analyze3.2s (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%98.2%1.8%7
0%92%8%8
0%91.2%8.8%9
0.4%89.3%10.3%10
7.1%79.2%13.6%11
11.9%70.2%17.9%12
13.8%67.4%18.7%13
16.6%63.3%20.1%14
Compiler

Compiled 45 to 33 computations (26.7% saved)

sample6.6s (16.2%)

Results
1.5s5749×body128valid
848.0ms889×body1024valid
812.0ms885×body1024invalid
760.0ms646×body2048valid
729.0ms603×body2048invalid
641.0ms2534×body128invalid
469.0ms630×body512valid
445.0ms602×body512invalid
168.0ms340×body256valid
168.0ms372×body256invalid
3.0msbody4096valid
Compiler

Compiled 134 to 98 computations (26.9% saved)

simplify26.0ms (0.1%)

Algorithm
egg-herbie
Rules
470×associate-*l*_binary64
454×associate-*r*_binary64
420×distribute-rgt-in_binary64
410×distribute-lft-in_binary64
306×fma-def_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
02361
16149
219549
383649
4445649
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
47.1b
Counts
3 → 2
Alt Table
StatusErrorProgram
47.1b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F) (*.f64 2 (+.f64 A (-.f64 C (hypot.f64 B (-.f64 A C)))))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
50.7b
(/.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%)

Local error

Found 4 expressions with local error:

NewErrorProgram
2.8b
(*.f64 (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F) (*.f64 2 (+.f64 A (-.f64 C (hypot.f64 B (-.f64 A C))))))
6.8b
(*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F)
18.4b
(sqrt.f64 (*.f64 (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F) (*.f64 2 (+.f64 A (-.f64 C (hypot.f64 B (-.f64 A C)))))))
21.5b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F) (*.f64 2 (+.f64 A (-.f64 C (hypot.f64 B (-.f64 A C)))))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))

series7.8s (19.1%)

Counts
4 → 136
Calls

4 calls:

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

rewrite46.0ms (0.1%)

Algorithm
batch-egg-rewrite
Rules
232×add-sqr-sqrt_binary64
220×log1p-expm1-u_binary64
220×expm1-log1p-u_binary64
219×add-cbrt-cube_binary64
215×add-exp-log_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
020129
1455127
Stop Event
node limit
Counts
4 → 97
Calls

4 calls:

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

simplify221.0ms (0.5%)

Algorithm
egg-herbie
Rules
544×fma-def_binary64
492×associate-*r*_binary64
252×associate-*l/_binary64
251×associate-/l*_binary64
166×associate-/r*_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0208136919
Stop Event
node limit
Counts
233 → 256

prune955.0ms (2.3%)

Pruning

29 alts after pruning (28 fresh and 1 done)

PrunedKeptTotal
New22828256
Fresh101
Picked011
Done000
Total22929258
Error
24.8b
Counts
258 → 29
Alt Table
StatusErrorProgram
50.1b
(/.f64 (neg.f64 (*.f64 (hypot.f64 B (sqrt.f64 (*.f64 C (*.f64 A -4)))) (sqrt.f64 (*.f64 F (*.f64 2 (-.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
47.1b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F) (*.f64 2 (+.f64 A (-.f64 C (hypot.f64 B (-.f64 A C)))))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
58.9b
(/.f64 (neg.f64 (sqrt.f64 (-.f64 (fma.f64 4 (/.f64 (*.f64 C C) (/.f64 A (*.f64 F (*.f64 B B)))) (*.f64 8 (*.f64 (*.f64 C F) (*.f64 B B)))) (+.f64 (/.f64 F (/.f64 A (pow.f64 B 4))) (*.f64 (*.f64 16 A) (*.f64 (*.f64 C C) F)))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
59.9b
(/.f64 (neg.f64 (sqrt.f64 (-.f64 (fma.f64 4 (/.f64 (*.f64 A A) (/.f64 C (*.f64 F (*.f64 B B)))) (*.f64 8 (*.f64 (*.f64 A F) (*.f64 B B)))) (fma.f64 16 (*.f64 (*.f64 A A) (*.f64 C F)) (/.f64 F (/.f64 C (pow.f64 B 4))))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
59.9b
(/.f64 (neg.f64 (sqrt.f64 (-.f64 (+.f64 (*.f64 2 (*.f64 C (*.f64 F (pow.f64 B 2)))) (+.f64 (*.f64 2 (*.f64 A (*.f64 F (pow.f64 B 2)))) (+.f64 (*.f64 2 (*.f64 F (pow.f64 B 3))) (+.f64 (*.f64 (pow.f64 A 2) (*.f64 F B)) (*.f64 (pow.f64 C 2) (*.f64 F B)))))) (*.f64 10 (*.f64 A (*.f64 C (*.f64 F B))))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
55.5b
(neg.f64 (*.f64 (sqrt.f64 (*.f64 -1/2 (/.f64 F C))) (sqrt.f64 2)))
55.3b
(neg.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 -1/2 (/.f64 F A)))))
54.1b
(*.f64 (/.f64 -1 (hypot.f64 B (sqrt.f64 (*.f64 C (*.f64 A -4))))) (/.f64 (sqrt.f64 (*.f64 (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F) (*.f64 2 (-.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))))) (hypot.f64 B (sqrt.f64 (*.f64 C (*.f64 A -4))))))
52.0b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 F (-.f64 (fma.f64 2 (*.f64 C (*.f64 B B)) (fma.f64 2 (*.f64 A (*.f64 B B)) (*.f64 (*.f64 8 (*.f64 A C)) (sqrt.f64 (+.f64 (+.f64 (*.f64 A A) (+.f64 (*.f64 C C) (*.f64 B B))) (*.f64 -2 (*.f64 A C))))))) (fma.f64 2 (*.f64 (sqrt.f64 (+.f64 (+.f64 (*.f64 A A) (+.f64 (*.f64 C C) (*.f64 B B))) (*.f64 -2 (*.f64 A C)))) (*.f64 B B)) (*.f64 8 (+.f64 (*.f64 A (*.f64 C C)) (*.f64 (*.f64 A A) C)))))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
59.3b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 2 (*.f64 F (pow.f64 B 3))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
57.5b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (*.f64 -4 (*.f64 A (*.f64 C F))) (*.f64 2 (+.f64 A (-.f64 C (hypot.f64 B (-.f64 A C)))))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
60.1b
(-.f64 (*.f64 (*.f64 2 (/.f64 (*.f64 (*.f64 A C) (sqrt.f64 2)) (pow.f64 B 3))) (sqrt.f64 (/.f64 F (/.f64 (-.f64 A (sqrt.f64 (+.f64 (*.f64 A A) (*.f64 B B)))) (+.f64 (*.f64 A A) (*.f64 B B)))))) (fma.f64 2 (*.f64 (/.f64 (*.f64 (*.f64 (*.f64 A A) C) (sqrt.f64 2)) (pow.f64 B 3)) (sqrt.f64 (/.f64 F (-.f64 A (sqrt.f64 (+.f64 (*.f64 A A) (*.f64 B B))))))) (fma.f64 1/2 (*.f64 (/.f64 C (/.f64 B (sqrt.f64 2))) (sqrt.f64 (/.f64 F (-.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 (*.f64 1/2 (/.f64 A (/.f64 B (*.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))))))))))))
63.3b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (pow.f64 (pow.f64 (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F) 3) 1/3) (*.f64 2 (+.f64 A (-.f64 C (hypot.f64 B (-.f64 A C)))))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
59.9b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 -2 (*.f64 F (pow.f64 B 3))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
55.3b
(/.f64 (neg.f64 (neg.f64 (*.f64 (*.f64 A (sqrt.f64 2)) (sqrt.f64 (*.f64 -8 (*.f64 C F)))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
62.7b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (-.f64 (exp.f64 (log1p.f64 (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F))) 1) (*.f64 2 (+.f64 A (-.f64 C (hypot.f64 B (-.f64 A C)))))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
53.8b
(*.f64 (/.f64 -1 (cbrt.f64 (pow.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) 2))) (/.f64 (sqrt.f64 (*.f64 (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F) (*.f64 2 (-.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))))) (cbrt.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))))))
58.7b
(/.f64 (neg.f64 (sqrt.f64 (fma.f64 8 (*.f64 (*.f64 C F) (*.f64 B B)) (neg.f64 (*.f64 (*.f64 16 A) (*.f64 (*.f64 C C) F)))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
59.5b
(/.f64 (neg.f64 (sqrt.f64 (-.f64 (*.f64 8 (*.f64 A (*.f64 F (pow.f64 B 2)))) (*.f64 16 (*.f64 (pow.f64 A 2) (*.f64 C F)))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
48.1b
(/.f64 (neg.f64 (expm1.f64 (log1p.f64 (sqrt.f64 (*.f64 (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F) (*.f64 2 (-.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C))))))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
59.3b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 -16 (*.f64 (pow.f64 A 2) (*.f64 C F))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
57.5b
(/.f64 (neg.f64 (*.f64 (sqrt.f64 (*.f64 F (-.f64 C (sqrt.f64 (+.f64 (pow.f64 B 2) (pow.f64 C 2)))))) (*.f64 (sqrt.f64 2) B))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
60.3b
(/.f64 (neg.f64 (sqrt.f64 (-.f64 (*.f64 4 (*.f64 (*.f64 C F) (*.f64 B B))) (fma.f64 4 (*.f64 (*.f64 A F) (*.f64 B B)) (*.f64 (*.f64 16 A) (*.f64 (*.f64 C C) F)))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
58.1b
(/.f64 (neg.f64 (neg.f64 (fma.f64 (sqrt.f64 (*.f64 -8 (*.f64 A F))) (*.f64 C (sqrt.f64 2)) (/.f64 F (/.f64 (sqrt.f64 (*.f64 -8 (*.f64 A F))) (*.f64 (sqrt.f64 2) (*.f64 B B))))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
63.0b
(/.f64 (neg.f64 (sqrt.f64 (log.f64 (pow.f64 (pow.f64 (exp.f64 (-.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))) 2) (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
53.1b
(/.f64 (neg.f64 (sqrt.f64 (-.f64 (+.f64 (*.f64 2 (*.f64 A (*.f64 F (pow.f64 B 2)))) (+.f64 (*.f64 2 (*.f64 C (*.f64 F (pow.f64 B 2)))) (+.f64 (*.f64 8 (*.f64 (*.f64 A (*.f64 C F)) (sqrt.f64 (+.f64 (pow.f64 C 2) (pow.f64 B 2))))) (*.f64 2 (*.f64 (*.f64 A (*.f64 C (*.f64 F (pow.f64 B 2)))) (sqrt.f64 (/.f64 1 (+.f64 (pow.f64 C 2) (pow.f64 B 2))))))))) (+.f64 (*.f64 2 (*.f64 (sqrt.f64 (+.f64 (pow.f64 C 2) (pow.f64 B 2))) (*.f64 F (pow.f64 B 2)))) (*.f64 8 (*.f64 A (*.f64 (pow.f64 C 2) F))))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
47.5b
(/.f64 (neg.f64 (pow.f64 (pow.f64 (*.f64 (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F) (*.f64 2 (-.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C))))) 1/4) 2)) (fma.f64 B B (*.f64 C (*.f64 A -4))))
59.5b
(-.f64 (*.f64 (*.f64 2 (/.f64 (*.f64 (*.f64 A C) (sqrt.f64 2)) (pow.f64 B 3))) (sqrt.f64 (/.f64 (+.f64 (*.f64 C C) (*.f64 B B)) (/.f64 (-.f64 C (sqrt.f64 (+.f64 (*.f64 B B) (*.f64 C C)))) F)))) (fma.f64 (sqrt.f64 (*.f64 F (-.f64 C (sqrt.f64 (+.f64 (*.f64 B B) (*.f64 C C)))))) (/.f64 (sqrt.f64 2) B) (fma.f64 1/2 (*.f64 (/.f64 A (/.f64 B (*.f64 C (sqrt.f64 2)))) (sqrt.f64 (/.f64 F (*.f64 (+.f64 (*.f64 B B) (*.f64 C C)) (-.f64 C (sqrt.f64 (+.f64 (*.f64 B B) (*.f64 C C)))))))) (fma.f64 2 (*.f64 (/.f64 (*.f64 (*.f64 A (*.f64 C C)) (sqrt.f64 2)) (pow.f64 B 3)) (sqrt.f64 (/.f64 F (-.f64 C (sqrt.f64 (+.f64 (*.f64 B B) (*.f64 C C))))))) (*.f64 1/2 (*.f64 (/.f64 A (/.f64 B (sqrt.f64 2))) (sqrt.f64 (/.f64 F (-.f64 C (sqrt.f64 (+.f64 (*.f64 B B) (*.f64 C C))))))))))))
55.8b
(/.f64 (neg.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 C (*.f64 A -4))))
Compiler

Compiled 55116 to 31100 computations (43.6% saved)

localize20.0ms (0%)

Local error

Found 4 expressions with local error:

NewErrorProgram
4.3b
(*.f64 (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F) (*.f64 2 (-.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))))
6.8b
(*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F)
20.3b
(/.f64 (neg.f64 (pow.f64 (pow.f64 (*.f64 (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F) (*.f64 2 (-.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C))))) 1/4) 2)) (fma.f64 B B (*.f64 C (*.f64 A -4))))
26.9b
(pow.f64 (*.f64 (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F) (*.f64 2 (-.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C))))) 1/4)

series5.6s (13.8%)

Counts
3 → 116
Calls

3 calls:

2.9s
(/.f64 (neg.f64 (pow.f64 (pow.f64 (*.f64 (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F) (*.f64 2 (-.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C))))) 1/4) 2)) (fma.f64 B B (*.f64 C (*.f64 A -4))))
2.6s
(pow.f64 (*.f64 (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F) (*.f64 2 (-.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C))))) 1/4)
149.0ms
(*.f64 (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F) (*.f64 2 (-.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))))

rewrite39.0ms (0.1%)

Algorithm
batch-egg-rewrite
Rules
243×add-sqr-sqrt_binary64
237×log1p-expm1-u_binary64
237×expm1-log1p-u_binary64
233×add-cbrt-cube_binary64
228×add-exp-log_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
022117
1499116
Stop Event
node limit
Counts
3 → 55
Calls

3 calls:

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

simplify232.0ms (0.6%)

Algorithm
egg-herbie
Rules
571×fma-def_binary64
255×associate-/l*_binary64
182×associate-/r*_binary64
165×associate-*l/_binary64
148×times-frac_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0242738366
Stop Event
node limit
Counts
171 → 243

prune1.1s (2.6%)

Pruning

32 alts after pruning (31 fresh and 1 done)

PrunedKeptTotal
New25411265
Fresh72027
Picked101
Done011
Total26232294
Error
22.6b
Counts
294 → 32
Alt Table
StatusErrorProgram
50.1b
(/.f64 (neg.f64 (*.f64 (hypot.f64 B (sqrt.f64 (*.f64 C (*.f64 A -4)))) (sqrt.f64 (*.f64 F (*.f64 2 (-.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
47.1b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F) (*.f64 2 (+.f64 A (-.f64 C (hypot.f64 B (-.f64 A C)))))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
47.4b
(*.f64 (neg.f64 (sqrt.f64 (*.f64 (*.f64 (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F) 2) (+.f64 A (-.f64 C (hypot.f64 B (-.f64 A C))))))) (/.f64 1 (fma.f64 B B (*.f64 C (*.f64 A -4)))))
59.7b
(/.f64 (neg.f64 (pow.f64 (exp.f64 (*.f64 1/4 (-.f64 (log.f64 (neg.f64 (*.f64 16 (*.f64 (pow.f64 A 2) F)))) (log.f64 (/.f64 1 C))))) 2)) (fma.f64 B B (*.f64 C (*.f64 A -4))))
59.5b
(-.f64 (*.f64 (*.f64 2 (/.f64 (*.f64 (*.f64 A C) (sqrt.f64 2)) (pow.f64 B 3))) (sqrt.f64 (/.f64 (+.f64 (*.f64 C C) (*.f64 B B)) (/.f64 (-.f64 C (sqrt.f64 (+.f64 (*.f64 B B) (*.f64 C C)))) F)))) (fma.f64 (sqrt.f64 (*.f64 F (-.f64 C (sqrt.f64 (+.f64 (*.f64 B B) (*.f64 C C)))))) (/.f64 (sqrt.f64 2) B) (fma.f64 1/2 (*.f64 (/.f64 A (/.f64 B (*.f64 C (sqrt.f64 2)))) (sqrt.f64 (/.f64 F (*.f64 (+.f64 (*.f64 B B) (*.f64 C C)) (-.f64 C (sqrt.f64 (+.f64 (*.f64 B B) (*.f64 C C)))))))) (fma.f64 2 (*.f64 (/.f64 (*.f64 (*.f64 A (*.f64 C C)) (sqrt.f64 2)) (pow.f64 B 3)) (sqrt.f64 (/.f64 F (-.f64 C (sqrt.f64 (+.f64 (*.f64 B B) (*.f64 C C))))))) (*.f64 1/2 (*.f64 (/.f64 A (/.f64 B (sqrt.f64 2))) (sqrt.f64 (/.f64 F (-.f64 C (sqrt.f64 (+.f64 (*.f64 B B) (*.f64 C C))))))))))))
58.9b
(/.f64 (neg.f64 (sqrt.f64 (-.f64 (fma.f64 4 (/.f64 (*.f64 C C) (/.f64 A (*.f64 F (*.f64 B B)))) (*.f64 8 (*.f64 (*.f64 C F) (*.f64 B B)))) (+.f64 (/.f64 F (/.f64 A (pow.f64 B 4))) (*.f64 (*.f64 16 A) (*.f64 (*.f64 C C) F)))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
59.9b
(/.f64 (neg.f64 (sqrt.f64 (-.f64 (fma.f64 4 (/.f64 (*.f64 A A) (/.f64 C (*.f64 F (*.f64 B B)))) (*.f64 8 (*.f64 (*.f64 A F) (*.f64 B B)))) (fma.f64 16 (*.f64 (*.f64 A A) (*.f64 C F)) (/.f64 F (/.f64 C (pow.f64 B 4))))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
55.5b
(neg.f64 (*.f64 (sqrt.f64 (*.f64 -1/2 (/.f64 F C))) (sqrt.f64 2)))
55.3b
(neg.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 -1/2 (/.f64 F A)))))
58.8b
(/.f64 (neg.f64 (pow.f64 (+.f64 (exp.f64 (*.f64 1/4 (-.f64 (log.f64 (*.f64 -2 F)) (*.f64 3 (log.f64 (/.f64 -1 B)))))) (+.f64 (*.f64 1/4 (/.f64 (*.f64 C (exp.f64 (*.f64 1/4 (-.f64 (log.f64 (*.f64 -2 F)) (*.f64 3 (log.f64 (/.f64 -1 B))))))) B)) (*.f64 1/4 (/.f64 (*.f64 A (exp.f64 (*.f64 1/4 (-.f64 (log.f64 (*.f64 -2 F)) (*.f64 3 (log.f64 (/.f64 -1 B))))))) B)))) 2)) (fma.f64 B B (*.f64 C (*.f64 A -4))))
54.1b
(*.f64 (/.f64 -1 (hypot.f64 B (sqrt.f64 (*.f64 C (*.f64 A -4))))) (/.f64 (sqrt.f64 (*.f64 (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F) (*.f64 2 (-.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))))) (hypot.f64 B (sqrt.f64 (*.f64 C (*.f64 A -4))))))
52.0b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 F (-.f64 (fma.f64 2 (*.f64 C (*.f64 B B)) (fma.f64 2 (*.f64 A (*.f64 B B)) (*.f64 (*.f64 8 (*.f64 A C)) (sqrt.f64 (+.f64 (+.f64 (*.f64 A A) (+.f64 (*.f64 C C) (*.f64 B B))) (*.f64 -2 (*.f64 A C))))))) (fma.f64 2 (*.f64 (sqrt.f64 (+.f64 (+.f64 (*.f64 A A) (+.f64 (*.f64 C C) (*.f64 B B))) (*.f64 -2 (*.f64 A C)))) (*.f64 B B)) (*.f64 8 (+.f64 (*.f64 A (*.f64 C C)) (*.f64 (*.f64 A A) C)))))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
58.4b
(/.f64 (neg.f64 (pow.f64 (pow.f64 (exp.f64 1/4) (+.f64 (log.f64 (*.f64 -2 F)) (*.f64 -3 (log.f64 (/.f64 -1 B))))) 2)) (fma.f64 B B (*.f64 C (*.f64 A -4))))
59.3b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 2 (*.f64 F (pow.f64 B 3))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
58.6b
(/.f64 (neg.f64 (pow.f64 (pow.f64 (exp.f64 1/4) (+.f64 (log.f64 (*.f64 -2 F)) (*.f64 -3 (neg.f64 (log.f64 B))))) 2)) (fma.f64 B B (*.f64 C (*.f64 A -4))))
55.8b
(/.f64 (neg.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 C (*.f64 A -4))))
58.5b
(/.f64 (neg.f64 (pow.f64 (exp.f64 (*.f64 1/4 (-.f64 (log.f64 (*.f64 -2 F)) (*.f64 3 (log.f64 (/.f64 1 B)))))) 2)) (fma.f64 B B (*.f64 C (*.f64 A -4))))
60.1b
(-.f64 (*.f64 (*.f64 2 (/.f64 (*.f64 (*.f64 A C) (sqrt.f64 2)) (pow.f64 B 3))) (sqrt.f64 (/.f64 F (/.f64 (-.f64 A (sqrt.f64 (+.f64 (*.f64 A A) (*.f64 B B)))) (+.f64 (*.f64 A A) (*.f64 B B)))))) (fma.f64 2 (*.f64 (/.f64 (*.f64 (*.f64 (*.f64 A A) C) (sqrt.f64 2)) (pow.f64 B 3)) (sqrt.f64 (/.f64 F (-.f64 A (sqrt.f64 (+.f64 (*.f64 A A) (*.f64 B B))))))) (fma.f64 1/2 (*.f64 (/.f64 C (/.f64 B (sqrt.f64 2))) (sqrt.f64 (/.f64 F (-.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 (*.f64 1/2 (/.f64 A (/.f64 B (*.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))))))))))))
63.3b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (pow.f64 (pow.f64 (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F) 3) 1/3) (*.f64 2 (+.f64 A (-.f64 C (hypot.f64 B (-.f64 A C)))))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
63.5b
(/.f64 (neg.f64 (pow.f64 (*.f64 (pow.f64 (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F) 1/4) (pow.f64 (*.f64 2 (+.f64 A (-.f64 C (hypot.f64 B (-.f64 A C))))) 1/4)) 2)) (fma.f64 B B (*.f64 C (*.f64 A -4))))
51.8b
(/.f64 (neg.f64 (pow.f64 (exp.f64 (*.f64 1/4 (-.f64 (log.f64 (*.f64 -2 (*.f64 (-.f64 (pow.f64 B 2) (*.f64 4 (*.f64 A C))) (-.f64 (+.f64 A C) (sqrt.f64 (-.f64 (+.f64 (pow.f64 A 2) (+.f64 (pow.f64 B 2) (pow.f64 C 2))) (*.f64 2 (*.f64 A C)))))))) (log.f64 (/.f64 -1 F))))) 2)) (fma.f64 B B (*.f64 C (*.f64 A -4))))
59.9b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 -2 (*.f64 F (pow.f64 B 3))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
55.3b
(/.f64 (neg.f64 (neg.f64 (*.f64 (*.f64 A (sqrt.f64 2)) (sqrt.f64 (*.f64 -8 (*.f64 C F)))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
62.7b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (-.f64 (exp.f64 (log1p.f64 (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F))) 1) (*.f64 2 (+.f64 A (-.f64 C (hypot.f64 B (-.f64 A C)))))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
53.8b
(*.f64 (/.f64 -1 (cbrt.f64 (pow.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) 2))) (/.f64 (sqrt.f64 (*.f64 (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F) (*.f64 2 (-.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))))) (cbrt.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))))))
57.8b
(/.f64 (neg.f64 (pow.f64 (exp.f64 (*.f64 1/4 (-.f64 (log.f64 (neg.f64 (*.f64 16 (*.f64 (pow.f64 C 2) F)))) (log.f64 (/.f64 1 A))))) 2)) (fma.f64 B B (*.f64 C (*.f64 A -4))))
59.3b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 -16 (*.f64 (pow.f64 A 2) (*.f64 C F))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
57.5b
(/.f64 (neg.f64 (*.f64 (sqrt.f64 (*.f64 F (-.f64 C (sqrt.f64 (+.f64 (pow.f64 B 2) (pow.f64 C 2)))))) (*.f64 (sqrt.f64 2) B))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
61.2b
(exp.f64 (log.f64 (/.f64 (neg.f64 (sqrt.f64 (*.f64 (*.f64 (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F) 2) (+.f64 A (-.f64 C (hypot.f64 B (-.f64 A C))))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))))
60.3b
(/.f64 (neg.f64 (sqrt.f64 (-.f64 (*.f64 4 (*.f64 (*.f64 C F) (*.f64 B B))) (fma.f64 4 (*.f64 (*.f64 A F) (*.f64 B B)) (*.f64 (*.f64 16 A) (*.f64 (*.f64 C C) F)))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
58.1b
(/.f64 (neg.f64 (neg.f64 (fma.f64 (sqrt.f64 (*.f64 -8 (*.f64 A F))) (*.f64 C (sqrt.f64 2)) (/.f64 F (/.f64 (sqrt.f64 (*.f64 -8 (*.f64 A F))) (*.f64 (sqrt.f64 2) (*.f64 B B))))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
44.8b
(/.f64 (neg.f64 (pow.f64 (*.f64 (pow.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) 1/4) (pow.f64 (*.f64 F (*.f64 2 (+.f64 A (-.f64 C (hypot.f64 B (-.f64 A C)))))) 1/4)) 2)) (fma.f64 B B (*.f64 C (*.f64 A -4))))
Compiler

Compiled 57077 to 33868 computations (40.7% saved)

localize21.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
1.2b
(+.f64 A (-.f64 C (hypot.f64 B (-.f64 A C))))
12.8b
(pow.f64 (*.f64 F (*.f64 2 (+.f64 A (-.f64 C (hypot.f64 B (-.f64 A C)))))) 1/4)
17.9b
(/.f64 (neg.f64 (pow.f64 (*.f64 (pow.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) 1/4) (pow.f64 (*.f64 F (*.f64 2 (+.f64 A (-.f64 C (hypot.f64 B (-.f64 A C)))))) 1/4)) 2)) (fma.f64 B B (*.f64 C (*.f64 A -4))))
20.4b
(pow.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) 1/4)

series4.3s (10.6%)

Counts
4 → 140
Calls

4 calls:

3.1s
(/.f64 (neg.f64 (pow.f64 (*.f64 (pow.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) 1/4) (pow.f64 (*.f64 F (*.f64 2 (+.f64 A (-.f64 C (hypot.f64 B (-.f64 A C)))))) 1/4)) 2)) (fma.f64 B B (*.f64 C (*.f64 A -4))))
1.1s
(pow.f64 (*.f64 F (*.f64 2 (+.f64 A (-.f64 C (hypot.f64 B (-.f64 A C)))))) 1/4)
40.0ms
(pow.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) 1/4)
39.0ms
(+.f64 A (-.f64 C (hypot.f64 B (-.f64 A C))))

rewrite47.0ms (0.1%)

Algorithm
batch-egg-rewrite
Rules
257×log1p-expm1-u_binary64
257×expm1-log1p-u_binary64
251×add-cbrt-cube_binary64
245×add-exp-log_binary64
245×add-log-exp_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
023102
153299
Stop Event
node limit
Counts
4 → 76
Calls

4 calls:

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

simplify192.0ms (0.5%)

Algorithm
egg-herbie
Rules
409×fma-def_binary64
357×associate-*r*_binary64
232×associate-/l*_binary64
169×associate-*l/_binary64
149×associate-/r*_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0192928302
Stop Event
node limit
Counts
216 → 310

prune922.0ms (2.3%)

Pruning

36 alts after pruning (35 fresh and 1 done)

PrunedKeptTotal
New3037310
Fresh22830
Picked101
Done011
Total30636342
Error
22.1b
Counts
342 → 36
Alt Table
StatusErrorProgram
50.1b
(/.f64 (neg.f64 (*.f64 (hypot.f64 B (sqrt.f64 (*.f64 C (*.f64 A -4)))) (sqrt.f64 (*.f64 F (*.f64 2 (-.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
47.1b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F) (*.f64 2 (+.f64 A (-.f64 C (hypot.f64 B (-.f64 A C)))))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
47.4b
(*.f64 (neg.f64 (sqrt.f64 (*.f64 (*.f64 (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F) 2) (+.f64 A (-.f64 C (hypot.f64 B (-.f64 A C))))))) (/.f64 1 (fma.f64 B B (*.f64 C (*.f64 A -4)))))
59.7b
(/.f64 (neg.f64 (pow.f64 (exp.f64 (*.f64 1/4 (-.f64 (log.f64 (neg.f64 (*.f64 16 (*.f64 (pow.f64 A 2) F)))) (log.f64 (/.f64 1 C))))) 2)) (fma.f64 B B (*.f64 C (*.f64 A -4))))
58.9b
(/.f64 (neg.f64 (sqrt.f64 (-.f64 (fma.f64 4 (/.f64 (*.f64 C C) (/.f64 A (*.f64 F (*.f64 B B)))) (*.f64 8 (*.f64 (*.f64 C F) (*.f64 B B)))) (+.f64 (/.f64 F (/.f64 A (pow.f64 B 4))) (*.f64 (*.f64 16 A) (*.f64 (*.f64 C C) F)))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
59.9b
(/.f64 (neg.f64 (sqrt.f64 (-.f64 (fma.f64 4 (/.f64 (*.f64 A A) (/.f64 C (*.f64 F (*.f64 B B)))) (*.f64 8 (*.f64 (*.f64 A F) (*.f64 B B)))) (fma.f64 16 (*.f64 (*.f64 A A) (*.f64 C F)) (/.f64 F (/.f64 C (pow.f64 B 4))))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
55.5b
(neg.f64 (*.f64 (sqrt.f64 (*.f64 -1/2 (/.f64 F C))) (sqrt.f64 2)))
55.3b
(neg.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 -1/2 (/.f64 F A)))))
58.8b
(/.f64 (neg.f64 (pow.f64 (+.f64 (exp.f64 (*.f64 1/4 (-.f64 (log.f64 (*.f64 -2 F)) (*.f64 3 (log.f64 (/.f64 -1 B)))))) (+.f64 (*.f64 1/4 (/.f64 (*.f64 C (exp.f64 (*.f64 1/4 (-.f64 (log.f64 (*.f64 -2 F)) (*.f64 3 (log.f64 (/.f64 -1 B))))))) B)) (*.f64 1/4 (/.f64 (*.f64 A (exp.f64 (*.f64 1/4 (-.f64 (log.f64 (*.f64 -2 F)) (*.f64 3 (log.f64 (/.f64 -1 B))))))) B)))) 2)) (fma.f64 B B (*.f64 C (*.f64 A -4))))
56.7b
(/.f64 (neg.f64 (pow.f64 (*.f64 (pow.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) 1/4) (pow.f64 (*.f64 F (*.f64 2 (-.f64 (*.f64 2 A) (*.f64 1/2 (/.f64 (pow.f64 B 2) C))))) 1/4)) 2)) (fma.f64 B B (*.f64 C (*.f64 A -4))))
54.1b
(*.f64 (/.f64 -1 (hypot.f64 B (sqrt.f64 (*.f64 C (*.f64 A -4))))) (/.f64 (sqrt.f64 (*.f64 (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F) (*.f64 2 (-.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))))) (hypot.f64 B (sqrt.f64 (*.f64 C (*.f64 A -4))))))
52.0b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 F (-.f64 (fma.f64 2 (*.f64 C (*.f64 B B)) (fma.f64 2 (*.f64 A (*.f64 B B)) (*.f64 (*.f64 8 (*.f64 A C)) (sqrt.f64 (+.f64 (+.f64 (*.f64 A A) (+.f64 (*.f64 C C) (*.f64 B B))) (*.f64 -2 (*.f64 A C))))))) (fma.f64 2 (*.f64 (sqrt.f64 (+.f64 (+.f64 (*.f64 A A) (+.f64 (*.f64 C C) (*.f64 B B))) (*.f64 -2 (*.f64 A C)))) (*.f64 B B)) (*.f64 8 (+.f64 (*.f64 A (*.f64 C C)) (*.f64 (*.f64 A A) C)))))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
58.4b
(/.f64 (neg.f64 (pow.f64 (pow.f64 (exp.f64 1/4) (+.f64 (log.f64 (*.f64 -2 F)) (*.f64 -3 (log.f64 (/.f64 -1 B))))) 2)) (fma.f64 B B (*.f64 C (*.f64 A -4))))
50.4b
(*.f64 (neg.f64 (*.f64 (hypot.f64 B (sqrt.f64 (*.f64 C (*.f64 A -4)))) (sqrt.f64 (*.f64 (*.f64 F 2) (-.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C))))))) (/.f64 1 (fma.f64 B B (*.f64 C (*.f64 A -4)))))
59.3b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 2 (*.f64 F (pow.f64 B 3))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
58.6b
(/.f64 (neg.f64 (pow.f64 (pow.f64 (exp.f64 1/4) (+.f64 (log.f64 (*.f64 -2 F)) (*.f64 -3 (neg.f64 (log.f64 B))))) 2)) (fma.f64 B B (*.f64 C (*.f64 A -4))))
58.7b
(/.f64 (neg.f64 (pow.f64 (*.f64 (pow.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) 1/4) (exp.f64 (*.f64 1/4 (-.f64 (log.f64 (*.f64 -2 F)) (log.f64 (/.f64 1 B)))))) 2)) (fma.f64 B B (*.f64 C (*.f64 A -4))))
55.8b
(/.f64 (neg.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 C (*.f64 A -4))))
58.5b
(/.f64 (neg.f64 (pow.f64 (exp.f64 (*.f64 1/4 (-.f64 (log.f64 (*.f64 -2 F)) (*.f64 3 (log.f64 (/.f64 1 B)))))) 2)) (fma.f64 B B (*.f64 C (*.f64 A -4))))
56.4b
(/.f64 (neg.f64 (pow.f64 (*.f64 (pow.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) 1/4) (exp.f64 (*.f64 1/4 (-.f64 (log.f64 (*.f64 -4 F)) (log.f64 (/.f64 -1 C)))))) 2)) (fma.f64 B B (*.f64 C (*.f64 A -4))))
63.3b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (pow.f64 (pow.f64 (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F) 3) 1/3) (*.f64 2 (+.f64 A (-.f64 C (hypot.f64 B (-.f64 A C)))))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
63.5b
(/.f64 (neg.f64 (pow.f64 (*.f64 (pow.f64 (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F) 1/4) (pow.f64 (*.f64 2 (+.f64 A (-.f64 C (hypot.f64 B (-.f64 A C))))) 1/4)) 2)) (fma.f64 B B (*.f64 C (*.f64 A -4))))
51.8b
(/.f64 (neg.f64 (pow.f64 (exp.f64 (*.f64 1/4 (-.f64 (log.f64 (*.f64 -2 (*.f64 (-.f64 (pow.f64 B 2) (*.f64 4 (*.f64 A C))) (-.f64 (+.f64 A C) (sqrt.f64 (-.f64 (+.f64 (pow.f64 A 2) (+.f64 (pow.f64 B 2) (pow.f64 C 2))) (*.f64 2 (*.f64 A C)))))))) (log.f64 (/.f64 -1 F))))) 2)) (fma.f64 B B (*.f64 C (*.f64 A -4))))
59.9b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 -2 (*.f64 F (pow.f64 B 3))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
55.3b
(/.f64 (neg.f64 (neg.f64 (*.f64 (*.f64 A (sqrt.f64 2)) (sqrt.f64 (*.f64 -8 (*.f64 C F)))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
62.7b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (-.f64 (exp.f64 (log1p.f64 (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F))) 1) (*.f64 2 (+.f64 A (-.f64 C (hypot.f64 B (-.f64 A C)))))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
53.8b
(*.f64 (/.f64 -1 (cbrt.f64 (pow.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) 2))) (/.f64 (sqrt.f64 (*.f64 (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F) (*.f64 2 (-.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))))) (cbrt.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))))))
57.8b
(/.f64 (neg.f64 (pow.f64 (exp.f64 (*.f64 1/4 (-.f64 (log.f64 (neg.f64 (*.f64 16 (*.f64 (pow.f64 C 2) F)))) (log.f64 (/.f64 1 A))))) 2)) (fma.f64 B B (*.f64 C (*.f64 A -4))))
59.3b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 -16 (*.f64 (pow.f64 A 2) (*.f64 C F))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
57.5b
(/.f64 (neg.f64 (*.f64 (sqrt.f64 (*.f64 F (-.f64 C (sqrt.f64 (+.f64 (pow.f64 B 2) (pow.f64 C 2)))))) (*.f64 (sqrt.f64 2) B))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
61.2b
(exp.f64 (log.f64 (/.f64 (neg.f64 (sqrt.f64 (*.f64 (*.f64 (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F) 2) (+.f64 A (-.f64 C (hypot.f64 B (-.f64 A C))))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))))
60.3b
(/.f64 (neg.f64 (sqrt.f64 (-.f64 (*.f64 4 (*.f64 (*.f64 C F) (*.f64 B B))) (fma.f64 4 (*.f64 (*.f64 A F) (*.f64 B B)) (*.f64 (*.f64 16 A) (*.f64 (*.f64 C C) F)))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
58.1b
(/.f64 (neg.f64 (neg.f64 (fma.f64 (sqrt.f64 (*.f64 -8 (*.f64 A F))) (*.f64 C (sqrt.f64 2)) (/.f64 F (/.f64 (sqrt.f64 (*.f64 -8 (*.f64 A F))) (*.f64 (sqrt.f64 2) (*.f64 B B))))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
45.3b
(/.f64 (neg.f64 (pow.f64 (*.f64 (pow.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) 1/4) (*.f64 (pow.f64 (*.f64 (*.f64 F 2) (-.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))) 1/8) (pow.f64 (*.f64 (*.f64 F 2) (-.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))) 1/8))) 2)) (fma.f64 B B (*.f64 C (*.f64 A -4))))
57.5b
(/.f64 (neg.f64 (pow.f64 (*.f64 (pow.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) 1/4) (pow.f64 (*.f64 F (*.f64 2 (-.f64 (*.f64 2 C) (*.f64 1/2 (/.f64 (pow.f64 B 2) A))))) 1/4)) 2)) (fma.f64 B B (*.f64 C (*.f64 A -4))))
44.9b
(/.f64 (neg.f64 (pow.f64 (*.f64 (*.f64 (pow.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) 1/8) (pow.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) 1/8)) (pow.f64 (*.f64 F (*.f64 2 (+.f64 A (-.f64 C (hypot.f64 B (-.f64 A C)))))) 1/4)) 2)) (fma.f64 B B (*.f64 C (*.f64 A -4))))
Compiler

Compiled 47872 to 29303 computations (38.8% saved)

localize23.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
1.2b
(+.f64 A (-.f64 C (hypot.f64 B (-.f64 A C))))
12.8b
(pow.f64 (*.f64 F (*.f64 2 (+.f64 A (-.f64 C (hypot.f64 B (-.f64 A C)))))) 1/4)
17.9b
(/.f64 (neg.f64 (pow.f64 (*.f64 (*.f64 (pow.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) 1/8) (pow.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) 1/8)) (pow.f64 (*.f64 F (*.f64 2 (+.f64 A (-.f64 C (hypot.f64 B (-.f64 A C)))))) 1/4)) 2)) (fma.f64 B B (*.f64 C (*.f64 A -4))))
20.5b
(pow.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) 1/8)

series3.1s (7.6%)

Counts
2 → 56
Calls

2 calls:

3.1s
(/.f64 (neg.f64 (pow.f64 (*.f64 (*.f64 (pow.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) 1/8) (pow.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) 1/8)) (pow.f64 (*.f64 F (*.f64 2 (+.f64 A (-.f64 C (hypot.f64 B (-.f64 A C)))))) 1/4)) 2)) (fma.f64 B B (*.f64 C (*.f64 A -4))))
41.0ms
(pow.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) 1/8)

rewrite32.0ms (0.1%)

Algorithm
batch-egg-rewrite
Rules
272×log1p-expm1-u_binary64
272×expm1-log1p-u_binary64
266×add-cbrt-cube_binary64
260×add-exp-log_binary64
260×add-log-exp_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
02570
157564
Stop Event
node limit
Counts
2 → 33
Calls

2 calls:

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

simplify130.0ms (0.3%)

Algorithm
egg-herbie
Rules
578×*-commutative_binary64
276×+-commutative_binary64
272×fma-def_binary64
252×associate-*r*_binary64
239×associate-+r+_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0131019746
Stop Event
node limit
Counts
89 → 128

prune1.0s (2.5%)

Pruning

38 alts after pruning (36 fresh and 2 done)

PrunedKeptTotal
New3792381
Fresh03434
Picked011
Done011
Total37938417
Error
22.1b
Counts
417 → 38
Alt Table
StatusErrorProgram
50.1b
(/.f64 (neg.f64 (*.f64 (hypot.f64 B (sqrt.f64 (*.f64 C (*.f64 A -4)))) (sqrt.f64 (*.f64 F (*.f64 2 (-.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
47.1b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F) (*.f64 2 (+.f64 A (-.f64 C (hypot.f64 B (-.f64 A C)))))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
47.4b
(*.f64 (neg.f64 (sqrt.f64 (*.f64 (*.f64 (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F) 2) (+.f64 A (-.f64 C (hypot.f64 B (-.f64 A C))))))) (/.f64 1 (fma.f64 B B (*.f64 C (*.f64 A -4)))))
59.7b
(/.f64 (neg.f64 (pow.f64 (exp.f64 (*.f64 1/4 (-.f64 (log.f64 (neg.f64 (*.f64 16 (*.f64 (pow.f64 A 2) F)))) (log.f64 (/.f64 1 C))))) 2)) (fma.f64 B B (*.f64 C (*.f64 A -4))))
58.9b
(/.f64 (neg.f64 (sqrt.f64 (-.f64 (fma.f64 4 (/.f64 (*.f64 C C) (/.f64 A (*.f64 F (*.f64 B B)))) (*.f64 8 (*.f64 (*.f64 C F) (*.f64 B B)))) (+.f64 (/.f64 F (/.f64 A (pow.f64 B 4))) (*.f64 (*.f64 16 A) (*.f64 (*.f64 C C) F)))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
59.9b
(/.f64 (neg.f64 (sqrt.f64 (-.f64 (fma.f64 4 (/.f64 (*.f64 A A) (/.f64 C (*.f64 F (*.f64 B B)))) (*.f64 8 (*.f64 (*.f64 A F) (*.f64 B B)))) (fma.f64 16 (*.f64 (*.f64 A A) (*.f64 C F)) (/.f64 F (/.f64 C (pow.f64 B 4))))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
55.5b
(neg.f64 (*.f64 (sqrt.f64 (*.f64 -1/2 (/.f64 F C))) (sqrt.f64 2)))
55.3b
(neg.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 -1/2 (/.f64 F A)))))
58.8b
(/.f64 (neg.f64 (pow.f64 (+.f64 (exp.f64 (*.f64 1/4 (-.f64 (log.f64 (*.f64 -2 F)) (*.f64 3 (log.f64 (/.f64 -1 B)))))) (+.f64 (*.f64 1/4 (/.f64 (*.f64 C (exp.f64 (*.f64 1/4 (-.f64 (log.f64 (*.f64 -2 F)) (*.f64 3 (log.f64 (/.f64 -1 B))))))) B)) (*.f64 1/4 (/.f64 (*.f64 A (exp.f64 (*.f64 1/4 (-.f64 (log.f64 (*.f64 -2 F)) (*.f64 3 (log.f64 (/.f64 -1 B))))))) B)))) 2)) (fma.f64 B B (*.f64 C (*.f64 A -4))))
56.7b
(/.f64 (neg.f64 (pow.f64 (*.f64 (pow.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) 1/4) (pow.f64 (*.f64 F (*.f64 2 (-.f64 (*.f64 2 A) (*.f64 1/2 (/.f64 (pow.f64 B 2) C))))) 1/4)) 2)) (fma.f64 B B (*.f64 C (*.f64 A -4))))
54.1b
(*.f64 (/.f64 -1 (hypot.f64 B (sqrt.f64 (*.f64 C (*.f64 A -4))))) (/.f64 (sqrt.f64 (*.f64 (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F) (*.f64 2 (-.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))))) (hypot.f64 B (sqrt.f64 (*.f64 C (*.f64 A -4))))))
52.0b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 F (-.f64 (fma.f64 2 (*.f64 C (*.f64 B B)) (fma.f64 2 (*.f64 A (*.f64 B B)) (*.f64 (*.f64 8 (*.f64 A C)) (sqrt.f64 (+.f64 (+.f64 (*.f64 A A) (+.f64 (*.f64 C C) (*.f64 B B))) (*.f64 -2 (*.f64 A C))))))) (fma.f64 2 (*.f64 (sqrt.f64 (+.f64 (+.f64 (*.f64 A A) (+.f64 (*.f64 C C) (*.f64 B B))) (*.f64 -2 (*.f64 A C)))) (*.f64 B B)) (*.f64 8 (+.f64 (*.f64 A (*.f64 C C)) (*.f64 (*.f64 A A) C)))))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
50.8b
(/.f64 (neg.f64 (pow.f64 (*.f64 (*.f64 (pow.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) 1/8) (pow.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) 1/8)) (pow.f64 (*.f64 F (*.f64 2 (/.f64 (-.f64 (*.f64 A A) (pow.f64 (-.f64 C (hypot.f64 B (-.f64 A C))) 2)) (-.f64 A (-.f64 C (hypot.f64 B (-.f64 A C))))))) 1/4)) 2)) (fma.f64 B B (*.f64 C (*.f64 A -4))))
58.4b
(/.f64 (neg.f64 (pow.f64 (pow.f64 (exp.f64 1/4) (+.f64 (log.f64 (*.f64 -2 F)) (*.f64 -3 (log.f64 (/.f64 -1 B))))) 2)) (fma.f64 B B (*.f64 C (*.f64 A -4))))
50.4b
(*.f64 (neg.f64 (*.f64 (hypot.f64 B (sqrt.f64 (*.f64 C (*.f64 A -4)))) (sqrt.f64 (*.f64 (*.f64 F 2) (-.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C))))))) (/.f64 1 (fma.f64 B B (*.f64 C (*.f64 A -4)))))
59.3b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 2 (*.f64 F (pow.f64 B 3))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
56.5b
(/.f64 (neg.f64 (pow.f64 (*.f64 (*.f64 (pow.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) 1/8) (pow.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) 1/8)) (pow.f64 (*.f64 (*.f64 4 C) F) 1/4)) 2)) (fma.f64 B B (*.f64 C (*.f64 A -4))))
58.6b
(/.f64 (neg.f64 (pow.f64 (pow.f64 (exp.f64 1/4) (+.f64 (log.f64 (*.f64 -2 F)) (*.f64 -3 (neg.f64 (log.f64 B))))) 2)) (fma.f64 B B (*.f64 C (*.f64 A -4))))
58.7b
(/.f64 (neg.f64 (pow.f64 (*.f64 (pow.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) 1/4) (exp.f64 (*.f64 1/4 (-.f64 (log.f64 (*.f64 -2 F)) (log.f64 (/.f64 1 B)))))) 2)) (fma.f64 B B (*.f64 C (*.f64 A -4))))
55.8b
(/.f64 (neg.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 C (*.f64 A -4))))
58.5b
(/.f64 (neg.f64 (pow.f64 (exp.f64 (*.f64 1/4 (-.f64 (log.f64 (*.f64 -2 F)) (*.f64 3 (log.f64 (/.f64 1 B)))))) 2)) (fma.f64 B B (*.f64 C (*.f64 A -4))))
56.4b
(/.f64 (neg.f64 (pow.f64 (*.f64 (pow.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) 1/4) (exp.f64 (*.f64 1/4 (-.f64 (log.f64 (*.f64 -4 F)) (log.f64 (/.f64 -1 C)))))) 2)) (fma.f64 B B (*.f64 C (*.f64 A -4))))
63.3b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (pow.f64 (pow.f64 (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F) 3) 1/3) (*.f64 2 (+.f64 A (-.f64 C (hypot.f64 B (-.f64 A C)))))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
63.5b
(/.f64 (neg.f64 (pow.f64 (*.f64 (pow.f64 (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F) 1/4) (pow.f64 (*.f64 2 (+.f64 A (-.f64 C (hypot.f64 B (-.f64 A C))))) 1/4)) 2)) (fma.f64 B B (*.f64 C (*.f64 A -4))))
51.8b
(/.f64 (neg.f64 (pow.f64 (exp.f64 (*.f64 1/4 (-.f64 (log.f64 (*.f64 -2 (*.f64 (-.f64 (pow.f64 B 2) (*.f64 4 (*.f64 A C))) (-.f64 (+.f64 A C) (sqrt.f64 (-.f64 (+.f64 (pow.f64 A 2) (+.f64 (pow.f64 B 2) (pow.f64 C 2))) (*.f64 2 (*.f64 A C)))))))) (log.f64 (/.f64 -1 F))))) 2)) (fma.f64 B B (*.f64 C (*.f64 A -4))))
59.9b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 -2 (*.f64 F (pow.f64 B 3))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
55.3b
(/.f64 (neg.f64 (neg.f64 (*.f64 (*.f64 A (sqrt.f64 2)) (sqrt.f64 (*.f64 -8 (*.f64 C F)))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
62.7b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (-.f64 (exp.f64 (log1p.f64 (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F))) 1) (*.f64 2 (+.f64 A (-.f64 C (hypot.f64 B (-.f64 A C)))))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
53.8b
(*.f64 (/.f64 -1 (cbrt.f64 (pow.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) 2))) (/.f64 (sqrt.f64 (*.f64 (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F) (*.f64 2 (-.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))))) (cbrt.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))))))
57.8b
(/.f64 (neg.f64 (pow.f64 (exp.f64 (*.f64 1/4 (-.f64 (log.f64 (neg.f64 (*.f64 16 (*.f64 (pow.f64 C 2) F)))) (log.f64 (/.f64 1 A))))) 2)) (fma.f64 B B (*.f64 C (*.f64 A -4))))
59.3b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 -16 (*.f64 (pow.f64 A 2) (*.f64 C F))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
57.5b
(/.f64 (neg.f64 (*.f64 (sqrt.f64 (*.f64 F (-.f64 C (sqrt.f64 (+.f64 (pow.f64 B 2) (pow.f64 C 2)))))) (*.f64 (sqrt.f64 2) B))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
61.2b
(exp.f64 (log.f64 (/.f64 (neg.f64 (sqrt.f64 (*.f64 (*.f64 (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F) 2) (+.f64 A (-.f64 C (hypot.f64 B (-.f64 A C))))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))))
60.3b
(/.f64 (neg.f64 (sqrt.f64 (-.f64 (*.f64 4 (*.f64 (*.f64 C F) (*.f64 B B))) (fma.f64 4 (*.f64 (*.f64 A F) (*.f64 B B)) (*.f64 (*.f64 16 A) (*.f64 (*.f64 C C) F)))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
58.1b
(/.f64 (neg.f64 (neg.f64 (fma.f64 (sqrt.f64 (*.f64 -8 (*.f64 A F))) (*.f64 C (sqrt.f64 2)) (/.f64 F (/.f64 (sqrt.f64 (*.f64 -8 (*.f64 A F))) (*.f64 (sqrt.f64 2) (*.f64 B B))))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))
45.3b
(/.f64 (neg.f64 (pow.f64 (*.f64 (pow.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) 1/4) (*.f64 (pow.f64 (*.f64 (*.f64 F 2) (-.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))) 1/8) (pow.f64 (*.f64 (*.f64 F 2) (-.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))) 1/8))) 2)) (fma.f64 B B (*.f64 C (*.f64 A -4))))
57.5b
(/.f64 (neg.f64 (pow.f64 (*.f64 (pow.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) 1/4) (pow.f64 (*.f64 F (*.f64 2 (-.f64 (*.f64 2 C) (*.f64 1/2 (/.f64 (pow.f64 B 2) A))))) 1/4)) 2)) (fma.f64 B B (*.f64 C (*.f64 A -4))))
44.9b
(/.f64 (neg.f64 (pow.f64 (*.f64 (*.f64 (pow.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) 1/8) (pow.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) 1/8)) (pow.f64 (*.f64 F (*.f64 2 (+.f64 A (-.f64 C (hypot.f64 B (-.f64 A C)))))) 1/4)) 2)) (fma.f64 B B (*.f64 C (*.f64 A -4))))
Compiler

Compiled 54680 to 33583 computations (38.6% saved)

regimes3.9s (9.7%)

Accuracy

Total 18.5b remaining (43.4%)

Threshold costs 0b (0%)

Counts
208 → 5
Compiler

Compiled 71200 to 46302 computations (35% saved)

bsearch340.0ms (0.8%)

Steps
ItersRangePoint
9
4.6224157567382916e-69
1.591029155260002e-60
1.0395642144106505e-62
9
-3.468815976024315e+89
-6.957992972703448e+83
-2.9146789387030064e+88
8
-1.5382062076258968e+153
-4.094428315815057e+150
-3.542441429623425e+151
4
-5.48149255935256e+218
-2.9826280461700794e+218
-3.863170166797547e+218
Compiler

Compiled 5 to 4 computations (20% saved)

simplify24.0ms (0.1%)

Algorithm
egg-herbie
Rules
178×distribute-rgt-neg-in_binary64
114×distribute-lft-neg-in_binary64
112×cancel-sign-sub-inv_binary64
98×distribute-lft-neg-out_binary64
93×neg-sub0_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
073227
1130227
2193225
3267225
4349225
5430225
6528225
7653225
8799225
9940225
101055225
111129225
121171225
131187225
Stop Event
saturated

end797.0ms (2%)

Compiler

Compiled 1875 to 1261 computations (32.7% saved)

Profiling

Loading profile data...