Time bar (total: 8.3s)
| 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)
| 787.0ms | 8256× | body | 256 | valid |
| 117.0ms | 1254× | body | 256 | infinite |
| 2× | egg-herbie |
| 14× | rational.json-simplify-2 |
| 8× | rational.json-simplify-1 |
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 (-.f64 1 x) y) (*.f64 x z)) |
(+.f64 (*.f64 (-.f64 1 y) x) (*.f64 y z)) |
(+.f64 (*.f64 (-.f64 1 z) y) (*.f64 z x)) |
(+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y)) |
| Outputs |
|---|
(+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z)) |
(+.f64 (*.f64 (-.f64 1 y) x) (*.f64 y z)) |
(+.f64 (*.f64 x (-.f64 1 y)) (*.f64 y z)) |
(+.f64 (*.f64 (-.f64 1 z) y) (*.f64 z x)) |
(+.f64 (*.f64 y (-.f64 1 z)) (*.f64 x z)) |
(+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y)) |
Compiled 15 to 11 computations (26.7% saved)
| 1× | egg-herbie |
| 4× | rational.json-simplify-2 |
| 2× | rational.json-simplify-1 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 10 | 25 |
| 1 | 13 | 25 |
| 1× | saturated |
| Inputs |
|---|
(+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z)) |
| Outputs |
|---|
(+.f64 (*.f64 (-.f64 1 x) y) (*.f64 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 (-.f64 1 x) y) (*.f64 x z)) |
Compiled 12 to 8 computations (33.3% saved)
Found 2 expressions with local error:
| New | Error | Program |
|---|---|---|
| ✓ | 0.0b | (*.f64 (-.f64 1 x) y) |
| ✓ | 0.0b | (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z)) |
Compiled 27 to 14 computations (48.1% saved)
15 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 0.0ms | x | @ | inf | (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z)) |
| 0.0ms | y | @ | 0 | (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z)) |
| 0.0ms | x | @ | 0 | (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z)) |
| 0.0ms | x | @ | -inf | (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z)) |
| 0.0ms | y | @ | -inf | (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z)) |
| 1× | batch-egg-rewrite |
| 1900× | rational.json-simplify-1 |
| 1382× | exponential.json-3 |
| 1382× | rational.json-1 |
| 1382× | rational.json-2 |
| 1382× | rational.json-4 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 10 | 38 |
| 1 | 75 | 38 |
| 2 | 160 | 38 |
| 3 | 306 | 38 |
| 4 | 573 | 38 |
| 5 | 1285 | 38 |
| 6 | 2930 | 38 |
| 7 | 5082 | 38 |
| 8 | 6317 | 38 |
| 9 | 7421 | 38 |
| 10 | 7501 | 38 |
| 11 | 7593 | 38 |
| 12 | 7682 | 38 |
| 1× | node limit |
| Inputs |
|---|
(+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z)) |
(*.f64 (-.f64 1 x) y) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z)) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z)) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z)) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z)) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z)) 8))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z)) 1))))) |
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (-.f64 1 x) y) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (-.f64 1 x) y))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (-.f64 1 x) (*.f64 y 1/2)) (*.f64 (-.f64 1 x) (*.f64 y 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (-.f64 1 x) y) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 1 x) y) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 1 x) (+.f64 y y)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 1 x) (*.f64 y 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 (-.f64 1 x) y) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 (-.f64 1 x) y) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (-.f64 1 x) y) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (-.f64 1 x) y) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (-.f64 1 x) y) 8))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (-.f64 1 x) y) 1))))) |
| 1× | egg-herbie |
| 3198× | rational.json-simplify-41 |
| 2708× | rational.json-simplify-35 |
| 1678× | rational.json-simplify-2 |
| 676× | rational.json-simplify-51 |
| 506× | rational.json-simplify-1 |
Useful iterations: 1 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 89 | 1821 |
| 1 | 207 | 1769 |
| 2 | 511 | 1769 |
| 3 | 1402 | 1769 |
| 4 | 2787 | 1769 |
| 5 | 3571 | 1769 |
| 6 | 3859 | 1769 |
| 7 | 4120 | 1769 |
| 8 | 4314 | 1769 |
| 9 | 4469 | 1769 |
| 10 | 4602 | 1769 |
| 11 | 4905 | 1769 |
| 12 | 4938 | 1769 |
| 13 | 4985 | 1769 |
| 14 | 5006 | 1769 |
| 15 | 5030 | 1769 |
| 16 | 5050 | 1769 |
| 17 | 5186 | 1769 |
| 18 | 5316 | 1769 |
| 19 | 5446 | 1769 |
| 1× | node limit |
| Inputs |
|---|
y |
(+.f64 (*.f64 (+.f64 z (*.f64 -1 y)) x) y) |
(+.f64 (*.f64 (+.f64 z (*.f64 -1 y)) x) y) |
(+.f64 (*.f64 (+.f64 z (*.f64 -1 y)) x) y) |
(*.f64 (+.f64 z (*.f64 -1 y)) x) |
(+.f64 (*.f64 (+.f64 z (*.f64 -1 y)) x) y) |
(+.f64 (*.f64 (+.f64 z (*.f64 -1 y)) x) y) |
(+.f64 (*.f64 (+.f64 z (*.f64 -1 y)) x) y) |
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 z) y) x)) |
(+.f64 y (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 z) y) x))) |
(+.f64 y (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 z) y) x))) |
(+.f64 y (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 z) y) x))) |
(*.f64 z x) |
(+.f64 (*.f64 z x) (*.f64 y (-.f64 1 x))) |
(+.f64 (*.f64 z x) (*.f64 y (-.f64 1 x))) |
(+.f64 (*.f64 z x) (*.f64 y (-.f64 1 x))) |
(*.f64 y (-.f64 1 x)) |
(+.f64 (*.f64 z x) (*.f64 y (-.f64 1 x))) |
(+.f64 (*.f64 z x) (*.f64 y (-.f64 1 x))) |
(+.f64 (*.f64 z x) (*.f64 y (-.f64 1 x))) |
(*.f64 y (-.f64 1 x)) |
(+.f64 (*.f64 z x) (*.f64 y (-.f64 1 x))) |
(+.f64 (*.f64 z x) (*.f64 y (-.f64 1 x))) |
(+.f64 (*.f64 z x) (*.f64 y (-.f64 1 x))) |
(*.f64 y (-.f64 1 x)) |
(+.f64 (*.f64 z x) (*.f64 y (-.f64 1 x))) |
(+.f64 (*.f64 z x) (*.f64 y (-.f64 1 x))) |
(+.f64 (*.f64 z x) (*.f64 y (-.f64 1 x))) |
(*.f64 z x) |
(+.f64 (*.f64 z x) (*.f64 y (-.f64 1 x))) |
(+.f64 (*.f64 z x) (*.f64 y (-.f64 1 x))) |
(+.f64 (*.f64 z x) (*.f64 y (-.f64 1 x))) |
(*.f64 z x) |
(+.f64 (*.f64 z x) (*.f64 y (-.f64 1 x))) |
(+.f64 (*.f64 z x) (*.f64 y (-.f64 1 x))) |
(+.f64 (*.f64 z x) (*.f64 y (-.f64 1 x))) |
y |
(+.f64 y (*.f64 -1 (*.f64 y x))) |
(+.f64 y (*.f64 -1 (*.f64 y x))) |
(+.f64 y (*.f64 -1 (*.f64 y x))) |
(*.f64 -1 (*.f64 y x)) |
(+.f64 y (*.f64 -1 (*.f64 y x))) |
(+.f64 y (*.f64 -1 (*.f64 y x))) |
(+.f64 y (*.f64 -1 (*.f64 y x))) |
(*.f64 -1 (*.f64 y x)) |
(+.f64 y (*.f64 -1 (*.f64 y x))) |
(+.f64 y (*.f64 -1 (*.f64 y x))) |
(+.f64 y (*.f64 -1 (*.f64 y x))) |
(*.f64 y (-.f64 1 x)) |
(*.f64 y (-.f64 1 x)) |
(*.f64 y (-.f64 1 x)) |
(*.f64 y (-.f64 1 x)) |
(*.f64 y (-.f64 1 x)) |
(*.f64 y (-.f64 1 x)) |
(*.f64 y (-.f64 1 x)) |
(*.f64 y (-.f64 1 x)) |
(*.f64 y (-.f64 1 x)) |
(*.f64 y (-.f64 1 x)) |
(*.f64 y (-.f64 1 x)) |
(*.f64 y (-.f64 1 x)) |
(-.f64 (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z)) 0) |
(*.f64 1 (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z))) |
(*.f64 (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z)) 1) |
(*.f64 2 (*.f64 (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z)) 1/2)) |
(*.f64 (*.f64 (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z)) 2) 1/2) |
(*.f64 4 (/.f64 (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z)) 4)) |
(*.f64 (*.f64 (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z)) 4) 1/4) |
(*.f64 1/2 (*.f64 (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z)) 2)) |
(*.f64 (*.f64 (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z)) 1/2) 2) |
(*.f64 1/4 (*.f64 (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z)) 4)) |
(*.f64 (/.f64 (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z)) 4) 4) |
(/.f64 (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z)) 1) |
(/.f64 (*.f64 (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z)) 2) 2) |
(/.f64 (*.f64 (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z)) 4) 4) |
(/.f64 (*.f64 (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z)) 8) 8) |
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z)) 8)) 16) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z)) 8))) 32) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z)) 8)))) 64) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z)) 8))))) 128) |
(pow.f64 (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z)) 1) |
(+.f64 (*.f64 (-.f64 1 x) y) 0) |
(+.f64 0 (*.f64 (-.f64 1 x) y)) |
(+.f64 (*.f64 (-.f64 1 x) (*.f64 y 1/2)) (*.f64 (-.f64 1 x) (*.f64 y 1/2))) |
(-.f64 (*.f64 (-.f64 1 x) y) 0) |
(/.f64 (*.f64 (-.f64 1 x) y) 1) |
(/.f64 (*.f64 (-.f64 1 x) (+.f64 y y)) 2) |
(/.f64 (*.f64 (-.f64 1 x) (*.f64 y 4)) 4) |
(/.f64 (*.f64 (*.f64 (-.f64 1 x) y) 8) 8) |
(/.f64 (*.f64 2 (*.f64 (*.f64 (-.f64 1 x) y) 8)) 16) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (-.f64 1 x) y) 8))) 32) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (-.f64 1 x) y) 8)))) 64) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (-.f64 1 x) y) 8))))) 128) |
(pow.f64 (*.f64 (-.f64 1 x) y) 1) |
| Outputs |
|---|
y |
(+.f64 (*.f64 (+.f64 z (*.f64 -1 y)) x) y) |
(+.f64 y (*.f64 (+.f64 z (*.f64 y -1)) x)) |
(+.f64 y (*.f64 (+.f64 z (neg.f64 y)) x)) |
(+.f64 (*.f64 (+.f64 z (*.f64 -1 y)) x) y) |
(+.f64 y (*.f64 (+.f64 z (*.f64 y -1)) x)) |
(+.f64 y (*.f64 (+.f64 z (neg.f64 y)) x)) |
(+.f64 (*.f64 (+.f64 z (*.f64 -1 y)) x) y) |
(+.f64 y (*.f64 (+.f64 z (*.f64 y -1)) x)) |
(+.f64 y (*.f64 (+.f64 z (neg.f64 y)) x)) |
(*.f64 (+.f64 z (*.f64 -1 y)) x) |
(*.f64 (+.f64 z (*.f64 y -1)) x) |
(*.f64 (+.f64 z (neg.f64 y)) x) |
(+.f64 (*.f64 (+.f64 z (*.f64 -1 y)) x) y) |
(+.f64 y (*.f64 (+.f64 z (*.f64 y -1)) x)) |
(+.f64 y (*.f64 (+.f64 z (neg.f64 y)) x)) |
(+.f64 (*.f64 (+.f64 z (*.f64 -1 y)) x) y) |
(+.f64 y (*.f64 (+.f64 z (*.f64 y -1)) x)) |
(+.f64 y (*.f64 (+.f64 z (neg.f64 y)) x)) |
(+.f64 (*.f64 (+.f64 z (*.f64 -1 y)) x) y) |
(+.f64 y (*.f64 (+.f64 z (*.f64 y -1)) x)) |
(+.f64 y (*.f64 (+.f64 z (neg.f64 y)) x)) |
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 z) y) x)) |
(*.f64 -1 (*.f64 x (+.f64 y (*.f64 z -1)))) |
(*.f64 (+.f64 y (neg.f64 z)) (neg.f64 x)) |
(+.f64 y (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 z) y) x))) |
(+.f64 y (*.f64 -1 (*.f64 x (+.f64 y (*.f64 z -1))))) |
(+.f64 y (*.f64 (+.f64 y (neg.f64 z)) (neg.f64 x))) |
(+.f64 y (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 z) y) x))) |
(+.f64 y (*.f64 -1 (*.f64 x (+.f64 y (*.f64 z -1))))) |
(+.f64 y (*.f64 (+.f64 y (neg.f64 z)) (neg.f64 x))) |
(+.f64 y (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 z) y) x))) |
(+.f64 y (*.f64 -1 (*.f64 x (+.f64 y (*.f64 z -1))))) |
(+.f64 y (*.f64 (+.f64 y (neg.f64 z)) (neg.f64 x))) |
(*.f64 z x) |
(+.f64 (*.f64 z x) (*.f64 y (-.f64 1 x))) |
(+.f64 (*.f64 y (-.f64 1 x)) (*.f64 z x)) |
(+.f64 (*.f64 z x) (*.f64 y (-.f64 1 x))) |
(+.f64 (*.f64 y (-.f64 1 x)) (*.f64 z x)) |
(+.f64 (*.f64 z x) (*.f64 y (-.f64 1 x))) |
(+.f64 (*.f64 y (-.f64 1 x)) (*.f64 z x)) |
(*.f64 y (-.f64 1 x)) |
(+.f64 (*.f64 z x) (*.f64 y (-.f64 1 x))) |
(+.f64 (*.f64 y (-.f64 1 x)) (*.f64 z x)) |
(+.f64 (*.f64 z x) (*.f64 y (-.f64 1 x))) |
(+.f64 (*.f64 y (-.f64 1 x)) (*.f64 z x)) |
(+.f64 (*.f64 z x) (*.f64 y (-.f64 1 x))) |
(+.f64 (*.f64 y (-.f64 1 x)) (*.f64 z x)) |
(*.f64 y (-.f64 1 x)) |
(+.f64 (*.f64 z x) (*.f64 y (-.f64 1 x))) |
(+.f64 (*.f64 y (-.f64 1 x)) (*.f64 z x)) |
(+.f64 (*.f64 z x) (*.f64 y (-.f64 1 x))) |
(+.f64 (*.f64 y (-.f64 1 x)) (*.f64 z x)) |
(+.f64 (*.f64 z x) (*.f64 y (-.f64 1 x))) |
(+.f64 (*.f64 y (-.f64 1 x)) (*.f64 z x)) |
(*.f64 y (-.f64 1 x)) |
(+.f64 (*.f64 z x) (*.f64 y (-.f64 1 x))) |
(+.f64 (*.f64 y (-.f64 1 x)) (*.f64 z x)) |
(+.f64 (*.f64 z x) (*.f64 y (-.f64 1 x))) |
(+.f64 (*.f64 y (-.f64 1 x)) (*.f64 z x)) |
(+.f64 (*.f64 z x) (*.f64 y (-.f64 1 x))) |
(+.f64 (*.f64 y (-.f64 1 x)) (*.f64 z x)) |
(*.f64 z x) |
(+.f64 (*.f64 z x) (*.f64 y (-.f64 1 x))) |
(+.f64 (*.f64 y (-.f64 1 x)) (*.f64 z x)) |
(+.f64 (*.f64 z x) (*.f64 y (-.f64 1 x))) |
(+.f64 (*.f64 y (-.f64 1 x)) (*.f64 z x)) |
(+.f64 (*.f64 z x) (*.f64 y (-.f64 1 x))) |
(+.f64 (*.f64 y (-.f64 1 x)) (*.f64 z x)) |
(*.f64 z x) |
(+.f64 (*.f64 z x) (*.f64 y (-.f64 1 x))) |
(+.f64 (*.f64 y (-.f64 1 x)) (*.f64 z x)) |
(+.f64 (*.f64 z x) (*.f64 y (-.f64 1 x))) |
(+.f64 (*.f64 y (-.f64 1 x)) (*.f64 z x)) |
(+.f64 (*.f64 z x) (*.f64 y (-.f64 1 x))) |
(+.f64 (*.f64 y (-.f64 1 x)) (*.f64 z x)) |
y |
(+.f64 y (*.f64 -1 (*.f64 y x))) |
(+.f64 y (*.f64 y (*.f64 x -1))) |
(+.f64 y (*.f64 y (neg.f64 x))) |
(+.f64 y (neg.f64 (*.f64 y x))) |
(+.f64 y (*.f64 (neg.f64 y) x)) |
(+.f64 y (*.f64 -1 (*.f64 y x))) |
(+.f64 y (*.f64 y (*.f64 x -1))) |
(+.f64 y (*.f64 y (neg.f64 x))) |
(+.f64 y (neg.f64 (*.f64 y x))) |
(+.f64 y (*.f64 (neg.f64 y) x)) |
(+.f64 y (*.f64 -1 (*.f64 y x))) |
(+.f64 y (*.f64 y (*.f64 x -1))) |
(+.f64 y (*.f64 y (neg.f64 x))) |
(+.f64 y (neg.f64 (*.f64 y x))) |
(+.f64 y (*.f64 (neg.f64 y) x)) |
(*.f64 -1 (*.f64 y x)) |
(*.f64 y (*.f64 x -1)) |
(*.f64 y (neg.f64 x)) |
(neg.f64 (*.f64 y x)) |
(*.f64 (neg.f64 y) x) |
(+.f64 y (*.f64 -1 (*.f64 y x))) |
(+.f64 y (*.f64 y (*.f64 x -1))) |
(+.f64 y (*.f64 y (neg.f64 x))) |
(+.f64 y (neg.f64 (*.f64 y x))) |
(+.f64 y (*.f64 (neg.f64 y) x)) |
(+.f64 y (*.f64 -1 (*.f64 y x))) |
(+.f64 y (*.f64 y (*.f64 x -1))) |
(+.f64 y (*.f64 y (neg.f64 x))) |
(+.f64 y (neg.f64 (*.f64 y x))) |
(+.f64 y (*.f64 (neg.f64 y) x)) |
(+.f64 y (*.f64 -1 (*.f64 y x))) |
(+.f64 y (*.f64 y (*.f64 x -1))) |
(+.f64 y (*.f64 y (neg.f64 x))) |
(+.f64 y (neg.f64 (*.f64 y x))) |
(+.f64 y (*.f64 (neg.f64 y) x)) |
(*.f64 -1 (*.f64 y x)) |
(*.f64 y (*.f64 x -1)) |
(*.f64 y (neg.f64 x)) |
(neg.f64 (*.f64 y x)) |
(*.f64 (neg.f64 y) x) |
(+.f64 y (*.f64 -1 (*.f64 y x))) |
(+.f64 y (*.f64 y (*.f64 x -1))) |
(+.f64 y (*.f64 y (neg.f64 x))) |
(+.f64 y (neg.f64 (*.f64 y x))) |
(+.f64 y (*.f64 (neg.f64 y) x)) |
(+.f64 y (*.f64 -1 (*.f64 y x))) |
(+.f64 y (*.f64 y (*.f64 x -1))) |
(+.f64 y (*.f64 y (neg.f64 x))) |
(+.f64 y (neg.f64 (*.f64 y x))) |
(+.f64 y (*.f64 (neg.f64 y) x)) |
(+.f64 y (*.f64 -1 (*.f64 y x))) |
(+.f64 y (*.f64 y (*.f64 x -1))) |
(+.f64 y (*.f64 y (neg.f64 x))) |
(+.f64 y (neg.f64 (*.f64 y x))) |
(+.f64 y (*.f64 (neg.f64 y) x)) |
(*.f64 y (-.f64 1 x)) |
(*.f64 y (-.f64 1 x)) |
(*.f64 y (-.f64 1 x)) |
(*.f64 y (-.f64 1 x)) |
(*.f64 y (-.f64 1 x)) |
(*.f64 y (-.f64 1 x)) |
(*.f64 y (-.f64 1 x)) |
(*.f64 y (-.f64 1 x)) |
(*.f64 y (-.f64 1 x)) |
(*.f64 y (-.f64 1 x)) |
(*.f64 y (-.f64 1 x)) |
(*.f64 y (-.f64 1 x)) |
(-.f64 (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z)) 0) |
(+.f64 (*.f64 y (-.f64 1 x)) (*.f64 z x)) |
(*.f64 1 (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z))) |
(+.f64 (*.f64 y (-.f64 1 x)) (*.f64 z x)) |
(*.f64 (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z)) 1) |
(+.f64 (*.f64 y (-.f64 1 x)) (*.f64 z x)) |
(*.f64 2 (*.f64 (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z)) 1/2)) |
(+.f64 (*.f64 y (-.f64 1 x)) (*.f64 z x)) |
(*.f64 (*.f64 (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z)) 2) 1/2) |
(+.f64 (*.f64 y (-.f64 1 x)) (*.f64 z x)) |
(*.f64 4 (/.f64 (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z)) 4)) |
(+.f64 (*.f64 y (-.f64 1 x)) (*.f64 z x)) |
(*.f64 (*.f64 (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z)) 4) 1/4) |
(+.f64 (*.f64 y (-.f64 1 x)) (*.f64 z x)) |
(*.f64 1/2 (*.f64 (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z)) 2)) |
(+.f64 (*.f64 y (-.f64 1 x)) (*.f64 z x)) |
(*.f64 (*.f64 (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z)) 1/2) 2) |
(+.f64 (*.f64 y (-.f64 1 x)) (*.f64 z x)) |
(*.f64 1/4 (*.f64 (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z)) 4)) |
(+.f64 (*.f64 y (-.f64 1 x)) (*.f64 z x)) |
(*.f64 (/.f64 (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z)) 4) 4) |
(+.f64 (*.f64 y (-.f64 1 x)) (*.f64 z x)) |
(/.f64 (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z)) 1) |
(+.f64 (*.f64 y (-.f64 1 x)) (*.f64 z x)) |
(/.f64 (*.f64 (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z)) 2) 2) |
(+.f64 (*.f64 y (-.f64 1 x)) (*.f64 z x)) |
(/.f64 (*.f64 (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z)) 4) 4) |
(+.f64 (*.f64 y (-.f64 1 x)) (*.f64 z x)) |
(/.f64 (*.f64 (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z)) 8) 8) |
(+.f64 (*.f64 y (-.f64 1 x)) (*.f64 z x)) |
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z)) 8)) 16) |
(+.f64 (*.f64 y (-.f64 1 x)) (*.f64 z x)) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z)) 8))) 32) |
(+.f64 (*.f64 y (-.f64 1 x)) (*.f64 z x)) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z)) 8)))) 64) |
(+.f64 (*.f64 y (-.f64 1 x)) (*.f64 z x)) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z)) 8))))) 128) |
(+.f64 (*.f64 y (-.f64 1 x)) (*.f64 z x)) |
(pow.f64 (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z)) 1) |
(+.f64 (*.f64 y (-.f64 1 x)) (*.f64 z x)) |
(+.f64 (*.f64 (-.f64 1 x) y) 0) |
(*.f64 y (-.f64 1 x)) |
(+.f64 0 (*.f64 (-.f64 1 x) y)) |
(*.f64 y (-.f64 1 x)) |
(+.f64 (*.f64 (-.f64 1 x) (*.f64 y 1/2)) (*.f64 (-.f64 1 x) (*.f64 y 1/2))) |
(*.f64 y (-.f64 1 x)) |
(-.f64 (*.f64 (-.f64 1 x) y) 0) |
(*.f64 y (-.f64 1 x)) |
(/.f64 (*.f64 (-.f64 1 x) y) 1) |
(*.f64 y (-.f64 1 x)) |
(/.f64 (*.f64 (-.f64 1 x) (+.f64 y y)) 2) |
(*.f64 y (-.f64 1 x)) |
(/.f64 (*.f64 (-.f64 1 x) (*.f64 y 4)) 4) |
(*.f64 y (-.f64 1 x)) |
(/.f64 (*.f64 (*.f64 (-.f64 1 x) y) 8) 8) |
(*.f64 y (-.f64 1 x)) |
(/.f64 (*.f64 2 (*.f64 (*.f64 (-.f64 1 x) y) 8)) 16) |
(*.f64 y (-.f64 1 x)) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (-.f64 1 x) y) 8))) 32) |
(*.f64 y (-.f64 1 x)) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (-.f64 1 x) y) 8)))) 64) |
(*.f64 y (-.f64 1 x)) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (-.f64 1 x) y) 8))))) 128) |
(*.f64 y (-.f64 1 x)) |
(pow.f64 (*.f64 (-.f64 1 x) y) 1) |
(*.f64 y (-.f64 1 x)) |
Compiled 681 to 385 computations (43.5% saved)
7 alts after pruning (6 fresh and 1 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 54 | 6 | 60 |
| Fresh | 0 | 0 | 0 |
| Picked | 0 | 1 | 1 |
| Done | 0 | 0 | 0 |
| Total | 54 | 7 | 61 |
| Status | Error | Program |
|---|---|---|
| ✓ | 0.0b | (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z)) |
| ▶ | 28.9b | (+.f64 (*.f64 (neg.f64 y) x) (*.f64 x z)) |
| ▶ | 0.0b | (+.f64 y (*.f64 (+.f64 z (neg.f64 y)) x)) |
| ▶ | 28.9b | (*.f64 (+.f64 z (neg.f64 y)) x) |
| ▶ | 39.8b | (*.f64 z x) |
| ▶ | 23.9b | (*.f64 y (-.f64 1 x)) |
| 34.7b | y |
Compiled 106 to 71 computations (33% saved)
Found 2 expressions with local error:
| New | Error | Program |
|---|---|---|
| ✓ | 0.0b | (+.f64 y (*.f64 (+.f64 z (neg.f64 y)) x)) |
| ✓ | 0.0b | (*.f64 (+.f64 z (neg.f64 y)) x) |
Compiled 26 to 7 computations (73.1% saved)
18 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 1.0ms | z | @ | 0 | (*.f64 (+.f64 z (neg.f64 y)) x) |
| 0.0ms | x | @ | inf | (*.f64 (+.f64 z (neg.f64 y)) x) |
| 0.0ms | z | @ | -inf | (*.f64 (+.f64 z (neg.f64 y)) x) |
| 0.0ms | x | @ | -inf | (*.f64 (+.f64 z (neg.f64 y)) x) |
| 0.0ms | z | @ | inf | (*.f64 (+.f64 z (neg.f64 y)) x) |
| 1× | batch-egg-rewrite |
| 1472× | rational.json-simplify-35 |
| 1406× | rational.json-1 |
| 1406× | rational.json-2 |
| 1406× | rational.json-3 |
| 1390× | exponential.json-3 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 10 | 40 |
| 1 | 69 | 40 |
| 2 | 150 | 40 |
| 3 | 317 | 40 |
| 4 | 650 | 40 |
| 5 | 1582 | 40 |
| 6 | 3188 | 40 |
| 7 | 4895 | 40 |
| 8 | 6324 | 40 |
| 9 | 7505 | 40 |
| 1× | node limit |
| Inputs |
|---|
(*.f64 (+.f64 z (neg.f64 y)) x) |
(+.f64 y (*.f64 (+.f64 z (neg.f64 y)) x)) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 z (neg.f64 y)) x) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (+.f64 z (neg.f64 y)) x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 z (neg.f64 y)) (*.f64 x 1/2)) (*.f64 (+.f64 z (neg.f64 y)) (*.f64 x 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (/.f64 (+.f64 z (neg.f64 y)) 4) (+.f64 x x)) (*.f64 (/.f64 (+.f64 z (neg.f64 y)) 4) (+.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (/.f64 x 4) (*.f64 (+.f64 z (neg.f64 y)) 2)) (*.f64 (/.f64 x 4) (*.f64 (+.f64 z (neg.f64 y)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (+.f64 z (neg.f64 y)) x) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 z (neg.f64 y)) x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 z (neg.f64 y)) (+.f64 x x)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 z (neg.f64 y)) (*.f64 x 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 z (neg.f64 y)) (*.f64 x 8)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 16 (*.f64 (+.f64 z (neg.f64 y)) x)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 16 (*.f64 (+.f64 z (neg.f64 y)) x))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 16 (*.f64 (+.f64 z (neg.f64 y)) x)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 16 (*.f64 (+.f64 z (neg.f64 y)) x))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (+.f64 z (neg.f64 y)) x) 1))))) |
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 y (*.f64 (+.f64 z (neg.f64 y)) x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 y (*.f64 (+.f64 z (neg.f64 y)) x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 y (*.f64 (+.f64 z (neg.f64 y)) x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (+.f64 y (*.f64 (+.f64 z (neg.f64 y)) x)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 y (*.f64 (+.f64 z (neg.f64 y)) x)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (+.f64 y (*.f64 (+.f64 z (neg.f64 y)) x)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 y (*.f64 (+.f64 z (neg.f64 y)) x)) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (+.f64 y (*.f64 (+.f64 z (neg.f64 y)) x)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (+.f64 y y) (*.f64 (+.f64 z (neg.f64 y)) (+.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 y (*.f64 (+.f64 z (neg.f64 y)) x)) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (+.f64 y (*.f64 (+.f64 z (neg.f64 y)) x)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 y (*.f64 (+.f64 z (neg.f64 y)) x)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (+.f64 y y) (*.f64 (+.f64 z (neg.f64 y)) (+.f64 x x))) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 y (*.f64 (+.f64 z (neg.f64 y)) x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 y (*.f64 (+.f64 z (neg.f64 y)) x)) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 y (*.f64 (+.f64 z (neg.f64 y)) x)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 y (*.f64 (+.f64 z (neg.f64 y)) x)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 y (*.f64 (+.f64 z (neg.f64 y)) x)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y (*.f64 (+.f64 z (neg.f64 y)) x)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y (*.f64 (+.f64 z (neg.f64 y)) x)) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y (*.f64 (+.f64 z (neg.f64 y)) x)) 8))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 y (*.f64 (+.f64 z (neg.f64 y)) x)) 1))))) |
| 1× | egg-herbie |
| 4484× | rational.json-simplify-35 |
| 2198× | rational.json-simplify-2 |
| 926× | rational.json-simplify-53 |
| 864× | rational.json-simplify-1 |
| 832× | rational.json-simplify-51 |
Useful iterations: 3 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 104 | 2557 |
| 1 | 249 | 2399 |
| 2 | 581 | 2015 |
| 3 | 1537 | 1971 |
| 4 | 3160 | 1971 |
| 5 | 3933 | 1971 |
| 6 | 4356 | 1971 |
| 7 | 4723 | 1971 |
| 8 | 4960 | 1971 |
| 9 | 5129 | 1971 |
| 10 | 5745 | 1971 |
| 11 | 5842 | 1971 |
| 12 | 5963 | 1971 |
| 13 | 6030 | 1971 |
| 14 | 6078 | 1971 |
| 15 | 6078 | 1971 |
| 16 | 6258 | 1971 |
| 17 | 6401 | 1971 |
| 18 | 6619 | 1971 |
| 19 | 6814 | 1971 |
| 20 | 6967 | 1971 |
| 21 | 7110 | 1971 |
| 22 | 7253 | 1971 |
| 23 | 7396 | 1971 |
| 24 | 7539 | 1971 |
| 25 | 7539 | 1971 |
| 26 | 7617 | 1971 |
| 27 | 7622 | 1971 |
| 28 | 7630 | 1971 |
| 29 | 7632 | 1971 |
| 30 | 7632 | 1971 |
| 31 | 7775 | 1971 |
| 32 | 7918 | 1971 |
| 1× | node limit |
| Inputs |
|---|
(*.f64 -1 (*.f64 y x)) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x))) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x))) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x))) |
(*.f64 z x) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x))) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x))) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x))) |
(*.f64 z x) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x))) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x))) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x))) |
(*.f64 z x) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x))) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x))) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x))) |
(*.f64 -1 (*.f64 y x)) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x))) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x))) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x))) |
(*.f64 -1 (*.f64 y x)) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x))) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x))) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x))) |
(*.f64 (-.f64 z y) x) |
(*.f64 (-.f64 z y) x) |
(*.f64 (-.f64 z y) x) |
(*.f64 (-.f64 z y) x) |
(*.f64 (-.f64 z y) x) |
(*.f64 (-.f64 z y) x) |
(*.f64 (-.f64 z y) x) |
(*.f64 (-.f64 z y) x) |
(*.f64 (-.f64 z y) x) |
(*.f64 (-.f64 z y) x) |
(*.f64 (-.f64 z y) x) |
(*.f64 (-.f64 z y) x) |
(*.f64 z x) |
(+.f64 (*.f64 z x) (*.f64 y (+.f64 1 (*.f64 -1 x)))) |
(+.f64 (*.f64 z x) (*.f64 y (+.f64 1 (*.f64 -1 x)))) |
(+.f64 (*.f64 z x) (*.f64 y (+.f64 1 (*.f64 -1 x)))) |
(*.f64 y (+.f64 1 (*.f64 -1 x))) |
(+.f64 (*.f64 z x) (*.f64 y (+.f64 1 (*.f64 -1 x)))) |
(+.f64 (*.f64 z x) (*.f64 y (+.f64 1 (*.f64 -1 x)))) |
(+.f64 (*.f64 z x) (*.f64 y (+.f64 1 (*.f64 -1 x)))) |
(*.f64 -1 (*.f64 y (-.f64 x 1))) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y (-.f64 x 1)))) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y (-.f64 x 1)))) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y (-.f64 x 1)))) |
(+.f64 y (*.f64 -1 (*.f64 y x))) |
(+.f64 (*.f64 z x) (+.f64 y (*.f64 -1 (*.f64 y x)))) |
(+.f64 (*.f64 z x) (+.f64 y (*.f64 -1 (*.f64 y x)))) |
(+.f64 (*.f64 z x) (+.f64 y (*.f64 -1 (*.f64 y x)))) |
(*.f64 z x) |
(+.f64 (*.f64 z x) (+.f64 y (*.f64 -1 (*.f64 y x)))) |
(+.f64 (*.f64 z x) (+.f64 y (*.f64 -1 (*.f64 y x)))) |
(+.f64 (*.f64 z x) (+.f64 y (*.f64 -1 (*.f64 y x)))) |
(*.f64 z x) |
(+.f64 (*.f64 z x) (+.f64 y (*.f64 -1 (*.f64 y x)))) |
(+.f64 (*.f64 z x) (+.f64 y (*.f64 -1 (*.f64 y x)))) |
(+.f64 (*.f64 z x) (+.f64 y (*.f64 -1 (*.f64 y x)))) |
y |
(+.f64 (*.f64 (-.f64 z y) x) y) |
(+.f64 (*.f64 (-.f64 z y) x) y) |
(+.f64 (*.f64 (-.f64 z y) x) y) |
(*.f64 (-.f64 z y) x) |
(+.f64 (*.f64 (-.f64 z y) x) y) |
(+.f64 (*.f64 (-.f64 z y) x) y) |
(+.f64 (*.f64 (-.f64 z y) x) y) |
(*.f64 (-.f64 z y) x) |
(+.f64 (*.f64 (-.f64 z y) x) y) |
(+.f64 (*.f64 (-.f64 z y) x) y) |
(+.f64 (*.f64 (-.f64 z y) x) y) |
(+.f64 (*.f64 (+.f64 z (neg.f64 y)) x) 0) |
(+.f64 0 (*.f64 (+.f64 z (neg.f64 y)) x)) |
(+.f64 (*.f64 (+.f64 z (neg.f64 y)) (*.f64 x 1/2)) (*.f64 (+.f64 z (neg.f64 y)) (*.f64 x 1/2))) |
(+.f64 (*.f64 (/.f64 (+.f64 z (neg.f64 y)) 4) (+.f64 x x)) (*.f64 (/.f64 (+.f64 z (neg.f64 y)) 4) (+.f64 x x))) |
(+.f64 (*.f64 (/.f64 x 4) (*.f64 (+.f64 z (neg.f64 y)) 2)) (*.f64 (/.f64 x 4) (*.f64 (+.f64 z (neg.f64 y)) 2))) |
(-.f64 (*.f64 (+.f64 z (neg.f64 y)) x) 0) |
(/.f64 (*.f64 (+.f64 z (neg.f64 y)) x) 1) |
(/.f64 (*.f64 (+.f64 z (neg.f64 y)) (+.f64 x x)) 2) |
(/.f64 (*.f64 (+.f64 z (neg.f64 y)) (*.f64 x 4)) 4) |
(/.f64 (*.f64 (+.f64 z (neg.f64 y)) (*.f64 x 8)) 8) |
(/.f64 (*.f64 16 (*.f64 (+.f64 z (neg.f64 y)) x)) 16) |
(/.f64 (*.f64 2 (*.f64 16 (*.f64 (+.f64 z (neg.f64 y)) x))) 32) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 16 (*.f64 (+.f64 z (neg.f64 y)) x)))) 64) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 16 (*.f64 (+.f64 z (neg.f64 y)) x))))) 128) |
(pow.f64 (*.f64 (+.f64 z (neg.f64 y)) x) 1) |
(-.f64 (+.f64 y (*.f64 (+.f64 z (neg.f64 y)) x)) 0) |
(*.f64 (+.f64 y (*.f64 (+.f64 z (neg.f64 y)) x)) 1) |
(*.f64 1 (+.f64 y (*.f64 (+.f64 z (neg.f64 y)) x))) |
(*.f64 2 (*.f64 (+.f64 y (*.f64 (+.f64 z (neg.f64 y)) x)) 1/2)) |
(*.f64 (*.f64 (+.f64 y (*.f64 (+.f64 z (neg.f64 y)) x)) 2) 1/2) |
(*.f64 4 (/.f64 (+.f64 y (*.f64 (+.f64 z (neg.f64 y)) x)) 4)) |
(*.f64 (*.f64 (+.f64 y (*.f64 (+.f64 z (neg.f64 y)) x)) 4) 1/4) |
(*.f64 1/2 (*.f64 (+.f64 y (*.f64 (+.f64 z (neg.f64 y)) x)) 2)) |
(*.f64 1/2 (+.f64 (+.f64 y y) (*.f64 (+.f64 z (neg.f64 y)) (+.f64 x x)))) |
(*.f64 (*.f64 (+.f64 y (*.f64 (+.f64 z (neg.f64 y)) x)) 1/2) 2) |
(*.f64 1/4 (*.f64 (+.f64 y (*.f64 (+.f64 z (neg.f64 y)) x)) 4)) |
(*.f64 (/.f64 (+.f64 y (*.f64 (+.f64 z (neg.f64 y)) x)) 4) 4) |
(*.f64 (+.f64 (+.f64 y y) (*.f64 (+.f64 z (neg.f64 y)) (+.f64 x x))) 1/2) |
(/.f64 (+.f64 y (*.f64 (+.f64 z (neg.f64 y)) x)) 1) |
(/.f64 (*.f64 (+.f64 y (*.f64 (+.f64 z (neg.f64 y)) x)) 2) 2) |
(/.f64 (*.f64 (+.f64 y (*.f64 (+.f64 z (neg.f64 y)) x)) 4) 4) |
(/.f64 (*.f64 (+.f64 y (*.f64 (+.f64 z (neg.f64 y)) x)) 8) 8) |
(/.f64 (*.f64 2 (*.f64 (+.f64 y (*.f64 (+.f64 z (neg.f64 y)) x)) 8)) 16) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y (*.f64 (+.f64 z (neg.f64 y)) x)) 8))) 32) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y (*.f64 (+.f64 z (neg.f64 y)) x)) 8)))) 64) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y (*.f64 (+.f64 z (neg.f64 y)) x)) 8))))) 128) |
(pow.f64 (+.f64 y (*.f64 (+.f64 z (neg.f64 y)) x)) 1) |
| Outputs |
|---|
(*.f64 -1 (*.f64 y x)) |
(neg.f64 (*.f64 y x)) |
(*.f64 x (neg.f64 y)) |
(*.f64 y (neg.f64 x)) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x))) |
(+.f64 (*.f64 -1 (*.f64 y x)) (*.f64 x z)) |
(+.f64 (neg.f64 (*.f64 y x)) (*.f64 x z)) |
(*.f64 x (+.f64 z (neg.f64 y))) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x))) |
(+.f64 (*.f64 -1 (*.f64 y x)) (*.f64 x z)) |
(+.f64 (neg.f64 (*.f64 y x)) (*.f64 x z)) |
(*.f64 x (+.f64 z (neg.f64 y))) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x))) |
(+.f64 (*.f64 -1 (*.f64 y x)) (*.f64 x z)) |
(+.f64 (neg.f64 (*.f64 y x)) (*.f64 x z)) |
(*.f64 x (+.f64 z (neg.f64 y))) |
(*.f64 z x) |
(*.f64 x z) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x))) |
(+.f64 (*.f64 -1 (*.f64 y x)) (*.f64 x z)) |
(+.f64 (neg.f64 (*.f64 y x)) (*.f64 x z)) |
(*.f64 x (+.f64 z (neg.f64 y))) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x))) |
(+.f64 (*.f64 -1 (*.f64 y x)) (*.f64 x z)) |
(+.f64 (neg.f64 (*.f64 y x)) (*.f64 x z)) |
(*.f64 x (+.f64 z (neg.f64 y))) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x))) |
(+.f64 (*.f64 -1 (*.f64 y x)) (*.f64 x z)) |
(+.f64 (neg.f64 (*.f64 y x)) (*.f64 x z)) |
(*.f64 x (+.f64 z (neg.f64 y))) |
(*.f64 z x) |
(*.f64 x z) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x))) |
(+.f64 (*.f64 -1 (*.f64 y x)) (*.f64 x z)) |
(+.f64 (neg.f64 (*.f64 y x)) (*.f64 x z)) |
(*.f64 x (+.f64 z (neg.f64 y))) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x))) |
(+.f64 (*.f64 -1 (*.f64 y x)) (*.f64 x z)) |
(+.f64 (neg.f64 (*.f64 y x)) (*.f64 x z)) |
(*.f64 x (+.f64 z (neg.f64 y))) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x))) |
(+.f64 (*.f64 -1 (*.f64 y x)) (*.f64 x z)) |
(+.f64 (neg.f64 (*.f64 y x)) (*.f64 x z)) |
(*.f64 x (+.f64 z (neg.f64 y))) |
(*.f64 z x) |
(*.f64 x z) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x))) |
(+.f64 (*.f64 -1 (*.f64 y x)) (*.f64 x z)) |
(+.f64 (neg.f64 (*.f64 y x)) (*.f64 x z)) |
(*.f64 x (+.f64 z (neg.f64 y))) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x))) |
(+.f64 (*.f64 -1 (*.f64 y x)) (*.f64 x z)) |
(+.f64 (neg.f64 (*.f64 y x)) (*.f64 x z)) |
(*.f64 x (+.f64 z (neg.f64 y))) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x))) |
(+.f64 (*.f64 -1 (*.f64 y x)) (*.f64 x z)) |
(+.f64 (neg.f64 (*.f64 y x)) (*.f64 x z)) |
(*.f64 x (+.f64 z (neg.f64 y))) |
(*.f64 -1 (*.f64 y x)) |
(neg.f64 (*.f64 y x)) |
(*.f64 x (neg.f64 y)) |
(*.f64 y (neg.f64 x)) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x))) |
(+.f64 (*.f64 -1 (*.f64 y x)) (*.f64 x z)) |
(+.f64 (neg.f64 (*.f64 y x)) (*.f64 x z)) |
(*.f64 x (+.f64 z (neg.f64 y))) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x))) |
(+.f64 (*.f64 -1 (*.f64 y x)) (*.f64 x z)) |
(+.f64 (neg.f64 (*.f64 y x)) (*.f64 x z)) |
(*.f64 x (+.f64 z (neg.f64 y))) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x))) |
(+.f64 (*.f64 -1 (*.f64 y x)) (*.f64 x z)) |
(+.f64 (neg.f64 (*.f64 y x)) (*.f64 x z)) |
(*.f64 x (+.f64 z (neg.f64 y))) |
(*.f64 -1 (*.f64 y x)) |
(neg.f64 (*.f64 y x)) |
(*.f64 x (neg.f64 y)) |
(*.f64 y (neg.f64 x)) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x))) |
(+.f64 (*.f64 -1 (*.f64 y x)) (*.f64 x z)) |
(+.f64 (neg.f64 (*.f64 y x)) (*.f64 x z)) |
(*.f64 x (+.f64 z (neg.f64 y))) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x))) |
(+.f64 (*.f64 -1 (*.f64 y x)) (*.f64 x z)) |
(+.f64 (neg.f64 (*.f64 y x)) (*.f64 x z)) |
(*.f64 x (+.f64 z (neg.f64 y))) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x))) |
(+.f64 (*.f64 -1 (*.f64 y x)) (*.f64 x z)) |
(+.f64 (neg.f64 (*.f64 y x)) (*.f64 x z)) |
(*.f64 x (+.f64 z (neg.f64 y))) |
(*.f64 (-.f64 z y) x) |
(*.f64 x (-.f64 z y)) |
(*.f64 (-.f64 z y) x) |
(*.f64 x (-.f64 z y)) |
(*.f64 (-.f64 z y) x) |
(*.f64 x (-.f64 z y)) |
(*.f64 (-.f64 z y) x) |
(*.f64 x (-.f64 z y)) |
(*.f64 (-.f64 z y) x) |
(*.f64 x (-.f64 z y)) |
(*.f64 (-.f64 z y) x) |
(*.f64 x (-.f64 z y)) |
(*.f64 (-.f64 z y) x) |
(*.f64 x (-.f64 z y)) |
(*.f64 (-.f64 z y) x) |
(*.f64 x (-.f64 z y)) |
(*.f64 (-.f64 z y) x) |
(*.f64 x (-.f64 z y)) |
(*.f64 (-.f64 z y) x) |
(*.f64 x (-.f64 z y)) |
(*.f64 (-.f64 z y) x) |
(*.f64 x (-.f64 z y)) |
(*.f64 (-.f64 z y) x) |
(*.f64 x (-.f64 z y)) |
(*.f64 z x) |
(*.f64 x z) |
(+.f64 (*.f64 z x) (*.f64 y (+.f64 1 (*.f64 -1 x)))) |
(+.f64 (*.f64 x z) (*.f64 y (+.f64 1 (*.f64 -1 x)))) |
(+.f64 (*.f64 x z) (*.f64 y (+.f64 1 (neg.f64 x)))) |
(+.f64 (*.f64 x z) (*.f64 y (-.f64 1 x))) |
(+.f64 (*.f64 z x) (*.f64 y (+.f64 1 (*.f64 -1 x)))) |
(+.f64 (*.f64 x z) (*.f64 y (+.f64 1 (*.f64 -1 x)))) |
(+.f64 (*.f64 x z) (*.f64 y (+.f64 1 (neg.f64 x)))) |
(+.f64 (*.f64 x z) (*.f64 y (-.f64 1 x))) |
(+.f64 (*.f64 z x) (*.f64 y (+.f64 1 (*.f64 -1 x)))) |
(+.f64 (*.f64 x z) (*.f64 y (+.f64 1 (*.f64 -1 x)))) |
(+.f64 (*.f64 x z) (*.f64 y (+.f64 1 (neg.f64 x)))) |
(+.f64 (*.f64 x z) (*.f64 y (-.f64 1 x))) |
(*.f64 y (+.f64 1 (*.f64 -1 x))) |
(*.f64 y (+.f64 1 (neg.f64 x))) |
(*.f64 y (-.f64 1 x)) |
(+.f64 (*.f64 z x) (*.f64 y (+.f64 1 (*.f64 -1 x)))) |
(+.f64 (*.f64 x z) (*.f64 y (+.f64 1 (*.f64 -1 x)))) |
(+.f64 (*.f64 x z) (*.f64 y (+.f64 1 (neg.f64 x)))) |
(+.f64 (*.f64 x z) (*.f64 y (-.f64 1 x))) |
(+.f64 (*.f64 z x) (*.f64 y (+.f64 1 (*.f64 -1 x)))) |
(+.f64 (*.f64 x z) (*.f64 y (+.f64 1 (*.f64 -1 x)))) |
(+.f64 (*.f64 x z) (*.f64 y (+.f64 1 (neg.f64 x)))) |
(+.f64 (*.f64 x z) (*.f64 y (-.f64 1 x))) |
(+.f64 (*.f64 z x) (*.f64 y (+.f64 1 (*.f64 -1 x)))) |
(+.f64 (*.f64 x z) (*.f64 y (+.f64 1 (*.f64 -1 x)))) |
(+.f64 (*.f64 x z) (*.f64 y (+.f64 1 (neg.f64 x)))) |
(+.f64 (*.f64 x z) (*.f64 y (-.f64 1 x))) |
(*.f64 -1 (*.f64 y (-.f64 x 1))) |
(*.f64 y (+.f64 1 (*.f64 -1 x))) |
(*.f64 y (+.f64 1 (neg.f64 x))) |
(*.f64 y (-.f64 1 x)) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y (-.f64 x 1)))) |
(+.f64 (*.f64 x z) (*.f64 y (+.f64 1 (*.f64 -1 x)))) |
(+.f64 (*.f64 x z) (*.f64 y (+.f64 1 (neg.f64 x)))) |
(+.f64 (*.f64 x z) (*.f64 y (-.f64 1 x))) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y (-.f64 x 1)))) |
(+.f64 (*.f64 x z) (*.f64 y (+.f64 1 (*.f64 -1 x)))) |
(+.f64 (*.f64 x z) (*.f64 y (+.f64 1 (neg.f64 x)))) |
(+.f64 (*.f64 x z) (*.f64 y (-.f64 1 x))) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y (-.f64 x 1)))) |
(+.f64 (*.f64 x z) (*.f64 y (+.f64 1 (*.f64 -1 x)))) |
(+.f64 (*.f64 x z) (*.f64 y (+.f64 1 (neg.f64 x)))) |
(+.f64 (*.f64 x z) (*.f64 y (-.f64 1 x))) |
(+.f64 y (*.f64 -1 (*.f64 y x))) |
(+.f64 y (neg.f64 (*.f64 y x))) |
(+.f64 y (*.f64 x (neg.f64 y))) |
(+.f64 y (*.f64 y (neg.f64 x))) |
(+.f64 (*.f64 z x) (+.f64 y (*.f64 -1 (*.f64 y x)))) |
(+.f64 y (+.f64 (*.f64 -1 (*.f64 y x)) (*.f64 x z))) |
(+.f64 (neg.f64 (*.f64 y x)) (+.f64 (*.f64 x z) y)) |
(+.f64 y (*.f64 x (+.f64 z (neg.f64 y)))) |
(+.f64 (*.f64 z x) (+.f64 y (*.f64 -1 (*.f64 y x)))) |
(+.f64 y (+.f64 (*.f64 -1 (*.f64 y x)) (*.f64 x z))) |
(+.f64 (neg.f64 (*.f64 y x)) (+.f64 (*.f64 x z) y)) |
(+.f64 y (*.f64 x (+.f64 z (neg.f64 y)))) |
(+.f64 (*.f64 z x) (+.f64 y (*.f64 -1 (*.f64 y x)))) |
(+.f64 y (+.f64 (*.f64 -1 (*.f64 y x)) (*.f64 x z))) |
(+.f64 (neg.f64 (*.f64 y x)) (+.f64 (*.f64 x z) y)) |
(+.f64 y (*.f64 x (+.f64 z (neg.f64 y)))) |
(*.f64 z x) |
(*.f64 x z) |
(+.f64 (*.f64 z x) (+.f64 y (*.f64 -1 (*.f64 y x)))) |
(+.f64 y (+.f64 (*.f64 -1 (*.f64 y x)) (*.f64 x z))) |
(+.f64 (neg.f64 (*.f64 y x)) (+.f64 (*.f64 x z) y)) |
(+.f64 y (*.f64 x (+.f64 z (neg.f64 y)))) |
(+.f64 (*.f64 z x) (+.f64 y (*.f64 -1 (*.f64 y x)))) |
(+.f64 y (+.f64 (*.f64 -1 (*.f64 y x)) (*.f64 x z))) |
(+.f64 (neg.f64 (*.f64 y x)) (+.f64 (*.f64 x z) y)) |
(+.f64 y (*.f64 x (+.f64 z (neg.f64 y)))) |
(+.f64 (*.f64 z x) (+.f64 y (*.f64 -1 (*.f64 y x)))) |
(+.f64 y (+.f64 (*.f64 -1 (*.f64 y x)) (*.f64 x z))) |
(+.f64 (neg.f64 (*.f64 y x)) (+.f64 (*.f64 x z) y)) |
(+.f64 y (*.f64 x (+.f64 z (neg.f64 y)))) |
(*.f64 z x) |
(*.f64 x z) |
(+.f64 (*.f64 z x) (+.f64 y (*.f64 -1 (*.f64 y x)))) |
(+.f64 y (+.f64 (*.f64 -1 (*.f64 y x)) (*.f64 x z))) |
(+.f64 (neg.f64 (*.f64 y x)) (+.f64 (*.f64 x z) y)) |
(+.f64 y (*.f64 x (+.f64 z (neg.f64 y)))) |
(+.f64 (*.f64 z x) (+.f64 y (*.f64 -1 (*.f64 y x)))) |
(+.f64 y (+.f64 (*.f64 -1 (*.f64 y x)) (*.f64 x z))) |
(+.f64 (neg.f64 (*.f64 y x)) (+.f64 (*.f64 x z) y)) |
(+.f64 y (*.f64 x (+.f64 z (neg.f64 y)))) |
(+.f64 (*.f64 z x) (+.f64 y (*.f64 -1 (*.f64 y x)))) |
(+.f64 y (+.f64 (*.f64 -1 (*.f64 y x)) (*.f64 x z))) |
(+.f64 (neg.f64 (*.f64 y x)) (+.f64 (*.f64 x z) y)) |
(+.f64 y (*.f64 x (+.f64 z (neg.f64 y)))) |
y |
(+.f64 (*.f64 (-.f64 z y) x) y) |
(+.f64 y (*.f64 x (-.f64 z y))) |
(+.f64 (*.f64 (-.f64 z y) x) y) |
(+.f64 y (*.f64 x (-.f64 z y))) |
(+.f64 (*.f64 (-.f64 z y) x) y) |
(+.f64 y (*.f64 x (-.f64 z y))) |
(*.f64 (-.f64 z y) x) |
(*.f64 x (-.f64 z y)) |
(+.f64 (*.f64 (-.f64 z y) x) y) |
(+.f64 y (*.f64 x (-.f64 z y))) |
(+.f64 (*.f64 (-.f64 z y) x) y) |
(+.f64 y (*.f64 x (-.f64 z y))) |
(+.f64 (*.f64 (-.f64 z y) x) y) |
(+.f64 y (*.f64 x (-.f64 z y))) |
(*.f64 (-.f64 z y) x) |
(*.f64 x (-.f64 z y)) |
(+.f64 (*.f64 (-.f64 z y) x) y) |
(+.f64 y (*.f64 x (-.f64 z y))) |
(+.f64 (*.f64 (-.f64 z y) x) y) |
(+.f64 y (*.f64 x (-.f64 z y))) |
(+.f64 (*.f64 (-.f64 z y) x) y) |
(+.f64 y (*.f64 x (-.f64 z y))) |
(+.f64 (*.f64 (+.f64 z (neg.f64 y)) x) 0) |
(+.f64 (*.f64 -1 (*.f64 y x)) (*.f64 x z)) |
(+.f64 (neg.f64 (*.f64 y x)) (*.f64 x z)) |
(*.f64 x (+.f64 z (neg.f64 y))) |
(+.f64 0 (*.f64 (+.f64 z (neg.f64 y)) x)) |
(+.f64 (*.f64 -1 (*.f64 y x)) (*.f64 x z)) |
(+.f64 (neg.f64 (*.f64 y x)) (*.f64 x z)) |
(*.f64 x (+.f64 z (neg.f64 y))) |
(+.f64 (*.f64 (+.f64 z (neg.f64 y)) (*.f64 x 1/2)) (*.f64 (+.f64 z (neg.f64 y)) (*.f64 x 1/2))) |
(+.f64 (*.f64 -1 (*.f64 y x)) (*.f64 x z)) |
(+.f64 (neg.f64 (*.f64 y x)) (*.f64 x z)) |
(*.f64 x (+.f64 z (neg.f64 y))) |
(+.f64 (*.f64 (/.f64 (+.f64 z (neg.f64 y)) 4) (+.f64 x x)) (*.f64 (/.f64 (+.f64 z (neg.f64 y)) 4) (+.f64 x x))) |
(+.f64 (*.f64 -1 (*.f64 y x)) (*.f64 x z)) |
(+.f64 (neg.f64 (*.f64 y x)) (*.f64 x z)) |
(*.f64 x (+.f64 z (neg.f64 y))) |
(+.f64 (*.f64 (/.f64 x 4) (*.f64 (+.f64 z (neg.f64 y)) 2)) (*.f64 (/.f64 x 4) (*.f64 (+.f64 z (neg.f64 y)) 2))) |
(+.f64 (*.f64 -1 (*.f64 y x)) (*.f64 x z)) |
(+.f64 (neg.f64 (*.f64 y x)) (*.f64 x z)) |
(*.f64 x (+.f64 z (neg.f64 y))) |
(-.f64 (*.f64 (+.f64 z (neg.f64 y)) x) 0) |
(+.f64 (*.f64 -1 (*.f64 y x)) (*.f64 x z)) |
(+.f64 (neg.f64 (*.f64 y x)) (*.f64 x z)) |
(*.f64 x (+.f64 z (neg.f64 y))) |
(/.f64 (*.f64 (+.f64 z (neg.f64 y)) x) 1) |
(+.f64 (*.f64 -1 (*.f64 y x)) (*.f64 x z)) |
(+.f64 (neg.f64 (*.f64 y x)) (*.f64 x z)) |
(*.f64 x (+.f64 z (neg.f64 y))) |
(/.f64 (*.f64 (+.f64 z (neg.f64 y)) (+.f64 x x)) 2) |
(+.f64 (*.f64 -1 (*.f64 y x)) (*.f64 x z)) |
(+.f64 (neg.f64 (*.f64 y x)) (*.f64 x z)) |
(*.f64 x (+.f64 z (neg.f64 y))) |
(/.f64 (*.f64 (+.f64 z (neg.f64 y)) (*.f64 x 4)) 4) |
(+.f64 (*.f64 -1 (*.f64 y x)) (*.f64 x z)) |
(+.f64 (neg.f64 (*.f64 y x)) (*.f64 x z)) |
(*.f64 x (+.f64 z (neg.f64 y))) |
(/.f64 (*.f64 (+.f64 z (neg.f64 y)) (*.f64 x 8)) 8) |
(+.f64 (*.f64 -1 (*.f64 y x)) (*.f64 x z)) |
(+.f64 (neg.f64 (*.f64 y x)) (*.f64 x z)) |
(*.f64 x (+.f64 z (neg.f64 y))) |
(/.f64 (*.f64 16 (*.f64 (+.f64 z (neg.f64 y)) x)) 16) |
(+.f64 (*.f64 -1 (*.f64 y x)) (*.f64 x z)) |
(+.f64 (neg.f64 (*.f64 y x)) (*.f64 x z)) |
(*.f64 x (+.f64 z (neg.f64 y))) |
(/.f64 (*.f64 2 (*.f64 16 (*.f64 (+.f64 z (neg.f64 y)) x))) 32) |
(+.f64 (*.f64 -1 (*.f64 y x)) (*.f64 x z)) |
(+.f64 (neg.f64 (*.f64 y x)) (*.f64 x z)) |
(*.f64 x (+.f64 z (neg.f64 y))) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 16 (*.f64 (+.f64 z (neg.f64 y)) x)))) 64) |
(+.f64 (*.f64 -1 (*.f64 y x)) (*.f64 x z)) |
(+.f64 (neg.f64 (*.f64 y x)) (*.f64 x z)) |
(*.f64 x (+.f64 z (neg.f64 y))) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 16 (*.f64 (+.f64 z (neg.f64 y)) x))))) 128) |
(+.f64 (*.f64 -1 (*.f64 y x)) (*.f64 x z)) |
(+.f64 (neg.f64 (*.f64 y x)) (*.f64 x z)) |
(*.f64 x (+.f64 z (neg.f64 y))) |
(pow.f64 (*.f64 (+.f64 z (neg.f64 y)) x) 1) |
(+.f64 (*.f64 -1 (*.f64 y x)) (*.f64 x z)) |
(+.f64 (neg.f64 (*.f64 y x)) (*.f64 x z)) |
(*.f64 x (+.f64 z (neg.f64 y))) |
(-.f64 (+.f64 y (*.f64 (+.f64 z (neg.f64 y)) x)) 0) |
(+.f64 y (+.f64 (*.f64 -1 (*.f64 y x)) (*.f64 x z))) |
(+.f64 (neg.f64 (*.f64 y x)) (+.f64 (*.f64 x z) y)) |
(+.f64 y (*.f64 x (+.f64 z (neg.f64 y)))) |
(*.f64 (+.f64 y (*.f64 (+.f64 z (neg.f64 y)) x)) 1) |
(+.f64 y (+.f64 (*.f64 -1 (*.f64 y x)) (*.f64 x z))) |
(+.f64 (neg.f64 (*.f64 y x)) (+.f64 (*.f64 x z) y)) |
(+.f64 y (*.f64 x (+.f64 z (neg.f64 y)))) |
(*.f64 1 (+.f64 y (*.f64 (+.f64 z (neg.f64 y)) x))) |
(+.f64 y (+.f64 (*.f64 -1 (*.f64 y x)) (*.f64 x z))) |
(+.f64 (neg.f64 (*.f64 y x)) (+.f64 (*.f64 x z) y)) |
(+.f64 y (*.f64 x (+.f64 z (neg.f64 y)))) |
(*.f64 2 (*.f64 (+.f64 y (*.f64 (+.f64 z (neg.f64 y)) x)) 1/2)) |
(+.f64 y (+.f64 (*.f64 -1 (*.f64 y x)) (*.f64 x z))) |
(+.f64 (neg.f64 (*.f64 y x)) (+.f64 (*.f64 x z) y)) |
(+.f64 y (*.f64 x (+.f64 z (neg.f64 y)))) |
(*.f64 (*.f64 (+.f64 y (*.f64 (+.f64 z (neg.f64 y)) x)) 2) 1/2) |
(+.f64 y (+.f64 (*.f64 -1 (*.f64 y x)) (*.f64 x z))) |
(+.f64 (neg.f64 (*.f64 y x)) (+.f64 (*.f64 x z) y)) |
(+.f64 y (*.f64 x (+.f64 z (neg.f64 y)))) |
(*.f64 4 (/.f64 (+.f64 y (*.f64 (+.f64 z (neg.f64 y)) x)) 4)) |
(+.f64 y (+.f64 (*.f64 -1 (*.f64 y x)) (*.f64 x z))) |
(+.f64 (neg.f64 (*.f64 y x)) (+.f64 (*.f64 x z) y)) |
(+.f64 y (*.f64 x (+.f64 z (neg.f64 y)))) |
(*.f64 (*.f64 (+.f64 y (*.f64 (+.f64 z (neg.f64 y)) x)) 4) 1/4) |
(+.f64 y (+.f64 (*.f64 -1 (*.f64 y x)) (*.f64 x z))) |
(+.f64 (neg.f64 (*.f64 y x)) (+.f64 (*.f64 x z) y)) |
(+.f64 y (*.f64 x (+.f64 z (neg.f64 y)))) |
(*.f64 1/2 (*.f64 (+.f64 y (*.f64 (+.f64 z (neg.f64 y)) x)) 2)) |
(+.f64 y (+.f64 (*.f64 -1 (*.f64 y x)) (*.f64 x z))) |
(+.f64 (neg.f64 (*.f64 y x)) (+.f64 (*.f64 x z) y)) |
(+.f64 y (*.f64 x (+.f64 z (neg.f64 y)))) |
(*.f64 1/2 (+.f64 (+.f64 y y) (*.f64 (+.f64 z (neg.f64 y)) (+.f64 x x)))) |
(+.f64 y (+.f64 (*.f64 -1 (*.f64 y x)) (*.f64 x z))) |
(+.f64 (neg.f64 (*.f64 y x)) (+.f64 (*.f64 x z) y)) |
(+.f64 y (*.f64 x (+.f64 z (neg.f64 y)))) |
(*.f64 (*.f64 (+.f64 y (*.f64 (+.f64 z (neg.f64 y)) x)) 1/2) 2) |
(+.f64 y (+.f64 (*.f64 -1 (*.f64 y x)) (*.f64 x z))) |
(+.f64 (neg.f64 (*.f64 y x)) (+.f64 (*.f64 x z) y)) |
(+.f64 y (*.f64 x (+.f64 z (neg.f64 y)))) |
(*.f64 1/4 (*.f64 (+.f64 y (*.f64 (+.f64 z (neg.f64 y)) x)) 4)) |
(+.f64 y (+.f64 (*.f64 -1 (*.f64 y x)) (*.f64 x z))) |
(+.f64 (neg.f64 (*.f64 y x)) (+.f64 (*.f64 x z) y)) |
(+.f64 y (*.f64 x (+.f64 z (neg.f64 y)))) |
(*.f64 (/.f64 (+.f64 y (*.f64 (+.f64 z (neg.f64 y)) x)) 4) 4) |
(+.f64 y (+.f64 (*.f64 -1 (*.f64 y x)) (*.f64 x z))) |
(+.f64 (neg.f64 (*.f64 y x)) (+.f64 (*.f64 x z) y)) |
(+.f64 y (*.f64 x (+.f64 z (neg.f64 y)))) |
(*.f64 (+.f64 (+.f64 y y) (*.f64 (+.f64 z (neg.f64 y)) (+.f64 x x))) 1/2) |
(+.f64 y (+.f64 (*.f64 -1 (*.f64 y x)) (*.f64 x z))) |
(+.f64 (neg.f64 (*.f64 y x)) (+.f64 (*.f64 x z) y)) |
(+.f64 y (*.f64 x (+.f64 z (neg.f64 y)))) |
(/.f64 (+.f64 y (*.f64 (+.f64 z (neg.f64 y)) x)) 1) |
(+.f64 y (+.f64 (*.f64 -1 (*.f64 y x)) (*.f64 x z))) |
(+.f64 (neg.f64 (*.f64 y x)) (+.f64 (*.f64 x z) y)) |
(+.f64 y (*.f64 x (+.f64 z (neg.f64 y)))) |
(/.f64 (*.f64 (+.f64 y (*.f64 (+.f64 z (neg.f64 y)) x)) 2) 2) |
(+.f64 y (+.f64 (*.f64 -1 (*.f64 y x)) (*.f64 x z))) |
(+.f64 (neg.f64 (*.f64 y x)) (+.f64 (*.f64 x z) y)) |
(+.f64 y (*.f64 x (+.f64 z (neg.f64 y)))) |
(/.f64 (*.f64 (+.f64 y (*.f64 (+.f64 z (neg.f64 y)) x)) 4) 4) |
(+.f64 y (+.f64 (*.f64 -1 (*.f64 y x)) (*.f64 x z))) |
(+.f64 (neg.f64 (*.f64 y x)) (+.f64 (*.f64 x z) y)) |
(+.f64 y (*.f64 x (+.f64 z (neg.f64 y)))) |
(/.f64 (*.f64 (+.f64 y (*.f64 (+.f64 z (neg.f64 y)) x)) 8) 8) |
(+.f64 y (+.f64 (*.f64 -1 (*.f64 y x)) (*.f64 x z))) |
(+.f64 (neg.f64 (*.f64 y x)) (+.f64 (*.f64 x z) y)) |
(+.f64 y (*.f64 x (+.f64 z (neg.f64 y)))) |
(/.f64 (*.f64 2 (*.f64 (+.f64 y (*.f64 (+.f64 z (neg.f64 y)) x)) 8)) 16) |
(+.f64 y (+.f64 (*.f64 -1 (*.f64 y x)) (*.f64 x z))) |
(+.f64 (neg.f64 (*.f64 y x)) (+.f64 (*.f64 x z) y)) |
(+.f64 y (*.f64 x (+.f64 z (neg.f64 y)))) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y (*.f64 (+.f64 z (neg.f64 y)) x)) 8))) 32) |
(+.f64 y (+.f64 (*.f64 -1 (*.f64 y x)) (*.f64 x z))) |
(+.f64 (neg.f64 (*.f64 y x)) (+.f64 (*.f64 x z) y)) |
(+.f64 y (*.f64 x (+.f64 z (neg.f64 y)))) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y (*.f64 (+.f64 z (neg.f64 y)) x)) 8)))) 64) |
(+.f64 y (+.f64 (*.f64 -1 (*.f64 y x)) (*.f64 x z))) |
(+.f64 (neg.f64 (*.f64 y x)) (+.f64 (*.f64 x z) y)) |
(+.f64 y (*.f64 x (+.f64 z (neg.f64 y)))) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y (*.f64 (+.f64 z (neg.f64 y)) x)) 8))))) 128) |
(+.f64 y (+.f64 (*.f64 -1 (*.f64 y x)) (*.f64 x z))) |
(+.f64 (neg.f64 (*.f64 y x)) (+.f64 (*.f64 x z) y)) |
(+.f64 y (*.f64 x (+.f64 z (neg.f64 y)))) |
(pow.f64 (+.f64 y (*.f64 (+.f64 z (neg.f64 y)) x)) 1) |
(+.f64 y (+.f64 (*.f64 -1 (*.f64 y x)) (*.f64 x z))) |
(+.f64 (neg.f64 (*.f64 y x)) (+.f64 (*.f64 x z) y)) |
(+.f64 y (*.f64 x (+.f64 z (neg.f64 y)))) |
Compiled 8 to 4 computations (50% saved)
Found 1 expressions with local error:
| New | Error | Program |
|---|---|---|
| ✓ | 0.0b | (*.f64 y (-.f64 1 x)) |
Compiled 14 to 9 computations (35.7% saved)
6 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 0.0ms | y | @ | 0 | (*.f64 y (-.f64 1 x)) |
| 0.0ms | y | @ | inf | (*.f64 y (-.f64 1 x)) |
| 0.0ms | x | @ | inf | (*.f64 y (-.f64 1 x)) |
| 0.0ms | y | @ | -inf | (*.f64 y (-.f64 1 x)) |
| 0.0ms | x | @ | -inf | (*.f64 y (-.f64 1 x)) |
| 1× | batch-egg-rewrite |
| 1616× | rational.json-simplify-35 |
| 1384× | exponential.json-3 |
| 1384× | rational.json-1 |
| 1384× | rational.json-2 |
| 1384× | rational.json-4 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 7 | 13 |
| 1 | 55 | 13 |
| 2 | 128 | 13 |
| 3 | 238 | 13 |
| 4 | 428 | 13 |
| 5 | 912 | 13 |
| 6 | 2337 | 13 |
| 7 | 4223 | 13 |
| 8 | 5298 | 13 |
| 9 | 6558 | 13 |
| 10 | 7658 | 13 |
| 11 | 7840 | 13 |
| 1× | node limit |
| Inputs |
|---|
(*.f64 y (-.f64 1 x)) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 y (-.f64 1 x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 y (-.f64 1 x)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -1 (-.f64 1 (*.f64 y (+.f64 x -1))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -1 (-.f64 1 (*.f64 (+.f64 y y) (*.f64 (+.f64 x -1) 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 y (*.f64 (-.f64 1 x) 1/2)) (*.f64 y (*.f64 (-.f64 1 x) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 y (-.f64 1 x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (*.f64 y (+.f64 x -1)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (*.f64 (+.f64 y y) (*.f64 (+.f64 x -1) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (-.f64 1 x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (*.f64 (-.f64 1 x) 2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (*.f64 (-.f64 1 x) 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (*.f64 (-.f64 1 x) 8)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 y (*.f64 (-.f64 1 x) 8))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 y (*.f64 (-.f64 1 x) 8)))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (+.f64 x -1)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 y y) (*.f64 (+.f64 x -1) 1/2)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y (*.f64 (-.f64 1 x) 8))))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y (*.f64 (-.f64 1 x) 8)))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y (*.f64 (-.f64 1 x) 8))))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 y (-.f64 1 x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (*.f64 y (+.f64 x -1)))))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (*.f64 (+.f64 y y) (*.f64 (+.f64 x -1) 1/2))))))) |
| 1× | egg-herbie |
| 2110× | rational.json-simplify-35 |
| 1960× | rational.json-simplify-2 |
| 1876× | rational.json-simplify-53 |
| 1046× | rational.json-simplify-1 |
| 984× | rational.json-simplify-43 |
Useful iterations: 1 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 64 | 484 |
| 1 | 170 | 462 |
| 2 | 332 | 462 |
| 3 | 766 | 462 |
| 4 | 2588 | 462 |
| 5 | 4347 | 462 |
| 6 | 4973 | 462 |
| 7 | 5177 | 462 |
| 8 | 5333 | 462 |
| 9 | 5508 | 462 |
| 10 | 6348 | 462 |
| 11 | 7533 | 462 |
| 12 | 7658 | 462 |
| 13 | 7709 | 462 |
| 14 | 7733 | 462 |
| 15 | 7751 | 462 |
| 16 | 7890 | 462 |
| 1× | node limit |
| Inputs |
|---|
y |
(+.f64 y (*.f64 -1 (*.f64 y x))) |
(+.f64 y (*.f64 -1 (*.f64 y x))) |
(+.f64 y (*.f64 -1 (*.f64 y x))) |
(*.f64 -1 (*.f64 y x)) |
(+.f64 y (*.f64 -1 (*.f64 y x))) |
(+.f64 y (*.f64 -1 (*.f64 y x))) |
(+.f64 y (*.f64 -1 (*.f64 y x))) |
(*.f64 -1 (*.f64 y x)) |
(+.f64 y (*.f64 -1 (*.f64 y x))) |
(+.f64 y (*.f64 -1 (*.f64 y x))) |
(+.f64 y (*.f64 -1 (*.f64 y x))) |
(+.f64 (*.f64 y (-.f64 1 x)) 0) |
(+.f64 0 (*.f64 y (-.f64 1 x))) |
(+.f64 -1 (-.f64 1 (*.f64 y (+.f64 x -1)))) |
(+.f64 -1 (-.f64 1 (*.f64 (+.f64 y y) (*.f64 (+.f64 x -1) 1/2)))) |
(+.f64 (*.f64 y (*.f64 (-.f64 1 x) 1/2)) (*.f64 y (*.f64 (-.f64 1 x) 1/2))) |
(-.f64 (*.f64 y (-.f64 1 x)) 0) |
(-.f64 0 (*.f64 y (+.f64 x -1))) |
(-.f64 0 (*.f64 (+.f64 y y) (*.f64 (+.f64 x -1) 1/2))) |
(/.f64 (*.f64 y (-.f64 1 x)) 1) |
(/.f64 (*.f64 y (*.f64 (-.f64 1 x) 2)) 2) |
(/.f64 (*.f64 y (*.f64 (-.f64 1 x) 4)) 4) |
(/.f64 (*.f64 y (*.f64 (-.f64 1 x) 8)) 8) |
(/.f64 (*.f64 2 (*.f64 y (*.f64 (-.f64 1 x) 8))) 16) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 y (*.f64 (-.f64 1 x) 8)))) 32) |
(/.f64 (*.f64 y (+.f64 x -1)) -1) |
(/.f64 (*.f64 (+.f64 y y) (*.f64 (+.f64 x -1) 1/2)) -1) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y (*.f64 (-.f64 1 x) 8))))) 64) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y (*.f64 (-.f64 1 x) 8)))))) 128) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y (*.f64 (-.f64 1 x) 8))))))) 256) |
(pow.f64 (*.f64 y (-.f64 1 x)) 1) |
(neg.f64 (*.f64 y (+.f64 x -1))) |
(neg.f64 (*.f64 (+.f64 y y) (*.f64 (+.f64 x -1) 1/2))) |
| Outputs |
|---|
y |
(+.f64 y (*.f64 -1 (*.f64 y x))) |
(+.f64 y (*.f64 y (*.f64 x -1))) |
(+.f64 y (*.f64 y (neg.f64 x))) |
(+.f64 y (*.f64 x (neg.f64 y))) |
(+.f64 y (*.f64 -1 (*.f64 y x))) |
(+.f64 y (*.f64 y (*.f64 x -1))) |
(+.f64 y (*.f64 y (neg.f64 x))) |
(+.f64 y (*.f64 x (neg.f64 y))) |
(+.f64 y (*.f64 -1 (*.f64 y x))) |
(+.f64 y (*.f64 y (*.f64 x -1))) |
(+.f64 y (*.f64 y (neg.f64 x))) |
(+.f64 y (*.f64 x (neg.f64 y))) |
(*.f64 -1 (*.f64 y x)) |
(*.f64 y (*.f64 x -1)) |
(*.f64 y (neg.f64 x)) |
(*.f64 x (neg.f64 y)) |
(+.f64 y (*.f64 -1 (*.f64 y x))) |
(+.f64 y (*.f64 y (*.f64 x -1))) |
(+.f64 y (*.f64 y (neg.f64 x))) |
(+.f64 y (*.f64 x (neg.f64 y))) |
(+.f64 y (*.f64 -1 (*.f64 y x))) |
(+.f64 y (*.f64 y (*.f64 x -1))) |
(+.f64 y (*.f64 y (neg.f64 x))) |
(+.f64 y (*.f64 x (neg.f64 y))) |
(+.f64 y (*.f64 -1 (*.f64 y x))) |
(+.f64 y (*.f64 y (*.f64 x -1))) |
(+.f64 y (*.f64 y (neg.f64 x))) |
(+.f64 y (*.f64 x (neg.f64 y))) |
(*.f64 -1 (*.f64 y x)) |
(*.f64 y (*.f64 x -1)) |
(*.f64 y (neg.f64 x)) |
(*.f64 x (neg.f64 y)) |
(+.f64 y (*.f64 -1 (*.f64 y x))) |
(+.f64 y (*.f64 y (*.f64 x -1))) |
(+.f64 y (*.f64 y (neg.f64 x))) |
(+.f64 y (*.f64 x (neg.f64 y))) |
(+.f64 y (*.f64 -1 (*.f64 y x))) |
(+.f64 y (*.f64 y (*.f64 x -1))) |
(+.f64 y (*.f64 y (neg.f64 x))) |
(+.f64 y (*.f64 x (neg.f64 y))) |
(+.f64 y (*.f64 -1 (*.f64 y x))) |
(+.f64 y (*.f64 y (*.f64 x -1))) |
(+.f64 y (*.f64 y (neg.f64 x))) |
(+.f64 y (*.f64 x (neg.f64 y))) |
(+.f64 (*.f64 y (-.f64 1 x)) 0) |
(*.f64 y (-.f64 1 x)) |
(+.f64 0 (*.f64 y (-.f64 1 x))) |
(*.f64 y (-.f64 1 x)) |
(+.f64 -1 (-.f64 1 (*.f64 y (+.f64 x -1)))) |
(*.f64 y (-.f64 1 x)) |
(+.f64 -1 (-.f64 1 (*.f64 (+.f64 y y) (*.f64 (+.f64 x -1) 1/2)))) |
(*.f64 y (-.f64 1 x)) |
(+.f64 (*.f64 y (*.f64 (-.f64 1 x) 1/2)) (*.f64 y (*.f64 (-.f64 1 x) 1/2))) |
(*.f64 y (-.f64 1 x)) |
(-.f64 (*.f64 y (-.f64 1 x)) 0) |
(*.f64 y (-.f64 1 x)) |
(-.f64 0 (*.f64 y (+.f64 x -1))) |
(*.f64 y (-.f64 1 x)) |
(-.f64 0 (*.f64 (+.f64 y y) (*.f64 (+.f64 x -1) 1/2))) |
(*.f64 y (-.f64 1 x)) |
(/.f64 (*.f64 y (-.f64 1 x)) 1) |
(*.f64 y (-.f64 1 x)) |
(/.f64 (*.f64 y (*.f64 (-.f64 1 x) 2)) 2) |
(*.f64 y (-.f64 1 x)) |
(/.f64 (*.f64 y (*.f64 (-.f64 1 x) 4)) 4) |
(*.f64 y (-.f64 1 x)) |
(/.f64 (*.f64 y (*.f64 (-.f64 1 x) 8)) 8) |
(*.f64 y (-.f64 1 x)) |
(/.f64 (*.f64 2 (*.f64 y (*.f64 (-.f64 1 x) 8))) 16) |
(*.f64 y (-.f64 1 x)) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 y (*.f64 (-.f64 1 x) 8)))) 32) |
(*.f64 y (-.f64 1 x)) |
(/.f64 (*.f64 y (+.f64 x -1)) -1) |
(*.f64 y (-.f64 1 x)) |
(/.f64 (*.f64 (+.f64 y y) (*.f64 (+.f64 x -1) 1/2)) -1) |
(*.f64 y (-.f64 1 x)) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y (*.f64 (-.f64 1 x) 8))))) 64) |
(*.f64 y (-.f64 1 x)) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y (*.f64 (-.f64 1 x) 8)))))) 128) |
(*.f64 y (-.f64 1 x)) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y (*.f64 (-.f64 1 x) 8))))))) 256) |
(*.f64 y (-.f64 1 x)) |
(pow.f64 (*.f64 y (-.f64 1 x)) 1) |
(*.f64 y (-.f64 1 x)) |
(neg.f64 (*.f64 y (+.f64 x -1))) |
(*.f64 y (-.f64 1 x)) |
(neg.f64 (*.f64 (+.f64 y y) (*.f64 (+.f64 x -1) 1/2))) |
(*.f64 y (-.f64 1 x)) |
Found 1 expressions with local error:
| New | Error | Program |
|---|---|---|
| 0.0b | (*.f64 (+.f64 z (neg.f64 y)) x) |
Compiled 18 to 6 computations (66.7% saved)
Found 1 expressions with local error:
| New | Error | Program |
|---|---|---|
| ✓ | 0.0b | (+.f64 (*.f64 (neg.f64 y) x) (*.f64 x z)) |
Compiled 23 to 7 computations (69.6% saved)
9 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 2.0ms | x | @ | inf | (+.f64 (*.f64 (neg.f64 y) x) (*.f64 x z)) |
| 1.0ms | z | @ | 0 | (+.f64 (*.f64 (neg.f64 y) x) (*.f64 x z)) |
| 0.0ms | x | @ | 0 | (+.f64 (*.f64 (neg.f64 y) x) (*.f64 x z)) |
| 0.0ms | y | @ | 0 | (+.f64 (*.f64 (neg.f64 y) x) (*.f64 x z)) |
| 0.0ms | x | @ | -inf | (+.f64 (*.f64 (neg.f64 y) x) (*.f64 x z)) |
| 1× | batch-egg-rewrite |
| 1638× | rational.json-simplify-35 |
| 1616× | rational.json-1 |
| 1616× | rational.json-2 |
| 1616× | rational.json-3 |
| 1596× | rational.json-4 |
Useful iterations: 1 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 10 | 23 |
| 1 | 69 | 17 |
| 2 | 156 | 17 |
| 3 | 348 | 17 |
| 4 | 704 | 17 |
| 5 | 1724 | 17 |
| 6 | 3525 | 17 |
| 7 | 5524 | 17 |
| 8 | 7392 | 17 |
| 1× | node limit |
| Inputs |
|---|
(+.f64 (*.f64 (neg.f64 y) x) (*.f64 x z)) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 x (+.f64 (neg.f64 y) z)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (+.f64 (neg.f64 y) z))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x (+.f64 (neg.f64 y) z)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 x (+.f64 (neg.f64 y) z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (*.f64 x (+.f64 (neg.f64 y) z)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (*.f64 (+.f64 (neg.f64 y) z) 1/2) x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x x) (*.f64 (+.f64 (neg.f64 y) z) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x x) (/.f64 (+.f64 (neg.f64 y) z) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x (*.f64 2 (+.f64 (neg.f64 y) z))) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (neg.f64 y) z) x)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (*.f64 x (+.f64 (neg.f64 y) z)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (*.f64 (/.f64 (+.f64 (neg.f64 y) z) 2) (*.f64 x 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x (*.f64 4 (+.f64 (neg.f64 y) z))) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (+.f64 (neg.f64 y) z)) (*.f64 x 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 x (*.f64 2 (+.f64 (neg.f64 y) z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (*.f64 x (+.f64 z z)) (*.f64 y (*.f64 x -2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x 1/2) (*.f64 2 (+.f64 (neg.f64 y) z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x 1/2) (+.f64 (+.f64 z z) (*.f64 y -2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 x (+.f64 (neg.f64 y) z)) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (neg.f64 y) z) 1/2) (+.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 x (*.f64 4 (+.f64 (neg.f64 y) z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 (neg.f64 y) z) 2) (+.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 x (+.f64 (neg.f64 y) z)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (+.f64 z z) (*.f64 y -2)) (*.f64 x 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (+.f64 (neg.f64 y) z)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (*.f64 2 (+.f64 (neg.f64 y) z))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (*.f64 4 (+.f64 (neg.f64 y) z))) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 x (+.f64 (neg.f64 y) z)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 x (+.f64 (neg.f64 y) z)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (+.f64 (neg.f64 y) z)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (+.f64 (neg.f64 y) z)) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (+.f64 (neg.f64 y) z)) 8)))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (+.f64 (neg.f64 y) z)) 8))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x (+.f64 (neg.f64 y) z)) 1))))) |
| 1× | egg-herbie |
| 3362× | rational.json-simplify-35 |
| 2270× | rational.json-simplify-2 |
| 1346× | rational.json-simplify-1 |
| 860× | rational.json-simplify-41 |
| 774× | exponential.json-simplify-26 |
Useful iterations: 2 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 89 | 1635 |
| 1 | 202 | 1495 |
| 2 | 468 | 1141 |
| 3 | 1527 | 1141 |
| 4 | 3258 | 1141 |
| 5 | 4724 | 1141 |
| 6 | 5539 | 1141 |
| 7 | 5823 | 1141 |
| 8 | 5981 | 1141 |
| 9 | 6096 | 1141 |
| 10 | 6199 | 1141 |
| 11 | 6590 | 1141 |
| 12 | 6711 | 1141 |
| 13 | 6830 | 1141 |
| 14 | 6928 | 1141 |
| 15 | 7026 | 1141 |
| 16 | 7026 | 1141 |
| 17 | 7069 | 1141 |
| 18 | 7127 | 1141 |
| 19 | 7137 | 1141 |
| 20 | 7237 | 1141 |
| 21 | 7335 | 1141 |
| 22 | 7433 | 1141 |
| 23 | 7531 | 1141 |
| 24 | 7629 | 1141 |
| 25 | 7727 | 1141 |
| 26 | 7825 | 1141 |
| 27 | 7923 | 1141 |
| 1× | node limit |
| Inputs |
|---|
(*.f64 z x) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x))) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x))) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x))) |
(*.f64 -1 (*.f64 y x)) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x))) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x))) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x))) |
(*.f64 -1 (*.f64 y x)) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x))) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x))) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x))) |
(*.f64 (+.f64 z (*.f64 -1 y)) x) |
(*.f64 (+.f64 z (*.f64 -1 y)) x) |
(*.f64 (+.f64 z (*.f64 -1 y)) x) |
(*.f64 (+.f64 z (*.f64 -1 y)) x) |
(*.f64 (+.f64 z (*.f64 -1 y)) x) |
(*.f64 (+.f64 z (*.f64 -1 y)) x) |
(*.f64 (+.f64 z (*.f64 -1 y)) x) |
(*.f64 (+.f64 z (*.f64 -1 y)) x) |
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 z) y) x)) |
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 z) y) x)) |
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 z) y) x)) |
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 z) y) x)) |
(*.f64 -1 (*.f64 y x)) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x))) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x))) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x))) |
(*.f64 z x) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x))) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x))) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x))) |
(*.f64 z x) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x))) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x))) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x))) |
(-.f64 (*.f64 x (+.f64 (neg.f64 y) z)) 0) |
(*.f64 x (+.f64 (neg.f64 y) z)) |
(*.f64 (*.f64 x (+.f64 (neg.f64 y) z)) 1) |
(*.f64 1 (*.f64 x (+.f64 (neg.f64 y) z))) |
(*.f64 2 (*.f64 (*.f64 x (+.f64 (neg.f64 y) z)) 1/2)) |
(*.f64 2 (*.f64 (*.f64 (+.f64 (neg.f64 y) z) 1/2) x)) |
(*.f64 (+.f64 x x) (*.f64 (+.f64 (neg.f64 y) z) 1/2)) |
(*.f64 (+.f64 x x) (/.f64 (+.f64 (neg.f64 y) z) 2)) |
(*.f64 (*.f64 x (*.f64 2 (+.f64 (neg.f64 y) z))) 1/2) |
(*.f64 (+.f64 (neg.f64 y) z) x) |
(*.f64 4 (/.f64 (*.f64 x (+.f64 (neg.f64 y) z)) 4)) |
(*.f64 4 (*.f64 (/.f64 (+.f64 (neg.f64 y) z) 2) (*.f64 x 1/2))) |
(*.f64 (*.f64 x (*.f64 4 (+.f64 (neg.f64 y) z))) 1/4) |
(*.f64 (*.f64 2 (+.f64 (neg.f64 y) z)) (*.f64 x 1/2)) |
(*.f64 1/2 (*.f64 x (*.f64 2 (+.f64 (neg.f64 y) z)))) |
(*.f64 1/2 (+.f64 (*.f64 x (+.f64 z z)) (*.f64 y (*.f64 x -2)))) |
(*.f64 (*.f64 x 1/2) (*.f64 2 (+.f64 (neg.f64 y) z))) |
(*.f64 (*.f64 x 1/2) (+.f64 (+.f64 z z) (*.f64 y -2))) |
(*.f64 (*.f64 (*.f64 x (+.f64 (neg.f64 y) z)) 1/2) 2) |
(*.f64 (*.f64 (+.f64 (neg.f64 y) z) 1/2) (+.f64 x x)) |
(*.f64 1/4 (*.f64 x (*.f64 4 (+.f64 (neg.f64 y) z)))) |
(*.f64 (/.f64 (+.f64 (neg.f64 y) z) 2) (+.f64 x x)) |
(*.f64 (/.f64 (*.f64 x (+.f64 (neg.f64 y) z)) 4) 4) |
(*.f64 (+.f64 (+.f64 z z) (*.f64 y -2)) (*.f64 x 1/2)) |
(/.f64 (*.f64 x (+.f64 (neg.f64 y) z)) 1) |
(/.f64 (*.f64 x (*.f64 2 (+.f64 (neg.f64 y) z))) 2) |
(/.f64 (*.f64 x (*.f64 4 (+.f64 (neg.f64 y) z))) 4) |
(/.f64 (*.f64 (*.f64 x (+.f64 (neg.f64 y) z)) 8) 8) |
(/.f64 (*.f64 2 (*.f64 (*.f64 x (+.f64 (neg.f64 y) z)) 8)) 16) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (+.f64 (neg.f64 y) z)) 8))) 32) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (+.f64 (neg.f64 y) z)) 8)))) 64) |
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (+.f64 (neg.f64 y) z)) 8)))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (+.f64 (neg.f64 y) z)) 8))))) 128) |
(pow.f64 (*.f64 x (+.f64 (neg.f64 y) z)) 1) |
| Outputs |
|---|
(*.f64 z x) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x))) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 x y))) |
(+.f64 (*.f64 z x) (*.f64 x (neg.f64 y))) |
(*.f64 x (+.f64 z (neg.f64 y))) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x))) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 x y))) |
(+.f64 (*.f64 z x) (*.f64 x (neg.f64 y))) |
(*.f64 x (+.f64 z (neg.f64 y))) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x))) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 x y))) |
(+.f64 (*.f64 z x) (*.f64 x (neg.f64 y))) |
(*.f64 x (+.f64 z (neg.f64 y))) |
(*.f64 -1 (*.f64 y x)) |
(*.f64 -1 (*.f64 x y)) |
(*.f64 x (neg.f64 y)) |
(neg.f64 (*.f64 x y)) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x))) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 x y))) |
(+.f64 (*.f64 z x) (*.f64 x (neg.f64 y))) |
(*.f64 x (+.f64 z (neg.f64 y))) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x))) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 x y))) |
(+.f64 (*.f64 z x) (*.f64 x (neg.f64 y))) |
(*.f64 x (+.f64 z (neg.f64 y))) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x))) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 x y))) |
(+.f64 (*.f64 z x) (*.f64 x (neg.f64 y))) |
(*.f64 x (+.f64 z (neg.f64 y))) |
(*.f64 -1 (*.f64 y x)) |
(*.f64 -1 (*.f64 x y)) |
(*.f64 x (neg.f64 y)) |
(neg.f64 (*.f64 x y)) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x))) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 x y))) |
(+.f64 (*.f64 z x) (*.f64 x (neg.f64 y))) |
(*.f64 x (+.f64 z (neg.f64 y))) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x))) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 x y))) |
(+.f64 (*.f64 z x) (*.f64 x (neg.f64 y))) |
(*.f64 x (+.f64 z (neg.f64 y))) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x))) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 x y))) |
(+.f64 (*.f64 z x) (*.f64 x (neg.f64 y))) |
(*.f64 x (+.f64 z (neg.f64 y))) |
(*.f64 (+.f64 z (*.f64 -1 y)) x) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 x y))) |
(+.f64 (*.f64 z x) (*.f64 x (neg.f64 y))) |
(*.f64 x (+.f64 z (neg.f64 y))) |
(*.f64 (+.f64 z (*.f64 -1 y)) x) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 x y))) |
(+.f64 (*.f64 z x) (*.f64 x (neg.f64 y))) |
(*.f64 x (+.f64 z (neg.f64 y))) |
(*.f64 (+.f64 z (*.f64 -1 y)) x) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 x y))) |
(+.f64 (*.f64 z x) (*.f64 x (neg.f64 y))) |
(*.f64 x (+.f64 z (neg.f64 y))) |
(*.f64 (+.f64 z (*.f64 -1 y)) x) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 x y))) |
(+.f64 (*.f64 z x) (*.f64 x (neg.f64 y))) |
(*.f64 x (+.f64 z (neg.f64 y))) |
(*.f64 (+.f64 z (*.f64 -1 y)) x) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 x y))) |
(+.f64 (*.f64 z x) (*.f64 x (neg.f64 y))) |
(*.f64 x (+.f64 z (neg.f64 y))) |
(*.f64 (+.f64 z (*.f64 -1 y)) x) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 x y))) |
(+.f64 (*.f64 z x) (*.f64 x (neg.f64 y))) |
(*.f64 x (+.f64 z (neg.f64 y))) |
(*.f64 (+.f64 z (*.f64 -1 y)) x) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 x y))) |
(+.f64 (*.f64 z x) (*.f64 x (neg.f64 y))) |
(*.f64 x (+.f64 z (neg.f64 y))) |
(*.f64 (+.f64 z (*.f64 -1 y)) x) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 x y))) |
(+.f64 (*.f64 z x) (*.f64 x (neg.f64 y))) |
(*.f64 x (+.f64 z (neg.f64 y))) |
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 z) y) x)) |
(*.f64 -1 (*.f64 x (+.f64 y (*.f64 z -1)))) |
(*.f64 (+.f64 y (neg.f64 z)) (neg.f64 x)) |
(*.f64 x (neg.f64 (+.f64 y (neg.f64 z)))) |
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 z) y) x)) |
(*.f64 -1 (*.f64 x (+.f64 y (*.f64 z -1)))) |
(*.f64 (+.f64 y (neg.f64 z)) (neg.f64 x)) |
(*.f64 x (neg.f64 (+.f64 y (neg.f64 z)))) |
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 z) y) x)) |
(*.f64 -1 (*.f64 x (+.f64 y (*.f64 z -1)))) |
(*.f64 (+.f64 y (neg.f64 z)) (neg.f64 x)) |
(*.f64 x (neg.f64 (+.f64 y (neg.f64 z)))) |
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 z) y) x)) |
(*.f64 -1 (*.f64 x (+.f64 y (*.f64 z -1)))) |
(*.f64 (+.f64 y (neg.f64 z)) (neg.f64 x)) |
(*.f64 x (neg.f64 (+.f64 y (neg.f64 z)))) |
(*.f64 -1 (*.f64 y x)) |
(*.f64 -1 (*.f64 x y)) |
(*.f64 x (neg.f64 y)) |
(neg.f64 (*.f64 x y)) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x))) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 x y))) |
(+.f64 (*.f64 z x) (*.f64 x (neg.f64 y))) |
(*.f64 x (+.f64 z (neg.f64 y))) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x))) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 x y))) |
(+.f64 (*.f64 z x) (*.f64 x (neg.f64 y))) |
(*.f64 x (+.f64 z (neg.f64 y))) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x))) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 x y))) |
(+.f64 (*.f64 z x) (*.f64 x (neg.f64 y))) |
(*.f64 x (+.f64 z (neg.f64 y))) |
(*.f64 z x) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x))) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 x y))) |
(+.f64 (*.f64 z x) (*.f64 x (neg.f64 y))) |
(*.f64 x (+.f64 z (neg.f64 y))) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x))) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 x y))) |
(+.f64 (*.f64 z x) (*.f64 x (neg.f64 y))) |
(*.f64 x (+.f64 z (neg.f64 y))) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x))) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 x y))) |
(+.f64 (*.f64 z x) (*.f64 x (neg.f64 y))) |
(*.f64 x (+.f64 z (neg.f64 y))) |
(*.f64 z x) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x))) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 x y))) |
(+.f64 (*.f64 z x) (*.f64 x (neg.f64 y))) |
(*.f64 x (+.f64 z (neg.f64 y))) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x))) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 x y))) |
(+.f64 (*.f64 z x) (*.f64 x (neg.f64 y))) |
(*.f64 x (+.f64 z (neg.f64 y))) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x))) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 x y))) |
(+.f64 (*.f64 z x) (*.f64 x (neg.f64 y))) |
(*.f64 x (+.f64 z (neg.f64 y))) |
(-.f64 (*.f64 x (+.f64 (neg.f64 y) z)) 0) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 x y))) |
(+.f64 (*.f64 z x) (*.f64 x (neg.f64 y))) |
(*.f64 x (+.f64 z (neg.f64 y))) |
(*.f64 x (+.f64 (neg.f64 y) z)) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 x y))) |
(+.f64 (*.f64 z x) (*.f64 x (neg.f64 y))) |
(*.f64 x (+.f64 z (neg.f64 y))) |
(*.f64 (*.f64 x (+.f64 (neg.f64 y) z)) 1) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 x y))) |
(+.f64 (*.f64 z x) (*.f64 x (neg.f64 y))) |
(*.f64 x (+.f64 z (neg.f64 y))) |
(*.f64 1 (*.f64 x (+.f64 (neg.f64 y) z))) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 x y))) |
(+.f64 (*.f64 z x) (*.f64 x (neg.f64 y))) |
(*.f64 x (+.f64 z (neg.f64 y))) |
(*.f64 2 (*.f64 (*.f64 x (+.f64 (neg.f64 y) z)) 1/2)) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 x y))) |
(+.f64 (*.f64 z x) (*.f64 x (neg.f64 y))) |
(*.f64 x (+.f64 z (neg.f64 y))) |
(*.f64 2 (*.f64 (*.f64 (+.f64 (neg.f64 y) z) 1/2) x)) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 x y))) |
(+.f64 (*.f64 z x) (*.f64 x (neg.f64 y))) |
(*.f64 x (+.f64 z (neg.f64 y))) |
(*.f64 (+.f64 x x) (*.f64 (+.f64 (neg.f64 y) z) 1/2)) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 x y))) |
(+.f64 (*.f64 z x) (*.f64 x (neg.f64 y))) |
(*.f64 x (+.f64 z (neg.f64 y))) |
(*.f64 (+.f64 x x) (/.f64 (+.f64 (neg.f64 y) z) 2)) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 x y))) |
(+.f64 (*.f64 z x) (*.f64 x (neg.f64 y))) |
(*.f64 x (+.f64 z (neg.f64 y))) |
(*.f64 (*.f64 x (*.f64 2 (+.f64 (neg.f64 y) z))) 1/2) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 x y))) |
(+.f64 (*.f64 z x) (*.f64 x (neg.f64 y))) |
(*.f64 x (+.f64 z (neg.f64 y))) |
(*.f64 (+.f64 (neg.f64 y) z) x) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 x y))) |
(+.f64 (*.f64 z x) (*.f64 x (neg.f64 y))) |
(*.f64 x (+.f64 z (neg.f64 y))) |
(*.f64 4 (/.f64 (*.f64 x (+.f64 (neg.f64 y) z)) 4)) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 x y))) |
(+.f64 (*.f64 z x) (*.f64 x (neg.f64 y))) |
(*.f64 x (+.f64 z (neg.f64 y))) |
(*.f64 4 (*.f64 (/.f64 (+.f64 (neg.f64 y) z) 2) (*.f64 x 1/2))) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 x y))) |
(+.f64 (*.f64 z x) (*.f64 x (neg.f64 y))) |
(*.f64 x (+.f64 z (neg.f64 y))) |
(*.f64 (*.f64 x (*.f64 4 (+.f64 (neg.f64 y) z))) 1/4) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 x y))) |
(+.f64 (*.f64 z x) (*.f64 x (neg.f64 y))) |
(*.f64 x (+.f64 z (neg.f64 y))) |
(*.f64 (*.f64 2 (+.f64 (neg.f64 y) z)) (*.f64 x 1/2)) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 x y))) |
(+.f64 (*.f64 z x) (*.f64 x (neg.f64 y))) |
(*.f64 x (+.f64 z (neg.f64 y))) |
(*.f64 1/2 (*.f64 x (*.f64 2 (+.f64 (neg.f64 y) z)))) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 x y))) |
(+.f64 (*.f64 z x) (*.f64 x (neg.f64 y))) |
(*.f64 x (+.f64 z (neg.f64 y))) |
(*.f64 1/2 (+.f64 (*.f64 x (+.f64 z z)) (*.f64 y (*.f64 x -2)))) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 x y))) |
(+.f64 (*.f64 z x) (*.f64 x (neg.f64 y))) |
(*.f64 x (+.f64 z (neg.f64 y))) |
(*.f64 (*.f64 x 1/2) (*.f64 2 (+.f64 (neg.f64 y) z))) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 x y))) |
(+.f64 (*.f64 z x) (*.f64 x (neg.f64 y))) |
(*.f64 x (+.f64 z (neg.f64 y))) |
(*.f64 (*.f64 x 1/2) (+.f64 (+.f64 z z) (*.f64 y -2))) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 x y))) |
(+.f64 (*.f64 z x) (*.f64 x (neg.f64 y))) |
(*.f64 x (+.f64 z (neg.f64 y))) |
(*.f64 (*.f64 (*.f64 x (+.f64 (neg.f64 y) z)) 1/2) 2) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 x y))) |
(+.f64 (*.f64 z x) (*.f64 x (neg.f64 y))) |
(*.f64 x (+.f64 z (neg.f64 y))) |
(*.f64 (*.f64 (+.f64 (neg.f64 y) z) 1/2) (+.f64 x x)) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 x y))) |
(+.f64 (*.f64 z x) (*.f64 x (neg.f64 y))) |
(*.f64 x (+.f64 z (neg.f64 y))) |
(*.f64 1/4 (*.f64 x (*.f64 4 (+.f64 (neg.f64 y) z)))) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 x y))) |
(+.f64 (*.f64 z x) (*.f64 x (neg.f64 y))) |
(*.f64 x (+.f64 z (neg.f64 y))) |
(*.f64 (/.f64 (+.f64 (neg.f64 y) z) 2) (+.f64 x x)) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 x y))) |
(+.f64 (*.f64 z x) (*.f64 x (neg.f64 y))) |
(*.f64 x (+.f64 z (neg.f64 y))) |
(*.f64 (/.f64 (*.f64 x (+.f64 (neg.f64 y) z)) 4) 4) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 x y))) |
(+.f64 (*.f64 z x) (*.f64 x (neg.f64 y))) |
(*.f64 x (+.f64 z (neg.f64 y))) |
(*.f64 (+.f64 (+.f64 z z) (*.f64 y -2)) (*.f64 x 1/2)) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 x y))) |
(+.f64 (*.f64 z x) (*.f64 x (neg.f64 y))) |
(*.f64 x (+.f64 z (neg.f64 y))) |
(/.f64 (*.f64 x (+.f64 (neg.f64 y) z)) 1) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 x y))) |
(+.f64 (*.f64 z x) (*.f64 x (neg.f64 y))) |
(*.f64 x (+.f64 z (neg.f64 y))) |
(/.f64 (*.f64 x (*.f64 2 (+.f64 (neg.f64 y) z))) 2) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 x y))) |
(+.f64 (*.f64 z x) (*.f64 x (neg.f64 y))) |
(*.f64 x (+.f64 z (neg.f64 y))) |
(/.f64 (*.f64 x (*.f64 4 (+.f64 (neg.f64 y) z))) 4) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 x y))) |
(+.f64 (*.f64 z x) (*.f64 x (neg.f64 y))) |
(*.f64 x (+.f64 z (neg.f64 y))) |
(/.f64 (*.f64 (*.f64 x (+.f64 (neg.f64 y) z)) 8) 8) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 x y))) |
(+.f64 (*.f64 z x) (*.f64 x (neg.f64 y))) |
(*.f64 x (+.f64 z (neg.f64 y))) |
(/.f64 (*.f64 2 (*.f64 (*.f64 x (+.f64 (neg.f64 y) z)) 8)) 16) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 x y))) |
(+.f64 (*.f64 z x) (*.f64 x (neg.f64 y))) |
(*.f64 x (+.f64 z (neg.f64 y))) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (+.f64 (neg.f64 y) z)) 8))) 32) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 x y))) |
(+.f64 (*.f64 z x) (*.f64 x (neg.f64 y))) |
(*.f64 x (+.f64 z (neg.f64 y))) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (+.f64 (neg.f64 y) z)) 8)))) 64) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 x y))) |
(+.f64 (*.f64 z x) (*.f64 x (neg.f64 y))) |
(*.f64 x (+.f64 z (neg.f64 y))) |
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (+.f64 (neg.f64 y) z)) 8)))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (+.f64 (neg.f64 y) z)) 8))))) 128) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 x y))) |
(+.f64 (*.f64 z x) (*.f64 x (neg.f64 y))) |
(*.f64 x (+.f64 z (neg.f64 y))) |
(pow.f64 (*.f64 x (+.f64 (neg.f64 y) z)) 1) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 x y))) |
(+.f64 (*.f64 z x) (*.f64 x (neg.f64 y))) |
(*.f64 x (+.f64 z (neg.f64 y))) |
Compiled 1704 to 747 computations (56.2% saved)
9 alts after pruning (5 fresh and 4 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 171 | 4 | 175 |
| Fresh | 0 | 1 | 1 |
| Picked | 0 | 1 | 1 |
| Done | 2 | 3 | 5 |
| Total | 173 | 9 | 182 |
| Status | Error | Program |
|---|---|---|
| ▶ | 0.0b | (+.f64 (*.f64 (-.f64 z y) x) y) |
| ✓ | 0.0b | (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z)) |
| ✓ | 28.9b | (+.f64 (*.f64 (neg.f64 y) x) (*.f64 x z)) |
| ▶ | 11.7b | (+.f64 y (*.f64 z x)) |
| ▶ | 28.9b | (*.f64 (-.f64 z y) x) |
| ✓ | 39.8b | (*.f64 z x) |
| ✓ | 23.9b | (*.f64 y (-.f64 1 x)) |
| ▶ | 51.7b | (*.f64 y (neg.f64 x)) |
| 34.7b | y |
Compiled 74 to 49 computations (33.8% saved)
Compiled 11 to 5 computations (54.5% saved)
Found 1 expressions with local error:
| New | Error | Program |
|---|---|---|
| ✓ | 0.0b | (*.f64 (-.f64 z y) x) |
Compiled 14 to 5 computations (64.3% saved)
9 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 0.0ms | z | @ | 0 | (*.f64 (-.f64 z y) x) |
| 0.0ms | z | @ | -inf | (*.f64 (-.f64 z y) x) |
| 0.0ms | z | @ | inf | (*.f64 (-.f64 z y) x) |
| 0.0ms | y | @ | inf | (*.f64 (-.f64 z y) x) |
| 0.0ms | y | @ | -inf | (*.f64 (-.f64 z y) x) |
| 1× | batch-egg-rewrite |
| 1388× | rational.json-1 |
| 1388× | rational.json-2 |
| 1388× | rational.json-3 |
| 1384× | exponential.json-3 |
| 1384× | rational.json-4 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 7 | 13 |
| 1 | 45 | 13 |
| 2 | 103 | 13 |
| 3 | 223 | 13 |
| 4 | 410 | 13 |
| 5 | 943 | 13 |
| 6 | 2572 | 13 |
| 7 | 5004 | 13 |
| 8 | 6579 | 13 |
| 1× | node limit |
| Inputs |
|---|
(*.f64 (-.f64 z y) x) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (-.f64 z y) x) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (-.f64 z y) x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -1 (-.f64 1 (*.f64 (+.f64 x x) (*.f64 (-.f64 y z) 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -1 (-.f64 1 (*.f64 x (-.f64 y z))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (-.f64 z y) (*.f64 x 1/2)) (*.f64 (-.f64 z y) (*.f64 x 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (-.f64 z y) x) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (*.f64 (+.f64 x x) (*.f64 (-.f64 y z) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (*.f64 x (-.f64 y z)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (+.f64 x x) (*.f64 (-.f64 y z) 1/2)) (*.f64 2 (*.f64 (+.f64 x x) (*.f64 (-.f64 y z) 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 x (-.f64 y z)) (*.f64 (-.f64 z y) (*.f64 x -2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 z y) x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 z y) (+.f64 x x)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 z y) (*.f64 x 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 z y) (*.f64 x 8)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (-.f64 z y) (*.f64 x 8))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (-.f64 z y) (*.f64 x 8)))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 x x) (*.f64 (-.f64 y z) 1/2)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (-.f64 y z)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (-.f64 z y) (*.f64 x 8))))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (-.f64 z y) (*.f64 x 8)))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (-.f64 z y) x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (*.f64 (+.f64 x x) (*.f64 (-.f64 y z) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (*.f64 x (-.f64 y z))))))) |
| 1× | egg-herbie |
| 2446× | rational.json-simplify-2 |
| 1650× | rational.json-simplify-35 |
| 1114× | rational.json-simplify-43 |
| 950× | rational.json-simplify-52 |
| 850× | rational.json-simplify-1 |
Useful iterations: 2 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 68 | 833 |
| 1 | 169 | 791 |
| 2 | 338 | 677 |
| 3 | 749 | 677 |
| 4 | 2546 | 677 |
| 5 | 4295 | 677 |
| 6 | 4963 | 677 |
| 7 | 5290 | 677 |
| 8 | 5533 | 677 |
| 9 | 5819 | 677 |
| 10 | 6998 | 677 |
| 1× | node limit |
| Inputs |
|---|
(*.f64 -1 (*.f64 y x)) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x))) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x))) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x))) |
(*.f64 z x) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x))) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x))) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x))) |
(*.f64 z x) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x))) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x))) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x))) |
(*.f64 z x) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x))) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x))) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x))) |
(*.f64 -1 (*.f64 y x)) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x))) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x))) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x))) |
(*.f64 -1 (*.f64 y x)) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x))) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x))) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x))) |
(+.f64 (*.f64 (-.f64 z y) x) 0) |
(+.f64 0 (*.f64 (-.f64 z y) x)) |
(+.f64 -1 (-.f64 1 (*.f64 (+.f64 x x) (*.f64 (-.f64 y z) 1/2)))) |
(+.f64 -1 (-.f64 1 (*.f64 x (-.f64 y z)))) |
(+.f64 (*.f64 (-.f64 z y) (*.f64 x 1/2)) (*.f64 (-.f64 z y) (*.f64 x 1/2))) |
(-.f64 (*.f64 (-.f64 z y) x) 0) |
(-.f64 0 (*.f64 (+.f64 x x) (*.f64 (-.f64 y z) 1/2))) |
(-.f64 0 (*.f64 x (-.f64 y z))) |
(-.f64 (*.f64 (+.f64 x x) (*.f64 (-.f64 y z) 1/2)) (*.f64 2 (*.f64 (+.f64 x x) (*.f64 (-.f64 y z) 1/2)))) |
(-.f64 (*.f64 x (-.f64 y z)) (*.f64 (-.f64 z y) (*.f64 x -2))) |
(/.f64 (*.f64 (-.f64 z y) x) 1) |
(/.f64 (*.f64 (-.f64 z y) (+.f64 x x)) 2) |
(/.f64 (*.f64 (-.f64 z y) (*.f64 x 4)) 4) |
(/.f64 (*.f64 (-.f64 z y) (*.f64 x 8)) 8) |
(/.f64 (*.f64 2 (*.f64 (-.f64 z y) (*.f64 x 8))) 16) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (-.f64 z y) (*.f64 x 8)))) 32) |
(/.f64 (*.f64 (+.f64 x x) (*.f64 (-.f64 y z) 1/2)) -1) |
(/.f64 (*.f64 x (-.f64 y z)) -1) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (-.f64 z y) (*.f64 x 8))))) 64) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (-.f64 z y) (*.f64 x 8)))))) 128) |
(pow.f64 (*.f64 (-.f64 z y) x) 1) |
(neg.f64 (*.f64 (+.f64 x x) (*.f64 (-.f64 y z) 1/2))) |
(neg.f64 (*.f64 x (-.f64 y z))) |
| Outputs |
|---|
(*.f64 -1 (*.f64 y x)) |
(*.f64 y (neg.f64 x)) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x))) |
(+.f64 (*.f64 -1 (*.f64 y x)) (*.f64 x z)) |
(+.f64 (*.f64 y (neg.f64 x)) (*.f64 x z)) |
(*.f64 x (+.f64 z (neg.f64 y))) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x))) |
(+.f64 (*.f64 -1 (*.f64 y x)) (*.f64 x z)) |
(+.f64 (*.f64 y (neg.f64 x)) (*.f64 x z)) |
(*.f64 x (+.f64 z (neg.f64 y))) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x))) |
(+.f64 (*.f64 -1 (*.f64 y x)) (*.f64 x z)) |
(+.f64 (*.f64 y (neg.f64 x)) (*.f64 x z)) |
(*.f64 x (+.f64 z (neg.f64 y))) |
(*.f64 z x) |
(*.f64 x z) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x))) |
(+.f64 (*.f64 -1 (*.f64 y x)) (*.f64 x z)) |
(+.f64 (*.f64 y (neg.f64 x)) (*.f64 x z)) |
(*.f64 x (+.f64 z (neg.f64 y))) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x))) |
(+.f64 (*.f64 -1 (*.f64 y x)) (*.f64 x z)) |
(+.f64 (*.f64 y (neg.f64 x)) (*.f64 x z)) |
(*.f64 x (+.f64 z (neg.f64 y))) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x))) |
(+.f64 (*.f64 -1 (*.f64 y x)) (*.f64 x z)) |
(+.f64 (*.f64 y (neg.f64 x)) (*.f64 x z)) |
(*.f64 x (+.f64 z (neg.f64 y))) |
(*.f64 z x) |
(*.f64 x z) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x))) |
(+.f64 (*.f64 -1 (*.f64 y x)) (*.f64 x z)) |
(+.f64 (*.f64 y (neg.f64 x)) (*.f64 x z)) |
(*.f64 x (+.f64 z (neg.f64 y))) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x))) |
(+.f64 (*.f64 -1 (*.f64 y x)) (*.f64 x z)) |
(+.f64 (*.f64 y (neg.f64 x)) (*.f64 x z)) |
(*.f64 x (+.f64 z (neg.f64 y))) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x))) |
(+.f64 (*.f64 -1 (*.f64 y x)) (*.f64 x z)) |
(+.f64 (*.f64 y (neg.f64 x)) (*.f64 x z)) |
(*.f64 x (+.f64 z (neg.f64 y))) |
(*.f64 z x) |
(*.f64 x z) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x))) |
(+.f64 (*.f64 -1 (*.f64 y x)) (*.f64 x z)) |
(+.f64 (*.f64 y (neg.f64 x)) (*.f64 x z)) |
(*.f64 x (+.f64 z (neg.f64 y))) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x))) |
(+.f64 (*.f64 -1 (*.f64 y x)) (*.f64 x z)) |
(+.f64 (*.f64 y (neg.f64 x)) (*.f64 x z)) |
(*.f64 x (+.f64 z (neg.f64 y))) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x))) |
(+.f64 (*.f64 -1 (*.f64 y x)) (*.f64 x z)) |
(+.f64 (*.f64 y (neg.f64 x)) (*.f64 x z)) |
(*.f64 x (+.f64 z (neg.f64 y))) |
(*.f64 -1 (*.f64 y x)) |
(*.f64 y (neg.f64 x)) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x))) |
(+.f64 (*.f64 -1 (*.f64 y x)) (*.f64 x z)) |
(+.f64 (*.f64 y (neg.f64 x)) (*.f64 x z)) |
(*.f64 x (+.f64 z (neg.f64 y))) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x))) |
(+.f64 (*.f64 -1 (*.f64 y x)) (*.f64 x z)) |
(+.f64 (*.f64 y (neg.f64 x)) (*.f64 x z)) |
(*.f64 x (+.f64 z (neg.f64 y))) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x))) |
(+.f64 (*.f64 -1 (*.f64 y x)) (*.f64 x z)) |
(+.f64 (*.f64 y (neg.f64 x)) (*.f64 x z)) |
(*.f64 x (+.f64 z (neg.f64 y))) |
(*.f64 -1 (*.f64 y x)) |
(*.f64 y (neg.f64 x)) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x))) |
(+.f64 (*.f64 -1 (*.f64 y x)) (*.f64 x z)) |
(+.f64 (*.f64 y (neg.f64 x)) (*.f64 x z)) |
(*.f64 x (+.f64 z (neg.f64 y))) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x))) |
(+.f64 (*.f64 -1 (*.f64 y x)) (*.f64 x z)) |
(+.f64 (*.f64 y (neg.f64 x)) (*.f64 x z)) |
(*.f64 x (+.f64 z (neg.f64 y))) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x))) |
(+.f64 (*.f64 -1 (*.f64 y x)) (*.f64 x z)) |
(+.f64 (*.f64 y (neg.f64 x)) (*.f64 x z)) |
(*.f64 x (+.f64 z (neg.f64 y))) |
(+.f64 (*.f64 (-.f64 z y) x) 0) |
(*.f64 x (-.f64 z y)) |
(+.f64 0 (*.f64 (-.f64 z y) x)) |
(*.f64 x (-.f64 z y)) |
(+.f64 -1 (-.f64 1 (*.f64 (+.f64 x x) (*.f64 (-.f64 y z) 1/2)))) |
(*.f64 x (-.f64 z y)) |
(+.f64 -1 (-.f64 1 (*.f64 x (-.f64 y z)))) |
(*.f64 x (-.f64 z y)) |
(+.f64 (*.f64 (-.f64 z y) (*.f64 x 1/2)) (*.f64 (-.f64 z y) (*.f64 x 1/2))) |
(*.f64 x (-.f64 z y)) |
(-.f64 (*.f64 (-.f64 z y) x) 0) |
(*.f64 x (-.f64 z y)) |
(-.f64 0 (*.f64 (+.f64 x x) (*.f64 (-.f64 y z) 1/2))) |
(*.f64 x (-.f64 z y)) |
(-.f64 0 (*.f64 x (-.f64 y z))) |
(*.f64 x (-.f64 z y)) |
(-.f64 (*.f64 (+.f64 x x) (*.f64 (-.f64 y z) 1/2)) (*.f64 2 (*.f64 (+.f64 x x) (*.f64 (-.f64 y z) 1/2)))) |
(*.f64 x (-.f64 z y)) |
(-.f64 (*.f64 x (-.f64 y z)) (*.f64 (-.f64 z y) (*.f64 x -2))) |
(-.f64 (*.f64 x (-.f64 y z)) (*.f64 x (*.f64 -2 (-.f64 z y)))) |
(-.f64 (*.f64 x (-.f64 y z)) (*.f64 x (*.f64 (-.f64 z y) -2))) |
(*.f64 x (-.f64 (-.f64 y z) (*.f64 (-.f64 z y) -2))) |
(/.f64 (*.f64 (-.f64 z y) x) 1) |
(*.f64 x (-.f64 z y)) |
(/.f64 (*.f64 (-.f64 z y) (+.f64 x x)) 2) |
(*.f64 x (-.f64 z y)) |
(/.f64 (*.f64 (-.f64 z y) (*.f64 x 4)) 4) |
(*.f64 x (-.f64 z y)) |
(/.f64 (*.f64 (-.f64 z y) (*.f64 x 8)) 8) |
(*.f64 x (-.f64 z y)) |
(/.f64 (*.f64 2 (*.f64 (-.f64 z y) (*.f64 x 8))) 16) |
(*.f64 x (-.f64 z y)) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (-.f64 z y) (*.f64 x 8)))) 32) |
(*.f64 x (-.f64 z y)) |
(/.f64 (*.f64 (+.f64 x x) (*.f64 (-.f64 y z) 1/2)) -1) |
(*.f64 x (-.f64 z y)) |
(/.f64 (*.f64 x (-.f64 y z)) -1) |
(*.f64 x (-.f64 z y)) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (-.f64 z y) (*.f64 x 8))))) 64) |
(*.f64 x (-.f64 z y)) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (-.f64 z y) (*.f64 x 8)))))) 128) |
(*.f64 x (-.f64 z y)) |
(pow.f64 (*.f64 (-.f64 z y) x) 1) |
(*.f64 x (-.f64 z y)) |
(neg.f64 (*.f64 (+.f64 x x) (*.f64 (-.f64 y z) 1/2))) |
(*.f64 x (-.f64 z y)) |
(neg.f64 (*.f64 x (-.f64 y z))) |
(*.f64 x (-.f64 z y)) |
Found 1 expressions with local error:
| New | Error | Program |
|---|---|---|
| ✓ | 0.0b | (+.f64 y (*.f64 z x)) |
Compiled 14 to 5 computations (64.3% saved)
9 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 1.0ms | z | @ | inf | (+.f64 y (*.f64 z x)) |
| 0.0ms | y | @ | 0 | (+.f64 y (*.f64 z x)) |
| 0.0ms | x | @ | -inf | (+.f64 y (*.f64 z x)) |
| 0.0ms | z | @ | -inf | (+.f64 y (*.f64 z x)) |
| 0.0ms | y | @ | -inf | (+.f64 y (*.f64 z x)) |
| 1× | batch-egg-rewrite |
| 1524× | rational.json-simplify-35 |
| 1424× | rational.json-simplify-1 |
| 1386× | exponential.json-3 |
| 1386× | rational.json-1 |
| 1386× | rational.json-2 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 7 | 13 |
| 1 | 46 | 13 |
| 2 | 102 | 13 |
| 3 | 214 | 13 |
| 4 | 397 | 13 |
| 5 | 896 | 13 |
| 6 | 2312 | 13 |
| 7 | 4174 | 13 |
| 8 | 5358 | 13 |
| 9 | 6869 | 13 |
| 10 | 7680 | 13 |
| 11 | 7680 | 13 |
| 1× | node limit |
| Inputs |
|---|
(+.f64 y (*.f64 z x)) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 y (*.f64 z x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 y (*.f64 z x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 y (*.f64 z x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (+.f64 y (*.f64 z x)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 y (*.f64 z x)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (*.f64 (+.f64 y (*.f64 z x)) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 y (*.f64 z x)) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 y (*.f64 z x)) 8) 1/8)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (+.f64 y (*.f64 z x)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 y (*.f64 z x)) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (+.f64 y (*.f64 z x)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 y (*.f64 z x)) 1/4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/8 (*.f64 (+.f64 y (*.f64 z x)) 8))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 y (*.f64 z x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 y (*.f64 z x)) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 y (*.f64 z x)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 y (*.f64 z x)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 y (*.f64 z x)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y (*.f64 z x)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y (*.f64 z x)) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y (*.f64 z x)) 8))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y (*.f64 z x)) 8)))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 y (*.f64 z x)) 1))))) |
| 1× | egg-herbie |
| 5824× | rational.json-simplify-51 |
| 3524× | rational.json-simplify-35 |
| 1364× | rational.json-simplify-49 |
| 1152× | rational.json-simplify-2 |
| 1114× | rational.json-simplify-1 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 54 | 689 |
| 1 | 121 | 689 |
| 2 | 420 | 689 |
| 3 | 1176 | 689 |
| 4 | 1869 | 689 |
| 5 | 2750 | 689 |
| 6 | 3233 | 689 |
| 7 | 3307 | 689 |
| 8 | 3355 | 689 |
| 9 | 3387 | 689 |
| 10 | 3419 | 689 |
| 11 | 3451 | 689 |
| 12 | 3483 | 689 |
| 13 | 3515 | 689 |
| 14 | 3547 | 689 |
| 15 | 3579 | 689 |
| 16 | 3611 | 689 |
| 17 | 3643 | 689 |
| 18 | 3675 | 689 |
| 19 | 4583 | 689 |
| 20 | 4842 | 689 |
| 21 | 4935 | 689 |
| 22 | 5024 | 689 |
| 23 | 5111 | 689 |
| 24 | 5197 | 689 |
| 25 | 5410 | 689 |
| 26 | 5410 | 689 |
| 27 | 5496 | 689 |
| 28 | 5582 | 689 |
| 29 | 5668 | 689 |
| 30 | 5754 | 689 |
| 31 | 5840 | 689 |
| 32 | 5926 | 689 |
| 33 | 6012 | 689 |
| 34 | 6098 | 689 |
| 35 | 6184 | 689 |
| 1× | node limit |
| Inputs |
|---|
(*.f64 z x) |
(+.f64 (*.f64 z x) y) |
(+.f64 (*.f64 z x) y) |
(+.f64 (*.f64 z x) y) |
y |
(+.f64 (*.f64 z x) y) |
(+.f64 (*.f64 z x) y) |
(+.f64 (*.f64 z x) y) |
y |
(+.f64 (*.f64 z x) y) |
(+.f64 (*.f64 z x) y) |
(+.f64 (*.f64 z x) y) |
y |
(+.f64 (*.f64 z x) y) |
(+.f64 (*.f64 z x) y) |
(+.f64 (*.f64 z x) y) |
(*.f64 z x) |
(+.f64 (*.f64 z x) y) |
(+.f64 (*.f64 z x) y) |
(+.f64 (*.f64 z x) y) |
(*.f64 z x) |
(+.f64 (*.f64 z x) y) |
(+.f64 (*.f64 z x) y) |
(+.f64 (*.f64 z x) y) |
y |
(+.f64 (*.f64 z x) y) |
(+.f64 (*.f64 z x) y) |
(+.f64 (*.f64 z x) y) |
(*.f64 z x) |
(+.f64 (*.f64 z x) y) |
(+.f64 (*.f64 z x) y) |
(+.f64 (*.f64 z x) y) |
(*.f64 z x) |
(+.f64 (*.f64 z x) y) |
(+.f64 (*.f64 z x) y) |
(+.f64 (*.f64 z x) y) |
(-.f64 (+.f64 y (*.f64 z x)) 0) |
(*.f64 (+.f64 y (*.f64 z x)) 1) |
(*.f64 1 (+.f64 y (*.f64 z x))) |
(*.f64 2 (*.f64 (+.f64 y (*.f64 z x)) 1/2)) |
(*.f64 (*.f64 (+.f64 y (*.f64 z x)) 2) 1/2) |
(*.f64 4 (*.f64 (+.f64 y (*.f64 z x)) 1/4)) |
(*.f64 (*.f64 (+.f64 y (*.f64 z x)) 4) 1/4) |
(*.f64 (*.f64 (+.f64 y (*.f64 z x)) 8) 1/8) |
(*.f64 1/2 (*.f64 (+.f64 y (*.f64 z x)) 2)) |
(*.f64 (*.f64 (+.f64 y (*.f64 z x)) 1/2) 2) |
(*.f64 1/4 (*.f64 (+.f64 y (*.f64 z x)) 4)) |
(*.f64 (*.f64 (+.f64 y (*.f64 z x)) 1/4) 4) |
(*.f64 1/8 (*.f64 (+.f64 y (*.f64 z x)) 8)) |
(/.f64 (+.f64 y (*.f64 z x)) 1) |
(/.f64 (*.f64 (+.f64 y (*.f64 z x)) 2) 2) |
(/.f64 (*.f64 (+.f64 y (*.f64 z x)) 4) 4) |
(/.f64 (*.f64 (+.f64 y (*.f64 z x)) 8) 8) |
(/.f64 (*.f64 2 (*.f64 (+.f64 y (*.f64 z x)) 8)) 16) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y (*.f64 z x)) 8))) 32) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y (*.f64 z x)) 8)))) 64) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y (*.f64 z x)) 8))))) 128) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y (*.f64 z x)) 8)))))) 256) |
(pow.f64 (+.f64 y (*.f64 z x)) 1) |
| Outputs |
|---|
(*.f64 z x) |
(+.f64 (*.f64 z x) y) |
(+.f64 (*.f64 z x) y) |
(+.f64 (*.f64 z x) y) |
y |
(+.f64 (*.f64 z x) y) |
(+.f64 (*.f64 z x) y) |
(+.f64 (*.f64 z x) y) |
y |
(+.f64 (*.f64 z x) y) |
(+.f64 (*.f64 z x) y) |
(+.f64 (*.f64 z x) y) |
y |
(+.f64 (*.f64 z x) y) |
(+.f64 (*.f64 z x) y) |
(+.f64 (*.f64 z x) y) |
(*.f64 z x) |
(+.f64 (*.f64 z x) y) |
(+.f64 (*.f64 z x) y) |
(+.f64 (*.f64 z x) y) |
(*.f64 z x) |
(+.f64 (*.f64 z x) y) |
(+.f64 (*.f64 z x) y) |
(+.f64 (*.f64 z x) y) |
y |
(+.f64 (*.f64 z x) y) |
(+.f64 (*.f64 z x) y) |
(+.f64 (*.f64 z x) y) |
(*.f64 z x) |
(+.f64 (*.f64 z x) y) |
(+.f64 (*.f64 z x) y) |
(+.f64 (*.f64 z x) y) |
(*.f64 z x) |
(+.f64 (*.f64 z x) y) |
(+.f64 (*.f64 z x) y) |
(+.f64 (*.f64 z x) y) |
(-.f64 (+.f64 y (*.f64 z x)) 0) |
(+.f64 (*.f64 z x) y) |
(*.f64 (+.f64 y (*.f64 z x)) 1) |
(+.f64 (*.f64 z x) y) |
(*.f64 1 (+.f64 y (*.f64 z x))) |
(+.f64 (*.f64 z x) y) |
(*.f64 2 (*.f64 (+.f64 y (*.f64 z x)) 1/2)) |
(+.f64 (*.f64 z x) y) |
(*.f64 (*.f64 (+.f64 y (*.f64 z x)) 2) 1/2) |
(+.f64 (*.f64 z x) y) |
(*.f64 4 (*.f64 (+.f64 y (*.f64 z x)) 1/4)) |
(+.f64 (*.f64 z x) y) |
(*.f64 (*.f64 (+.f64 y (*.f64 z x)) 4) 1/4) |
(+.f64 (*.f64 z x) y) |
(*.f64 (*.f64 (+.f64 y (*.f64 z x)) 8) 1/8) |
(+.f64 (*.f64 z x) y) |
(*.f64 1/2 (*.f64 (+.f64 y (*.f64 z x)) 2)) |
(+.f64 (*.f64 z x) y) |
(*.f64 (*.f64 (+.f64 y (*.f64 z x)) 1/2) 2) |
(+.f64 (*.f64 z x) y) |
(*.f64 1/4 (*.f64 (+.f64 y (*.f64 z x)) 4)) |
(+.f64 (*.f64 z x) y) |
(*.f64 (*.f64 (+.f64 y (*.f64 z x)) 1/4) 4) |
(+.f64 (*.f64 z x) y) |
(*.f64 1/8 (*.f64 (+.f64 y (*.f64 z x)) 8)) |
(+.f64 (*.f64 z x) y) |
(/.f64 (+.f64 y (*.f64 z x)) 1) |
(+.f64 (*.f64 z x) y) |
(/.f64 (*.f64 (+.f64 y (*.f64 z x)) 2) 2) |
(+.f64 (*.f64 z x) y) |
(/.f64 (*.f64 (+.f64 y (*.f64 z x)) 4) 4) |
(+.f64 (*.f64 z x) y) |
(/.f64 (*.f64 (+.f64 y (*.f64 z x)) 8) 8) |
(+.f64 (*.f64 z x) y) |
(/.f64 (*.f64 2 (*.f64 (+.f64 y (*.f64 z x)) 8)) 16) |
(+.f64 (*.f64 z x) y) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y (*.f64 z x)) 8))) 32) |
(+.f64 (*.f64 z x) y) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y (*.f64 z x)) 8)))) 64) |
(+.f64 (*.f64 z x) y) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y (*.f64 z x)) 8))))) 128) |
(+.f64 (*.f64 z x) y) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y (*.f64 z x)) 8)))))) 256) |
(+.f64 (*.f64 z x) y) |
(pow.f64 (+.f64 y (*.f64 z x)) 1) |
(+.f64 (*.f64 z x) y) |
Found 2 expressions with local error:
| New | Error | Program |
|---|---|---|
| ✓ | 0.0b | (+.f64 (*.f64 (-.f64 z y) x) y) |
| 0.0b | (*.f64 (-.f64 z y) x) |
Compiled 21 to 6 computations (71.4% saved)
9 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 1.0ms | z | @ | inf | (+.f64 (*.f64 (-.f64 z y) x) y) |
| 0.0ms | z | @ | 0 | (+.f64 (*.f64 (-.f64 z y) x) y) |
| 0.0ms | z | @ | -inf | (+.f64 (*.f64 (-.f64 z y) x) y) |
| 0.0ms | y | @ | -inf | (+.f64 (*.f64 (-.f64 z y) x) y) |
| 0.0ms | y | @ | inf | (+.f64 (*.f64 (-.f64 z y) x) y) |
| 1× | batch-egg-rewrite |
| 1812× | rational.json-1 |
| 1576× | rational.json-simplify-35 |
| 1284× | rational.json-2 |
| 1284× | rational.json-3 |
| 1276× | exponential.json-3 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 8 | 19 |
| 1 | 52 | 19 |
| 2 | 114 | 19 |
| 3 | 248 | 19 |
| 4 | 474 | 19 |
| 5 | 1115 | 19 |
| 6 | 3171 | 19 |
| 7 | 5879 | 19 |
| 8 | 7874 | 19 |
| 1× | node limit |
| Inputs |
|---|
(+.f64 (*.f64 (-.f64 z y) x) y) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 y (*.f64 (-.f64 z y) x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 y (*.f64 (-.f64 z y) x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 y (*.f64 (-.f64 z y) x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (+.f64 y (*.f64 (-.f64 z y) x)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 y (*.f64 (-.f64 z y) x)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (*.f64 (+.f64 y (*.f64 (-.f64 z y) x)) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 y (*.f64 (-.f64 z y) x)) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 y (*.f64 (-.f64 z y) x)) 8) 1/8)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (+.f64 y (*.f64 (-.f64 z y) x)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 y (*.f64 (-.f64 z y) x)) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (+.f64 y (*.f64 (-.f64 z y) x)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 y (*.f64 (-.f64 z y) x)) 1/4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 y (*.f64 (-.f64 z y) x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 y (*.f64 (-.f64 z y) x)) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 y (*.f64 (-.f64 z y) x)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 y (*.f64 (-.f64 z y) x)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 y (*.f64 (-.f64 z y) x)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y (*.f64 (-.f64 z y) x)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y (*.f64 (-.f64 z y) x)) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y (*.f64 (-.f64 z y) x)) 8)))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y (*.f64 (-.f64 z y) x)) 8))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 y (*.f64 (-.f64 z y) x)) 1))))) |
| 1× | egg-herbie |
| 3494× | rational.json-simplify-35 |
| 2474× | rational.json-simplify-2 |
| 1398× | rational.json-simplify-49 |
| 1240× | rational.json-simplify-1 |
| 1116× | rational.json-simplify-51 |
Useful iterations: 3 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 64 | 1062 |
| 1 | 138 | 1020 |
| 2 | 375 | 966 |
| 3 | 1008 | 922 |
| 4 | 1575 | 922 |
| 5 | 2994 | 922 |
| 6 | 3849 | 922 |
| 7 | 3924 | 922 |
| 8 | 3970 | 922 |
| 9 | 4011 | 922 |
| 10 | 4505 | 922 |
| 11 | 4633 | 922 |
| 12 | 4731 | 922 |
| 13 | 4803 | 922 |
| 14 | 4859 | 922 |
| 15 | 4915 | 922 |
| 16 | 4971 | 922 |
| 17 | 5027 | 922 |
| 18 | 5083 | 922 |
| 19 | 6015 | 922 |
| 20 | 6740 | 922 |
| 21 | 6941 | 922 |
| 22 | 6994 | 922 |
| 23 | 7046 | 922 |
| 24 | 7098 | 922 |
| 25 | 7150 | 922 |
| 26 | 7202 | 922 |
| 27 | 7254 | 922 |
| 28 | 7254 | 922 |
| 29 | 7306 | 922 |
| 30 | 7358 | 922 |
| 31 | 7410 | 922 |
| 32 | 7462 | 922 |
| 33 | 7514 | 922 |
| 34 | 7566 | 922 |
| 35 | 7618 | 922 |
| 36 | 7670 | 922 |
| 37 | 7722 | 922 |
| 38 | 7774 | 922 |
| 39 | 7826 | 922 |
| 40 | 7878 | 922 |
| 41 | 7930 | 922 |
| 42 | 7982 | 922 |
| 1× | node limit |
| Inputs |
|---|
(+.f64 y (*.f64 -1 (*.f64 y x))) |
(+.f64 (*.f64 z x) (+.f64 y (*.f64 -1 (*.f64 y x)))) |
(+.f64 (*.f64 z x) (+.f64 y (*.f64 -1 (*.f64 y x)))) |
(+.f64 (*.f64 z x) (+.f64 y (*.f64 -1 (*.f64 y x)))) |
(*.f64 z x) |
(+.f64 (*.f64 z x) (+.f64 y (*.f64 -1 (*.f64 y x)))) |
(+.f64 (*.f64 z x) (+.f64 y (*.f64 -1 (*.f64 y x)))) |
(+.f64 (*.f64 z x) (+.f64 y (*.f64 -1 (*.f64 y x)))) |
(*.f64 z x) |
(+.f64 (*.f64 z x) (+.f64 y (*.f64 -1 (*.f64 y x)))) |
(+.f64 (*.f64 z x) (+.f64 y (*.f64 -1 (*.f64 y x)))) |
(+.f64 (*.f64 z x) (+.f64 y (*.f64 -1 (*.f64 y x)))) |
(*.f64 z x) |
(+.f64 (*.f64 z x) (*.f64 y (+.f64 1 (*.f64 -1 x)))) |
(+.f64 (*.f64 z x) (*.f64 y (+.f64 1 (*.f64 -1 x)))) |
(+.f64 (*.f64 z x) (*.f64 y (+.f64 1 (*.f64 -1 x)))) |
(*.f64 y (+.f64 1 (*.f64 -1 x))) |
(+.f64 (*.f64 z x) (*.f64 y (+.f64 1 (*.f64 -1 x)))) |
(+.f64 (*.f64 z x) (*.f64 y (+.f64 1 (*.f64 -1 x)))) |
(+.f64 (*.f64 z x) (*.f64 y (+.f64 1 (*.f64 -1 x)))) |
(*.f64 -1 (*.f64 y (-.f64 x 1))) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y (-.f64 x 1)))) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y (-.f64 x 1)))) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y (-.f64 x 1)))) |
y |
(*.f64 (-.f64 z y) x) |
(*.f64 (-.f64 z y) x) |
(-.f64 (+.f64 y (*.f64 (-.f64 z y) x)) 0) |
(*.f64 (+.f64 y (*.f64 (-.f64 z y) x)) 1) |
(*.f64 1 (+.f64 y (*.f64 (-.f64 z y) x))) |
(*.f64 2 (*.f64 (+.f64 y (*.f64 (-.f64 z y) x)) 1/2)) |
(*.f64 (*.f64 (+.f64 y (*.f64 (-.f64 z y) x)) 2) 1/2) |
(*.f64 4 (*.f64 (+.f64 y (*.f64 (-.f64 z y) x)) 1/4)) |
(*.f64 (*.f64 (+.f64 y (*.f64 (-.f64 z y) x)) 4) 1/4) |
(*.f64 (*.f64 (+.f64 y (*.f64 (-.f64 z y) x)) 8) 1/8) |
(*.f64 1/2 (*.f64 (+.f64 y (*.f64 (-.f64 z y) x)) 2)) |
(*.f64 (*.f64 (+.f64 y (*.f64 (-.f64 z y) x)) 1/2) 2) |
(*.f64 1/4 (*.f64 (+.f64 y (*.f64 (-.f64 z y) x)) 4)) |
(*.f64 (*.f64 (+.f64 y (*.f64 (-.f64 z y) x)) 1/4) 4) |
(/.f64 (+.f64 y (*.f64 (-.f64 z y) x)) 1) |
(/.f64 (*.f64 (+.f64 y (*.f64 (-.f64 z y) x)) 2) 2) |
(/.f64 (*.f64 (+.f64 y (*.f64 (-.f64 z y) x)) 4) 4) |
(/.f64 (*.f64 (+.f64 y (*.f64 (-.f64 z y) x)) 8) 8) |
(/.f64 (*.f64 2 (*.f64 (+.f64 y (*.f64 (-.f64 z y) x)) 8)) 16) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y (*.f64 (-.f64 z y) x)) 8))) 32) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y (*.f64 (-.f64 z y) x)) 8)))) 64) |
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y (*.f64 (-.f64 z y) x)) 8)))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y (*.f64 (-.f64 z y) x)) 8))))) 128) |
(pow.f64 (+.f64 y (*.f64 (-.f64 z y) x)) 1) |
| Outputs |
|---|
(+.f64 y (*.f64 -1 (*.f64 y x))) |
(+.f64 y (*.f64 y (*.f64 -1 x))) |
(+.f64 y (*.f64 y (neg.f64 x))) |
(+.f64 (*.f64 z x) (+.f64 y (*.f64 -1 (*.f64 y x)))) |
(+.f64 y (+.f64 (*.f64 y (*.f64 -1 x)) (*.f64 x z))) |
(+.f64 y (+.f64 (*.f64 y (neg.f64 x)) (*.f64 x z))) |
(+.f64 y (*.f64 x (+.f64 z (neg.f64 y)))) |
(+.f64 (*.f64 z x) (+.f64 y (*.f64 -1 (*.f64 y x)))) |
(+.f64 y (+.f64 (*.f64 y (*.f64 -1 x)) (*.f64 x z))) |
(+.f64 y (+.f64 (*.f64 y (neg.f64 x)) (*.f64 x z))) |
(+.f64 y (*.f64 x (+.f64 z (neg.f64 y)))) |
(+.f64 (*.f64 z x) (+.f64 y (*.f64 -1 (*.f64 y x)))) |
(+.f64 y (+.f64 (*.f64 y (*.f64 -1 x)) (*.f64 x z))) |
(+.f64 y (+.f64 (*.f64 y (neg.f64 x)) (*.f64 x z))) |
(+.f64 y (*.f64 x (+.f64 z (neg.f64 y)))) |
(*.f64 z x) |
(*.f64 x z) |
(+.f64 (*.f64 z x) (+.f64 y (*.f64 -1 (*.f64 y x)))) |
(+.f64 y (+.f64 (*.f64 y (*.f64 -1 x)) (*.f64 x z))) |
(+.f64 y (+.f64 (*.f64 y (neg.f64 x)) (*.f64 x z))) |
(+.f64 y (*.f64 x (+.f64 z (neg.f64 y)))) |
(+.f64 (*.f64 z x) (+.f64 y (*.f64 -1 (*.f64 y x)))) |
(+.f64 y (+.f64 (*.f64 y (*.f64 -1 x)) (*.f64 x z))) |
(+.f64 y (+.f64 (*.f64 y (neg.f64 x)) (*.f64 x z))) |
(+.f64 y (*.f64 x (+.f64 z (neg.f64 y)))) |
(+.f64 (*.f64 z x) (+.f64 y (*.f64 -1 (*.f64 y x)))) |
(+.f64 y (+.f64 (*.f64 y (*.f64 -1 x)) (*.f64 x z))) |
(+.f64 y (+.f64 (*.f64 y (neg.f64 x)) (*.f64 x z))) |
(+.f64 y (*.f64 x (+.f64 z (neg.f64 y)))) |
(*.f64 z x) |
(*.f64 x z) |
(+.f64 (*.f64 z x) (+.f64 y (*.f64 -1 (*.f64 y x)))) |
(+.f64 y (+.f64 (*.f64 y (*.f64 -1 x)) (*.f64 x z))) |
(+.f64 y (+.f64 (*.f64 y (neg.f64 x)) (*.f64 x z))) |
(+.f64 y (*.f64 x (+.f64 z (neg.f64 y)))) |
(+.f64 (*.f64 z x) (+.f64 y (*.f64 -1 (*.f64 y x)))) |
(+.f64 y (+.f64 (*.f64 y (*.f64 -1 x)) (*.f64 x z))) |
(+.f64 y (+.f64 (*.f64 y (neg.f64 x)) (*.f64 x z))) |
(+.f64 y (*.f64 x (+.f64 z (neg.f64 y)))) |
(+.f64 (*.f64 z x) (+.f64 y (*.f64 -1 (*.f64 y x)))) |
(+.f64 y (+.f64 (*.f64 y (*.f64 -1 x)) (*.f64 x z))) |
(+.f64 y (+.f64 (*.f64 y (neg.f64 x)) (*.f64 x z))) |
(+.f64 y (*.f64 x (+.f64 z (neg.f64 y)))) |
(*.f64 z x) |
(*.f64 x z) |
(+.f64 (*.f64 z x) (*.f64 y (+.f64 1 (*.f64 -1 x)))) |
(+.f64 (*.f64 x z) (*.f64 y (+.f64 1 (*.f64 -1 x)))) |
(+.f64 (*.f64 x z) (*.f64 y (+.f64 1 (neg.f64 x)))) |
(+.f64 (*.f64 x z) (*.f64 y (-.f64 1 x))) |
(+.f64 (*.f64 z x) (*.f64 y (+.f64 1 (*.f64 -1 x)))) |
(+.f64 (*.f64 x z) (*.f64 y (+.f64 1 (*.f64 -1 x)))) |
(+.f64 (*.f64 x z) (*.f64 y (+.f64 1 (neg.f64 x)))) |
(+.f64 (*.f64 x z) (*.f64 y (-.f64 1 x))) |
(+.f64 (*.f64 z x) (*.f64 y (+.f64 1 (*.f64 -1 x)))) |
(+.f64 (*.f64 x z) (*.f64 y (+.f64 1 (*.f64 -1 x)))) |
(+.f64 (*.f64 x z) (*.f64 y (+.f64 1 (neg.f64 x)))) |
(+.f64 (*.f64 x z) (*.f64 y (-.f64 1 x))) |
(*.f64 y (+.f64 1 (*.f64 -1 x))) |
(*.f64 y (+.f64 1 (neg.f64 x))) |
(*.f64 y (-.f64 1 x)) |
(+.f64 (*.f64 z x) (*.f64 y (+.f64 1 (*.f64 -1 x)))) |
(+.f64 (*.f64 x z) (*.f64 y (+.f64 1 (*.f64 -1 x)))) |
(+.f64 (*.f64 x z) (*.f64 y (+.f64 1 (neg.f64 x)))) |
(+.f64 (*.f64 x z) (*.f64 y (-.f64 1 x))) |
(+.f64 (*.f64 z x) (*.f64 y (+.f64 1 (*.f64 -1 x)))) |
(+.f64 (*.f64 x z) (*.f64 y (+.f64 1 (*.f64 -1 x)))) |
(+.f64 (*.f64 x z) (*.f64 y (+.f64 1 (neg.f64 x)))) |
(+.f64 (*.f64 x z) (*.f64 y (-.f64 1 x))) |
(+.f64 (*.f64 z x) (*.f64 y (+.f64 1 (*.f64 -1 x)))) |
(+.f64 (*.f64 x z) (*.f64 y (+.f64 1 (*.f64 -1 x)))) |
(+.f64 (*.f64 x z) (*.f64 y (+.f64 1 (neg.f64 x)))) |
(+.f64 (*.f64 x z) (*.f64 y (-.f64 1 x))) |
(*.f64 -1 (*.f64 y (-.f64 x 1))) |
(*.f64 y (+.f64 1 (*.f64 -1 x))) |
(*.f64 y (+.f64 1 (neg.f64 x))) |
(*.f64 y (-.f64 1 x)) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y (-.f64 x 1)))) |
(+.f64 (*.f64 x z) (*.f64 y (+.f64 1 (*.f64 -1 x)))) |
(+.f64 (*.f64 x z) (*.f64 y (+.f64 1 (neg.f64 x)))) |
(+.f64 (*.f64 x z) (*.f64 y (-.f64 1 x))) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y (-.f64 x 1)))) |
(+.f64 (*.f64 x z) (*.f64 y (+.f64 1 (*.f64 -1 x)))) |
(+.f64 (*.f64 x z) (*.f64 y (+.f64 1 (neg.f64 x)))) |
(+.f64 (*.f64 x z) (*.f64 y (-.f64 1 x))) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y (-.f64 x 1)))) |
(+.f64 (*.f64 x z) (*.f64 y (+.f64 1 (*.f64 -1 x)))) |
(+.f64 (*.f64 x z) (*.f64 y (+.f64 1 (neg.f64 x)))) |
(+.f64 (*.f64 x z) (*.f64 y (-.f64 1 x))) |
y |
(*.f64 (-.f64 z y) x) |
(*.f64 x (-.f64 z y)) |
(*.f64 (-.f64 z y) x) |
(*.f64 x (-.f64 z y)) |
(-.f64 (+.f64 y (*.f64 (-.f64 z y) x)) 0) |
(+.f64 y (*.f64 x (-.f64 z y))) |
(*.f64 (+.f64 y (*.f64 (-.f64 z y) x)) 1) |
(+.f64 y (*.f64 x (-.f64 z y))) |
(*.f64 1 (+.f64 y (*.f64 (-.f64 z y) x))) |
(+.f64 y (*.f64 x (-.f64 z y))) |
(*.f64 2 (*.f64 (+.f64 y (*.f64 (-.f64 z y) x)) 1/2)) |
(+.f64 y (*.f64 x (-.f64 z y))) |
(*.f64 (*.f64 (+.f64 y (*.f64 (-.f64 z y) x)) 2) 1/2) |
(+.f64 y (*.f64 x (-.f64 z y))) |
(*.f64 4 (*.f64 (+.f64 y (*.f64 (-.f64 z y) x)) 1/4)) |
(+.f64 y (*.f64 x (-.f64 z y))) |
(*.f64 (*.f64 (+.f64 y (*.f64 (-.f64 z y) x)) 4) 1/4) |
(+.f64 y (*.f64 x (-.f64 z y))) |
(*.f64 (*.f64 (+.f64 y (*.f64 (-.f64 z y) x)) 8) 1/8) |
(+.f64 y (*.f64 x (-.f64 z y))) |
(*.f64 1/2 (*.f64 (+.f64 y (*.f64 (-.f64 z y) x)) 2)) |
(+.f64 y (*.f64 x (-.f64 z y))) |
(*.f64 (*.f64 (+.f64 y (*.f64 (-.f64 z y) x)) 1/2) 2) |
(+.f64 y (*.f64 x (-.f64 z y))) |
(*.f64 1/4 (*.f64 (+.f64 y (*.f64 (-.f64 z y) x)) 4)) |
(+.f64 y (*.f64 x (-.f64 z y))) |
(*.f64 (*.f64 (+.f64 y (*.f64 (-.f64 z y) x)) 1/4) 4) |
(+.f64 y (*.f64 x (-.f64 z y))) |
(/.f64 (+.f64 y (*.f64 (-.f64 z y) x)) 1) |
(+.f64 y (*.f64 x (-.f64 z y))) |
(/.f64 (*.f64 (+.f64 y (*.f64 (-.f64 z y) x)) 2) 2) |
(+.f64 y (*.f64 x (-.f64 z y))) |
(/.f64 (*.f64 (+.f64 y (*.f64 (-.f64 z y) x)) 4) 4) |
(+.f64 y (*.f64 x (-.f64 z y))) |
(/.f64 (*.f64 (+.f64 y (*.f64 (-.f64 z y) x)) 8) 8) |
(+.f64 y (*.f64 x (-.f64 z y))) |
(/.f64 (*.f64 2 (*.f64 (+.f64 y (*.f64 (-.f64 z y) x)) 8)) 16) |
(+.f64 y (*.f64 x (-.f64 z y))) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y (*.f64 (-.f64 z y) x)) 8))) 32) |
(+.f64 y (*.f64 x (-.f64 z y))) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y (*.f64 (-.f64 z y) x)) 8)))) 64) |
(+.f64 y (*.f64 x (-.f64 z y))) |
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y (*.f64 (-.f64 z y) x)) 8)))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y (*.f64 (-.f64 z y) x)) 8))))) 128) |
(+.f64 y (*.f64 x (-.f64 z y))) |
(pow.f64 (+.f64 y (*.f64 (-.f64 z y) x)) 1) |
(+.f64 y (*.f64 x (-.f64 z y))) |
Compiled 1385 to 594 computations (57.1% saved)
9 alts after pruning (1 fresh and 8 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 139 | 0 | 139 |
| Fresh | 0 | 1 | 1 |
| Picked | 0 | 1 | 1 |
| Done | 0 | 7 | 7 |
| Total | 139 | 9 | 148 |
| Status | Error | Program |
|---|---|---|
| ✓ | 0.0b | (+.f64 (*.f64 (-.f64 z y) x) y) |
| ✓ | 0.0b | (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z)) |
| ✓ | 28.9b | (+.f64 (*.f64 (neg.f64 y) x) (*.f64 x z)) |
| ✓ | 11.7b | (+.f64 y (*.f64 z x)) |
| ✓ | 28.9b | (*.f64 (-.f64 z y) x) |
| ✓ | 39.8b | (*.f64 z x) |
| ✓ | 23.9b | (*.f64 y (-.f64 1 x)) |
| ✓ | 51.7b | (*.f64 y (neg.f64 x)) |
| 34.7b | y |
Compiled 74 to 49 computations (33.8% saved)
Compiled 3 to 3 computations (0% saved)
9 alts after pruning (1 fresh and 8 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 0 | 0 | 0 |
| Fresh | 0 | 1 | 1 |
| Picked | 0 | 0 | 0 |
| Done | 0 | 8 | 8 |
| Total | 0 | 9 | 9 |
| Status | Error | Program |
|---|---|---|
| ✓ | 0.0b | (+.f64 (*.f64 (-.f64 z y) x) y) |
| ✓ | 0.0b | (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z)) |
| ✓ | 28.9b | (+.f64 (*.f64 (neg.f64 y) x) (*.f64 x z)) |
| ✓ | 11.7b | (+.f64 y (*.f64 z x)) |
| ✓ | 28.9b | (*.f64 (-.f64 z y) x) |
| ✓ | 39.8b | (*.f64 z x) |
| ✓ | 23.9b | (*.f64 y (-.f64 1 x)) |
| ✓ | 51.7b | (*.f64 y (neg.f64 x)) |
| 34.7b | y |
Compiled 74 to 49 computations (33.8% saved)
| Inputs |
|---|
y |
(*.f64 z x) |
(*.f64 y (neg.f64 x)) |
(*.f64 y (-.f64 1 x)) |
(*.f64 (-.f64 z y) x) |
(+.f64 y (*.f64 z x)) |
(*.f64 (+.f64 z (neg.f64 y)) x) |
(+.f64 (*.f64 (-.f64 z y) x) y) |
(+.f64 y (*.f64 (+.f64 z (neg.f64 y)) x)) |
(+.f64 (*.f64 (neg.f64 y) x) (*.f64 x z)) |
(+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z)) |
| Outputs |
|---|
(+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z)) |
4 calls:
| 9.0ms | z |
| 7.0ms | y |
| 7.0ms | x |
| 7.0ms | (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z)) |
| Error | Segments | Branch |
|---|---|---|
| 0.0b | 1 | x |
| 0.0b | 1 | y |
| 0.0b | 1 | z |
| 0.0b | 1 | (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z)) |
Compiled 88 to 41 computations (53.4% saved)
| Inputs |
|---|
y |
(*.f64 z x) |
(*.f64 y (neg.f64 x)) |
(*.f64 y (-.f64 1 x)) |
(*.f64 (-.f64 z y) x) |
(+.f64 y (*.f64 z x)) |
(*.f64 (+.f64 z (neg.f64 y)) x) |
(+.f64 (*.f64 (-.f64 z y) x) y) |
(+.f64 y (*.f64 (+.f64 z (neg.f64 y)) x)) |
(+.f64 (*.f64 (neg.f64 y) x) (*.f64 x z)) |
| Outputs |
|---|
(+.f64 (*.f64 (-.f64 z y) x) y) |
3 calls:
| 7.0ms | z |
| 7.0ms | x |
| 6.0ms | y |
| Error | Segments | Branch |
|---|---|---|
| 0.0b | 1 | x |
| 0.0b | 1 | y |
| 0.0b | 1 | z |
Compiled 67 to 29 computations (56.7% saved)
| Inputs |
|---|
y |
(*.f64 z x) |
(*.f64 y (neg.f64 x)) |
(*.f64 y (-.f64 1 x)) |
(*.f64 (-.f64 z y) x) |
(+.f64 y (*.f64 z x)) |
(*.f64 (+.f64 z (neg.f64 y)) x) |
| Outputs |
|---|
(*.f64 (-.f64 z y) x) |
(+.f64 y (*.f64 z x)) |
(*.f64 (-.f64 z y) x) |
3 calls:
| 15.0ms | x |
| 14.0ms | z |
| 14.0ms | y |
| Error | Segments | Branch |
|---|---|---|
| 1.0b | 3 | x |
| 8.3b | 3 | y |
| 6.4b | 3 | z |
Compiled 44 to 24 computations (45.5% saved)
| 2× | binary-search |
| Time | Left | Right |
|---|---|---|
| 15.0ms | 0.007067355822091952 | 1196.9616330499625 |
| 13.0ms | -199034939631.31638 | -54656746.85122524 |
| 25.0ms | 272× | body | 256 | valid |
Compiled 324 to 217 computations (33% saved)
| Inputs |
|---|
y |
(*.f64 z x) |
(*.f64 y (neg.f64 x)) |
(*.f64 y (-.f64 1 x)) |
(*.f64 (-.f64 z y) x) |
| Outputs |
|---|
(*.f64 (-.f64 z y) x) |
(*.f64 y (-.f64 1 x)) |
(*.f64 (-.f64 z y) x) |
3 calls:
| 20.0ms | y |
| 20.0ms | z |
| 13.0ms | x |
| Error | Segments | Branch |
|---|---|---|
| 10.1b | 3 | x |
| 13.1b | 5 | y |
| 14.8b | 5 | z |
Compiled 33 to 20 computations (39.4% saved)
| 2× | binary-search |
| Time | Left | Right |
|---|---|---|
| 13.0ms | 5.966293544111503e-10 | 7.422735924428837e-7 |
| 15.0ms | -8.953444490115432e-9 | -6.262394371606599e-14 |
| 26.0ms | 272× | body | 256 | valid |
Compiled 324 to 234 computations (27.8% saved)
| Inputs |
|---|
y |
(*.f64 z x) |
(*.f64 y (neg.f64 x)) |
(*.f64 y (-.f64 1 x)) |
| Outputs |
|---|
(*.f64 y (-.f64 1 x)) |
(*.f64 z x) |
(*.f64 y (-.f64 1 x)) |
(*.f64 z x) |
(*.f64 y (-.f64 1 x)) |
3 calls:
| 24.0ms | x |
| 21.0ms | y |
| 17.0ms | z |
| Error | Segments | Branch |
|---|---|---|
| 17.6b | 6 | x |
| 16.2b | 5 | y |
| 16.3b | 5 | z |
Compiled 28 to 18 computations (35.7% saved)
| 4× | binary-search |
| Time | Left | Right |
|---|---|---|
| 7.0ms | 3.0181821670730834e-52 | 5.873977063857933e-52 |
| 11.0ms | 8.122512876266514e-111 | 6.289492019500586e-109 |
| 10.0ms | 1.592916583964079e-192 | 1.8145765386194696e-191 |
| 14.0ms | -2.792187060317988e-171 | -8.089379035791449e-175 |
| 37.0ms | 400× | body | 256 | valid |
Compiled 418 to 313 computations (25.1% saved)
| Inputs |
|---|
y |
(*.f64 z x) |
(*.f64 y (neg.f64 x)) |
| Outputs |
|---|
(*.f64 y (neg.f64 x)) |
(*.f64 z x) |
y |
(*.f64 z x) |
(*.f64 y (neg.f64 x)) |
(*.f64 z x) |
(*.f64 y (neg.f64 x)) |
(*.f64 z x) |
3 calls:
| 25.0ms | x |
| 22.0ms | z |
| 16.0ms | y |
| Error | Segments | Branch |
|---|---|---|
| 17.0b | 8 | x |
| 24.1b | 5 | y |
| 24.5b | 7 | z |
Compiled 23 to 15 computations (34.8% saved)
| 7× | binary-search |
| Time | Left | Right |
|---|---|---|
| 17.0ms | 8.33679959912203e+92 | 3.1546974131317334e+95 |
| 15.0ms | 2.2119088758574294e+79 | 6.758135013058539e+82 |
| 9.0ms | 1.0182907171037824e+58 | 3.6591572445601215e+58 |
| 9.0ms | 1.30651160360191e+30 | 4.549792091761281e+30 |
| 12.0ms | 3.4675317698244856e-20 | 2.5060615801050497e-18 |
| 15.0ms | -8.953444490115432e-9 | -6.262394371606599e-14 |
| 17.0ms | -2.794765535325789e+78 | -1.943090043546341e+73 |
| 75.0ms | 816× | body | 256 | valid |
| 9.0ms | 84× | body | 256 | infinite |
Compiled 735 to 542 computations (26.3% saved)
Total -40.8b remaining (-194.2%)
Threshold costs -40.8b (-194.2%)
| Inputs |
|---|
y |
(*.f64 z x) |
| Outputs |
|---|
(*.f64 z x) |
y |
(*.f64 z x) |
3 calls:
| 14.0ms | y |
| 14.0ms | z |
| 9.0ms | x |
| Error | Segments | Branch |
|---|---|---|
| 21.0b | 3 | x |
| 24.1b | 5 | y |
| 25.8b | 5 | z |
Compiled 19 to 13 computations (31.6% saved)
| 2× | binary-search |
| Time | Left | Right |
|---|---|---|
| 11.0ms | 3.4675317698244856e-20 | 2.5060615801050497e-18 |
| 15.0ms | -8.953444490115432e-9 | -6.262394371606599e-14 |
| 23.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 (-.f64 1 x) y) (*.f64 x z)) |
(+.f64 (*.f64 (-.f64 z y) x) y) |
(if (<=.f64 x -55000000) (*.f64 (-.f64 z y) x) (if (<=.f64 x 1) (+.f64 y (*.f64 z x)) (*.f64 (-.f64 z y) x))) |
(if (<=.f64 x -870426590122533/9671406556917033397649408) (*.f64 (-.f64 z y) x) (if (<=.f64 x 6346860552976803/75557863725914323419136) (*.f64 y (-.f64 1 x)) (*.f64 (-.f64 z y) x))) |
(if (<=.f64 y -1870965447976631/2175541218577478036232553294038911497542013410209922757424923190068852981190050786259609609278379154099770693575665668158859588967025488852621393833027941793561932885341770625153958412288) (*.f64 y (-.f64 1 x)) (if (<=.f64 y 5778957899650313/321053216647239593947814323906257853121968982105906607635393121525191171526921436896586092302098904493834409720225721295960658706676257560005359788247795462033399882271023229870096664909931806474077957259264) (*.f64 z x) (if (<=.f64 y 3384606560206073/338460656020607282663380637712778772392143197677711984273740183180495765112991409062496875745134225841966700556811959451779072) (*.f64 y (-.f64 1 x)) (if (<=.f64 y 5931188266773141/13479973333575319897333507543509815336818572211270286240551805124608) (*.f64 z x) (*.f64 y (-.f64 1 x)))))) |
(if (<=.f64 x -2749999999999999869091406693783616732381031427894981851579760129284579302309888) (*.f64 y (neg.f64 x)) (if (<=.f64 x -7288990951312319/79228162514264337593543950336) (*.f64 z x) (if (<=.f64 x 6230756230241793/5192296858534827628530496329220096) y (if (<=.f64 x 3900000000000000105697534541824) (*.f64 z x) (if (<=.f64 x 17000000000000000299220050373850724098239315364942769553408) (*.f64 y (neg.f64 x)) (if (<=.f64 x 179999999999999997415090464761131430319373630034400648404260174402553784691589120) (*.f64 z x) (if (<=.f64 x 4600000000000000315327655320564451360706334303466828687512144096586701378750117118243218915328) (*.f64 y (neg.f64 x)) (*.f64 z x)))))))) |
(if (<=.f64 x -3249592603124123/38685626227668133590597632) (*.f64 z x) (if (<=.f64 x 1492785346828763/649037107316853453566312041152512) y (*.f64 z x))) |
y |
| Outputs |
|---|
(+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z)) |
(+.f64 (*.f64 (-.f64 z y) x) y) |
(if (<=.f64 x -55000000) (*.f64 (-.f64 z y) x) (if (<=.f64 x 1) (+.f64 y (*.f64 z x)) (*.f64 (-.f64 z y) x))) |
(if (<=.f64 x -870426590122533/9671406556917033397649408) (*.f64 (-.f64 z y) x) (if (<=.f64 x 6346860552976803/75557863725914323419136) (*.f64 y (-.f64 1 x)) (*.f64 (-.f64 z y) x))) |
(if (<=.f64 y -1870965447976631/2175541218577478036232553294038911497542013410209922757424923190068852981190050786259609609278379154099770693575665668158859588967025488852621393833027941793561932885341770625153958412288) (*.f64 y (-.f64 1 x)) (if (<=.f64 y 5778957899650313/321053216647239593947814323906257853121968982105906607635393121525191171526921436896586092302098904493834409720225721295960658706676257560005359788247795462033399882271023229870096664909931806474077957259264) (*.f64 z x) (if (<=.f64 y 3384606560206073/338460656020607282663380637712778772392143197677711984273740183180495765112991409062496875745134225841966700556811959451779072) (*.f64 y (-.f64 1 x)) (if (<=.f64 y 5931188266773141/13479973333575319897333507543509815336818572211270286240551805124608) (*.f64 z x) (*.f64 y (-.f64 1 x)))))) |
(if (<=.f64 x -2749999999999999869091406693783616732381031427894981851579760129284579302309888) (*.f64 y (neg.f64 x)) (if (<=.f64 x -7288990951312319/79228162514264337593543950336) (*.f64 z x) (if (<=.f64 x 6230756230241793/5192296858534827628530496329220096) y (if (<=.f64 x 3900000000000000105697534541824) (*.f64 z x) (if (<=.f64 x 17000000000000000299220050373850724098239315364942769553408) (*.f64 y (neg.f64 x)) (if (<=.f64 x 179999999999999997415090464761131430319373630034400648404260174402553784691589120) (*.f64 z x) (if (<=.f64 x 4600000000000000315327655320564451360706334303466828687512144096586701378750117118243218915328) (*.f64 y (neg.f64 x)) (*.f64 z x)))))))) |
(if (<=.f64 x -3249592603124123/38685626227668133590597632) (*.f64 z x) (if (<=.f64 x 1492785346828763/649037107316853453566312041152512) y (*.f64 z x))) |
y |
Compiled 192 to 106 computations (44.8% saved)
Compiled 171 to 78 computations (54.4% saved)
Loading profile data...