Time bar (total: 29.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% | 99.8% | 0.2% | 7 |
| 0% | 98.2% | 1.8% | 8 |
| 0% | 94.3% | 5.7% | 9 |
| 0.4% | 93% | 6.6% | 10 |
| 7.4% | 83.3% | 9.3% | 11 |
| 12.4% | 75.2% | 12.4% | 12 |
| 14.4% | 68.9% | 16.7% | 13 |
| 16.8% | 65.4% | 17.8% | 14 |
Compiled 45 to 33 computations (26.7% saved)
| 1.5s | 5734× | body | 128 | valid |
| 808.0ms | 891× | body | 1024 | valid |
| 805.0ms | 686× | body | 2048 | valid |
| 781.0ms | 881× | body | 1024 | invalid |
| 761.0ms | 631× | body | 2048 | invalid |
| 732.0ms | 3003× | body | 128 | invalid |
| 424.0ms | 601× | body | 512 | valid |
| 384.0ms | 569× | body | 512 | invalid |
| 167.0ms | 342× | body | 256 | valid |
| 149.0ms | 334× | body | 256 | invalid |
| 3.0ms | 2× | body | 4096 | valid |
Compiled 90 to 66 computations (26.7% saved)
| 2× | egg-herbie |
| 663× | associate-*l*_binary64 |
| 649× | associate-*r*_binary64 |
| 560× | distribute-rgt-in_binary64 |
| 528× | distribute-lft-in_binary64 |
| 364× | fma-def_binary64 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 109 | 427 |
| 1 | 360 | 343 |
| 2 | 1374 | 343 |
| 0 | 4 | 4 |
| 1× | saturated |
| 1× | node limit |
Compiled 44 to 32 computations (27.3% saved)
| 1× | egg-herbie |
| 552× | associate-*l*_binary64 |
| 520× | associate-*r*_binary64 |
| 455× | distribute-rgt-in_binary64 |
| 450× | fma-def_binary64 |
| 449× | distribute-lft-in_binary64 |
Useful iterations: 1 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 23 | 61 |
| 1 | 66 | 49 |
| 2 | 225 | 49 |
| 3 | 1003 | 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 |
| 52.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 2 (*.f64 (*.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))) F) (+.f64 C (+.f64 A (hypot.f64 B (-.f64 A C)))))))) (fma.f64 B B (*.f64 A (*.f64 C -4)))) |
Compiled 239 to 160 computations (33.1% saved)
Found 4 expressions with local error:
| New | Error | Program |
| ✓ | 4.1b | (*.f64 (*.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))) F) (+.f64 C (+.f64 A (hypot.f64 B (-.f64 A C))))) |
| ✓ | 5.5b | (*.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))) F) |
| ✓ | 15.7b | (sqrt.f64 (*.f64 2 (*.f64 (*.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))) F) (+.f64 C (+.f64 A (hypot.f64 B (-.f64 A C))))))) |
| ✓ | 22.5b | (/.f64 (neg.f64 (sqrt.f64 (*.f64 2 (*.f64 (*.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))) F) (+.f64 C (+.f64 A (hypot.f64 B (-.f64 A C)))))))) (fma.f64 B B (*.f64 A (*.f64 C -4)))) |
48 calls:
| 2.0s | (/.f64 (neg.f64 (sqrt.f64 (*.f64 2 (*.f64 (*.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))) F) (+.f64 C (+.f64 A (hypot.f64 B (-.f64 A C)))))))) (fma.f64 B B (*.f64 A (*.f64 C -4)))) | F | -inf |
| 1.4s | (sqrt.f64 (*.f64 2 (*.f64 (*.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))) F) (+.f64 C (+.f64 A (hypot.f64 B (-.f64 A C))))))) | F | 0 |
| 1.3s | (sqrt.f64 (*.f64 2 (*.f64 (*.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))) F) (+.f64 C (+.f64 A (hypot.f64 B (-.f64 A C))))))) | F | inf |
| 1.2s | (sqrt.f64 (*.f64 2 (*.f64 (*.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))) F) (+.f64 C (+.f64 A (hypot.f64 B (-.f64 A C))))))) | F | -inf |
| 387.0ms | (/.f64 (neg.f64 (sqrt.f64 (*.f64 2 (*.f64 (*.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))) F) (+.f64 C (+.f64 A (hypot.f64 B (-.f64 A C)))))))) (fma.f64 B B (*.f64 A (*.f64 C -4)))) | A | 0 |
| 1× | batch-egg-rewrite |
| 236× | add-sqr-sqrt_binary64 |
| 228× | pow1_binary64 |
| 227× | *-un-lft-identity_binary64 |
| 219× | add-exp-log_binary64 |
| 219× | add-log-exp_binary64 |
Useful iterations: 1 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 20 | 126 |
| 1 | 454 | 124 |
| 1× | node limit |
| 1× | egg-herbie |
| 542× | fma-def_binary64 |
| 490× | associate-*r*_binary64 |
| 257× | associate-/l*_binary64 |
| 210× | associate-*l/_binary64 |
| 171× | associate-/r*_binary64 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 2074 | 36539 |
| 1× | node limit |
25 alts after pruning (24 fresh and 1 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 218 | 24 | 242 |
| Fresh | 1 | 0 | 1 |
| Picked | 0 | 1 | 1 |
| Done | 0 | 0 | 0 |
| Total | 219 | 25 | 244 |
| Status | Error | Program |
| 58.1b | (/.f64 (neg.f64 (sqrt.f64 (*.f64 2 (+.f64 (*.f64 4 (*.f64 (*.f64 A F) (*.f64 B B))) (*.f64 -8 (*.f64 (*.f64 A A) (*.f64 C F))))))) (fma.f64 B B (*.f64 A (*.f64 C -4)))) | |
| 61.7b | (/.f64 (neg.f64 (sqrt.f64 (*.f64 2 (-.f64 (+.f64 (*.f64 C (*.f64 F (pow.f64 B 2))) (+.f64 (*.f64 A (*.f64 F (pow.f64 B 2))) (*.f64 5 (*.f64 A (*.f64 C (*.f64 F B)))))) (+.f64 (*.f64 F (pow.f64 B 3)) (+.f64 (*.f64 1/2 (*.f64 (pow.f64 A 2) (*.f64 F B))) (*.f64 1/2 (*.f64 (pow.f64 C 2) (*.f64 F B))))))))) (fma.f64 B B (*.f64 A (*.f64 C -4)))) | |
| 55.8b | (/.f64 (neg.f64 (fma.f64 A (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 -8 (*.f64 C F)))) (/.f64 F (/.f64 (sqrt.f64 (*.f64 -8 (*.f64 C F))) (*.f64 (sqrt.f64 2) (*.f64 B B)))))) (fma.f64 B B (*.f64 A (*.f64 C -4)))) | |
| 60.5b | (neg.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 -1/4 (*.f64 (/.f64 F A) (/.f64 (+.f64 A (+.f64 C (sqrt.f64 (+.f64 (+.f64 (*.f64 A A) (*.f64 C C)) (*.f64 -2 (*.f64 A C)))))) C)))))) | |
| 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 B B (*.f64 A (*.f64 C -4)))) | |
| 60.4b | (*.f64 -1 (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 -1/4 (/.f64 (*.f64 F (+.f64 A (+.f64 C (sqrt.f64 (-.f64 (+.f64 (pow.f64 A 2) (pow.f64 C 2)) (*.f64 2 (*.f64 A C))))))) (*.f64 A C)))))) | |
| 63.0b | (/.f64 (neg.f64 (sqrt.f64 (*.f64 2 (log.f64 (pow.f64 (exp.f64 (+.f64 (+.f64 C A) (hypot.f64 B (-.f64 A C)))) (*.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))) F)))))) (fma.f64 B B (*.f64 A (*.f64 C -4)))) | |
| 60.0b | (/.f64 (neg.f64 (sqrt.f64 (*.f64 2 (-.f64 (+.f64 (*.f64 C (*.f64 F (pow.f64 B 2))) (+.f64 (*.f64 A (*.f64 F (pow.f64 B 2))) (+.f64 (*.f64 F (pow.f64 B 3)) (+.f64 (*.f64 1/2 (*.f64 (pow.f64 A 2) (*.f64 F B))) (*.f64 1/2 (*.f64 (pow.f64 C 2) (*.f64 F B))))))) (*.f64 5 (*.f64 A (*.f64 C (*.f64 F B)))))))) (fma.f64 B B (*.f64 A (*.f64 C -4)))) | |
| 58.3b | (/.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 B B (*.f64 A (*.f64 C -4)))) | |
| 56.0b | (/.f64 (neg.f64 (sqrt.f64 (*.f64 2 (*.f64 (cbrt.f64 (pow.f64 (*.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))) F) 3)) (+.f64 C (+.f64 A (hypot.f64 B (-.f64 A C)))))))) (fma.f64 B B (*.f64 A (*.f64 C -4)))) | |
| 59.3b | (/.f64 (neg.f64 (sqrt.f64 (*.f64 2 (+.f64 (*.f64 4 (*.f64 (*.f64 C F) (*.f64 B B))) (*.f64 (*.f64 -8 A) (*.f64 (*.f64 C C) F)))))) (fma.f64 B B (*.f64 A (*.f64 C -4)))) | |
| 48.7b | (/.f64 (neg.f64 (sqrt.f64 (*.f64 2 (*.f64 (pow.f64 (cbrt.f64 (*.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))) F)) 3) (+.f64 C (+.f64 A (hypot.f64 B (-.f64 A C)))))))) (fma.f64 B B (*.f64 A (*.f64 C -4)))) | |
| 58.9b | (/.f64 (neg.f64 (sqrt.f64 (*.f64 2 (*.f64 -8 (*.f64 A (*.f64 (pow.f64 C 2) F)))))) (fma.f64 B B (*.f64 A (*.f64 C -4)))) | |
| 58.5b | (/.f64 (neg.f64 (sqrt.f64 (*.f64 2 (-.f64 (+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 (-.f64 (+.f64 (pow.f64 A 2) (pow.f64 C 2)) (*.f64 2 (*.f64 A C))))) (*.f64 F (pow.f64 B 4)))) (+.f64 (*.f64 C (*.f64 F (pow.f64 B 2))) (+.f64 (*.f64 1/2 (*.f64 (*.f64 A (*.f64 C (*.f64 F (pow.f64 B 4)))) (sqrt.f64 (/.f64 1 (pow.f64 (-.f64 (+.f64 (pow.f64 A 2) (pow.f64 C 2)) (*.f64 2 (*.f64 A C))) 3))))) (+.f64 (*.f64 (sqrt.f64 (-.f64 (+.f64 (pow.f64 A 2) (pow.f64 C 2)) (*.f64 2 (*.f64 A C)))) (*.f64 F (pow.f64 B 2))) (*.f64 A (*.f64 F (pow.f64 B 2))))))) (+.f64 (*.f64 4 (*.f64 A (*.f64 (pow.f64 C 2) F))) (+.f64 (*.f64 2 (*.f64 (*.f64 A (*.f64 C (*.f64 F (pow.f64 B 2)))) (sqrt.f64 (/.f64 1 (-.f64 (+.f64 (pow.f64 A 2) (pow.f64 C 2)) (*.f64 2 (*.f64 A C))))))) (+.f64 (*.f64 4 (*.f64 (pow.f64 A 2) (*.f64 C F))) (*.f64 4 (*.f64 (*.f64 A (*.f64 C F)) (sqrt.f64 (-.f64 (+.f64 (pow.f64 A 2) (pow.f64 C 2)) (*.f64 2 (*.f64 A C))))))))))))) (fma.f64 B B (*.f64 A (*.f64 C -4)))) | |
| 56.6b | (neg.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 -1/2 (/.f64 F A))))) | |
| ✓ | 48.6b | (/.f64 (neg.f64 (sqrt.f64 (*.f64 2 (*.f64 (*.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))) F) (+.f64 C (+.f64 A (hypot.f64 B (-.f64 A C)))))))) (fma.f64 B B (*.f64 A (*.f64 C -4)))) |
| 48.7b | (neg.f64 (/.f64 (sqrt.f64 (*.f64 2 (*.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))) (*.f64 F (+.f64 (+.f64 C A) (hypot.f64 B (-.f64 A C))))))) (fma.f64 B B (*.f64 A (*.f64 C -4))))) | |
| 58.0b | (neg.f64 (*.f64 (sqrt.f64 (*.f64 F (+.f64 A (sqrt.f64 (+.f64 (*.f64 A A) (*.f64 B B)))))) (/.f64 (sqrt.f64 2) B))) | |
| 57.9b | (/.f64 (neg.f64 (sqrt.f64 (*.f64 2 (*.f64 -8 (*.f64 (pow.f64 A 2) (*.f64 C F)))))) (fma.f64 B B (*.f64 A (*.f64 C -4)))) | |
| 54.3b | (neg.f64 (*.f64 (sqrt.f64 (*.f64 -1/2 (/.f64 F C))) (sqrt.f64 2))) | |
| 57.9b | (/.f64 (neg.f64 (sqrt.f64 (*.f64 2 (-.f64 (fma.f64 2 (/.f64 (*.f64 A A) (/.f64 C (*.f64 F (*.f64 B B)))) (*.f64 4 (*.f64 (*.f64 A F) (*.f64 B B)))) (fma.f64 8 (*.f64 (*.f64 A A) (*.f64 C F)) (*.f64 1/2 (/.f64 F (/.f64 C (pow.f64 B 4))))))))) (fma.f64 B B (*.f64 A (*.f64 C -4)))) | |
| 56.2b | (/.f64 (neg.f64 (*.f64 (sqrt.f64 (*.f64 -8 (*.f64 A F))) (*.f64 C (sqrt.f64 2)))) (fma.f64 B B (*.f64 A (*.f64 C -4)))) | |
| ▶ | 45.8b | (/.f64 (neg.f64 (*.f64 (sqrt.f64 (*.f64 2 (*.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))) F))) (sqrt.f64 (+.f64 (+.f64 C A) (hypot.f64 B (-.f64 A C)))))) (fma.f64 B B (*.f64 A (*.f64 C -4)))) |
| 63.4b | (pow.f64 (/.f64 (pow.f64 (*.f64 2 (*.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))) (*.f64 F (+.f64 (+.f64 C A) (hypot.f64 B (-.f64 A C)))))) 1/4) (hypot.f64 B (sqrt.f64 (*.f64 A (*.f64 C -4))))) 2) | |
| 56.5b | (/.f64 (neg.f64 (fma.f64 (sqrt.f64 (*.f64 (*.f64 -8 A) F)) (*.f64 C (sqrt.f64 2)) (/.f64 (*.f64 (*.f64 F (sqrt.f64 2)) (*.f64 B B)) (sqrt.f64 (*.f64 (*.f64 -8 A) F))))) (fma.f64 B B (*.f64 A (*.f64 C -4)))) |
Compiled 53465 to 30608 computations (42.8% saved)
Found 4 expressions with local error:
| New | Error | Program |
| ✓ | 1.2b | (fma.f64 B B (*.f64 A (*.f64 C -4))) |
| 5.5b | (*.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))) F) | |
| ✓ | 20.1b | (/.f64 (neg.f64 (*.f64 (sqrt.f64 (*.f64 2 (*.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))) F))) (sqrt.f64 (+.f64 (+.f64 C A) (hypot.f64 B (-.f64 A C)))))) (fma.f64 B B (*.f64 A (*.f64 C -4)))) |
| ✓ | 20.1b | (sqrt.f64 (*.f64 2 (*.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))) F))) |
33 calls:
| 381.0ms | (/.f64 (neg.f64 (*.f64 (sqrt.f64 (*.f64 2 (*.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))) F))) (sqrt.f64 (+.f64 (+.f64 C A) (hypot.f64 B (-.f64 A C)))))) (fma.f64 B B (*.f64 A (*.f64 C -4)))) | A | 0 |
| 318.0ms | (/.f64 (neg.f64 (*.f64 (sqrt.f64 (*.f64 2 (*.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))) F))) (sqrt.f64 (+.f64 (+.f64 C A) (hypot.f64 B (-.f64 A C)))))) (fma.f64 B B (*.f64 A (*.f64 C -4)))) | B | 0 |
| 312.0ms | (/.f64 (neg.f64 (*.f64 (sqrt.f64 (*.f64 2 (*.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))) F))) (sqrt.f64 (+.f64 (+.f64 C A) (hypot.f64 B (-.f64 A C)))))) (fma.f64 B B (*.f64 A (*.f64 C -4)))) | F | inf |
| 289.0ms | (/.f64 (neg.f64 (*.f64 (sqrt.f64 (*.f64 2 (*.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))) F))) (sqrt.f64 (+.f64 (+.f64 C A) (hypot.f64 B (-.f64 A C)))))) (fma.f64 B B (*.f64 A (*.f64 C -4)))) | F | 0 |
| 202.0ms | (/.f64 (neg.f64 (*.f64 (sqrt.f64 (*.f64 2 (*.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))) F))) (sqrt.f64 (+.f64 (+.f64 C A) (hypot.f64 B (-.f64 A C)))))) (fma.f64 B B (*.f64 A (*.f64 C -4)))) | C | 0 |
| 1× | batch-egg-rewrite |
| 241× | add-sqr-sqrt_binary64 |
| 233× | pow1_binary64 |
| 231× | *-un-lft-identity_binary64 |
| 223× | add-exp-log_binary64 |
| 223× | add-log-exp_binary64 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 21 | 79 |
| 1 | 471 | 79 |
| 1× | node limit |
| 1× | egg-herbie |
| 523× | *-commutative_binary64 |
| 262× | +-commutative_binary64 |
| 254× | fma-def_binary64 |
| 242× | associate-*r*_binary64 |
| 234× | associate-+r+_binary64 |
Useful iterations: 1 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 1144 | 18983 |
| 1 | 4709 | 17143 |
| 1× | node limit |
24 alts after pruning (24 fresh and 0 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 159 | 9 | 168 |
| Fresh | 8 | 15 | 23 |
| Picked | 1 | 0 | 1 |
| Done | 1 | 0 | 1 |
| Total | 169 | 24 | 193 |
| Status | Error | Program |
| 57.9b | (/.f64 (neg.f64 (sqrt.f64 (*.f64 2 (-.f64 (fma.f64 2 (/.f64 (*.f64 A A) (/.f64 C (*.f64 F (*.f64 B B)))) (*.f64 4 (*.f64 (*.f64 A F) (*.f64 B B)))) (fma.f64 8 (*.f64 (*.f64 A A) (*.f64 C F)) (*.f64 1/2 (/.f64 F (/.f64 C (pow.f64 B 4))))))))) (fma.f64 B B (*.f64 A (*.f64 C -4)))) | |
| 53.4b | (*.f64 (neg.f64 (sqrt.f64 (*.f64 F (+.f64 A (hypot.f64 A B))))) (/.f64 (sqrt.f64 2) B)) | |
| 55.8b | (/.f64 (neg.f64 (fma.f64 A (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 -8 (*.f64 C F)))) (/.f64 F (/.f64 (sqrt.f64 (*.f64 -8 (*.f64 C F))) (*.f64 (sqrt.f64 2) (*.f64 B B)))))) (fma.f64 B B (*.f64 A (*.f64 C -4)))) | |
| 60.5b | (neg.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 -1/4 (*.f64 (/.f64 F A) (/.f64 (+.f64 A (+.f64 C (sqrt.f64 (+.f64 (+.f64 (*.f64 A A) (*.f64 C C)) (*.f64 -2 (*.f64 A C)))))) C)))))) | |
| 61.0b | (pow.f64 (pow.f64 (/.f64 (neg.f64 (sqrt.f64 (*.f64 (*.f64 2 (*.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))) F)) (+.f64 C (+.f64 A (hypot.f64 B (-.f64 A C))))))) (fma.f64 B B (*.f64 A (*.f64 C -4)))) 3) 1/3) | |
| 60.0b | (/.f64 (neg.f64 (sqrt.f64 (*.f64 2 (-.f64 (+.f64 (*.f64 C (*.f64 F (pow.f64 B 2))) (+.f64 (*.f64 A (*.f64 F (pow.f64 B 2))) (+.f64 (*.f64 F (pow.f64 B 3)) (+.f64 (*.f64 1/2 (*.f64 (pow.f64 A 2) (*.f64 F B))) (*.f64 1/2 (*.f64 (pow.f64 C 2) (*.f64 F B))))))) (*.f64 5 (*.f64 A (*.f64 C (*.f64 F B)))))))) (fma.f64 B B (*.f64 A (*.f64 C -4)))) | |
| 58.3b | (/.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 B B (*.f64 A (*.f64 C -4)))) | |
| 58.2b | (/.f64 (neg.f64 (*.f64 (*.f64 (neg.f64 (sqrt.f64 F)) (*.f64 (sqrt.f64 2) B)) (sqrt.f64 (+.f64 (+.f64 C A) (hypot.f64 B (-.f64 A C)))))) (fma.f64 B B (*.f64 A (*.f64 C -4)))) | |
| 53.3b | (/.f64 (neg.f64 (*.f64 (sqrt.f64 (*.f64 2 (*.f64 (*.f64 -4 (*.f64 A C)) F))) (sqrt.f64 (+.f64 (+.f64 C A) (hypot.f64 B (-.f64 A C)))))) (fma.f64 B B (*.f64 A (*.f64 C -4)))) | |
| 59.7b | (exp.f64 (log.f64 (/.f64 (neg.f64 (sqrt.f64 (*.f64 (*.f64 2 (*.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))) F)) (+.f64 C (+.f64 A (hypot.f64 B (-.f64 A C))))))) (fma.f64 B B (*.f64 A (*.f64 C -4)))))) | |
| 48.7b | (/.f64 (neg.f64 (sqrt.f64 (*.f64 2 (*.f64 (pow.f64 (cbrt.f64 (*.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))) F)) 3) (+.f64 C (+.f64 A (hypot.f64 B (-.f64 A C)))))))) (fma.f64 B B (*.f64 A (*.f64 C -4)))) | |
| ▶ | 46.0b | (/.f64 (neg.f64 (*.f64 (sqrt.f64 (*.f64 2 (*.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))) F))) (sqrt.f64 (+.f64 (+.f64 C A) (hypot.f64 B (-.f64 A C)))))) (*.f64 (pow.f64 (cbrt.f64 (fma.f64 B B (*.f64 A (*.f64 C -4)))) 2) (cbrt.f64 (fma.f64 B B (*.f64 A (*.f64 C -4)))))) |
| 56.6b | (neg.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 -1/2 (/.f64 F A))))) | |
| 58.5b | (/.f64 (neg.f64 (sqrt.f64 (*.f64 2 (-.f64 (+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 (-.f64 (+.f64 (pow.f64 A 2) (pow.f64 C 2)) (*.f64 2 (*.f64 A C))))) (*.f64 F (pow.f64 B 4)))) (+.f64 (*.f64 C (*.f64 F (pow.f64 B 2))) (+.f64 (*.f64 1/2 (*.f64 (*.f64 A (*.f64 C (*.f64 F (pow.f64 B 4)))) (sqrt.f64 (/.f64 1 (pow.f64 (-.f64 (+.f64 (pow.f64 A 2) (pow.f64 C 2)) (*.f64 2 (*.f64 A C))) 3))))) (+.f64 (*.f64 (sqrt.f64 (-.f64 (+.f64 (pow.f64 A 2) (pow.f64 C 2)) (*.f64 2 (*.f64 A C)))) (*.f64 F (pow.f64 B 2))) (*.f64 A (*.f64 F (pow.f64 B 2))))))) (+.f64 (*.f64 4 (*.f64 A (*.f64 (pow.f64 C 2) F))) (+.f64 (*.f64 2 (*.f64 (*.f64 A (*.f64 C (*.f64 F (pow.f64 B 2)))) (sqrt.f64 (/.f64 1 (-.f64 (+.f64 (pow.f64 A 2) (pow.f64 C 2)) (*.f64 2 (*.f64 A C))))))) (+.f64 (*.f64 4 (*.f64 (pow.f64 A 2) (*.f64 C F))) (*.f64 4 (*.f64 (*.f64 A (*.f64 C F)) (sqrt.f64 (-.f64 (+.f64 (pow.f64 A 2) (pow.f64 C 2)) (*.f64 2 (*.f64 A C))))))))))))) (fma.f64 B B (*.f64 A (*.f64 C -4)))) | |
| 48.7b | (neg.f64 (/.f64 (sqrt.f64 (*.f64 2 (*.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))) (*.f64 F (+.f64 (+.f64 C A) (hypot.f64 B (-.f64 A C))))))) (fma.f64 B B (*.f64 A (*.f64 C -4))))) | |
| 58.0b | (neg.f64 (*.f64 (sqrt.f64 (*.f64 F (+.f64 A (sqrt.f64 (+.f64 (*.f64 A A) (*.f64 B B)))))) (/.f64 (sqrt.f64 2) B))) | |
| 47.4b | (/.f64 (neg.f64 (*.f64 (*.f64 (pow.f64 (*.f64 2 (fma.f64 B B (*.f64 A (*.f64 C -4)))) 1/2) (sqrt.f64 F)) (sqrt.f64 (+.f64 (+.f64 C A) (hypot.f64 B (-.f64 A C)))))) (fma.f64 B B (*.f64 A (*.f64 C -4)))) | |
| 63.4b | (pow.f64 (/.f64 (pow.f64 (*.f64 2 (*.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))) (*.f64 F (+.f64 (+.f64 C A) (hypot.f64 B (-.f64 A C)))))) 1/4) (hypot.f64 B (sqrt.f64 (*.f64 A (*.f64 C -4))))) 2) | |
| 60.4b | (*.f64 -1 (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 -1/4 (/.f64 (*.f64 F (+.f64 A (+.f64 C (sqrt.f64 (-.f64 (+.f64 (pow.f64 A 2) (pow.f64 C 2)) (*.f64 2 (*.f64 A C))))))) (*.f64 A C)))))) | |
| 53.9b | (*.f64 (neg.f64 (sqrt.f64 (*.f64 F (+.f64 C (hypot.f64 C B))))) (/.f64 (sqrt.f64 2) B)) | |
| 59.3b | (/.f64 (neg.f64 (sqrt.f64 (*.f64 2 (+.f64 (*.f64 4 (*.f64 (*.f64 C F) (*.f64 B B))) (*.f64 (*.f64 -8 A) (*.f64 (*.f64 C C) F)))))) (fma.f64 B B (*.f64 A (*.f64 C -4)))) | |
| 54.7b | (/.f64 (neg.f64 (*.f64 (sqrt.f64 (*.f64 2 (*.f64 (pow.f64 B 2) F))) (sqrt.f64 (+.f64 (+.f64 C A) (hypot.f64 B (-.f64 A C)))))) (fma.f64 B B (*.f64 A (*.f64 C -4)))) | |
| 54.3b | (neg.f64 (*.f64 (sqrt.f64 (*.f64 -1/2 (/.f64 F C))) (sqrt.f64 2))) | |
| 56.5b | (/.f64 (neg.f64 (fma.f64 (sqrt.f64 (*.f64 (*.f64 -8 A) F)) (*.f64 C (sqrt.f64 2)) (/.f64 (*.f64 (*.f64 F (sqrt.f64 2)) (*.f64 B B)) (sqrt.f64 (*.f64 (*.f64 -8 A) F))))) (fma.f64 B B (*.f64 A (*.f64 C -4)))) |
Compiled 29312 to 17573 computations (40% saved)
Found 4 expressions with local error:
| New | Error | Program |
| 5.5b | (*.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))) F) | |
| ✓ | 20.1b | (/.f64 (neg.f64 (*.f64 (sqrt.f64 (*.f64 2 (*.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))) F))) (sqrt.f64 (+.f64 (+.f64 C A) (hypot.f64 B (-.f64 A C)))))) (*.f64 (pow.f64 (cbrt.f64 (fma.f64 B B (*.f64 A (*.f64 C -4)))) 2) (cbrt.f64 (fma.f64 B B (*.f64 A (*.f64 C -4)))))) |
| 20.1b | (sqrt.f64 (*.f64 2 (*.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))) F))) | |
| ✓ | 23.5b | (cbrt.f64 (fma.f64 B B (*.f64 A (*.f64 C -4)))) |
21 calls:
| 378.0ms | (/.f64 (neg.f64 (*.f64 (sqrt.f64 (*.f64 2 (*.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))) F))) (sqrt.f64 (+.f64 (+.f64 C A) (hypot.f64 B (-.f64 A C)))))) (*.f64 (pow.f64 (cbrt.f64 (fma.f64 B B (*.f64 A (*.f64 C -4)))) 2) (cbrt.f64 (fma.f64 B B (*.f64 A (*.f64 C -4)))))) | A | 0 |
| 325.0ms | (/.f64 (neg.f64 (*.f64 (sqrt.f64 (*.f64 2 (*.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))) F))) (sqrt.f64 (+.f64 (+.f64 C A) (hypot.f64 B (-.f64 A C)))))) (*.f64 (pow.f64 (cbrt.f64 (fma.f64 B B (*.f64 A (*.f64 C -4)))) 2) (cbrt.f64 (fma.f64 B B (*.f64 A (*.f64 C -4)))))) | B | 0 |
| 319.0ms | (/.f64 (neg.f64 (*.f64 (sqrt.f64 (*.f64 2 (*.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))) F))) (sqrt.f64 (+.f64 (+.f64 C A) (hypot.f64 B (-.f64 A C)))))) (*.f64 (pow.f64 (cbrt.f64 (fma.f64 B B (*.f64 A (*.f64 C -4)))) 2) (cbrt.f64 (fma.f64 B B (*.f64 A (*.f64 C -4)))))) | F | inf |
| 280.0ms | (/.f64 (neg.f64 (*.f64 (sqrt.f64 (*.f64 2 (*.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))) F))) (sqrt.f64 (+.f64 (+.f64 C A) (hypot.f64 B (-.f64 A C)))))) (*.f64 (pow.f64 (cbrt.f64 (fma.f64 B B (*.f64 A (*.f64 C -4)))) 2) (cbrt.f64 (fma.f64 B B (*.f64 A (*.f64 C -4)))))) | F | 0 |
| 214.0ms | (/.f64 (neg.f64 (*.f64 (sqrt.f64 (*.f64 2 (*.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))) F))) (sqrt.f64 (+.f64 (+.f64 C A) (hypot.f64 B (-.f64 A C)))))) (*.f64 (pow.f64 (cbrt.f64 (fma.f64 B B (*.f64 A (*.f64 C -4)))) 2) (cbrt.f64 (fma.f64 B B (*.f64 A (*.f64 C -4)))))) | C | 0 |
| 1× | batch-egg-rewrite |
| 260× | add-sqr-sqrt_binary64 |
| 252× | pow1_binary64 |
| 249× | *-un-lft-identity_binary64 |
| 241× | add-log-exp_binary64 |
| 241× | log1p-expm1-u_binary64 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 24 | 62 |
| 1 | 541 | 62 |
| 1× | node limit |
| 1× | egg-herbie |
| 522× | *-commutative_binary64 |
| 262× | +-commutative_binary64 |
| 254× | fma-def_binary64 |
| 239× | associate-*r*_binary64 |
| 234× | associate-+r+_binary64 |
Useful iterations: 1 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 1165 | 18217 |
| 1 | 4734 | 16377 |
| 1× | node limit |
25 alts after pruning (25 fresh and 0 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 180 | 2 | 182 |
| Fresh | 0 | 23 | 23 |
| Picked | 1 | 0 | 1 |
| Done | 0 | 0 | 0 |
| Total | 181 | 25 | 206 |
| Status | Error | Program |
| 57.9b | (/.f64 (neg.f64 (sqrt.f64 (*.f64 2 (-.f64 (fma.f64 2 (/.f64 (*.f64 A A) (/.f64 C (*.f64 F (*.f64 B B)))) (*.f64 4 (*.f64 (*.f64 A F) (*.f64 B B)))) (fma.f64 8 (*.f64 (*.f64 A A) (*.f64 C F)) (*.f64 1/2 (/.f64 F (/.f64 C (pow.f64 B 4))))))))) (fma.f64 B B (*.f64 A (*.f64 C -4)))) | |
| 53.4b | (*.f64 (neg.f64 (sqrt.f64 (*.f64 F (+.f64 A (hypot.f64 A B))))) (/.f64 (sqrt.f64 2) B)) | |
| 55.8b | (/.f64 (neg.f64 (fma.f64 A (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 -8 (*.f64 C F)))) (/.f64 F (/.f64 (sqrt.f64 (*.f64 -8 (*.f64 C F))) (*.f64 (sqrt.f64 2) (*.f64 B B)))))) (fma.f64 B B (*.f64 A (*.f64 C -4)))) | |
| 60.5b | (neg.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 -1/4 (*.f64 (/.f64 F A) (/.f64 (+.f64 A (+.f64 C (sqrt.f64 (+.f64 (+.f64 (*.f64 A A) (*.f64 C C)) (*.f64 -2 (*.f64 A C)))))) C)))))) | |
| 61.0b | (pow.f64 (pow.f64 (/.f64 (neg.f64 (sqrt.f64 (*.f64 (*.f64 2 (*.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))) F)) (+.f64 C (+.f64 A (hypot.f64 B (-.f64 A C))))))) (fma.f64 B B (*.f64 A (*.f64 C -4)))) 3) 1/3) | |
| 60.0b | (/.f64 (neg.f64 (sqrt.f64 (*.f64 2 (-.f64 (+.f64 (*.f64 C (*.f64 F (pow.f64 B 2))) (+.f64 (*.f64 A (*.f64 F (pow.f64 B 2))) (+.f64 (*.f64 F (pow.f64 B 3)) (+.f64 (*.f64 1/2 (*.f64 (pow.f64 A 2) (*.f64 F B))) (*.f64 1/2 (*.f64 (pow.f64 C 2) (*.f64 F B))))))) (*.f64 5 (*.f64 A (*.f64 C (*.f64 F B)))))))) (fma.f64 B B (*.f64 A (*.f64 C -4)))) | |
| 58.3b | (/.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 B B (*.f64 A (*.f64 C -4)))) | |
| 58.2b | (/.f64 (neg.f64 (*.f64 (*.f64 (neg.f64 (sqrt.f64 F)) (*.f64 (sqrt.f64 2) B)) (sqrt.f64 (+.f64 (+.f64 C A) (hypot.f64 B (-.f64 A C)))))) (fma.f64 B B (*.f64 A (*.f64 C -4)))) | |
| 53.3b | (/.f64 (neg.f64 (*.f64 (sqrt.f64 (*.f64 2 (*.f64 (*.f64 -4 (*.f64 A C)) F))) (sqrt.f64 (+.f64 (+.f64 C A) (hypot.f64 B (-.f64 A C)))))) (fma.f64 B B (*.f64 A (*.f64 C -4)))) | |
| 59.7b | (exp.f64 (log.f64 (/.f64 (neg.f64 (sqrt.f64 (*.f64 (*.f64 2 (*.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))) F)) (+.f64 C (+.f64 A (hypot.f64 B (-.f64 A C))))))) (fma.f64 B B (*.f64 A (*.f64 C -4)))))) | |
| 48.7b | (/.f64 (neg.f64 (sqrt.f64 (*.f64 2 (*.f64 (pow.f64 (cbrt.f64 (*.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))) F)) 3) (+.f64 C (+.f64 A (hypot.f64 B (-.f64 A C)))))))) (fma.f64 B B (*.f64 A (*.f64 C -4)))) | |
| 56.6b | (neg.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 -1/2 (/.f64 F A))))) | |
| 47.6b | (/.f64 (neg.f64 (*.f64 (*.f64 (pow.f64 (*.f64 2 (fma.f64 B B (*.f64 A (*.f64 C -4)))) 1/2) (sqrt.f64 F)) (sqrt.f64 (+.f64 (+.f64 C A) (hypot.f64 B (-.f64 A C)))))) (*.f64 (pow.f64 (cbrt.f64 (fma.f64 B B (*.f64 A (*.f64 C -4)))) 2) (cbrt.f64 (fma.f64 B B (*.f64 A (*.f64 C -4)))))) | |
| 58.5b | (/.f64 (neg.f64 (sqrt.f64 (*.f64 2 (-.f64 (+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 (-.f64 (+.f64 (pow.f64 A 2) (pow.f64 C 2)) (*.f64 2 (*.f64 A C))))) (*.f64 F (pow.f64 B 4)))) (+.f64 (*.f64 C (*.f64 F (pow.f64 B 2))) (+.f64 (*.f64 1/2 (*.f64 (*.f64 A (*.f64 C (*.f64 F (pow.f64 B 4)))) (sqrt.f64 (/.f64 1 (pow.f64 (-.f64 (+.f64 (pow.f64 A 2) (pow.f64 C 2)) (*.f64 2 (*.f64 A C))) 3))))) (+.f64 (*.f64 (sqrt.f64 (-.f64 (+.f64 (pow.f64 A 2) (pow.f64 C 2)) (*.f64 2 (*.f64 A C)))) (*.f64 F (pow.f64 B 2))) (*.f64 A (*.f64 F (pow.f64 B 2))))))) (+.f64 (*.f64 4 (*.f64 A (*.f64 (pow.f64 C 2) F))) (+.f64 (*.f64 2 (*.f64 (*.f64 A (*.f64 C (*.f64 F (pow.f64 B 2)))) (sqrt.f64 (/.f64 1 (-.f64 (+.f64 (pow.f64 A 2) (pow.f64 C 2)) (*.f64 2 (*.f64 A C))))))) (+.f64 (*.f64 4 (*.f64 (pow.f64 A 2) (*.f64 C F))) (*.f64 4 (*.f64 (*.f64 A (*.f64 C F)) (sqrt.f64 (-.f64 (+.f64 (pow.f64 A 2) (pow.f64 C 2)) (*.f64 2 (*.f64 A C))))))))))))) (fma.f64 B B (*.f64 A (*.f64 C -4)))) | |
| 48.7b | (neg.f64 (/.f64 (sqrt.f64 (*.f64 2 (*.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))) (*.f64 F (+.f64 (+.f64 C A) (hypot.f64 B (-.f64 A C))))))) (fma.f64 B B (*.f64 A (*.f64 C -4))))) | |
| 58.0b | (neg.f64 (*.f64 (sqrt.f64 (*.f64 F (+.f64 A (sqrt.f64 (+.f64 (*.f64 A A) (*.f64 B B)))))) (/.f64 (sqrt.f64 2) B))) | |
| ▶ | 47.4b | (/.f64 (neg.f64 (*.f64 (*.f64 (pow.f64 (*.f64 2 (fma.f64 B B (*.f64 A (*.f64 C -4)))) 1/2) (sqrt.f64 F)) (sqrt.f64 (+.f64 (+.f64 C A) (hypot.f64 B (-.f64 A C)))))) (fma.f64 B B (*.f64 A (*.f64 C -4)))) |
| 63.4b | (pow.f64 (/.f64 (pow.f64 (*.f64 2 (*.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))) (*.f64 F (+.f64 (+.f64 C A) (hypot.f64 B (-.f64 A C)))))) 1/4) (hypot.f64 B (sqrt.f64 (*.f64 A (*.f64 C -4))))) 2) | |
| 53.9b | (/.f64 (neg.f64 (*.f64 (sqrt.f64 (*.f64 2 (*.f64 -4 (*.f64 A (*.f64 C F))))) (sqrt.f64 (+.f64 (+.f64 C A) (hypot.f64 B (-.f64 A C)))))) (*.f64 (pow.f64 (cbrt.f64 (fma.f64 B B (*.f64 A (*.f64 C -4)))) 2) (cbrt.f64 (fma.f64 B B (*.f64 A (*.f64 C -4)))))) | |
| 60.4b | (*.f64 -1 (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 -1/4 (/.f64 (*.f64 F (+.f64 A (+.f64 C (sqrt.f64 (-.f64 (+.f64 (pow.f64 A 2) (pow.f64 C 2)) (*.f64 2 (*.f64 A C))))))) (*.f64 A C)))))) | |
| 53.9b | (*.f64 (neg.f64 (sqrt.f64 (*.f64 F (+.f64 C (hypot.f64 C B))))) (/.f64 (sqrt.f64 2) B)) | |
| 59.3b | (/.f64 (neg.f64 (sqrt.f64 (*.f64 2 (+.f64 (*.f64 4 (*.f64 (*.f64 C F) (*.f64 B B))) (*.f64 (*.f64 -8 A) (*.f64 (*.f64 C C) F)))))) (fma.f64 B B (*.f64 A (*.f64 C -4)))) | |
| 54.7b | (/.f64 (neg.f64 (*.f64 (sqrt.f64 (*.f64 2 (*.f64 (pow.f64 B 2) F))) (sqrt.f64 (+.f64 (+.f64 C A) (hypot.f64 B (-.f64 A C)))))) (fma.f64 B B (*.f64 A (*.f64 C -4)))) | |
| 54.3b | (neg.f64 (*.f64 (sqrt.f64 (*.f64 -1/2 (/.f64 F C))) (sqrt.f64 2))) | |
| 56.5b | (/.f64 (neg.f64 (fma.f64 (sqrt.f64 (*.f64 (*.f64 -8 A) F)) (*.f64 C (sqrt.f64 2)) (/.f64 (*.f64 (*.f64 F (sqrt.f64 2)) (*.f64 B B)) (sqrt.f64 (*.f64 (*.f64 -8 A) F))))) (fma.f64 B B (*.f64 A (*.f64 C -4)))) |
Compiled 32408 to 19675 computations (39.3% saved)
Found 4 expressions with local error:
| New | Error | Program |
| ✓ | 1.0b | (+.f64 (+.f64 C A) (hypot.f64 B (-.f64 A C))) |
| 1.2b | (fma.f64 B B (*.f64 A (*.f64 C -4))) | |
| ✓ | 18.1b | (/.f64 (neg.f64 (*.f64 (*.f64 (pow.f64 (*.f64 2 (fma.f64 B B (*.f64 A (*.f64 C -4)))) 1/2) (sqrt.f64 F)) (sqrt.f64 (+.f64 (+.f64 C A) (hypot.f64 B (-.f64 A C)))))) (fma.f64 B B (*.f64 A (*.f64 C -4)))) |
| ✓ | 22.3b | (pow.f64 (*.f64 2 (fma.f64 B B (*.f64 A (*.f64 C -4)))) 1/2) |
30 calls:
| 386.0ms | (/.f64 (neg.f64 (*.f64 (*.f64 (pow.f64 (*.f64 2 (fma.f64 B B (*.f64 A (*.f64 C -4)))) 1/2) (sqrt.f64 F)) (sqrt.f64 (+.f64 (+.f64 C A) (hypot.f64 B (-.f64 A C)))))) (fma.f64 B B (*.f64 A (*.f64 C -4)))) | A | 0 |
| 317.0ms | (/.f64 (neg.f64 (*.f64 (*.f64 (pow.f64 (*.f64 2 (fma.f64 B B (*.f64 A (*.f64 C -4)))) 1/2) (sqrt.f64 F)) (sqrt.f64 (+.f64 (+.f64 C A) (hypot.f64 B (-.f64 A C)))))) (fma.f64 B B (*.f64 A (*.f64 C -4)))) | B | 0 |
| 308.0ms | (/.f64 (neg.f64 (*.f64 (*.f64 (pow.f64 (*.f64 2 (fma.f64 B B (*.f64 A (*.f64 C -4)))) 1/2) (sqrt.f64 F)) (sqrt.f64 (+.f64 (+.f64 C A) (hypot.f64 B (-.f64 A C)))))) (fma.f64 B B (*.f64 A (*.f64 C -4)))) | F | inf |
| 280.0ms | (/.f64 (neg.f64 (*.f64 (*.f64 (pow.f64 (*.f64 2 (fma.f64 B B (*.f64 A (*.f64 C -4)))) 1/2) (sqrt.f64 F)) (sqrt.f64 (+.f64 (+.f64 C A) (hypot.f64 B (-.f64 A C)))))) (fma.f64 B B (*.f64 A (*.f64 C -4)))) | F | 0 |
| 209.0ms | (/.f64 (neg.f64 (*.f64 (*.f64 (pow.f64 (*.f64 2 (fma.f64 B B (*.f64 A (*.f64 C -4)))) 1/2) (sqrt.f64 F)) (sqrt.f64 (+.f64 (+.f64 C A) (hypot.f64 B (-.f64 A C)))))) (fma.f64 B B (*.f64 A (*.f64 C -4)))) | C | 0 |
| 1× | batch-egg-rewrite |
| 259× | add-sqr-sqrt_binary64 |
| 251× | pow1_binary64 |
| 249× | *-un-lft-identity_binary64 |
| 241× | add-log-exp_binary64 |
| 241× | log1p-expm1-u_binary64 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 23 | 82 |
| 1 | 516 | 82 |
| 1× | node limit |
| 1× | egg-herbie |
| 565× | *-commutative_binary64 |
| 332× | +-commutative_binary64 |
| 297× | fma-def_binary64 |
| 279× | associate-+r+_binary64 |
| 246× | associate-*r*_binary64 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 1312 | 20056 |
| 1× | node limit |
28 alts after pruning (28 fresh and 0 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 221 | 7 | 228 |
| Fresh | 3 | 21 | 24 |
| Picked | 1 | 0 | 1 |
| Done | 0 | 0 | 0 |
| Total | 225 | 28 | 253 |
| Status | Error | Program |
| 57.9b | (/.f64 (neg.f64 (sqrt.f64 (*.f64 2 (-.f64 (fma.f64 2 (/.f64 (*.f64 A A) (/.f64 C (*.f64 F (*.f64 B B)))) (*.f64 4 (*.f64 (*.f64 A F) (*.f64 B B)))) (fma.f64 8 (*.f64 (*.f64 A A) (*.f64 C F)) (*.f64 1/2 (/.f64 F (/.f64 C (pow.f64 B 4))))))))) (fma.f64 B B (*.f64 A (*.f64 C -4)))) | |
| 53.4b | (*.f64 (neg.f64 (sqrt.f64 (*.f64 F (+.f64 A (hypot.f64 A B))))) (/.f64 (sqrt.f64 2) B)) | |
| 57.3b | (/.f64 (neg.f64 (*.f64 (*.f64 (pow.f64 (*.f64 2 (fma.f64 B B (*.f64 A (*.f64 C -4)))) 1/2) (sqrt.f64 F)) (sqrt.f64 (-.f64 (*.f64 2 C) (*.f64 1/2 (/.f64 (pow.f64 B 2) A)))))) (fma.f64 B B (*.f64 A (*.f64 C -4)))) | |
| 55.8b | (/.f64 (neg.f64 (fma.f64 A (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 -8 (*.f64 C F)))) (/.f64 F (/.f64 (sqrt.f64 (*.f64 -8 (*.f64 C F))) (*.f64 (sqrt.f64 2) (*.f64 B B)))))) (fma.f64 B B (*.f64 A (*.f64 C -4)))) | |
| 60.5b | (neg.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 -1/4 (*.f64 (/.f64 F A) (/.f64 (+.f64 A (+.f64 C (sqrt.f64 (+.f64 (+.f64 (*.f64 A A) (*.f64 C C)) (*.f64 -2 (*.f64 A C)))))) C)))))) | |
| 61.0b | (pow.f64 (pow.f64 (/.f64 (neg.f64 (sqrt.f64 (*.f64 (*.f64 2 (*.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))) F)) (+.f64 C (+.f64 A (hypot.f64 B (-.f64 A C))))))) (fma.f64 B B (*.f64 A (*.f64 C -4)))) 3) 1/3) | |
| 54.9b | (/.f64 (neg.f64 (*.f64 (*.f64 (pow.f64 (*.f64 2 (fma.f64 B B (*.f64 A (*.f64 C -4)))) 1/2) (sqrt.f64 F)) (sqrt.f64 (-.f64 (*.f64 2 A) (*.f64 1/2 (/.f64 (pow.f64 B 2) C)))))) (fma.f64 B B (*.f64 A (*.f64 C -4)))) | |
| 53.9b | (*.f64 (neg.f64 (sqrt.f64 (*.f64 F (+.f64 C (hypot.f64 C B))))) (/.f64 (sqrt.f64 2) B)) | |
| 58.1b | (/.f64 (neg.f64 (*.f64 (*.f64 (pow.f64 (*.f64 2 (fma.f64 B B (*.f64 A (*.f64 C -4)))) 1/2) (sqrt.f64 F)) (sqrt.f64 (*.f64 2 C)))) (fma.f64 B B (*.f64 A (*.f64 C -4)))) | |
| 58.2b | (/.f64 (neg.f64 (*.f64 (*.f64 (neg.f64 (sqrt.f64 F)) (*.f64 (sqrt.f64 2) B)) (sqrt.f64 (+.f64 (+.f64 C A) (hypot.f64 B (-.f64 A C)))))) (fma.f64 B B (*.f64 A (*.f64 C -4)))) | |
| 53.3b | (/.f64 (neg.f64 (*.f64 (sqrt.f64 (*.f64 2 (*.f64 (*.f64 -4 (*.f64 A C)) F))) (sqrt.f64 (+.f64 (+.f64 C A) (hypot.f64 B (-.f64 A C)))))) (fma.f64 B B (*.f64 A (*.f64 C -4)))) | |
| 47.1b | (neg.f64 (/.f64 (*.f64 (sqrt.f64 (*.f64 2 (fma.f64 B B (*.f64 A (*.f64 C -4))))) (*.f64 (sqrt.f64 F) (sqrt.f64 (+.f64 C (+.f64 A (hypot.f64 B (-.f64 A C))))))) (fma.f64 B B (*.f64 A (*.f64 C -4))))) | |
| 59.3b | (/.f64 (neg.f64 (sqrt.f64 (*.f64 2 (+.f64 (*.f64 4 (*.f64 (*.f64 C F) (*.f64 B B))) (*.f64 (*.f64 -8 A) (*.f64 (*.f64 C C) F)))))) (fma.f64 B B (*.f64 A (*.f64 C -4)))) | |
| 59.7b | (exp.f64 (log.f64 (/.f64 (neg.f64 (sqrt.f64 (*.f64 (*.f64 2 (*.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))) F)) (+.f64 C (+.f64 A (hypot.f64 B (-.f64 A C))))))) (fma.f64 B B (*.f64 A (*.f64 C -4)))))) | |
| 48.7b | (/.f64 (neg.f64 (sqrt.f64 (*.f64 2 (*.f64 (pow.f64 (cbrt.f64 (*.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))) F)) 3) (+.f64 C (+.f64 A (hypot.f64 B (-.f64 A C)))))))) (fma.f64 B B (*.f64 A (*.f64 C -4)))) | |
| 47.1b | (pow.f64 (/.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))) (*.f64 (*.f64 (sqrt.f64 (*.f64 2 (fma.f64 B B (*.f64 A (*.f64 C -4))))) (sqrt.f64 F)) (neg.f64 (sqrt.f64 (+.f64 C (+.f64 A (hypot.f64 B (-.f64 A C)))))))) -1) | |
| 56.6b | (neg.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 -1/2 (/.f64 F A))))) | |
| 47.3b | (pow.f64 (cbrt.f64 (/.f64 (*.f64 (*.f64 (sqrt.f64 (*.f64 2 (fma.f64 B B (*.f64 A (*.f64 C -4))))) (sqrt.f64 F)) (neg.f64 (sqrt.f64 (+.f64 C (+.f64 A (hypot.f64 B (-.f64 A C))))))) (fma.f64 B B (*.f64 A (*.f64 C -4))))) 3) | |
| 54.7b | (/.f64 (neg.f64 (*.f64 (sqrt.f64 (*.f64 2 (*.f64 (pow.f64 B 2) F))) (sqrt.f64 (+.f64 (+.f64 C A) (hypot.f64 B (-.f64 A C)))))) (fma.f64 B B (*.f64 A (*.f64 C -4)))) | |
| 48.7b | (neg.f64 (/.f64 (sqrt.f64 (*.f64 2 (*.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))) (*.f64 F (+.f64 (+.f64 C A) (hypot.f64 B (-.f64 A C))))))) (fma.f64 B B (*.f64 A (*.f64 C -4))))) | |
| 58.0b | (neg.f64 (*.f64 (sqrt.f64 (*.f64 F (+.f64 A (sqrt.f64 (+.f64 (*.f64 A A) (*.f64 B B)))))) (/.f64 (sqrt.f64 2) B))) | |
| 63.4b | (pow.f64 (/.f64 (pow.f64 (*.f64 2 (*.f64 (fma.f64 B B (*.f64 A (*.f64 C -4))) (*.f64 F (+.f64 (+.f64 C A) (hypot.f64 B (-.f64 A C)))))) 1/4) (hypot.f64 B (sqrt.f64 (*.f64 A (*.f64 C -4))))) 2) | |
| 53.9b | (/.f64 (neg.f64 (*.f64 (sqrt.f64 (*.f64 2 (*.f64 -4 (*.f64 A (*.f64 C F))))) (sqrt.f64 (+.f64 (+.f64 C A) (hypot.f64 B (-.f64 A C)))))) (*.f64 (pow.f64 (cbrt.f64 (fma.f64 B B (*.f64 A (*.f64 C -4)))) 2) (cbrt.f64 (fma.f64 B B (*.f64 A (*.f64 C -4)))))) | |
| 60.4b | (*.f64 -1 (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 -1/4 (/.f64 (*.f64 F (+.f64 A (+.f64 C (sqrt.f64 (-.f64 (+.f64 (pow.f64 A 2) (pow.f64 C 2)) (*.f64 2 (*.f64 A C))))))) (*.f64 A C)))))) | |
| 52.5b | (/.f64 (neg.f64 (*.f64 (*.f64 (pow.f64 (*.f64 2 (fma.f64 B B (*.f64 A (*.f64 C -4)))) 1/2) (sqrt.f64 F)) (sqrt.f64 (+.f64 C (sqrt.f64 (+.f64 (pow.f64 C 2) (pow.f64 B 2))))))) (fma.f64 B B (*.f64 A (*.f64 C -4)))) | |
| 60.0b | (/.f64 (neg.f64 (sqrt.f64 (*.f64 2 (-.f64 (+.f64 (*.f64 C (*.f64 F (pow.f64 B 2))) (+.f64 (*.f64 A (*.f64 F (pow.f64 B 2))) (+.f64 (*.f64 F (pow.f64 B 3)) (+.f64 (*.f64 1/2 (*.f64 (pow.f64 A 2) (*.f64 F B))) (*.f64 1/2 (*.f64 (pow.f64 C 2) (*.f64 F B))))))) (*.f64 5 (*.f64 A (*.f64 C (*.f64 F B)))))))) (fma.f64 B B (*.f64 A (*.f64 C -4)))) | |
| 54.3b | (neg.f64 (*.f64 (sqrt.f64 (*.f64 -1/2 (/.f64 F C))) (sqrt.f64 2))) | |
| 56.5b | (/.f64 (neg.f64 (fma.f64 (sqrt.f64 (*.f64 (*.f64 -8 A) F)) (*.f64 C (sqrt.f64 2)) (/.f64 (*.f64 (*.f64 F (sqrt.f64 2)) (*.f64 B B)) (sqrt.f64 (*.f64 (*.f64 -8 A) F))))) (fma.f64 B B (*.f64 A (*.f64 C -4)))) |
Compiled 33547 to 19224 computations (42.7% saved)
Total 15.9b remaining (44.7%)
Threshold costs 0b (0%)
Compiled 30178 to 20016 computations (33.7% saved)
| 3× | left-value |
3 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))) |
| Iters | Point | Range | ||||
|---|---|---|---|---|---|---|
#hash((type . real) (value . +inf)) | ∈ [ | #hash((type . real) (value . +inf)) | , | #hash((type . real) (value . NaN)) | ] | |
-0.0 | ∈ [ | -0.0 | , | 2.3275153388053987e-173 | ] | |
-4.325573197083108e-208 | ∈ [ | -4.325573197083108e-208 | , | -0.0 | ] | |
Compiled 44 to 32 computations (27.3% saved)
| 1× | egg-herbie |
| 54× | *-commutative_binary64 |
| 39× | +-commutative_binary64 |
| 32× | sub-neg_binary64 |
| 30× | neg-sub0_binary64 |
| 30× | neg-mul-1_binary64 |
Useful iterations: 3 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 80 | 380 |
| 1 | 153 | 380 |
| 2 | 231 | 380 |
| 3 | 293 | 378 |
| 4 | 330 | 378 |
| 5 | 345 | 378 |
| 6 | 349 | 378 |
| 1× | saturated |
| 1× | fuel |
Compiled 1530 to 1021 computations (33.3% saved)
Loading profile data...