Time bar (total: 40.8s)
| 1× | search |
| True | Other | False | Iter |
|---|---|---|---|
| 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 |
Compiled 45 to 33 computations (26.7% saved)
| 1.5s | 5749× | body | 128 | valid |
| 848.0ms | 889× | body | 1024 | valid |
| 812.0ms | 885× | body | 1024 | invalid |
| 760.0ms | 646× | body | 2048 | valid |
| 729.0ms | 603× | body | 2048 | invalid |
| 641.0ms | 2534× | body | 128 | invalid |
| 469.0ms | 630× | body | 512 | valid |
| 445.0ms | 602× | body | 512 | invalid |
| 168.0ms | 340× | body | 256 | valid |
| 168.0ms | 372× | body | 256 | invalid |
| 3.0ms | 2× | body | 4096 | valid |
Compiled 134 to 98 computations (26.9% saved)
| 1× | egg-herbie |
| 470× | associate-*l*_binary64 |
| 454× | associate-*r*_binary64 |
| 420× | distribute-rgt-in_binary64 |
| 410× | distribute-lft-in_binary64 |
| 306× | fma-def_binary64 |
Useful iterations: 1 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 23 | 61 |
| 1 | 61 | 49 |
| 2 | 195 | 49 |
| 3 | 836 | 49 |
| 4 | 4456 | 49 |
| 1× | node limit |
3 alts after pruning (3 fresh and 0 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 0 | 2 | 2 |
| Fresh | 0 | 1 | 1 |
| Picked | 0 | 0 | 0 |
| Done | 0 | 0 | 0 |
| Total | 0 | 3 | 3 |
| Status | Error | Program |
| ▶ | 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))) |
Compiled 239 to 160 computations (33.1% saved)
Found 4 expressions with local error:
| New | Error | Program |
| ✓ | 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)))) |
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) |
| 1× | batch-egg-rewrite |
| 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 |
Useful iterations: 1 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 20 | 129 |
| 1 | 455 | 127 |
| 1× | node limit |
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)))) |
| 1× | egg-herbie |
| 544× | fma-def_binary64 |
| 492× | associate-*r*_binary64 |
| 252× | associate-*l/_binary64 |
| 251× | associate-/l*_binary64 |
| 166× | associate-/r*_binary64 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 2081 | 36919 |
| 1× | node limit |
29 alts after pruning (28 fresh and 1 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 228 | 28 | 256 |
| Fresh | 1 | 0 | 1 |
| Picked | 0 | 1 | 1 |
| Done | 0 | 0 | 0 |
| Total | 229 | 29 | 258 |
| Status | Error | Program |
| 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)))) |
Compiled 55116 to 31100 computations (43.6% saved)
Found 4 expressions with local error:
| New | Error | Program |
| ✓ | 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) |
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))))) |
| 1× | batch-egg-rewrite |
| 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 |
Useful iterations: 1 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 22 | 117 |
| 1 | 499 | 116 |
| 1× | node limit |
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) |
| 1× | egg-herbie |
| 571× | fma-def_binary64 |
| 255× | associate-/l*_binary64 |
| 182× | associate-/r*_binary64 |
| 165× | associate-*l/_binary64 |
| 148× | times-frac_binary64 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 2427 | 38366 |
| 1× | node limit |
32 alts after pruning (31 fresh and 1 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 254 | 11 | 265 |
| Fresh | 7 | 20 | 27 |
| Picked | 1 | 0 | 1 |
| Done | 0 | 1 | 1 |
| Total | 262 | 32 | 294 |
| Status | Error | Program |
| 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)))) |
Compiled 57077 to 33868 computations (40.7% saved)
Found 4 expressions with local error:
| New | Error | Program |
| ✓ | 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) |
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)))) |
| 1× | batch-egg-rewrite |
| 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 |
Useful iterations: 1 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 23 | 102 |
| 1 | 532 | 99 |
| 1× | node limit |
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) |
| 1× | egg-herbie |
| 409× | fma-def_binary64 |
| 357× | associate-*r*_binary64 |
| 232× | associate-/l*_binary64 |
| 169× | associate-*l/_binary64 |
| 149× | associate-/r*_binary64 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 1929 | 28302 |
| 1× | node limit |
36 alts after pruning (35 fresh and 1 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 303 | 7 | 310 |
| Fresh | 2 | 28 | 30 |
| Picked | 1 | 0 | 1 |
| Done | 0 | 1 | 1 |
| Total | 306 | 36 | 342 |
| Status | Error | Program |
| 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)))) |
Compiled 47872 to 29303 computations (38.8% saved)
Found 4 expressions with local error:
| New | Error | Program |
| 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) |
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) |
| 1× | batch-egg-rewrite |
| 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 |
Useful iterations: 1 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 25 | 70 |
| 1 | 575 | 64 |
| 1× | node limit |
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) |
| 1× | egg-herbie |
| 578× | *-commutative_binary64 |
| 276× | +-commutative_binary64 |
| 272× | fma-def_binary64 |
| 252× | associate-*r*_binary64 |
| 239× | associate-+r+_binary64 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 1310 | 19746 |
| 1× | node limit |
38 alts after pruning (36 fresh and 2 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 379 | 2 | 381 |
| Fresh | 0 | 34 | 34 |
| Picked | 0 | 1 | 1 |
| Done | 0 | 1 | 1 |
| Total | 379 | 38 | 417 |
| Status | Error | Program |
| 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)))) |
Compiled 54680 to 33583 computations (38.6% saved)
Total 18.5b remaining (43.4%)
Threshold costs 0b (0%)
Compiled 71200 to 46302 computations (35% saved)
| Iters | Range | Point | |
|---|---|---|---|
| 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 |
Compiled 5 to 4 computations (20% saved)
| 1× | egg-herbie |
| 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 |
Useful iterations: 2 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 73 | 227 |
| 1 | 130 | 227 |
| 2 | 193 | 225 |
| 3 | 267 | 225 |
| 4 | 349 | 225 |
| 5 | 430 | 225 |
| 6 | 528 | 225 |
| 7 | 653 | 225 |
| 8 | 799 | 225 |
| 9 | 940 | 225 |
| 10 | 1055 | 225 |
| 11 | 1129 | 225 |
| 12 | 1171 | 225 |
| 13 | 1187 | 225 |
| 1× | saturated |
Compiled 1875 to 1261 computations (32.7% saved)
Loading profile data...