Time bar (total: 1.4min)
| 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% | 89.7% | 10.3% | 10 |
| 1.3% | 85.5% | 13.3% | 11 |
| 2.4% | 80% | 17.5% | 12 |
| 3.4% | 78.3% | 18.3% | 13 |
| 5.3% | 75% | 19.7% | 14 |
Compiled 45 to 33 computations (26.7% saved)
| 1.6s | 5781× | body | 128 | valid |
| 802.0ms | 867× | body | 1024 | valid |
| 802.0ms | 628× | body | 2048 | valid |
| 787.0ms | 842× | body | 1024 | invalid |
| 753.0ms | 617× | body | 2048 | invalid |
| 641.0ms | 2615× | body | 128 | invalid |
| 462.0ms | 649× | body | 512 | valid |
| 417.0ms | 620× | body | 512 | invalid |
| 186.0ms | 326× | body | 256 | valid |
| 164.0ms | 361× | body | 256 | invalid |
| 7.0ms | 5× | body | 4096 | valid |
Compiled 90 to 66 computations (26.7% saved)
| 2× | egg-herbie |
| 580× | associate-*l*_binary64 |
| 566× | associate-*r*_binary64 |
| 435× | distribute-rgt-in_binary64 |
| 411× | distribute-lft-in_binary64 |
| 232× | fma-def_binary64 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 109 | 427 |
| 1 | 323 | 343 |
| 2 | 1158 | 343 |
| 0 | 4 | 4 |
| 1× | saturated |
| 1× | node limit |
Compiled 44 to 32 computations (27.3% 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 |
| 53.9b | (/.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.6b | (/.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)))) |
Compiled 239 to 160 computations (33.1% saved)
Found 4 expressions with local error:
| New | Error | Program |
| ✓ | 1.6b | (*.f64 (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F) (*.f64 2 (+.f64 A (-.f64 C (hypot.f64 B (-.f64 A C)))))) |
| ✓ | 7.6b | (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F) |
| ✓ | 19.9b | (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))))))) |
| ✓ | 23.4b | (/.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)))) |
48 calls:
| 1.8s | (/.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)))) | F | -inf |
| 1.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))))))) | F | 0 |
| 1.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))))))) | F | -inf |
| 1.2s | (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))))))) | F | inf |
| 411.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)))) | A | 0 |
| 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 |
| 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 |
27 alts after pruning (26 fresh and 1 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 230 | 26 | 256 |
| Fresh | 1 | 0 | 1 |
| Picked | 0 | 1 | 1 |
| Done | 0 | 0 | 0 |
| Total | 231 | 27 | 258 |
| Status | Error | Program |
| 56.8b | (/.f64 (neg.f64 (neg.f64 (+.f64 (*.f64 A (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 -8 (*.f64 C F))))) (/.f64 (*.f64 F (*.f64 (sqrt.f64 2) (pow.f64 B 2))) (sqrt.f64 (*.f64 -8 (*.f64 C F))))))) (fma.f64 B B (*.f64 C (*.f64 A -4)))) | |
| 54.6b | (neg.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 -1/2 (/.f64 F A))))) | |
| 58.9b | (/.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)))) | |
| 61.6b | (/.f64 (neg.f64 (sqrt.f64 (*.f64 -2 (*.f64 F (pow.f64 B 3))))) (fma.f64 B B (*.f64 C (*.f64 A -4)))) | |
| 55.0b | (/.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)))) | |
| 56.2b | (/.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)))) | |
| 60.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)))) | |
| 55.2b | (/.f64 (neg.f64 (*.f64 (sqrt.f64 (cbrt.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))))) 2))) (sqrt.f64 (cbrt.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.0b | (/.f64 (neg.f64 (sqrt.f64 (*.f64 2 (*.f64 (*.f64 F (*.f64 B B)) (-.f64 C (sqrt.f64 (+.f64 (*.f64 C C) (*.f64 B B)))))))) (fma.f64 B B (*.f64 C (*.f64 A -4)))) | |
| 61.2b | (sqrt.f64 (/.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))))) (pow.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) 2))) | |
| 62.2b | (/.f64 (neg.f64 (sqrt.f64 (-.f64 (fma.f64 2 (*.f64 (*.f64 C F) (*.f64 B B)) (fma.f64 2 (*.f64 (*.f64 A F) (*.f64 B B)) (*.f64 10 (*.f64 (*.f64 A C) (*.f64 F B))))) (fma.f64 2 (*.f64 F (pow.f64 B 3)) (*.f64 (*.f64 F B) (+.f64 (*.f64 A A) (*.f64 C C))))))) (fma.f64 B B (*.f64 C (*.f64 A -4)))) | |
| 54.4b | (/.f64 (neg.f64 (sqrt.f64 (*.f64 (expm1.f64 (log1p.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)))) | |
| 54.8b | (*.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)))))) | |
| 59.2b | (/.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.0b | (/.f64 (neg.f64 (neg.f64 (*.f64 (sqrt.f64 (*.f64 -8 (*.f64 A F))) (*.f64 C (sqrt.f64 2))))) (fma.f64 B B (*.f64 C (*.f64 A -4)))) | |
| 49.2b | (/.f64 (neg.f64 (*.f64 (cbrt.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 (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)))) | |
| 54.0b | (/.f64 (neg.f64 (sqrt.f64 (*.f64 2 (*.f64 (-.f64 (pow.f64 B 2) (*.f64 4 (*.f64 A C))) (*.f64 F (-.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)))))))))) (fma.f64 B B (*.f64 C (*.f64 A -4)))) | |
| 59.0b | (/.f64 (neg.f64 (sqrt.f64 (-.f64 (+.f64 (*.f64 4 (/.f64 (*.f64 (pow.f64 A 2) (*.f64 F (pow.f64 B 2))) C)) (*.f64 8 (*.f64 A (*.f64 F (pow.f64 B 2))))) (+.f64 (*.f64 16 (*.f64 (pow.f64 A 2) (*.f64 C F))) (/.f64 (*.f64 F (pow.f64 B 4)) C))))) (fma.f64 B B (*.f64 C (*.f64 A -4)))) | |
| 54.9b | (/.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.8b | (/.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)))) | |
| 61.7b | (/.f64 (neg.f64 (sqrt.f64 (+.f64 (fma.f64 2 (*.f64 (*.f64 C F) (*.f64 B B)) (fma.f64 2 (*.f64 (*.f64 A 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 (*.f64 A C) (*.f64 F B)))))) (fma.f64 B B (*.f64 C (*.f64 A -4)))) | |
| 60.5b | (neg.f64 (*.f64 (sqrt.f64 (*.f64 F (-.f64 A (sqrt.f64 (+.f64 (*.f64 A A) (*.f64 B B)))))) (/.f64 (sqrt.f64 2) B))) | |
| ▶ | 48.7b | (/.f64 (neg.f64 (sqrt.f64 (*.f64 (pow.f64 (cbrt.f64 (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F)) 3) (*.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 (*.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)))) | |
| 58.5b | (/.f64 (neg.f64 (sqrt.f64 (*.f64 -16 (*.f64 A (*.f64 (pow.f64 C 2) F))))) (fma.f64 B B (*.f64 C (*.f64 A -4)))) | |
| ✓ | 48.6b | (/.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)))) |
| 55.0b | (neg.f64 (*.f64 (sqrt.f64 (*.f64 -1/2 (/.f64 F C))) (sqrt.f64 2))) |
Compiled 54552 to 30808 computations (43.5% saved)
Found 4 expressions with local error:
| New | Error | Program |
| 7.6b | (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F) | |
| ✓ | 19.9b | (sqrt.f64 (*.f64 (pow.f64 (cbrt.f64 (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F)) 3) (*.f64 2 (+.f64 A (-.f64 C (hypot.f64 B (-.f64 A C))))))) |
| ✓ | 23.4b | (/.f64 (neg.f64 (sqrt.f64 (*.f64 (pow.f64 (cbrt.f64 (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F)) 3) (*.f64 2 (+.f64 A (-.f64 C (hypot.f64 B (-.f64 A C)))))))) (fma.f64 B B (*.f64 C (*.f64 A -4)))) |
| ✓ | 24.0b | (cbrt.f64 (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F)) |
36 calls:
| 1.3s | (sqrt.f64 (*.f64 (pow.f64 (cbrt.f64 (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F)) 3) (*.f64 2 (+.f64 A (-.f64 C (hypot.f64 B (-.f64 A C))))))) | F | 0 |
| 1.2s | (sqrt.f64 (*.f64 (pow.f64 (cbrt.f64 (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F)) 3) (*.f64 2 (+.f64 A (-.f64 C (hypot.f64 B (-.f64 A C))))))) | F | -inf |
| 1.2s | (sqrt.f64 (*.f64 (pow.f64 (cbrt.f64 (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F)) 3) (*.f64 2 (+.f64 A (-.f64 C (hypot.f64 B (-.f64 A C))))))) | F | inf |
| 390.0ms | (/.f64 (neg.f64 (sqrt.f64 (*.f64 (pow.f64 (cbrt.f64 (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F)) 3) (*.f64 2 (+.f64 A (-.f64 C (hypot.f64 B (-.f64 A C)))))))) (fma.f64 B B (*.f64 C (*.f64 A -4)))) | A | 0 |
| 301.0ms | (/.f64 (neg.f64 (sqrt.f64 (*.f64 (pow.f64 (cbrt.f64 (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F)) 3) (*.f64 2 (+.f64 A (-.f64 C (hypot.f64 B (-.f64 A C)))))))) (fma.f64 B B (*.f64 C (*.f64 A -4)))) | B | 0 |
| 1× | batch-egg-rewrite |
| 247× | add-sqr-sqrt_binary64 |
| 238× | log1p-expm1-u_binary64 |
| 238× | expm1-log1p-u_binary64 |
| 235× | add-cbrt-cube_binary64 |
| 230× | add-exp-log_binary64 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 23 | 99 |
| 1 | 514 | 99 |
| 1× | node limit |
| 1× | egg-herbie |
| 452× | fma-def_binary64 |
| 420× | associate-*r*_binary64 |
| 414× | associate-+r+_binary64 |
| 250× | associate-*l/_binary64 |
| 241× | associate-/l*_binary64 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 1858 | 32609 |
| 1× | node limit |
28 alts after pruning (27 fresh and 1 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 176 | 6 | 182 |
| Fresh | 4 | 21 | 25 |
| Picked | 0 | 1 | 1 |
| Done | 1 | 0 | 1 |
| Total | 181 | 28 | 209 |
| Status | Error | Program |
| 56.8b | (/.f64 (neg.f64 (neg.f64 (+.f64 (*.f64 A (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 -8 (*.f64 C F))))) (/.f64 (*.f64 F (*.f64 (sqrt.f64 2) (pow.f64 B 2))) (sqrt.f64 (*.f64 -8 (*.f64 C F))))))) (fma.f64 B B (*.f64 C (*.f64 A -4)))) | |
| 54.6b | (neg.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 -1/2 (/.f64 F A))))) | |
| ▶ | 49.1b | (pow.f64 (/.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) (neg.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)))))))) -1) |
| 58.9b | (/.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)))) | |
| 61.6b | (/.f64 (neg.f64 (sqrt.f64 (*.f64 -2 (*.f64 F (pow.f64 B 3))))) (fma.f64 B B (*.f64 C (*.f64 A -4)))) | |
| 56.2b | (/.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)))) | |
| 60.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)))) | |
| 59.0b | (/.f64 (neg.f64 (sqrt.f64 (*.f64 2 (*.f64 (*.f64 F (*.f64 B B)) (-.f64 C (sqrt.f64 (+.f64 (*.f64 C C) (*.f64 B B)))))))) (fma.f64 B B (*.f64 C (*.f64 A -4)))) | |
| 60.0b | (neg.f64 (*.f64 (sqrt.f64 (*.f64 -1/4 (*.f64 (/.f64 F A) (/.f64 (+.f64 A (-.f64 C (sqrt.f64 (+.f64 (*.f64 A A) (-.f64 (*.f64 C C) (*.f64 2 (*.f64 A C))))))) C)))) (sqrt.f64 2))) | |
| 61.2b | (sqrt.f64 (/.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))))) (pow.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) 2))) | |
| 60.5b | (neg.f64 (*.f64 (sqrt.f64 (*.f64 F (-.f64 A (sqrt.f64 (+.f64 (*.f64 A A) (*.f64 B B)))))) (/.f64 (sqrt.f64 2) B))) | |
| 63.3b | (/.f64 (neg.f64 (sqrt.f64 (*.f64 (pow.f64 (pow.f64 (sqrt.f64 (cbrt.f64 (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F))) 2) 3) (*.f64 2 (+.f64 A (-.f64 C (hypot.f64 B (-.f64 A C)))))))) (fma.f64 B B (*.f64 C (*.f64 A -4)))) | |
| 56.1b | (/.f64 (neg.f64 (sqrt.f64 (*.f64 (pow.f64 (*.f64 (pow.f64 (*.f64 A (*.f64 C F)) 1/3) (cbrt.f64 -4)) 3) (*.f64 2 (+.f64 A (-.f64 C (hypot.f64 B (-.f64 A C)))))))) (fma.f64 B B (*.f64 C (*.f64 A -4)))) | |
| 62.2b | (/.f64 (neg.f64 (sqrt.f64 (-.f64 (fma.f64 2 (*.f64 (*.f64 C F) (*.f64 B B)) (fma.f64 2 (*.f64 (*.f64 A F) (*.f64 B B)) (*.f64 10 (*.f64 (*.f64 A C) (*.f64 F B))))) (fma.f64 2 (*.f64 F (pow.f64 B 3)) (*.f64 (*.f64 F B) (+.f64 (*.f64 A A) (*.f64 C C))))))) (fma.f64 B B (*.f64 C (*.f64 A -4)))) | |
| 54.8b | (*.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)))))) | |
| 59.2b | (/.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.0b | (/.f64 (neg.f64 (neg.f64 (*.f64 (sqrt.f64 (*.f64 -8 (*.f64 A F))) (*.f64 C (sqrt.f64 2))))) (fma.f64 B B (*.f64 C (*.f64 A -4)))) | |
| 54.0b | (/.f64 (neg.f64 (sqrt.f64 (*.f64 2 (*.f64 (-.f64 (pow.f64 B 2) (*.f64 4 (*.f64 A C))) (*.f64 F (-.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)))))))))) (fma.f64 B B (*.f64 C (*.f64 A -4)))) | |
| 59.0b | (/.f64 (neg.f64 (sqrt.f64 (-.f64 (+.f64 (*.f64 4 (/.f64 (*.f64 (pow.f64 A 2) (*.f64 F (pow.f64 B 2))) C)) (*.f64 8 (*.f64 A (*.f64 F (pow.f64 B 2))))) (+.f64 (*.f64 16 (*.f64 (pow.f64 A 2) (*.f64 C F))) (/.f64 (*.f64 F (pow.f64 B 4)) C))))) (fma.f64 B B (*.f64 C (*.f64 A -4)))) | |
| 54.9b | (/.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.8b | (/.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)))) | |
| 61.7b | (/.f64 (neg.f64 (sqrt.f64 (+.f64 (fma.f64 2 (*.f64 (*.f64 C F) (*.f64 B B)) (fma.f64 2 (*.f64 (*.f64 A 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 (*.f64 A C) (*.f64 F B)))))) (fma.f64 B B (*.f64 C (*.f64 A -4)))) | |
| 54.6b | (/.f64 (neg.f64 (sqrt.f64 (*.f64 (pow.f64 (expm1.f64 (log1p.f64 (cbrt.f64 (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F)))) 3) (*.f64 2 (+.f64 A (-.f64 C (hypot.f64 B (-.f64 A C)))))))) (fma.f64 B B (*.f64 C (*.f64 A -4)))) | |
| ✓ | 48.7b | (/.f64 (neg.f64 (sqrt.f64 (*.f64 (pow.f64 (cbrt.f64 (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F)) 3) (*.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 (*.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)))) | |
| 58.5b | (/.f64 (neg.f64 (sqrt.f64 (*.f64 -16 (*.f64 A (*.f64 (pow.f64 C 2) F))))) (fma.f64 B B (*.f64 C (*.f64 A -4)))) | |
| 54.2b | (cbrt.f64 (pow.f64 (neg.f64 (/.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))))) 3)) | |
| 55.0b | (neg.f64 (*.f64 (sqrt.f64 (*.f64 -1/2 (/.f64 F C))) (sqrt.f64 2))) |
Compiled 49183 to 28572 computations (41.9% saved)
Found 4 expressions with local error:
| New | Error | Program |
| ✓ | 3.0b | (-.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C))) |
| 7.6b | (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F) | |
| ✓ | 16.8b | (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)))))) |
| ✓ | 22.3b | (/.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) (neg.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)))))))) |
33 calls:
| 43.8s | (/.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) (neg.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)))))))) | F | -inf |
| 1.2s | (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)))))) | F | 0 |
| 1.2s | (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)))))) | F | -inf |
| 1.1s | (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)))))) | F | inf |
| 441.0ms | (/.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) (neg.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)))))))) | A | 0 |
| 1× | batch-egg-rewrite |
| 224× | add-sqr-sqrt_binary64 |
| 212× | log1p-expm1-u_binary64 |
| 212× | expm1-log1p-u_binary64 |
| 211× | add-cbrt-cube_binary64 |
| 207× | add-exp-log_binary64 |
Useful iterations: 1 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 20 | 96 |
| 1 | 444 | 94 |
| 1× | node limit |
| 1× | egg-herbie |
| 441× | associate-*r*_binary64 |
| 411× | fma-def_binary64 |
| 229× | associate-/l*_binary64 |
| 223× | associate-/r*_binary64 |
| 218× | associate-*l/_binary64 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 1957 | 29971 |
| 1× | node limit |
29 alts after pruning (28 fresh and 1 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 250 | 11 | 261 |
| Fresh | 9 | 17 | 26 |
| Picked | 1 | 0 | 1 |
| Done | 0 | 1 | 1 |
| Total | 260 | 29 | 289 |
| Status | Error | Program |
| 56.8b | (/.f64 (neg.f64 (neg.f64 (+.f64 (*.f64 A (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 -8 (*.f64 C F))))) (/.f64 (*.f64 F (*.f64 (sqrt.f64 2) (pow.f64 B 2))) (sqrt.f64 (*.f64 -8 (*.f64 C F))))))) (fma.f64 B B (*.f64 C (*.f64 A -4)))) | |
| 54.6b | (neg.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 -1/2 (/.f64 F A))))) | |
| 58.8b | (/.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)))) | |
| 57.2b | (pow.f64 (neg.f64 (+.f64 (/.f64 (sqrt.f64 (/.f64 (*.f64 -2 A) F)) (sqrt.f64 2)) (*.f64 1/4 (/.f64 (/.f64 (*.f64 B B) C) (*.f64 (*.f64 F (sqrt.f64 (/.f64 (*.f64 -2 A) F))) (sqrt.f64 2)))))) -1) | |
| 58.9b | (/.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)))) | |
| 54.8b | (pow.f64 (neg.f64 (/.f64 (sqrt.f64 (/.f64 (*.f64 -2 A) F)) (sqrt.f64 2))) -1) | |
| 61.6b | (/.f64 (neg.f64 (sqrt.f64 (*.f64 -2 (*.f64 F (pow.f64 B 3))))) (fma.f64 B B (*.f64 C (*.f64 A -4)))) | |
| 56.2b | (/.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)))) | |
| 60.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)))) | |
| 55.9b | (pow.f64 (/.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) (neg.f64 (sqrt.f64 (*.f64 (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F) (*.f64 2 (*.f64 2 C)))))) -1) | |
| 60.0b | (neg.f64 (*.f64 (sqrt.f64 (*.f64 -1/4 (*.f64 (/.f64 F A) (/.f64 (+.f64 A (-.f64 C (sqrt.f64 (+.f64 (*.f64 A A) (-.f64 (*.f64 C C) (*.f64 2 (*.f64 A C))))))) C)))) (sqrt.f64 2))) | |
| 62.2b | (/.f64 (neg.f64 (sqrt.f64 (-.f64 (fma.f64 2 (*.f64 (*.f64 C F) (*.f64 B B)) (fma.f64 2 (*.f64 (*.f64 A F) (*.f64 B B)) (*.f64 10 (*.f64 (*.f64 A C) (*.f64 F B))))) (fma.f64 2 (*.f64 F (pow.f64 B 3)) (*.f64 (*.f64 F B) (+.f64 (*.f64 A A) (*.f64 C C))))))) (fma.f64 B B (*.f64 C (*.f64 A -4)))) | |
| 54.8b | (*.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)))))) | |
| 55.0b | (pow.f64 (/.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) (neg.f64 (neg.f64 (*.f64 (sqrt.f64 (*.f64 -8 (*.f64 A F))) (*.f64 C (sqrt.f64 2)))))) -1) | |
| ✓ | 48.7b | (/.f64 (neg.f64 (sqrt.f64 (*.f64 (pow.f64 (cbrt.f64 (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F)) 3) (*.f64 2 (+.f64 A (-.f64 C (hypot.f64 B (-.f64 A C)))))))) (fma.f64 B B (*.f64 C (*.f64 A -4)))) |
| 59.2b | (/.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.0b | (/.f64 (neg.f64 (neg.f64 (*.f64 (sqrt.f64 (*.f64 -8 (*.f64 A F))) (*.f64 C (sqrt.f64 2))))) (fma.f64 B B (*.f64 C (*.f64 A -4)))) | |
| 54.0b | (/.f64 (neg.f64 (sqrt.f64 (*.f64 2 (*.f64 (-.f64 (pow.f64 B 2) (*.f64 4 (*.f64 A C))) (*.f64 F (-.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)))))))))) (fma.f64 B B (*.f64 C (*.f64 A -4)))) | |
| 56.7b | (pow.f64 (neg.f64 (fma.f64 1/4 (/.f64 (/.f64 (*.f64 B B) A) (*.f64 (*.f64 F (sqrt.f64 (*.f64 -2 (/.f64 C F)))) (sqrt.f64 2))) (/.f64 (sqrt.f64 (*.f64 -2 (/.f64 C F))) (sqrt.f64 2)))) -1) | |
| 58.3b | (pow.f64 (/.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) (neg.f64 (sqrt.f64 (*.f64 (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F) (*.f64 2 (fma.f64 (sqrt.f64 A) (sqrt.f64 A) (-.f64 C (hypot.f64 B (-.f64 A C))))))))) -1) | |
| 61.2b | (pow.f64 (/.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) (neg.f64 (sqrt.f64 (*.f64 (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F) (*.f64 2 B))))) -1) | |
| 55.2b | (pow.f64 (neg.f64 (/.f64 (sqrt.f64 (*.f64 -2 (/.f64 C F))) (sqrt.f64 2))) -1) | |
| 54.2b | (cbrt.f64 (pow.f64 (neg.f64 (/.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))))) 3)) | |
| 54.4b | (pow.f64 (/.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) (neg.f64 (sqrt.f64 (*.f64 (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F) (*.f64 2 (-.f64 (*.f64 2 A) (*.f64 1/2 (/.f64 (pow.f64 B 2) C)))))))) -1) | |
| 60.7b | (pow.f64 (neg.f64 (*.f64 (sqrt.f64 (/.f64 (/.f64 1 F) (-.f64 A (sqrt.f64 (+.f64 (*.f64 A A) (*.f64 B B)))))) (/.f64 B (sqrt.f64 2)))) -1) | |
| 56.1b | (/.f64 (neg.f64 (sqrt.f64 (*.f64 (pow.f64 (*.f64 (pow.f64 (*.f64 A (*.f64 C F)) 1/3) (cbrt.f64 -4)) 3) (*.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 (*.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)))) |
| 63.2b | (pow.f64 (/.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) (neg.f64 (*.f64 (sqrt.f64 (*.f64 2 (+.f64 A (-.f64 C (hypot.f64 B (-.f64 A C)))))) (sqrt.f64 (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F))))) -1) | |
| 55.0b | (neg.f64 (*.f64 (sqrt.f64 (*.f64 -1/2 (/.f64 F C))) (sqrt.f64 2))) |
Compiled 49050 to 27967 computations (43% saved)
Found 4 expressions with local error:
| New | Error | Program |
| 3.0b | (-.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C))) | |
| ✓ | 9.9b | (sqrt.f64 (*.f64 F (*.f64 2 (-.f64 (+.f64 A C) (hypot.f64 B (-.f64 A C)))))) |
| ✓ | 10.1b | (sqrt.f64 (*.f64 C (*.f64 A -4))) |
| ✓ | 11.8b | (/.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)))) |
30 calls:
| 269.0ms | (/.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)))) | F | -inf |
| 236.0ms | (/.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)))) | F | inf |
| 220.0ms | (/.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)))) | F | 0 |
| 135.0ms | (/.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)))) | C | -inf |
| 123.0ms | (/.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)))) | A | 0 |
| 1× | batch-egg-rewrite |
| 240× | add-sqr-sqrt_binary64 |
| 228× | log1p-expm1-u_binary64 |
| 228× | expm1-log1p-u_binary64 |
| 227× | add-cbrt-cube_binary64 |
| 223× | add-exp-log_binary64 |
Useful iterations: 1 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 22 | 80 |
| 1 | 490 | 77 |
| 1× | node limit |
| 1× | egg-herbie |
| 666× | fma-def_binary64 |
| 512× | times-frac_binary64 |
| 392× | associate-/l*_binary64 |
| 271× | *-commutative_binary64 |
| 121× | associate-*r*_binary64 |
Useful iterations: 1 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 604 | 8056 |
| 1 | 2175 | 6399 |
| 1× | node limit |
32 alts after pruning (30 fresh and 2 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 217 | 8 | 225 |
| Fresh | 5 | 22 | 27 |
| Picked | 0 | 1 | 1 |
| Done | 0 | 1 | 1 |
| Total | 222 | 32 | 254 |
| Status | Error | Program |
| 56.8b | (/.f64 (neg.f64 (neg.f64 (+.f64 (*.f64 A (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 -8 (*.f64 C F))))) (/.f64 (*.f64 F (*.f64 (sqrt.f64 2) (pow.f64 B 2))) (sqrt.f64 (*.f64 -8 (*.f64 C F))))))) (fma.f64 B B (*.f64 C (*.f64 A -4)))) | |
| 54.6b | (neg.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 -1/2 (/.f64 F A))))) | |
| 58.8b | (/.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)))) | |
| 57.2b | (pow.f64 (neg.f64 (+.f64 (/.f64 (sqrt.f64 (/.f64 (*.f64 -2 A) F)) (sqrt.f64 2)) (*.f64 1/4 (/.f64 (/.f64 (*.f64 B B) C) (*.f64 (*.f64 F (sqrt.f64 (/.f64 (*.f64 -2 A) F))) (sqrt.f64 2)))))) -1) | |
| 58.1b | (/.f64 (neg.f64 (*.f64 (hypot.f64 B (sqrt.f64 (*.f64 C (*.f64 A -4)))) (sqrt.f64 (*.f64 F (*.f64 2 (-.f64 (*.f64 2 A) (/.f64 (*.f64 1/2 (*.f64 B B)) C))))))) (fma.f64 B B (*.f64 C (*.f64 A -4)))) | |
| 54.8b | (pow.f64 (neg.f64 (/.f64 (sqrt.f64 (/.f64 (*.f64 -2 A) F)) (sqrt.f64 2))) -1) | |
| 61.6b | (/.f64 (neg.f64 (sqrt.f64 (*.f64 -2 (*.f64 F (pow.f64 B 3))))) (fma.f64 B B (*.f64 C (*.f64 A -4)))) | |
| 56.2b | (/.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)))) | |
| 60.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)))) | |
| 54.5b | (*.f64 (/.f64 (sqrt.f64 2) B) (neg.f64 (sqrt.f64 (*.f64 F (-.f64 C (hypot.f64 C B)))))) | |
| 55.9b | (pow.f64 (/.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) (neg.f64 (sqrt.f64 (*.f64 (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F) (*.f64 2 (*.f64 2 C)))))) -1) | |
| 55.3b | (*.f64 (sqrt.f64 (*.f64 F (-.f64 A (hypot.f64 A B)))) (neg.f64 (/.f64 (sqrt.f64 2) B))) | |
| 60.7b | (pow.f64 (neg.f64 (*.f64 (sqrt.f64 (/.f64 (/.f64 1 F) (-.f64 A (sqrt.f64 (+.f64 (*.f64 A A) (*.f64 B B)))))) (/.f64 B (sqrt.f64 2)))) -1) | |
| 53.7b | (/.f64 (neg.f64 (*.f64 (hypot.f64 B (sqrt.f64 (*.f64 C (*.f64 A -4)))) (cbrt.f64 (pow.f64 (*.f64 (*.f64 F 2) (+.f64 A (-.f64 C (hypot.f64 B (-.f64 A C))))) 3/2)))) (fma.f64 B B (*.f64 C (*.f64 A -4)))) | |
| 62.2b | (/.f64 (neg.f64 (sqrt.f64 (-.f64 (fma.f64 2 (*.f64 (*.f64 C F) (*.f64 B B)) (fma.f64 2 (*.f64 (*.f64 A F) (*.f64 B B)) (*.f64 10 (*.f64 (*.f64 A C) (*.f64 F B))))) (fma.f64 2 (*.f64 F (pow.f64 B 3)) (*.f64 (*.f64 F B) (+.f64 (*.f64 A A) (*.f64 C C))))))) (fma.f64 B B (*.f64 C (*.f64 A -4)))) | |
| 54.8b | (*.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)))))) | |
| 55.0b | (pow.f64 (/.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) (neg.f64 (neg.f64 (*.f64 (sqrt.f64 (*.f64 -8 (*.f64 A F))) (*.f64 C (sqrt.f64 2)))))) -1) | |
| ✓ | 48.7b | (/.f64 (neg.f64 (sqrt.f64 (*.f64 (pow.f64 (cbrt.f64 (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F)) 3) (*.f64 2 (+.f64 A (-.f64 C (hypot.f64 B (-.f64 A C)))))))) (fma.f64 B B (*.f64 C (*.f64 A -4)))) |
| 59.2b | (/.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.0b | (/.f64 (neg.f64 (neg.f64 (*.f64 (sqrt.f64 (*.f64 -8 (*.f64 A F))) (*.f64 C (sqrt.f64 2))))) (fma.f64 B B (*.f64 C (*.f64 A -4)))) | |
| 48.8b | (neg.f64 (/.f64 (sqrt.f64 (*.f64 (*.f64 (*.f64 F 2) (+.f64 A (-.f64 C (hypot.f64 B (-.f64 A C))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))) (fma.f64 B B (*.f64 C (*.f64 A -4))))) | |
| 56.7b | (pow.f64 (neg.f64 (fma.f64 1/4 (/.f64 (/.f64 (*.f64 B B) A) (*.f64 (*.f64 F (sqrt.f64 (*.f64 -2 (/.f64 C F)))) (sqrt.f64 2))) (/.f64 (sqrt.f64 (*.f64 -2 (/.f64 C F))) (sqrt.f64 2)))) -1) | |
| 58.6b | (/.f64 (neg.f64 (*.f64 (hypot.f64 B (sqrt.f64 (*.f64 C (*.f64 A -4)))) (sqrt.f64 (*.f64 F (*.f64 2 (+.f64 (*.f64 2 C) (*.f64 -1/2 (/.f64 (*.f64 B B) A)))))))) (fma.f64 B B (*.f64 C (*.f64 A -4)))) | |
| 54.2b | (cbrt.f64 (pow.f64 (neg.f64 (/.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))))) 3)) | |
| 57.6b | (/.f64 (neg.f64 (*.f64 (hypot.f64 B (sqrt.f64 (*.f64 C (*.f64 A -4)))) (*.f64 (sqrt.f64 (*.f64 A F)) (pow.f64 (sqrt.f64 2) 2)))) (fma.f64 B B (*.f64 C (*.f64 A -4)))) | |
| 61.2b | (pow.f64 (/.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) (neg.f64 (sqrt.f64 (*.f64 (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F) (*.f64 2 B))))) -1) | |
| 55.2b | (pow.f64 (neg.f64 (/.f64 (sqrt.f64 (*.f64 -2 (/.f64 C F))) (sqrt.f64 2))) -1) | |
| 54.4b | (pow.f64 (/.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) (neg.f64 (sqrt.f64 (*.f64 (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F) (*.f64 2 (-.f64 (*.f64 2 A) (*.f64 1/2 (/.f64 (pow.f64 B 2) C)))))))) -1) | |
| 60.4b | (*.f64 1/4 (*.f64 (/.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 -4 (*.f64 A C)))) (*.f64 A C)) (sqrt.f64 (*.f64 F (-.f64 (+.f64 A C) (sqrt.f64 (-.f64 (+.f64 (pow.f64 A 2) (pow.f64 C 2)) (*.f64 2 (*.f64 A C))))))))) | |
| ✓ | 50.7b | (/.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)))) |
| 63.2b | (pow.f64 (/.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) (neg.f64 (*.f64 (sqrt.f64 (*.f64 2 (+.f64 A (-.f64 C (hypot.f64 B (-.f64 A C)))))) (sqrt.f64 (*.f64 (fma.f64 B B (*.f64 C (*.f64 A -4))) F))))) -1) | |
| 55.0b | (neg.f64 (*.f64 (sqrt.f64 (*.f64 -1/2 (/.f64 F C))) (sqrt.f64 2))) |
Compiled 19621 to 11698 computations (40.4% saved)
Total 20.1b remaining (49.7%)
Threshold costs 0b (0%)
Compiled 60347 to 38738 computations (35.8% saved)
| 4× | left-value |
4 calls:
| 0.0ms | (/.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))) |
| 0.0ms | (/.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))) |
| 0.0ms | (/.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))) |
| 0.0ms | (/.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))) |
| Iters | Point | Range | ||||
|---|---|---|---|---|---|---|
#hash((type . real) (value . +inf)) | ∈ [ | #hash((type . real) (value . +inf)) | , | #hash((type . real) (value . NaN)) | ] | |
0.0 | ∈ [ | 0.0 | , | 3.0175306534206063e-123 | ] | |
-1.4924876823199194e-182 | ∈ [ | -1.4924876823199194e-182 | , | 0.0 | ] | |
#hash((type . real) (value . -inf)) | ∈ [ | #hash((type . real) (value . -inf)) | , | -2.087812653506548e+267 | ] | |
Compiled 44 to 32 computations (27.3% saved)
| 1× | egg-herbie |
| 44× | *-commutative_binary64 |
| 34× | +-commutative_binary64 |
| 31× | sub-neg_binary64 |
| 24× | neg-sub0_binary64 |
| 24× | neg-mul-1_binary64 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 84 | 462 |
| 1 | 151 | 462 |
| 2 | 218 | 462 |
| 3 | 265 | 462 |
| 4 | 287 | 462 |
| 5 | 292 | 462 |
| 6 | 293 | 462 |
| 1× | saturated |
| 1× | fuel |
Compiled 1690 to 1134 computations (32.9% saved)
Loading profile data...