
Time bar (total: 2.4s)
| 1× | search |
| Probability | Valid | Unknown | Precondition | Infinite | Domain | Can't | Iter |
|---|---|---|---|---|---|---|---|
| 0% | 0% | 99.9% | 0.1% | 0% | 0% | 0% | 0 |
| 100% | 99.9% | 0% | 0.1% | 0% | 0% | 0% | 1 |
Compiled 11 to 7 computations (36.4% saved)
| 746.0ms | 6456× | body | 256 | valid |
| 227.0ms | 1800× | body | 256 | infinite |
| 2× | egg-herbie |
| 2040× | fma-def |
| 438× | fma-neg |
| 372× | unsub-neg |
| 252× | distribute-rgt-in |
| 224× | associate-+l- |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 17 | 76 |
| 1 | 33 | 60 |
| 2 | 76 | 60 |
| 3 | 179 | 60 |
| 4 | 320 | 60 |
| 5 | 672 | 60 |
| 6 | 1287 | 60 |
| 7 | 2020 | 60 |
| 8 | 2735 | 60 |
| 9 | 2894 | 60 |
| 10 | 2922 | 60 |
| 11 | 2922 | 60 |
| 0 | 3 | 3 |
| 1× | saturated |
| 1× | saturated |
| Inputs |
|---|
0 |
1 |
2 |
| Outputs |
|---|
0 |
1 |
2 |
| Inputs |
|---|
(+.f64 x (*.f64 (-.f64 y x) z)) |
(+.f64 y (*.f64 (-.f64 x y) z)) |
(+.f64 z (*.f64 (-.f64 y z) x)) |
(+.f64 x (*.f64 (-.f64 z x) y)) |
| Outputs |
|---|
(+.f64 x (*.f64 (-.f64 y x) z)) |
(fma.f64 (-.f64 y x) z x) |
(+.f64 y (*.f64 (-.f64 x y) z)) |
(+.f64 y (*.f64 z (-.f64 x y))) |
(fma.f64 z (-.f64 x y) y) |
(+.f64 z (*.f64 (-.f64 y z) x)) |
(+.f64 z (*.f64 x (-.f64 y z))) |
(fma.f64 x (-.f64 y z) z) |
(+.f64 x (*.f64 (-.f64 z x) y)) |
(+.f64 x (*.f64 y (-.f64 z x))) |
(fma.f64 y (-.f64 z x) x) |
Compiled 13 to 9 computations (30.8% saved)
| 1× | egg-herbie |
| 986× | fma-def |
| 104× | cancel-sign-sub-inv |
| 96× | distribute-rgt-in |
| 86× | unsub-neg |
| 84× | sub-neg |
Useful iterations: 1 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 8 | 19 |
| 1 | 13 | 15 |
| 2 | 27 | 15 |
| 3 | 55 | 15 |
| 4 | 103 | 15 |
| 5 | 174 | 15 |
| 6 | 287 | 15 |
| 7 | 484 | 15 |
| 8 | 878 | 15 |
| 9 | 1117 | 15 |
| 10 | 1217 | 15 |
| 11 | 1224 | 15 |
| 1× | saturated |
| Inputs |
|---|
(+.f64 x (*.f64 (-.f64 y x) z)) |
| Outputs |
|---|
(+.f64 x (*.f64 (-.f64 y x) z)) |
(fma.f64 (-.f64 y x) z x) |
Compiled 16 to 7 computations (56.3% saved)
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 | Accuracy | Program |
|---|---|---|
| ▶ | 100.0% | (+.f64 x (*.f64 (-.f64 y x) z)) |
| ▶ | 100.0% | (+.f64 x (*.f64 (-.f64 y x) z)) |
Compiled 20 to 12 computations (40% saved)
Found 1 expressions with local accuracy:
| New | Accuracy | Program |
|---|---|---|
| ✓ | 100.0% | (*.f64 (-.f64 y x) z) |
Compiled 22 to 7 computations (68.2% saved)
9 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 0.0ms | y | @ | -inf | (*.f64 (-.f64 y x) z) |
| 0.0ms | y | @ | inf | (*.f64 (-.f64 y x) z) |
| 0.0ms | x | @ | -inf | (*.f64 (-.f64 y x) z) |
| 0.0ms | z | @ | 0 | (*.f64 (-.f64 y x) z) |
| 0.0ms | z | @ | inf | (*.f64 (-.f64 y x) z) |
| 1× | batch-egg-rewrite |
| 1646× | pow1 |
| 1520× | add-exp-log |
| 1520× | log1p-expm1-u |
| 1520× | expm1-log1p-u |
| 1488× | add-log-exp |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 7 | 13 |
| 1 | 149 | 13 |
| 2 | 2025 | 13 |
| 1× | node limit |
| Inputs |
|---|
(*.f64 (-.f64 y x) z) |
| Outputs |
|---|
(+.f64 (*.f64 z y) (*.f64 z (neg.f64 x))) |
(+.f64 (*.f64 y z) (*.f64 (neg.f64 x) z)) |
(-.f64 (+.f64 1 (*.f64 (-.f64 y x) z)) 1) |
(/.f64 (*.f64 z (-.f64 (pow.f64 y 3) (pow.f64 x 3))) (fma.f64 y y (*.f64 x (+.f64 y x)))) |
(/.f64 (*.f64 z (-.f64 (*.f64 y y) (*.f64 x x))) (+.f64 y x)) |
(/.f64 (*.f64 (-.f64 (pow.f64 y 3) (pow.f64 x 3)) z) (fma.f64 y y (*.f64 x (+.f64 y x)))) |
(/.f64 (*.f64 (-.f64 (*.f64 y y) (*.f64 x x)) z) (+.f64 y x)) |
(pow.f64 (*.f64 (-.f64 y x) z) 1) |
(pow.f64 (cbrt.f64 (*.f64 (-.f64 y x) z)) 3) |
(pow.f64 (pow.f64 (*.f64 (-.f64 y x) z) 3) 1/3) |
(pow.f64 (sqrt.f64 (*.f64 (-.f64 y x) z)) 2) |
(sqrt.f64 (pow.f64 (*.f64 (-.f64 y x) z) 2)) |
(log.f64 (pow.f64 (exp.f64 z) (-.f64 y x))) |
(cbrt.f64 (pow.f64 (*.f64 (-.f64 y x) z) 3)) |
(cbrt.f64 (*.f64 (pow.f64 (-.f64 y x) 3) (pow.f64 z 3))) |
(cbrt.f64 (*.f64 (pow.f64 z 3) (pow.f64 (-.f64 y x) 3))) |
(expm1.f64 (log1p.f64 (*.f64 (-.f64 y x) z))) |
(exp.f64 (log.f64 (*.f64 (-.f64 y x) z))) |
(log1p.f64 (expm1.f64 (*.f64 (-.f64 y x) z))) |
| 1× | egg-herbie |
| 1376× | fma-def |
| 1296× | log-prod |
| 792× | unsub-neg |
| 738× | associate-*r* |
| 646× | associate-*l* |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 68 | 611 |
| 1 | 166 | 611 |
| 2 | 516 | 611 |
| 3 | 3056 | 611 |
| 4 | 6374 | 611 |
| 1× | node limit |
| Inputs |
|---|
(*.f64 -1 (*.f64 z x)) |
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x))) |
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x))) |
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x))) |
(*.f64 y z) |
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x))) |
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x))) |
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x))) |
(*.f64 y z) |
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x))) |
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x))) |
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x))) |
(*.f64 y z) |
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x))) |
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x))) |
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x))) |
(*.f64 -1 (*.f64 z x)) |
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x))) |
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x))) |
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x))) |
(*.f64 -1 (*.f64 z x)) |
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x))) |
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x))) |
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x))) |
(+.f64 (*.f64 z y) (*.f64 z (neg.f64 x))) |
(+.f64 (*.f64 y z) (*.f64 (neg.f64 x) z)) |
(-.f64 (+.f64 1 (*.f64 (-.f64 y x) z)) 1) |
(/.f64 (*.f64 z (-.f64 (pow.f64 y 3) (pow.f64 x 3))) (fma.f64 y y (*.f64 x (+.f64 y x)))) |
(/.f64 (*.f64 z (-.f64 (*.f64 y y) (*.f64 x x))) (+.f64 y x)) |
(/.f64 (*.f64 (-.f64 (pow.f64 y 3) (pow.f64 x 3)) z) (fma.f64 y y (*.f64 x (+.f64 y x)))) |
(/.f64 (*.f64 (-.f64 (*.f64 y y) (*.f64 x x)) z) (+.f64 y x)) |
(pow.f64 (*.f64 (-.f64 y x) z) 1) |
(pow.f64 (cbrt.f64 (*.f64 (-.f64 y x) z)) 3) |
(pow.f64 (pow.f64 (*.f64 (-.f64 y x) z) 3) 1/3) |
(pow.f64 (sqrt.f64 (*.f64 (-.f64 y x) z)) 2) |
(sqrt.f64 (pow.f64 (*.f64 (-.f64 y x) z) 2)) |
(log.f64 (pow.f64 (exp.f64 z) (-.f64 y x))) |
(cbrt.f64 (pow.f64 (*.f64 (-.f64 y x) z) 3)) |
(cbrt.f64 (*.f64 (pow.f64 (-.f64 y x) 3) (pow.f64 z 3))) |
(cbrt.f64 (*.f64 (pow.f64 z 3) (pow.f64 (-.f64 y x) 3))) |
(expm1.f64 (log1p.f64 (*.f64 (-.f64 y x) z))) |
(exp.f64 (log.f64 (*.f64 (-.f64 y x) z))) |
(log1p.f64 (expm1.f64 (*.f64 (-.f64 y x) z))) |
| Outputs |
|---|
(*.f64 -1 (*.f64 z x)) |
(*.f64 z (neg.f64 x)) |
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x))) |
(*.f64 z (-.f64 y x)) |
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x))) |
(*.f64 z (-.f64 y x)) |
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x))) |
(*.f64 z (-.f64 y x)) |
(*.f64 y z) |
(*.f64 z y) |
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x))) |
(*.f64 z (-.f64 y x)) |
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x))) |
(*.f64 z (-.f64 y x)) |
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x))) |
(*.f64 z (-.f64 y x)) |
(*.f64 y z) |
(*.f64 z y) |
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x))) |
(*.f64 z (-.f64 y x)) |
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x))) |
(*.f64 z (-.f64 y x)) |
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x))) |
(*.f64 z (-.f64 y x)) |
(*.f64 y z) |
(*.f64 z y) |
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x))) |
(*.f64 z (-.f64 y x)) |
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x))) |
(*.f64 z (-.f64 y x)) |
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x))) |
(*.f64 z (-.f64 y x)) |
(*.f64 -1 (*.f64 z x)) |
(*.f64 z (neg.f64 x)) |
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x))) |
(*.f64 z (-.f64 y x)) |
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x))) |
(*.f64 z (-.f64 y x)) |
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x))) |
(*.f64 z (-.f64 y x)) |
(*.f64 -1 (*.f64 z x)) |
(*.f64 z (neg.f64 x)) |
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x))) |
(*.f64 z (-.f64 y x)) |
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x))) |
(*.f64 z (-.f64 y x)) |
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 z x))) |
(*.f64 z (-.f64 y x)) |
(+.f64 (*.f64 z y) (*.f64 z (neg.f64 x))) |
(*.f64 z (-.f64 y x)) |
(+.f64 (*.f64 y z) (*.f64 (neg.f64 x) z)) |
(*.f64 z (-.f64 y x)) |
(-.f64 (+.f64 1 (*.f64 (-.f64 y x) z)) 1) |
(*.f64 z (-.f64 y x)) |
(/.f64 (*.f64 z (-.f64 (pow.f64 y 3) (pow.f64 x 3))) (fma.f64 y y (*.f64 x (+.f64 y x)))) |
(/.f64 (*.f64 z (-.f64 (pow.f64 y 3) (pow.f64 x 3))) (fma.f64 y y (*.f64 x (+.f64 x y)))) |
(*.f64 (/.f64 (-.f64 (pow.f64 y 3) (pow.f64 x 3)) (fma.f64 y y (*.f64 x (+.f64 x y)))) z) |
(*.f64 z (/.f64 (-.f64 (pow.f64 y 3) (pow.f64 x 3)) (fma.f64 x (+.f64 x y) (*.f64 y y)))) |
(*.f64 (-.f64 (pow.f64 y 3) (pow.f64 x 3)) (/.f64 z (fma.f64 x (+.f64 x y) (*.f64 y y)))) |
(/.f64 (*.f64 z (-.f64 (*.f64 y y) (*.f64 x x))) (+.f64 y x)) |
(*.f64 z (-.f64 y x)) |
(/.f64 (*.f64 (-.f64 (pow.f64 y 3) (pow.f64 x 3)) z) (fma.f64 y y (*.f64 x (+.f64 y x)))) |
(/.f64 (*.f64 z (-.f64 (pow.f64 y 3) (pow.f64 x 3))) (fma.f64 y y (*.f64 x (+.f64 x y)))) |
(*.f64 (/.f64 (-.f64 (pow.f64 y 3) (pow.f64 x 3)) (fma.f64 y y (*.f64 x (+.f64 x y)))) z) |
(*.f64 z (/.f64 (-.f64 (pow.f64 y 3) (pow.f64 x 3)) (fma.f64 x (+.f64 x y) (*.f64 y y)))) |
(*.f64 (-.f64 (pow.f64 y 3) (pow.f64 x 3)) (/.f64 z (fma.f64 x (+.f64 x y) (*.f64 y y)))) |
(/.f64 (*.f64 (-.f64 (*.f64 y y) (*.f64 x x)) z) (+.f64 y x)) |
(*.f64 z (-.f64 y x)) |
(pow.f64 (*.f64 (-.f64 y x) z) 1) |
(*.f64 z (-.f64 y x)) |
(pow.f64 (cbrt.f64 (*.f64 (-.f64 y x) z)) 3) |
(*.f64 z (-.f64 y x)) |
(pow.f64 (pow.f64 (*.f64 (-.f64 y x) z) 3) 1/3) |
(*.f64 z (-.f64 y x)) |
(pow.f64 (sqrt.f64 (*.f64 (-.f64 y x) z)) 2) |
(*.f64 z (-.f64 y x)) |
(sqrt.f64 (pow.f64 (*.f64 (-.f64 y x) z) 2)) |
(*.f64 z (-.f64 y x)) |
(log.f64 (pow.f64 (exp.f64 z) (-.f64 y x))) |
(*.f64 z (-.f64 y x)) |
(cbrt.f64 (pow.f64 (*.f64 (-.f64 y x) z) 3)) |
(*.f64 z (-.f64 y x)) |
(cbrt.f64 (*.f64 (pow.f64 (-.f64 y x) 3) (pow.f64 z 3))) |
(*.f64 z (-.f64 y x)) |
(cbrt.f64 (*.f64 (pow.f64 z 3) (pow.f64 (-.f64 y x) 3))) |
(*.f64 z (-.f64 y x)) |
(expm1.f64 (log1p.f64 (*.f64 (-.f64 y x) z))) |
(*.f64 z (-.f64 y x)) |
(exp.f64 (log.f64 (*.f64 (-.f64 y x) z))) |
(*.f64 z (-.f64 y x)) |
(log1p.f64 (expm1.f64 (*.f64 (-.f64 y x) z))) |
(*.f64 z (-.f64 y x)) |
Compiled 345 to 147 computations (57.4% saved)
3 alts after pruning (2 fresh and 1 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 27 | 2 | 29 |
| Fresh | 0 | 0 | 0 |
| Picked | 0 | 1 | 1 |
| Done | 0 | 0 | 0 |
| Total | 27 | 3 | 30 |
| Status | Accuracy | Program |
|---|---|---|
| ✓ | 100.0% | (+.f64 x (*.f64 (-.f64 y x) z)) |
| ▶ | 62.6% | (+.f64 x (*.f64 z (neg.f64 x))) |
| ▶ | 73.7% | (+.f64 x (*.f64 z y)) |
| ✓ | 100.0% | (+.f64 x (*.f64 (-.f64 y x) z)) |
| ▶ | 62.6% | (+.f64 x (*.f64 z (neg.f64 x))) |
| ▶ | 73.7% | (+.f64 x (*.f64 z y)) |
Compiled 54 to 34 computations (37% saved)
Found 1 expressions with local accuracy:
| New | Accuracy | Program |
|---|---|---|
| ✓ | 100.0% | (+.f64 x (*.f64 z (neg.f64 x))) |
Compiled 29 to 9 computations (69% saved)
6 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 1.0ms | x | @ | inf | (+.f64 x (*.f64 z (neg.f64 x))) |
| 1.0ms | x | @ | 0 | (+.f64 x (*.f64 z (neg.f64 x))) |
| 0.0ms | z | @ | inf | (+.f64 x (*.f64 z (neg.f64 x))) |
| 0.0ms | z | @ | 0 | (+.f64 x (*.f64 z (neg.f64 x))) |
| 0.0ms | x | @ | -inf | (+.f64 x (*.f64 z (neg.f64 x))) |
| 1× | batch-egg-rewrite |
| 1586× | pow1 |
| 1464× | add-exp-log |
| 1462× | log1p-expm1-u |
| 1462× | expm1-log1p-u |
| 1432× | add-log-exp |
Useful iterations: 1 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 8 | 17 |
| 1 | 172 | 9 |
| 2 | 2454 | 9 |
| 1× | node limit |
| Inputs |
|---|
(+.f64 x (*.f64 z (neg.f64 x))) |
| Outputs |
|---|
(-.f64 x (*.f64 x z)) |
(-.f64 (+.f64 1 (fma.f64 x z x)) 1) |
(-.f64 (/.f64 (*.f64 x x) (fma.f64 x z x)) (/.f64 (pow.f64 (*.f64 x z) 2) (fma.f64 x z x))) |
(*.f64 (fma.f64 x z x) 1) |
(*.f64 1 (fma.f64 x z x)) |
(*.f64 (cbrt.f64 (fma.f64 x z x)) (pow.f64 (cbrt.f64 (fma.f64 x z x)) 2)) |
(*.f64 (pow.f64 (cbrt.f64 (fma.f64 x z x)) 2) (cbrt.f64 (fma.f64 x z x))) |
(*.f64 (pow.f64 (fma.f64 x z x) 2) (/.f64 1 (fma.f64 x z x))) |
(*.f64 (sqrt.f64 (fma.f64 x z x)) (sqrt.f64 (fma.f64 x z x))) |
(*.f64 (+.f64 (pow.f64 x 3) (pow.f64 (*.f64 x z) 3)) (/.f64 1 (-.f64 (pow.f64 (fma.f64 x z x) 2) (*.f64 (*.f64 x x) z)))) |
(*.f64 (+.f64 (sqrt.f64 x) (sqrt.f64 (*.f64 x z))) (-.f64 (sqrt.f64 x) (sqrt.f64 (*.f64 x z)))) |
(/.f64 1 (/.f64 (-.f64 (pow.f64 (fma.f64 x z x) 2) (*.f64 (*.f64 x x) z)) (+.f64 (pow.f64 x 3) (pow.f64 (*.f64 x z) 3)))) |
(/.f64 1 (/.f64 (fma.f64 x z x) (pow.f64 (fma.f64 x z x) 2))) |
(/.f64 (pow.f64 (fma.f64 x z x) 2) (fma.f64 x z x)) |
(/.f64 (+.f64 (pow.f64 x 3) (pow.f64 (*.f64 x z) 3)) (-.f64 (pow.f64 (fma.f64 x z x) 2) (*.f64 (*.f64 x x) z))) |
(/.f64 (+.f64 (pow.f64 x 3) (pow.f64 (*.f64 x z) 3)) (+.f64 (pow.f64 (*.f64 x z) 2) (-.f64 (*.f64 x x) (*.f64 (*.f64 x x) z)))) |
(/.f64 (neg.f64 (+.f64 (pow.f64 x 3) (pow.f64 (*.f64 x z) 3))) (neg.f64 (-.f64 (pow.f64 (fma.f64 x z x) 2) (*.f64 (*.f64 x x) z)))) |
(/.f64 (neg.f64 (pow.f64 (fma.f64 x z x) 2)) (neg.f64 (fma.f64 x z x))) |
(/.f64 (-.f64 (pow.f64 x 3) (pow.f64 (*.f64 x z) 3)) (-.f64 (pow.f64 (fma.f64 x z x) 2) (*.f64 (*.f64 x x) z))) |
(/.f64 (-.f64 (pow.f64 (*.f64 x z) 2) (*.f64 x x)) (-.f64 (*.f64 x z) x)) |
(pow.f64 (fma.f64 x z x) 1) |
(pow.f64 (cbrt.f64 (fma.f64 x z x)) 3) |
(pow.f64 (pow.f64 (fma.f64 x z x) 3) 1/3) |
(pow.f64 (sqrt.f64 (fma.f64 x z x)) 2) |
(sqrt.f64 (pow.f64 (fma.f64 x z x) 2)) |
(log.f64 (exp.f64 (fma.f64 x z x))) |
(cbrt.f64 (pow.f64 (fma.f64 x z x) 3)) |
(expm1.f64 (log1p.f64 (fma.f64 x z x))) |
(exp.f64 (log.f64 (fma.f64 x z x))) |
(log1p.f64 (expm1.f64 (fma.f64 x z x))) |
(fma.f64 x z x) |
(fma.f64 z x x) |
(fma.f64 1 x (*.f64 x z)) |
(fma.f64 1 (*.f64 x z) x) |
(fma.f64 (pow.f64 (cbrt.f64 x) 2) (cbrt.f64 x) (*.f64 x z)) |
(fma.f64 (pow.f64 (cbrt.f64 (*.f64 x z)) 2) (cbrt.f64 (*.f64 x z)) x) |
(fma.f64 (sqrt.f64 x) (sqrt.f64 x) (*.f64 x z)) |
(fma.f64 (sqrt.f64 (*.f64 x z)) (sqrt.f64 (*.f64 x z)) x) |
| 1× | egg-herbie |
| 1112× | div-sub |
| 1066× | associate-/l* |
| 990× | fma-neg |
| 794× | associate-/r* |
| 610× | fma-def |
Useful iterations: 2 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 99 | 1464 |
| 1 | 245 | 1220 |
| 2 | 926 | 1048 |
| 3 | 5232 | 1048 |
| 1× | node limit |
| Inputs |
|---|
(*.f64 (+.f64 (*.f64 -1 z) 1) x) |
(*.f64 (+.f64 (*.f64 -1 z) 1) x) |
(*.f64 (+.f64 (*.f64 -1 z) 1) x) |
(*.f64 (+.f64 (*.f64 -1 z) 1) x) |
(*.f64 (+.f64 (*.f64 -1 z) 1) x) |
(*.f64 (+.f64 (*.f64 -1 z) 1) x) |
(*.f64 (+.f64 (*.f64 -1 z) 1) x) |
(*.f64 (+.f64 (*.f64 -1 z) 1) x) |
(*.f64 -1 (*.f64 (-.f64 z 1) x)) |
(*.f64 -1 (*.f64 (-.f64 z 1) x)) |
(*.f64 -1 (*.f64 (-.f64 z 1) x)) |
(*.f64 -1 (*.f64 (-.f64 z 1) x)) |
x |
(+.f64 (*.f64 -1 (*.f64 z x)) x) |
(+.f64 (*.f64 -1 (*.f64 z x)) x) |
(+.f64 (*.f64 -1 (*.f64 z x)) x) |
(*.f64 -1 (*.f64 z x)) |
(+.f64 (*.f64 -1 (*.f64 z x)) x) |
(+.f64 (*.f64 -1 (*.f64 z x)) x) |
(+.f64 (*.f64 -1 (*.f64 z x)) x) |
(*.f64 -1 (*.f64 z x)) |
(+.f64 (*.f64 -1 (*.f64 z x)) x) |
(+.f64 (*.f64 -1 (*.f64 z x)) x) |
(+.f64 (*.f64 -1 (*.f64 z x)) x) |
(-.f64 x (*.f64 x z)) |
(-.f64 (+.f64 1 (fma.f64 x z x)) 1) |
(-.f64 (/.f64 (*.f64 x x) (fma.f64 x z x)) (/.f64 (pow.f64 (*.f64 x z) 2) (fma.f64 x z x))) |
(*.f64 (fma.f64 x z x) 1) |
(*.f64 1 (fma.f64 x z x)) |
(*.f64 (cbrt.f64 (fma.f64 x z x)) (pow.f64 (cbrt.f64 (fma.f64 x z x)) 2)) |
(*.f64 (pow.f64 (cbrt.f64 (fma.f64 x z x)) 2) (cbrt.f64 (fma.f64 x z x))) |
(*.f64 (pow.f64 (fma.f64 x z x) 2) (/.f64 1 (fma.f64 x z x))) |
(*.f64 (sqrt.f64 (fma.f64 x z x)) (sqrt.f64 (fma.f64 x z x))) |
(*.f64 (+.f64 (pow.f64 x 3) (pow.f64 (*.f64 x z) 3)) (/.f64 1 (-.f64 (pow.f64 (fma.f64 x z x) 2) (*.f64 (*.f64 x x) z)))) |
(*.f64 (+.f64 (sqrt.f64 x) (sqrt.f64 (*.f64 x z))) (-.f64 (sqrt.f64 x) (sqrt.f64 (*.f64 x z)))) |
(/.f64 1 (/.f64 (-.f64 (pow.f64 (fma.f64 x z x) 2) (*.f64 (*.f64 x x) z)) (+.f64 (pow.f64 x 3) (pow.f64 (*.f64 x z) 3)))) |
(/.f64 1 (/.f64 (fma.f64 x z x) (pow.f64 (fma.f64 x z x) 2))) |
(/.f64 (pow.f64 (fma.f64 x z x) 2) (fma.f64 x z x)) |
(/.f64 (+.f64 (pow.f64 x 3) (pow.f64 (*.f64 x z) 3)) (-.f64 (pow.f64 (fma.f64 x z x) 2) (*.f64 (*.f64 x x) z))) |
(/.f64 (+.f64 (pow.f64 x 3) (pow.f64 (*.f64 x z) 3)) (+.f64 (pow.f64 (*.f64 x z) 2) (-.f64 (*.f64 x x) (*.f64 (*.f64 x x) z)))) |
(/.f64 (neg.f64 (+.f64 (pow.f64 x 3) (pow.f64 (*.f64 x z) 3))) (neg.f64 (-.f64 (pow.f64 (fma.f64 x z x) 2) (*.f64 (*.f64 x x) z)))) |
(/.f64 (neg.f64 (pow.f64 (fma.f64 x z x) 2)) (neg.f64 (fma.f64 x z x))) |
(/.f64 (-.f64 (pow.f64 x 3) (pow.f64 (*.f64 x z) 3)) (-.f64 (pow.f64 (fma.f64 x z x) 2) (*.f64 (*.f64 x x) z))) |
(/.f64 (-.f64 (pow.f64 (*.f64 x z) 2) (*.f64 x x)) (-.f64 (*.f64 x z) x)) |
(pow.f64 (fma.f64 x z x) 1) |
(pow.f64 (cbrt.f64 (fma.f64 x z x)) 3) |
(pow.f64 (pow.f64 (fma.f64 x z x) 3) 1/3) |
(pow.f64 (sqrt.f64 (fma.f64 x z x)) 2) |
(sqrt.f64 (pow.f64 (fma.f64 x z x) 2)) |
(log.f64 (exp.f64 (fma.f64 x z x))) |
(cbrt.f64 (pow.f64 (fma.f64 x z x) 3)) |
(expm1.f64 (log1p.f64 (fma.f64 x z x))) |
(exp.f64 (log.f64 (fma.f64 x z x))) |
(log1p.f64 (expm1.f64 (fma.f64 x z x))) |
(fma.f64 x z x) |
(fma.f64 z x x) |
(fma.f64 1 x (*.f64 x z)) |
(fma.f64 1 (*.f64 x z) x) |
(fma.f64 (pow.f64 (cbrt.f64 x) 2) (cbrt.f64 x) (*.f64 x z)) |
(fma.f64 (pow.f64 (cbrt.f64 (*.f64 x z)) 2) (cbrt.f64 (*.f64 x z)) x) |
(fma.f64 (sqrt.f64 x) (sqrt.f64 x) (*.f64 x z)) |
(fma.f64 (sqrt.f64 (*.f64 x z)) (sqrt.f64 (*.f64 x z)) x) |
| Outputs |
|---|
(*.f64 (+.f64 (*.f64 -1 z) 1) x) |
(*.f64 (fma.f64 -1 z 1) x) |
(fma.f64 (neg.f64 z) x x) |
(fma.f64 z (neg.f64 x) x) |
(*.f64 (+.f64 (*.f64 -1 z) 1) x) |
(*.f64 (fma.f64 -1 z 1) x) |
(fma.f64 (neg.f64 z) x x) |
(fma.f64 z (neg.f64 x) x) |
(*.f64 (+.f64 (*.f64 -1 z) 1) x) |
(*.f64 (fma.f64 -1 z 1) x) |
(fma.f64 (neg.f64 z) x x) |
(fma.f64 z (neg.f64 x) x) |
(*.f64 (+.f64 (*.f64 -1 z) 1) x) |
(*.f64 (fma.f64 -1 z 1) x) |
(fma.f64 (neg.f64 z) x x) |
(fma.f64 z (neg.f64 x) x) |
(*.f64 (+.f64 (*.f64 -1 z) 1) x) |
(*.f64 (fma.f64 -1 z 1) x) |
(fma.f64 (neg.f64 z) x x) |
(fma.f64 z (neg.f64 x) x) |
(*.f64 (+.f64 (*.f64 -1 z) 1) x) |
(*.f64 (fma.f64 -1 z 1) x) |
(fma.f64 (neg.f64 z) x x) |
(fma.f64 z (neg.f64 x) x) |
(*.f64 (+.f64 (*.f64 -1 z) 1) x) |
(*.f64 (fma.f64 -1 z 1) x) |
(fma.f64 (neg.f64 z) x x) |
(fma.f64 z (neg.f64 x) x) |
(*.f64 (+.f64 (*.f64 -1 z) 1) x) |
(*.f64 (fma.f64 -1 z 1) x) |
(fma.f64 (neg.f64 z) x x) |
(fma.f64 z (neg.f64 x) x) |
(*.f64 -1 (*.f64 (-.f64 z 1) x)) |
(*.f64 (fma.f64 -1 z 1) x) |
(fma.f64 (neg.f64 z) x x) |
(fma.f64 z (neg.f64 x) x) |
(*.f64 -1 (*.f64 (-.f64 z 1) x)) |
(*.f64 (fma.f64 -1 z 1) x) |
(fma.f64 (neg.f64 z) x x) |
(fma.f64 z (neg.f64 x) x) |
(*.f64 -1 (*.f64 (-.f64 z 1) x)) |
(*.f64 (fma.f64 -1 z 1) x) |
(fma.f64 (neg.f64 z) x x) |
(fma.f64 z (neg.f64 x) x) |
(*.f64 -1 (*.f64 (-.f64 z 1) x)) |
(*.f64 (fma.f64 -1 z 1) x) |
(fma.f64 (neg.f64 z) x x) |
(fma.f64 z (neg.f64 x) x) |
x |
(+.f64 (*.f64 -1 (*.f64 z x)) x) |
(*.f64 (fma.f64 -1 z 1) x) |
(fma.f64 (neg.f64 z) x x) |
(fma.f64 z (neg.f64 x) x) |
(+.f64 (*.f64 -1 (*.f64 z x)) x) |
(*.f64 (fma.f64 -1 z 1) x) |
(fma.f64 (neg.f64 z) x x) |
(fma.f64 z (neg.f64 x) x) |
(+.f64 (*.f64 -1 (*.f64 z x)) x) |
(*.f64 (fma.f64 -1 z 1) x) |
(fma.f64 (neg.f64 z) x x) |
(fma.f64 z (neg.f64 x) x) |
(*.f64 -1 (*.f64 z x)) |
(*.f64 (neg.f64 z) x) |
(*.f64 z (neg.f64 x)) |
(+.f64 (*.f64 -1 (*.f64 z x)) x) |
(*.f64 (fma.f64 -1 z 1) x) |
(fma.f64 (neg.f64 z) x x) |
(fma.f64 z (neg.f64 x) x) |
(+.f64 (*.f64 -1 (*.f64 z x)) x) |
(*.f64 (fma.f64 -1 z 1) x) |
(fma.f64 (neg.f64 z) x x) |
(fma.f64 z (neg.f64 x) x) |
(+.f64 (*.f64 -1 (*.f64 z x)) x) |
(*.f64 (fma.f64 -1 z 1) x) |
(fma.f64 (neg.f64 z) x x) |
(fma.f64 z (neg.f64 x) x) |
(*.f64 -1 (*.f64 z x)) |
(*.f64 (neg.f64 z) x) |
(*.f64 z (neg.f64 x)) |
(+.f64 (*.f64 -1 (*.f64 z x)) x) |
(*.f64 (fma.f64 -1 z 1) x) |
(fma.f64 (neg.f64 z) x x) |
(fma.f64 z (neg.f64 x) x) |
(+.f64 (*.f64 -1 (*.f64 z x)) x) |
(*.f64 (fma.f64 -1 z 1) x) |
(fma.f64 (neg.f64 z) x x) |
(fma.f64 z (neg.f64 x) x) |
(+.f64 (*.f64 -1 (*.f64 z x)) x) |
(*.f64 (fma.f64 -1 z 1) x) |
(fma.f64 (neg.f64 z) x x) |
(fma.f64 z (neg.f64 x) x) |
(-.f64 x (*.f64 x z)) |
(*.f64 (fma.f64 -1 z 1) x) |
(fma.f64 (neg.f64 z) x x) |
(fma.f64 z (neg.f64 x) x) |
(-.f64 (+.f64 1 (fma.f64 x z x)) 1) |
(+.f64 1 (-.f64 (fma.f64 z x x) 1)) |
(+.f64 (fma.f64 z x x) 0) |
(fma.f64 z x x) |
(-.f64 (/.f64 (*.f64 x x) (fma.f64 x z x)) (/.f64 (pow.f64 (*.f64 x z) 2) (fma.f64 x z x))) |
(-.f64 (/.f64 (*.f64 x x) (fma.f64 z x x)) (/.f64 (pow.f64 (*.f64 z x) 2) (fma.f64 z x x))) |
(-.f64 (*.f64 x (/.f64 x (fma.f64 z x x))) (/.f64 (pow.f64 (*.f64 z x) 2) (fma.f64 z x x))) |
(*.f64 (fma.f64 x z x) 1) |
(+.f64 1 (-.f64 (fma.f64 z x x) 1)) |
(+.f64 (fma.f64 z x x) 0) |
(fma.f64 z x x) |
(*.f64 1 (fma.f64 x z x)) |
(+.f64 1 (-.f64 (fma.f64 z x x) 1)) |
(+.f64 (fma.f64 z x x) 0) |
(fma.f64 z x x) |
(*.f64 (cbrt.f64 (fma.f64 x z x)) (pow.f64 (cbrt.f64 (fma.f64 x z x)) 2)) |
(+.f64 1 (-.f64 (fma.f64 z x x) 1)) |
(+.f64 (fma.f64 z x x) 0) |
(fma.f64 z x x) |
(*.f64 (pow.f64 (cbrt.f64 (fma.f64 x z x)) 2) (cbrt.f64 (fma.f64 x z x))) |
(+.f64 1 (-.f64 (fma.f64 z x x) 1)) |
(+.f64 (fma.f64 z x x) 0) |
(fma.f64 z x x) |
(*.f64 (pow.f64 (fma.f64 x z x) 2) (/.f64 1 (fma.f64 x z x))) |
(+.f64 1 (-.f64 (fma.f64 z x x) 1)) |
(+.f64 (fma.f64 z x x) 0) |
(fma.f64 z x x) |
(*.f64 (sqrt.f64 (fma.f64 x z x)) (sqrt.f64 (fma.f64 x z x))) |
(+.f64 1 (-.f64 (fma.f64 z x x) 1)) |
(+.f64 (fma.f64 z x x) 0) |
(fma.f64 z x x) |
(*.f64 (+.f64 (pow.f64 x 3) (pow.f64 (*.f64 x z) 3)) (/.f64 1 (-.f64 (pow.f64 (fma.f64 x z x) 2) (*.f64 (*.f64 x x) z)))) |
(/.f64 (*.f64 (+.f64 (pow.f64 x 3) (pow.f64 (*.f64 z x) 3)) 1) (-.f64 (pow.f64 (fma.f64 z x x) 2) (*.f64 z (*.f64 x x)))) |
(/.f64 (+.f64 (pow.f64 x 3) (pow.f64 (*.f64 z x) 3)) (-.f64 (pow.f64 (fma.f64 z x x) 2) (*.f64 z (*.f64 x x)))) |
(*.f64 (+.f64 (sqrt.f64 x) (sqrt.f64 (*.f64 x z))) (-.f64 (sqrt.f64 x) (sqrt.f64 (*.f64 x z)))) |
(*.f64 (fma.f64 -1 z 1) x) |
(fma.f64 (neg.f64 z) x x) |
(fma.f64 z (neg.f64 x) x) |
(/.f64 1 (/.f64 (-.f64 (pow.f64 (fma.f64 x z x) 2) (*.f64 (*.f64 x x) z)) (+.f64 (pow.f64 x 3) (pow.f64 (*.f64 x z) 3)))) |
(/.f64 (*.f64 (+.f64 (pow.f64 x 3) (pow.f64 (*.f64 z x) 3)) 1) (-.f64 (pow.f64 (fma.f64 z x x) 2) (*.f64 z (*.f64 x x)))) |
(/.f64 (+.f64 (pow.f64 x 3) (pow.f64 (*.f64 z x) 3)) (-.f64 (pow.f64 (fma.f64 z x x) 2) (*.f64 z (*.f64 x x)))) |
(/.f64 1 (/.f64 (fma.f64 x z x) (pow.f64 (fma.f64 x z x) 2))) |
(+.f64 1 (-.f64 (fma.f64 z x x) 1)) |
(+.f64 (fma.f64 z x x) 0) |
(fma.f64 z x x) |
(/.f64 (pow.f64 (fma.f64 x z x) 2) (fma.f64 x z x)) |
(+.f64 1 (-.f64 (fma.f64 z x x) 1)) |
(+.f64 (fma.f64 z x x) 0) |
(fma.f64 z x x) |
(/.f64 (+.f64 (pow.f64 x 3) (pow.f64 (*.f64 x z) 3)) (-.f64 (pow.f64 (fma.f64 x z x) 2) (*.f64 (*.f64 x x) z))) |
(/.f64 (*.f64 (+.f64 (pow.f64 x 3) (pow.f64 (*.f64 z x) 3)) 1) (-.f64 (pow.f64 (fma.f64 z x x) 2) (*.f64 z (*.f64 x x)))) |
(/.f64 (+.f64 (pow.f64 x 3) (pow.f64 (*.f64 z x) 3)) (-.f64 (pow.f64 (fma.f64 z x x) 2) (*.f64 z (*.f64 x x)))) |
(/.f64 (+.f64 (pow.f64 x 3) (pow.f64 (*.f64 x z) 3)) (+.f64 (pow.f64 (*.f64 x z) 2) (-.f64 (*.f64 x x) (*.f64 (*.f64 x x) z)))) |
(/.f64 (+.f64 (pow.f64 x 3) (pow.f64 (*.f64 z x) 3)) (+.f64 (pow.f64 (*.f64 z x) 2) (-.f64 (*.f64 x x) (*.f64 z (*.f64 x x))))) |
(/.f64 (+.f64 (pow.f64 x 3) (pow.f64 (*.f64 z x) 3)) (+.f64 (pow.f64 (*.f64 z x) 2) (*.f64 x (fma.f64 (neg.f64 z) x x)))) |
(/.f64 (+.f64 (pow.f64 x 3) (pow.f64 (*.f64 z x) 3)) (fma.f64 x x (*.f64 (*.f64 z x) (fma.f64 z x (neg.f64 x))))) |
(/.f64 (neg.f64 (+.f64 (pow.f64 x 3) (pow.f64 (*.f64 x z) 3))) (neg.f64 (-.f64 (pow.f64 (fma.f64 x z x) 2) (*.f64 (*.f64 x x) z)))) |
(/.f64 (*.f64 (+.f64 (pow.f64 x 3) (pow.f64 (*.f64 z x) 3)) 1) (-.f64 (pow.f64 (fma.f64 z x x) 2) (*.f64 z (*.f64 x x)))) |
(/.f64 (+.f64 (pow.f64 x 3) (pow.f64 (*.f64 z x) 3)) (-.f64 (pow.f64 (fma.f64 z x x) 2) (*.f64 z (*.f64 x x)))) |
(/.f64 (neg.f64 (pow.f64 (fma.f64 x z x) 2)) (neg.f64 (fma.f64 x z x))) |
(+.f64 1 (-.f64 (fma.f64 z x x) 1)) |
(+.f64 (fma.f64 z x x) 0) |
(fma.f64 z x x) |
(/.f64 (-.f64 (pow.f64 x 3) (pow.f64 (*.f64 x z) 3)) (-.f64 (pow.f64 (fma.f64 x z x) 2) (*.f64 (*.f64 x x) z))) |
(/.f64 (-.f64 (pow.f64 x 3) (pow.f64 (*.f64 z x) 3)) (-.f64 (pow.f64 (fma.f64 z x x) 2) (*.f64 z (*.f64 x x)))) |
(/.f64 (-.f64 (pow.f64 (*.f64 x z) 2) (*.f64 x x)) (-.f64 (*.f64 x z) x)) |
(/.f64 (-.f64 (pow.f64 (*.f64 z x) 2) (*.f64 x x)) (-.f64 (*.f64 z x) x)) |
(/.f64 (-.f64 (pow.f64 (*.f64 z x) 2) (*.f64 x x)) (fma.f64 z x (neg.f64 x))) |
(/.f64 (*.f64 x (fma.f64 z (*.f64 z x) (neg.f64 x))) (fma.f64 z x (neg.f64 x))) |
(pow.f64 (fma.f64 x z x) 1) |
(+.f64 1 (-.f64 (fma.f64 z x x) 1)) |
(+.f64 (fma.f64 z x x) 0) |
(fma.f64 z x x) |
(pow.f64 (cbrt.f64 (fma.f64 x z x)) 3) |
(+.f64 1 (-.f64 (fma.f64 z x x) 1)) |
(+.f64 (fma.f64 z x x) 0) |
(fma.f64 z x x) |
(pow.f64 (pow.f64 (fma.f64 x z x) 3) 1/3) |
(+.f64 1 (-.f64 (fma.f64 z x x) 1)) |
(+.f64 (fma.f64 z x x) 0) |
(fma.f64 z x x) |
(pow.f64 (sqrt.f64 (fma.f64 x z x)) 2) |
(+.f64 1 (-.f64 (fma.f64 z x x) 1)) |
(+.f64 (fma.f64 z x x) 0) |
(fma.f64 z x x) |
(sqrt.f64 (pow.f64 (fma.f64 x z x) 2)) |
(+.f64 1 (-.f64 (fma.f64 z x x) 1)) |
(+.f64 (fma.f64 z x x) 0) |
(fma.f64 z x x) |
(log.f64 (exp.f64 (fma.f64 x z x))) |
(+.f64 1 (-.f64 (fma.f64 z x x) 1)) |
(+.f64 (fma.f64 z x x) 0) |
(fma.f64 z x x) |
(cbrt.f64 (pow.f64 (fma.f64 x z x) 3)) |
(+.f64 1 (-.f64 (fma.f64 z x x) 1)) |
(+.f64 (fma.f64 z x x) 0) |
(fma.f64 z x x) |
(expm1.f64 (log1p.f64 (fma.f64 x z x))) |
(+.f64 1 (-.f64 (fma.f64 z x x) 1)) |
(+.f64 (fma.f64 z x x) 0) |
(fma.f64 z x x) |
(exp.f64 (log.f64 (fma.f64 x z x))) |
(+.f64 1 (-.f64 (fma.f64 z x x) 1)) |
(+.f64 (fma.f64 z x x) 0) |
(fma.f64 z x x) |
(log1p.f64 (expm1.f64 (fma.f64 x z x))) |
(+.f64 1 (-.f64 (fma.f64 z x x) 1)) |
(+.f64 (fma.f64 z x x) 0) |
(fma.f64 z x x) |
(fma.f64 x z x) |
(+.f64 1 (-.f64 (fma.f64 z x x) 1)) |
(+.f64 (fma.f64 z x x) 0) |
(fma.f64 z x x) |
(fma.f64 z x x) |
(+.f64 1 (-.f64 (fma.f64 z x x) 1)) |
(+.f64 (fma.f64 z x x) 0) |
(fma.f64 1 x (*.f64 x z)) |
(+.f64 1 (-.f64 (fma.f64 z x x) 1)) |
(+.f64 (fma.f64 z x x) 0) |
(fma.f64 z x x) |
(fma.f64 1 (*.f64 x z) x) |
(+.f64 1 (-.f64 (fma.f64 z x x) 1)) |
(+.f64 (fma.f64 z x x) 0) |
(fma.f64 z x x) |
(fma.f64 (pow.f64 (cbrt.f64 x) 2) (cbrt.f64 x) (*.f64 x z)) |
(+.f64 1 (-.f64 (fma.f64 z x x) 1)) |
(+.f64 (fma.f64 z x x) 0) |
(fma.f64 z x x) |
(fma.f64 (pow.f64 (cbrt.f64 (*.f64 x z)) 2) (cbrt.f64 (*.f64 x z)) x) |
(+.f64 1 (-.f64 (fma.f64 z x x) 1)) |
(+.f64 (fma.f64 z x x) 0) |
(fma.f64 z x x) |
(fma.f64 (sqrt.f64 x) (sqrt.f64 x) (*.f64 x z)) |
(+.f64 1 (-.f64 (fma.f64 z x x) 1)) |
(+.f64 (fma.f64 z x x) 0) |
(fma.f64 z x x) |
(fma.f64 (sqrt.f64 (*.f64 x z)) (sqrt.f64 (*.f64 x z)) x) |
(+.f64 1 (-.f64 (fma.f64 z x x) 1)) |
(+.f64 (fma.f64 z x x) 0) |
(fma.f64 z x x) |
Compiled 717 to 272 computations (62.1% saved)
5 alts after pruning (3 fresh and 2 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 58 | 3 | 61 |
| Fresh | 0 | 0 | 0 |
| Picked | 1 | 1 | 2 |
| Done | 0 | 1 | 1 |
| Total | 59 | 5 | 64 |
| Status | Accuracy | Program |
|---|---|---|
| ▶ | 62.6% | (-.f64 x (*.f64 x z)) |
| ✓ | 100.0% | (+.f64 x (*.f64 (-.f64 y x) z)) |
| ✓ | 73.7% | (+.f64 x (*.f64 z y)) |
| ▶ | 28.8% | (*.f64 (neg.f64 z) x) |
| 36.5% | x | |
| ▶ | 62.6% | (-.f64 x (*.f64 x z)) |
| ✓ | 100.0% | (+.f64 x (*.f64 (-.f64 y x) z)) |
| ✓ | 73.7% | (+.f64 x (*.f64 z y)) |
| ▶ | 28.8% | (*.f64 (neg.f64 z) x) |
| 36.5% | x |
Compiled 74 to 48 computations (35.1% saved)
Found 1 expressions with local accuracy:
| New | Accuracy | Program |
|---|---|---|
| ✓ | 100.0% | (-.f64 x (*.f64 x z)) |
Compiled 22 to 8 computations (63.6% saved)
6 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 0.0ms | x | @ | 0 | (-.f64 x (*.f64 x z)) |
| 0.0ms | z | @ | inf | (-.f64 x (*.f64 x z)) |
| 0.0ms | z | @ | -inf | (-.f64 x (*.f64 x z)) |
| 0.0ms | x | @ | -inf | (-.f64 x (*.f64 x z)) |
| 0.0ms | x | @ | inf | (-.f64 x (*.f64 x z)) |
| 1× | batch-egg-rewrite |
| 1494× | pow1 |
| 1384× | add-exp-log |
| 1384× | log1p-expm1-u |
| 1384× | expm1-log1p-u |
| 1354× | add-log-exp |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 6 | 13 |
| 1 | 133 | 13 |
| 2 | 1897 | 13 |
| 1× | node limit |
| Inputs |
|---|
(-.f64 x (*.f64 x z)) |
| Outputs |
|---|
(+.f64 x (*.f64 x (neg.f64 z))) |
(+.f64 x (*.f64 (*.f64 x (neg.f64 z)) 1)) |
(+.f64 (-.f64 x (*.f64 x z)) (fma.f64 (neg.f64 z) x (*.f64 x z))) |
(+.f64 (-.f64 x (*.f64 x z)) (fma.f64 (neg.f64 x) z (*.f64 x z))) |
(+.f64 (-.f64 x (*.f64 x z)) (fma.f64 (*.f64 x (neg.f64 z)) 1 (*.f64 x z))) |
(+.f64 (-.f64 x (*.f64 x z)) (fma.f64 (neg.f64 (cbrt.f64 (*.f64 x z))) (pow.f64 (cbrt.f64 (*.f64 x z)) 2) (*.f64 x z))) |
(+.f64 (-.f64 x (*.f64 x z)) (fma.f64 (neg.f64 (sqrt.f64 (*.f64 x z))) (sqrt.f64 (*.f64 x z)) (*.f64 x z))) |
(+.f64 (*.f64 x (neg.f64 z)) x) |
(*.f64 x (-.f64 1 z)) |
(*.f64 (-.f64 x (*.f64 x z)) 1) |
(*.f64 1 (-.f64 x (*.f64 x z))) |
(*.f64 (cbrt.f64 (-.f64 x (*.f64 x z))) (pow.f64 (cbrt.f64 (-.f64 x (*.f64 x z))) 2)) |
(*.f64 (pow.f64 (cbrt.f64 (-.f64 x (*.f64 x z))) 2) (cbrt.f64 (-.f64 x (*.f64 x z)))) |
(*.f64 (sqrt.f64 (-.f64 x (*.f64 x z))) (sqrt.f64 (-.f64 x (*.f64 x z)))) |
(*.f64 (-.f64 (pow.f64 x 3) (pow.f64 (*.f64 x z) 3)) (/.f64 1 (fma.f64 x x (*.f64 (*.f64 x z) (+.f64 x (*.f64 x z)))))) |
(*.f64 (-.f64 (*.f64 x x) (pow.f64 (*.f64 x z) 2)) (/.f64 1 (+.f64 x (*.f64 x z)))) |
(*.f64 (+.f64 (sqrt.f64 x) (sqrt.f64 (*.f64 x z))) (-.f64 (sqrt.f64 x) (sqrt.f64 (*.f64 x z)))) |
(/.f64 1 (/.f64 (fma.f64 x x (*.f64 (*.f64 x z) (+.f64 x (*.f64 x z)))) (-.f64 (pow.f64 x 3) (pow.f64 (*.f64 x z) 3)))) |
(/.f64 1 (/.f64 (+.f64 x (*.f64 x z)) (-.f64 (*.f64 x x) (pow.f64 (*.f64 x z) 2)))) |
(/.f64 (-.f64 (pow.f64 x 3) (pow.f64 (*.f64 x z) 3)) (fma.f64 x x (*.f64 (*.f64 x z) (+.f64 x (*.f64 x z))))) |
(/.f64 (-.f64 (*.f64 x x) (pow.f64 (*.f64 x z) 2)) (+.f64 x (*.f64 x z))) |
(/.f64 (neg.f64 (-.f64 (pow.f64 x 3) (pow.f64 (*.f64 x z) 3))) (neg.f64 (fma.f64 x x (*.f64 (*.f64 x z) (+.f64 x (*.f64 x z)))))) |
(/.f64 (neg.f64 (-.f64 (*.f64 x x) (pow.f64 (*.f64 x z) 2))) (neg.f64 (+.f64 x (*.f64 x z)))) |
(/.f64 (+.f64 (pow.f64 x 3) (pow.f64 (*.f64 x (neg.f64 z)) 3)) (+.f64 (*.f64 x x) (-.f64 (*.f64 (*.f64 x (neg.f64 z)) (*.f64 x (neg.f64 z))) (*.f64 x (*.f64 x (neg.f64 z)))))) |
(/.f64 (-.f64 (*.f64 x x) (*.f64 (*.f64 x (neg.f64 z)) (*.f64 x (neg.f64 z)))) (-.f64 x (*.f64 x (neg.f64 z)))) |
(pow.f64 (-.f64 x (*.f64 x z)) 1) |
(pow.f64 (cbrt.f64 (-.f64 x (*.f64 x z))) 3) |
(pow.f64 (pow.f64 (-.f64 x (*.f64 x z)) 3) 1/3) |
(pow.f64 (sqrt.f64 (-.f64 x (*.f64 x z))) 2) |
(sqrt.f64 (pow.f64 (-.f64 x (*.f64 x z)) 2)) |
(log.f64 (exp.f64 (-.f64 x (*.f64 x z)))) |
(cbrt.f64 (pow.f64 (-.f64 x (*.f64 x z)) 3)) |
(expm1.f64 (log1p.f64 (-.f64 x (*.f64 x z)))) |
(exp.f64 (log.f64 (-.f64 x (*.f64 x z)))) |
(log1p.f64 (expm1.f64 (-.f64 x (*.f64 x z)))) |
(fma.f64 1 x (*.f64 x (neg.f64 z))) |
(fma.f64 (pow.f64 (cbrt.f64 x) 2) (cbrt.f64 x) (*.f64 x (neg.f64 z))) |
(fma.f64 (sqrt.f64 x) (sqrt.f64 x) (*.f64 x (neg.f64 z))) |
| 1× | egg-herbie |
| 1626× | fma-neg |
| 1214× | fma-def |
| 640× | times-frac |
| 394× | associate-/l* |
| 364× | sub-neg |
Useful iterations: 1 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 112 | 1070 |
| 1 | 298 | 1010 |
| 2 | 1148 | 1010 |
| 3 | 5655 | 1010 |
| 1× | node limit |
| Inputs |
|---|
(*.f64 (-.f64 1 z) x) |
(*.f64 (-.f64 1 z) x) |
(*.f64 (-.f64 1 z) x) |
(*.f64 (-.f64 1 z) x) |
(*.f64 (-.f64 1 z) x) |
(*.f64 (-.f64 1 z) x) |
(*.f64 (-.f64 1 z) x) |
(*.f64 (-.f64 1 z) x) |
(*.f64 (+.f64 (*.f64 -1 z) 1) x) |
(*.f64 (+.f64 (*.f64 -1 z) 1) x) |
(*.f64 (+.f64 (*.f64 -1 z) 1) x) |
(*.f64 (+.f64 (*.f64 -1 z) 1) x) |
x |
(+.f64 (*.f64 -1 (*.f64 z x)) x) |
(+.f64 (*.f64 -1 (*.f64 z x)) x) |
(+.f64 (*.f64 -1 (*.f64 z x)) x) |
(*.f64 -1 (*.f64 z x)) |
(+.f64 (*.f64 -1 (*.f64 z x)) x) |
(+.f64 (*.f64 -1 (*.f64 z x)) x) |
(+.f64 (*.f64 -1 (*.f64 z x)) x) |
(*.f64 -1 (*.f64 z x)) |
(+.f64 (*.f64 -1 (*.f64 z x)) x) |
(+.f64 (*.f64 -1 (*.f64 z x)) x) |
(+.f64 (*.f64 -1 (*.f64 z x)) x) |
(+.f64 x (*.f64 x (neg.f64 z))) |
(+.f64 x (*.f64 (*.f64 x (neg.f64 z)) 1)) |
(+.f64 (-.f64 x (*.f64 x z)) (fma.f64 (neg.f64 z) x (*.f64 x z))) |
(+.f64 (-.f64 x (*.f64 x z)) (fma.f64 (neg.f64 x) z (*.f64 x z))) |
(+.f64 (-.f64 x (*.f64 x z)) (fma.f64 (*.f64 x (neg.f64 z)) 1 (*.f64 x z))) |
(+.f64 (-.f64 x (*.f64 x z)) (fma.f64 (neg.f64 (cbrt.f64 (*.f64 x z))) (pow.f64 (cbrt.f64 (*.f64 x z)) 2) (*.f64 x z))) |
(+.f64 (-.f64 x (*.f64 x z)) (fma.f64 (neg.f64 (sqrt.f64 (*.f64 x z))) (sqrt.f64 (*.f64 x z)) (*.f64 x z))) |
(+.f64 (*.f64 x (neg.f64 z)) x) |
(*.f64 x (-.f64 1 z)) |
(*.f64 (-.f64 x (*.f64 x z)) 1) |
(*.f64 1 (-.f64 x (*.f64 x z))) |
(*.f64 (cbrt.f64 (-.f64 x (*.f64 x z))) (pow.f64 (cbrt.f64 (-.f64 x (*.f64 x z))) 2)) |
(*.f64 (pow.f64 (cbrt.f64 (-.f64 x (*.f64 x z))) 2) (cbrt.f64 (-.f64 x (*.f64 x z)))) |
(*.f64 (sqrt.f64 (-.f64 x (*.f64 x z))) (sqrt.f64 (-.f64 x (*.f64 x z)))) |
(*.f64 (-.f64 (pow.f64 x 3) (pow.f64 (*.f64 x z) 3)) (/.f64 1 (fma.f64 x x (*.f64 (*.f64 x z) (+.f64 x (*.f64 x z)))))) |
(*.f64 (-.f64 (*.f64 x x) (pow.f64 (*.f64 x z) 2)) (/.f64 1 (+.f64 x (*.f64 x z)))) |
(*.f64 (+.f64 (sqrt.f64 x) (sqrt.f64 (*.f64 x z))) (-.f64 (sqrt.f64 x) (sqrt.f64 (*.f64 x z)))) |
(/.f64 1 (/.f64 (fma.f64 x x (*.f64 (*.f64 x z) (+.f64 x (*.f64 x z)))) (-.f64 (pow.f64 x 3) (pow.f64 (*.f64 x z) 3)))) |
(/.f64 1 (/.f64 (+.f64 x (*.f64 x z)) (-.f64 (*.f64 x x) (pow.f64 (*.f64 x z) 2)))) |
(/.f64 (-.f64 (pow.f64 x 3) (pow.f64 (*.f64 x z) 3)) (fma.f64 x x (*.f64 (*.f64 x z) (+.f64 x (*.f64 x z))))) |
(/.f64 (-.f64 (*.f64 x x) (pow.f64 (*.f64 x z) 2)) (+.f64 x (*.f64 x z))) |
(/.f64 (neg.f64 (-.f64 (pow.f64 x 3) (pow.f64 (*.f64 x z) 3))) (neg.f64 (fma.f64 x x (*.f64 (*.f64 x z) (+.f64 x (*.f64 x z)))))) |
(/.f64 (neg.f64 (-.f64 (*.f64 x x) (pow.f64 (*.f64 x z) 2))) (neg.f64 (+.f64 x (*.f64 x z)))) |
(/.f64 (+.f64 (pow.f64 x 3) (pow.f64 (*.f64 x (neg.f64 z)) 3)) (+.f64 (*.f64 x x) (-.f64 (*.f64 (*.f64 x (neg.f64 z)) (*.f64 x (neg.f64 z))) (*.f64 x (*.f64 x (neg.f64 z)))))) |
(/.f64 (-.f64 (*.f64 x x) (*.f64 (*.f64 x (neg.f64 z)) (*.f64 x (neg.f64 z)))) (-.f64 x (*.f64 x (neg.f64 z)))) |
(pow.f64 (-.f64 x (*.f64 x z)) 1) |
(pow.f64 (cbrt.f64 (-.f64 x (*.f64 x z))) 3) |
(pow.f64 (pow.f64 (-.f64 x (*.f64 x z)) 3) 1/3) |
(pow.f64 (sqrt.f64 (-.f64 x (*.f64 x z))) 2) |
(sqrt.f64 (pow.f64 (-.f64 x (*.f64 x z)) 2)) |
(log.f64 (exp.f64 (-.f64 x (*.f64 x z)))) |
(cbrt.f64 (pow.f64 (-.f64 x (*.f64 x z)) 3)) |
(expm1.f64 (log1p.f64 (-.f64 x (*.f64 x z)))) |
(exp.f64 (log.f64 (-.f64 x (*.f64 x z)))) |
(log1p.f64 (expm1.f64 (-.f64 x (*.f64 x z)))) |
(fma.f64 1 x (*.f64 x (neg.f64 z))) |
(fma.f64 (pow.f64 (cbrt.f64 x) 2) (cbrt.f64 x) (*.f64 x (neg.f64 z))) |
(fma.f64 (sqrt.f64 x) (sqrt.f64 x) (*.f64 x (neg.f64 z))) |
| Outputs |
|---|
(*.f64 (-.f64 1 z) x) |
(-.f64 x (*.f64 z x)) |
(*.f64 (-.f64 1 z) x) |
(-.f64 x (*.f64 z x)) |
(*.f64 (-.f64 1 z) x) |
(-.f64 x (*.f64 z x)) |
(*.f64 (-.f64 1 z) x) |
(-.f64 x (*.f64 z x)) |
(*.f64 (-.f64 1 z) x) |
(-.f64 x (*.f64 z x)) |
(*.f64 (-.f64 1 z) x) |
(-.f64 x (*.f64 z x)) |
(*.f64 (-.f64 1 z) x) |
(-.f64 x (*.f64 z x)) |
(*.f64 (-.f64 1 z) x) |
(-.f64 x (*.f64 z x)) |
(*.f64 (+.f64 (*.f64 -1 z) 1) x) |
(*.f64 (-.f64 1 z) x) |
(-.f64 x (*.f64 z x)) |
(*.f64 (+.f64 (*.f64 -1 z) 1) x) |
(*.f64 (-.f64 1 z) x) |
(-.f64 x (*.f64 z x)) |
(*.f64 (+.f64 (*.f64 -1 z) 1) x) |
(*.f64 (-.f64 1 z) x) |
(-.f64 x (*.f64 z x)) |
(*.f64 (+.f64 (*.f64 -1 z) 1) x) |
(*.f64 (-.f64 1 z) x) |
(-.f64 x (*.f64 z x)) |
x |
(+.f64 (*.f64 -1 (*.f64 z x)) x) |
(*.f64 (-.f64 1 z) x) |
(-.f64 x (*.f64 z x)) |
(+.f64 (*.f64 -1 (*.f64 z x)) x) |
(*.f64 (-.f64 1 z) x) |
(-.f64 x (*.f64 z x)) |
(+.f64 (*.f64 -1 (*.f64 z x)) x) |
(*.f64 (-.f64 1 z) x) |
(-.f64 x (*.f64 z x)) |
(*.f64 -1 (*.f64 z x)) |
(*.f64 x (neg.f64 z)) |
(*.f64 z (neg.f64 x)) |
(+.f64 (*.f64 -1 (*.f64 z x)) x) |
(*.f64 (-.f64 1 z) x) |
(-.f64 x (*.f64 z x)) |
(+.f64 (*.f64 -1 (*.f64 z x)) x) |
(*.f64 (-.f64 1 z) x) |
(-.f64 x (*.f64 z x)) |
(+.f64 (*.f64 -1 (*.f64 z x)) x) |
(*.f64 (-.f64 1 z) x) |
(-.f64 x (*.f64 z x)) |
(*.f64 -1 (*.f64 z x)) |
(*.f64 x (neg.f64 z)) |
(*.f64 z (neg.f64 x)) |
(+.f64 (*.f64 -1 (*.f64 z x)) x) |
(*.f64 (-.f64 1 z) x) |
(-.f64 x (*.f64 z x)) |
(+.f64 (*.f64 -1 (*.f64 z x)) x) |
(*.f64 (-.f64 1 z) x) |
(-.f64 x (*.f64 z x)) |
(+.f64 (*.f64 -1 (*.f64 z x)) x) |
(*.f64 (-.f64 1 z) x) |
(-.f64 x (*.f64 z x)) |
(+.f64 x (*.f64 x (neg.f64 z))) |
(*.f64 (-.f64 1 z) x) |
(-.f64 x (*.f64 z x)) |
(+.f64 x (*.f64 (*.f64 x (neg.f64 z)) 1)) |
(*.f64 (-.f64 1 z) x) |
(-.f64 x (*.f64 z x)) |
(+.f64 (-.f64 x (*.f64 x z)) (fma.f64 (neg.f64 z) x (*.f64 x z))) |
(*.f64 (-.f64 1 z) x) |
(-.f64 x (*.f64 z x)) |
(+.f64 (-.f64 x (*.f64 x z)) (fma.f64 (neg.f64 x) z (*.f64 x z))) |
(*.f64 (-.f64 1 z) x) |
(-.f64 x (*.f64 z x)) |
(+.f64 (-.f64 x (*.f64 x z)) (fma.f64 (*.f64 x (neg.f64 z)) 1 (*.f64 x z))) |
(*.f64 (-.f64 1 z) x) |
(-.f64 x (*.f64 z x)) |
(+.f64 (-.f64 x (*.f64 x z)) (fma.f64 (neg.f64 (cbrt.f64 (*.f64 x z))) (pow.f64 (cbrt.f64 (*.f64 x z)) 2) (*.f64 x z))) |
(*.f64 (-.f64 1 z) x) |
(-.f64 x (*.f64 z x)) |
(+.f64 (-.f64 x (*.f64 x z)) (fma.f64 (neg.f64 (sqrt.f64 (*.f64 x z))) (sqrt.f64 (*.f64 x z)) (*.f64 x z))) |
(*.f64 (-.f64 1 z) x) |
(-.f64 x (*.f64 z x)) |
(+.f64 (*.f64 x (neg.f64 z)) x) |
(*.f64 (-.f64 1 z) x) |
(-.f64 x (*.f64 z x)) |
(*.f64 x (-.f64 1 z)) |
(*.f64 (-.f64 1 z) x) |
(-.f64 x (*.f64 z x)) |
(*.f64 (-.f64 x (*.f64 x z)) 1) |
(*.f64 (-.f64 1 z) x) |
(-.f64 x (*.f64 z x)) |
(*.f64 1 (-.f64 x (*.f64 x z))) |
(*.f64 (-.f64 1 z) x) |
(-.f64 x (*.f64 z x)) |
(*.f64 (cbrt.f64 (-.f64 x (*.f64 x z))) (pow.f64 (cbrt.f64 (-.f64 x (*.f64 x z))) 2)) |
(*.f64 (-.f64 1 z) x) |
(-.f64 x (*.f64 z x)) |
(*.f64 (pow.f64 (cbrt.f64 (-.f64 x (*.f64 x z))) 2) (cbrt.f64 (-.f64 x (*.f64 x z)))) |
(*.f64 (-.f64 1 z) x) |
(-.f64 x (*.f64 z x)) |
(*.f64 (sqrt.f64 (-.f64 x (*.f64 x z))) (sqrt.f64 (-.f64 x (*.f64 x z)))) |
(*.f64 (-.f64 1 z) x) |
(-.f64 x (*.f64 z x)) |
(*.f64 (-.f64 (pow.f64 x 3) (pow.f64 (*.f64 x z) 3)) (/.f64 1 (fma.f64 x x (*.f64 (*.f64 x z) (+.f64 x (*.f64 x z)))))) |
(/.f64 (*.f64 (-.f64 (pow.f64 x 3) (pow.f64 (*.f64 z x) 3)) 1) (fma.f64 x x (*.f64 (*.f64 z x) (+.f64 x (*.f64 z x))))) |
(/.f64 (-.f64 (pow.f64 x 3) (pow.f64 (*.f64 z x) 3)) (*.f64 x (+.f64 x (*.f64 z (fma.f64 z x x))))) |
(/.f64 (-.f64 (pow.f64 x 3) (pow.f64 (*.f64 z x) 3)) (*.f64 x (+.f64 x (*.f64 x (fma.f64 z z z))))) |
(*.f64 (-.f64 (*.f64 x x) (pow.f64 (*.f64 x z) 2)) (/.f64 1 (+.f64 x (*.f64 x z)))) |
(*.f64 (-.f64 1 z) x) |
(-.f64 x (*.f64 z x)) |
(*.f64 (+.f64 (sqrt.f64 x) (sqrt.f64 (*.f64 x z))) (-.f64 (sqrt.f64 x) (sqrt.f64 (*.f64 x z)))) |
(*.f64 (-.f64 1 z) x) |
(-.f64 x (*.f64 z x)) |
(/.f64 1 (/.f64 (fma.f64 x x (*.f64 (*.f64 x z) (+.f64 x (*.f64 x z)))) (-.f64 (pow.f64 x 3) (pow.f64 (*.f64 x z) 3)))) |
(/.f64 (*.f64 (-.f64 (pow.f64 x 3) (pow.f64 (*.f64 z x) 3)) 1) (fma.f64 x x (*.f64 (*.f64 z x) (+.f64 x (*.f64 z x))))) |
(/.f64 (-.f64 (pow.f64 x 3) (pow.f64 (*.f64 z x) 3)) (*.f64 x (+.f64 x (*.f64 z (fma.f64 z x x))))) |
(/.f64 (-.f64 (pow.f64 x 3) (pow.f64 (*.f64 z x) 3)) (*.f64 x (+.f64 x (*.f64 x (fma.f64 z z z))))) |
(/.f64 1 (/.f64 (+.f64 x (*.f64 x z)) (-.f64 (*.f64 x x) (pow.f64 (*.f64 x z) 2)))) |
(*.f64 (-.f64 1 z) x) |
(-.f64 x (*.f64 z x)) |
(/.f64 (-.f64 (pow.f64 x 3) (pow.f64 (*.f64 x z) 3)) (fma.f64 x x (*.f64 (*.f64 x z) (+.f64 x (*.f64 x z))))) |
(/.f64 (*.f64 (-.f64 (pow.f64 x 3) (pow.f64 (*.f64 z x) 3)) 1) (fma.f64 x x (*.f64 (*.f64 z x) (+.f64 x (*.f64 z x))))) |
(/.f64 (-.f64 (pow.f64 x 3) (pow.f64 (*.f64 z x) 3)) (*.f64 x (+.f64 x (*.f64 z (fma.f64 z x x))))) |
(/.f64 (-.f64 (pow.f64 x 3) (pow.f64 (*.f64 z x) 3)) (*.f64 x (+.f64 x (*.f64 x (fma.f64 z z z))))) |
(/.f64 (-.f64 (*.f64 x x) (pow.f64 (*.f64 x z) 2)) (+.f64 x (*.f64 x z))) |
(*.f64 (-.f64 1 z) x) |
(-.f64 x (*.f64 z x)) |
(/.f64 (neg.f64 (-.f64 (pow.f64 x 3) (pow.f64 (*.f64 x z) 3))) (neg.f64 (fma.f64 x x (*.f64 (*.f64 x z) (+.f64 x (*.f64 x z)))))) |
(/.f64 (*.f64 (-.f64 (pow.f64 x 3) (pow.f64 (*.f64 z x) 3)) 1) (fma.f64 x x (*.f64 (*.f64 z x) (+.f64 x (*.f64 z x))))) |
(/.f64 (-.f64 (pow.f64 x 3) (pow.f64 (*.f64 z x) 3)) (*.f64 x (+.f64 x (*.f64 z (fma.f64 z x x))))) |
(/.f64 (-.f64 (pow.f64 x 3) (pow.f64 (*.f64 z x) 3)) (*.f64 x (+.f64 x (*.f64 x (fma.f64 z z z))))) |
(/.f64 (neg.f64 (-.f64 (*.f64 x x) (pow.f64 (*.f64 x z) 2))) (neg.f64 (+.f64 x (*.f64 x z)))) |
(*.f64 (-.f64 1 z) x) |
(-.f64 x (*.f64 z x)) |
(/.f64 (+.f64 (pow.f64 x 3) (pow.f64 (*.f64 x (neg.f64 z)) 3)) (+.f64 (*.f64 x x) (-.f64 (*.f64 (*.f64 x (neg.f64 z)) (*.f64 x (neg.f64 z))) (*.f64 x (*.f64 x (neg.f64 z)))))) |
(/.f64 (*.f64 (-.f64 (pow.f64 x 3) (pow.f64 (*.f64 z x) 3)) 1) (fma.f64 x x (*.f64 (*.f64 z x) (+.f64 x (*.f64 z x))))) |
(/.f64 (-.f64 (pow.f64 x 3) (pow.f64 (*.f64 z x) 3)) (*.f64 x (+.f64 x (*.f64 z (fma.f64 z x x))))) |
(/.f64 (-.f64 (pow.f64 x 3) (pow.f64 (*.f64 z x) 3)) (*.f64 x (+.f64 x (*.f64 x (fma.f64 z z z))))) |
(/.f64 (-.f64 (*.f64 x x) (*.f64 (*.f64 x (neg.f64 z)) (*.f64 x (neg.f64 z)))) (-.f64 x (*.f64 x (neg.f64 z)))) |
(*.f64 (-.f64 1 z) x) |
(-.f64 x (*.f64 z x)) |
(pow.f64 (-.f64 x (*.f64 x z)) 1) |
(*.f64 (-.f64 1 z) x) |
(-.f64 x (*.f64 z x)) |
(pow.f64 (cbrt.f64 (-.f64 x (*.f64 x z))) 3) |
(*.f64 (-.f64 1 z) x) |
(-.f64 x (*.f64 z x)) |
(pow.f64 (pow.f64 (-.f64 x (*.f64 x z)) 3) 1/3) |
(*.f64 (-.f64 1 z) x) |
(-.f64 x (*.f64 z x)) |
(pow.f64 (sqrt.f64 (-.f64 x (*.f64 x z))) 2) |
(*.f64 (-.f64 1 z) x) |
(-.f64 x (*.f64 z x)) |
(sqrt.f64 (pow.f64 (-.f64 x (*.f64 x z)) 2)) |
(*.f64 (-.f64 1 z) x) |
(-.f64 x (*.f64 z x)) |
(log.f64 (exp.f64 (-.f64 x (*.f64 x z)))) |
(*.f64 (-.f64 1 z) x) |
(-.f64 x (*.f64 z x)) |
(cbrt.f64 (pow.f64 (-.f64 x (*.f64 x z)) 3)) |
(*.f64 (-.f64 1 z) x) |
(-.f64 x (*.f64 z x)) |
(expm1.f64 (log1p.f64 (-.f64 x (*.f64 x z)))) |
(*.f64 (-.f64 1 z) x) |
(-.f64 x (*.f64 z x)) |
(exp.f64 (log.f64 (-.f64 x (*.f64 x z)))) |
(*.f64 (-.f64 1 z) x) |
(-.f64 x (*.f64 z x)) |
(log1p.f64 (expm1.f64 (-.f64 x (*.f64 x z)))) |
(*.f64 (-.f64 1 z) x) |
(-.f64 x (*.f64 z x)) |
(fma.f64 1 x (*.f64 x (neg.f64 z))) |
(*.f64 (-.f64 1 z) x) |
(-.f64 x (*.f64 z x)) |
(fma.f64 (pow.f64 (cbrt.f64 x) 2) (cbrt.f64 x) (*.f64 x (neg.f64 z))) |
(*.f64 (-.f64 1 z) x) |
(-.f64 x (*.f64 z x)) |
(fma.f64 (sqrt.f64 x) (sqrt.f64 x) (*.f64 x (neg.f64 z))) |
(*.f64 (-.f64 1 z) x) |
(-.f64 x (*.f64 z x)) |
Compiled 597 to 197 computations (67% saved)
5 alts after pruning (1 fresh and 4 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 49 | 0 | 49 |
| Fresh | 0 | 1 | 1 |
| Picked | 0 | 2 | 2 |
| Done | 0 | 2 | 2 |
| Total | 49 | 5 | 54 |
| Status | Accuracy | Program |
|---|---|---|
| ✓ | 62.6% | (-.f64 x (*.f64 x z)) |
| ✓ | 100.0% | (+.f64 x (*.f64 (-.f64 y x) z)) |
| ✓ | 73.7% | (+.f64 x (*.f64 z y)) |
| ✓ | 28.8% | (*.f64 (neg.f64 z) x) |
| 36.5% | x | |
| ✓ | 62.6% | (-.f64 x (*.f64 x z)) |
| ✓ | 100.0% | (+.f64 x (*.f64 (-.f64 y x) z)) |
| ✓ | 73.7% | (+.f64 x (*.f64 z y)) |
| ✓ | 28.8% | (*.f64 (neg.f64 z) x) |
| 36.5% | x |
Compiled 74 to 48 computations (35.1% saved)
Compiled 3 to 3 computations (0% saved)
5 alts after pruning (1 fresh and 4 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 0 | 0 | 0 |
| Fresh | 0 | 1 | 1 |
| Picked | 0 | 0 | 0 |
| Done | 0 | 4 | 4 |
| Total | 0 | 5 | 5 |
| Status | Accuracy | Program |
|---|---|---|
| ✓ | 62.6% | (-.f64 x (*.f64 x z)) |
| ✓ | 100.0% | (+.f64 x (*.f64 (-.f64 y x) z)) |
| ✓ | 73.7% | (+.f64 x (*.f64 z y)) |
| ✓ | 28.8% | (*.f64 (neg.f64 z) x) |
| 36.5% | x |
Compiled 68 to 39 computations (42.6% saved)
| Inputs |
|---|
x |
(*.f64 (neg.f64 z) x) |
(+.f64 x (*.f64 z y)) |
(-.f64 x (*.f64 x z)) |
(+.f64 x (*.f64 z (neg.f64 x))) |
(+.f64 x (*.f64 (-.f64 y x) z)) |
| Outputs |
|---|
(+.f64 x (*.f64 (-.f64 y x) z)) |
4 calls:
| 6.0ms | y |
| 4.0ms | z |
| 4.0ms | x |
| 4.0ms | (+.f64 x (*.f64 (-.f64 y x) z)) |
| Accuracy | Segments | Branch |
|---|---|---|
| 100.0% | 1 | x |
| 100.0% | 1 | y |
| 100.0% | 1 | z |
| 100.0% | 1 | (+.f64 x (*.f64 (-.f64 y x) z)) |
Compiled 53 to 30 computations (43.4% saved)
| Inputs |
|---|
x |
(*.f64 (neg.f64 z) x) |
(+.f64 x (*.f64 z y)) |
(-.f64 x (*.f64 x z)) |
(+.f64 x (*.f64 z (neg.f64 x))) |
| Outputs |
|---|
(+.f64 x (*.f64 z y)) |
(-.f64 x (*.f64 x z)) |
(+.f64 x (*.f64 z y)) |
3 calls:
| 27.0ms | z |
| 19.0ms | x |
| 13.0ms | y |
| Accuracy | Segments | Branch |
|---|---|---|
| 86.4% | 3 | x |
| 90.6% | 3 | y |
| 84.8% | 5 | z |
Compiled 36 to 21 computations (41.7% saved)
| Inputs |
|---|
x |
(*.f64 (neg.f64 z) x) |
(+.f64 x (*.f64 z y)) |
| Outputs |
|---|
(*.f64 (neg.f64 z) x) |
(+.f64 x (*.f64 z y)) |
(*.f64 (neg.f64 z) x) |
(+.f64 x (*.f64 z y)) |
(*.f64 (neg.f64 z) x) |
3 calls:
| 19.0ms | z |
| 13.0ms | y |
| 3.0ms | x |
| Accuracy | Segments | Branch |
|---|---|---|
| 84.8% | 5 | z |
| 73.7% | 1 | x |
| 76.5% | 3 | y |
Compiled 25 to 16 computations (36% saved)
| Inputs |
|---|
x |
(*.f64 (neg.f64 z) x) |
| Outputs |
|---|
(*.f64 (neg.f64 z) x) |
x |
(*.f64 (neg.f64 z) x) |
3 calls:
| 20.0ms | x |
| 13.0ms | y |
| 8.0ms | z |
| Accuracy | Segments | Branch |
|---|---|---|
| 41.5% | 5 | y |
| 40.7% | 5 | x |
| 62.0% | 3 | z |
Compiled 20 to 14 computations (30% saved)
Total 0.0b remaining (0%)
Threshold costs 0b (0%)
| Inputs |
|---|
x |
| Outputs |
|---|
x |
1 calls:
| 3.0ms | z |
| Accuracy | Segments | Branch |
|---|---|---|
| 36.5% | 1 | z |
Compiled 8 to 6 computations (25% saved)
| 2× | binary-search |
| 1× | narrow-enough |
| 1× | narrow-enough |
| Time | Left | Right |
|---|---|---|
| 13.0ms | 1.1116036011319604e-8 | 5.577042428770391e-6 |
| 15.0ms | -1.3705236929046165e-24 | -1.7650998441410518e-32 |
| 22.0ms | 245× | body | 256 | valid |
| 2.0ms | 27× | body | 256 | infinite |
Compiled 322 to 215 computations (33.2% saved)
| 4× | binary-search |
| 1× | narrow-enough |
| 1× | narrow-enough |
| 1× | narrow-enough |
| 1× | narrow-enough |
| Time | Left | Right |
|---|---|---|
| 16.0ms | 3.7202581927039653e+210 | 2.078052882401934e+223 |
| 15.0ms | 5.76516570377738e+134 | 1.3967139421524659e+141 |
| 8.0ms | 2.0220319113703714e+60 | 4.1493957672929316e+60 |
| 6.0ms | -5.995133541965115e+20 | -3.7997071401758445e+20 |
| 25.0ms | 287× | body | 256 | valid |
| 15.0ms | 161× | body | 256 | infinite |
Compiled 492 to 347 computations (29.5% saved)
| 2× | binary-search |
| 1× | narrow-enough |
| 1× | narrow-enough |
| Time | Left | Right |
|---|---|---|
| 9.0ms | 291189.23362532334 | 3599189.69533744 |
| 18.0ms | -17.283599097924785 | -5.84946245475104e-12 |
| 24.0ms | 256× | body | 256 | valid |
Compiled 224 to 171 computations (23.7% saved)
| 1× | egg-herbie |
| 14× | +-commutative |
| 14× | *-commutative |
| 10× | sub-neg |
| 10× | if-if-or-not |
| 8× | not-or |
Useful iterations: 3 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 42 | 199 |
| 1 | 70 | 193 |
| 2 | 82 | 189 |
| 3 | 93 | 185 |
| 4 | 99 | 185 |
| 5 | 103 | 185 |
| 6 | 104 | 185 |
| 7 | 105 | 185 |
| 1× | fuel |
| 1× | saturated |
| Inputs |
|---|
(+.f64 x (*.f64 (-.f64 y x) z)) |
(if (<=.f64 y -6565339386447415/713623846352979940529142984724747568191373312) (+.f64 x (*.f64 z y)) (if (<=.f64 y 1851167661284901/75557863725914323419136) (-.f64 x (*.f64 x z)) (+.f64 x (*.f64 z y)))) |
(if (<=.f64 z -560000000000000000000) (*.f64 (neg.f64 z) x) (if (<=.f64 z 3900000000000000302146520105674631951558304850275597018988544) (+.f64 x (*.f64 z y)) (if (<=.f64 z 550000000000000018062859369062709343442856911497786432531772384442310853794333397549200723595250076976172227631377339568256669848816320512) (*.f64 (neg.f64 z) x) (if (<=.f64 z 1849999999999999963563216716663026788660325275339416241196164420438250673583743942383899216369188804444568857304120101348828307771192260410567781727877194872068564873217770985271841953664820585938619267073146093568) (+.f64 x (*.f64 z y)) (*.f64 (neg.f64 z) x))))) |
(if (<=.f64 z -1) (*.f64 (neg.f64 z) x) (if (<=.f64 z 300000) x (*.f64 (neg.f64 z) x))) |
x |
| Outputs |
|---|
(+.f64 x (*.f64 (-.f64 y x) z)) |
(if (<=.f64 y -6565339386447415/713623846352979940529142984724747568191373312) (+.f64 x (*.f64 z y)) (if (<=.f64 y 1851167661284901/75557863725914323419136) (-.f64 x (*.f64 x z)) (+.f64 x (*.f64 z y)))) |
(if (or (<=.f64 y -6565339386447415/713623846352979940529142984724747568191373312) (not (<=.f64 y 1851167661284901/75557863725914323419136))) (+.f64 x (*.f64 y z)) (-.f64 x (*.f64 x z))) |
(if (<=.f64 z -560000000000000000000) (*.f64 (neg.f64 z) x) (if (<=.f64 z 3900000000000000302146520105674631951558304850275597018988544) (+.f64 x (*.f64 z y)) (if (<=.f64 z 550000000000000018062859369062709343442856911497786432531772384442310853794333397549200723595250076976172227631377339568256669848816320512) (*.f64 (neg.f64 z) x) (if (<=.f64 z 1849999999999999963563216716663026788660325275339416241196164420438250673583743942383899216369188804444568857304120101348828307771192260410567781727877194872068564873217770985271841953664820585938619267073146093568) (+.f64 x (*.f64 z y)) (*.f64 (neg.f64 z) x))))) |
(if (<=.f64 z -560000000000000000000) (*.f64 x (neg.f64 z)) (if (<=.f64 z 3900000000000000302146520105674631951558304850275597018988544) (+.f64 x (*.f64 y z)) (if (or (<=.f64 z 550000000000000018062859369062709343442856911497786432531772384442310853794333397549200723595250076976172227631377339568256669848816320512) (not (<=.f64 z 1849999999999999963563216716663026788660325275339416241196164420438250673583743942383899216369188804444568857304120101348828307771192260410567781727877194872068564873217770985271841953664820585938619267073146093568))) (*.f64 x (neg.f64 z)) (+.f64 x (*.f64 y z))))) |
(if (<=.f64 z -560000000000000000000) (*.f64 x (neg.f64 z)) (if (or (<=.f64 z 3900000000000000302146520105674631951558304850275597018988544) (not (or (<=.f64 z 550000000000000018062859369062709343442856911497786432531772384442310853794333397549200723595250076976172227631377339568256669848816320512) (not (<=.f64 z 1849999999999999963563216716663026788660325275339416241196164420438250673583743942383899216369188804444568857304120101348828307771192260410567781727877194872068564873217770985271841953664820585938619267073146093568))))) (+.f64 x (*.f64 y z)) (*.f64 x (neg.f64 z)))) |
(if (or (<=.f64 z -560000000000000000000) (not (or (<=.f64 z 3900000000000000302146520105674631951558304850275597018988544) (not (or (<=.f64 z 550000000000000018062859369062709343442856911497786432531772384442310853794333397549200723595250076976172227631377339568256669848816320512) (not (<=.f64 z 1849999999999999963563216716663026788660325275339416241196164420438250673583743942383899216369188804444568857304120101348828307771192260410567781727877194872068564873217770985271841953664820585938619267073146093568))))))) (*.f64 x (neg.f64 z)) (+.f64 x (*.f64 y z))) |
(if (or (<=.f64 z -560000000000000000000) (not (or (<=.f64 z 3900000000000000302146520105674631951558304850275597018988544) (and (not (<=.f64 z 550000000000000018062859369062709343442856911497786432531772384442310853794333397549200723595250076976172227631377339568256669848816320512)) (<=.f64 z 1849999999999999963563216716663026788660325275339416241196164420438250673583743942383899216369188804444568857304120101348828307771192260410567781727877194872068564873217770985271841953664820585938619267073146093568))))) (*.f64 x (neg.f64 z)) (+.f64 x (*.f64 y z))) |
(if (or (<=.f64 z -560000000000000000000) (and (not (<=.f64 z 3900000000000000302146520105674631951558304850275597018988544)) (or (<=.f64 z 550000000000000018062859369062709343442856911497786432531772384442310853794333397549200723595250076976172227631377339568256669848816320512) (not (<=.f64 z 1849999999999999963563216716663026788660325275339416241196164420438250673583743942383899216369188804444568857304120101348828307771192260410567781727877194872068564873217770985271841953664820585938619267073146093568))))) (*.f64 x (neg.f64 z)) (+.f64 x (*.f64 y z))) |
(if (<=.f64 z -1) (*.f64 (neg.f64 z) x) (if (<=.f64 z 300000) x (*.f64 (neg.f64 z) x))) |
(if (or (<=.f64 z -1) (not (<=.f64 z 300000))) (*.f64 x (neg.f64 z)) x) |
x |
Compiled 83 to 56 computations (32.5% saved)
| 1586× | pow1 |
| 1464× | add-exp-log |
| 1462× | log1p-expm1-u |
| 1462× | expm1-log1p-u |
| 1432× | add-log-exp |
Useful iterations: 1 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 68 | 611 |
| 1 | 166 | 611 |
| 2 | 516 | 611 |
| 3 | 3056 | 611 |
| 4 | 6374 | 611 |
| 0 | 99 | 1464 |
| 1 | 245 | 1220 |
| 2 | 926 | 1048 |
| 3 | 5232 | 1048 |
| 0 | 68 | 611 |
| 1 | 166 | 611 |
| 2 | 516 | 611 |
| 3 | 3056 | 611 |
| 4 | 6374 | 611 |
| 0 | 8 | 17 |
| 1 | 172 | 9 |
| 2 | 2454 | 9 |
| 1× | node limit |
| 1× | node limit |
| 1× | node limit |
| 1× | node limit |
Compiled 77 to 42 computations (45.5% saved)
Compiled 162 to 92 computations (43.2% saved)
Loading profile data...