Time bar (total: 42.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)
(sort A C)
| 1.4s | 5686× | body | 128 | valid |
| 835.0ms | 922× | body | 1024 | valid |
| 804.0ms | 906× | body | 1024 | invalid |
| 745.0ms | 662× | body | 2048 | valid |
| 631.0ms | 588× | body | 2048 | invalid |
| 603.0ms | 2532× | body | 128 | invalid |
| 429.0ms | 643× | body | 512 | valid |
| 367.0ms | 581× | body | 512 | invalid |
| 157.0ms | 341× | body | 256 | valid |
| 154.0ms | 333× | body | 256 | invalid |
| 3.0ms | 2× | body | 4096 | valid |
Compiled 134 to 98 computations (26.9% saved)
| 1× | egg-herbie |
| 759× | neg-mul-1_binary64 |
| 493× | associate-*l*_binary64 |
| 463× | associate-*r*_binary64 |
| 420× | distribute-rgt-in_binary64 |
| 410× | distribute-lft-in_binary64 |
Useful iterations: 1 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 23 | 61 |
| 1 | 61 | 49 |
| 2 | 176 | 49 |
| 3 | 648 | 49 |
| 4 | 2727 | 49 |
| 5 | 4869 | 49 |
| 6 | 5512 | 49 |
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 |
| 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))) | |
| ▶ | 48.4b | (/.f64 (neg.f64 (sqrt.f64 (*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (*.f64 2 (*.f64 F (-.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))))))) (fma.f64 A (*.f64 C -4) (*.f64 B B))) |
Compiled 239 to 156 computations (34.7% saved)
Found 4 expressions with local error:
| New | Error | Program |
| ✓ | 1.5b | (-.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C))) |
| ✓ | 3.5b | (*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (*.f64 2 (*.f64 F (-.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))))) |
| ✓ | 15.9b | (sqrt.f64 (*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (*.f64 2 (*.f64 F (-.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C))))))) |
| ✓ | 19.3b | (/.f64 (neg.f64 (sqrt.f64 (*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (*.f64 2 (*.f64 F (-.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))))))) (fma.f64 A (*.f64 C -4) (*.f64 B B))) |
4 calls:
| 8.8s | (sqrt.f64 (*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (*.f64 2 (*.f64 F (-.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C))))))) |
| 6.4s | (/.f64 (neg.f64 (sqrt.f64 (*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (*.f64 2 (*.f64 F (-.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))))))) (fma.f64 A (*.f64 C -4) (*.f64 B B))) |
| 360.0ms | (*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (*.f64 2 (*.f64 F (-.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))))) |
| 52.0ms | (-.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C))) |
| 2× | batch-egg-rewrite |
| 222× | add-sqr-sqrt_binary64 |
| 217× | prod-diff_binary64 |
| 212× | log1p-expm1-u_binary64 |
| 212× | expm1-log1p-u_binary64 |
| 207× | add-cbrt-cube_binary64 |
4 calls:
| 78.0ms | (-.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C))) |
| 78.0ms | (*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (*.f64 2 (*.f64 F (-.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))))) |
| 78.0ms | (sqrt.f64 (*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (*.f64 2 (*.f64 F (-.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C))))))) |
| 78.0ms | (/.f64 (neg.f64 (sqrt.f64 (*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (*.f64 2 (*.f64 F (-.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))))))) (fma.f64 A (*.f64 C -4) (*.f64 B B))) |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 20 | 128 |
| 1 | 443 | 126 |
| 2 | 4612 | 126 |
| 3 | 4892 | 126 |
| 0 | 0 | 0 |
| 1 | 0 | 0 |
| 1× | egg-herbie |
| 590× | fma-def_binary64 |
| 269× | associate-/l*_binary64 |
| 255× | associate-*l/_binary64 |
| 178× | associate-/r*_binary64 |
| 148× | times-frac_binary64 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 2268 | 37870 |
| 1 | 5050 | 37870 |
27 alts after pruning (27 fresh and 0 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 302 | 27 | 329 |
| Fresh | 1 | 0 | 1 |
| Picked | 1 | 0 | 1 |
| Done | 0 | 0 | 0 |
| Total | 304 | 27 | 331 |
| Status | Error | Program |
| 57.5b | (/.f64 (neg.f64 (sqrt.f64 (*.f64 2 (*.f64 F (*.f64 (-.f64 A (sqrt.f64 (+.f64 (pow.f64 A 2) (pow.f64 B 2)))) (pow.f64 B 2)))))) (fma.f64 A (*.f64 C -4) (*.f64 B B))) | |
| 58.2b | (/.f64 (neg.f64 (*.f64 (sqrt.f64 (*.f64 F (-.f64 C (sqrt.f64 (+.f64 (pow.f64 C 2) (pow.f64 B 2)))))) (*.f64 (sqrt.f64 2) B))) (fma.f64 A (*.f64 C -4) (*.f64 B B))) | |
| 48.6b | (*.f64 (/.f64 -1 (pow.f64 (cbrt.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B))) 2)) (/.f64 (sqrt.f64 (*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (*.f64 2 (*.f64 F (-.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C))))))) (cbrt.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B))))) | |
| 59.7b | (neg.f64 (*.f64 (sqrt.f64 (*.f64 -1/4 (/.f64 (*.f64 F (-.f64 (+.f64 A C) (sqrt.f64 (-.f64 (+.f64 (*.f64 A A) (*.f64 C C)) (*.f64 2 (*.f64 A C)))))) (*.f64 A C)))) (sqrt.f64 2))) | |
| 47.2b | (/.f64 (neg.f64 (*.f64 (sqrt.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B))) (sqrt.f64 (*.f64 2 (*.f64 F (-.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))))))) (fma.f64 A (*.f64 C -4) (*.f64 B B))) | |
| 60.6b | (/.f64 (neg.f64 (sqrt.f64 (*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (*.f64 2 (*.f64 F (-.f64 (+.f64 A (+.f64 C (/.f64 (*.f64 A C) B))) (fma.f64 1/2 (/.f64 (*.f64 A A) B) (fma.f64 1/2 (/.f64 (*.f64 C C) B) B)))))))) (fma.f64 A (*.f64 C -4) (*.f64 B B))) | |
| 53.3b | (/.f64 (neg.f64 (sqrt.f64 (*.f64 -16 (*.f64 (pow.f64 A 2) (*.f64 C F))))) (fma.f64 A (*.f64 C -4) (*.f64 B B))) | |
| 63.1b | (neg.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 -1/2 (/.f64 F A))))) | |
| 48.4b | (/.f64 (neg.f64 (sqrt.f64 (*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (*.f64 2 (*.f64 F (*.f64 2 A)))))) (fma.f64 A (*.f64 C -4) (*.f64 B B))) | |
| 62.6b | (/.f64 (neg.f64 (sqrt.f64 (*.f64 -16 (*.f64 A (*.f64 (pow.f64 C 2) F))))) (fma.f64 A (*.f64 C -4) (*.f64 B B))) | |
| 57.9b | (neg.f64 (*.f64 (sqrt.f64 (*.f64 F (-.f64 A (sqrt.f64 (+.f64 (*.f64 A A) (*.f64 B B)))))) (/.f64 (sqrt.f64 2) B))) | |
| 59.9b | (/.f64 (neg.f64 (sqrt.f64 (*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (*.f64 2 (*.f64 F (neg.f64 B)))))) (fma.f64 A (*.f64 C -4) (*.f64 B B))) | |
| 60.9b | (/.f64 (neg.f64 (sqrt.f64 (-.f64 (fma.f64 2 (*.f64 C (*.f64 F (*.f64 B B))) (fma.f64 2 (*.f64 A (*.f64 F (*.f64 B B))) (fma.f64 2 (*.f64 F (pow.f64 B 3)) (*.f64 (*.f64 F B) (+.f64 (*.f64 A A) (*.f64 C C)))))) (*.f64 10 (*.f64 A (*.f64 C (*.f64 F B))))))) (fma.f64 A (*.f64 C -4) (*.f64 B B))) | |
| 48.6b | (/.f64 (neg.f64 (sqrt.f64 (*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (*.f64 2 (*.f64 F (+.f64 (-.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C))) (fma.f64 (neg.f64 (sqrt.f64 (hypot.f64 B (-.f64 A C)))) (sqrt.f64 (hypot.f64 B (-.f64 A C))) (hypot.f64 B (-.f64 A C))))))))) (fma.f64 A (*.f64 C -4) (*.f64 B B))) | |
| 63.0b | (/.f64 (neg.f64 (neg.f64 (*.f64 (sqrt.f64 (*.f64 -8 (*.f64 A F))) (*.f64 C (sqrt.f64 2))))) (fma.f64 A (*.f64 C -4) (*.f64 B B))) | |
| 60.5b | (-.f64 (*.f64 2 (*.f64 (/.f64 (*.f64 A (*.f64 C (sqrt.f64 2))) (pow.f64 B 3)) (sqrt.f64 (/.f64 (*.f64 (+.f64 (*.f64 C C) (*.f64 B B)) F) (-.f64 C (sqrt.f64 (+.f64 (*.f64 B B) (*.f64 C C)))))))) (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 (*.f64 A (*.f64 C (sqrt.f64 2))) B) (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 A (*.f64 (*.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 (*.f64 A (sqrt.f64 2)) B) (sqrt.f64 (/.f64 F (-.f64 C (sqrt.f64 (+.f64 (*.f64 B B) (*.f64 C C)))))))))))) | |
| 49.4b | (/.f64 (neg.f64 (neg.f64 (fma.f64 A (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 -8 (*.f64 C F)))) (/.f64 (*.f64 F (*.f64 (sqrt.f64 2) (*.f64 B B))) (sqrt.f64 (*.f64 -8 (*.f64 C F))))))) (fma.f64 A (*.f64 C -4) (*.f64 B B))) | |
| 60.3b | (sqrt.f64 (/.f64 (*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (*.f64 2 (*.f64 F (-.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))))) (pow.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) 2))) | |
| 49.3b | (/.f64 (neg.f64 (neg.f64 (*.f64 A (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 -8 (*.f64 C F))))))) (fma.f64 A (*.f64 C -4) (*.f64 B B))) | |
| 63.0b | (/.f64 (neg.f64 (sqrt.f64 (log.f64 (pow.f64 (exp.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B))) (*.f64 2 (*.f64 F (-.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C))))))))) (fma.f64 A (*.f64 C -4) (*.f64 B B))) | |
| 60.7b | (/.f64 (neg.f64 (sqrt.f64 (*.f64 -2 (*.f64 F (pow.f64 B 3))))) (fma.f64 A (*.f64 C -4) (*.f64 B B))) | |
| 52.4b | (*.f64 (/.f64 -1 (sqrt.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)))) (/.f64 (sqrt.f64 (*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (*.f64 2 (*.f64 F (-.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C))))))) (sqrt.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B))))) | |
| 48.7b | (/.f64 (neg.f64 (sqrt.f64 (*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (*.f64 2 (*.f64 F (fma.f64 (pow.f64 (cbrt.f64 (+.f64 A C)) 2) (cbrt.f64 (+.f64 A C)) (neg.f64 (hypot.f64 B (-.f64 A C))))))))) (fma.f64 A (*.f64 C -4) (*.f64 B B))) | |
| 47.6b | (neg.f64 (*.f64 (sqrt.f64 (*.f64 -1/2 (/.f64 F C))) (sqrt.f64 2))) | |
| 60.5b | (/.f64 (neg.f64 (sqrt.f64 (*.f64 2 (*.f64 F (pow.f64 B 3))))) (fma.f64 A (*.f64 C -4) (*.f64 B B))) | |
| 58.1b | (neg.f64 (*.f64 (sqrt.f64 (*.f64 F (-.f64 C (sqrt.f64 (+.f64 (*.f64 B B) (*.f64 C C)))))) (/.f64 (sqrt.f64 2) B))) | |
| ▶ | 46.2b | (/.f64 (neg.f64 (sqrt.f64 (*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (*.f64 2 (*.f64 F (-.f64 (*.f64 2 A) (*.f64 1/2 (/.f64 (pow.f64 B 2) C)))))))) (fma.f64 A (*.f64 C -4) (*.f64 B B))) |
Compiled 59098 to 32747 computations (44.6% saved)
Found 4 expressions with local error:
| New | Error | Program |
| ✓ | 3.3b | (*.f64 F (-.f64 (*.f64 2 A) (*.f64 1/2 (/.f64 (pow.f64 B 2) C)))) |
| ✓ | 4.5b | (/.f64 (pow.f64 B 2) C) |
| ✓ | 16.2b | (sqrt.f64 (*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (*.f64 2 (*.f64 F (-.f64 (*.f64 2 A) (*.f64 1/2 (/.f64 (pow.f64 B 2) C))))))) |
| ✓ | 18.9b | (/.f64 (neg.f64 (sqrt.f64 (*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (*.f64 2 (*.f64 F (-.f64 (*.f64 2 A) (*.f64 1/2 (/.f64 (pow.f64 B 2) C)))))))) (fma.f64 A (*.f64 C -4) (*.f64 B B))) |
4 calls:
| 673.0ms | (sqrt.f64 (*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (*.f64 2 (*.f64 F (-.f64 (*.f64 2 A) (*.f64 1/2 (/.f64 (pow.f64 B 2) C))))))) |
| 643.0ms | (/.f64 (neg.f64 (sqrt.f64 (*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (*.f64 2 (*.f64 F (-.f64 (*.f64 2 A) (*.f64 1/2 (/.f64 (pow.f64 B 2) C)))))))) (fma.f64 A (*.f64 C -4) (*.f64 B B))) |
| 98.0ms | (*.f64 F (-.f64 (*.f64 2 A) (*.f64 1/2 (/.f64 (pow.f64 B 2) C)))) |
| 22.0ms | (/.f64 (pow.f64 B 2) C) |
| 2× | batch-egg-rewrite |
| 229× | add-sqr-sqrt_binary64 |
| 218× | log1p-expm1-u_binary64 |
| 218× | expm1-log1p-u_binary64 |
| 213× | add-cbrt-cube_binary64 |
| 213× | add-exp-log_binary64 |
4 calls:
| 116.0ms | (*.f64 F (-.f64 (*.f64 2 A) (*.f64 1/2 (/.f64 (pow.f64 B 2) C)))) |
| 116.0ms | (/.f64 (pow.f64 B 2) C) |
| 116.0ms | (sqrt.f64 (*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (*.f64 2 (*.f64 F (-.f64 (*.f64 2 A) (*.f64 1/2 (/.f64 (pow.f64 B 2) C))))))) |
| 116.0ms | (/.f64 (neg.f64 (sqrt.f64 (*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (*.f64 2 (*.f64 F (-.f64 (*.f64 2 A) (*.f64 1/2 (/.f64 (pow.f64 B 2) C)))))))) (fma.f64 A (*.f64 C -4) (*.f64 B B))) |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 22 | 115 |
| 1 | 464 | 107 |
| 2 | 4696 | 107 |
| 3 | 4870 | 107 |
| 0 | 0 | 0 |
| 1 | 0 | 0 |
| 1× | egg-herbie |
| 477× | times-frac_binary64 |
| 331× | associate-/l*_binary64 |
| 317× | associate-*r*_binary64 |
| 310× | associate-/r*_binary64 |
| 241× | fma-neg_binary64 |
Useful iterations: 1 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 257 | 3817 |
| 1 | 929 | 3757 |
| 2 | 4795 | 3757 |
| 3 | 4990 | 3757 |
22 alts after pruning (22 fresh and 0 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 153 | 7 | 160 |
| Fresh | 11 | 15 | 26 |
| Picked | 1 | 0 | 1 |
| Done | 0 | 0 | 0 |
| Total | 165 | 22 | 187 |
| Status | Error | Program |
| 57.5b | (/.f64 (neg.f64 (sqrt.f64 (*.f64 2 (*.f64 F (*.f64 (-.f64 A (sqrt.f64 (+.f64 (pow.f64 A 2) (pow.f64 B 2)))) (pow.f64 B 2)))))) (fma.f64 A (*.f64 C -4) (*.f64 B B))) | |
| 58.2b | (/.f64 (neg.f64 (*.f64 (sqrt.f64 (*.f64 F (-.f64 C (sqrt.f64 (+.f64 (pow.f64 C 2) (pow.f64 B 2)))))) (*.f64 (sqrt.f64 2) B))) (fma.f64 A (*.f64 C -4) (*.f64 B B))) | |
| 48.6b | (*.f64 (/.f64 -1 (pow.f64 (cbrt.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B))) 2)) (/.f64 (sqrt.f64 (*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (*.f64 2 (*.f64 F (-.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C))))))) (cbrt.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B))))) | |
| 49.9b | (/.f64 (neg.f64 (*.f64 (sqrt.f64 (*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) 2)) (sqrt.f64 (*.f64 F (fma.f64 A 2 (*.f64 -1/2 (/.f64 (*.f64 B B) C))))))) (fma.f64 A (*.f64 C -4) (*.f64 B B))) | |
| 58.4b | (/.f64 (neg.f64 (*.f64 A (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 -8 (*.f64 C F)))))) (fma.f64 A (*.f64 C -4) (*.f64 B B))) | |
| 47.2b | (/.f64 (neg.f64 (*.f64 (sqrt.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B))) (sqrt.f64 (*.f64 2 (*.f64 F (-.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))))))) (fma.f64 A (*.f64 C -4) (*.f64 B B))) | |
| 53.3b | (/.f64 (neg.f64 (sqrt.f64 (*.f64 -16 (*.f64 (pow.f64 A 2) (*.f64 C F))))) (fma.f64 A (*.f64 C -4) (*.f64 B B))) | |
| 63.1b | (neg.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 -1/2 (/.f64 F A))))) | |
| 48.4b | (/.f64 (neg.f64 (sqrt.f64 (*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (*.f64 2 (*.f64 F (*.f64 2 A)))))) (fma.f64 A (*.f64 C -4) (*.f64 B B))) | |
| 62.6b | (/.f64 (neg.f64 (sqrt.f64 (*.f64 -16 (*.f64 A (*.f64 (pow.f64 C 2) F))))) (fma.f64 A (*.f64 C -4) (*.f64 B B))) | |
| 60.5b | (/.f64 (neg.f64 (sqrt.f64 (*.f64 2 (*.f64 F (pow.f64 B 3))))) (fma.f64 A (*.f64 C -4) (*.f64 B B))) | |
| 51.7b | (/.f64 (neg.f64 (fma.f64 (sqrt.f64 (*.f64 -1/2 (/.f64 F C))) (*.f64 (sqrt.f64 2) (*.f64 B B)) (*.f64 2 (/.f64 (*.f64 A (*.f64 F (sqrt.f64 2))) (sqrt.f64 (*.f64 -1/2 (/.f64 F C))))))) (fma.f64 A (*.f64 C -4) (*.f64 B B))) | |
| ▶ | 42.0b | (*.f64 -1/4 (/.f64 (sqrt.f64 (*.f64 -16 (*.f64 C F))) C)) |
| 58.1b | (sqrt.f64 (/.f64 (*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (*.f64 2 (*.f64 F (fma.f64 A 2 (*.f64 -1/2 (/.f64 (*.f64 B B) C)))))) (pow.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) 2))) | |
| 47.6b | (neg.f64 (*.f64 (sqrt.f64 (*.f64 -1/2 (/.f64 F C))) (sqrt.f64 2))) | |
| 48.6b | (/.f64 (neg.f64 (sqrt.f64 (*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (*.f64 2 (*.f64 F (+.f64 (-.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C))) (fma.f64 (neg.f64 (sqrt.f64 (hypot.f64 B (-.f64 A C)))) (sqrt.f64 (hypot.f64 B (-.f64 A C))) (hypot.f64 B (-.f64 A C))))))))) (fma.f64 A (*.f64 C -4) (*.f64 B B))) | |
| 60.5b | (-.f64 (*.f64 2 (*.f64 (/.f64 (*.f64 A (*.f64 C (sqrt.f64 2))) (pow.f64 B 3)) (sqrt.f64 (/.f64 (*.f64 (+.f64 (*.f64 C C) (*.f64 B B)) F) (-.f64 C (sqrt.f64 (+.f64 (*.f64 B B) (*.f64 C C)))))))) (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 (*.f64 A (*.f64 C (sqrt.f64 2))) B) (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 A (*.f64 (*.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 (*.f64 A (sqrt.f64 2)) B) (sqrt.f64 (/.f64 F (-.f64 C (sqrt.f64 (+.f64 (*.f64 B B) (*.f64 C C)))))))))))) | |
| 58.1b | (neg.f64 (*.f64 (sqrt.f64 (*.f64 F (-.f64 C (sqrt.f64 (+.f64 (*.f64 B B) (*.f64 C C)))))) (/.f64 (sqrt.f64 2) B))) | |
| 58.4b | (/.f64 (neg.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 (*.f64 -1/2 (/.f64 F C))) (pow.f64 B 2)))) (fma.f64 A (*.f64 C -4) (*.f64 B B))) | |
| 46.6b | (/.f64 (neg.f64 (neg.f64 (fma.f64 (sqrt.f64 (*.f64 -16 (*.f64 F C))) A (*.f64 4 (/.f64 (*.f64 F (*.f64 B B)) (sqrt.f64 (*.f64 -16 (*.f64 F C)))))))) (fma.f64 A (*.f64 C -4) (*.f64 B B))) | |
| 49.3b | (/.f64 (neg.f64 (neg.f64 (*.f64 A (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 -8 (*.f64 C F))))))) (fma.f64 A (*.f64 C -4) (*.f64 B B))) | |
| 52.4b | (*.f64 (/.f64 -1 (sqrt.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)))) (/.f64 (sqrt.f64 (*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (*.f64 2 (*.f64 F (-.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C))))))) (sqrt.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B))))) |
Compiled 9763 to 5745 computations (41.2% saved)
Found 3 expressions with local error:
| New | Error | Program |
| ✓ | 0.0b | (*.f64 -16 (*.f64 C F)) |
| ✓ | 0.2b | (/.f64 (sqrt.f64 (*.f64 -16 (*.f64 C F))) C) |
| ✓ | 15.4b | (sqrt.f64 (*.f64 -16 (*.f64 C F))) |
3 calls:
| 39.0ms | (/.f64 (sqrt.f64 (*.f64 -16 (*.f64 C F))) C) |
| 34.0ms | (sqrt.f64 (*.f64 -16 (*.f64 C F))) |
| 10.0ms | (*.f64 -16 (*.f64 C F)) |
| 2× | batch-egg-rewrite |
| 789× | log1p-expm1-u_binary64 |
| 789× | expm1-log1p-u_binary64 |
| 147× | log1p-udef_binary64 |
| 82× | add-sqr-sqrt_binary64 |
| 78× | egg-rr |
3 calls:
| 71.0ms | (*.f64 -16 (*.f64 C F)) |
| 71.0ms | (/.f64 (sqrt.f64 (*.f64 -16 (*.f64 C F))) C) |
| 71.0ms | (sqrt.f64 (*.f64 -16 (*.f64 C F))) |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 8 | 28 |
| 1 | 167 | 28 |
| 2 | 2050 | 28 |
| 3 | 5129 | 28 |
| 0 | 0 | 0 |
| 1 | 0 | 0 |
| 1× | egg-herbie |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 0 | 0 |
| 1 | 0 | 0 |
33 alts after pruning (33 fresh and 0 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 63 | 15 | 78 |
| Fresh | 3 | 18 | 21 |
| Picked | 1 | 0 | 1 |
| Done | 0 | 0 | 0 |
| Total | 67 | 33 | 100 |
| Status | Error | Program |
| 57.5b | (/.f64 (neg.f64 (sqrt.f64 (*.f64 2 (*.f64 F (*.f64 (-.f64 A (sqrt.f64 (+.f64 (pow.f64 A 2) (pow.f64 B 2)))) (pow.f64 B 2)))))) (fma.f64 A (*.f64 C -4) (*.f64 B B))) | |
| 58.2b | (/.f64 (neg.f64 (*.f64 (sqrt.f64 (*.f64 F (-.f64 C (sqrt.f64 (+.f64 (pow.f64 C 2) (pow.f64 B 2)))))) (*.f64 (sqrt.f64 2) B))) (fma.f64 A (*.f64 C -4) (*.f64 B B))) | |
| 48.6b | (*.f64 (/.f64 -1 (pow.f64 (cbrt.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B))) 2)) (/.f64 (sqrt.f64 (*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (*.f64 2 (*.f64 F (-.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C))))))) (cbrt.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B))))) | |
| ▶ | 42.1b | (*.f64 -1/4 (/.f64 (pow.f64 (pow.f64 (*.f64 -16 (*.f64 C F)) 1/4) 2) C)) |
| 51.5b | (*.f64 -1/4 (/.f64 (sqrt.f64 (-.f64 (exp.f64 (log1p.f64 (*.f64 -16 (*.f64 C F)))) 1)) C)) | |
| 47.2b | (/.f64 (neg.f64 (*.f64 (sqrt.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B))) (sqrt.f64 (*.f64 2 (*.f64 F (-.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))))))) (fma.f64 A (*.f64 C -4) (*.f64 B B))) | |
| 49.9b | (/.f64 (neg.f64 (*.f64 (sqrt.f64 (*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) 2)) (sqrt.f64 (*.f64 F (fma.f64 A 2 (*.f64 -1/2 (/.f64 (*.f64 B B) C))))))) (fma.f64 A (*.f64 C -4) (*.f64 B B))) | |
| 58.4b | (/.f64 (neg.f64 (*.f64 A (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 -8 (*.f64 C F)))))) (fma.f64 A (*.f64 C -4) (*.f64 B B))) | |
| 42.3b | (*.f64 -1/4 (/.f64 (pow.f64 (cbrt.f64 (sqrt.f64 (*.f64 -16 (*.f64 C F)))) 3) C)) | |
| 49.0b | (*.f64 -1/4 (exp.f64 (log.f64 (/.f64 (sqrt.f64 (*.f64 -16 (*.f64 C F))) C)))) | |
| 49.9b | (*.f64 -1/4 (/.f64 (pow.f64 (pow.f64 (*.f64 -16 (*.f64 C F)) 3/2) 1/3) C)) | |
| 48.4b | (/.f64 (neg.f64 (sqrt.f64 (*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (*.f64 2 (*.f64 F (*.f64 2 A)))))) (fma.f64 A (*.f64 C -4) (*.f64 B B))) | |
| 62.6b | (/.f64 (neg.f64 (sqrt.f64 (*.f64 -16 (*.f64 A (*.f64 (pow.f64 C 2) F))))) (fma.f64 A (*.f64 C -4) (*.f64 B B))) | |
| 47.6b | (neg.f64 (*.f64 (sqrt.f64 (*.f64 -1/2 (/.f64 F C))) (sqrt.f64 2))) | |
| 42.2b | (*.f64 -1/4 (*.f64 (cbrt.f64 (*.f64 -16 (*.f64 C F))) (*.f64 (cbrt.f64 (sqrt.f64 (*.f64 -16 (*.f64 C F)))) (/.f64 1 C)))) | |
| 48.6b | (/.f64 (neg.f64 (sqrt.f64 (*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (*.f64 2 (*.f64 F (+.f64 (-.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C))) (fma.f64 (neg.f64 (sqrt.f64 (hypot.f64 B (-.f64 A C)))) (sqrt.f64 (hypot.f64 B (-.f64 A C))) (hypot.f64 B (-.f64 A C))))))))) (fma.f64 A (*.f64 C -4) (*.f64 B B))) | |
| 43.5b | (*.f64 -1/4 (/.f64 (sqrt.f64 (exp.f64 (log.f64 (*.f64 -16 (*.f64 C F))))) C)) | |
| 60.5b | (/.f64 (neg.f64 (sqrt.f64 (*.f64 2 (*.f64 F (pow.f64 B 3))))) (fma.f64 A (*.f64 C -4) (*.f64 B B))) | |
| 51.7b | (/.f64 (neg.f64 (fma.f64 (sqrt.f64 (*.f64 -1/2 (/.f64 F C))) (*.f64 (sqrt.f64 2) (*.f64 B B)) (*.f64 2 (/.f64 (*.f64 A (*.f64 F (sqrt.f64 2))) (sqrt.f64 (*.f64 -1/2 (/.f64 F C))))))) (fma.f64 A (*.f64 C -4) (*.f64 B B))) | |
| 58.1b | (neg.f64 (*.f64 (sqrt.f64 (*.f64 F (-.f64 C (sqrt.f64 (+.f64 (*.f64 B B) (*.f64 C C)))))) (/.f64 (sqrt.f64 2) B))) | |
| 56.9b | (*.f64 -1/4 (-.f64 (exp.f64 (log1p.f64 (/.f64 (sqrt.f64 (*.f64 -16 (*.f64 C F))) C))) 1)) | |
| 58.4b | (/.f64 (neg.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 (*.f64 -1/2 (/.f64 F C))) (pow.f64 B 2)))) (fma.f64 A (*.f64 C -4) (*.f64 B B))) | |
| 52.4b | (*.f64 -1/4 (/.f64 (sqrt.f64 (sqrt.f64 (*.f64 256 (pow.f64 (*.f64 C F) 2)))) C)) | |
| 42.4b | (*.f64 -1/4 (pow.f64 (cbrt.f64 (/.f64 (sqrt.f64 (*.f64 -16 (*.f64 C F))) C)) 3)) | |
| 56.6b | (*.f64 -1/4 (pow.f64 (pow.f64 (/.f64 (sqrt.f64 (*.f64 -16 (*.f64 C F))) C) 3) 1/3)) | |
| 42.8b | (*.f64 -1/4 (/.f64 (expm1.f64 (log1p.f64 (sqrt.f64 (*.f64 -16 (*.f64 C F))))) C)) | |
| 52.4b | (*.f64 (/.f64 -1 (sqrt.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)))) (/.f64 (sqrt.f64 (*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (*.f64 2 (*.f64 F (-.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C))))))) (sqrt.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B))))) | |
| 62.1b | (*.f64 -1/4 (/.f64 (log.f64 (exp.f64 (sqrt.f64 (*.f64 -16 (*.f64 C F))))) C)) | |
| 56.5b | (*.f64 -1/4 (/.f64 (*.f64 (sqrt.f64 (*.f64 -16 C)) (sqrt.f64 F)) C)) | |
| 42.1b | (*.f64 -1/4 (*.f64 (pow.f64 (*.f64 -16 (*.f64 C F)) 1/4) (*.f64 (pow.f64 (*.f64 -16 (*.f64 C F)) 1/4) (/.f64 1 C)))) | |
| 58.1b | (sqrt.f64 (/.f64 (*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (*.f64 2 (*.f64 F (fma.f64 A 2 (*.f64 -1/2 (/.f64 (*.f64 B B) C)))))) (pow.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) 2))) | |
| 60.5b | (-.f64 (*.f64 2 (*.f64 (/.f64 (*.f64 A (*.f64 C (sqrt.f64 2))) (pow.f64 B 3)) (sqrt.f64 (/.f64 (*.f64 (+.f64 (*.f64 C C) (*.f64 B B)) F) (-.f64 C (sqrt.f64 (+.f64 (*.f64 B B) (*.f64 C C)))))))) (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 (*.f64 A (*.f64 C (sqrt.f64 2))) B) (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 A (*.f64 (*.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 (*.f64 A (sqrt.f64 2)) B) (sqrt.f64 (/.f64 F (-.f64 C (sqrt.f64 (+.f64 (*.f64 B B) (*.f64 C C)))))))))))) | |
| 49.3b | (/.f64 (neg.f64 (neg.f64 (*.f64 A (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 -8 (*.f64 C F))))))) (fma.f64 A (*.f64 C -4) (*.f64 B B))) |
Compiled 3088 to 2030 computations (34.3% saved)
Found 4 expressions with local error:
| New | Error | Program |
| 0.0b | (*.f64 -16 (*.f64 C F)) | |
| ✓ | 0.2b | (/.f64 (pow.f64 (pow.f64 (*.f64 -16 (*.f64 C F)) 1/4) 2) C) |
| ✓ | 0.4b | (pow.f64 (pow.f64 (*.f64 -16 (*.f64 C F)) 1/4) 2) |
| ✓ | 15.5b | (pow.f64 (*.f64 -16 (*.f64 C F)) 1/4) |
3 calls:
| 754.0ms | (pow.f64 (pow.f64 (*.f64 -16 (*.f64 C F)) 1/4) 2) |
| 689.0ms | (pow.f64 (*.f64 -16 (*.f64 C F)) 1/4) |
| 35.0ms | (/.f64 (pow.f64 (pow.f64 (*.f64 -16 (*.f64 C F)) 1/4) 2) C) |
| 2× | batch-egg-rewrite |
| 538× | log-prod_binary64 |
| 281× | pow2_binary64 |
| 192× | expm1-udef_binary64 |
| 192× | log1p-udef_binary64 |
| 191× | pow1/3_binary64 |
3 calls:
| 82.0ms | (/.f64 (pow.f64 (pow.f64 (*.f64 -16 (*.f64 C F)) 1/4) 2) C) |
| 82.0ms | (pow.f64 (pow.f64 (*.f64 -16 (*.f64 C F)) 1/4) 2) |
| 82.0ms | (pow.f64 (*.f64 -16 (*.f64 C F)) 1/4) |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 11 | 33 |
| 1 | 242 | 31 |
| 2 | 2616 | 31 |
| 3 | 4947 | 31 |
| 0 | 0 | 0 |
| 1 | 0 | 0 |
| 1× | egg-herbie |
| 764× | fma-neg_binary64 |
| 612× | exp-sum_binary64 |
| 417× | exp-diff_binary64 |
| 378× | unswap-sqr_binary64 |
| 282× | fma-def_binary64 |
Useful iterations: 3 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 55 | 840 |
| 1 | 136 | 840 |
| 2 | 232 | 696 |
| 3 | 805 | 456 |
| 4 | 2539 | 456 |
| 5 | 4243 | 456 |
| 6 | 4180 | 456 |
| 7 | 4943 | 456 |
| 8 | 4919 | 456 |
35 alts after pruning (34 fresh and 1 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 116 | 8 | 124 |
| Fresh | 6 | 26 | 32 |
| Picked | 0 | 1 | 1 |
| Done | 0 | 0 | 0 |
| Total | 122 | 35 | 157 |
| Status | Error | Program |
| 57.5b | (/.f64 (neg.f64 (sqrt.f64 (*.f64 2 (*.f64 F (*.f64 (-.f64 A (sqrt.f64 (+.f64 (pow.f64 A 2) (pow.f64 B 2)))) (pow.f64 B 2)))))) (fma.f64 A (*.f64 C -4) (*.f64 B B))) | |
| 58.2b | (/.f64 (neg.f64 (*.f64 (sqrt.f64 (*.f64 F (-.f64 C (sqrt.f64 (+.f64 (pow.f64 C 2) (pow.f64 B 2)))))) (*.f64 (sqrt.f64 2) B))) (fma.f64 A (*.f64 C -4) (*.f64 B B))) | |
| 42.1b | (*.f64 -1/4 (pow.f64 (/.f64 (/.f64 C (sqrt.f64 (*.f64 -16 (*.f64 C F)))) 1) -1)) | |
| 48.6b | (*.f64 (/.f64 -1 (pow.f64 (cbrt.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B))) 2)) (/.f64 (sqrt.f64 (*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (*.f64 2 (*.f64 F (-.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C))))))) (cbrt.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B))))) | |
| ✓ | 42.1b | (*.f64 -1/4 (/.f64 (pow.f64 (pow.f64 (*.f64 -16 (*.f64 C F)) 1/4) 2) C)) |
| 51.5b | (*.f64 -1/4 (/.f64 (sqrt.f64 (-.f64 (exp.f64 (log1p.f64 (*.f64 -16 (*.f64 C F)))) 1)) C)) | |
| 47.2b | (/.f64 (neg.f64 (*.f64 (sqrt.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B))) (sqrt.f64 (*.f64 2 (*.f64 F (-.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))))))) (fma.f64 A (*.f64 C -4) (*.f64 B B))) | |
| 49.9b | (/.f64 (neg.f64 (*.f64 (sqrt.f64 (*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) 2)) (sqrt.f64 (*.f64 F (fma.f64 A 2 (*.f64 -1/2 (/.f64 (*.f64 B B) C))))))) (fma.f64 A (*.f64 C -4) (*.f64 B B))) | |
| 58.4b | (/.f64 (neg.f64 (*.f64 A (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 -8 (*.f64 C F)))))) (fma.f64 A (*.f64 C -4) (*.f64 B B))) | |
| 62.2b | (*.f64 -1/4 (/.f64 (+.f64 (log.f64 (sqrt.f64 (exp.f64 (sqrt.f64 (*.f64 -16 (*.f64 C F)))))) (log.f64 (sqrt.f64 (exp.f64 (sqrt.f64 (*.f64 -16 (*.f64 C F))))))) C)) | |
| 48.4b | (/.f64 (neg.f64 (sqrt.f64 (*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (*.f64 2 (*.f64 F (*.f64 2 A)))))) (fma.f64 A (*.f64 C -4) (*.f64 B B))) | |
| 62.6b | (/.f64 (neg.f64 (sqrt.f64 (*.f64 -16 (*.f64 A (*.f64 (pow.f64 C 2) F))))) (fma.f64 A (*.f64 C -4) (*.f64 B B))) | |
| 42.8b | (*.f64 -1/4 (/.f64 (pow.f64 (expm1.f64 (log1p.f64 (pow.f64 (*.f64 -16 (*.f64 C F)) 1/4))) 2) C)) | |
| 61.5b | (*.f64 -1/4 (/.f64 (pow.f64 (log.f64 (exp.f64 (pow.f64 (*.f64 -16 (*.f64 C F)) 1/4))) 2) C)) | |
| 42.1b | (*.f64 -1/4 (*.f64 (pow.f64 (*.f64 -16 (*.f64 C F)) 1/4) (*.f64 (pow.f64 (*.f64 -16 (*.f64 C F)) 1/4) (/.f64 1 C)))) | |
| 58.1b | (sqrt.f64 (/.f64 (*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (*.f64 2 (*.f64 F (fma.f64 A 2 (*.f64 -1/2 (/.f64 (*.f64 B B) C)))))) (pow.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) 2))) | |
| 44.9b | (*.f64 -1/4 (/.f64 (pow.f64 (exp.f64 (*.f64 1/4 (+.f64 (log.f64 C) (log.f64 (neg.f64 (*.f64 16 F)))))) 2) C)) | |
| 47.6b | (neg.f64 (*.f64 (sqrt.f64 (*.f64 -1/2 (/.f64 F C))) (sqrt.f64 2))) | |
| 42.4b | (*.f64 -1/4 (/.f64 (pow.f64 (*.f64 (cbrt.f64 (pow.f64 (*.f64 -16 (*.f64 C F)) 1/4)) (cbrt.f64 (sqrt.f64 (*.f64 -16 (*.f64 C F))))) 2) C)) | |
| 42.2b | (*.f64 -1/4 (*.f64 (cbrt.f64 (*.f64 -16 (*.f64 C F))) (*.f64 (cbrt.f64 (sqrt.f64 (*.f64 -16 (*.f64 C F)))) (/.f64 1 C)))) | |
| 60.5b | (-.f64 (*.f64 2 (*.f64 (/.f64 (*.f64 A (*.f64 C (sqrt.f64 2))) (pow.f64 B 3)) (sqrt.f64 (/.f64 (*.f64 (+.f64 (*.f64 C C) (*.f64 B B)) F) (-.f64 C (sqrt.f64 (+.f64 (*.f64 B B) (*.f64 C C)))))))) (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 (*.f64 A (*.f64 C (sqrt.f64 2))) B) (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 A (*.f64 (*.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 (*.f64 A (sqrt.f64 2)) B) (sqrt.f64 (/.f64 F (-.f64 C (sqrt.f64 (+.f64 (*.f64 B B) (*.f64 C C)))))))))))) | |
| 61.6b | (*.f64 -1/4 (/.f64 (pow.f64 (+.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (pow.f64 (*.f64 -16 (*.f64 C F)) 1/4))) 2)) (log.f64 (cbrt.f64 (exp.f64 (pow.f64 (*.f64 -16 (*.f64 C F)) 1/4))))) 2) C)) | |
| 60.5b | (/.f64 (neg.f64 (sqrt.f64 (*.f64 2 (*.f64 F (pow.f64 B 3))))) (fma.f64 A (*.f64 C -4) (*.f64 B B))) | |
| 51.7b | (/.f64 (neg.f64 (fma.f64 (sqrt.f64 (*.f64 -1/2 (/.f64 F C))) (*.f64 (sqrt.f64 2) (*.f64 B B)) (*.f64 2 (/.f64 (*.f64 A (*.f64 F (sqrt.f64 2))) (sqrt.f64 (*.f64 -1/2 (/.f64 F C))))))) (fma.f64 A (*.f64 C -4) (*.f64 B B))) | |
| 58.1b | (neg.f64 (*.f64 (sqrt.f64 (*.f64 F (-.f64 C (sqrt.f64 (+.f64 (*.f64 B B) (*.f64 C C)))))) (/.f64 (sqrt.f64 2) B))) | |
| 52.4b | (*.f64 -1/4 (/.f64 (pow.f64 (pow.f64 (sqrt.f64 (*.f64 256 (pow.f64 (*.f64 C F) 2))) 1/4) 2) C)) | |
| 56.9b | (*.f64 -1/4 (-.f64 (exp.f64 (log1p.f64 (/.f64 (sqrt.f64 (*.f64 -16 (*.f64 C F))) C))) 1)) | |
| 52.4b | (*.f64 (/.f64 -1 (sqrt.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)))) (/.f64 (sqrt.f64 (*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (*.f64 2 (*.f64 F (-.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C))))))) (sqrt.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B))))) | |
| 62.1b | (*.f64 -1/4 (/.f64 (log.f64 (exp.f64 (sqrt.f64 (*.f64 -16 (*.f64 C F))))) C)) | |
| 49.9b | (*.f64 -1/4 (/.f64 (pow.f64 (pow.f64 (*.f64 -16 (*.f64 C F)) 3/2) 1/3) C)) | |
| 56.5b | (*.f64 -1/4 (/.f64 (*.f64 (sqrt.f64 (*.f64 -16 C)) (sqrt.f64 F)) C)) | |
| 48.6b | (/.f64 (neg.f64 (sqrt.f64 (*.f64 (fma.f64 A (*.f64 C -4) (*.f64 B B)) (*.f64 2 (*.f64 F (+.f64 (-.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C))) (fma.f64 (neg.f64 (sqrt.f64 (hypot.f64 B (-.f64 A C)))) (sqrt.f64 (hypot.f64 B (-.f64 A C))) (hypot.f64 B (-.f64 A C))))))))) (fma.f64 A (*.f64 C -4) (*.f64 B B))) | |
| 58.4b | (/.f64 (neg.f64 (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 (*.f64 -1/2 (/.f64 F C))) (pow.f64 B 2)))) (fma.f64 A (*.f64 C -4) (*.f64 B B))) | |
| 56.6b | (*.f64 -1/4 (pow.f64 (pow.f64 (/.f64 (sqrt.f64 (*.f64 -16 (*.f64 C F))) C) 3) 1/3)) | |
| 49.3b | (/.f64 (neg.f64 (neg.f64 (*.f64 A (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 -8 (*.f64 C F))))))) (fma.f64 A (*.f64 C -4) (*.f64 B B))) |
Compiled 3130 to 2170 computations (30.7% saved)
Total 14.6b remaining (44.2%)
Threshold costs 0b (0%)
Compiled 36124 to 24759 computations (31.5% saved)
| Iters | Range | Point | |
|---|---|---|---|
| 3 | 7.355883429548237e+106 | 9.352492012619169e+106 | 8.229399684641769e+106 |
| 7 | 3.907126746359627e+53 | 7.205969835765565e+55 | 9.739838238220798e+53 |
| 4 | 1.9265846249946254e-58 | 3.0498529877183928e-58 | 2.874342306042804e-58 |
| 11 | -9.543868731250287e-186 | -1.021130905929878e-212 | -9.383027144283094e-186 |
Compiled 5 to 4 computations (20% saved)
| 1× | egg-herbie |
| 28× | *-commutative_binary64 |
| 14× | +-commutative_binary64 |
| 12× | sub-neg_binary64 |
| 10× | neg-sub0_binary64 |
| 10× | neg-mul-1_binary64 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 72 | 185 |
| 1 | 120 | 185 |
| 2 | 147 | 185 |
| 3 | 164 | 185 |
| 4 | 171 | 185 |
| 5 | 168 | 185 |
Compiled 1570 to 1047 computations (33.3% saved)
Loading profile data...