Time bar (total: 7.5s)
| 1× | search |
| Probability | Valid | Unknown | Precondition | Infinite | Domain | Can't | Iter |
|---|---|---|---|---|---|---|---|
| 0% | 0% | 99.9% | 0.1% | 0% | 0% | 0% | 0 |
| 0% | 0% | 99.9% | 0.1% | 0% | 0% | 0% | 1 |
| 0% | 0% | 99.9% | 0.1% | 0% | 0% | 0% | 2 |
| 0% | 0% | 99.9% | 0.1% | 0% | 0% | 0% | 3 |
| 0% | 0% | 99.9% | 0.1% | 0% | 0% | 0% | 4 |
| 0% | 0% | 99.9% | 0.1% | 0% | 0% | 0% | 5 |
| 0% | 0% | 99.9% | 0.1% | 0% | 0% | 0% | 6 |
| 12.5% | 12.5% | 87.4% | 0.1% | 0% | 0% | 0% | 7 |
| 18.8% | 18.7% | 81.1% | 0.1% | 0% | 0% | 0% | 8 |
| 25.8% | 25% | 71.8% | 0.1% | 3.1% | 0% | 0% | 9 |
| 36.4% | 34.3% | 60.1% | 0.1% | 5.5% | 0% | 0% | 10 |
| 44.5% | 41.3% | 51.5% | 0.1% | 7% | 0% | 0% | 11 |
| 51.5% | 46.8% | 44.1% | 0.1% | 9% | 0% | 0% | 12 |
Compiled 13 to 9 computations (30.8% saved)
| 1.7s | 8256× | body | 256 | valid |
| 645.0ms | 1212× | body | 256 | infinite |
| 2× | egg-herbie |
| 14× | rational_best-simplify-2 |
| 8× | rational_best-simplify-1 |
| 2× | trig-simplify-13 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 21 | 100 |
| 1 | 33 | 100 |
| 0 | 3 | 3 |
| 1× | saturated |
| 1× | saturated |
| Inputs |
|---|
0 |
1 |
2 |
| Outputs |
|---|
0 |
1 |
2 |
| Inputs |
|---|
(+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z)) |
(+.f64 (*.f64 y x) (*.f64 (-.f64 1 y) z)) |
(+.f64 (*.f64 z y) (*.f64 (-.f64 1 z) x)) |
(+.f64 (*.f64 x z) (*.f64 (-.f64 1 x) y)) |
| Outputs |
|---|
(+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z)) |
(+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y)) |
(+.f64 (*.f64 y x) (*.f64 (-.f64 1 y) z)) |
(+.f64 (*.f64 x y) (*.f64 z (-.f64 1 y))) |
(+.f64 (*.f64 z y) (*.f64 (-.f64 1 z) x)) |
(+.f64 (*.f64 y z) (*.f64 x (-.f64 1 z))) |
(+.f64 (*.f64 x z) (*.f64 (-.f64 1 x) y)) |
(+.f64 (*.f64 x z) (*.f64 y (-.f64 1 x))) |
Compiled 15 to 11 computations (26.7% saved)
| 1× | egg-herbie |
| 4× | rational_best-simplify-2 |
| 2× | rational_best-simplify-1 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 10 | 25 |
| 1 | 13 | 25 |
| 1× | saturated |
| Inputs |
|---|
(+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z)) |
| Outputs |
|---|
(+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z)) |
Compiled 12 to 8 computations (33.3% saved)
2 alts after pruning (2 fresh and 0 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 0 | 1 | 1 |
| Fresh | 0 | 1 | 1 |
| Picked | 0 | 0 | 0 |
| Done | 0 | 0 | 0 |
| Total | 0 | 2 | 2 |
| Status | Error | Program |
|---|---|---|
| ▶ | 0.0b | (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z)) |
Compiled 12 to 8 computations (33.3% saved)
Found 2 expressions with local error:
| New | Error | Program |
|---|---|---|
| ✓ | 0.0b | (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z)) |
| ✓ | 0.0b | (*.f64 (-.f64 1 x) z) |
Compiled 27 to 14 computations (48.1% saved)
15 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 0.0ms | z | @ | -inf | (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z)) |
| 0.0ms | z | @ | -inf | (*.f64 (-.f64 1 x) z) |
| 0.0ms | x | @ | inf | (*.f64 (-.f64 1 x) z) |
| 0.0ms | y | @ | 0 | (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z)) |
| 0.0ms | z | @ | 0 | (*.f64 (-.f64 1 x) z) |
| 1× | batch-egg-rewrite |
| 994× | rational_best-simplify-57 |
| 756× | rational_best-simplify-80 |
| 666× | rational_best-simplify-43 |
| 594× | rational_best-simplify-44 |
| 522× | rational_best-simplify-78 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 10 | 38 |
| 1 | 82 | 38 |
| 2 | 264 | 38 |
| 3 | 1115 | 38 |
| 4 | 4956 | 38 |
| 1× | node limit |
| Inputs |
|---|
(*.f64 (-.f64 1 x) z) |
(+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z)) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (-.f64 1 x) z) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (-.f64 1 x) z))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (-.f64 1 x) z) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (neg.f64 (*.f64 (-.f64 1 x) z)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 1 x) z) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 1 x) z) (/.f64 (*.f64 (-.f64 1 x) z) (*.f64 (-.f64 1 x) z)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 1 x) (+.f64 z z)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (*.f64 (-.f64 1 x) (+.f64 z z))) -2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (-.f64 1 x) z) 1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (neg.f64 (*.f64 (-.f64 1 x) z))))))) |
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (neg.f64 (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y)) (/.f64 (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y)) (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y)) (*.f64 (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y)) (/.f64 1 (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y)) (/.f64 1 (/.f64 (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y)) (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y)) (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y))) (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y))) (*.f64 (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y)) (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y)) (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y))) (/.f64 1 (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y)) (/.f64 1 (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y)))) (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (/.f64 (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y)) (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y)))) (/.f64 (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y)) (/.f64 (/.f64 (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y)) (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y))) (/.f64 (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y)) (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (/.f64 1 (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y))) (*.f64 (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y)) (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y)))) (*.f64 (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y)) (*.f64 (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y)) (*.f64 (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y)) (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (/.f64 (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y)) (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y))) (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y))) (*.f64 (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y)) (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y)) (/.f64 1 (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y)))) (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y))) (*.f64 (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y)) (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (/.f64 1 (/.f64 (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y)) (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y)))) (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y))) (*.f64 (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y)) (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y)) (/.f64 (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y)) (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y)) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (*.f64 (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y)) 2)) -2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (neg.f64 (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y)))))))) |
| 1× | egg-herbie |
| 1072× | rational_best-simplify-80 |
| 1024× | rational_best-simplify-82 |
| 834× | rational_best-simplify-78 |
| 730× | rational_best-simplify-2 |
| 628× | rational_best-simplify-83 |
Useful iterations: 1 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 84 | 1832 |
| 1 | 162 | 1780 |
| 2 | 506 | 1780 |
| 3 | 1198 | 1780 |
| 4 | 2566 | 1780 |
| 5 | 4728 | 1780 |
| 1× | node limit |
| Inputs |
|---|
z |
(+.f64 (*.f64 -1 (*.f64 z x)) z) |
(+.f64 (*.f64 -1 (*.f64 z x)) z) |
(+.f64 (*.f64 -1 (*.f64 z x)) z) |
(*.f64 -1 (*.f64 z x)) |
(+.f64 z (*.f64 -1 (*.f64 z x))) |
(+.f64 z (*.f64 -1 (*.f64 z x))) |
(+.f64 z (*.f64 -1 (*.f64 z x))) |
(*.f64 -1 (*.f64 z x)) |
(+.f64 z (*.f64 -1 (*.f64 z x))) |
(+.f64 z (*.f64 -1 (*.f64 z x))) |
(+.f64 z (*.f64 -1 (*.f64 z x))) |
(*.f64 z (-.f64 1 x)) |
(*.f64 z (-.f64 1 x)) |
(*.f64 z (-.f64 1 x)) |
(*.f64 z (-.f64 1 x)) |
(*.f64 z (-.f64 1 x)) |
(*.f64 z (-.f64 1 x)) |
(*.f64 z (-.f64 1 x)) |
(*.f64 z (-.f64 1 x)) |
(*.f64 z (-.f64 1 x)) |
(*.f64 z (-.f64 1 x)) |
(*.f64 z (-.f64 1 x)) |
(*.f64 z (-.f64 1 x)) |
z |
(+.f64 (*.f64 (+.f64 (*.f64 -1 z) y) x) z) |
(+.f64 (*.f64 (+.f64 (*.f64 -1 z) y) x) z) |
(+.f64 (*.f64 (+.f64 (*.f64 -1 z) y) x) z) |
(*.f64 (+.f64 (*.f64 -1 z) y) x) |
(+.f64 (*.f64 (+.f64 (*.f64 -1 z) y) x) z) |
(+.f64 (*.f64 (+.f64 (*.f64 -1 z) y) x) z) |
(+.f64 (*.f64 (+.f64 (*.f64 -1 z) y) x) z) |
(*.f64 -1 (*.f64 x (+.f64 z (*.f64 -1 y)))) |
(+.f64 (*.f64 -1 (*.f64 x (+.f64 z (*.f64 -1 y)))) z) |
(+.f64 (*.f64 -1 (*.f64 x (+.f64 z (*.f64 -1 y)))) z) |
(+.f64 (*.f64 -1 (*.f64 x (+.f64 z (*.f64 -1 y)))) z) |
(*.f64 z (-.f64 1 x)) |
(+.f64 (*.f64 y x) (*.f64 z (-.f64 1 x))) |
(+.f64 (*.f64 y x) (*.f64 z (-.f64 1 x))) |
(+.f64 (*.f64 y x) (*.f64 z (-.f64 1 x))) |
(*.f64 y x) |
(+.f64 (*.f64 y x) (*.f64 z (-.f64 1 x))) |
(+.f64 (*.f64 y x) (*.f64 z (-.f64 1 x))) |
(+.f64 (*.f64 y x) (*.f64 z (-.f64 1 x))) |
(*.f64 y x) |
(+.f64 (*.f64 y x) (*.f64 z (-.f64 1 x))) |
(+.f64 (*.f64 y x) (*.f64 z (-.f64 1 x))) |
(+.f64 (*.f64 y x) (*.f64 z (-.f64 1 x))) |
(*.f64 y x) |
(+.f64 (*.f64 y x) (*.f64 z (-.f64 1 x))) |
(+.f64 (*.f64 y x) (*.f64 z (-.f64 1 x))) |
(+.f64 (*.f64 y x) (*.f64 z (-.f64 1 x))) |
(*.f64 z (-.f64 1 x)) |
(+.f64 (*.f64 y x) (*.f64 z (-.f64 1 x))) |
(+.f64 (*.f64 y x) (*.f64 z (-.f64 1 x))) |
(+.f64 (*.f64 y x) (*.f64 z (-.f64 1 x))) |
(*.f64 z (-.f64 1 x)) |
(+.f64 (*.f64 y x) (*.f64 z (-.f64 1 x))) |
(+.f64 (*.f64 y x) (*.f64 z (-.f64 1 x))) |
(+.f64 (*.f64 y x) (*.f64 z (-.f64 1 x))) |
(+.f64 (*.f64 (-.f64 1 x) z) 0) |
(+.f64 0 (*.f64 (-.f64 1 x) z)) |
(-.f64 (*.f64 (-.f64 1 x) z) 0) |
(-.f64 0 (neg.f64 (*.f64 (-.f64 1 x) z))) |
(/.f64 (*.f64 (-.f64 1 x) z) 1) |
(/.f64 (*.f64 (-.f64 1 x) z) (/.f64 (*.f64 (-.f64 1 x) z) (*.f64 (-.f64 1 x) z))) |
(/.f64 (*.f64 (-.f64 1 x) (+.f64 z z)) 2) |
(/.f64 (neg.f64 (*.f64 (-.f64 1 x) (+.f64 z z))) -2) |
(pow.f64 (*.f64 (-.f64 1 x) z) 1) |
(neg.f64 (neg.f64 (*.f64 (-.f64 1 x) z))) |
(-.f64 (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y)) 0) |
(-.f64 0 (neg.f64 (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y)))) |
(*.f64 1 (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y))) |
(*.f64 (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y)) 1) |
(*.f64 (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y)) (/.f64 (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y)) (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y)))) |
(*.f64 (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y)) (*.f64 (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y)) (/.f64 1 (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y))))) |
(*.f64 (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y)) (/.f64 1 (/.f64 (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y)) (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y))))) |
(*.f64 (/.f64 (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y)) (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y))) (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y))) |
(*.f64 (/.f64 1 (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y))) (*.f64 (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y)) (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y)))) |
(*.f64 (*.f64 (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y)) (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y))) (/.f64 1 (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y)))) |
(*.f64 (*.f64 (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y)) (/.f64 1 (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y)))) (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y))) |
(*.f64 (/.f64 1 (/.f64 (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y)) (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y)))) (/.f64 (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y)) (/.f64 (/.f64 (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y)) (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y))) (/.f64 (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y)) (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y)))))) |
(*.f64 (/.f64 (/.f64 1 (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y))) (*.f64 (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y)) (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y)))) (*.f64 (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y)) (*.f64 (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y)) (*.f64 (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y)) (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y)))))) |
(*.f64 (/.f64 (/.f64 (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y)) (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y))) (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y))) (*.f64 (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y)) (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y)))) |
(*.f64 (/.f64 (*.f64 (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y)) (/.f64 1 (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y)))) (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y))) (*.f64 (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y)) (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y)))) |
(*.f64 (/.f64 (/.f64 1 (/.f64 (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y)) (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y)))) (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y))) (*.f64 (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y)) (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y)))) |
(/.f64 (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y)) 1) |
(/.f64 (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y)) (/.f64 (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y)) (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y)))) |
(/.f64 (*.f64 (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y)) 2) 2) |
(/.f64 (neg.f64 (*.f64 (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y)) 2)) -2) |
(pow.f64 (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y)) 1) |
(neg.f64 (neg.f64 (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y)))) |
| Outputs |
|---|
z |
(+.f64 (*.f64 -1 (*.f64 z x)) z) |
(+.f64 z (*.f64 -1 (*.f64 z x))) |
(+.f64 z (*.f64 x (neg.f64 z))) |
(+.f64 z (*.f64 z (neg.f64 x))) |
(+.f64 (*.f64 -1 (*.f64 z x)) z) |
(+.f64 z (*.f64 -1 (*.f64 z x))) |
(+.f64 z (*.f64 x (neg.f64 z))) |
(+.f64 z (*.f64 z (neg.f64 x))) |
(+.f64 (*.f64 -1 (*.f64 z x)) z) |
(+.f64 z (*.f64 -1 (*.f64 z x))) |
(+.f64 z (*.f64 x (neg.f64 z))) |
(+.f64 z (*.f64 z (neg.f64 x))) |
(*.f64 -1 (*.f64 z x)) |
(*.f64 x (neg.f64 z)) |
(*.f64 z (neg.f64 x)) |
(+.f64 z (*.f64 -1 (*.f64 z x))) |
(+.f64 z (*.f64 x (neg.f64 z))) |
(+.f64 z (*.f64 z (neg.f64 x))) |
(+.f64 z (*.f64 -1 (*.f64 z x))) |
(+.f64 z (*.f64 x (neg.f64 z))) |
(+.f64 z (*.f64 z (neg.f64 x))) |
(+.f64 z (*.f64 -1 (*.f64 z x))) |
(+.f64 z (*.f64 x (neg.f64 z))) |
(+.f64 z (*.f64 z (neg.f64 x))) |
(*.f64 -1 (*.f64 z x)) |
(*.f64 x (neg.f64 z)) |
(*.f64 z (neg.f64 x)) |
(+.f64 z (*.f64 -1 (*.f64 z x))) |
(+.f64 z (*.f64 x (neg.f64 z))) |
(+.f64 z (*.f64 z (neg.f64 x))) |
(+.f64 z (*.f64 -1 (*.f64 z x))) |
(+.f64 z (*.f64 x (neg.f64 z))) |
(+.f64 z (*.f64 z (neg.f64 x))) |
(+.f64 z (*.f64 -1 (*.f64 z x))) |
(+.f64 z (*.f64 x (neg.f64 z))) |
(+.f64 z (*.f64 z (neg.f64 x))) |
(*.f64 z (-.f64 1 x)) |
(*.f64 z (-.f64 1 x)) |
(*.f64 z (-.f64 1 x)) |
(*.f64 z (-.f64 1 x)) |
(*.f64 z (-.f64 1 x)) |
(*.f64 z (-.f64 1 x)) |
(*.f64 z (-.f64 1 x)) |
(*.f64 z (-.f64 1 x)) |
(*.f64 z (-.f64 1 x)) |
(*.f64 z (-.f64 1 x)) |
(*.f64 z (-.f64 1 x)) |
(*.f64 z (-.f64 1 x)) |
z |
(+.f64 (*.f64 (+.f64 (*.f64 -1 z) y) x) z) |
(+.f64 z (*.f64 x (+.f64 (*.f64 z -1) y))) |
(+.f64 z (*.f64 x (+.f64 (neg.f64 z) y))) |
(+.f64 (*.f64 (+.f64 (*.f64 -1 z) y) x) z) |
(+.f64 z (*.f64 x (+.f64 (*.f64 z -1) y))) |
(+.f64 z (*.f64 x (+.f64 (neg.f64 z) y))) |
(+.f64 (*.f64 (+.f64 (*.f64 -1 z) y) x) z) |
(+.f64 z (*.f64 x (+.f64 (*.f64 z -1) y))) |
(+.f64 z (*.f64 x (+.f64 (neg.f64 z) y))) |
(*.f64 (+.f64 (*.f64 -1 z) y) x) |
(*.f64 x (+.f64 (*.f64 z -1) y)) |
(*.f64 x (+.f64 (neg.f64 z) y)) |
(+.f64 (*.f64 (+.f64 (*.f64 -1 z) y) x) z) |
(+.f64 z (*.f64 x (+.f64 (*.f64 z -1) y))) |
(+.f64 z (*.f64 x (+.f64 (neg.f64 z) y))) |
(+.f64 (*.f64 (+.f64 (*.f64 -1 z) y) x) z) |
(+.f64 z (*.f64 x (+.f64 (*.f64 z -1) y))) |
(+.f64 z (*.f64 x (+.f64 (neg.f64 z) y))) |
(+.f64 (*.f64 (+.f64 (*.f64 -1 z) y) x) z) |
(+.f64 z (*.f64 x (+.f64 (*.f64 z -1) y))) |
(+.f64 z (*.f64 x (+.f64 (neg.f64 z) y))) |
(*.f64 -1 (*.f64 x (+.f64 z (*.f64 -1 y)))) |
(neg.f64 (*.f64 x (+.f64 z (neg.f64 y)))) |
(*.f64 x (neg.f64 (+.f64 z (neg.f64 y)))) |
(*.f64 (+.f64 z (neg.f64 y)) (neg.f64 x)) |
(+.f64 (*.f64 -1 (*.f64 x (+.f64 z (*.f64 -1 y)))) z) |
(+.f64 z (*.f64 -1 (*.f64 x (+.f64 z (*.f64 -1 y))))) |
(+.f64 z (neg.f64 (*.f64 x (+.f64 z (neg.f64 y))))) |
(+.f64 z (*.f64 x (neg.f64 (+.f64 z (neg.f64 y))))) |
(+.f64 z (*.f64 (+.f64 z (neg.f64 y)) (neg.f64 x))) |
(+.f64 (*.f64 -1 (*.f64 x (+.f64 z (*.f64 -1 y)))) z) |
(+.f64 z (*.f64 -1 (*.f64 x (+.f64 z (*.f64 -1 y))))) |
(+.f64 z (neg.f64 (*.f64 x (+.f64 z (neg.f64 y))))) |
(+.f64 z (*.f64 x (neg.f64 (+.f64 z (neg.f64 y))))) |
(+.f64 z (*.f64 (+.f64 z (neg.f64 y)) (neg.f64 x))) |
(+.f64 (*.f64 -1 (*.f64 x (+.f64 z (*.f64 -1 y)))) z) |
(+.f64 z (*.f64 -1 (*.f64 x (+.f64 z (*.f64 -1 y))))) |
(+.f64 z (neg.f64 (*.f64 x (+.f64 z (neg.f64 y))))) |
(+.f64 z (*.f64 x (neg.f64 (+.f64 z (neg.f64 y))))) |
(+.f64 z (*.f64 (+.f64 z (neg.f64 y)) (neg.f64 x))) |
(*.f64 z (-.f64 1 x)) |
(+.f64 (*.f64 y x) (*.f64 z (-.f64 1 x))) |
(+.f64 (*.f64 x y) (*.f64 z (-.f64 1 x))) |
(+.f64 (*.f64 y x) (*.f64 z (-.f64 1 x))) |
(+.f64 (*.f64 x y) (*.f64 z (-.f64 1 x))) |
(+.f64 (*.f64 y x) (*.f64 z (-.f64 1 x))) |
(+.f64 (*.f64 x y) (*.f64 z (-.f64 1 x))) |
(*.f64 y x) |
(*.f64 x y) |
(+.f64 (*.f64 y x) (*.f64 z (-.f64 1 x))) |
(+.f64 (*.f64 x y) (*.f64 z (-.f64 1 x))) |
(+.f64 (*.f64 y x) (*.f64 z (-.f64 1 x))) |
(+.f64 (*.f64 x y) (*.f64 z (-.f64 1 x))) |
(+.f64 (*.f64 y x) (*.f64 z (-.f64 1 x))) |
(+.f64 (*.f64 x y) (*.f64 z (-.f64 1 x))) |
(*.f64 y x) |
(*.f64 x y) |
(+.f64 (*.f64 y x) (*.f64 z (-.f64 1 x))) |
(+.f64 (*.f64 x y) (*.f64 z (-.f64 1 x))) |
(+.f64 (*.f64 y x) (*.f64 z (-.f64 1 x))) |
(+.f64 (*.f64 x y) (*.f64 z (-.f64 1 x))) |
(+.f64 (*.f64 y x) (*.f64 z (-.f64 1 x))) |
(+.f64 (*.f64 x y) (*.f64 z (-.f64 1 x))) |
(*.f64 y x) |
(*.f64 x y) |
(+.f64 (*.f64 y x) (*.f64 z (-.f64 1 x))) |
(+.f64 (*.f64 x y) (*.f64 z (-.f64 1 x))) |
(+.f64 (*.f64 y x) (*.f64 z (-.f64 1 x))) |
(+.f64 (*.f64 x y) (*.f64 z (-.f64 1 x))) |
(+.f64 (*.f64 y x) (*.f64 z (-.f64 1 x))) |
(+.f64 (*.f64 x y) (*.f64 z (-.f64 1 x))) |
(*.f64 z (-.f64 1 x)) |
(+.f64 (*.f64 y x) (*.f64 z (-.f64 1 x))) |
(+.f64 (*.f64 x y) (*.f64 z (-.f64 1 x))) |
(+.f64 (*.f64 y x) (*.f64 z (-.f64 1 x))) |
(+.f64 (*.f64 x y) (*.f64 z (-.f64 1 x))) |
(+.f64 (*.f64 y x) (*.f64 z (-.f64 1 x))) |
(+.f64 (*.f64 x y) (*.f64 z (-.f64 1 x))) |
(*.f64 z (-.f64 1 x)) |
(+.f64 (*.f64 y x) (*.f64 z (-.f64 1 x))) |
(+.f64 (*.f64 x y) (*.f64 z (-.f64 1 x))) |
(+.f64 (*.f64 y x) (*.f64 z (-.f64 1 x))) |
(+.f64 (*.f64 x y) (*.f64 z (-.f64 1 x))) |
(+.f64 (*.f64 y x) (*.f64 z (-.f64 1 x))) |
(+.f64 (*.f64 x y) (*.f64 z (-.f64 1 x))) |
(+.f64 (*.f64 (-.f64 1 x) z) 0) |
(*.f64 z (-.f64 1 x)) |
(+.f64 0 (*.f64 (-.f64 1 x) z)) |
(*.f64 z (-.f64 1 x)) |
(-.f64 (*.f64 (-.f64 1 x) z) 0) |
(*.f64 z (-.f64 1 x)) |
(-.f64 0 (neg.f64 (*.f64 (-.f64 1 x) z))) |
(*.f64 z (-.f64 1 x)) |
(/.f64 (*.f64 (-.f64 1 x) z) 1) |
(*.f64 z (-.f64 1 x)) |
(/.f64 (*.f64 (-.f64 1 x) z) (/.f64 (*.f64 (-.f64 1 x) z) (*.f64 (-.f64 1 x) z))) |
(*.f64 z (-.f64 1 x)) |
(/.f64 (*.f64 (-.f64 1 x) (+.f64 z z)) 2) |
(*.f64 z (-.f64 1 x)) |
(/.f64 (neg.f64 (*.f64 (-.f64 1 x) (+.f64 z z))) -2) |
(*.f64 z (-.f64 1 x)) |
(pow.f64 (*.f64 (-.f64 1 x) z) 1) |
(*.f64 z (-.f64 1 x)) |
(neg.f64 (neg.f64 (*.f64 (-.f64 1 x) z))) |
(*.f64 z (-.f64 1 x)) |
(-.f64 (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y)) 0) |
(+.f64 (*.f64 x y) (*.f64 z (-.f64 1 x))) |
(-.f64 0 (neg.f64 (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y)))) |
(+.f64 (*.f64 x y) (*.f64 z (-.f64 1 x))) |
(*.f64 1 (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y))) |
(+.f64 (*.f64 x y) (*.f64 z (-.f64 1 x))) |
(*.f64 (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y)) 1) |
(+.f64 (*.f64 x y) (*.f64 z (-.f64 1 x))) |
(*.f64 (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y)) (/.f64 (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y)) (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y)))) |
(+.f64 (*.f64 x y) (*.f64 z (-.f64 1 x))) |
(*.f64 (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y)) (*.f64 (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y)) (/.f64 1 (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y))))) |
(+.f64 (*.f64 x y) (*.f64 z (-.f64 1 x))) |
(*.f64 (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y)) (/.f64 1 (/.f64 (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y)) (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y))))) |
(+.f64 (*.f64 x y) (*.f64 z (-.f64 1 x))) |
(*.f64 (/.f64 (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y)) (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y))) (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y))) |
(+.f64 (*.f64 x y) (*.f64 z (-.f64 1 x))) |
(*.f64 (/.f64 1 (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y))) (*.f64 (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y)) (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y)))) |
(+.f64 (*.f64 x y) (*.f64 z (-.f64 1 x))) |
(*.f64 (*.f64 (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y)) (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y))) (/.f64 1 (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y)))) |
(+.f64 (*.f64 x y) (*.f64 z (-.f64 1 x))) |
(*.f64 (*.f64 (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y)) (/.f64 1 (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y)))) (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y))) |
(+.f64 (*.f64 x y) (*.f64 z (-.f64 1 x))) |
(*.f64 (/.f64 1 (/.f64 (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y)) (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y)))) (/.f64 (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y)) (/.f64 (/.f64 (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y)) (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y))) (/.f64 (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y)) (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y)))))) |
(+.f64 (*.f64 x y) (*.f64 z (-.f64 1 x))) |
(*.f64 (/.f64 (/.f64 1 (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y))) (*.f64 (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y)) (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y)))) (*.f64 (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y)) (*.f64 (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y)) (*.f64 (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y)) (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y)))))) |
(+.f64 (*.f64 x y) (*.f64 z (-.f64 1 x))) |
(*.f64 (/.f64 (/.f64 (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y)) (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y))) (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y))) (*.f64 (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y)) (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y)))) |
(+.f64 (*.f64 x y) (*.f64 z (-.f64 1 x))) |
(*.f64 (/.f64 (*.f64 (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y)) (/.f64 1 (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y)))) (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y))) (*.f64 (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y)) (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y)))) |
(+.f64 (*.f64 x y) (*.f64 z (-.f64 1 x))) |
(*.f64 (/.f64 (/.f64 1 (/.f64 (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y)) (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y)))) (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y))) (*.f64 (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y)) (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y)))) |
(+.f64 (*.f64 x y) (*.f64 z (-.f64 1 x))) |
(/.f64 (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y)) 1) |
(+.f64 (*.f64 x y) (*.f64 z (-.f64 1 x))) |
(/.f64 (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y)) (/.f64 (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y)) (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y)))) |
(+.f64 (*.f64 x y) (*.f64 z (-.f64 1 x))) |
(/.f64 (*.f64 (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y)) 2) 2) |
(+.f64 (*.f64 x y) (*.f64 z (-.f64 1 x))) |
(/.f64 (neg.f64 (*.f64 (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y)) 2)) -2) |
(+.f64 (*.f64 x y) (*.f64 z (-.f64 1 x))) |
(pow.f64 (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y)) 1) |
(+.f64 (*.f64 x y) (*.f64 z (-.f64 1 x))) |
(neg.f64 (neg.f64 (+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y)))) |
(+.f64 (*.f64 x y) (*.f64 z (-.f64 1 x))) |
Compiled 999 to 490 computations (51% saved)
6 alts after pruning (5 fresh and 1 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 55 | 5 | 60 |
| Fresh | 0 | 0 | 0 |
| Picked | 0 | 1 | 1 |
| Done | 0 | 0 | 0 |
| Total | 55 | 6 | 61 |
| Status | Error | Program |
|---|---|---|
| ✓ | 0.0b | (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z)) |
| ▶ | 28.9b | (+.f64 (*.f64 x y) (*.f64 z (neg.f64 x))) |
| ▶ | 12.2b | (+.f64 (*.f64 x y) z) |
| ▶ | 0.0b | (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y))) |
| ▶ | 40.4b | (*.f64 y x) |
| ▶ | 28.9b | (*.f64 x (+.f64 (neg.f64 z) y)) |
Compiled 102 to 66 computations (35.3% saved)
Found 2 expressions with local error:
| New | Error | Program |
|---|---|---|
| ✓ | 0.0b | (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y))) |
| ✓ | 0.0b | (*.f64 x (+.f64 (neg.f64 z) y)) |
Compiled 26 to 7 computations (73.1% saved)
18 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 0.0ms | y | @ | -inf | (*.f64 x (+.f64 (neg.f64 z) y)) |
| 0.0ms | x | @ | 0 | (*.f64 x (+.f64 (neg.f64 z) y)) |
| 0.0ms | x | @ | inf | (*.f64 x (+.f64 (neg.f64 z) y)) |
| 0.0ms | x | @ | -inf | (*.f64 x (+.f64 (neg.f64 z) y)) |
| 0.0ms | y | @ | inf | (*.f64 x (+.f64 (neg.f64 z) y)) |
| 1× | batch-egg-rewrite |
| 1086× | rational_best-simplify-57 |
| 720× | rational_best-simplify-43 |
| 598× | rational_best-simplify-44 |
| 542× | rational_best-5 |
| 540× | rational_best-4 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 10 | 40 |
| 1 | 89 | 40 |
| 2 | 300 | 40 |
| 3 | 1193 | 40 |
| 4 | 5181 | 40 |
| 1× | node limit |
| Inputs |
|---|
(*.f64 x (+.f64 (neg.f64 z) y)) |
(+.f64 z (*.f64 x (+.f64 (neg.f64 z) y))) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (+.f64 (neg.f64 z) y)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 x (+.f64 (neg.f64 z) y)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 x (+.f64 (neg.f64 z) y)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (neg.f64 (*.f64 x (+.f64 (neg.f64 z) y))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (+.f64 (neg.f64 z) y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (+.f64 (neg.f64 z) y)) (/.f64 (*.f64 x (+.f64 (neg.f64 z) y)) (*.f64 x (+.f64 (neg.f64 z) y))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (neg.f64 z) y) (+.f64 x x)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (*.f64 (+.f64 (neg.f64 z) y) (+.f64 x x))) -2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x (+.f64 (neg.f64 z) y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (neg.f64 (*.f64 x (+.f64 (neg.f64 z) y)))))))) |
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (neg.f64 (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y))) (/.f64 (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y))) (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y))) (*.f64 (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y))) (/.f64 1 (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y))) (/.f64 1 (/.f64 (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y))) (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y))) (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y)))) (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y)))) (*.f64 (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y))) (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y))) (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y)))) (/.f64 1 (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y))) (/.f64 1 (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y))))) (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (/.f64 (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y))) (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y))))) (*.f64 (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y))) (*.f64 (/.f64 (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y))) (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y)))) (/.f64 (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y))) (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y)))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (/.f64 1 (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y)))) (*.f64 (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y))) (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y))))) (*.f64 (*.f64 (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y))) (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y)))) (*.f64 (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y))) (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (/.f64 (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y))) (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y)))) (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y)))) (*.f64 (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y))) (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y))) (/.f64 1 (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y))))) (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y)))) (*.f64 (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y))) (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (/.f64 1 (/.f64 (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y))) (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y))))) (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y)))) (*.f64 (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y))) (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y))) (/.f64 (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y))) (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y))) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (neg.f64 (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y)))) 2) -2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (neg.f64 (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y))))))))) |
| 1× | egg-herbie |
| 1376× | rational_best-simplify-80 |
| 1324× | rational_best-simplify-129 |
| 1288× | rational_best-simplify-78 |
| 1226× | rational_best-simplify-94 |
| 1116× | rational_best-simplify-135 |
Useful iterations: 1 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 86 | 2176 |
| 1 | 172 | 2092 |
| 2 | 673 | 2092 |
| 3 | 3576 | 2092 |
| 1× | node limit |
| Inputs |
|---|
(*.f64 (-.f64 y z) x) |
(*.f64 (-.f64 y z) x) |
(*.f64 (-.f64 y z) x) |
(*.f64 (-.f64 y z) x) |
(*.f64 (-.f64 y z) x) |
(*.f64 (-.f64 y z) x) |
(*.f64 (-.f64 y z) x) |
(*.f64 (-.f64 y z) x) |
(*.f64 (-.f64 y z) x) |
(*.f64 (-.f64 y z) x) |
(*.f64 (-.f64 y z) x) |
(*.f64 (-.f64 y z) x) |
(*.f64 y x) |
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x))) |
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x))) |
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x))) |
(*.f64 -1 (*.f64 z x)) |
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x))) |
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x))) |
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x))) |
(*.f64 -1 (*.f64 z x)) |
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x))) |
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x))) |
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x))) |
(*.f64 -1 (*.f64 z x)) |
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x))) |
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x))) |
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x))) |
(*.f64 y x) |
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x))) |
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x))) |
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x))) |
(*.f64 y x) |
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x))) |
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x))) |
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x))) |
(*.f64 y x) |
(+.f64 (*.f64 (+.f64 1 (*.f64 -1 x)) z) (*.f64 y x)) |
(+.f64 (*.f64 (+.f64 1 (*.f64 -1 x)) z) (*.f64 y x)) |
(+.f64 (*.f64 (+.f64 1 (*.f64 -1 x)) z) (*.f64 y x)) |
(*.f64 (+.f64 1 (*.f64 -1 x)) z) |
(+.f64 (*.f64 (+.f64 1 (*.f64 -1 x)) z) (*.f64 y x)) |
(+.f64 (*.f64 (+.f64 1 (*.f64 -1 x)) z) (*.f64 y x)) |
(+.f64 (*.f64 (+.f64 1 (*.f64 -1 x)) z) (*.f64 y x)) |
(*.f64 -1 (*.f64 (-.f64 x 1) z)) |
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 (-.f64 x 1) z))) |
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 (-.f64 x 1) z))) |
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 (-.f64 x 1) z))) |
z |
(+.f64 (*.f64 (-.f64 y z) x) z) |
(+.f64 (*.f64 (-.f64 y z) x) z) |
(+.f64 (*.f64 (-.f64 y z) x) z) |
(*.f64 (-.f64 y z) x) |
(+.f64 (*.f64 (-.f64 y z) x) z) |
(+.f64 (*.f64 (-.f64 y z) x) z) |
(+.f64 (*.f64 (-.f64 y z) x) z) |
(*.f64 (-.f64 y z) x) |
(+.f64 (*.f64 (-.f64 y z) x) z) |
(+.f64 (*.f64 (-.f64 y z) x) z) |
(+.f64 (*.f64 (-.f64 y z) x) z) |
(+.f64 (*.f64 -1 (*.f64 z x)) z) |
(+.f64 (*.f64 y x) (+.f64 z (*.f64 -1 (*.f64 z x)))) |
(+.f64 (*.f64 y x) (+.f64 z (*.f64 -1 (*.f64 z x)))) |
(+.f64 (*.f64 y x) (+.f64 z (*.f64 -1 (*.f64 z x)))) |
(*.f64 y x) |
(+.f64 (*.f64 y x) (+.f64 z (*.f64 -1 (*.f64 z x)))) |
(+.f64 (*.f64 y x) (+.f64 z (*.f64 -1 (*.f64 z x)))) |
(+.f64 (*.f64 y x) (+.f64 z (*.f64 -1 (*.f64 z x)))) |
(*.f64 y x) |
(+.f64 (*.f64 y x) (+.f64 (*.f64 -1 (*.f64 z x)) z)) |
(+.f64 (*.f64 y x) (+.f64 (*.f64 -1 (*.f64 z x)) z)) |
(+.f64 (*.f64 y x) (+.f64 (*.f64 -1 (*.f64 z x)) z)) |
(+.f64 (*.f64 x (+.f64 (neg.f64 z) y)) 0) |
(+.f64 0 (*.f64 x (+.f64 (neg.f64 z) y))) |
(-.f64 (*.f64 x (+.f64 (neg.f64 z) y)) 0) |
(-.f64 0 (neg.f64 (*.f64 x (+.f64 (neg.f64 z) y)))) |
(/.f64 (*.f64 x (+.f64 (neg.f64 z) y)) 1) |
(/.f64 (*.f64 x (+.f64 (neg.f64 z) y)) (/.f64 (*.f64 x (+.f64 (neg.f64 z) y)) (*.f64 x (+.f64 (neg.f64 z) y)))) |
(/.f64 (*.f64 (+.f64 (neg.f64 z) y) (+.f64 x x)) 2) |
(/.f64 (neg.f64 (*.f64 (+.f64 (neg.f64 z) y) (+.f64 x x))) -2) |
(pow.f64 (*.f64 x (+.f64 (neg.f64 z) y)) 1) |
(neg.f64 (neg.f64 (*.f64 x (+.f64 (neg.f64 z) y)))) |
(-.f64 (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y))) 0) |
(-.f64 0 (neg.f64 (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y))))) |
(*.f64 (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y))) 1) |
(*.f64 (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y))) (/.f64 (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y))) (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y))))) |
(*.f64 (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y))) (*.f64 (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y))) (/.f64 1 (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y)))))) |
(*.f64 (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y))) (/.f64 1 (/.f64 (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y))) (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y)))))) |
(*.f64 1 (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y)))) |
(*.f64 (/.f64 (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y))) (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y)))) (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y)))) |
(*.f64 (/.f64 1 (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y)))) (*.f64 (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y))) (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y))))) |
(*.f64 (*.f64 (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y))) (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y)))) (/.f64 1 (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y))))) |
(*.f64 (*.f64 (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y))) (/.f64 1 (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y))))) (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y)))) |
(*.f64 (/.f64 1 (/.f64 (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y))) (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y))))) (*.f64 (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y))) (*.f64 (/.f64 (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y))) (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y)))) (/.f64 (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y))) (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y))))))) |
(*.f64 (/.f64 (/.f64 1 (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y)))) (*.f64 (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y))) (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y))))) (*.f64 (*.f64 (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y))) (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y)))) (*.f64 (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y))) (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y)))))) |
(*.f64 (/.f64 (/.f64 (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y))) (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y)))) (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y)))) (*.f64 (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y))) (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y))))) |
(*.f64 (/.f64 (*.f64 (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y))) (/.f64 1 (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y))))) (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y)))) (*.f64 (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y))) (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y))))) |
(*.f64 (/.f64 (/.f64 1 (/.f64 (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y))) (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y))))) (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y)))) (*.f64 (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y))) (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y))))) |
(/.f64 (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y))) 1) |
(/.f64 (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y))) (/.f64 (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y))) (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y))))) |
(/.f64 (*.f64 (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y))) 2) 2) |
(/.f64 (*.f64 (neg.f64 (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y)))) 2) -2) |
(pow.f64 (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y))) 1) |
(neg.f64 (neg.f64 (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y))))) |
| Outputs |
|---|
(*.f64 (-.f64 y z) x) |
(*.f64 (-.f64 y z) x) |
(*.f64 (-.f64 y z) x) |
(*.f64 (-.f64 y z) x) |
(*.f64 (-.f64 y z) x) |
(*.f64 (-.f64 y z) x) |
(*.f64 (-.f64 y z) x) |
(*.f64 (-.f64 y z) x) |
(*.f64 (-.f64 y z) x) |
(*.f64 (-.f64 y z) x) |
(*.f64 (-.f64 y z) x) |
(*.f64 (-.f64 y z) x) |
(*.f64 y x) |
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x))) |
(+.f64 (*.f64 y x) (*.f64 z (*.f64 x -1))) |
(+.f64 (*.f64 y x) (*.f64 z (neg.f64 x))) |
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x))) |
(+.f64 (*.f64 y x) (*.f64 z (*.f64 x -1))) |
(+.f64 (*.f64 y x) (*.f64 z (neg.f64 x))) |
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x))) |
(+.f64 (*.f64 y x) (*.f64 z (*.f64 x -1))) |
(+.f64 (*.f64 y x) (*.f64 z (neg.f64 x))) |
(*.f64 -1 (*.f64 z x)) |
(*.f64 z (*.f64 x -1)) |
(*.f64 z (neg.f64 x)) |
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x))) |
(+.f64 (*.f64 y x) (*.f64 z (*.f64 x -1))) |
(+.f64 (*.f64 y x) (*.f64 z (neg.f64 x))) |
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x))) |
(+.f64 (*.f64 y x) (*.f64 z (*.f64 x -1))) |
(+.f64 (*.f64 y x) (*.f64 z (neg.f64 x))) |
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x))) |
(+.f64 (*.f64 y x) (*.f64 z (*.f64 x -1))) |
(+.f64 (*.f64 y x) (*.f64 z (neg.f64 x))) |
(*.f64 -1 (*.f64 z x)) |
(*.f64 z (*.f64 x -1)) |
(*.f64 z (neg.f64 x)) |
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x))) |
(+.f64 (*.f64 y x) (*.f64 z (*.f64 x -1))) |
(+.f64 (*.f64 y x) (*.f64 z (neg.f64 x))) |
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x))) |
(+.f64 (*.f64 y x) (*.f64 z (*.f64 x -1))) |
(+.f64 (*.f64 y x) (*.f64 z (neg.f64 x))) |
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x))) |
(+.f64 (*.f64 y x) (*.f64 z (*.f64 x -1))) |
(+.f64 (*.f64 y x) (*.f64 z (neg.f64 x))) |
(*.f64 -1 (*.f64 z x)) |
(*.f64 z (*.f64 x -1)) |
(*.f64 z (neg.f64 x)) |
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x))) |
(+.f64 (*.f64 y x) (*.f64 z (*.f64 x -1))) |
(+.f64 (*.f64 y x) (*.f64 z (neg.f64 x))) |
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x))) |
(+.f64 (*.f64 y x) (*.f64 z (*.f64 x -1))) |
(+.f64 (*.f64 y x) (*.f64 z (neg.f64 x))) |
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x))) |
(+.f64 (*.f64 y x) (*.f64 z (*.f64 x -1))) |
(+.f64 (*.f64 y x) (*.f64 z (neg.f64 x))) |
(*.f64 y x) |
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x))) |
(+.f64 (*.f64 y x) (*.f64 z (*.f64 x -1))) |
(+.f64 (*.f64 y x) (*.f64 z (neg.f64 x))) |
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x))) |
(+.f64 (*.f64 y x) (*.f64 z (*.f64 x -1))) |
(+.f64 (*.f64 y x) (*.f64 z (neg.f64 x))) |
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x))) |
(+.f64 (*.f64 y x) (*.f64 z (*.f64 x -1))) |
(+.f64 (*.f64 y x) (*.f64 z (neg.f64 x))) |
(*.f64 y x) |
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x))) |
(+.f64 (*.f64 y x) (*.f64 z (*.f64 x -1))) |
(+.f64 (*.f64 y x) (*.f64 z (neg.f64 x))) |
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x))) |
(+.f64 (*.f64 y x) (*.f64 z (*.f64 x -1))) |
(+.f64 (*.f64 y x) (*.f64 z (neg.f64 x))) |
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x))) |
(+.f64 (*.f64 y x) (*.f64 z (*.f64 x -1))) |
(+.f64 (*.f64 y x) (*.f64 z (neg.f64 x))) |
(*.f64 y x) |
(+.f64 (*.f64 (+.f64 1 (*.f64 -1 x)) z) (*.f64 y x)) |
(+.f64 (*.f64 y x) (*.f64 z (+.f64 1 (*.f64 x -1)))) |
(+.f64 (*.f64 y x) (*.f64 z (+.f64 1 (neg.f64 x)))) |
(+.f64 (*.f64 (+.f64 1 (*.f64 -1 x)) z) (*.f64 y x)) |
(+.f64 (*.f64 y x) (*.f64 z (+.f64 1 (*.f64 x -1)))) |
(+.f64 (*.f64 y x) (*.f64 z (+.f64 1 (neg.f64 x)))) |
(+.f64 (*.f64 (+.f64 1 (*.f64 -1 x)) z) (*.f64 y x)) |
(+.f64 (*.f64 y x) (*.f64 z (+.f64 1 (*.f64 x -1)))) |
(+.f64 (*.f64 y x) (*.f64 z (+.f64 1 (neg.f64 x)))) |
(*.f64 (+.f64 1 (*.f64 -1 x)) z) |
(*.f64 z (+.f64 1 (*.f64 x -1))) |
(*.f64 z (+.f64 1 (neg.f64 x))) |
(+.f64 (*.f64 (+.f64 1 (*.f64 -1 x)) z) (*.f64 y x)) |
(+.f64 (*.f64 y x) (*.f64 z (+.f64 1 (*.f64 x -1)))) |
(+.f64 (*.f64 y x) (*.f64 z (+.f64 1 (neg.f64 x)))) |
(+.f64 (*.f64 (+.f64 1 (*.f64 -1 x)) z) (*.f64 y x)) |
(+.f64 (*.f64 y x) (*.f64 z (+.f64 1 (*.f64 x -1)))) |
(+.f64 (*.f64 y x) (*.f64 z (+.f64 1 (neg.f64 x)))) |
(+.f64 (*.f64 (+.f64 1 (*.f64 -1 x)) z) (*.f64 y x)) |
(+.f64 (*.f64 y x) (*.f64 z (+.f64 1 (*.f64 x -1)))) |
(+.f64 (*.f64 y x) (*.f64 z (+.f64 1 (neg.f64 x)))) |
(*.f64 -1 (*.f64 (-.f64 x 1) z)) |
(*.f64 -1 (*.f64 z (+.f64 x -1))) |
(neg.f64 (*.f64 z (+.f64 x -1))) |
(*.f64 (+.f64 x -1) (neg.f64 z)) |
(*.f64 z (neg.f64 (+.f64 x -1))) |
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 (-.f64 x 1) z))) |
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z (+.f64 x -1)))) |
(+.f64 (*.f64 y x) (neg.f64 (*.f64 z (+.f64 x -1)))) |
(+.f64 (*.f64 y x) (*.f64 (+.f64 x -1) (neg.f64 z))) |
(+.f64 (*.f64 y x) (*.f64 z (neg.f64 (+.f64 x -1)))) |
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 (-.f64 x 1) z))) |
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z (+.f64 x -1)))) |
(+.f64 (*.f64 y x) (neg.f64 (*.f64 z (+.f64 x -1)))) |
(+.f64 (*.f64 y x) (*.f64 (+.f64 x -1) (neg.f64 z))) |
(+.f64 (*.f64 y x) (*.f64 z (neg.f64 (+.f64 x -1)))) |
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 (-.f64 x 1) z))) |
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z (+.f64 x -1)))) |
(+.f64 (*.f64 y x) (neg.f64 (*.f64 z (+.f64 x -1)))) |
(+.f64 (*.f64 y x) (*.f64 (+.f64 x -1) (neg.f64 z))) |
(+.f64 (*.f64 y x) (*.f64 z (neg.f64 (+.f64 x -1)))) |
z |
(+.f64 (*.f64 (-.f64 y z) x) z) |
(+.f64 z (*.f64 (-.f64 y z) x)) |
(+.f64 (*.f64 (-.f64 y z) x) z) |
(+.f64 z (*.f64 (-.f64 y z) x)) |
(+.f64 (*.f64 (-.f64 y z) x) z) |
(+.f64 z (*.f64 (-.f64 y z) x)) |
(*.f64 (-.f64 y z) x) |
(+.f64 (*.f64 (-.f64 y z) x) z) |
(+.f64 z (*.f64 (-.f64 y z) x)) |
(+.f64 (*.f64 (-.f64 y z) x) z) |
(+.f64 z (*.f64 (-.f64 y z) x)) |
(+.f64 (*.f64 (-.f64 y z) x) z) |
(+.f64 z (*.f64 (-.f64 y z) x)) |
(*.f64 (-.f64 y z) x) |
(+.f64 (*.f64 (-.f64 y z) x) z) |
(+.f64 z (*.f64 (-.f64 y z) x)) |
(+.f64 (*.f64 (-.f64 y z) x) z) |
(+.f64 z (*.f64 (-.f64 y z) x)) |
(+.f64 (*.f64 (-.f64 y z) x) z) |
(+.f64 z (*.f64 (-.f64 y z) x)) |
(+.f64 (*.f64 -1 (*.f64 z x)) z) |
(+.f64 z (*.f64 z (*.f64 x -1))) |
(+.f64 z (*.f64 z (neg.f64 x))) |
(+.f64 (*.f64 y x) (+.f64 z (*.f64 -1 (*.f64 z x)))) |
(+.f64 z (+.f64 (*.f64 y x) (*.f64 z (*.f64 x -1)))) |
(+.f64 z (+.f64 (*.f64 y x) (*.f64 z (neg.f64 x)))) |
(+.f64 (*.f64 y x) (+.f64 z (*.f64 -1 (*.f64 z x)))) |
(+.f64 z (+.f64 (*.f64 y x) (*.f64 z (*.f64 x -1)))) |
(+.f64 z (+.f64 (*.f64 y x) (*.f64 z (neg.f64 x)))) |
(+.f64 (*.f64 y x) (+.f64 z (*.f64 -1 (*.f64 z x)))) |
(+.f64 z (+.f64 (*.f64 y x) (*.f64 z (*.f64 x -1)))) |
(+.f64 z (+.f64 (*.f64 y x) (*.f64 z (neg.f64 x)))) |
(*.f64 y x) |
(+.f64 (*.f64 y x) (+.f64 z (*.f64 -1 (*.f64 z x)))) |
(+.f64 z (+.f64 (*.f64 y x) (*.f64 z (*.f64 x -1)))) |
(+.f64 z (+.f64 (*.f64 y x) (*.f64 z (neg.f64 x)))) |
(+.f64 (*.f64 y x) (+.f64 z (*.f64 -1 (*.f64 z x)))) |
(+.f64 z (+.f64 (*.f64 y x) (*.f64 z (*.f64 x -1)))) |
(+.f64 z (+.f64 (*.f64 y x) (*.f64 z (neg.f64 x)))) |
(+.f64 (*.f64 y x) (+.f64 z (*.f64 -1 (*.f64 z x)))) |
(+.f64 z (+.f64 (*.f64 y x) (*.f64 z (*.f64 x -1)))) |
(+.f64 z (+.f64 (*.f64 y x) (*.f64 z (neg.f64 x)))) |
(*.f64 y x) |
(+.f64 (*.f64 y x) (+.f64 (*.f64 -1 (*.f64 z x)) z)) |
(+.f64 z (+.f64 (*.f64 y x) (*.f64 z (*.f64 x -1)))) |
(+.f64 z (+.f64 (*.f64 y x) (*.f64 z (neg.f64 x)))) |
(+.f64 (*.f64 y x) (+.f64 (*.f64 -1 (*.f64 z x)) z)) |
(+.f64 z (+.f64 (*.f64 y x) (*.f64 z (*.f64 x -1)))) |
(+.f64 z (+.f64 (*.f64 y x) (*.f64 z (neg.f64 x)))) |
(+.f64 (*.f64 y x) (+.f64 (*.f64 -1 (*.f64 z x)) z)) |
(+.f64 z (+.f64 (*.f64 y x) (*.f64 z (*.f64 x -1)))) |
(+.f64 z (+.f64 (*.f64 y x) (*.f64 z (neg.f64 x)))) |
(+.f64 (*.f64 x (+.f64 (neg.f64 z) y)) 0) |
(*.f64 x (+.f64 y (neg.f64 z))) |
(+.f64 0 (*.f64 x (+.f64 (neg.f64 z) y))) |
(*.f64 x (+.f64 y (neg.f64 z))) |
(-.f64 (*.f64 x (+.f64 (neg.f64 z) y)) 0) |
(*.f64 x (+.f64 y (neg.f64 z))) |
(-.f64 0 (neg.f64 (*.f64 x (+.f64 (neg.f64 z) y)))) |
(*.f64 x (+.f64 y (neg.f64 z))) |
(/.f64 (*.f64 x (+.f64 (neg.f64 z) y)) 1) |
(*.f64 x (+.f64 y (neg.f64 z))) |
(/.f64 (*.f64 x (+.f64 (neg.f64 z) y)) (/.f64 (*.f64 x (+.f64 (neg.f64 z) y)) (*.f64 x (+.f64 (neg.f64 z) y)))) |
(*.f64 x (+.f64 y (neg.f64 z))) |
(/.f64 (*.f64 (+.f64 (neg.f64 z) y) (+.f64 x x)) 2) |
(*.f64 x (+.f64 y (neg.f64 z))) |
(/.f64 (neg.f64 (*.f64 (+.f64 (neg.f64 z) y) (+.f64 x x))) -2) |
(*.f64 x (+.f64 y (neg.f64 z))) |
(pow.f64 (*.f64 x (+.f64 (neg.f64 z) y)) 1) |
(*.f64 x (+.f64 y (neg.f64 z))) |
(neg.f64 (neg.f64 (*.f64 x (+.f64 (neg.f64 z) y)))) |
(*.f64 x (+.f64 y (neg.f64 z))) |
(-.f64 (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y))) 0) |
(+.f64 z (*.f64 x (+.f64 y (neg.f64 z)))) |
(-.f64 0 (neg.f64 (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y))))) |
(+.f64 z (*.f64 x (+.f64 y (neg.f64 z)))) |
(*.f64 (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y))) 1) |
(+.f64 z (*.f64 x (+.f64 y (neg.f64 z)))) |
(*.f64 (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y))) (/.f64 (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y))) (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y))))) |
(+.f64 z (*.f64 x (+.f64 y (neg.f64 z)))) |
(*.f64 (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y))) (*.f64 (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y))) (/.f64 1 (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y)))))) |
(+.f64 z (*.f64 x (+.f64 y (neg.f64 z)))) |
(*.f64 (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y))) (/.f64 1 (/.f64 (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y))) (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y)))))) |
(+.f64 z (*.f64 x (+.f64 y (neg.f64 z)))) |
(*.f64 1 (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y)))) |
(+.f64 z (*.f64 x (+.f64 y (neg.f64 z)))) |
(*.f64 (/.f64 (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y))) (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y)))) (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y)))) |
(+.f64 z (*.f64 x (+.f64 y (neg.f64 z)))) |
(*.f64 (/.f64 1 (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y)))) (*.f64 (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y))) (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y))))) |
(+.f64 z (*.f64 x (+.f64 y (neg.f64 z)))) |
(*.f64 (*.f64 (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y))) (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y)))) (/.f64 1 (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y))))) |
(+.f64 z (*.f64 x (+.f64 y (neg.f64 z)))) |
(*.f64 (*.f64 (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y))) (/.f64 1 (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y))))) (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y)))) |
(+.f64 z (*.f64 x (+.f64 y (neg.f64 z)))) |
(*.f64 (/.f64 1 (/.f64 (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y))) (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y))))) (*.f64 (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y))) (*.f64 (/.f64 (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y))) (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y)))) (/.f64 (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y))) (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y))))))) |
(+.f64 z (*.f64 x (+.f64 y (neg.f64 z)))) |
(*.f64 (/.f64 (/.f64 1 (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y)))) (*.f64 (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y))) (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y))))) (*.f64 (*.f64 (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y))) (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y)))) (*.f64 (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y))) (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y)))))) |
(+.f64 z (*.f64 x (+.f64 y (neg.f64 z)))) |
(*.f64 (/.f64 (/.f64 (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y))) (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y)))) (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y)))) (*.f64 (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y))) (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y))))) |
(+.f64 z (*.f64 x (+.f64 y (neg.f64 z)))) |
(*.f64 (/.f64 (*.f64 (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y))) (/.f64 1 (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y))))) (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y)))) (*.f64 (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y))) (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y))))) |
(+.f64 z (*.f64 x (+.f64 y (neg.f64 z)))) |
(*.f64 (/.f64 (/.f64 1 (/.f64 (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y))) (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y))))) (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y)))) (*.f64 (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y))) (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y))))) |
(+.f64 z (*.f64 x (+.f64 y (neg.f64 z)))) |
(/.f64 (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y))) 1) |
(+.f64 z (*.f64 x (+.f64 y (neg.f64 z)))) |
(/.f64 (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y))) (/.f64 (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y))) (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y))))) |
(+.f64 z (*.f64 x (+.f64 y (neg.f64 z)))) |
(/.f64 (*.f64 (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y))) 2) 2) |
(+.f64 z (*.f64 x (+.f64 y (neg.f64 z)))) |
(/.f64 (*.f64 (neg.f64 (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y)))) 2) -2) |
(+.f64 z (*.f64 x (+.f64 y (neg.f64 z)))) |
(pow.f64 (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y))) 1) |
(+.f64 z (*.f64 x (+.f64 y (neg.f64 z)))) |
(neg.f64 (neg.f64 (+.f64 z (*.f64 x (+.f64 (neg.f64 z) y))))) |
(+.f64 z (*.f64 x (+.f64 y (neg.f64 z)))) |
Compiled 8 to 4 computations (50% saved)
Found 1 expressions with local error:
| New | Error | Program |
|---|---|---|
| ✓ | 0.0b | (+.f64 (*.f64 x y) z) |
Compiled 14 to 5 computations (64.3% saved)
9 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 0.0ms | x | @ | -inf | (+.f64 (*.f64 x y) z) |
| 0.0ms | x | @ | 0 | (+.f64 (*.f64 x y) z) |
| 0.0ms | z | @ | -inf | (+.f64 (*.f64 x y) z) |
| 0.0ms | y | @ | -inf | (+.f64 (*.f64 x y) z) |
| 0.0ms | y | @ | inf | (+.f64 (*.f64 x y) z) |
| 1× | batch-egg-rewrite |
| 1872× | rational_best-5 |
| 1870× | rational_best-4 |
| 1870× | rational_best-2 |
| 1870× | rational_best-3 |
| 1870× | rational_best-1 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 7 | 13 |
| 1 | 60 | 13 |
| 2 | 206 | 13 |
| 3 | 859 | 13 |
| 4 | 3774 | 13 |
| 1× | node limit |
| Inputs |
|---|
(+.f64 (*.f64 x y) z) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (*.f64 x y) z) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 x y) z) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 x y) z) (/.f64 (+.f64 (*.f64 x y) z) (+.f64 (*.f64 x y) z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 x y) z) (*.f64 (+.f64 (*.f64 x y) z) (/.f64 1 (+.f64 (*.f64 x y) z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 x y) z) (/.f64 1 (/.f64 (+.f64 (*.f64 x y) z) (+.f64 (*.f64 x y) z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 (*.f64 x y) z))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 (*.f64 x y) z) (+.f64 (*.f64 x y) z)) (+.f64 (*.f64 x y) z))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (+.f64 (*.f64 x y) z)) (*.f64 (+.f64 (*.f64 x y) z) (+.f64 (*.f64 x y) z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 x y) z) (+.f64 (*.f64 x y) z)) (/.f64 1 (+.f64 (*.f64 x y) z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 x y) z) (/.f64 1 (+.f64 (*.f64 x y) z))) (+.f64 (*.f64 x y) z))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (/.f64 (+.f64 (*.f64 x y) z) (+.f64 (*.f64 x y) z))) (*.f64 (+.f64 (*.f64 x y) z) (*.f64 (/.f64 (+.f64 (*.f64 x y) z) (+.f64 (*.f64 x y) z)) (/.f64 (+.f64 (*.f64 x y) z) (+.f64 (*.f64 x y) z)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (/.f64 1 (+.f64 (*.f64 x y) z)) (*.f64 (+.f64 (*.f64 x y) z) (+.f64 (*.f64 x y) z))) (*.f64 (+.f64 (*.f64 x y) z) (*.f64 (+.f64 (*.f64 x y) z) (*.f64 (+.f64 (*.f64 x y) z) (+.f64 (*.f64 x y) z)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (/.f64 (+.f64 (*.f64 x y) z) (+.f64 (*.f64 x y) z)) (+.f64 (*.f64 x y) z)) (*.f64 (+.f64 (*.f64 x y) z) (+.f64 (*.f64 x y) z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 (+.f64 (*.f64 x y) z) (/.f64 1 (+.f64 (*.f64 x y) z))) (+.f64 (*.f64 x y) z)) (*.f64 (+.f64 (*.f64 x y) z) (+.f64 (*.f64 x y) z)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 x y) z) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 x y) z) (/.f64 (+.f64 (*.f64 x y) z) (+.f64 (*.f64 x y) z)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 x y) z) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 (*.f64 x y) z) 1))))) |
| 1× | egg-herbie |
| 1094× | rational_best-simplify-2 |
| 1046× | rational_best-simplify-80 |
| 952× | rational_best-simplify-78 |
| 918× | rational_best-simplify-94 |
| 560× | rational_best-simplify-49 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 43 | 636 |
| 1 | 76 | 636 |
| 2 | 424 | 636 |
| 3 | 2028 | 636 |
| 4 | 4215 | 636 |
| 1× | node limit |
| Inputs |
|---|
z |
(+.f64 (*.f64 y x) z) |
(+.f64 (*.f64 y x) z) |
(+.f64 (*.f64 y x) z) |
(*.f64 y x) |
(+.f64 (*.f64 y x) z) |
(+.f64 (*.f64 y x) z) |
(+.f64 (*.f64 y x) z) |
(*.f64 y x) |
(+.f64 (*.f64 y x) z) |
(+.f64 (*.f64 y x) z) |
(+.f64 (*.f64 y x) z) |
z |
(+.f64 (*.f64 y x) z) |
(+.f64 (*.f64 y x) z) |
(+.f64 (*.f64 y x) z) |
(*.f64 y x) |
(+.f64 (*.f64 y x) z) |
(+.f64 (*.f64 y x) z) |
(+.f64 (*.f64 y x) z) |
(*.f64 y x) |
(+.f64 (*.f64 y x) z) |
(+.f64 (*.f64 y x) z) |
(+.f64 (*.f64 y x) z) |
(*.f64 y x) |
(+.f64 (*.f64 y x) z) |
(+.f64 (*.f64 y x) z) |
(+.f64 (*.f64 y x) z) |
z |
(+.f64 (*.f64 y x) z) |
(+.f64 (*.f64 y x) z) |
(+.f64 (*.f64 y x) z) |
z |
(+.f64 (*.f64 y x) z) |
(+.f64 (*.f64 y x) z) |
(+.f64 (*.f64 y x) z) |
(-.f64 (+.f64 (*.f64 x y) z) 0) |
(*.f64 (+.f64 (*.f64 x y) z) 1) |
(*.f64 (+.f64 (*.f64 x y) z) (/.f64 (+.f64 (*.f64 x y) z) (+.f64 (*.f64 x y) z))) |
(*.f64 (+.f64 (*.f64 x y) z) (*.f64 (+.f64 (*.f64 x y) z) (/.f64 1 (+.f64 (*.f64 x y) z)))) |
(*.f64 (+.f64 (*.f64 x y) z) (/.f64 1 (/.f64 (+.f64 (*.f64 x y) z) (+.f64 (*.f64 x y) z)))) |
(*.f64 1 (+.f64 (*.f64 x y) z)) |
(*.f64 (/.f64 (+.f64 (*.f64 x y) z) (+.f64 (*.f64 x y) z)) (+.f64 (*.f64 x y) z)) |
(*.f64 (/.f64 1 (+.f64 (*.f64 x y) z)) (*.f64 (+.f64 (*.f64 x y) z) (+.f64 (*.f64 x y) z))) |
(*.f64 (*.f64 (+.f64 (*.f64 x y) z) (+.f64 (*.f64 x y) z)) (/.f64 1 (+.f64 (*.f64 x y) z))) |
(*.f64 (*.f64 (+.f64 (*.f64 x y) z) (/.f64 1 (+.f64 (*.f64 x y) z))) (+.f64 (*.f64 x y) z)) |
(*.f64 (/.f64 1 (/.f64 (+.f64 (*.f64 x y) z) (+.f64 (*.f64 x y) z))) (*.f64 (+.f64 (*.f64 x y) z) (*.f64 (/.f64 (+.f64 (*.f64 x y) z) (+.f64 (*.f64 x y) z)) (/.f64 (+.f64 (*.f64 x y) z) (+.f64 (*.f64 x y) z))))) |
(*.f64 (/.f64 (/.f64 1 (+.f64 (*.f64 x y) z)) (*.f64 (+.f64 (*.f64 x y) z) (+.f64 (*.f64 x y) z))) (*.f64 (+.f64 (*.f64 x y) z) (*.f64 (+.f64 (*.f64 x y) z) (*.f64 (+.f64 (*.f64 x y) z) (+.f64 (*.f64 x y) z))))) |
(*.f64 (/.f64 (/.f64 (+.f64 (*.f64 x y) z) (+.f64 (*.f64 x y) z)) (+.f64 (*.f64 x y) z)) (*.f64 (+.f64 (*.f64 x y) z) (+.f64 (*.f64 x y) z))) |
(*.f64 (/.f64 (*.f64 (+.f64 (*.f64 x y) z) (/.f64 1 (+.f64 (*.f64 x y) z))) (+.f64 (*.f64 x y) z)) (*.f64 (+.f64 (*.f64 x y) z) (+.f64 (*.f64 x y) z))) |
(/.f64 (+.f64 (*.f64 x y) z) 1) |
(/.f64 (+.f64 (*.f64 x y) z) (/.f64 (+.f64 (*.f64 x y) z) (+.f64 (*.f64 x y) z))) |
(/.f64 (*.f64 (+.f64 (*.f64 x y) z) 2) 2) |
(pow.f64 (+.f64 (*.f64 x y) z) 1) |
| Outputs |
|---|
z |
(+.f64 (*.f64 y x) z) |
(+.f64 z (*.f64 y x)) |
(+.f64 (*.f64 y x) z) |
(+.f64 z (*.f64 y x)) |
(+.f64 (*.f64 y x) z) |
(+.f64 z (*.f64 y x)) |
(*.f64 y x) |
(+.f64 (*.f64 y x) z) |
(+.f64 z (*.f64 y x)) |
(+.f64 (*.f64 y x) z) |
(+.f64 z (*.f64 y x)) |
(+.f64 (*.f64 y x) z) |
(+.f64 z (*.f64 y x)) |
(*.f64 y x) |
(+.f64 (*.f64 y x) z) |
(+.f64 z (*.f64 y x)) |
(+.f64 (*.f64 y x) z) |
(+.f64 z (*.f64 y x)) |
(+.f64 (*.f64 y x) z) |
(+.f64 z (*.f64 y x)) |
z |
(+.f64 (*.f64 y x) z) |
(+.f64 z (*.f64 y x)) |
(+.f64 (*.f64 y x) z) |
(+.f64 z (*.f64 y x)) |
(+.f64 (*.f64 y x) z) |
(+.f64 z (*.f64 y x)) |
(*.f64 y x) |
(+.f64 (*.f64 y x) z) |
(+.f64 z (*.f64 y x)) |
(+.f64 (*.f64 y x) z) |
(+.f64 z (*.f64 y x)) |
(+.f64 (*.f64 y x) z) |
(+.f64 z (*.f64 y x)) |
(*.f64 y x) |
(+.f64 (*.f64 y x) z) |
(+.f64 z (*.f64 y x)) |
(+.f64 (*.f64 y x) z) |
(+.f64 z (*.f64 y x)) |
(+.f64 (*.f64 y x) z) |
(+.f64 z (*.f64 y x)) |
(*.f64 y x) |
(+.f64 (*.f64 y x) z) |
(+.f64 z (*.f64 y x)) |
(+.f64 (*.f64 y x) z) |
(+.f64 z (*.f64 y x)) |
(+.f64 (*.f64 y x) z) |
(+.f64 z (*.f64 y x)) |
z |
(+.f64 (*.f64 y x) z) |
(+.f64 z (*.f64 y x)) |
(+.f64 (*.f64 y x) z) |
(+.f64 z (*.f64 y x)) |
(+.f64 (*.f64 y x) z) |
(+.f64 z (*.f64 y x)) |
z |
(+.f64 (*.f64 y x) z) |
(+.f64 z (*.f64 y x)) |
(+.f64 (*.f64 y x) z) |
(+.f64 z (*.f64 y x)) |
(+.f64 (*.f64 y x) z) |
(+.f64 z (*.f64 y x)) |
(-.f64 (+.f64 (*.f64 x y) z) 0) |
(+.f64 z (*.f64 y x)) |
(*.f64 (+.f64 (*.f64 x y) z) 1) |
(+.f64 z (*.f64 y x)) |
(*.f64 (+.f64 (*.f64 x y) z) (/.f64 (+.f64 (*.f64 x y) z) (+.f64 (*.f64 x y) z))) |
(+.f64 z (*.f64 y x)) |
(*.f64 (+.f64 (*.f64 x y) z) (*.f64 (+.f64 (*.f64 x y) z) (/.f64 1 (+.f64 (*.f64 x y) z)))) |
(+.f64 z (*.f64 y x)) |
(*.f64 (+.f64 (*.f64 x y) z) (/.f64 1 (/.f64 (+.f64 (*.f64 x y) z) (+.f64 (*.f64 x y) z)))) |
(+.f64 z (*.f64 y x)) |
(*.f64 1 (+.f64 (*.f64 x y) z)) |
(+.f64 z (*.f64 y x)) |
(*.f64 (/.f64 (+.f64 (*.f64 x y) z) (+.f64 (*.f64 x y) z)) (+.f64 (*.f64 x y) z)) |
(+.f64 z (*.f64 y x)) |
(*.f64 (/.f64 1 (+.f64 (*.f64 x y) z)) (*.f64 (+.f64 (*.f64 x y) z) (+.f64 (*.f64 x y) z))) |
(+.f64 z (*.f64 y x)) |
(*.f64 (*.f64 (+.f64 (*.f64 x y) z) (+.f64 (*.f64 x y) z)) (/.f64 1 (+.f64 (*.f64 x y) z))) |
(+.f64 z (*.f64 y x)) |
(*.f64 (*.f64 (+.f64 (*.f64 x y) z) (/.f64 1 (+.f64 (*.f64 x y) z))) (+.f64 (*.f64 x y) z)) |
(+.f64 z (*.f64 y x)) |
(*.f64 (/.f64 1 (/.f64 (+.f64 (*.f64 x y) z) (+.f64 (*.f64 x y) z))) (*.f64 (+.f64 (*.f64 x y) z) (*.f64 (/.f64 (+.f64 (*.f64 x y) z) (+.f64 (*.f64 x y) z)) (/.f64 (+.f64 (*.f64 x y) z) (+.f64 (*.f64 x y) z))))) |
(+.f64 z (*.f64 y x)) |
(*.f64 (/.f64 (/.f64 1 (+.f64 (*.f64 x y) z)) (*.f64 (+.f64 (*.f64 x y) z) (+.f64 (*.f64 x y) z))) (*.f64 (+.f64 (*.f64 x y) z) (*.f64 (+.f64 (*.f64 x y) z) (*.f64 (+.f64 (*.f64 x y) z) (+.f64 (*.f64 x y) z))))) |
(+.f64 z (*.f64 y x)) |
(*.f64 (/.f64 (/.f64 (+.f64 (*.f64 x y) z) (+.f64 (*.f64 x y) z)) (+.f64 (*.f64 x y) z)) (*.f64 (+.f64 (*.f64 x y) z) (+.f64 (*.f64 x y) z))) |
(+.f64 z (*.f64 y x)) |
(*.f64 (/.f64 (*.f64 (+.f64 (*.f64 x y) z) (/.f64 1 (+.f64 (*.f64 x y) z))) (+.f64 (*.f64 x y) z)) (*.f64 (+.f64 (*.f64 x y) z) (+.f64 (*.f64 x y) z))) |
(+.f64 z (*.f64 y x)) |
(/.f64 (+.f64 (*.f64 x y) z) 1) |
(+.f64 z (*.f64 y x)) |
(/.f64 (+.f64 (*.f64 x y) z) (/.f64 (+.f64 (*.f64 x y) z) (+.f64 (*.f64 x y) z))) |
(+.f64 z (*.f64 y x)) |
(/.f64 (*.f64 (+.f64 (*.f64 x y) z) 2) 2) |
(/.f64 (*.f64 (+.f64 z (*.f64 y x)) 2) 2) |
(pow.f64 (+.f64 (*.f64 x y) z) 1) |
(+.f64 z (*.f64 y x)) |
Found 1 expressions with local error:
| New | Error | Program |
|---|---|---|
| 0.0b | (*.f64 x (+.f64 (neg.f64 z) y)) |
Compiled 18 to 6 computations (66.7% saved)
Found 1 expressions with local error:
| New | Error | Program |
|---|---|---|
| ✓ | 0.0b | (+.f64 (*.f64 x y) (*.f64 z (neg.f64 x))) |
Compiled 23 to 7 computations (69.6% saved)
9 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 1.0ms | z | @ | inf | (+.f64 (*.f64 x y) (*.f64 z (neg.f64 x))) |
| 1.0ms | x | @ | 0 | (+.f64 (*.f64 x y) (*.f64 z (neg.f64 x))) |
| 0.0ms | x | @ | inf | (+.f64 (*.f64 x y) (*.f64 z (neg.f64 x))) |
| 0.0ms | y | @ | 0 | (+.f64 (*.f64 x y) (*.f64 z (neg.f64 x))) |
| 0.0ms | z | @ | 0 | (+.f64 (*.f64 x y) (*.f64 z (neg.f64 x))) |
| 1× | batch-egg-rewrite |
| 1120× | rational_best-simplify-57 |
| 782× | rational_best-simplify-44 |
| 684× | rational_best-simplify-43 |
| 562× | rational_best-simplify-47 |
| 558× | rational_best-5 |
Useful iterations: 2 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 10 | 23 |
| 1 | 89 | 23 |
| 2 | 302 | 17 |
| 3 | 1222 | 17 |
| 4 | 5462 | 17 |
| 1× | node limit |
| Inputs |
|---|
(+.f64 (*.f64 x y) (*.f64 z (neg.f64 x))) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 x (+.f64 y (neg.f64 z))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (neg.f64 (*.f64 x (+.f64 y (neg.f64 z)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (+.f64 y (neg.f64 z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (*.f64 1 (+.f64 y (neg.f64 z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x (+.f64 y (neg.f64 z))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x (+.f64 y (neg.f64 z))) (/.f64 (*.f64 x (+.f64 y (neg.f64 z))) (*.f64 x (+.f64 y (neg.f64 z)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x (+.f64 y (neg.f64 z))) (*.f64 x (*.f64 (/.f64 1 (*.f64 x (+.f64 y (neg.f64 z)))) (+.f64 y (neg.f64 z)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x (+.f64 y (neg.f64 z))) (/.f64 1 (/.f64 (*.f64 x (+.f64 y (neg.f64 z))) (*.f64 x (+.f64 y (neg.f64 z))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 x (+.f64 y (neg.f64 z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 x (+.f64 y (neg.f64 z))) (*.f64 x (+.f64 y (neg.f64 z)))) (*.f64 x (+.f64 y (neg.f64 z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (*.f64 x (+.f64 y (neg.f64 z)))) (*.f64 (*.f64 x (+.f64 y (neg.f64 z))) (*.f64 x (+.f64 y (neg.f64 z)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 x (+.f64 y (neg.f64 z))) (*.f64 x (+.f64 y (neg.f64 z)))) (/.f64 1 (*.f64 x (+.f64 y (neg.f64 z)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x (*.f64 (/.f64 1 (*.f64 x (+.f64 y (neg.f64 z)))) (+.f64 y (neg.f64 z)))) (*.f64 x (+.f64 y (neg.f64 z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 y (neg.f64 z)) x)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (/.f64 (*.f64 x (+.f64 y (neg.f64 z))) (*.f64 x (+.f64 y (neg.f64 z))))) (*.f64 (*.f64 x (+.f64 y (neg.f64 z))) (*.f64 (/.f64 (*.f64 x (+.f64 y (neg.f64 z))) (*.f64 x (+.f64 y (neg.f64 z)))) (/.f64 (*.f64 x (+.f64 y (neg.f64 z))) (*.f64 x (+.f64 y (neg.f64 z)))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (/.f64 1 (*.f64 x (+.f64 y (neg.f64 z)))) (*.f64 (*.f64 x (+.f64 y (neg.f64 z))) (*.f64 x (+.f64 y (neg.f64 z))))) (*.f64 (*.f64 x (+.f64 y (neg.f64 z))) (*.f64 (*.f64 x (+.f64 y (neg.f64 z))) (*.f64 (*.f64 x (+.f64 y (neg.f64 z))) (*.f64 x (+.f64 y (neg.f64 z)))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (/.f64 (*.f64 x (+.f64 y (neg.f64 z))) (*.f64 x (+.f64 y (neg.f64 z)))) (*.f64 x (+.f64 y (neg.f64 z)))) (*.f64 (*.f64 x (+.f64 y (neg.f64 z))) (*.f64 x (+.f64 y (neg.f64 z)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 x (*.f64 (/.f64 1 (*.f64 x (+.f64 y (neg.f64 z)))) (+.f64 y (neg.f64 z)))) (*.f64 x (+.f64 y (neg.f64 z)))) (*.f64 (*.f64 x (+.f64 y (neg.f64 z))) (*.f64 x (+.f64 y (neg.f64 z)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (/.f64 1 (/.f64 (*.f64 x (+.f64 y (neg.f64 z))) (*.f64 x (+.f64 y (neg.f64 z))))) (*.f64 x (+.f64 y (neg.f64 z)))) (*.f64 (*.f64 x (+.f64 y (neg.f64 z))) (*.f64 x (+.f64 y (neg.f64 z)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (+.f64 y (neg.f64 z))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (+.f64 y (neg.f64 z))) (/.f64 (*.f64 x (+.f64 y (neg.f64 z))) (*.f64 x (+.f64 y (neg.f64 z)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 x (+.f64 y (neg.f64 z))) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (neg.f64 (*.f64 x (+.f64 y (neg.f64 z)))) 2) -2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x (+.f64 y (neg.f64 z))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (neg.f64 (*.f64 x (+.f64 y (neg.f64 z))))))))) |
| 1× | egg-herbie |
| 1208× | rational_best-simplify-80 |
| 1154× | rational_best-simplify-82 |
| 1152× | rational_best-simplify-83 |
| 1144× | rational_best-simplify-78 |
| 902× | rational_best-simplify-94 |
Useful iterations: 1 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 67 | 1171 |
| 1 | 139 | 1113 |
| 2 | 674 | 1113 |
| 3 | 3104 | 1113 |
| 4 | 5692 | 1113 |
| 1× | node limit |
| Inputs |
|---|
(*.f64 (+.f64 (*.f64 -1 z) y) x) |
(*.f64 (+.f64 (*.f64 -1 z) y) x) |
(*.f64 (+.f64 (*.f64 -1 z) y) x) |
(*.f64 (+.f64 (*.f64 -1 z) y) x) |
(*.f64 (+.f64 (*.f64 -1 z) y) x) |
(*.f64 (+.f64 (*.f64 -1 z) y) x) |
(*.f64 (+.f64 (*.f64 -1 z) y) x) |
(*.f64 (+.f64 (*.f64 -1 z) y) x) |
(*.f64 -1 (*.f64 x (+.f64 z (*.f64 -1 y)))) |
(*.f64 -1 (*.f64 x (+.f64 z (*.f64 -1 y)))) |
(*.f64 -1 (*.f64 x (+.f64 z (*.f64 -1 y)))) |
(*.f64 -1 (*.f64 x (+.f64 z (*.f64 -1 y)))) |
(*.f64 -1 (*.f64 z x)) |
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x))) |
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x))) |
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x))) |
(*.f64 y x) |
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x))) |
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x))) |
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x))) |
(*.f64 y x) |
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x))) |
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x))) |
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x))) |
(*.f64 y x) |
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x))) |
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x))) |
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x))) |
(*.f64 -1 (*.f64 z x)) |
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x))) |
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x))) |
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x))) |
(*.f64 -1 (*.f64 z x)) |
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x))) |
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x))) |
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x))) |
(-.f64 (*.f64 x (+.f64 y (neg.f64 z))) 0) |
(-.f64 0 (neg.f64 (*.f64 x (+.f64 y (neg.f64 z))))) |
(*.f64 x (+.f64 y (neg.f64 z))) |
(*.f64 x (*.f64 1 (+.f64 y (neg.f64 z)))) |
(*.f64 (*.f64 x (+.f64 y (neg.f64 z))) 1) |
(*.f64 (*.f64 x (+.f64 y (neg.f64 z))) (/.f64 (*.f64 x (+.f64 y (neg.f64 z))) (*.f64 x (+.f64 y (neg.f64 z))))) |
(*.f64 (*.f64 x (+.f64 y (neg.f64 z))) (*.f64 x (*.f64 (/.f64 1 (*.f64 x (+.f64 y (neg.f64 z)))) (+.f64 y (neg.f64 z))))) |
(*.f64 (*.f64 x (+.f64 y (neg.f64 z))) (/.f64 1 (/.f64 (*.f64 x (+.f64 y (neg.f64 z))) (*.f64 x (+.f64 y (neg.f64 z)))))) |
(*.f64 1 (*.f64 x (+.f64 y (neg.f64 z)))) |
(*.f64 (/.f64 (*.f64 x (+.f64 y (neg.f64 z))) (*.f64 x (+.f64 y (neg.f64 z)))) (*.f64 x (+.f64 y (neg.f64 z)))) |
(*.f64 (/.f64 1 (*.f64 x (+.f64 y (neg.f64 z)))) (*.f64 (*.f64 x (+.f64 y (neg.f64 z))) (*.f64 x (+.f64 y (neg.f64 z))))) |
(*.f64 (*.f64 (*.f64 x (+.f64 y (neg.f64 z))) (*.f64 x (+.f64 y (neg.f64 z)))) (/.f64 1 (*.f64 x (+.f64 y (neg.f64 z))))) |
(*.f64 (*.f64 x (*.f64 (/.f64 1 (*.f64 x (+.f64 y (neg.f64 z)))) (+.f64 y (neg.f64 z)))) (*.f64 x (+.f64 y (neg.f64 z)))) |
(*.f64 (+.f64 y (neg.f64 z)) x) |
(*.f64 (/.f64 1 (/.f64 (*.f64 x (+.f64 y (neg.f64 z))) (*.f64 x (+.f64 y (neg.f64 z))))) (*.f64 (*.f64 x (+.f64 y (neg.f64 z))) (*.f64 (/.f64 (*.f64 x (+.f64 y (neg.f64 z))) (*.f64 x (+.f64 y (neg.f64 z)))) (/.f64 (*.f64 x (+.f64 y (neg.f64 z))) (*.f64 x (+.f64 y (neg.f64 z))))))) |
(*.f64 (/.f64 (/.f64 1 (*.f64 x (+.f64 y (neg.f64 z)))) (*.f64 (*.f64 x (+.f64 y (neg.f64 z))) (*.f64 x (+.f64 y (neg.f64 z))))) (*.f64 (*.f64 x (+.f64 y (neg.f64 z))) (*.f64 (*.f64 x (+.f64 y (neg.f64 z))) (*.f64 (*.f64 x (+.f64 y (neg.f64 z))) (*.f64 x (+.f64 y (neg.f64 z))))))) |
(*.f64 (/.f64 (/.f64 (*.f64 x (+.f64 y (neg.f64 z))) (*.f64 x (+.f64 y (neg.f64 z)))) (*.f64 x (+.f64 y (neg.f64 z)))) (*.f64 (*.f64 x (+.f64 y (neg.f64 z))) (*.f64 x (+.f64 y (neg.f64 z))))) |
(*.f64 (/.f64 (*.f64 x (*.f64 (/.f64 1 (*.f64 x (+.f64 y (neg.f64 z)))) (+.f64 y (neg.f64 z)))) (*.f64 x (+.f64 y (neg.f64 z)))) (*.f64 (*.f64 x (+.f64 y (neg.f64 z))) (*.f64 x (+.f64 y (neg.f64 z))))) |
(*.f64 (/.f64 (/.f64 1 (/.f64 (*.f64 x (+.f64 y (neg.f64 z))) (*.f64 x (+.f64 y (neg.f64 z))))) (*.f64 x (+.f64 y (neg.f64 z)))) (*.f64 (*.f64 x (+.f64 y (neg.f64 z))) (*.f64 x (+.f64 y (neg.f64 z))))) |
(/.f64 (*.f64 x (+.f64 y (neg.f64 z))) 1) |
(/.f64 (*.f64 x (+.f64 y (neg.f64 z))) (/.f64 (*.f64 x (+.f64 y (neg.f64 z))) (*.f64 x (+.f64 y (neg.f64 z))))) |
(/.f64 (*.f64 (*.f64 x (+.f64 y (neg.f64 z))) 2) 2) |
(/.f64 (*.f64 (neg.f64 (*.f64 x (+.f64 y (neg.f64 z)))) 2) -2) |
(pow.f64 (*.f64 x (+.f64 y (neg.f64 z))) 1) |
(neg.f64 (neg.f64 (*.f64 x (+.f64 y (neg.f64 z))))) |
| Outputs |
|---|
(*.f64 (+.f64 (*.f64 -1 z) y) x) |
(*.f64 x (+.f64 y (neg.f64 z))) |
(*.f64 (+.f64 (*.f64 -1 z) y) x) |
(*.f64 x (+.f64 y (neg.f64 z))) |
(*.f64 (+.f64 (*.f64 -1 z) y) x) |
(*.f64 x (+.f64 y (neg.f64 z))) |
(*.f64 (+.f64 (*.f64 -1 z) y) x) |
(*.f64 x (+.f64 y (neg.f64 z))) |
(*.f64 (+.f64 (*.f64 -1 z) y) x) |
(*.f64 x (+.f64 y (neg.f64 z))) |
(*.f64 (+.f64 (*.f64 -1 z) y) x) |
(*.f64 x (+.f64 y (neg.f64 z))) |
(*.f64 (+.f64 (*.f64 -1 z) y) x) |
(*.f64 x (+.f64 y (neg.f64 z))) |
(*.f64 (+.f64 (*.f64 -1 z) y) x) |
(*.f64 x (+.f64 y (neg.f64 z))) |
(*.f64 -1 (*.f64 x (+.f64 z (*.f64 -1 y)))) |
(neg.f64 (*.f64 x (+.f64 z (neg.f64 y)))) |
(*.f64 (+.f64 z (neg.f64 y)) (neg.f64 x)) |
(*.f64 -1 (*.f64 x (+.f64 z (*.f64 -1 y)))) |
(neg.f64 (*.f64 x (+.f64 z (neg.f64 y)))) |
(*.f64 (+.f64 z (neg.f64 y)) (neg.f64 x)) |
(*.f64 -1 (*.f64 x (+.f64 z (*.f64 -1 y)))) |
(neg.f64 (*.f64 x (+.f64 z (neg.f64 y)))) |
(*.f64 (+.f64 z (neg.f64 y)) (neg.f64 x)) |
(*.f64 -1 (*.f64 x (+.f64 z (*.f64 -1 y)))) |
(neg.f64 (*.f64 x (+.f64 z (neg.f64 y)))) |
(*.f64 (+.f64 z (neg.f64 y)) (neg.f64 x)) |
(*.f64 -1 (*.f64 z x)) |
(*.f64 x (neg.f64 z)) |
(*.f64 z (neg.f64 x)) |
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x))) |
(+.f64 (*.f64 -1 (*.f64 z x)) (*.f64 y x)) |
(+.f64 (*.f64 x (neg.f64 z)) (*.f64 y x)) |
(+.f64 (*.f64 z (neg.f64 x)) (*.f64 y x)) |
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x))) |
(+.f64 (*.f64 -1 (*.f64 z x)) (*.f64 y x)) |
(+.f64 (*.f64 x (neg.f64 z)) (*.f64 y x)) |
(+.f64 (*.f64 z (neg.f64 x)) (*.f64 y x)) |
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x))) |
(+.f64 (*.f64 -1 (*.f64 z x)) (*.f64 y x)) |
(+.f64 (*.f64 x (neg.f64 z)) (*.f64 y x)) |
(+.f64 (*.f64 z (neg.f64 x)) (*.f64 y x)) |
(*.f64 y x) |
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x))) |
(+.f64 (*.f64 -1 (*.f64 z x)) (*.f64 y x)) |
(+.f64 (*.f64 x (neg.f64 z)) (*.f64 y x)) |
(+.f64 (*.f64 z (neg.f64 x)) (*.f64 y x)) |
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x))) |
(+.f64 (*.f64 -1 (*.f64 z x)) (*.f64 y x)) |
(+.f64 (*.f64 x (neg.f64 z)) (*.f64 y x)) |
(+.f64 (*.f64 z (neg.f64 x)) (*.f64 y x)) |
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x))) |
(+.f64 (*.f64 -1 (*.f64 z x)) (*.f64 y x)) |
(+.f64 (*.f64 x (neg.f64 z)) (*.f64 y x)) |
(+.f64 (*.f64 z (neg.f64 x)) (*.f64 y x)) |
(*.f64 y x) |
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x))) |
(+.f64 (*.f64 -1 (*.f64 z x)) (*.f64 y x)) |
(+.f64 (*.f64 x (neg.f64 z)) (*.f64 y x)) |
(+.f64 (*.f64 z (neg.f64 x)) (*.f64 y x)) |
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x))) |
(+.f64 (*.f64 -1 (*.f64 z x)) (*.f64 y x)) |
(+.f64 (*.f64 x (neg.f64 z)) (*.f64 y x)) |
(+.f64 (*.f64 z (neg.f64 x)) (*.f64 y x)) |
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x))) |
(+.f64 (*.f64 -1 (*.f64 z x)) (*.f64 y x)) |
(+.f64 (*.f64 x (neg.f64 z)) (*.f64 y x)) |
(+.f64 (*.f64 z (neg.f64 x)) (*.f64 y x)) |
(*.f64 y x) |
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x))) |
(+.f64 (*.f64 -1 (*.f64 z x)) (*.f64 y x)) |
(+.f64 (*.f64 x (neg.f64 z)) (*.f64 y x)) |
(+.f64 (*.f64 z (neg.f64 x)) (*.f64 y x)) |
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x))) |
(+.f64 (*.f64 -1 (*.f64 z x)) (*.f64 y x)) |
(+.f64 (*.f64 x (neg.f64 z)) (*.f64 y x)) |
(+.f64 (*.f64 z (neg.f64 x)) (*.f64 y x)) |
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x))) |
(+.f64 (*.f64 -1 (*.f64 z x)) (*.f64 y x)) |
(+.f64 (*.f64 x (neg.f64 z)) (*.f64 y x)) |
(+.f64 (*.f64 z (neg.f64 x)) (*.f64 y x)) |
(*.f64 -1 (*.f64 z x)) |
(*.f64 x (neg.f64 z)) |
(*.f64 z (neg.f64 x)) |
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x))) |
(+.f64 (*.f64 -1 (*.f64 z x)) (*.f64 y x)) |
(+.f64 (*.f64 x (neg.f64 z)) (*.f64 y x)) |
(+.f64 (*.f64 z (neg.f64 x)) (*.f64 y x)) |
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x))) |
(+.f64 (*.f64 -1 (*.f64 z x)) (*.f64 y x)) |
(+.f64 (*.f64 x (neg.f64 z)) (*.f64 y x)) |
(+.f64 (*.f64 z (neg.f64 x)) (*.f64 y x)) |
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x))) |
(+.f64 (*.f64 -1 (*.f64 z x)) (*.f64 y x)) |
(+.f64 (*.f64 x (neg.f64 z)) (*.f64 y x)) |
(+.f64 (*.f64 z (neg.f64 x)) (*.f64 y x)) |
(*.f64 -1 (*.f64 z x)) |
(*.f64 x (neg.f64 z)) |
(*.f64 z (neg.f64 x)) |
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x))) |
(+.f64 (*.f64 -1 (*.f64 z x)) (*.f64 y x)) |
(+.f64 (*.f64 x (neg.f64 z)) (*.f64 y x)) |
(+.f64 (*.f64 z (neg.f64 x)) (*.f64 y x)) |
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x))) |
(+.f64 (*.f64 -1 (*.f64 z x)) (*.f64 y x)) |
(+.f64 (*.f64 x (neg.f64 z)) (*.f64 y x)) |
(+.f64 (*.f64 z (neg.f64 x)) (*.f64 y x)) |
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x))) |
(+.f64 (*.f64 -1 (*.f64 z x)) (*.f64 y x)) |
(+.f64 (*.f64 x (neg.f64 z)) (*.f64 y x)) |
(+.f64 (*.f64 z (neg.f64 x)) (*.f64 y x)) |
(-.f64 (*.f64 x (+.f64 y (neg.f64 z))) 0) |
(*.f64 x (+.f64 y (neg.f64 z))) |
(-.f64 0 (neg.f64 (*.f64 x (+.f64 y (neg.f64 z))))) |
(*.f64 x (+.f64 y (neg.f64 z))) |
(*.f64 x (+.f64 y (neg.f64 z))) |
(*.f64 x (*.f64 1 (+.f64 y (neg.f64 z)))) |
(*.f64 x (+.f64 y (neg.f64 z))) |
(*.f64 (*.f64 x (+.f64 y (neg.f64 z))) 1) |
(*.f64 x (+.f64 y (neg.f64 z))) |
(*.f64 (*.f64 x (+.f64 y (neg.f64 z))) (/.f64 (*.f64 x (+.f64 y (neg.f64 z))) (*.f64 x (+.f64 y (neg.f64 z))))) |
(*.f64 x (+.f64 y (neg.f64 z))) |
(*.f64 (*.f64 x (+.f64 y (neg.f64 z))) (*.f64 x (*.f64 (/.f64 1 (*.f64 x (+.f64 y (neg.f64 z)))) (+.f64 y (neg.f64 z))))) |
(*.f64 x (+.f64 y (neg.f64 z))) |
(*.f64 (*.f64 x (+.f64 y (neg.f64 z))) (/.f64 1 (/.f64 (*.f64 x (+.f64 y (neg.f64 z))) (*.f64 x (+.f64 y (neg.f64 z)))))) |
(*.f64 x (+.f64 y (neg.f64 z))) |
(*.f64 1 (*.f64 x (+.f64 y (neg.f64 z)))) |
(*.f64 x (+.f64 y (neg.f64 z))) |
(*.f64 (/.f64 (*.f64 x (+.f64 y (neg.f64 z))) (*.f64 x (+.f64 y (neg.f64 z)))) (*.f64 x (+.f64 y (neg.f64 z)))) |
(*.f64 x (+.f64 y (neg.f64 z))) |
(*.f64 (/.f64 1 (*.f64 x (+.f64 y (neg.f64 z)))) (*.f64 (*.f64 x (+.f64 y (neg.f64 z))) (*.f64 x (+.f64 y (neg.f64 z))))) |
(*.f64 x (+.f64 y (neg.f64 z))) |
(*.f64 (*.f64 (*.f64 x (+.f64 y (neg.f64 z))) (*.f64 x (+.f64 y (neg.f64 z)))) (/.f64 1 (*.f64 x (+.f64 y (neg.f64 z))))) |
(*.f64 x (+.f64 y (neg.f64 z))) |
(*.f64 (*.f64 x (*.f64 (/.f64 1 (*.f64 x (+.f64 y (neg.f64 z)))) (+.f64 y (neg.f64 z)))) (*.f64 x (+.f64 y (neg.f64 z)))) |
(*.f64 x (+.f64 y (neg.f64 z))) |
(*.f64 (+.f64 y (neg.f64 z)) x) |
(*.f64 x (+.f64 y (neg.f64 z))) |
(*.f64 (/.f64 1 (/.f64 (*.f64 x (+.f64 y (neg.f64 z))) (*.f64 x (+.f64 y (neg.f64 z))))) (*.f64 (*.f64 x (+.f64 y (neg.f64 z))) (*.f64 (/.f64 (*.f64 x (+.f64 y (neg.f64 z))) (*.f64 x (+.f64 y (neg.f64 z)))) (/.f64 (*.f64 x (+.f64 y (neg.f64 z))) (*.f64 x (+.f64 y (neg.f64 z))))))) |
(*.f64 x (+.f64 y (neg.f64 z))) |
(*.f64 (/.f64 (/.f64 1 (*.f64 x (+.f64 y (neg.f64 z)))) (*.f64 (*.f64 x (+.f64 y (neg.f64 z))) (*.f64 x (+.f64 y (neg.f64 z))))) (*.f64 (*.f64 x (+.f64 y (neg.f64 z))) (*.f64 (*.f64 x (+.f64 y (neg.f64 z))) (*.f64 (*.f64 x (+.f64 y (neg.f64 z))) (*.f64 x (+.f64 y (neg.f64 z))))))) |
(*.f64 x (+.f64 y (neg.f64 z))) |
(*.f64 (/.f64 (/.f64 (*.f64 x (+.f64 y (neg.f64 z))) (*.f64 x (+.f64 y (neg.f64 z)))) (*.f64 x (+.f64 y (neg.f64 z)))) (*.f64 (*.f64 x (+.f64 y (neg.f64 z))) (*.f64 x (+.f64 y (neg.f64 z))))) |
(*.f64 x (+.f64 y (neg.f64 z))) |
(*.f64 (/.f64 (*.f64 x (*.f64 (/.f64 1 (*.f64 x (+.f64 y (neg.f64 z)))) (+.f64 y (neg.f64 z)))) (*.f64 x (+.f64 y (neg.f64 z)))) (*.f64 (*.f64 x (+.f64 y (neg.f64 z))) (*.f64 x (+.f64 y (neg.f64 z))))) |
(*.f64 x (+.f64 y (neg.f64 z))) |
(*.f64 (/.f64 (/.f64 1 (/.f64 (*.f64 x (+.f64 y (neg.f64 z))) (*.f64 x (+.f64 y (neg.f64 z))))) (*.f64 x (+.f64 y (neg.f64 z)))) (*.f64 (*.f64 x (+.f64 y (neg.f64 z))) (*.f64 x (+.f64 y (neg.f64 z))))) |
(*.f64 x (+.f64 y (neg.f64 z))) |
(/.f64 (*.f64 x (+.f64 y (neg.f64 z))) 1) |
(*.f64 x (+.f64 y (neg.f64 z))) |
(/.f64 (*.f64 x (+.f64 y (neg.f64 z))) (/.f64 (*.f64 x (+.f64 y (neg.f64 z))) (*.f64 x (+.f64 y (neg.f64 z))))) |
(*.f64 x (+.f64 y (neg.f64 z))) |
(/.f64 (*.f64 (*.f64 x (+.f64 y (neg.f64 z))) 2) 2) |
(*.f64 x (+.f64 y (neg.f64 z))) |
(/.f64 (*.f64 (neg.f64 (*.f64 x (+.f64 y (neg.f64 z)))) 2) -2) |
(*.f64 x (+.f64 y (neg.f64 z))) |
(pow.f64 (*.f64 x (+.f64 y (neg.f64 z))) 1) |
(*.f64 x (+.f64 y (neg.f64 z))) |
(neg.f64 (neg.f64 (*.f64 x (+.f64 y (neg.f64 z))))) |
(*.f64 x (+.f64 y (neg.f64 z))) |
Compiled 2058 to 420 computations (79.6% saved)
9 alts after pruning (6 fresh and 3 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 141 | 6 | 147 |
| Fresh | 0 | 0 | 0 |
| Picked | 0 | 1 | 1 |
| Done | 3 | 2 | 5 |
| Total | 144 | 9 | 153 |
| Status | Error | Program |
|---|---|---|
| ▶ | 0.0b | (+.f64 (*.f64 (-.f64 y z) x) z) |
| ✓ | 28.9b | (+.f64 (*.f64 x y) (*.f64 z (neg.f64 x))) |
| ✓ | 12.2b | (+.f64 (*.f64 x y) z) |
| ▶ | 21.8b | (+.f64 z (*.f64 z (neg.f64 x))) |
| ▶ | 28.9b | (*.f64 (-.f64 y z) x) |
| ▶ | 21.8b | (*.f64 (+.f64 x -1) (neg.f64 z)) |
| ▶ | 50.6b | (*.f64 z (neg.f64 x)) |
| ✓ | 40.4b | (*.f64 y x) |
| 33.6b | z |
Compiled 115 to 77 computations (33% saved)
Found 2 expressions with local error:
| New | Error | Program |
|---|---|---|
| ✓ | 0.0b | (+.f64 (*.f64 (-.f64 y z) x) z) |
| ✓ | 0.0b | (*.f64 (-.f64 y z) x) |
Compiled 21 to 6 computations (71.4% saved)
18 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 0.0ms | y | @ | 0 | (*.f64 (-.f64 y z) x) |
| 0.0ms | z | @ | -inf | (+.f64 (*.f64 (-.f64 y z) x) z) |
| 0.0ms | y | @ | inf | (*.f64 (-.f64 y z) x) |
| 0.0ms | y | @ | -inf | (*.f64 (-.f64 y z) x) |
| 0.0ms | y | @ | -inf | (+.f64 (*.f64 (-.f64 y z) x) z) |
| 1× | batch-egg-rewrite |
| 868× | rational_best-simplify-57 |
| 672× | rational_best-simplify-80 |
| 614× | rational_best-simplify-43 |
| 590× | rational_best-simplify-49 |
| 464× | rational_best-simplify-78 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 8 | 32 |
| 1 | 68 | 32 |
| 2 | 236 | 32 |
| 3 | 991 | 32 |
| 4 | 4333 | 32 |
| 1× | node limit |
| Inputs |
|---|
(*.f64 (-.f64 y z) x) |
(+.f64 (*.f64 (-.f64 y z) x) z) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (-.f64 y z) x) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (-.f64 y z) x))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (-.f64 y z) x) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (neg.f64 (*.f64 (-.f64 y z) x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 y z) x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 y z) x) (/.f64 (*.f64 (-.f64 y z) x) (*.f64 (-.f64 y z) x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 y z) (+.f64 x x)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (neg.f64 (*.f64 (-.f64 y z) x)) 2) -2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (-.f64 y z) x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (neg.f64 (*.f64 (-.f64 y z) x))))))) |
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 z (*.f64 (-.f64 y z) x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (neg.f64 (+.f64 z (*.f64 (-.f64 y z) x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 z (*.f64 (-.f64 y z) x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (/.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (+.f64 z (*.f64 (-.f64 y z) x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (*.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (/.f64 1 (+.f64 z (*.f64 (-.f64 y z) x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (/.f64 1 (/.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (+.f64 z (*.f64 (-.f64 y z) x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 z (*.f64 (-.f64 y z) x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (+.f64 z (*.f64 (-.f64 y z) x))) (+.f64 z (*.f64 (-.f64 y z) x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (+.f64 z (*.f64 (-.f64 y z) x))) (*.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (+.f64 z (*.f64 (-.f64 y z) x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (+.f64 z (*.f64 (-.f64 y z) x))) (/.f64 1 (+.f64 z (*.f64 (-.f64 y z) x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (+.f64 z (*.f64 (-.f64 y z) x))) (/.f64 (/.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (+.f64 z (*.f64 (-.f64 y z) x))) (+.f64 z (*.f64 (-.f64 y z) x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (+.f64 z (*.f64 (-.f64 y z) x))) (/.f64 (*.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (/.f64 1 (+.f64 z (*.f64 (-.f64 y z) x)))) (+.f64 z (*.f64 (-.f64 y z) x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (/.f64 1 (+.f64 z (*.f64 (-.f64 y z) x)))) (+.f64 z (*.f64 (-.f64 y z) x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (/.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (+.f64 z (*.f64 (-.f64 y z) x)))) (+.f64 z (*.f64 (-.f64 y z) x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (/.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (+.f64 z (*.f64 (-.f64 y z) x)))) (*.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (/.f64 (/.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (+.f64 z (*.f64 (-.f64 y z) x))) (/.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (+.f64 z (*.f64 (-.f64 y z) x))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (+.f64 z (*.f64 (-.f64 y z) x))) (*.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (+.f64 z (*.f64 (-.f64 y z) x)))) (/.f64 (/.f64 1 (+.f64 z (*.f64 (-.f64 y z) x))) (*.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (+.f64 z (*.f64 (-.f64 y z) x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (+.f64 z (*.f64 (-.f64 y z) x))) (*.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (+.f64 z (*.f64 (-.f64 y z) x)))) (/.f64 (/.f64 (/.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (+.f64 z (*.f64 (-.f64 y z) x))) (+.f64 z (*.f64 (-.f64 y z) x))) (*.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (+.f64 z (*.f64 (-.f64 y z) x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (+.f64 z (*.f64 (-.f64 y z) x))) (*.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (+.f64 z (*.f64 (-.f64 y z) x)))) (/.f64 (/.f64 (*.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (/.f64 1 (+.f64 z (*.f64 (-.f64 y z) x)))) (+.f64 z (*.f64 (-.f64 y z) x))) (*.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (+.f64 z (*.f64 (-.f64 y z) x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (/.f64 1 (+.f64 z (*.f64 (-.f64 y z) x))) (*.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (+.f64 z (*.f64 (-.f64 y z) x)))) (*.f64 (*.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (+.f64 z (*.f64 (-.f64 y z) x))) (*.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (+.f64 z (*.f64 (-.f64 y z) x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (/.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (+.f64 z (*.f64 (-.f64 y z) x))) (+.f64 z (*.f64 (-.f64 y z) x))) (*.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (+.f64 z (*.f64 (-.f64 y z) x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (/.f64 1 (+.f64 z (*.f64 (-.f64 y z) x)))) (+.f64 z (*.f64 (-.f64 y z) x))) (*.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (+.f64 z (*.f64 (-.f64 y z) x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 (*.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (+.f64 z (*.f64 (-.f64 y z) x))) (*.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (+.f64 z (*.f64 (-.f64 y z) x)))) (*.f64 (*.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (+.f64 z (*.f64 (-.f64 y z) x))) (*.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (+.f64 z (*.f64 (-.f64 y z) x))))) (/.f64 (/.f64 (/.f64 1 (+.f64 z (*.f64 (-.f64 y z) x))) (*.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (+.f64 z (*.f64 (-.f64 y z) x)))) (*.f64 (*.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (+.f64 z (*.f64 (-.f64 y z) x))) (*.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (+.f64 z (*.f64 (-.f64 y z) x))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (/.f64 (/.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (+.f64 z (*.f64 (-.f64 y z) x))) (+.f64 z (*.f64 (-.f64 y z) x))) (*.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (+.f64 z (*.f64 (-.f64 y z) x)))) (*.f64 (*.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (+.f64 z (*.f64 (-.f64 y z) x))) (*.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (+.f64 z (*.f64 (-.f64 y z) x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (/.f64 (*.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (/.f64 1 (+.f64 z (*.f64 (-.f64 y z) x)))) (+.f64 z (*.f64 (-.f64 y z) x))) (*.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (+.f64 z (*.f64 (-.f64 y z) x)))) (*.f64 (*.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (+.f64 z (*.f64 (-.f64 y z) x))) (*.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (+.f64 z (*.f64 (-.f64 y z) x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (/.f64 (/.f64 1 (+.f64 z (*.f64 (-.f64 y z) x))) (*.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (+.f64 z (*.f64 (-.f64 y z) x)))) (*.f64 (*.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (+.f64 z (*.f64 (-.f64 y z) x))) (*.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (+.f64 z (*.f64 (-.f64 y z) x))))) (*.f64 (*.f64 (*.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (+.f64 z (*.f64 (-.f64 y z) x))) (*.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (+.f64 z (*.f64 (-.f64 y z) x)))) (*.f64 (*.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (+.f64 z (*.f64 (-.f64 y z) x))) (*.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (+.f64 z (*.f64 (-.f64 y z) x))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (/.f64 1 (/.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (+.f64 z (*.f64 (-.f64 y z) x)))) (+.f64 z (*.f64 (-.f64 y z) x))) (*.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (+.f64 z (*.f64 (-.f64 y z) x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 z (*.f64 (-.f64 y z) x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (/.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (+.f64 z (*.f64 (-.f64 y z) x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 z (*.f64 (-.f64 y z) x)) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (neg.f64 (+.f64 z (*.f64 (-.f64 y z) x))) 2) -2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 z (*.f64 (-.f64 y z) x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (neg.f64 (+.f64 z (*.f64 (-.f64 y z) x)))))))) |
| 1× | egg-herbie |
| 816× | rational_best-simplify-2 |
| 810× | rational_best-simplify-135 |
| 780× | rational_best-simplify-49 |
| 736× | rational_best-simplify-129 |
| 678× | rational_best-simplify-80 |
Useful iterations: 1 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 96 | 1911 |
| 1 | 196 | 1827 |
| 2 | 873 | 1827 |
| 3 | 2858 | 1827 |
| 4 | 6148 | 1827 |
| 1× | node limit |
| Inputs |
|---|
(*.f64 -1 (*.f64 z x)) |
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x))) |
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x))) |
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x))) |
(*.f64 y x) |
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x))) |
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x))) |
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x))) |
(*.f64 y x) |
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x))) |
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x))) |
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x))) |
(*.f64 y x) |
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x))) |
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x))) |
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x))) |
(*.f64 -1 (*.f64 z x)) |
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x))) |
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x))) |
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x))) |
(*.f64 -1 (*.f64 z x)) |
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x))) |
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x))) |
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x))) |
(+.f64 (*.f64 -1 (*.f64 z x)) z) |
(+.f64 (*.f64 y x) (+.f64 z (*.f64 -1 (*.f64 z x)))) |
(+.f64 (*.f64 y x) (+.f64 z (*.f64 -1 (*.f64 z x)))) |
(+.f64 (*.f64 y x) (+.f64 z (*.f64 -1 (*.f64 z x)))) |
(*.f64 y x) |
(+.f64 (*.f64 y x) (+.f64 z (*.f64 -1 (*.f64 z x)))) |
(+.f64 (*.f64 y x) (+.f64 z (*.f64 -1 (*.f64 z x)))) |
(+.f64 (*.f64 y x) (+.f64 z (*.f64 -1 (*.f64 z x)))) |
(*.f64 y x) |
(+.f64 (*.f64 y x) (+.f64 (*.f64 -1 (*.f64 z x)) z)) |
(+.f64 (*.f64 y x) (+.f64 (*.f64 -1 (*.f64 z x)) z)) |
(+.f64 (*.f64 y x) (+.f64 (*.f64 -1 (*.f64 z x)) z)) |
(*.f64 y x) |
(+.f64 (*.f64 (+.f64 1 (*.f64 -1 x)) z) (*.f64 y x)) |
(+.f64 (*.f64 (+.f64 1 (*.f64 -1 x)) z) (*.f64 y x)) |
(+.f64 (*.f64 (+.f64 1 (*.f64 -1 x)) z) (*.f64 y x)) |
(*.f64 (+.f64 1 (*.f64 -1 x)) z) |
(+.f64 (*.f64 (+.f64 1 (*.f64 -1 x)) z) (*.f64 y x)) |
(+.f64 (*.f64 (+.f64 1 (*.f64 -1 x)) z) (*.f64 y x)) |
(+.f64 (*.f64 (+.f64 1 (*.f64 -1 x)) z) (*.f64 y x)) |
(*.f64 -1 (*.f64 (-.f64 x 1) z)) |
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 (-.f64 x 1) z))) |
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 (-.f64 x 1) z))) |
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 (-.f64 x 1) z))) |
z |
(*.f64 (-.f64 y z) x) |
(*.f64 (-.f64 y z) x) |
(+.f64 (*.f64 (-.f64 y z) x) 0) |
(+.f64 0 (*.f64 (-.f64 y z) x)) |
(-.f64 (*.f64 (-.f64 y z) x) 0) |
(-.f64 0 (neg.f64 (*.f64 (-.f64 y z) x))) |
(/.f64 (*.f64 (-.f64 y z) x) 1) |
(/.f64 (*.f64 (-.f64 y z) x) (/.f64 (*.f64 (-.f64 y z) x) (*.f64 (-.f64 y z) x))) |
(/.f64 (*.f64 (-.f64 y z) (+.f64 x x)) 2) |
(/.f64 (*.f64 (neg.f64 (*.f64 (-.f64 y z) x)) 2) -2) |
(pow.f64 (*.f64 (-.f64 y z) x) 1) |
(neg.f64 (neg.f64 (*.f64 (-.f64 y z) x))) |
(-.f64 (+.f64 z (*.f64 (-.f64 y z) x)) 0) |
(-.f64 0 (neg.f64 (+.f64 z (*.f64 (-.f64 y z) x)))) |
(*.f64 (+.f64 z (*.f64 (-.f64 y z) x)) 1) |
(*.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (/.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (+.f64 z (*.f64 (-.f64 y z) x)))) |
(*.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (*.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (/.f64 1 (+.f64 z (*.f64 (-.f64 y z) x))))) |
(*.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (/.f64 1 (/.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (+.f64 z (*.f64 (-.f64 y z) x))))) |
(*.f64 1 (+.f64 z (*.f64 (-.f64 y z) x))) |
(*.f64 (/.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (+.f64 z (*.f64 (-.f64 y z) x))) (+.f64 z (*.f64 (-.f64 y z) x))) |
(*.f64 (/.f64 1 (+.f64 z (*.f64 (-.f64 y z) x))) (*.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (+.f64 z (*.f64 (-.f64 y z) x)))) |
(*.f64 (*.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (+.f64 z (*.f64 (-.f64 y z) x))) (/.f64 1 (+.f64 z (*.f64 (-.f64 y z) x)))) |
(*.f64 (*.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (+.f64 z (*.f64 (-.f64 y z) x))) (/.f64 (/.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (+.f64 z (*.f64 (-.f64 y z) x))) (+.f64 z (*.f64 (-.f64 y z) x)))) |
(*.f64 (*.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (+.f64 z (*.f64 (-.f64 y z) x))) (/.f64 (*.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (/.f64 1 (+.f64 z (*.f64 (-.f64 y z) x)))) (+.f64 z (*.f64 (-.f64 y z) x)))) |
(*.f64 (*.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (/.f64 1 (+.f64 z (*.f64 (-.f64 y z) x)))) (+.f64 z (*.f64 (-.f64 y z) x))) |
(*.f64 (/.f64 1 (/.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (+.f64 z (*.f64 (-.f64 y z) x)))) (+.f64 z (*.f64 (-.f64 y z) x))) |
(*.f64 (/.f64 1 (/.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (+.f64 z (*.f64 (-.f64 y z) x)))) (*.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (/.f64 (/.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (+.f64 z (*.f64 (-.f64 y z) x))) (/.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (+.f64 z (*.f64 (-.f64 y z) x)))))) |
(*.f64 (*.f64 (*.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (+.f64 z (*.f64 (-.f64 y z) x))) (*.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (+.f64 z (*.f64 (-.f64 y z) x)))) (/.f64 (/.f64 1 (+.f64 z (*.f64 (-.f64 y z) x))) (*.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (+.f64 z (*.f64 (-.f64 y z) x))))) |
(*.f64 (*.f64 (*.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (+.f64 z (*.f64 (-.f64 y z) x))) (*.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (+.f64 z (*.f64 (-.f64 y z) x)))) (/.f64 (/.f64 (/.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (+.f64 z (*.f64 (-.f64 y z) x))) (+.f64 z (*.f64 (-.f64 y z) x))) (*.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (+.f64 z (*.f64 (-.f64 y z) x))))) |
(*.f64 (*.f64 (*.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (+.f64 z (*.f64 (-.f64 y z) x))) (*.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (+.f64 z (*.f64 (-.f64 y z) x)))) (/.f64 (/.f64 (*.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (/.f64 1 (+.f64 z (*.f64 (-.f64 y z) x)))) (+.f64 z (*.f64 (-.f64 y z) x))) (*.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (+.f64 z (*.f64 (-.f64 y z) x))))) |
(*.f64 (/.f64 (/.f64 1 (+.f64 z (*.f64 (-.f64 y z) x))) (*.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (+.f64 z (*.f64 (-.f64 y z) x)))) (*.f64 (*.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (+.f64 z (*.f64 (-.f64 y z) x))) (*.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (+.f64 z (*.f64 (-.f64 y z) x))))) |
(*.f64 (/.f64 (/.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (+.f64 z (*.f64 (-.f64 y z) x))) (+.f64 z (*.f64 (-.f64 y z) x))) (*.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (+.f64 z (*.f64 (-.f64 y z) x)))) |
(*.f64 (/.f64 (*.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (/.f64 1 (+.f64 z (*.f64 (-.f64 y z) x)))) (+.f64 z (*.f64 (-.f64 y z) x))) (*.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (+.f64 z (*.f64 (-.f64 y z) x)))) |
(*.f64 (*.f64 (*.f64 (*.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (+.f64 z (*.f64 (-.f64 y z) x))) (*.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (+.f64 z (*.f64 (-.f64 y z) x)))) (*.f64 (*.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (+.f64 z (*.f64 (-.f64 y z) x))) (*.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (+.f64 z (*.f64 (-.f64 y z) x))))) (/.f64 (/.f64 (/.f64 1 (+.f64 z (*.f64 (-.f64 y z) x))) (*.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (+.f64 z (*.f64 (-.f64 y z) x)))) (*.f64 (*.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (+.f64 z (*.f64 (-.f64 y z) x))) (*.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (+.f64 z (*.f64 (-.f64 y z) x)))))) |
(*.f64 (/.f64 (/.f64 (/.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (+.f64 z (*.f64 (-.f64 y z) x))) (+.f64 z (*.f64 (-.f64 y z) x))) (*.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (+.f64 z (*.f64 (-.f64 y z) x)))) (*.f64 (*.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (+.f64 z (*.f64 (-.f64 y z) x))) (*.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (+.f64 z (*.f64 (-.f64 y z) x))))) |
(*.f64 (/.f64 (/.f64 (*.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (/.f64 1 (+.f64 z (*.f64 (-.f64 y z) x)))) (+.f64 z (*.f64 (-.f64 y z) x))) (*.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (+.f64 z (*.f64 (-.f64 y z) x)))) (*.f64 (*.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (+.f64 z (*.f64 (-.f64 y z) x))) (*.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (+.f64 z (*.f64 (-.f64 y z) x))))) |
(*.f64 (/.f64 (/.f64 (/.f64 1 (+.f64 z (*.f64 (-.f64 y z) x))) (*.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (+.f64 z (*.f64 (-.f64 y z) x)))) (*.f64 (*.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (+.f64 z (*.f64 (-.f64 y z) x))) (*.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (+.f64 z (*.f64 (-.f64 y z) x))))) (*.f64 (*.f64 (*.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (+.f64 z (*.f64 (-.f64 y z) x))) (*.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (+.f64 z (*.f64 (-.f64 y z) x)))) (*.f64 (*.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (+.f64 z (*.f64 (-.f64 y z) x))) (*.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (+.f64 z (*.f64 (-.f64 y z) x)))))) |
(*.f64 (/.f64 (/.f64 1 (/.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (+.f64 z (*.f64 (-.f64 y z) x)))) (+.f64 z (*.f64 (-.f64 y z) x))) (*.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (+.f64 z (*.f64 (-.f64 y z) x)))) |
(/.f64 (+.f64 z (*.f64 (-.f64 y z) x)) 1) |
(/.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (/.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (+.f64 z (*.f64 (-.f64 y z) x)))) |
(/.f64 (*.f64 (+.f64 z (*.f64 (-.f64 y z) x)) 2) 2) |
(/.f64 (*.f64 (neg.f64 (+.f64 z (*.f64 (-.f64 y z) x))) 2) -2) |
(pow.f64 (+.f64 z (*.f64 (-.f64 y z) x)) 1) |
(neg.f64 (neg.f64 (+.f64 z (*.f64 (-.f64 y z) x)))) |
| Outputs |
|---|
(*.f64 -1 (*.f64 z x)) |
(*.f64 z (neg.f64 x)) |
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x))) |
(+.f64 (*.f64 -1 (*.f64 z x)) (*.f64 x y)) |
(+.f64 (*.f64 z (neg.f64 x)) (*.f64 x y)) |
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x))) |
(+.f64 (*.f64 -1 (*.f64 z x)) (*.f64 x y)) |
(+.f64 (*.f64 z (neg.f64 x)) (*.f64 x y)) |
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x))) |
(+.f64 (*.f64 -1 (*.f64 z x)) (*.f64 x y)) |
(+.f64 (*.f64 z (neg.f64 x)) (*.f64 x y)) |
(*.f64 y x) |
(*.f64 x y) |
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x))) |
(+.f64 (*.f64 -1 (*.f64 z x)) (*.f64 x y)) |
(+.f64 (*.f64 z (neg.f64 x)) (*.f64 x y)) |
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x))) |
(+.f64 (*.f64 -1 (*.f64 z x)) (*.f64 x y)) |
(+.f64 (*.f64 z (neg.f64 x)) (*.f64 x y)) |
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x))) |
(+.f64 (*.f64 -1 (*.f64 z x)) (*.f64 x y)) |
(+.f64 (*.f64 z (neg.f64 x)) (*.f64 x y)) |
(*.f64 y x) |
(*.f64 x y) |
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x))) |
(+.f64 (*.f64 -1 (*.f64 z x)) (*.f64 x y)) |
(+.f64 (*.f64 z (neg.f64 x)) (*.f64 x y)) |
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x))) |
(+.f64 (*.f64 -1 (*.f64 z x)) (*.f64 x y)) |
(+.f64 (*.f64 z (neg.f64 x)) (*.f64 x y)) |
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x))) |
(+.f64 (*.f64 -1 (*.f64 z x)) (*.f64 x y)) |
(+.f64 (*.f64 z (neg.f64 x)) (*.f64 x y)) |
(*.f64 y x) |
(*.f64 x y) |
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x))) |
(+.f64 (*.f64 -1 (*.f64 z x)) (*.f64 x y)) |
(+.f64 (*.f64 z (neg.f64 x)) (*.f64 x y)) |
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x))) |
(+.f64 (*.f64 -1 (*.f64 z x)) (*.f64 x y)) |
(+.f64 (*.f64 z (neg.f64 x)) (*.f64 x y)) |
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x))) |
(+.f64 (*.f64 -1 (*.f64 z x)) (*.f64 x y)) |
(+.f64 (*.f64 z (neg.f64 x)) (*.f64 x y)) |
(*.f64 -1 (*.f64 z x)) |
(*.f64 z (neg.f64 x)) |
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x))) |
(+.f64 (*.f64 -1 (*.f64 z x)) (*.f64 x y)) |
(+.f64 (*.f64 z (neg.f64 x)) (*.f64 x y)) |
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x))) |
(+.f64 (*.f64 -1 (*.f64 z x)) (*.f64 x y)) |
(+.f64 (*.f64 z (neg.f64 x)) (*.f64 x y)) |
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x))) |
(+.f64 (*.f64 -1 (*.f64 z x)) (*.f64 x y)) |
(+.f64 (*.f64 z (neg.f64 x)) (*.f64 x y)) |
(*.f64 -1 (*.f64 z x)) |
(*.f64 z (neg.f64 x)) |
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x))) |
(+.f64 (*.f64 -1 (*.f64 z x)) (*.f64 x y)) |
(+.f64 (*.f64 z (neg.f64 x)) (*.f64 x y)) |
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x))) |
(+.f64 (*.f64 -1 (*.f64 z x)) (*.f64 x y)) |
(+.f64 (*.f64 z (neg.f64 x)) (*.f64 x y)) |
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x))) |
(+.f64 (*.f64 -1 (*.f64 z x)) (*.f64 x y)) |
(+.f64 (*.f64 z (neg.f64 x)) (*.f64 x y)) |
(+.f64 (*.f64 -1 (*.f64 z x)) z) |
(+.f64 z (*.f64 -1 (*.f64 z x))) |
(+.f64 z (*.f64 z (neg.f64 x))) |
(+.f64 (*.f64 y x) (+.f64 z (*.f64 -1 (*.f64 z x)))) |
(+.f64 z (+.f64 (*.f64 -1 (*.f64 z x)) (*.f64 x y))) |
(+.f64 (*.f64 z (neg.f64 x)) (+.f64 z (*.f64 x y))) |
(+.f64 (*.f64 y x) (+.f64 z (*.f64 -1 (*.f64 z x)))) |
(+.f64 z (+.f64 (*.f64 -1 (*.f64 z x)) (*.f64 x y))) |
(+.f64 (*.f64 z (neg.f64 x)) (+.f64 z (*.f64 x y))) |
(+.f64 (*.f64 y x) (+.f64 z (*.f64 -1 (*.f64 z x)))) |
(+.f64 z (+.f64 (*.f64 -1 (*.f64 z x)) (*.f64 x y))) |
(+.f64 (*.f64 z (neg.f64 x)) (+.f64 z (*.f64 x y))) |
(*.f64 y x) |
(*.f64 x y) |
(+.f64 (*.f64 y x) (+.f64 z (*.f64 -1 (*.f64 z x)))) |
(+.f64 z (+.f64 (*.f64 -1 (*.f64 z x)) (*.f64 x y))) |
(+.f64 (*.f64 z (neg.f64 x)) (+.f64 z (*.f64 x y))) |
(+.f64 (*.f64 y x) (+.f64 z (*.f64 -1 (*.f64 z x)))) |
(+.f64 z (+.f64 (*.f64 -1 (*.f64 z x)) (*.f64 x y))) |
(+.f64 (*.f64 z (neg.f64 x)) (+.f64 z (*.f64 x y))) |
(+.f64 (*.f64 y x) (+.f64 z (*.f64 -1 (*.f64 z x)))) |
(+.f64 z (+.f64 (*.f64 -1 (*.f64 z x)) (*.f64 x y))) |
(+.f64 (*.f64 z (neg.f64 x)) (+.f64 z (*.f64 x y))) |
(*.f64 y x) |
(*.f64 x y) |
(+.f64 (*.f64 y x) (+.f64 (*.f64 -1 (*.f64 z x)) z)) |
(+.f64 z (+.f64 (*.f64 -1 (*.f64 z x)) (*.f64 x y))) |
(+.f64 (*.f64 z (neg.f64 x)) (+.f64 z (*.f64 x y))) |
(+.f64 (*.f64 y x) (+.f64 (*.f64 -1 (*.f64 z x)) z)) |
(+.f64 z (+.f64 (*.f64 -1 (*.f64 z x)) (*.f64 x y))) |
(+.f64 (*.f64 z (neg.f64 x)) (+.f64 z (*.f64 x y))) |
(+.f64 (*.f64 y x) (+.f64 (*.f64 -1 (*.f64 z x)) z)) |
(+.f64 z (+.f64 (*.f64 -1 (*.f64 z x)) (*.f64 x y))) |
(+.f64 (*.f64 z (neg.f64 x)) (+.f64 z (*.f64 x y))) |
(*.f64 y x) |
(*.f64 x y) |
(+.f64 (*.f64 (+.f64 1 (*.f64 -1 x)) z) (*.f64 y x)) |
(+.f64 (*.f64 x y) (*.f64 z (+.f64 1 (*.f64 -1 x)))) |
(+.f64 (*.f64 x y) (*.f64 z (+.f64 1 (neg.f64 x)))) |
(+.f64 (*.f64 (+.f64 1 (*.f64 -1 x)) z) (*.f64 y x)) |
(+.f64 (*.f64 x y) (*.f64 z (+.f64 1 (*.f64 -1 x)))) |
(+.f64 (*.f64 x y) (*.f64 z (+.f64 1 (neg.f64 x)))) |
(+.f64 (*.f64 (+.f64 1 (*.f64 -1 x)) z) (*.f64 y x)) |
(+.f64 (*.f64 x y) (*.f64 z (+.f64 1 (*.f64 -1 x)))) |
(+.f64 (*.f64 x y) (*.f64 z (+.f64 1 (neg.f64 x)))) |
(*.f64 (+.f64 1 (*.f64 -1 x)) z) |
(*.f64 z (+.f64 1 (*.f64 -1 x))) |
(*.f64 z (+.f64 1 (neg.f64 x))) |
(+.f64 (*.f64 (+.f64 1 (*.f64 -1 x)) z) (*.f64 y x)) |
(+.f64 (*.f64 x y) (*.f64 z (+.f64 1 (*.f64 -1 x)))) |
(+.f64 (*.f64 x y) (*.f64 z (+.f64 1 (neg.f64 x)))) |
(+.f64 (*.f64 (+.f64 1 (*.f64 -1 x)) z) (*.f64 y x)) |
(+.f64 (*.f64 x y) (*.f64 z (+.f64 1 (*.f64 -1 x)))) |
(+.f64 (*.f64 x y) (*.f64 z (+.f64 1 (neg.f64 x)))) |
(+.f64 (*.f64 (+.f64 1 (*.f64 -1 x)) z) (*.f64 y x)) |
(+.f64 (*.f64 x y) (*.f64 z (+.f64 1 (*.f64 -1 x)))) |
(+.f64 (*.f64 x y) (*.f64 z (+.f64 1 (neg.f64 x)))) |
(*.f64 -1 (*.f64 (-.f64 x 1) z)) |
(*.f64 -1 (*.f64 z (+.f64 x -1))) |
(neg.f64 (*.f64 z (-.f64 x 1))) |
(*.f64 (+.f64 -1 x) (neg.f64 z)) |
(*.f64 z (neg.f64 (+.f64 -1 x))) |
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 (-.f64 x 1) z))) |
(+.f64 (*.f64 x y) (*.f64 -1 (*.f64 z (+.f64 x -1)))) |
(+.f64 (*.f64 x y) (neg.f64 (*.f64 z (-.f64 x 1)))) |
(+.f64 (*.f64 x y) (*.f64 (+.f64 -1 x) (neg.f64 z))) |
(+.f64 (*.f64 x y) (*.f64 z (neg.f64 (+.f64 -1 x)))) |
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 (-.f64 x 1) z))) |
(+.f64 (*.f64 x y) (*.f64 -1 (*.f64 z (+.f64 x -1)))) |
(+.f64 (*.f64 x y) (neg.f64 (*.f64 z (-.f64 x 1)))) |
(+.f64 (*.f64 x y) (*.f64 (+.f64 -1 x) (neg.f64 z))) |
(+.f64 (*.f64 x y) (*.f64 z (neg.f64 (+.f64 -1 x)))) |
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 (-.f64 x 1) z))) |
(+.f64 (*.f64 x y) (*.f64 -1 (*.f64 z (+.f64 x -1)))) |
(+.f64 (*.f64 x y) (neg.f64 (*.f64 z (-.f64 x 1)))) |
(+.f64 (*.f64 x y) (*.f64 (+.f64 -1 x) (neg.f64 z))) |
(+.f64 (*.f64 x y) (*.f64 z (neg.f64 (+.f64 -1 x)))) |
z |
(*.f64 (-.f64 y z) x) |
(*.f64 x (-.f64 y z)) |
(*.f64 (-.f64 y z) x) |
(*.f64 x (-.f64 y z)) |
(+.f64 (*.f64 (-.f64 y z) x) 0) |
(*.f64 x (-.f64 y z)) |
(+.f64 0 (*.f64 (-.f64 y z) x)) |
(*.f64 x (-.f64 y z)) |
(-.f64 (*.f64 (-.f64 y z) x) 0) |
(*.f64 x (-.f64 y z)) |
(-.f64 0 (neg.f64 (*.f64 (-.f64 y z) x))) |
(*.f64 x (-.f64 y z)) |
(/.f64 (*.f64 (-.f64 y z) x) 1) |
(*.f64 x (-.f64 y z)) |
(/.f64 (*.f64 (-.f64 y z) x) (/.f64 (*.f64 (-.f64 y z) x) (*.f64 (-.f64 y z) x))) |
(*.f64 x (-.f64 y z)) |
(/.f64 (*.f64 (-.f64 y z) (+.f64 x x)) 2) |
(*.f64 x (-.f64 y z)) |
(/.f64 (*.f64 (neg.f64 (*.f64 (-.f64 y z) x)) 2) -2) |
(*.f64 x (-.f64 y z)) |
(pow.f64 (*.f64 (-.f64 y z) x) 1) |
(*.f64 x (-.f64 y z)) |
(neg.f64 (neg.f64 (*.f64 (-.f64 y z) x))) |
(*.f64 x (-.f64 y z)) |
(-.f64 (+.f64 z (*.f64 (-.f64 y z) x)) 0) |
(+.f64 z (*.f64 x (-.f64 y z))) |
(-.f64 0 (neg.f64 (+.f64 z (*.f64 (-.f64 y z) x)))) |
(+.f64 z (*.f64 x (-.f64 y z))) |
(*.f64 (+.f64 z (*.f64 (-.f64 y z) x)) 1) |
(+.f64 z (*.f64 x (-.f64 y z))) |
(*.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (/.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (+.f64 z (*.f64 (-.f64 y z) x)))) |
(+.f64 z (*.f64 x (-.f64 y z))) |
(*.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (*.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (/.f64 1 (+.f64 z (*.f64 (-.f64 y z) x))))) |
(+.f64 z (*.f64 x (-.f64 y z))) |
(*.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (/.f64 1 (/.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (+.f64 z (*.f64 (-.f64 y z) x))))) |
(+.f64 z (*.f64 x (-.f64 y z))) |
(*.f64 1 (+.f64 z (*.f64 (-.f64 y z) x))) |
(+.f64 z (*.f64 x (-.f64 y z))) |
(*.f64 (/.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (+.f64 z (*.f64 (-.f64 y z) x))) (+.f64 z (*.f64 (-.f64 y z) x))) |
(+.f64 z (*.f64 x (-.f64 y z))) |
(*.f64 (/.f64 1 (+.f64 z (*.f64 (-.f64 y z) x))) (*.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (+.f64 z (*.f64 (-.f64 y z) x)))) |
(+.f64 z (*.f64 x (-.f64 y z))) |
(*.f64 (*.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (+.f64 z (*.f64 (-.f64 y z) x))) (/.f64 1 (+.f64 z (*.f64 (-.f64 y z) x)))) |
(+.f64 z (*.f64 x (-.f64 y z))) |
(*.f64 (*.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (+.f64 z (*.f64 (-.f64 y z) x))) (/.f64 (/.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (+.f64 z (*.f64 (-.f64 y z) x))) (+.f64 z (*.f64 (-.f64 y z) x)))) |
(+.f64 z (*.f64 x (-.f64 y z))) |
(*.f64 (*.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (+.f64 z (*.f64 (-.f64 y z) x))) (/.f64 (*.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (/.f64 1 (+.f64 z (*.f64 (-.f64 y z) x)))) (+.f64 z (*.f64 (-.f64 y z) x)))) |
(+.f64 z (*.f64 x (-.f64 y z))) |
(*.f64 (*.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (/.f64 1 (+.f64 z (*.f64 (-.f64 y z) x)))) (+.f64 z (*.f64 (-.f64 y z) x))) |
(+.f64 z (*.f64 x (-.f64 y z))) |
(*.f64 (/.f64 1 (/.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (+.f64 z (*.f64 (-.f64 y z) x)))) (+.f64 z (*.f64 (-.f64 y z) x))) |
(+.f64 z (*.f64 x (-.f64 y z))) |
(*.f64 (/.f64 1 (/.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (+.f64 z (*.f64 (-.f64 y z) x)))) (*.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (/.f64 (/.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (+.f64 z (*.f64 (-.f64 y z) x))) (/.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (+.f64 z (*.f64 (-.f64 y z) x)))))) |
(+.f64 z (*.f64 x (-.f64 y z))) |
(*.f64 (*.f64 (*.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (+.f64 z (*.f64 (-.f64 y z) x))) (*.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (+.f64 z (*.f64 (-.f64 y z) x)))) (/.f64 (/.f64 1 (+.f64 z (*.f64 (-.f64 y z) x))) (*.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (+.f64 z (*.f64 (-.f64 y z) x))))) |
(+.f64 z (*.f64 x (-.f64 y z))) |
(*.f64 (*.f64 (*.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (+.f64 z (*.f64 (-.f64 y z) x))) (*.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (+.f64 z (*.f64 (-.f64 y z) x)))) (/.f64 (/.f64 (/.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (+.f64 z (*.f64 (-.f64 y z) x))) (+.f64 z (*.f64 (-.f64 y z) x))) (*.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (+.f64 z (*.f64 (-.f64 y z) x))))) |
(+.f64 z (*.f64 x (-.f64 y z))) |
(*.f64 (*.f64 (*.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (+.f64 z (*.f64 (-.f64 y z) x))) (*.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (+.f64 z (*.f64 (-.f64 y z) x)))) (/.f64 (/.f64 (*.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (/.f64 1 (+.f64 z (*.f64 (-.f64 y z) x)))) (+.f64 z (*.f64 (-.f64 y z) x))) (*.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (+.f64 z (*.f64 (-.f64 y z) x))))) |
(+.f64 z (*.f64 x (-.f64 y z))) |
(*.f64 (/.f64 (/.f64 1 (+.f64 z (*.f64 (-.f64 y z) x))) (*.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (+.f64 z (*.f64 (-.f64 y z) x)))) (*.f64 (*.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (+.f64 z (*.f64 (-.f64 y z) x))) (*.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (+.f64 z (*.f64 (-.f64 y z) x))))) |
(+.f64 z (*.f64 x (-.f64 y z))) |
(*.f64 (/.f64 (/.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (+.f64 z (*.f64 (-.f64 y z) x))) (+.f64 z (*.f64 (-.f64 y z) x))) (*.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (+.f64 z (*.f64 (-.f64 y z) x)))) |
(+.f64 z (*.f64 x (-.f64 y z))) |
(*.f64 (/.f64 (*.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (/.f64 1 (+.f64 z (*.f64 (-.f64 y z) x)))) (+.f64 z (*.f64 (-.f64 y z) x))) (*.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (+.f64 z (*.f64 (-.f64 y z) x)))) |
(+.f64 z (*.f64 x (-.f64 y z))) |
(*.f64 (*.f64 (*.f64 (*.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (+.f64 z (*.f64 (-.f64 y z) x))) (*.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (+.f64 z (*.f64 (-.f64 y z) x)))) (*.f64 (*.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (+.f64 z (*.f64 (-.f64 y z) x))) (*.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (+.f64 z (*.f64 (-.f64 y z) x))))) (/.f64 (/.f64 (/.f64 1 (+.f64 z (*.f64 (-.f64 y z) x))) (*.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (+.f64 z (*.f64 (-.f64 y z) x)))) (*.f64 (*.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (+.f64 z (*.f64 (-.f64 y z) x))) (*.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (+.f64 z (*.f64 (-.f64 y z) x)))))) |
(+.f64 z (*.f64 x (-.f64 y z))) |
(*.f64 (/.f64 (/.f64 (/.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (+.f64 z (*.f64 (-.f64 y z) x))) (+.f64 z (*.f64 (-.f64 y z) x))) (*.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (+.f64 z (*.f64 (-.f64 y z) x)))) (*.f64 (*.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (+.f64 z (*.f64 (-.f64 y z) x))) (*.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (+.f64 z (*.f64 (-.f64 y z) x))))) |
(+.f64 z (*.f64 x (-.f64 y z))) |
(*.f64 (/.f64 (/.f64 (*.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (/.f64 1 (+.f64 z (*.f64 (-.f64 y z) x)))) (+.f64 z (*.f64 (-.f64 y z) x))) (*.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (+.f64 z (*.f64 (-.f64 y z) x)))) (*.f64 (*.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (+.f64 z (*.f64 (-.f64 y z) x))) (*.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (+.f64 z (*.f64 (-.f64 y z) x))))) |
(+.f64 z (*.f64 x (-.f64 y z))) |
(*.f64 (/.f64 (/.f64 (/.f64 1 (+.f64 z (*.f64 (-.f64 y z) x))) (*.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (+.f64 z (*.f64 (-.f64 y z) x)))) (*.f64 (*.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (+.f64 z (*.f64 (-.f64 y z) x))) (*.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (+.f64 z (*.f64 (-.f64 y z) x))))) (*.f64 (*.f64 (*.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (+.f64 z (*.f64 (-.f64 y z) x))) (*.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (+.f64 z (*.f64 (-.f64 y z) x)))) (*.f64 (*.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (+.f64 z (*.f64 (-.f64 y z) x))) (*.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (+.f64 z (*.f64 (-.f64 y z) x)))))) |
(+.f64 z (*.f64 x (-.f64 y z))) |
(*.f64 (/.f64 (/.f64 1 (/.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (+.f64 z (*.f64 (-.f64 y z) x)))) (+.f64 z (*.f64 (-.f64 y z) x))) (*.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (+.f64 z (*.f64 (-.f64 y z) x)))) |
(+.f64 z (*.f64 x (-.f64 y z))) |
(/.f64 (+.f64 z (*.f64 (-.f64 y z) x)) 1) |
(+.f64 z (*.f64 x (-.f64 y z))) |
(/.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (/.f64 (+.f64 z (*.f64 (-.f64 y z) x)) (+.f64 z (*.f64 (-.f64 y z) x)))) |
(+.f64 z (*.f64 x (-.f64 y z))) |
(/.f64 (*.f64 (+.f64 z (*.f64 (-.f64 y z) x)) 2) 2) |
(+.f64 z (*.f64 x (-.f64 y z))) |
(/.f64 (*.f64 (neg.f64 (+.f64 z (*.f64 (-.f64 y z) x))) 2) -2) |
(+.f64 z (*.f64 x (-.f64 y z))) |
(pow.f64 (+.f64 z (*.f64 (-.f64 y z) x)) 1) |
(+.f64 z (*.f64 x (-.f64 y z))) |
(neg.f64 (neg.f64 (+.f64 z (*.f64 (-.f64 y z) x)))) |
(+.f64 z (*.f64 x (-.f64 y z))) |
Compiled 11 to 5 computations (54.5% saved)
Found 1 expressions with local error:
| New | Error | Program |
|---|---|---|
| 0.0b | (*.f64 (-.f64 y z) x) |
Compiled 14 to 5 computations (64.3% saved)
Found 1 expressions with local error:
| New | Error | Program |
|---|---|---|
| ✓ | 0.0b | (*.f64 (+.f64 x -1) (neg.f64 z)) |
Compiled 17 to 10 computations (41.2% saved)
6 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 0.0ms | z | @ | 0 | (*.f64 (+.f64 x -1) (neg.f64 z)) |
| 0.0ms | z | @ | inf | (*.f64 (+.f64 x -1) (neg.f64 z)) |
| 0.0ms | x | @ | 0 | (*.f64 (+.f64 x -1) (neg.f64 z)) |
| 0.0ms | x | @ | inf | (*.f64 (+.f64 x -1) (neg.f64 z)) |
| 0.0ms | x | @ | -inf | (*.f64 (+.f64 x -1) (neg.f64 z)) |
| 1× | batch-egg-rewrite |
| 882× | rational_best-simplify-57 |
| 798× | rational_best-simplify-83 |
| 798× | rational_best-simplify-82 |
| 606× | rational_best-simplify-80 |
| 604× | rational_best-simplify-44 |
Useful iterations: 2 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 9 | 17 |
| 1 | 79 | 17 |
| 2 | 250 | 13 |
| 3 | 987 | 13 |
| 4 | 4299 | 13 |
| 1× | node limit |
| Inputs |
|---|
(*.f64 (+.f64 x -1) (neg.f64 z)) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 z (-.f64 1 x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 z (-.f64 1 x)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 z (-.f64 1 x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (neg.f64 (*.f64 z (-.f64 1 x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 z (-.f64 1 x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 z (-.f64 1 x)) (/.f64 (*.f64 z (-.f64 1 x)) (*.f64 z (-.f64 1 x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 x -1) (*.f64 z -2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 x -1) z) -1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (neg.f64 (*.f64 z (-.f64 1 x))) 2) -2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 z (-.f64 1 x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (neg.f64 (*.f64 z (-.f64 1 x))))))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (*.f64 (+.f64 x -1) z)))))) |
| 1× | egg-herbie |
| 1576× | rational_best-simplify-132 |
| 1404× | rational_best-simplify-80 |
| 1270× | rational_best-simplify-78 |
| 1002× | rational_best-simplify-82 |
| 764× | rational_best-simplify-2 |
Useful iterations: 6 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 38 | 606 |
| 1 | 68 | 584 |
| 2 | 125 | 584 |
| 3 | 267 | 584 |
| 4 | 1041 | 584 |
| 5 | 2810 | 584 |
| 6 | 5647 | 488 |
| 1× | node limit |
| Inputs |
|---|
z |
(+.f64 (*.f64 -1 (*.f64 z x)) z) |
(+.f64 (*.f64 -1 (*.f64 z x)) z) |
(+.f64 (*.f64 -1 (*.f64 z x)) z) |
(*.f64 -1 (*.f64 z x)) |
(+.f64 z (*.f64 -1 (*.f64 z x))) |
(+.f64 z (*.f64 -1 (*.f64 z x))) |
(+.f64 z (*.f64 -1 (*.f64 z x))) |
(*.f64 -1 (*.f64 z x)) |
(+.f64 z (*.f64 -1 (*.f64 z x))) |
(+.f64 z (*.f64 -1 (*.f64 z x))) |
(+.f64 z (*.f64 -1 (*.f64 z x))) |
(*.f64 -1 (*.f64 (-.f64 x 1) z)) |
(*.f64 -1 (*.f64 (-.f64 x 1) z)) |
(*.f64 -1 (*.f64 (-.f64 x 1) z)) |
(*.f64 -1 (*.f64 (-.f64 x 1) z)) |
(*.f64 -1 (*.f64 (-.f64 x 1) z)) |
(*.f64 -1 (*.f64 (-.f64 x 1) z)) |
(*.f64 -1 (*.f64 (-.f64 x 1) z)) |
(*.f64 -1 (*.f64 (-.f64 x 1) z)) |
(*.f64 -1 (*.f64 (-.f64 x 1) z)) |
(*.f64 -1 (*.f64 (-.f64 x 1) z)) |
(*.f64 -1 (*.f64 (-.f64 x 1) z)) |
(*.f64 -1 (*.f64 (-.f64 x 1) z)) |
(+.f64 (*.f64 z (-.f64 1 x)) 0) |
(+.f64 0 (*.f64 z (-.f64 1 x))) |
(-.f64 (*.f64 z (-.f64 1 x)) 0) |
(-.f64 0 (neg.f64 (*.f64 z (-.f64 1 x)))) |
(/.f64 (*.f64 z (-.f64 1 x)) 1) |
(/.f64 (*.f64 z (-.f64 1 x)) (/.f64 (*.f64 z (-.f64 1 x)) (*.f64 z (-.f64 1 x)))) |
(/.f64 (*.f64 (+.f64 x -1) (*.f64 z -2)) 2) |
(/.f64 (*.f64 (+.f64 x -1) z) -1) |
(/.f64 (*.f64 (neg.f64 (*.f64 z (-.f64 1 x))) 2) -2) |
(pow.f64 (*.f64 z (-.f64 1 x)) 1) |
(neg.f64 (neg.f64 (*.f64 z (-.f64 1 x)))) |
(neg.f64 (*.f64 (+.f64 x -1) z)) |
| Outputs |
|---|
z |
(+.f64 (*.f64 -1 (*.f64 z x)) z) |
(+.f64 z (*.f64 z (*.f64 -1 x))) |
(+.f64 z (neg.f64 (*.f64 z x))) |
(+.f64 z (*.f64 z (neg.f64 x))) |
(+.f64 (*.f64 -1 (*.f64 z x)) z) |
(+.f64 z (*.f64 z (*.f64 -1 x))) |
(+.f64 z (neg.f64 (*.f64 z x))) |
(+.f64 z (*.f64 z (neg.f64 x))) |
(+.f64 (*.f64 -1 (*.f64 z x)) z) |
(+.f64 z (*.f64 z (*.f64 -1 x))) |
(+.f64 z (neg.f64 (*.f64 z x))) |
(+.f64 z (*.f64 z (neg.f64 x))) |
(*.f64 -1 (*.f64 z x)) |
(*.f64 z (*.f64 -1 x)) |
(neg.f64 (*.f64 z x)) |
(*.f64 z (neg.f64 x)) |
(+.f64 z (*.f64 -1 (*.f64 z x))) |
(+.f64 z (*.f64 z (*.f64 -1 x))) |
(+.f64 z (neg.f64 (*.f64 z x))) |
(+.f64 z (*.f64 z (neg.f64 x))) |
(+.f64 z (*.f64 -1 (*.f64 z x))) |
(+.f64 z (*.f64 z (*.f64 -1 x))) |
(+.f64 z (neg.f64 (*.f64 z x))) |
(+.f64 z (*.f64 z (neg.f64 x))) |
(+.f64 z (*.f64 -1 (*.f64 z x))) |
(+.f64 z (*.f64 z (*.f64 -1 x))) |
(+.f64 z (neg.f64 (*.f64 z x))) |
(+.f64 z (*.f64 z (neg.f64 x))) |
(*.f64 -1 (*.f64 z x)) |
(*.f64 z (*.f64 -1 x)) |
(neg.f64 (*.f64 z x)) |
(*.f64 z (neg.f64 x)) |
(+.f64 z (*.f64 -1 (*.f64 z x))) |
(+.f64 z (*.f64 z (*.f64 -1 x))) |
(+.f64 z (neg.f64 (*.f64 z x))) |
(+.f64 z (*.f64 z (neg.f64 x))) |
(+.f64 z (*.f64 -1 (*.f64 z x))) |
(+.f64 z (*.f64 z (*.f64 -1 x))) |
(+.f64 z (neg.f64 (*.f64 z x))) |
(+.f64 z (*.f64 z (neg.f64 x))) |
(+.f64 z (*.f64 -1 (*.f64 z x))) |
(+.f64 z (*.f64 z (*.f64 -1 x))) |
(+.f64 z (neg.f64 (*.f64 z x))) |
(+.f64 z (*.f64 z (neg.f64 x))) |
(*.f64 -1 (*.f64 (-.f64 x 1) z)) |
(neg.f64 (*.f64 z (+.f64 -1 x))) |
(*.f64 (+.f64 -1 x) (neg.f64 z)) |
(*.f64 z (neg.f64 (+.f64 -1 x))) |
(*.f64 z (+.f64 1 (neg.f64 x))) |
(*.f64 z (-.f64 1 x)) |
(*.f64 -1 (*.f64 (-.f64 x 1) z)) |
(neg.f64 (*.f64 z (+.f64 -1 x))) |
(*.f64 (+.f64 -1 x) (neg.f64 z)) |
(*.f64 z (neg.f64 (+.f64 -1 x))) |
(*.f64 z (+.f64 1 (neg.f64 x))) |
(*.f64 z (-.f64 1 x)) |
(*.f64 -1 (*.f64 (-.f64 x 1) z)) |
(neg.f64 (*.f64 z (+.f64 -1 x))) |
(*.f64 (+.f64 -1 x) (neg.f64 z)) |
(*.f64 z (neg.f64 (+.f64 -1 x))) |
(*.f64 z (+.f64 1 (neg.f64 x))) |
(*.f64 z (-.f64 1 x)) |
(*.f64 -1 (*.f64 (-.f64 x 1) z)) |
(neg.f64 (*.f64 z (+.f64 -1 x))) |
(*.f64 (+.f64 -1 x) (neg.f64 z)) |
(*.f64 z (neg.f64 (+.f64 -1 x))) |
(*.f64 z (+.f64 1 (neg.f64 x))) |
(*.f64 z (-.f64 1 x)) |
(*.f64 -1 (*.f64 (-.f64 x 1) z)) |
(neg.f64 (*.f64 z (+.f64 -1 x))) |
(*.f64 (+.f64 -1 x) (neg.f64 z)) |
(*.f64 z (neg.f64 (+.f64 -1 x))) |
(*.f64 z (+.f64 1 (neg.f64 x))) |
(*.f64 z (-.f64 1 x)) |
(*.f64 -1 (*.f64 (-.f64 x 1) z)) |
(neg.f64 (*.f64 z (+.f64 -1 x))) |
(*.f64 (+.f64 -1 x) (neg.f64 z)) |
(*.f64 z (neg.f64 (+.f64 -1 x))) |
(*.f64 z (+.f64 1 (neg.f64 x))) |
(*.f64 z (-.f64 1 x)) |
(*.f64 -1 (*.f64 (-.f64 x 1) z)) |
(neg.f64 (*.f64 z (+.f64 -1 x))) |
(*.f64 (+.f64 -1 x) (neg.f64 z)) |
(*.f64 z (neg.f64 (+.f64 -1 x))) |
(*.f64 z (+.f64 1 (neg.f64 x))) |
(*.f64 z (-.f64 1 x)) |
(*.f64 -1 (*.f64 (-.f64 x 1) z)) |
(neg.f64 (*.f64 z (+.f64 -1 x))) |
(*.f64 (+.f64 -1 x) (neg.f64 z)) |
(*.f64 z (neg.f64 (+.f64 -1 x))) |
(*.f64 z (+.f64 1 (neg.f64 x))) |
(*.f64 z (-.f64 1 x)) |
(*.f64 -1 (*.f64 (-.f64 x 1) z)) |
(neg.f64 (*.f64 z (+.f64 -1 x))) |
(*.f64 (+.f64 -1 x) (neg.f64 z)) |
(*.f64 z (neg.f64 (+.f64 -1 x))) |
(*.f64 z (+.f64 1 (neg.f64 x))) |
(*.f64 z (-.f64 1 x)) |
(*.f64 -1 (*.f64 (-.f64 x 1) z)) |
(neg.f64 (*.f64 z (+.f64 -1 x))) |
(*.f64 (+.f64 -1 x) (neg.f64 z)) |
(*.f64 z (neg.f64 (+.f64 -1 x))) |
(*.f64 z (+.f64 1 (neg.f64 x))) |
(*.f64 z (-.f64 1 x)) |
(*.f64 -1 (*.f64 (-.f64 x 1) z)) |
(neg.f64 (*.f64 z (+.f64 -1 x))) |
(*.f64 (+.f64 -1 x) (neg.f64 z)) |
(*.f64 z (neg.f64 (+.f64 -1 x))) |
(*.f64 z (+.f64 1 (neg.f64 x))) |
(*.f64 z (-.f64 1 x)) |
(*.f64 -1 (*.f64 (-.f64 x 1) z)) |
(neg.f64 (*.f64 z (+.f64 -1 x))) |
(*.f64 (+.f64 -1 x) (neg.f64 z)) |
(*.f64 z (neg.f64 (+.f64 -1 x))) |
(*.f64 z (+.f64 1 (neg.f64 x))) |
(*.f64 z (-.f64 1 x)) |
(+.f64 (*.f64 z (-.f64 1 x)) 0) |
(neg.f64 (*.f64 z (+.f64 -1 x))) |
(*.f64 (+.f64 -1 x) (neg.f64 z)) |
(*.f64 z (neg.f64 (+.f64 -1 x))) |
(*.f64 z (+.f64 1 (neg.f64 x))) |
(*.f64 z (-.f64 1 x)) |
(+.f64 0 (*.f64 z (-.f64 1 x))) |
(neg.f64 (*.f64 z (+.f64 -1 x))) |
(*.f64 (+.f64 -1 x) (neg.f64 z)) |
(*.f64 z (neg.f64 (+.f64 -1 x))) |
(*.f64 z (+.f64 1 (neg.f64 x))) |
(*.f64 z (-.f64 1 x)) |
(-.f64 (*.f64 z (-.f64 1 x)) 0) |
(neg.f64 (*.f64 z (+.f64 -1 x))) |
(*.f64 (+.f64 -1 x) (neg.f64 z)) |
(*.f64 z (neg.f64 (+.f64 -1 x))) |
(*.f64 z (+.f64 1 (neg.f64 x))) |
(*.f64 z (-.f64 1 x)) |
(-.f64 0 (neg.f64 (*.f64 z (-.f64 1 x)))) |
(neg.f64 (*.f64 z (+.f64 -1 x))) |
(*.f64 (+.f64 -1 x) (neg.f64 z)) |
(*.f64 z (neg.f64 (+.f64 -1 x))) |
(*.f64 z (+.f64 1 (neg.f64 x))) |
(*.f64 z (-.f64 1 x)) |
(/.f64 (*.f64 z (-.f64 1 x)) 1) |
(neg.f64 (*.f64 z (+.f64 -1 x))) |
(*.f64 (+.f64 -1 x) (neg.f64 z)) |
(*.f64 z (neg.f64 (+.f64 -1 x))) |
(*.f64 z (+.f64 1 (neg.f64 x))) |
(*.f64 z (-.f64 1 x)) |
(/.f64 (*.f64 z (-.f64 1 x)) (/.f64 (*.f64 z (-.f64 1 x)) (*.f64 z (-.f64 1 x)))) |
(neg.f64 (*.f64 z (+.f64 -1 x))) |
(*.f64 (+.f64 -1 x) (neg.f64 z)) |
(*.f64 z (neg.f64 (+.f64 -1 x))) |
(*.f64 z (+.f64 1 (neg.f64 x))) |
(*.f64 z (-.f64 1 x)) |
(/.f64 (*.f64 (+.f64 x -1) (*.f64 z -2)) 2) |
(neg.f64 (*.f64 z (+.f64 -1 x))) |
(*.f64 (+.f64 -1 x) (neg.f64 z)) |
(*.f64 z (neg.f64 (+.f64 -1 x))) |
(*.f64 z (+.f64 1 (neg.f64 x))) |
(*.f64 z (-.f64 1 x)) |
(/.f64 (*.f64 (+.f64 x -1) z) -1) |
(neg.f64 (*.f64 z (+.f64 -1 x))) |
(*.f64 (+.f64 -1 x) (neg.f64 z)) |
(*.f64 z (neg.f64 (+.f64 -1 x))) |
(*.f64 z (+.f64 1 (neg.f64 x))) |
(*.f64 z (-.f64 1 x)) |
(/.f64 (*.f64 (neg.f64 (*.f64 z (-.f64 1 x))) 2) -2) |
(neg.f64 (*.f64 z (+.f64 -1 x))) |
(*.f64 (+.f64 -1 x) (neg.f64 z)) |
(*.f64 z (neg.f64 (+.f64 -1 x))) |
(*.f64 z (+.f64 1 (neg.f64 x))) |
(*.f64 z (-.f64 1 x)) |
(pow.f64 (*.f64 z (-.f64 1 x)) 1) |
(neg.f64 (*.f64 z (+.f64 -1 x))) |
(*.f64 (+.f64 -1 x) (neg.f64 z)) |
(*.f64 z (neg.f64 (+.f64 -1 x))) |
(*.f64 z (+.f64 1 (neg.f64 x))) |
(*.f64 z (-.f64 1 x)) |
(neg.f64 (neg.f64 (*.f64 z (-.f64 1 x)))) |
(neg.f64 (*.f64 z (+.f64 -1 x))) |
(*.f64 (+.f64 -1 x) (neg.f64 z)) |
(*.f64 z (neg.f64 (+.f64 -1 x))) |
(*.f64 z (+.f64 1 (neg.f64 x))) |
(*.f64 z (-.f64 1 x)) |
(neg.f64 (*.f64 (+.f64 x -1) z)) |
(neg.f64 (*.f64 z (+.f64 -1 x))) |
(*.f64 (+.f64 -1 x) (neg.f64 z)) |
(*.f64 z (neg.f64 (+.f64 -1 x))) |
(*.f64 z (+.f64 1 (neg.f64 x))) |
(*.f64 z (-.f64 1 x)) |
Found 1 expressions with local error:
| New | Error | Program |
|---|---|---|
| ✓ | 0.0b | (+.f64 z (*.f64 z (neg.f64 x))) |
Compiled 17 to 6 computations (64.7% saved)
6 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 0.0ms | z | @ | 0 | (+.f64 z (*.f64 z (neg.f64 x))) |
| 0.0ms | z | @ | inf | (+.f64 z (*.f64 z (neg.f64 x))) |
| 0.0ms | z | @ | -inf | (+.f64 z (*.f64 z (neg.f64 x))) |
| 0.0ms | x | @ | inf | (+.f64 z (*.f64 z (neg.f64 x))) |
| 0.0ms | x | @ | -inf | (+.f64 z (*.f64 z (neg.f64 x))) |
| 1× | batch-egg-rewrite |
| 892× | rational_best-simplify-57 |
| 812× | rational_best-simplify-82 |
| 632× | rational_best-simplify-44 |
| 606× | rational_best-simplify-80 |
| 580× | rational_best-simplify-43 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 8 | 17 |
| 1 | 72 | 17 |
| 2 | 251 | 17 |
| 3 | 1005 | 17 |
| 4 | 4415 | 17 |
| 1× | node limit |
| Inputs |
|---|
(+.f64 z (*.f64 z (neg.f64 x))) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 z (+.f64 (neg.f64 x) 1)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (neg.f64 (*.f64 z (+.f64 (neg.f64 x) 1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 z (+.f64 (neg.f64 x) 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 z (*.f64 (+.f64 (neg.f64 x) 1) (/.f64 z z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 z (*.f64 (+.f64 (neg.f64 x) 1) (*.f64 z (/.f64 1 z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 z (*.f64 (/.f64 1 (*.f64 z (+.f64 (neg.f64 x) 1))) (*.f64 (*.f64 z (+.f64 (neg.f64 x) 1)) (+.f64 (neg.f64 x) 1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 z (+.f64 (neg.f64 x) (/.f64 z z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 z (+.f64 (neg.f64 x) (*.f64 z (/.f64 1 z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 z (+.f64 (neg.f64 x) 1)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 z (+.f64 (neg.f64 x) 1)) (/.f64 (*.f64 z (+.f64 (neg.f64 x) 1)) (*.f64 z (+.f64 (neg.f64 x) 1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 z (+.f64 (neg.f64 x) 1)) (*.f64 z (*.f64 (/.f64 1 (*.f64 z (+.f64 (neg.f64 x) 1))) (+.f64 (neg.f64 x) 1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 z (+.f64 (neg.f64 x) 1)) (/.f64 1 (/.f64 (*.f64 z (+.f64 (neg.f64 x) 1)) (*.f64 z (+.f64 (neg.f64 x) 1)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 z (+.f64 (neg.f64 x) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 z (+.f64 (neg.f64 x) 1)) (*.f64 z (+.f64 (neg.f64 x) 1))) (*.f64 z (+.f64 (neg.f64 x) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (neg.f64 x) 1) z)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 z) (*.f64 (+.f64 (neg.f64 x) 1) (*.f64 z z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 z) (+.f64 (*.f64 z z) (*.f64 (neg.f64 x) (*.f64 z z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 z z) (*.f64 (+.f64 (neg.f64 x) 1) (/.f64 1 z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (*.f64 z (+.f64 (neg.f64 x) 1))) (*.f64 (*.f64 z (+.f64 (neg.f64 x) 1)) (*.f64 z (+.f64 (neg.f64 x) 1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 z (+.f64 (neg.f64 x) 1)) (*.f64 z (+.f64 (neg.f64 x) 1))) (/.f64 1 (*.f64 z (+.f64 (neg.f64 x) 1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 z (*.f64 (/.f64 1 (*.f64 z (+.f64 (neg.f64 x) 1))) (+.f64 (neg.f64 x) 1))) (*.f64 z (+.f64 (neg.f64 x) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (/.f64 (*.f64 z (+.f64 (neg.f64 x) 1)) (*.f64 z (+.f64 (neg.f64 x) 1)))) (*.f64 z (+.f64 (neg.f64 x) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (/.f64 (*.f64 z (+.f64 (neg.f64 x) 1)) (*.f64 z (+.f64 (neg.f64 x) 1)))) (*.f64 (*.f64 z (+.f64 (neg.f64 x) 1)) (*.f64 (/.f64 (*.f64 z (+.f64 (neg.f64 x) 1)) (*.f64 z (+.f64 (neg.f64 x) 1))) (/.f64 (*.f64 z (+.f64 (neg.f64 x) 1)) (*.f64 z (+.f64 (neg.f64 x) 1))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (/.f64 1 (*.f64 z (+.f64 (neg.f64 x) 1))) (*.f64 (*.f64 z (+.f64 (neg.f64 x) 1)) (*.f64 z (+.f64 (neg.f64 x) 1)))) (*.f64 (*.f64 z (+.f64 (neg.f64 x) 1)) (*.f64 z (*.f64 (*.f64 z (+.f64 (neg.f64 x) 1)) (*.f64 (*.f64 z (+.f64 (neg.f64 x) 1)) (+.f64 (neg.f64 x) 1))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (/.f64 (*.f64 z (+.f64 (neg.f64 x) 1)) (*.f64 z (+.f64 (neg.f64 x) 1))) (*.f64 z (+.f64 (neg.f64 x) 1))) (*.f64 (*.f64 z (+.f64 (neg.f64 x) 1)) (*.f64 z (+.f64 (neg.f64 x) 1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 z (*.f64 (/.f64 1 (*.f64 z (+.f64 (neg.f64 x) 1))) (+.f64 (neg.f64 x) 1))) (*.f64 z (+.f64 (neg.f64 x) 1))) (*.f64 (*.f64 z (+.f64 (neg.f64 x) 1)) (*.f64 z (+.f64 (neg.f64 x) 1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (/.f64 (/.f64 1 (*.f64 z (+.f64 (neg.f64 x) 1))) (*.f64 (*.f64 z (+.f64 (neg.f64 x) 1)) (*.f64 z (+.f64 (neg.f64 x) 1)))) (*.f64 (*.f64 z (+.f64 (neg.f64 x) 1)) (*.f64 z (*.f64 (*.f64 z (+.f64 (neg.f64 x) 1)) (*.f64 (*.f64 z (+.f64 (neg.f64 x) 1)) (+.f64 (neg.f64 x) 1)))))) (*.f64 (*.f64 (*.f64 z (+.f64 (neg.f64 x) 1)) (*.f64 z (*.f64 (*.f64 z (+.f64 (neg.f64 x) 1)) (*.f64 (*.f64 z (+.f64 (neg.f64 x) 1)) (+.f64 (neg.f64 x) 1))))) (*.f64 (*.f64 z (+.f64 (neg.f64 x) 1)) (*.f64 z (*.f64 (*.f64 z (+.f64 (neg.f64 x) 1)) (*.f64 (*.f64 z (+.f64 (neg.f64 x) 1)) (+.f64 (neg.f64 x) 1)))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (/.f64 (/.f64 (*.f64 z (+.f64 (neg.f64 x) 1)) (*.f64 z (+.f64 (neg.f64 x) 1))) (*.f64 z (+.f64 (neg.f64 x) 1))) (*.f64 (*.f64 z (+.f64 (neg.f64 x) 1)) (*.f64 z (+.f64 (neg.f64 x) 1)))) (*.f64 (*.f64 z (+.f64 (neg.f64 x) 1)) (*.f64 z (*.f64 (*.f64 z (+.f64 (neg.f64 x) 1)) (*.f64 (*.f64 z (+.f64 (neg.f64 x) 1)) (+.f64 (neg.f64 x) 1))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (/.f64 (*.f64 z (*.f64 (/.f64 1 (*.f64 z (+.f64 (neg.f64 x) 1))) (+.f64 (neg.f64 x) 1))) (*.f64 z (+.f64 (neg.f64 x) 1))) (*.f64 (*.f64 z (+.f64 (neg.f64 x) 1)) (*.f64 z (+.f64 (neg.f64 x) 1)))) (*.f64 (*.f64 z (+.f64 (neg.f64 x) 1)) (*.f64 z (*.f64 (*.f64 z (+.f64 (neg.f64 x) 1)) (*.f64 (*.f64 z (+.f64 (neg.f64 x) 1)) (+.f64 (neg.f64 x) 1))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (/.f64 1 (/.f64 (*.f64 z (+.f64 (neg.f64 x) 1)) (*.f64 z (+.f64 (neg.f64 x) 1)))) (*.f64 z (+.f64 (neg.f64 x) 1))) (*.f64 (*.f64 z (+.f64 (neg.f64 x) 1)) (*.f64 z (+.f64 (neg.f64 x) 1))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 z (+.f64 (neg.f64 x) 1)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 z (+.f64 (neg.f64 x) 1)) (/.f64 (*.f64 z (+.f64 (neg.f64 x) 1)) (*.f64 z (+.f64 (neg.f64 x) 1))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 z (+.f64 (*.f64 x -2) 2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (*.f64 z (+.f64 (*.f64 x -2) 2))) -2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 z (+.f64 (neg.f64 x) 1)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (neg.f64 (*.f64 z (+.f64 (neg.f64 x) 1)))))))) |
| 1× | egg-herbie |
| 1362× | rational_best-simplify-82 |
| 1340× | rational_best-simplify-80 |
| 1258× | rational_best-simplify-78 |
| 978× | rational_best-simplify-54 |
| 966× | rational_best-simplify-2 |
Useful iterations: 3 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 96 | 1058 |
| 1 | 224 | 1044 |
| 2 | 958 | 1044 |
| 3 | 3979 | 1038 |
| 4 | 6738 | 1038 |
| 1× | node limit |
| Inputs |
|---|
(*.f64 (+.f64 1 (*.f64 -1 x)) z) |
(*.f64 (+.f64 1 (*.f64 -1 x)) z) |
(*.f64 (+.f64 1 (*.f64 -1 x)) z) |
(*.f64 (+.f64 1 (*.f64 -1 x)) z) |
(*.f64 (+.f64 1 (*.f64 -1 x)) z) |
(*.f64 (+.f64 1 (*.f64 -1 x)) z) |
(*.f64 (+.f64 1 (*.f64 -1 x)) z) |
(*.f64 (+.f64 1 (*.f64 -1 x)) z) |
(*.f64 -1 (*.f64 (-.f64 x 1) z)) |
(*.f64 -1 (*.f64 (-.f64 x 1) z)) |
(*.f64 -1 (*.f64 (-.f64 x 1) z)) |
(*.f64 -1 (*.f64 (-.f64 x 1) z)) |
z |
(+.f64 (*.f64 -1 (*.f64 z x)) z) |
(+.f64 (*.f64 -1 (*.f64 z x)) z) |
(+.f64 (*.f64 -1 (*.f64 z x)) z) |
(*.f64 -1 (*.f64 z x)) |
(+.f64 z (*.f64 -1 (*.f64 z x))) |
(+.f64 z (*.f64 -1 (*.f64 z x))) |
(+.f64 z (*.f64 -1 (*.f64 z x))) |
(*.f64 -1 (*.f64 z x)) |
(+.f64 z (*.f64 -1 (*.f64 z x))) |
(+.f64 z (*.f64 -1 (*.f64 z x))) |
(+.f64 z (*.f64 -1 (*.f64 z x))) |
(-.f64 (*.f64 z (+.f64 (neg.f64 x) 1)) 0) |
(-.f64 0 (neg.f64 (*.f64 z (+.f64 (neg.f64 x) 1)))) |
(*.f64 z (+.f64 (neg.f64 x) 1)) |
(*.f64 z (*.f64 (+.f64 (neg.f64 x) 1) (/.f64 z z))) |
(*.f64 z (*.f64 (+.f64 (neg.f64 x) 1) (*.f64 z (/.f64 1 z)))) |
(*.f64 z (*.f64 (/.f64 1 (*.f64 z (+.f64 (neg.f64 x) 1))) (*.f64 (*.f64 z (+.f64 (neg.f64 x) 1)) (+.f64 (neg.f64 x) 1)))) |
(*.f64 z (+.f64 (neg.f64 x) (/.f64 z z))) |
(*.f64 z (+.f64 (neg.f64 x) (*.f64 z (/.f64 1 z)))) |
(*.f64 (*.f64 z (+.f64 (neg.f64 x) 1)) 1) |
(*.f64 (*.f64 z (+.f64 (neg.f64 x) 1)) (/.f64 (*.f64 z (+.f64 (neg.f64 x) 1)) (*.f64 z (+.f64 (neg.f64 x) 1)))) |
(*.f64 (*.f64 z (+.f64 (neg.f64 x) 1)) (*.f64 z (*.f64 (/.f64 1 (*.f64 z (+.f64 (neg.f64 x) 1))) (+.f64 (neg.f64 x) 1)))) |
(*.f64 (*.f64 z (+.f64 (neg.f64 x) 1)) (/.f64 1 (/.f64 (*.f64 z (+.f64 (neg.f64 x) 1)) (*.f64 z (+.f64 (neg.f64 x) 1))))) |
(*.f64 1 (*.f64 z (+.f64 (neg.f64 x) 1))) |
(*.f64 (/.f64 (*.f64 z (+.f64 (neg.f64 x) 1)) (*.f64 z (+.f64 (neg.f64 x) 1))) (*.f64 z (+.f64 (neg.f64 x) 1))) |
(*.f64 (+.f64 (neg.f64 x) 1) z) |
(*.f64 (/.f64 1 z) (*.f64 (+.f64 (neg.f64 x) 1) (*.f64 z z))) |
(*.f64 (/.f64 1 z) (+.f64 (*.f64 z z) (*.f64 (neg.f64 x) (*.f64 z z)))) |
(*.f64 (*.f64 z z) (*.f64 (+.f64 (neg.f64 x) 1) (/.f64 1 z))) |
(*.f64 (/.f64 1 (*.f64 z (+.f64 (neg.f64 x) 1))) (*.f64 (*.f64 z (+.f64 (neg.f64 x) 1)) (*.f64 z (+.f64 (neg.f64 x) 1)))) |
(*.f64 (*.f64 (*.f64 z (+.f64 (neg.f64 x) 1)) (*.f64 z (+.f64 (neg.f64 x) 1))) (/.f64 1 (*.f64 z (+.f64 (neg.f64 x) 1)))) |
(*.f64 (*.f64 z (*.f64 (/.f64 1 (*.f64 z (+.f64 (neg.f64 x) 1))) (+.f64 (neg.f64 x) 1))) (*.f64 z (+.f64 (neg.f64 x) 1))) |
(*.f64 (/.f64 1 (/.f64 (*.f64 z (+.f64 (neg.f64 x) 1)) (*.f64 z (+.f64 (neg.f64 x) 1)))) (*.f64 z (+.f64 (neg.f64 x) 1))) |
(*.f64 (/.f64 1 (/.f64 (*.f64 z (+.f64 (neg.f64 x) 1)) (*.f64 z (+.f64 (neg.f64 x) 1)))) (*.f64 (*.f64 z (+.f64 (neg.f64 x) 1)) (*.f64 (/.f64 (*.f64 z (+.f64 (neg.f64 x) 1)) (*.f64 z (+.f64 (neg.f64 x) 1))) (/.f64 (*.f64 z (+.f64 (neg.f64 x) 1)) (*.f64 z (+.f64 (neg.f64 x) 1)))))) |
(*.f64 (/.f64 (/.f64 1 (*.f64 z (+.f64 (neg.f64 x) 1))) (*.f64 (*.f64 z (+.f64 (neg.f64 x) 1)) (*.f64 z (+.f64 (neg.f64 x) 1)))) (*.f64 (*.f64 z (+.f64 (neg.f64 x) 1)) (*.f64 z (*.f64 (*.f64 z (+.f64 (neg.f64 x) 1)) (*.f64 (*.f64 z (+.f64 (neg.f64 x) 1)) (+.f64 (neg.f64 x) 1)))))) |
(*.f64 (/.f64 (/.f64 (*.f64 z (+.f64 (neg.f64 x) 1)) (*.f64 z (+.f64 (neg.f64 x) 1))) (*.f64 z (+.f64 (neg.f64 x) 1))) (*.f64 (*.f64 z (+.f64 (neg.f64 x) 1)) (*.f64 z (+.f64 (neg.f64 x) 1)))) |
(*.f64 (/.f64 (*.f64 z (*.f64 (/.f64 1 (*.f64 z (+.f64 (neg.f64 x) 1))) (+.f64 (neg.f64 x) 1))) (*.f64 z (+.f64 (neg.f64 x) 1))) (*.f64 (*.f64 z (+.f64 (neg.f64 x) 1)) (*.f64 z (+.f64 (neg.f64 x) 1)))) |
(*.f64 (/.f64 (/.f64 (/.f64 1 (*.f64 z (+.f64 (neg.f64 x) 1))) (*.f64 (*.f64 z (+.f64 (neg.f64 x) 1)) (*.f64 z (+.f64 (neg.f64 x) 1)))) (*.f64 (*.f64 z (+.f64 (neg.f64 x) 1)) (*.f64 z (*.f64 (*.f64 z (+.f64 (neg.f64 x) 1)) (*.f64 (*.f64 z (+.f64 (neg.f64 x) 1)) (+.f64 (neg.f64 x) 1)))))) (*.f64 (*.f64 (*.f64 z (+.f64 (neg.f64 x) 1)) (*.f64 z (*.f64 (*.f64 z (+.f64 (neg.f64 x) 1)) (*.f64 (*.f64 z (+.f64 (neg.f64 x) 1)) (+.f64 (neg.f64 x) 1))))) (*.f64 (*.f64 z (+.f64 (neg.f64 x) 1)) (*.f64 z (*.f64 (*.f64 z (+.f64 (neg.f64 x) 1)) (*.f64 (*.f64 z (+.f64 (neg.f64 x) 1)) (+.f64 (neg.f64 x) 1))))))) |
(*.f64 (/.f64 (/.f64 (/.f64 (*.f64 z (+.f64 (neg.f64 x) 1)) (*.f64 z (+.f64 (neg.f64 x) 1))) (*.f64 z (+.f64 (neg.f64 x) 1))) (*.f64 (*.f64 z (+.f64 (neg.f64 x) 1)) (*.f64 z (+.f64 (neg.f64 x) 1)))) (*.f64 (*.f64 z (+.f64 (neg.f64 x) 1)) (*.f64 z (*.f64 (*.f64 z (+.f64 (neg.f64 x) 1)) (*.f64 (*.f64 z (+.f64 (neg.f64 x) 1)) (+.f64 (neg.f64 x) 1)))))) |
(*.f64 (/.f64 (/.f64 (*.f64 z (*.f64 (/.f64 1 (*.f64 z (+.f64 (neg.f64 x) 1))) (+.f64 (neg.f64 x) 1))) (*.f64 z (+.f64 (neg.f64 x) 1))) (*.f64 (*.f64 z (+.f64 (neg.f64 x) 1)) (*.f64 z (+.f64 (neg.f64 x) 1)))) (*.f64 (*.f64 z (+.f64 (neg.f64 x) 1)) (*.f64 z (*.f64 (*.f64 z (+.f64 (neg.f64 x) 1)) (*.f64 (*.f64 z (+.f64 (neg.f64 x) 1)) (+.f64 (neg.f64 x) 1)))))) |
(*.f64 (/.f64 (/.f64 1 (/.f64 (*.f64 z (+.f64 (neg.f64 x) 1)) (*.f64 z (+.f64 (neg.f64 x) 1)))) (*.f64 z (+.f64 (neg.f64 x) 1))) (*.f64 (*.f64 z (+.f64 (neg.f64 x) 1)) (*.f64 z (+.f64 (neg.f64 x) 1)))) |
(/.f64 (*.f64 z (+.f64 (neg.f64 x) 1)) 1) |
(/.f64 (*.f64 z (+.f64 (neg.f64 x) 1)) (/.f64 (*.f64 z (+.f64 (neg.f64 x) 1)) (*.f64 z (+.f64 (neg.f64 x) 1)))) |
(/.f64 (*.f64 z (+.f64 (*.f64 x -2) 2)) 2) |
(/.f64 (neg.f64 (*.f64 z (+.f64 (*.f64 x -2) 2))) -2) |
(pow.f64 (*.f64 z (+.f64 (neg.f64 x) 1)) 1) |
(neg.f64 (neg.f64 (*.f64 z (+.f64 (neg.f64 x) 1)))) |
| Outputs |
|---|
(*.f64 (+.f64 1 (*.f64 -1 x)) z) |
(*.f64 z (+.f64 1 (neg.f64 x))) |
(*.f64 (+.f64 1 (*.f64 -1 x)) z) |
(*.f64 z (+.f64 1 (neg.f64 x))) |
(*.f64 (+.f64 1 (*.f64 -1 x)) z) |
(*.f64 z (+.f64 1 (neg.f64 x))) |
(*.f64 (+.f64 1 (*.f64 -1 x)) z) |
(*.f64 z (+.f64 1 (neg.f64 x))) |
(*.f64 (+.f64 1 (*.f64 -1 x)) z) |
(*.f64 z (+.f64 1 (neg.f64 x))) |
(*.f64 (+.f64 1 (*.f64 -1 x)) z) |
(*.f64 z (+.f64 1 (neg.f64 x))) |
(*.f64 (+.f64 1 (*.f64 -1 x)) z) |
(*.f64 z (+.f64 1 (neg.f64 x))) |
(*.f64 (+.f64 1 (*.f64 -1 x)) z) |
(*.f64 z (+.f64 1 (neg.f64 x))) |
(*.f64 -1 (*.f64 (-.f64 x 1) z)) |
(*.f64 (+.f64 x -1) (*.f64 -1 z)) |
(neg.f64 (*.f64 z (-.f64 x 1))) |
(*.f64 (-.f64 x 1) (neg.f64 z)) |
(*.f64 -1 (*.f64 (-.f64 x 1) z)) |
(*.f64 (+.f64 x -1) (*.f64 -1 z)) |
(neg.f64 (*.f64 z (-.f64 x 1))) |
(*.f64 (-.f64 x 1) (neg.f64 z)) |
(*.f64 -1 (*.f64 (-.f64 x 1) z)) |
(*.f64 (+.f64 x -1) (*.f64 -1 z)) |
(neg.f64 (*.f64 z (-.f64 x 1))) |
(*.f64 (-.f64 x 1) (neg.f64 z)) |
(*.f64 -1 (*.f64 (-.f64 x 1) z)) |
(*.f64 (+.f64 x -1) (*.f64 -1 z)) |
(neg.f64 (*.f64 z (-.f64 x 1))) |
(*.f64 (-.f64 x 1) (neg.f64 z)) |
z |
(+.f64 (*.f64 -1 (*.f64 z x)) z) |
(+.f64 z (*.f64 z (neg.f64 x))) |
(+.f64 z (neg.f64 (*.f64 x z))) |
(+.f64 z (*.f64 x (neg.f64 z))) |
(+.f64 (*.f64 -1 (*.f64 z x)) z) |
(+.f64 z (*.f64 z (neg.f64 x))) |
(+.f64 z (neg.f64 (*.f64 x z))) |
(+.f64 z (*.f64 x (neg.f64 z))) |
(+.f64 (*.f64 -1 (*.f64 z x)) z) |
(+.f64 z (*.f64 z (neg.f64 x))) |
(+.f64 z (neg.f64 (*.f64 x z))) |
(+.f64 z (*.f64 x (neg.f64 z))) |
(*.f64 -1 (*.f64 z x)) |
(*.f64 z (neg.f64 x)) |
(neg.f64 (*.f64 x z)) |
(*.f64 x (neg.f64 z)) |
(+.f64 z (*.f64 -1 (*.f64 z x))) |
(+.f64 z (*.f64 z (neg.f64 x))) |
(+.f64 z (neg.f64 (*.f64 x z))) |
(+.f64 z (*.f64 x (neg.f64 z))) |
(+.f64 z (*.f64 -1 (*.f64 z x))) |
(+.f64 z (*.f64 z (neg.f64 x))) |
(+.f64 z (neg.f64 (*.f64 x z))) |
(+.f64 z (*.f64 x (neg.f64 z))) |
(+.f64 z (*.f64 -1 (*.f64 z x))) |
(+.f64 z (*.f64 z (neg.f64 x))) |
(+.f64 z (neg.f64 (*.f64 x z))) |
(+.f64 z (*.f64 x (neg.f64 z))) |
(*.f64 -1 (*.f64 z x)) |
(*.f64 z (neg.f64 x)) |
(neg.f64 (*.f64 x z)) |
(*.f64 x (neg.f64 z)) |
(+.f64 z (*.f64 -1 (*.f64 z x))) |
(+.f64 z (*.f64 z (neg.f64 x))) |
(+.f64 z (neg.f64 (*.f64 x z))) |
(+.f64 z (*.f64 x (neg.f64 z))) |
(+.f64 z (*.f64 -1 (*.f64 z x))) |
(+.f64 z (*.f64 z (neg.f64 x))) |
(+.f64 z (neg.f64 (*.f64 x z))) |
(+.f64 z (*.f64 x (neg.f64 z))) |
(+.f64 z (*.f64 -1 (*.f64 z x))) |
(+.f64 z (*.f64 z (neg.f64 x))) |
(+.f64 z (neg.f64 (*.f64 x z))) |
(+.f64 z (*.f64 x (neg.f64 z))) |
(-.f64 (*.f64 z (+.f64 (neg.f64 x) 1)) 0) |
(*.f64 z (+.f64 1 (neg.f64 x))) |
(-.f64 0 (neg.f64 (*.f64 z (+.f64 (neg.f64 x) 1)))) |
(*.f64 z (+.f64 1 (neg.f64 x))) |
(*.f64 z (+.f64 (neg.f64 x) 1)) |
(*.f64 z (+.f64 1 (neg.f64 x))) |
(*.f64 z (*.f64 (+.f64 (neg.f64 x) 1) (/.f64 z z))) |
(*.f64 z (+.f64 1 (neg.f64 x))) |
(*.f64 z (*.f64 (+.f64 (neg.f64 x) 1) (*.f64 z (/.f64 1 z)))) |
(*.f64 z (+.f64 1 (neg.f64 x))) |
(*.f64 z (*.f64 (/.f64 1 (*.f64 z (+.f64 (neg.f64 x) 1))) (*.f64 (*.f64 z (+.f64 (neg.f64 x) 1)) (+.f64 (neg.f64 x) 1)))) |
(*.f64 z (+.f64 1 (neg.f64 x))) |
(*.f64 z (+.f64 (neg.f64 x) (/.f64 z z))) |
(*.f64 z (+.f64 (neg.f64 x) (*.f64 z (/.f64 1 z)))) |
(*.f64 (*.f64 z (+.f64 (neg.f64 x) 1)) 1) |
(*.f64 z (+.f64 1 (neg.f64 x))) |
(*.f64 (*.f64 z (+.f64 (neg.f64 x) 1)) (/.f64 (*.f64 z (+.f64 (neg.f64 x) 1)) (*.f64 z (+.f64 (neg.f64 x) 1)))) |
(*.f64 z (+.f64 1 (neg.f64 x))) |
(*.f64 (*.f64 z (+.f64 (neg.f64 x) 1)) (*.f64 z (*.f64 (/.f64 1 (*.f64 z (+.f64 (neg.f64 x) 1))) (+.f64 (neg.f64 x) 1)))) |
(*.f64 z (+.f64 1 (neg.f64 x))) |
(*.f64 (*.f64 z (+.f64 (neg.f64 x) 1)) (/.f64 1 (/.f64 (*.f64 z (+.f64 (neg.f64 x) 1)) (*.f64 z (+.f64 (neg.f64 x) 1))))) |
(*.f64 z (+.f64 1 (neg.f64 x))) |
(*.f64 1 (*.f64 z (+.f64 (neg.f64 x) 1))) |
(*.f64 z (+.f64 1 (neg.f64 x))) |
(*.f64 (/.f64 (*.f64 z (+.f64 (neg.f64 x) 1)) (*.f64 z (+.f64 (neg.f64 x) 1))) (*.f64 z (+.f64 (neg.f64 x) 1))) |
(*.f64 z (+.f64 1 (neg.f64 x))) |
(*.f64 (+.f64 (neg.f64 x) 1) z) |
(*.f64 z (+.f64 1 (neg.f64 x))) |
(*.f64 (/.f64 1 z) (*.f64 (+.f64 (neg.f64 x) 1) (*.f64 z z))) |
(*.f64 z (+.f64 1 (neg.f64 x))) |
(*.f64 (/.f64 1 z) (+.f64 (*.f64 z z) (*.f64 (neg.f64 x) (*.f64 z z)))) |
(*.f64 (/.f64 1 z) (*.f64 z (+.f64 z (neg.f64 (*.f64 x z))))) |
(*.f64 (/.f64 1 z) (*.f64 z (+.f64 z (*.f64 x (neg.f64 z))))) |
(*.f64 z (/.f64 (+.f64 z (*.f64 x (neg.f64 z))) z)) |
(*.f64 (*.f64 z z) (*.f64 (+.f64 (neg.f64 x) 1) (/.f64 1 z))) |
(*.f64 z (+.f64 1 (neg.f64 x))) |
(*.f64 (/.f64 1 (*.f64 z (+.f64 (neg.f64 x) 1))) (*.f64 (*.f64 z (+.f64 (neg.f64 x) 1)) (*.f64 z (+.f64 (neg.f64 x) 1)))) |
(*.f64 z (+.f64 1 (neg.f64 x))) |
(*.f64 (*.f64 (*.f64 z (+.f64 (neg.f64 x) 1)) (*.f64 z (+.f64 (neg.f64 x) 1))) (/.f64 1 (*.f64 z (+.f64 (neg.f64 x) 1)))) |
(*.f64 z (+.f64 1 (neg.f64 x))) |
(*.f64 (*.f64 z (*.f64 (/.f64 1 (*.f64 z (+.f64 (neg.f64 x) 1))) (+.f64 (neg.f64 x) 1))) (*.f64 z (+.f64 (neg.f64 x) 1))) |
(*.f64 z (+.f64 1 (neg.f64 x))) |
(*.f64 (/.f64 1 (/.f64 (*.f64 z (+.f64 (neg.f64 x) 1)) (*.f64 z (+.f64 (neg.f64 x) 1)))) (*.f64 z (+.f64 (neg.f64 x) 1))) |
(*.f64 z (+.f64 1 (neg.f64 x))) |
(*.f64 (/.f64 1 (/.f64 (*.f64 z (+.f64 (neg.f64 x) 1)) (*.f64 z (+.f64 (neg.f64 x) 1)))) (*.f64 (*.f64 z (+.f64 (neg.f64 x) 1)) (*.f64 (/.f64 (*.f64 z (+.f64 (neg.f64 x) 1)) (*.f64 z (+.f64 (neg.f64 x) 1))) (/.f64 (*.f64 z (+.f64 (neg.f64 x) 1)) (*.f64 z (+.f64 (neg.f64 x) 1)))))) |
(*.f64 z (+.f64 1 (neg.f64 x))) |
(*.f64 (/.f64 (/.f64 1 (*.f64 z (+.f64 (neg.f64 x) 1))) (*.f64 (*.f64 z (+.f64 (neg.f64 x) 1)) (*.f64 z (+.f64 (neg.f64 x) 1)))) (*.f64 (*.f64 z (+.f64 (neg.f64 x) 1)) (*.f64 z (*.f64 (*.f64 z (+.f64 (neg.f64 x) 1)) (*.f64 (*.f64 z (+.f64 (neg.f64 x) 1)) (+.f64 (neg.f64 x) 1)))))) |
(*.f64 z (+.f64 1 (neg.f64 x))) |
(*.f64 (/.f64 (/.f64 (*.f64 z (+.f64 (neg.f64 x) 1)) (*.f64 z (+.f64 (neg.f64 x) 1))) (*.f64 z (+.f64 (neg.f64 x) 1))) (*.f64 (*.f64 z (+.f64 (neg.f64 x) 1)) (*.f64 z (+.f64 (neg.f64 x) 1)))) |
(*.f64 z (+.f64 1 (neg.f64 x))) |
(*.f64 (/.f64 (*.f64 z (*.f64 (/.f64 1 (*.f64 z (+.f64 (neg.f64 x) 1))) (+.f64 (neg.f64 x) 1))) (*.f64 z (+.f64 (neg.f64 x) 1))) (*.f64 (*.f64 z (+.f64 (neg.f64 x) 1)) (*.f64 z (+.f64 (neg.f64 x) 1)))) |
(*.f64 z (+.f64 1 (neg.f64 x))) |
(*.f64 (/.f64 (/.f64 (/.f64 1 (*.f64 z (+.f64 (neg.f64 x) 1))) (*.f64 (*.f64 z (+.f64 (neg.f64 x) 1)) (*.f64 z (+.f64 (neg.f64 x) 1)))) (*.f64 (*.f64 z (+.f64 (neg.f64 x) 1)) (*.f64 z (*.f64 (*.f64 z (+.f64 (neg.f64 x) 1)) (*.f64 (*.f64 z (+.f64 (neg.f64 x) 1)) (+.f64 (neg.f64 x) 1)))))) (*.f64 (*.f64 (*.f64 z (+.f64 (neg.f64 x) 1)) (*.f64 z (*.f64 (*.f64 z (+.f64 (neg.f64 x) 1)) (*.f64 (*.f64 z (+.f64 (neg.f64 x) 1)) (+.f64 (neg.f64 x) 1))))) (*.f64 (*.f64 z (+.f64 (neg.f64 x) 1)) (*.f64 z (*.f64 (*.f64 z (+.f64 (neg.f64 x) 1)) (*.f64 (*.f64 z (+.f64 (neg.f64 x) 1)) (+.f64 (neg.f64 x) 1))))))) |
(*.f64 z (+.f64 1 (neg.f64 x))) |
(*.f64 (/.f64 (/.f64 (/.f64 (*.f64 z (+.f64 (neg.f64 x) 1)) (*.f64 z (+.f64 (neg.f64 x) 1))) (*.f64 z (+.f64 (neg.f64 x) 1))) (*.f64 (*.f64 z (+.f64 (neg.f64 x) 1)) (*.f64 z (+.f64 (neg.f64 x) 1)))) (*.f64 (*.f64 z (+.f64 (neg.f64 x) 1)) (*.f64 z (*.f64 (*.f64 z (+.f64 (neg.f64 x) 1)) (*.f64 (*.f64 z (+.f64 (neg.f64 x) 1)) (+.f64 (neg.f64 x) 1)))))) |
(*.f64 z (+.f64 1 (neg.f64 x))) |
(*.f64 (/.f64 (/.f64 (*.f64 z (*.f64 (/.f64 1 (*.f64 z (+.f64 (neg.f64 x) 1))) (+.f64 (neg.f64 x) 1))) (*.f64 z (+.f64 (neg.f64 x) 1))) (*.f64 (*.f64 z (+.f64 (neg.f64 x) 1)) (*.f64 z (+.f64 (neg.f64 x) 1)))) (*.f64 (*.f64 z (+.f64 (neg.f64 x) 1)) (*.f64 z (*.f64 (*.f64 z (+.f64 (neg.f64 x) 1)) (*.f64 (*.f64 z (+.f64 (neg.f64 x) 1)) (+.f64 (neg.f64 x) 1)))))) |
(*.f64 z (+.f64 1 (neg.f64 x))) |
(*.f64 (/.f64 (/.f64 1 (/.f64 (*.f64 z (+.f64 (neg.f64 x) 1)) (*.f64 z (+.f64 (neg.f64 x) 1)))) (*.f64 z (+.f64 (neg.f64 x) 1))) (*.f64 (*.f64 z (+.f64 (neg.f64 x) 1)) (*.f64 z (+.f64 (neg.f64 x) 1)))) |
(*.f64 z (+.f64 1 (neg.f64 x))) |
(/.f64 (*.f64 z (+.f64 (neg.f64 x) 1)) 1) |
(*.f64 z (+.f64 1 (neg.f64 x))) |
(/.f64 (*.f64 z (+.f64 (neg.f64 x) 1)) (/.f64 (*.f64 z (+.f64 (neg.f64 x) 1)) (*.f64 z (+.f64 (neg.f64 x) 1)))) |
(*.f64 z (+.f64 1 (neg.f64 x))) |
(/.f64 (*.f64 z (+.f64 (*.f64 x -2) 2)) 2) |
(/.f64 (neg.f64 (*.f64 z (+.f64 (*.f64 x -2) 2))) -2) |
(/.f64 (*.f64 z (+.f64 (*.f64 x -2) 2)) 2) |
(pow.f64 (*.f64 z (+.f64 (neg.f64 x) 1)) 1) |
(*.f64 z (+.f64 1 (neg.f64 x))) |
(neg.f64 (neg.f64 (*.f64 z (+.f64 (neg.f64 x) 1)))) |
(*.f64 z (+.f64 1 (neg.f64 x))) |
Compiled 2844 to 919 computations (67.7% saved)
9 alts after pruning (2 fresh and 7 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 175 | 1 | 176 |
| Fresh | 0 | 1 | 1 |
| Picked | 0 | 1 | 1 |
| Done | 1 | 6 | 7 |
| Total | 176 | 9 | 185 |
| Status | Error | Program |
|---|---|---|
| ✓ | 0.0b | (+.f64 (*.f64 (-.f64 y z) x) z) |
| ✓ | 28.9b | (+.f64 (*.f64 x y) (*.f64 z (neg.f64 x))) |
| ✓ | 12.2b | (+.f64 (*.f64 x y) z) |
| ✓ | 21.8b | (+.f64 z (*.f64 z (neg.f64 x))) |
| ✓ | 28.9b | (*.f64 (-.f64 y z) x) |
| ▶ | 21.8b | (*.f64 z (-.f64 1 x)) |
| ✓ | 50.6b | (*.f64 z (neg.f64 x)) |
| ✓ | 40.4b | (*.f64 y x) |
| 33.6b | z |
Compiled 71 to 47 computations (33.8% saved)
Found 1 expressions with local error:
| New | Error | Program |
|---|---|---|
| ✓ | 0.0b | (*.f64 z (-.f64 1 x)) |
Compiled 14 to 9 computations (35.7% saved)
6 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 0.0ms | z | @ | 0 | (*.f64 z (-.f64 1 x)) |
| 0.0ms | z | @ | inf | (*.f64 z (-.f64 1 x)) |
| 0.0ms | x | @ | inf | (*.f64 z (-.f64 1 x)) |
| 0.0ms | x | @ | -inf | (*.f64 z (-.f64 1 x)) |
| 0.0ms | z | @ | -inf | (*.f64 z (-.f64 1 x)) |
| 1× | batch-egg-rewrite |
| 1616× | rational_best-5 |
| 1614× | rational_best-4 |
| 1614× | rational_best-2 |
| 1614× | rational_best-3 |
| 1614× | rational_best-1 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 7 | 13 |
| 1 | 56 | 13 |
| 2 | 181 | 13 |
| 3 | 753 | 13 |
| 4 | 3266 | 13 |
| 1× | node limit |
| Inputs |
|---|
(*.f64 z (-.f64 1 x)) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 z (-.f64 1 x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 z (-.f64 1 x)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 z (-.f64 1 x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 z (-.f64 1 x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 z (-.f64 1 x)) (/.f64 (*.f64 z (-.f64 1 x)) (*.f64 z (-.f64 1 x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 z (-.f64 2 (+.f64 x x))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 z (-.f64 1 x)) 1))))) |
| 1× | egg-herbie |
| 1768× | rational_best-simplify-80 |
| 1354× | rational_best-simplify-78 |
| 1066× | rational_best-simplify-44 |
| 1040× | rational_best-simplify-132 |
| 938× | rational_best-simplify-43 |
Useful iterations: 1 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 25 | 301 |
| 1 | 38 | 279 |
| 2 | 79 | 279 |
| 3 | 199 | 279 |
| 4 | 801 | 279 |
| 5 | 2497 | 279 |
| 6 | 4205 | 279 |
| 7 | 6796 | 279 |
| 1× | node limit |
| Inputs |
|---|
z |
(+.f64 (*.f64 -1 (*.f64 z x)) z) |
(+.f64 (*.f64 -1 (*.f64 z x)) z) |
(+.f64 (*.f64 -1 (*.f64 z x)) z) |
(*.f64 -1 (*.f64 z x)) |
(+.f64 z (*.f64 -1 (*.f64 z x))) |
(+.f64 z (*.f64 -1 (*.f64 z x))) |
(+.f64 z (*.f64 -1 (*.f64 z x))) |
(*.f64 -1 (*.f64 z x)) |
(+.f64 z (*.f64 -1 (*.f64 z x))) |
(+.f64 z (*.f64 -1 (*.f64 z x))) |
(+.f64 z (*.f64 -1 (*.f64 z x))) |
(+.f64 (*.f64 z (-.f64 1 x)) 0) |
(+.f64 0 (*.f64 z (-.f64 1 x))) |
(-.f64 (*.f64 z (-.f64 1 x)) 0) |
(/.f64 (*.f64 z (-.f64 1 x)) 1) |
(/.f64 (*.f64 z (-.f64 1 x)) (/.f64 (*.f64 z (-.f64 1 x)) (*.f64 z (-.f64 1 x)))) |
(/.f64 (*.f64 z (-.f64 2 (+.f64 x x))) 2) |
(pow.f64 (*.f64 z (-.f64 1 x)) 1) |
| Outputs |
|---|
z |
(+.f64 (*.f64 -1 (*.f64 z x)) z) |
(+.f64 z (*.f64 z (*.f64 -1 x))) |
(+.f64 z (neg.f64 (*.f64 z x))) |
(+.f64 z (*.f64 z (neg.f64 x))) |
(+.f64 (*.f64 -1 (*.f64 z x)) z) |
(+.f64 z (*.f64 z (*.f64 -1 x))) |
(+.f64 z (neg.f64 (*.f64 z x))) |
(+.f64 z (*.f64 z (neg.f64 x))) |
(+.f64 (*.f64 -1 (*.f64 z x)) z) |
(+.f64 z (*.f64 z (*.f64 -1 x))) |
(+.f64 z (neg.f64 (*.f64 z x))) |
(+.f64 z (*.f64 z (neg.f64 x))) |
(*.f64 -1 (*.f64 z x)) |
(*.f64 z (*.f64 -1 x)) |
(neg.f64 (*.f64 z x)) |
(*.f64 z (neg.f64 x)) |
(+.f64 z (*.f64 -1 (*.f64 z x))) |
(+.f64 z (*.f64 z (*.f64 -1 x))) |
(+.f64 z (neg.f64 (*.f64 z x))) |
(+.f64 z (*.f64 z (neg.f64 x))) |
(+.f64 z (*.f64 -1 (*.f64 z x))) |
(+.f64 z (*.f64 z (*.f64 -1 x))) |
(+.f64 z (neg.f64 (*.f64 z x))) |
(+.f64 z (*.f64 z (neg.f64 x))) |
(+.f64 z (*.f64 -1 (*.f64 z x))) |
(+.f64 z (*.f64 z (*.f64 -1 x))) |
(+.f64 z (neg.f64 (*.f64 z x))) |
(+.f64 z (*.f64 z (neg.f64 x))) |
(*.f64 -1 (*.f64 z x)) |
(*.f64 z (*.f64 -1 x)) |
(neg.f64 (*.f64 z x)) |
(*.f64 z (neg.f64 x)) |
(+.f64 z (*.f64 -1 (*.f64 z x))) |
(+.f64 z (*.f64 z (*.f64 -1 x))) |
(+.f64 z (neg.f64 (*.f64 z x))) |
(+.f64 z (*.f64 z (neg.f64 x))) |
(+.f64 z (*.f64 -1 (*.f64 z x))) |
(+.f64 z (*.f64 z (*.f64 -1 x))) |
(+.f64 z (neg.f64 (*.f64 z x))) |
(+.f64 z (*.f64 z (neg.f64 x))) |
(+.f64 z (*.f64 -1 (*.f64 z x))) |
(+.f64 z (*.f64 z (*.f64 -1 x))) |
(+.f64 z (neg.f64 (*.f64 z x))) |
(+.f64 z (*.f64 z (neg.f64 x))) |
(+.f64 (*.f64 z (-.f64 1 x)) 0) |
(*.f64 z (-.f64 1 x)) |
(+.f64 0 (*.f64 z (-.f64 1 x))) |
(*.f64 z (-.f64 1 x)) |
(-.f64 (*.f64 z (-.f64 1 x)) 0) |
(*.f64 z (-.f64 1 x)) |
(/.f64 (*.f64 z (-.f64 1 x)) 1) |
(*.f64 z (-.f64 1 x)) |
(/.f64 (*.f64 z (-.f64 1 x)) (/.f64 (*.f64 z (-.f64 1 x)) (*.f64 z (-.f64 1 x)))) |
(*.f64 z (-.f64 1 x)) |
(/.f64 (*.f64 z (-.f64 2 (+.f64 x x))) 2) |
(pow.f64 (*.f64 z (-.f64 1 x)) 1) |
(*.f64 z (-.f64 1 x)) |
Compiled 121 to 69 computations (43% saved)
9 alts after pruning (1 fresh and 8 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 18 | 0 | 18 |
| Fresh | 0 | 1 | 1 |
| Picked | 0 | 1 | 1 |
| Done | 0 | 7 | 7 |
| Total | 18 | 9 | 27 |
| Status | Error | Program |
|---|---|---|
| ✓ | 0.0b | (+.f64 (*.f64 (-.f64 y z) x) z) |
| ✓ | 28.9b | (+.f64 (*.f64 x y) (*.f64 z (neg.f64 x))) |
| ✓ | 12.2b | (+.f64 (*.f64 x y) z) |
| ✓ | 21.8b | (+.f64 z (*.f64 z (neg.f64 x))) |
| ✓ | 28.9b | (*.f64 (-.f64 y z) x) |
| ✓ | 21.8b | (*.f64 z (-.f64 1 x)) |
| ✓ | 50.6b | (*.f64 z (neg.f64 x)) |
| ✓ | 40.4b | (*.f64 y x) |
| 33.6b | z |
Compiled 71 to 47 computations (33.8% saved)
| Inputs |
|---|
z |
(*.f64 y x) |
(*.f64 z (neg.f64 x)) |
(*.f64 z (-.f64 1 x)) |
(*.f64 (-.f64 y z) x) |
(+.f64 (*.f64 x y) z) |
(*.f64 x (+.f64 (neg.f64 z) y)) |
(*.f64 (+.f64 x -1) (neg.f64 z)) |
(+.f64 z (*.f64 z (neg.f64 x))) |
(+.f64 (*.f64 (-.f64 y z) x) z) |
(+.f64 z (*.f64 x (+.f64 (neg.f64 z) y))) |
(+.f64 (*.f64 x y) (*.f64 z (neg.f64 x))) |
(+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z)) |
| Outputs |
|---|
(+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z)) |
4 calls:
| 203.0ms | (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z)) |
| 84.0ms | x |
| 7.0ms | z |
| 7.0ms | y |
| Error | Segments | Branch |
|---|---|---|
| 0.0b | 1 | x |
| 0.0b | 1 | y |
| 0.0b | 1 | z |
| 0.0b | 1 | (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z)) |
Compiled 100 to 44 computations (56% saved)
| Inputs |
|---|
z |
(*.f64 y x) |
(*.f64 z (neg.f64 x)) |
(*.f64 z (-.f64 1 x)) |
(*.f64 (-.f64 y z) x) |
(+.f64 (*.f64 x y) z) |
(*.f64 x (+.f64 (neg.f64 z) y)) |
(*.f64 (+.f64 x -1) (neg.f64 z)) |
(+.f64 z (*.f64 z (neg.f64 x))) |
(+.f64 (*.f64 (-.f64 y z) x) z) |
(+.f64 z (*.f64 x (+.f64 (neg.f64 z) y))) |
(+.f64 (*.f64 x y) (*.f64 z (neg.f64 x))) |
| Outputs |
|---|
(+.f64 (*.f64 (-.f64 y z) x) z) |
3 calls:
| 8.0ms | y |
| 7.0ms | z |
| 6.0ms | x |
| Error | Segments | Branch |
|---|---|---|
| 0.0b | 1 | x |
| 0.0b | 1 | y |
| 0.0b | 1 | z |
Compiled 79 to 32 computations (59.5% saved)
| Inputs |
|---|
z |
(*.f64 y x) |
(*.f64 z (neg.f64 x)) |
(*.f64 z (-.f64 1 x)) |
(*.f64 (-.f64 y z) x) |
(+.f64 (*.f64 x y) z) |
(*.f64 x (+.f64 (neg.f64 z) y)) |
(*.f64 (+.f64 x -1) (neg.f64 z)) |
(+.f64 z (*.f64 z (neg.f64 x))) |
| Outputs |
|---|
(*.f64 (-.f64 y z) x) |
(+.f64 (*.f64 x y) z) |
(*.f64 (-.f64 y z) x) |
3 calls:
| 193.0ms | z |
| 24.0ms | y |
| 16.0ms | x |
| Error | Segments | Branch |
|---|---|---|
| 0.8b | 3 | x |
| 5.6b | 3 | y |
| 6.2b | 5 | z |
Compiled 56 to 29 computations (48.2% saved)
| 2× | binary-search |
| Time | Left | Right |
|---|---|---|
| 15.0ms | 9.594003376792615e-5 | 13918.95810043413 |
| 81.0ms | -48.60976004989993 | -2.0923994105332014e-9 |
| 93.0ms | 304× | body | 256 | valid |
Compiled 360 to 241 computations (33.1% saved)
| Inputs |
|---|
z |
(*.f64 y x) |
(*.f64 z (neg.f64 x)) |
(*.f64 z (-.f64 1 x)) |
(*.f64 (-.f64 y z) x) |
| Outputs |
|---|
(*.f64 (-.f64 y z) x) |
(*.f64 z (-.f64 1 x)) |
(*.f64 (-.f64 y z) x) |
3 calls:
| 76.0ms | y |
| 16.0ms | x |
| 12.0ms | z |
| Error | Segments | Branch |
|---|---|---|
| 9.7b | 3 | x |
| 13.9b | 4 | y |
| 10.3b | 3 | z |
Compiled 33 to 20 computations (39.4% saved)
| 2× | binary-search |
| Time | Left | Right |
|---|---|---|
| 15.0ms | 9.203484722311247e-56 | 1.7738218183122932e-50 |
| 14.0ms | -2257.237973171654 | -48.60976004989993 |
| 24.0ms | 256× | body | 256 | valid |
Compiled 306 to 221 computations (27.8% saved)
| Inputs |
|---|
z |
(*.f64 y x) |
(*.f64 z (neg.f64 x)) |
(*.f64 z (-.f64 1 x)) |
| Outputs |
|---|
(*.f64 z (-.f64 1 x)) |
(*.f64 y x) |
(*.f64 z (-.f64 1 x)) |
(*.f64 y x) |
(*.f64 z (-.f64 1 x)) |
3 calls:
| 186.0ms | x |
| 24.0ms | z |
| 16.0ms | y |
| Error | Segments | Branch |
|---|---|---|
| 17.5b | 6 | x |
| 15.1b | 4 | y |
| 11.8b | 5 | z |
Compiled 28 to 18 computations (35.7% saved)
| 4× | binary-search |
| Time | Left | Right |
|---|---|---|
| 19.0ms | 2.363784749300843e-148 | 1.5875537094155576e-128 |
| 11.0ms | -1.3095908958791521e-263 | -1.8505717707005855e-264 |
| 14.0ms | -4.2819132418016324e-212 | -3.7391188741404064e-215 |
| 17.0ms | -5.787562508803469e-71 | -4.91163688779568e-78 |
| 52.0ms | 544× | body | 256 | valid |
Compiled 562 to 421 computations (25.1% saved)
| Inputs |
|---|
z |
(*.f64 y x) |
(*.f64 z (neg.f64 x)) |
| Outputs |
|---|
(*.f64 z (neg.f64 x)) |
(*.f64 y x) |
z |
(*.f64 y x) |
(*.f64 z (neg.f64 x)) |
(*.f64 y x) |
(*.f64 z (neg.f64 x)) |
(*.f64 y x) |
3 calls:
| 134.0ms | x |
| 76.0ms | y |
| 22.0ms | z |
| Error | Segments | Branch |
|---|---|---|
| 16.9b | 8 | x |
| 24.7b | 6 | y |
| 21.0b | 5 | z |
Compiled 23 to 15 computations (34.8% saved)
| 7× | binary-search |
| Time | Left | Right |
|---|---|---|
| 28.0ms | 4.130164025432494e+158 | 1.0849590616844895e+170 |
| 21.0ms | 9.497147456948128e+93 | 1.431296574926413e+100 |
| 185.0ms | 1.3148238234615563e+62 | 7.378713484027258e+65 |
| 12.0ms | 1.1196101306247887e+33 | 4.0846285287497e+34 |
| 85.0ms | 9.203484722311247e-56 | 1.7738218183122932e-50 |
| 13.0ms | -3.0354693648533645e-34 | -1.496090227824058e-36 |
| 15.0ms | -1.2275663513673724e+33 | -3.6567070040662485e+25 |
| 162.0ms | 944× | body | 256 | valid |
| 16.0ms | 149× | body | 256 | infinite |
Compiled 855 to 630 computations (26.3% saved)
Total -40.7b remaining (-192%)
Threshold costs -40.7b (-192%)
| Inputs |
|---|
z |
(*.f64 y x) |
| Outputs |
|---|
(*.f64 y x) |
z |
(*.f64 y x) |
3 calls:
| 72.0ms | z |
| 11.0ms | y |
| 8.0ms | x |
| Error | Segments | Branch |
|---|---|---|
| 21.2b | 3 | x |
| 25.7b | 4 | y |
| 22.1b | 3 | z |
Compiled 19 to 13 computations (31.6% saved)
| 2× | binary-search |
| Time | Left | Right |
|---|---|---|
| 214.0ms | 9.203484722311247e-56 | 1.7738218183122932e-50 |
| 14.0ms | -3.0354693648533645e-34 | -1.496090227824058e-36 |
| 226.0ms | 256× | body | 256 | valid |
Compiled 210 to 157 computations (25.2% saved)
| 1× | egg-herbie |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 72 | 406 |
| 1× | fuel |
| 1× | saturated |
| Inputs |
|---|
(+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z)) |
(+.f64 (*.f64 (-.f64 y z) x) z) |
(if (<=.f64 x -1) (*.f64 (-.f64 y z) x) (if (<=.f64 x 1) (+.f64 (*.f64 x y) z) (*.f64 (-.f64 y z) x))) |
(if (<=.f64 x -800) (*.f64 (-.f64 y z) x) (if (<=.f64 x 7371860416799003/421249166674228746791672110734681729275580381602196445017243910144) (*.f64 z (-.f64 1 x)) (*.f64 (-.f64 y z) x))) |
(if (<=.f64 z -205145835019037/31082702275611665134711390509176302506278509424834232340028998555822468563283335970816) (*.f64 z (-.f64 1 x)) (if (<=.f64 z -4075359992289361/97032380768794308446811218028906409703555376069793538196190752376628184542898555395679900551790404871905483168570692075385723752757175899465267954690073821200278436001303119096891580351974902801578937449607279296930802928363503616) (*.f64 y x) (if (<=.f64 z -3687137567560421/283625966735416996535885333662014114404918709117773906527666446555317050392228007039102232836943884008369202383078188524332921074971181050832906833858946728855699699487201666630303651778087184309051360279531753007138776532531333940154475963659030548670205136385754377903702802432) (*.f64 z (-.f64 1 x)) (if (<=.f64 z 4395421958844917/1598335257761788022467377781654101148543282249044465229239888363328190330275719997501596724768507889233831388734160190922469363547795602076820570112) (*.f64 y x) (*.f64 z (-.f64 1 x)))))) |
(if (<=.f64 x -239999999999999991261511079165952) (*.f64 z (neg.f64 x)) (if (<=.f64 x -4676805239458889/187072209578355573530071658587684226515959365500928) (*.f64 y x) (if (<=.f64 x 1684996666696915/210624583337114373395836055367340864637790190801098222508621955072) z (if (<=.f64 x 8400000000000000234584843055267840) (*.f64 y x) (if (<=.f64 x 18499999999999999152151359943638861664441162809616784807782514688) (*.f64 z (neg.f64 x)) (if (<=.f64 x 5199999999999999927281522392693248169990667907370033791293743205857714461383605372510661576228864000) (*.f64 y x) (if (<=.f64 x 5999999999999999603162969008457847374231701298581989111670156933846203880197621885754154595575075683025487327598191128853236284880668876759676751032422371704966310002688) (*.f64 z (neg.f64 x)) (*.f64 y x)))))))) |
(if (<=.f64 x -3507603929594167/23384026197294446691258957323460528314494920687616) (*.f64 y x) (if (<=.f64 x 1639164757362759/862718293348820473429344482784628181556388621521298319395315527974912) z (*.f64 y x))) |
z |
| Outputs |
|---|
(+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z)) |
(+.f64 (*.f64 (-.f64 y z) x) z) |
(if (<=.f64 x -1) (*.f64 (-.f64 y z) x) (if (<=.f64 x 1) (+.f64 (*.f64 x y) z) (*.f64 (-.f64 y z) x))) |
(if (<=.f64 x -800) (*.f64 (-.f64 y z) x) (if (<=.f64 x 7371860416799003/421249166674228746791672110734681729275580381602196445017243910144) (*.f64 z (-.f64 1 x)) (*.f64 (-.f64 y z) x))) |
(if (<=.f64 z -205145835019037/31082702275611665134711390509176302506278509424834232340028998555822468563283335970816) (*.f64 z (-.f64 1 x)) (if (<=.f64 z -4075359992289361/97032380768794308446811218028906409703555376069793538196190752376628184542898555395679900551790404871905483168570692075385723752757175899465267954690073821200278436001303119096891580351974902801578937449607279296930802928363503616) (*.f64 y x) (if (<=.f64 z -3687137567560421/283625966735416996535885333662014114404918709117773906527666446555317050392228007039102232836943884008369202383078188524332921074971181050832906833858946728855699699487201666630303651778087184309051360279531753007138776532531333940154475963659030548670205136385754377903702802432) (*.f64 z (-.f64 1 x)) (if (<=.f64 z 4395421958844917/1598335257761788022467377781654101148543282249044465229239888363328190330275719997501596724768507889233831388734160190922469363547795602076820570112) (*.f64 y x) (*.f64 z (-.f64 1 x)))))) |
(if (<=.f64 x -239999999999999991261511079165952) (*.f64 z (neg.f64 x)) (if (<=.f64 x -4676805239458889/187072209578355573530071658587684226515959365500928) (*.f64 y x) (if (<=.f64 x 1684996666696915/210624583337114373395836055367340864637790190801098222508621955072) z (if (<=.f64 x 8400000000000000234584843055267840) (*.f64 y x) (if (<=.f64 x 18499999999999999152151359943638861664441162809616784807782514688) (*.f64 z (neg.f64 x)) (if (<=.f64 x 5199999999999999927281522392693248169990667907370033791293743205857714461383605372510661576228864000) (*.f64 y x) (if (<=.f64 x 5999999999999999603162969008457847374231701298581989111670156933846203880197621885754154595575075683025487327598191128853236284880668876759676751032422371704966310002688) (*.f64 z (neg.f64 x)) (*.f64 y x)))))))) |
(if (<=.f64 x -3507603929594167/23384026197294446691258957323460528314494920687616) (*.f64 y x) (if (<=.f64 x 1639164757362759/862718293348820473429344482784628181556388621521298319395315527974912) z (*.f64 y x))) |
z |
Compiled 192 to 106 computations (44.8% saved)
Compiled 171 to 78 computations (54.4% saved)
Loading profile data...