Time bar (total: 15.1s)
| 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 |
| 6.2% | 93.6% | 0.2% | 5 |
| 6.2% | 68.6% | 25.1% | 6 |
| 6.2% | 49.9% | 43.9% | 7 |
| 6.2% | 35.9% | 57.9% | 8 |
| 6.2% | 25.3% | 68.4% | 9 |
| 6.2% | 20.1% | 73.7% | 10 |
| 6.2% | 15.7% | 78.1% | 11 |
| 6.2% | 12% | 81.7% | 12 |
| 6.2% | 9% | 84.8% | 13 |
| 6.2% | 7.5% | 86.3% | 14 |
Compiled 36 to 28 computations (22.2% saved)
(sort x y z t)
| 2.7s | 4564× | body | 512 | valid |
| 2.2s | 9880× | body | 128 | invalid |
| 1.4s | 1792× | body | 1024 | valid |
| 413.0ms | 1044× | body | 256 | valid |
| 175.0ms | 856× | body | 128 | valid |
Compiled 107 to 83 computations (22.4% saved)
| 1× | egg-herbie |
| 798× | rules-42_binary64 |
| 798× | rules-43_binary64 |
| 492× | rules-40_binary64 |
| 492× | rules-41_binary64 |
| 284× | rules-21_binary64 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 25 | 50 |
| 1 | 145 | 50 |
| 2 | 442 | 50 |
| 3 | 1954 | 50 |
| 4 | 4566 | 50 |
| 5 | 4855 | 50 |
2 alts after pruning (2 fresh and 0 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 1 | 1 | 2 |
| Fresh | 0 | 1 | 1 |
| Picked | 0 | 0 | 0 |
| Done | 0 | 0 | 0 |
| Total | 1 | 2 | 3 |
| Status | Error | Program |
| ▶ | 5.8b | (+.f64 (+.f64 (+.f64 (-.f64 (sqrt.f64 (+.f64 x 1)) (sqrt.f64 x)) (-.f64 (sqrt.f64 (+.f64 y 1)) (sqrt.f64 y))) (-.f64 (sqrt.f64 (+.f64 z 1)) (sqrt.f64 z))) (-.f64 (sqrt.f64 (+.f64 t 1)) (sqrt.f64 t))) |
Compiled 136 to 100 computations (26.5% saved)
Found 4 expressions with local error:
| New | Error | Program |
| ✓ | 0.6b | (-.f64 (sqrt.f64 (+.f64 x 1)) (sqrt.f64 x)) |
| ✓ | 2.3b | (-.f64 (sqrt.f64 (+.f64 t 1)) (sqrt.f64 t)) |
| ✓ | 3.7b | (-.f64 (sqrt.f64 (+.f64 y 1)) (sqrt.f64 y)) |
| ✓ | 6.1b | (-.f64 (sqrt.f64 (+.f64 z 1)) (sqrt.f64 z)) |
4 calls:
| 30.0ms | (-.f64 (sqrt.f64 (+.f64 x 1)) (sqrt.f64 x)) |
| 22.0ms | (-.f64 (sqrt.f64 (+.f64 z 1)) (sqrt.f64 z)) |
| 15.0ms | (-.f64 (sqrt.f64 (+.f64 y 1)) (sqrt.f64 y)) |
| 14.0ms | (-.f64 (sqrt.f64 (+.f64 t 1)) (sqrt.f64 t)) |
| 2× | batch-egg-rewrite |
| 244× | prod-diff_binary64 |
| 236× | egg-rr |
| 220× | log1p-expm1-u_binary64 |
| 220× | expm1-log1p-u_binary64 |
| 217× | add-sqr-sqrt_binary64 |
4 calls:
| 98.0ms | (-.f64 (sqrt.f64 (+.f64 x 1)) (sqrt.f64 x)) |
| 98.0ms | (-.f64 (sqrt.f64 (+.f64 t 1)) (sqrt.f64 t)) |
| 98.0ms | (-.f64 (sqrt.f64 (+.f64 y 1)) (sqrt.f64 y)) |
| 98.0ms | (-.f64 (sqrt.f64 (+.f64 z 1)) (sqrt.f64 z)) |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 22 | 44 |
| 1 | 531 | 44 |
| 2 | 4835 | 44 |
| 3 | 5195 | 44 |
| 0 | 0 | 0 |
| 1 | 0 | 0 |
| 1× | egg-herbie |
| 25× | fma-neg_binary64 |
| 21× | rules-13_binary64 |
| 18× | rules-40_binary64 |
| 18× | rules-41_binary64 |
| 18× | rules-42_binary64 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 1 | 4 |
| 1 | 8 | 4 |
| 2 | 16 | 4 |
| 3 | 22 | 4 |
| 4 | 35 | 4 |
| 5 | 58 | 4 |
| 6 | 76 | 4 |
| 7 | 88 | 4 |
| 8 | 97 | 4 |
| 9 | 101 | 4 |
| 10 | 114 | 4 |
| 11 | 5 | 4 |
13 alts after pruning (13 fresh and 0 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 224 | 13 | 237 |
| Fresh | 0 | 0 | 0 |
| Picked | 1 | 0 | 1 |
| Done | 0 | 0 | 0 |
| Total | 225 | 13 | 238 |
| Status | Error | Program |
| 5.9b | (+.f64 (+.f64 (+.f64 (+.f64 (fma.f64 (sqrt.f64 (+.f64 1 x)) 1 (neg.f64 (*.f64 (sqrt.f64 (cbrt.f64 x)) (sqrt.f64 (cbrt.f64 (*.f64 x x)))))) (fma.f64 (neg.f64 (sqrt.f64 (cbrt.f64 x))) (sqrt.f64 (cbrt.f64 (*.f64 x x))) (*.f64 (sqrt.f64 (cbrt.f64 x)) (sqrt.f64 (cbrt.f64 (*.f64 x x)))))) (-.f64 (sqrt.f64 (+.f64 y 1)) (sqrt.f64 y))) (-.f64 (sqrt.f64 (+.f64 z 1)) (sqrt.f64 z))) (-.f64 (sqrt.f64 (+.f64 t 1)) (sqrt.f64 t))) | |
| 42.4b | (+.f64 (+.f64 (+.f64 (-.f64 (sqrt.f64 (+.f64 x 1)) (sqrt.f64 x)) (-.f64 (sqrt.f64 (+.f64 y 1)) (sqrt.f64 y))) (+.f64 (-.f64 (sqrt.f64 (+.f64 z 1)) (sqrt.f64 z)) (fma.f64 (neg.f64 (pow.f64 z 1/4)) (pow.f64 z 1/4) (sqrt.f64 z)))) (-.f64 (sqrt.f64 (+.f64 t 1)) (sqrt.f64 t))) | |
| 16.8b | (+.f64 (+.f64 (+.f64 (-.f64 (sqrt.f64 (+.f64 x 1)) (sqrt.f64 x)) (+.f64 (fma.f64 (cbrt.f64 (+.f64 1 y)) (cbrt.f64 (sqrt.f64 (+.f64 1 y))) (neg.f64 (*.f64 (sqrt.f64 (cbrt.f64 y)) (sqrt.f64 (cbrt.f64 (*.f64 y y)))))) (fma.f64 (neg.f64 (sqrt.f64 (cbrt.f64 y))) (sqrt.f64 (cbrt.f64 (*.f64 y y))) (*.f64 (sqrt.f64 (cbrt.f64 y)) (sqrt.f64 (cbrt.f64 (*.f64 y y))))))) (-.f64 (sqrt.f64 (+.f64 z 1)) (sqrt.f64 z))) (-.f64 (sqrt.f64 (+.f64 t 1)) (sqrt.f64 t))) | |
| 39.7b | (+.f64 (+.f64 (+.f64 (-.f64 (sqrt.f64 (+.f64 x 1)) (sqrt.f64 x)) (-.f64 (sqrt.f64 (+.f64 y 1)) (sqrt.f64 y))) 1) (-.f64 (sqrt.f64 (+.f64 t 1)) (sqrt.f64 t))) | |
| 5.8b | (+.f64 (+.f64 (+.f64 (/.f64 (-.f64 (pow.f64 (+.f64 1 x) 3/2) (pow.f64 x 3/2)) (+.f64 (+.f64 1 x) (+.f64 x (sqrt.f64 (*.f64 (+.f64 1 x) x))))) (-.f64 (sqrt.f64 (+.f64 y 1)) (sqrt.f64 y))) (-.f64 (sqrt.f64 (+.f64 z 1)) (sqrt.f64 z))) (-.f64 (sqrt.f64 (+.f64 t 1)) (sqrt.f64 t))) | |
| 18.7b | (+.f64 (+.f64 (+.f64 (-.f64 (sqrt.f64 (+.f64 x 1)) (sqrt.f64 x)) (fma.f64 (cbrt.f64 (+.f64 1 y)) (cbrt.f64 (sqrt.f64 (+.f64 1 y))) (neg.f64 (sqrt.f64 y)))) (-.f64 (sqrt.f64 (+.f64 z 1)) (sqrt.f64 z))) (-.f64 (sqrt.f64 (+.f64 t 1)) (sqrt.f64 t))) | |
| 5.8b | (+.f64 (+.f64 (+.f64 (+.f64 (fma.f64 (cbrt.f64 (+.f64 1 x)) (cbrt.f64 (sqrt.f64 (+.f64 1 x))) (neg.f64 (*.f64 (cbrt.f64 (sqrt.f64 x)) (cbrt.f64 x)))) (fma.f64 (neg.f64 (cbrt.f64 (sqrt.f64 x))) (cbrt.f64 x) (*.f64 (cbrt.f64 (sqrt.f64 x)) (cbrt.f64 x)))) (-.f64 (sqrt.f64 (+.f64 y 1)) (sqrt.f64 y))) (-.f64 (sqrt.f64 (+.f64 z 1)) (sqrt.f64 z))) (-.f64 (sqrt.f64 (+.f64 t 1)) (sqrt.f64 t))) | |
| 41.9b | (+.f64 (+.f64 (+.f64 (-.f64 (sqrt.f64 (+.f64 x 1)) (sqrt.f64 x)) (-.f64 (sqrt.f64 (+.f64 y 1)) (sqrt.f64 y))) (fma.f64 (cbrt.f64 (+.f64 z 1)) (cbrt.f64 (sqrt.f64 (+.f64 z 1))) (neg.f64 (sqrt.f64 z)))) (-.f64 (sqrt.f64 (+.f64 t 1)) (sqrt.f64 t))) | |
| 5.8b | (+.f64 (+.f64 (+.f64 (*.f64 (pow.f64 (cbrt.f64 (-.f64 (sqrt.f64 (+.f64 1 x)) (sqrt.f64 x))) 2) (cbrt.f64 (-.f64 (sqrt.f64 (+.f64 1 x)) (sqrt.f64 x)))) (-.f64 (sqrt.f64 (+.f64 y 1)) (sqrt.f64 y))) (-.f64 (sqrt.f64 (+.f64 z 1)) (sqrt.f64 z))) (-.f64 (sqrt.f64 (+.f64 t 1)) (sqrt.f64 t))) | |
| 18.9b | (+.f64 (+.f64 (+.f64 (-.f64 (sqrt.f64 (+.f64 x 1)) (sqrt.f64 x)) (+.f64 (-.f64 (sqrt.f64 (+.f64 1 y)) (sqrt.f64 y)) (fma.f64 (neg.f64 (pow.f64 y 1/4)) (pow.f64 y 1/4) (sqrt.f64 y)))) (-.f64 (sqrt.f64 (+.f64 z 1)) (sqrt.f64 z))) (-.f64 (sqrt.f64 (+.f64 t 1)) (sqrt.f64 t))) | |
| ▶ | 5.7b | (+.f64 (+.f64 (+.f64 (+.f64 (fma.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (+.f64 1 x)) 2)) (sqrt.f64 (cbrt.f64 (+.f64 1 x))) (neg.f64 (sqrt.f64 x))) (fma.f64 (neg.f64 (pow.f64 x 1/4)) (pow.f64 x 1/4) (sqrt.f64 x))) (-.f64 (sqrt.f64 (+.f64 y 1)) (sqrt.f64 y))) (-.f64 (sqrt.f64 (+.f64 z 1)) (sqrt.f64 z))) (-.f64 (sqrt.f64 (+.f64 t 1)) (sqrt.f64 t))) |
| 13.9b | (+.f64 (+.f64 (+.f64 (-.f64 (sqrt.f64 (+.f64 x 1)) (sqrt.f64 x)) (-.f64 (sqrt.f64 (+.f64 y 1)) (sqrt.f64 y))) (/.f64 (-.f64 (pow.f64 (+.f64 z 1) 3/2) (pow.f64 z 3/2)) (+.f64 (+.f64 z 1) (+.f64 z (sqrt.f64 (*.f64 (+.f64 z 1) z)))))) (-.f64 (sqrt.f64 (+.f64 t 1)) (sqrt.f64 t))) | |
| 6.3b | (+.f64 (+.f64 (+.f64 (-.f64 (sqrt.f64 (+.f64 x 1)) (sqrt.f64 x)) (/.f64 (-.f64 (pow.f64 (+.f64 1 y) 3/2) (pow.f64 y 3/2)) (+.f64 (+.f64 1 y) (+.f64 y (sqrt.f64 (*.f64 (+.f64 1 y) y)))))) (-.f64 (sqrt.f64 (+.f64 z 1)) (sqrt.f64 z))) (-.f64 (sqrt.f64 (+.f64 t 1)) (sqrt.f64 t))) |
Compiled 12837 to 7768 computations (39.5% saved)
Found 4 expressions with local error:
| New | Error | Program |
| 3.7b | (-.f64 (sqrt.f64 (+.f64 y 1)) (sqrt.f64 y)) | |
| ✓ | 3.9b | (fma.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (+.f64 1 x)) 2)) (sqrt.f64 (cbrt.f64 (+.f64 1 x))) (neg.f64 (sqrt.f64 x))) |
| 6.1b | (-.f64 (sqrt.f64 (+.f64 z 1)) (sqrt.f64 z)) | |
| ✓ | 60.7b | (fma.f64 (neg.f64 (pow.f64 x 1/4)) (pow.f64 x 1/4) (sqrt.f64 x)) |
2 calls:
| 13.0ms | (fma.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (+.f64 1 x)) 2)) (sqrt.f64 (cbrt.f64 (+.f64 1 x))) (neg.f64 (sqrt.f64 x))) |
| 8.0ms | (fma.f64 (neg.f64 (pow.f64 x 1/4)) (pow.f64 x 1/4) (sqrt.f64 x)) |
| 2× | batch-egg-rewrite |
| 342× | fma-udef_binary64 |
| 329× | prod-diff_binary64 |
| 223× | expm1-udef_binary64 |
| 223× | log1p-udef_binary64 |
| 132× | add-sqr-sqrt_binary64 |
2 calls:
| 136.0ms | (fma.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (+.f64 1 x)) 2)) (sqrt.f64 (cbrt.f64 (+.f64 1 x))) (neg.f64 (sqrt.f64 x))) |
| 136.0ms | (fma.f64 (neg.f64 (pow.f64 x 1/4)) (pow.f64 x 1/4) (sqrt.f64 x)) |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 16 | 36 |
| 1 | 344 | 28 |
| 2 | 3590 | 28 |
| 3 | 5000 | 28 |
| 4 | 4828 | 28 |
| 5 | 4817 | 28 |
| 0 | 0 | 0 |
| 1 | 0 | 0 |
| 1× | egg-herbie |
| 62× | fma-neg_binary64 |
| 49× | rules-11_binary64 |
| 44× | rules-40_binary64 |
| 44× | rules-41_binary64 |
| 44× | rules-42_binary64 |
Useful iterations: 6 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 6 | 12 |
| 1 | 33 | 12 |
| 2 | 64 | 12 |
| 3 | 121 | 12 |
| 4 | 151 | 12 |
| 5 | 172 | 12 |
| 6 | 202 | 10 |
| 7 | 202 | 10 |
| 8 | 202 | 10 |
| 9 | 210 | 10 |
| 10 | 7 | 10 |
13 alts after pruning (13 fresh and 0 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 199 | 3 | 202 |
| Fresh | 2 | 10 | 12 |
| Picked | 1 | 0 | 1 |
| Done | 0 | 0 | 0 |
| Total | 202 | 13 | 215 |
| Status | Error | Program |
| ▶ | 5.8b | (+.f64 (+.f64 (+.f64 (+.f64 (fma.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (+.f64 1 x)) 2)) (sqrt.f64 (cbrt.f64 (+.f64 1 x))) (neg.f64 (sqrt.f64 x))) (-.f64 (exp.f64 (log1p.f64 (fma.f64 (neg.f64 (pow.f64 x 1/4)) (pow.f64 x 1/4) (sqrt.f64 x)))) 1)) (-.f64 (sqrt.f64 (+.f64 y 1)) (sqrt.f64 y))) (-.f64 (sqrt.f64 (+.f64 z 1)) (sqrt.f64 z))) (-.f64 (sqrt.f64 (+.f64 t 1)) (sqrt.f64 t))) |
| 13.9b | (+.f64 (+.f64 (+.f64 (-.f64 (sqrt.f64 (+.f64 x 1)) (sqrt.f64 x)) (-.f64 (sqrt.f64 (+.f64 y 1)) (sqrt.f64 y))) (/.f64 (-.f64 (pow.f64 (+.f64 z 1) 3/2) (pow.f64 z 3/2)) (+.f64 (+.f64 z 1) (+.f64 z (sqrt.f64 (*.f64 (+.f64 z 1) z)))))) (-.f64 (sqrt.f64 (+.f64 t 1)) (sqrt.f64 t))) | |
| 16.8b | (+.f64 (+.f64 (+.f64 (-.f64 (sqrt.f64 (+.f64 x 1)) (sqrt.f64 x)) (+.f64 (fma.f64 (cbrt.f64 (+.f64 1 y)) (cbrt.f64 (sqrt.f64 (+.f64 1 y))) (neg.f64 (*.f64 (sqrt.f64 (cbrt.f64 y)) (sqrt.f64 (cbrt.f64 (*.f64 y y)))))) (fma.f64 (neg.f64 (sqrt.f64 (cbrt.f64 y))) (sqrt.f64 (cbrt.f64 (*.f64 y y))) (*.f64 (sqrt.f64 (cbrt.f64 y)) (sqrt.f64 (cbrt.f64 (*.f64 y y))))))) (-.f64 (sqrt.f64 (+.f64 z 1)) (sqrt.f64 z))) (-.f64 (sqrt.f64 (+.f64 t 1)) (sqrt.f64 t))) | |
| 39.7b | (+.f64 (+.f64 (+.f64 (-.f64 (sqrt.f64 (+.f64 x 1)) (sqrt.f64 x)) (-.f64 (sqrt.f64 (+.f64 y 1)) (sqrt.f64 y))) 1) (-.f64 (sqrt.f64 (+.f64 t 1)) (sqrt.f64 t))) | |
| 5.8b | (+.f64 (+.f64 (+.f64 (/.f64 (-.f64 (pow.f64 (+.f64 1 x) 3/2) (pow.f64 x 3/2)) (+.f64 (+.f64 1 x) (+.f64 x (sqrt.f64 (*.f64 (+.f64 1 x) x))))) (-.f64 (sqrt.f64 (+.f64 y 1)) (sqrt.f64 y))) (-.f64 (sqrt.f64 (+.f64 z 1)) (sqrt.f64 z))) (-.f64 (sqrt.f64 (+.f64 t 1)) (sqrt.f64 t))) | |
| 18.7b | (+.f64 (+.f64 (+.f64 (-.f64 (sqrt.f64 (+.f64 x 1)) (sqrt.f64 x)) (fma.f64 (cbrt.f64 (+.f64 1 y)) (cbrt.f64 (sqrt.f64 (+.f64 1 y))) (neg.f64 (sqrt.f64 y)))) (-.f64 (sqrt.f64 (+.f64 z 1)) (sqrt.f64 z))) (-.f64 (sqrt.f64 (+.f64 t 1)) (sqrt.f64 t))) | |
| 5.8b | (+.f64 (+.f64 (+.f64 (*.f64 (pow.f64 (cbrt.f64 (-.f64 (sqrt.f64 (+.f64 1 x)) (sqrt.f64 x))) 2) (cbrt.f64 (-.f64 (sqrt.f64 (+.f64 1 x)) (sqrt.f64 x)))) (-.f64 (sqrt.f64 (+.f64 y 1)) (sqrt.f64 y))) (-.f64 (sqrt.f64 (+.f64 z 1)) (sqrt.f64 z))) (-.f64 (sqrt.f64 (+.f64 t 1)) (sqrt.f64 t))) | |
| 18.9b | (+.f64 (+.f64 (+.f64 (-.f64 (sqrt.f64 (+.f64 x 1)) (sqrt.f64 x)) (+.f64 (-.f64 (sqrt.f64 (+.f64 1 y)) (sqrt.f64 y)) (fma.f64 (neg.f64 (pow.f64 y 1/4)) (pow.f64 y 1/4) (sqrt.f64 y)))) (-.f64 (sqrt.f64 (+.f64 z 1)) (sqrt.f64 z))) (-.f64 (sqrt.f64 (+.f64 t 1)) (sqrt.f64 t))) | |
| 5.8b | (+.f64 (+.f64 (+.f64 (+.f64 (*.f64 (pow.f64 (cbrt.f64 (neg.f64 (sqrt.f64 x))) 2) (+.f64 (cbrt.f64 (neg.f64 (sqrt.f64 x))) (/.f64 (sqrt.f64 (+.f64 x 1)) (pow.f64 (cbrt.f64 (neg.f64 (sqrt.f64 x))) 2)))) (fma.f64 (neg.f64 (pow.f64 x 1/4)) (pow.f64 x 1/4) (sqrt.f64 x))) (-.f64 (sqrt.f64 (+.f64 y 1)) (sqrt.f64 y))) (-.f64 (sqrt.f64 (+.f64 z 1)) (sqrt.f64 z))) (-.f64 (sqrt.f64 (+.f64 t 1)) (sqrt.f64 t))) | |
| 6.3b | (+.f64 (+.f64 (+.f64 (-.f64 (sqrt.f64 (+.f64 x 1)) (sqrt.f64 x)) (/.f64 (-.f64 (pow.f64 (+.f64 1 y) 3/2) (pow.f64 y 3/2)) (+.f64 (+.f64 1 y) (+.f64 y (sqrt.f64 (*.f64 (+.f64 1 y) y)))))) (-.f64 (sqrt.f64 (+.f64 z 1)) (sqrt.f64 z))) (-.f64 (sqrt.f64 (+.f64 t 1)) (sqrt.f64 t))) | |
| 5.8b | (+.f64 (+.f64 (+.f64 (+.f64 (*.f64 (neg.f64 (sqrt.f64 x)) (+.f64 1 (/.f64 (sqrt.f64 (+.f64 x 1)) (neg.f64 (sqrt.f64 x))))) (fma.f64 (neg.f64 (pow.f64 x 1/4)) (pow.f64 x 1/4) (sqrt.f64 x))) (-.f64 (sqrt.f64 (+.f64 y 1)) (sqrt.f64 y))) (-.f64 (sqrt.f64 (+.f64 z 1)) (sqrt.f64 z))) (-.f64 (sqrt.f64 (+.f64 t 1)) (sqrt.f64 t))) | |
| 42.4b | (+.f64 (+.f64 (+.f64 (-.f64 (sqrt.f64 (+.f64 x 1)) (sqrt.f64 x)) (-.f64 (sqrt.f64 (+.f64 y 1)) (sqrt.f64 y))) (+.f64 (-.f64 (sqrt.f64 (+.f64 z 1)) (sqrt.f64 z)) (fma.f64 (neg.f64 (pow.f64 z 1/4)) (pow.f64 z 1/4) (sqrt.f64 z)))) (-.f64 (sqrt.f64 (+.f64 t 1)) (sqrt.f64 t))) | |
| 41.9b | (+.f64 (+.f64 (+.f64 (-.f64 (sqrt.f64 (+.f64 x 1)) (sqrt.f64 x)) (-.f64 (sqrt.f64 (+.f64 y 1)) (sqrt.f64 y))) (fma.f64 (cbrt.f64 (+.f64 z 1)) (cbrt.f64 (sqrt.f64 (+.f64 z 1))) (neg.f64 (sqrt.f64 z)))) (-.f64 (sqrt.f64 (+.f64 t 1)) (sqrt.f64 t))) |
Compiled 13838 to 8877 computations (35.9% saved)
Found 4 expressions with local error:
| New | Error | Program |
| 3.7b | (-.f64 (sqrt.f64 (+.f64 y 1)) (sqrt.f64 y)) | |
| 3.9b | (fma.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (+.f64 1 x)) 2)) (sqrt.f64 (cbrt.f64 (+.f64 1 x))) (neg.f64 (sqrt.f64 x))) | |
| 6.1b | (-.f64 (sqrt.f64 (+.f64 z 1)) (sqrt.f64 z)) | |
| 60.7b | (fma.f64 (neg.f64 (pow.f64 x 1/4)) (pow.f64 x 1/4) (sqrt.f64 x)) |
13 alts after pruning (12 fresh and 1 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 200 | 2 | 202 |
| Fresh | 2 | 10 | 12 |
| Picked | 0 | 1 | 1 |
| Done | 0 | 0 | 0 |
| Total | 202 | 13 | 215 |
| Status | Error | Program |
| ✓ | 5.8b | (+.f64 (+.f64 (+.f64 (+.f64 (fma.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (+.f64 1 x)) 2)) (sqrt.f64 (cbrt.f64 (+.f64 1 x))) (neg.f64 (sqrt.f64 x))) (-.f64 (exp.f64 (log1p.f64 (fma.f64 (neg.f64 (pow.f64 x 1/4)) (pow.f64 x 1/4) (sqrt.f64 x)))) 1)) (-.f64 (sqrt.f64 (+.f64 y 1)) (sqrt.f64 y))) (-.f64 (sqrt.f64 (+.f64 z 1)) (sqrt.f64 z))) (-.f64 (sqrt.f64 (+.f64 t 1)) (sqrt.f64 t))) |
| 13.9b | (+.f64 (+.f64 (+.f64 (-.f64 (sqrt.f64 (+.f64 x 1)) (sqrt.f64 x)) (-.f64 (sqrt.f64 (+.f64 y 1)) (sqrt.f64 y))) (/.f64 (-.f64 (pow.f64 (+.f64 z 1) 3/2) (pow.f64 z 3/2)) (+.f64 (+.f64 z 1) (+.f64 z (sqrt.f64 (*.f64 (+.f64 z 1) z)))))) (-.f64 (sqrt.f64 (+.f64 t 1)) (sqrt.f64 t))) | |
| 16.8b | (+.f64 (+.f64 (+.f64 (-.f64 (sqrt.f64 (+.f64 x 1)) (sqrt.f64 x)) (+.f64 (fma.f64 (cbrt.f64 (+.f64 1 y)) (cbrt.f64 (sqrt.f64 (+.f64 1 y))) (neg.f64 (*.f64 (sqrt.f64 (cbrt.f64 y)) (sqrt.f64 (cbrt.f64 (*.f64 y y)))))) (fma.f64 (neg.f64 (sqrt.f64 (cbrt.f64 y))) (sqrt.f64 (cbrt.f64 (*.f64 y y))) (*.f64 (sqrt.f64 (cbrt.f64 y)) (sqrt.f64 (cbrt.f64 (*.f64 y y))))))) (-.f64 (sqrt.f64 (+.f64 z 1)) (sqrt.f64 z))) (-.f64 (sqrt.f64 (+.f64 t 1)) (sqrt.f64 t))) | |
| 39.7b | (+.f64 (+.f64 (+.f64 (-.f64 (sqrt.f64 (+.f64 x 1)) (sqrt.f64 x)) (-.f64 (sqrt.f64 (+.f64 y 1)) (sqrt.f64 y))) 1) (-.f64 (sqrt.f64 (+.f64 t 1)) (sqrt.f64 t))) | |
| ▶ | 5.8b | (+.f64 (+.f64 (+.f64 (/.f64 (-.f64 (pow.f64 (+.f64 1 x) 3/2) (pow.f64 x 3/2)) (+.f64 (+.f64 1 x) (+.f64 x (sqrt.f64 (*.f64 (+.f64 1 x) x))))) (-.f64 (sqrt.f64 (+.f64 y 1)) (sqrt.f64 y))) (-.f64 (sqrt.f64 (+.f64 z 1)) (sqrt.f64 z))) (-.f64 (sqrt.f64 (+.f64 t 1)) (sqrt.f64 t))) |
| 18.7b | (+.f64 (+.f64 (+.f64 (-.f64 (sqrt.f64 (+.f64 x 1)) (sqrt.f64 x)) (fma.f64 (cbrt.f64 (+.f64 1 y)) (cbrt.f64 (sqrt.f64 (+.f64 1 y))) (neg.f64 (sqrt.f64 y)))) (-.f64 (sqrt.f64 (+.f64 z 1)) (sqrt.f64 z))) (-.f64 (sqrt.f64 (+.f64 t 1)) (sqrt.f64 t))) | |
| 5.8b | (+.f64 (+.f64 (+.f64 (*.f64 (pow.f64 (cbrt.f64 (-.f64 (sqrt.f64 (+.f64 1 x)) (sqrt.f64 x))) 2) (cbrt.f64 (-.f64 (sqrt.f64 (+.f64 1 x)) (sqrt.f64 x)))) (-.f64 (sqrt.f64 (+.f64 y 1)) (sqrt.f64 y))) (-.f64 (sqrt.f64 (+.f64 z 1)) (sqrt.f64 z))) (-.f64 (sqrt.f64 (+.f64 t 1)) (sqrt.f64 t))) | |
| 5.8b | (+.f64 (+.f64 (+.f64 (+.f64 (*.f64 (neg.f64 (sqrt.f64 x)) (+.f64 1 (/.f64 (sqrt.f64 (+.f64 x 1)) (neg.f64 (sqrt.f64 x))))) (-.f64 (exp.f64 (log1p.f64 (fma.f64 (neg.f64 (pow.f64 x 1/4)) (pow.f64 x 1/4) (sqrt.f64 x)))) 1)) (-.f64 (sqrt.f64 (+.f64 y 1)) (sqrt.f64 y))) (-.f64 (sqrt.f64 (+.f64 z 1)) (sqrt.f64 z))) (-.f64 (sqrt.f64 (+.f64 t 1)) (sqrt.f64 t))) | |
| 18.9b | (+.f64 (+.f64 (+.f64 (-.f64 (sqrt.f64 (+.f64 x 1)) (sqrt.f64 x)) (+.f64 (-.f64 (sqrt.f64 (+.f64 1 y)) (sqrt.f64 y)) (fma.f64 (neg.f64 (pow.f64 y 1/4)) (pow.f64 y 1/4) (sqrt.f64 y)))) (-.f64 (sqrt.f64 (+.f64 z 1)) (sqrt.f64 z))) (-.f64 (sqrt.f64 (+.f64 t 1)) (sqrt.f64 t))) | |
| 6.3b | (+.f64 (+.f64 (+.f64 (-.f64 (sqrt.f64 (+.f64 x 1)) (sqrt.f64 x)) (/.f64 (-.f64 (pow.f64 (+.f64 1 y) 3/2) (pow.f64 y 3/2)) (+.f64 (+.f64 1 y) (+.f64 y (sqrt.f64 (*.f64 (+.f64 1 y) y)))))) (-.f64 (sqrt.f64 (+.f64 z 1)) (sqrt.f64 z))) (-.f64 (sqrt.f64 (+.f64 t 1)) (sqrt.f64 t))) | |
| 42.4b | (+.f64 (+.f64 (+.f64 (-.f64 (sqrt.f64 (+.f64 x 1)) (sqrt.f64 x)) (-.f64 (sqrt.f64 (+.f64 y 1)) (sqrt.f64 y))) (+.f64 (-.f64 (sqrt.f64 (+.f64 z 1)) (sqrt.f64 z)) (fma.f64 (neg.f64 (pow.f64 z 1/4)) (pow.f64 z 1/4) (sqrt.f64 z)))) (-.f64 (sqrt.f64 (+.f64 t 1)) (sqrt.f64 t))) | |
| 41.9b | (+.f64 (+.f64 (+.f64 (-.f64 (sqrt.f64 (+.f64 x 1)) (sqrt.f64 x)) (-.f64 (sqrt.f64 (+.f64 y 1)) (sqrt.f64 y))) (fma.f64 (cbrt.f64 (+.f64 z 1)) (cbrt.f64 (sqrt.f64 (+.f64 z 1))) (neg.f64 (sqrt.f64 z)))) (-.f64 (sqrt.f64 (+.f64 t 1)) (sqrt.f64 t))) | |
| 5.9b | (+.f64 (+.f64 (+.f64 (+.f64 (*.f64 (pow.f64 (cbrt.f64 (neg.f64 (sqrt.f64 x))) 2) (+.f64 (cbrt.f64 (neg.f64 (sqrt.f64 x))) (/.f64 (sqrt.f64 (+.f64 x 1)) (pow.f64 (cbrt.f64 (neg.f64 (sqrt.f64 x))) 2)))) (-.f64 (exp.f64 (log1p.f64 (fma.f64 (neg.f64 (pow.f64 x 1/4)) (pow.f64 x 1/4) (sqrt.f64 x)))) 1)) (-.f64 (sqrt.f64 (+.f64 y 1)) (sqrt.f64 y))) (-.f64 (sqrt.f64 (+.f64 z 1)) (sqrt.f64 z))) (-.f64 (sqrt.f64 (+.f64 t 1)) (sqrt.f64 t))) |
Compiled 14603 to 9655 computations (33.9% saved)
Found 4 expressions with local error:
| New | Error | Program |
| ✓ | 0.6b | (-.f64 (pow.f64 (+.f64 1 x) 3/2) (pow.f64 x 3/2)) |
| 2.3b | (-.f64 (sqrt.f64 (+.f64 t 1)) (sqrt.f64 t)) | |
| 3.7b | (-.f64 (sqrt.f64 (+.f64 y 1)) (sqrt.f64 y)) | |
| 6.1b | (-.f64 (sqrt.f64 (+.f64 z 1)) (sqrt.f64 z)) |
1 calls:
| 9.0ms | (-.f64 (pow.f64 (+.f64 1 x) 3/2) (pow.f64 x 3/2)) |
| 2× | batch-egg-rewrite |
| 767× | log1p-expm1-u_binary64 |
| 767× | expm1-log1p-u_binary64 |
| 465× | prod-diff_binary64 |
| 85× | egg-rr |
| 77× | add-sqr-sqrt_binary64 |
1 calls:
| 57.0ms | (-.f64 (pow.f64 (+.f64 1 x) 3/2) (pow.f64 x 3/2)) |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 8 | 13 |
| 1 | 193 | 13 |
| 2 | 2175 | 13 |
| 3 | 5727 | 13 |
| 0 | 0 | 0 |
| 1 | 0 | 0 |
| 1× | egg-herbie |
| 990× | rules-43_binary64 |
| 571× | fma-def_binary64 |
| 453× | rules-40_binary64 |
| 453× | rules-42_binary64 |
| 451× | rules-41_binary64 |
Useful iterations: 3 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 62 | 402 |
| 1 | 419 | 394 |
| 2 | 1696 | 314 |
| 3 | 4913 | 274 |
| 4 | 4872 | 274 |
12 alts after pruning (12 fresh and 0 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 283 | 2 | 285 |
| Fresh | 1 | 10 | 11 |
| Picked | 1 | 0 | 1 |
| Done | 1 | 0 | 1 |
| Total | 286 | 12 | 298 |
| Status | Error | Program |
| 16.8b | (+.f64 (+.f64 (+.f64 (-.f64 (sqrt.f64 (+.f64 x 1)) (sqrt.f64 x)) (+.f64 (fma.f64 (cbrt.f64 (+.f64 1 y)) (cbrt.f64 (sqrt.f64 (+.f64 1 y))) (neg.f64 (*.f64 (sqrt.f64 (cbrt.f64 y)) (sqrt.f64 (cbrt.f64 (*.f64 y y)))))) (fma.f64 (neg.f64 (sqrt.f64 (cbrt.f64 y))) (sqrt.f64 (cbrt.f64 (*.f64 y y))) (*.f64 (sqrt.f64 (cbrt.f64 y)) (sqrt.f64 (cbrt.f64 (*.f64 y y))))))) (-.f64 (sqrt.f64 (+.f64 z 1)) (sqrt.f64 z))) (-.f64 (sqrt.f64 (+.f64 t 1)) (sqrt.f64 t))) | |
| 39.7b | (+.f64 (+.f64 (+.f64 (-.f64 (sqrt.f64 (+.f64 x 1)) (sqrt.f64 x)) (-.f64 (sqrt.f64 (+.f64 y 1)) (sqrt.f64 y))) 1) (-.f64 (sqrt.f64 (+.f64 t 1)) (sqrt.f64 t))) | |
| 5.8b | (+.f64 (+.f64 (+.f64 (*.f64 (pow.f64 (cbrt.f64 (-.f64 (sqrt.f64 (+.f64 1 x)) (sqrt.f64 x))) 2) (cbrt.f64 (-.f64 (sqrt.f64 (+.f64 1 x)) (sqrt.f64 x)))) (-.f64 (sqrt.f64 (+.f64 y 1)) (sqrt.f64 y))) (-.f64 (sqrt.f64 (+.f64 z 1)) (sqrt.f64 z))) (-.f64 (sqrt.f64 (+.f64 t 1)) (sqrt.f64 t))) | |
| 18.9b | (+.f64 (+.f64 (+.f64 (-.f64 (sqrt.f64 (+.f64 x 1)) (sqrt.f64 x)) (+.f64 (-.f64 (sqrt.f64 (+.f64 1 y)) (sqrt.f64 y)) (fma.f64 (neg.f64 (pow.f64 y 1/4)) (pow.f64 y 1/4) (sqrt.f64 y)))) (-.f64 (sqrt.f64 (+.f64 z 1)) (sqrt.f64 z))) (-.f64 (sqrt.f64 (+.f64 t 1)) (sqrt.f64 t))) | |
| 13.9b | (+.f64 (+.f64 (+.f64 (-.f64 (sqrt.f64 (+.f64 x 1)) (sqrt.f64 x)) (-.f64 (sqrt.f64 (+.f64 y 1)) (sqrt.f64 y))) (/.f64 (-.f64 (pow.f64 (+.f64 z 1) 3/2) (pow.f64 z 3/2)) (+.f64 (+.f64 z 1) (+.f64 z (sqrt.f64 (*.f64 (+.f64 z 1) z)))))) (-.f64 (sqrt.f64 (+.f64 t 1)) (sqrt.f64 t))) | |
| 6.3b | (+.f64 (+.f64 (+.f64 (-.f64 (sqrt.f64 (+.f64 x 1)) (sqrt.f64 x)) (/.f64 (-.f64 (pow.f64 (+.f64 1 y) 3/2) (pow.f64 y 3/2)) (+.f64 (+.f64 1 y) (+.f64 y (sqrt.f64 (*.f64 (+.f64 1 y) y)))))) (-.f64 (sqrt.f64 (+.f64 z 1)) (sqrt.f64 z))) (-.f64 (sqrt.f64 (+.f64 t 1)) (sqrt.f64 t))) | |
| 42.4b | (+.f64 (+.f64 (+.f64 (-.f64 (sqrt.f64 (+.f64 x 1)) (sqrt.f64 x)) (-.f64 (sqrt.f64 (+.f64 y 1)) (sqrt.f64 y))) (+.f64 (-.f64 (sqrt.f64 (+.f64 z 1)) (sqrt.f64 z)) (fma.f64 (neg.f64 (pow.f64 z 1/4)) (pow.f64 z 1/4) (sqrt.f64 z)))) (-.f64 (sqrt.f64 (+.f64 t 1)) (sqrt.f64 t))) | |
| 56.8b | (+.f64 (+.f64 (+.f64 (/.f64 (fma.f64 3/2 (sqrt.f64 x) (*.f64 3/8 (sqrt.f64 (/.f64 1 x)))) (+.f64 (+.f64 1 x) (+.f64 x (sqrt.f64 (*.f64 (+.f64 1 x) x))))) (-.f64 (sqrt.f64 (+.f64 y 1)) (sqrt.f64 y))) (-.f64 (sqrt.f64 (+.f64 z 1)) (sqrt.f64 z))) (-.f64 (sqrt.f64 (+.f64 t 1)) (sqrt.f64 t))) | |
| 56.8b | (+.f64 (+.f64 (+.f64 (/.f64 (+.f64 (*.f64 3/8 (sqrt.f64 (/.f64 1 x))) (*.f64 3/2 (sqrt.f64 x))) (+.f64 (+.f64 1 x) (+.f64 x (sqrt.f64 (*.f64 (+.f64 1 x) x))))) (-.f64 (sqrt.f64 (+.f64 y 1)) (sqrt.f64 y))) (-.f64 (sqrt.f64 (+.f64 z 1)) (sqrt.f64 z))) (-.f64 (sqrt.f64 (+.f64 t 1)) (sqrt.f64 t))) | |
| 18.7b | (+.f64 (+.f64 (+.f64 (-.f64 (sqrt.f64 (+.f64 x 1)) (sqrt.f64 x)) (fma.f64 (cbrt.f64 (+.f64 1 y)) (cbrt.f64 (sqrt.f64 (+.f64 1 y))) (neg.f64 (sqrt.f64 y)))) (-.f64 (sqrt.f64 (+.f64 z 1)) (sqrt.f64 z))) (-.f64 (sqrt.f64 (+.f64 t 1)) (sqrt.f64 t))) | |
| 41.9b | (+.f64 (+.f64 (+.f64 (-.f64 (sqrt.f64 (+.f64 x 1)) (sqrt.f64 x)) (-.f64 (sqrt.f64 (+.f64 y 1)) (sqrt.f64 y))) (fma.f64 (cbrt.f64 (+.f64 z 1)) (cbrt.f64 (sqrt.f64 (+.f64 z 1))) (neg.f64 (sqrt.f64 z)))) (-.f64 (sqrt.f64 (+.f64 t 1)) (sqrt.f64 t))) | |
| 5.9b | (+.f64 (+.f64 (+.f64 (+.f64 (*.f64 (pow.f64 (cbrt.f64 (neg.f64 (sqrt.f64 x))) 2) (+.f64 (cbrt.f64 (neg.f64 (sqrt.f64 x))) (/.f64 (sqrt.f64 (+.f64 x 1)) (pow.f64 (cbrt.f64 (neg.f64 (sqrt.f64 x))) 2)))) (-.f64 (exp.f64 (log1p.f64 (fma.f64 (neg.f64 (pow.f64 x 1/4)) (pow.f64 x 1/4) (sqrt.f64 x)))) 1)) (-.f64 (sqrt.f64 (+.f64 y 1)) (sqrt.f64 y))) (-.f64 (sqrt.f64 (+.f64 z 1)) (sqrt.f64 z))) (-.f64 (sqrt.f64 (+.f64 t 1)) (sqrt.f64 t))) |
Compiled 18437 to 12237 computations (33.6% saved)
Total 0.2b remaining (8.7%)
Threshold costs 0.2b (8.7%)
Compiled 57243 to 42721 computations (25.4% saved)
Compiled 19 to 15 computations (21.1% saved)
| 1× | egg-herbie |
| 1× | 1-exp_binary64 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 52 | 162 |
| 1 | 54 | 162 |
| 2 | 53 | 162 |
Compiled 1007 to 732 computations (27.3% saved)
Loading profile data...