Time bar (total: 14.4s)
| 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)
| 4.1s | 8256× | body | 256 | valid |
| 289.0ms | 1249× | 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 | |
|---|---|---|---|---|
| 1.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)
6 alts after pruning (6 fresh and 0 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 54 | 6 | 60 |
| Fresh | 0 | 0 | 0 |
| Picked | 1 | 0 | 1 |
| Done | 0 | 0 | 0 |
| Total | 55 | 6 | 61 |
| Status | Error | Program |
|---|---|---|
| ▶ | 27.9b | (+.f64 (*.f64 (neg.f64 y) x) (*.f64 x z)) |
| ▶ | 0.0b | (+.f64 y (*.f64 (+.f64 z (neg.f64 y)) x)) |
| ▶ | 27.9b | (*.f64 (+.f64 z (neg.f64 y)) x) |
| ▶ | 38.1b | (*.f64 z x) |
| ▶ | 25.5b | (*.f64 y (-.f64 1 x)) |
| 35.6b | y |
Compiled 94 to 63 computations (33% saved)
Found 2 expressions with local error:
| New | Error | Program |
|---|---|---|
| ✓ | 0.0b | (*.f64 (+.f64 z (neg.f64 y)) x) |
| ✓ | 0.0b | (+.f64 y (*.f64 (+.f64 z (neg.f64 y)) x)) |
Compiled 26 to 7 computations (73.1% saved)
18 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 325.0ms | y | @ | -inf | (+.f64 y (*.f64 (+.f64 z (neg.f64 y)) x)) |
| 1.0ms | y | @ | 0 | (+.f64 y (*.f64 (+.f64 z (neg.f64 y)) x)) |
| 0.0ms | z | @ | -inf | (+.f64 y (*.f64 (+.f64 z (neg.f64 y)) x)) |
| 0.0ms | x | @ | -inf | (+.f64 y (*.f64 (+.f64 z (neg.f64 y)) x)) |
| 0.0ms | z | @ | inf | (+.f64 y (*.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 | 3191 | 40 |
| 7 | 4898 | 40 |
| 8 | 6327 | 40 |
| 9 | 7507 | 40 |
| 1× | node limit |
| Inputs |
|---|
(+.f64 y (*.f64 (+.f64 z (neg.f64 y)) x)) |
(*.f64 (+.f64 z (neg.f64 y)) x) |
| Outputs |
|---|
((#(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 (+.f64 z (neg.f64 y)) (+.f64 x x)) (+.f64 y y)))))) (#(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 (+.f64 z (neg.f64 y)) (+.f64 x x)) (+.f64 y y)) 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))))) |
((#(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))))) |
| 1× | egg-herbie |
| 4482× | rational.json-simplify-35 |
| 2178× | rational.json-simplify-2 |
| 938× | rational.json-simplify-53 |
| 868× | rational.json-simplify-1 |
| 830× | rational.json-simplify-51 |
Useful iterations: 3 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 104 | 2557 |
| 1 | 251 | 2399 |
| 2 | 588 | 2015 |
| 3 | 1538 | 1971 |
| 4 | 3163 | 1971 |
| 5 | 3949 | 1971 |
| 6 | 4377 | 1971 |
| 7 | 4744 | 1971 |
| 8 | 4982 | 1971 |
| 9 | 5152 | 1971 |
| 10 | 5759 | 1971 |
| 11 | 5856 | 1971 |
| 12 | 5977 | 1971 |
| 13 | 6044 | 1971 |
| 14 | 6092 | 1971 |
| 15 | 6092 | 1971 |
| 16 | 6272 | 1971 |
| 17 | 6415 | 1971 |
| 18 | 6633 | 1971 |
| 19 | 6828 | 1971 |
| 20 | 6981 | 1971 |
| 21 | 7124 | 1971 |
| 22 | 7267 | 1971 |
| 23 | 7410 | 1971 |
| 24 | 7553 | 1971 |
| 25 | 7553 | 1971 |
| 26 | 7631 | 1971 |
| 27 | 7636 | 1971 |
| 28 | 7644 | 1971 |
| 29 | 7646 | 1971 |
| 30 | 7646 | 1971 |
| 31 | 7789 | 1971 |
| 32 | 7932 | 1971 |
| 1× | node limit |
| Inputs |
|---|
(*.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 -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 (+.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 (+.f64 z (neg.f64 y)) (+.f64 x x)) (+.f64 y y))) |
(*.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 (+.f64 z (neg.f64 y)) (+.f64 x x)) (+.f64 y y)) 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) |
(+.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) |
| Outputs |
|---|
(*.f64 z x) |
(+.f64 (*.f64 z x) (*.f64 y (+.f64 1 (*.f64 -1 x)))) |
(+.f64 (*.f64 z x) (*.f64 y (+.f64 1 (*.f64 x -1)))) |
(+.f64 (*.f64 z x) (*.f64 y (+.f64 1 (neg.f64 x)))) |
(+.f64 (*.f64 z x) (*.f64 y (-.f64 1 x))) |
(+.f64 (*.f64 z x) (*.f64 y (+.f64 1 (*.f64 -1 x)))) |
(+.f64 (*.f64 z x) (*.f64 y (+.f64 1 (*.f64 x -1)))) |
(+.f64 (*.f64 z x) (*.f64 y (+.f64 1 (neg.f64 x)))) |
(+.f64 (*.f64 z x) (*.f64 y (-.f64 1 x))) |
(+.f64 (*.f64 z x) (*.f64 y (+.f64 1 (*.f64 -1 x)))) |
(+.f64 (*.f64 z x) (*.f64 y (+.f64 1 (*.f64 x -1)))) |
(+.f64 (*.f64 z x) (*.f64 y (+.f64 1 (neg.f64 x)))) |
(+.f64 (*.f64 z x) (*.f64 y (-.f64 1 x))) |
(*.f64 y (+.f64 1 (*.f64 -1 x))) |
(*.f64 y (+.f64 1 (*.f64 x -1))) |
(*.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 z x) (*.f64 y (+.f64 1 (*.f64 x -1)))) |
(+.f64 (*.f64 z x) (*.f64 y (+.f64 1 (neg.f64 x)))) |
(+.f64 (*.f64 z x) (*.f64 y (-.f64 1 x))) |
(+.f64 (*.f64 z x) (*.f64 y (+.f64 1 (*.f64 -1 x)))) |
(+.f64 (*.f64 z x) (*.f64 y (+.f64 1 (*.f64 x -1)))) |
(+.f64 (*.f64 z x) (*.f64 y (+.f64 1 (neg.f64 x)))) |
(+.f64 (*.f64 z x) (*.f64 y (-.f64 1 x))) |
(+.f64 (*.f64 z x) (*.f64 y (+.f64 1 (*.f64 -1 x)))) |
(+.f64 (*.f64 z x) (*.f64 y (+.f64 1 (*.f64 x -1)))) |
(+.f64 (*.f64 z x) (*.f64 y (+.f64 1 (neg.f64 x)))) |
(+.f64 (*.f64 z x) (*.f64 y (-.f64 1 x))) |
(*.f64 -1 (*.f64 y (-.f64 x 1))) |
(*.f64 y (+.f64 1 (*.f64 x -1))) |
(*.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 z x) (*.f64 y (+.f64 1 (*.f64 x -1)))) |
(+.f64 (*.f64 z x) (*.f64 y (+.f64 1 (neg.f64 x)))) |
(+.f64 (*.f64 z x) (*.f64 y (-.f64 1 x))) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y (-.f64 x 1)))) |
(+.f64 (*.f64 z x) (*.f64 y (+.f64 1 (*.f64 x -1)))) |
(+.f64 (*.f64 z x) (*.f64 y (+.f64 1 (neg.f64 x)))) |
(+.f64 (*.f64 z x) (*.f64 y (-.f64 1 x))) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y (-.f64 x 1)))) |
(+.f64 (*.f64 z x) (*.f64 y (+.f64 1 (*.f64 x -1)))) |
(+.f64 (*.f64 z x) (*.f64 y (+.f64 1 (neg.f64 x)))) |
(+.f64 (*.f64 z x) (*.f64 y (-.f64 1 x))) |
(+.f64 y (*.f64 -1 (*.f64 y x))) |
(+.f64 y (*.f64 y (*.f64 x -1))) |
(+.f64 y (*.f64 x (neg.f64 y))) |
(+.f64 (*.f64 z x) (+.f64 y (*.f64 -1 (*.f64 y x)))) |
(+.f64 (*.f64 z x) (+.f64 y (*.f64 y (*.f64 x -1)))) |
(+.f64 (*.f64 x (neg.f64 y)) (+.f64 y (*.f64 z x))) |
(+.f64 y (*.f64 x (+.f64 z (neg.f64 y)))) |
(+.f64 (*.f64 z x) (+.f64 y (*.f64 -1 (*.f64 y x)))) |
(+.f64 (*.f64 z x) (+.f64 y (*.f64 y (*.f64 x -1)))) |
(+.f64 (*.f64 x (neg.f64 y)) (+.f64 y (*.f64 z x))) |
(+.f64 y (*.f64 x (+.f64 z (neg.f64 y)))) |
(+.f64 (*.f64 z x) (+.f64 y (*.f64 -1 (*.f64 y x)))) |
(+.f64 (*.f64 z x) (+.f64 y (*.f64 y (*.f64 x -1)))) |
(+.f64 (*.f64 x (neg.f64 y)) (+.f64 y (*.f64 z x))) |
(+.f64 y (*.f64 x (+.f64 z (neg.f64 y)))) |
(*.f64 z x) |
(+.f64 (*.f64 z x) (+.f64 y (*.f64 -1 (*.f64 y x)))) |
(+.f64 (*.f64 z x) (+.f64 y (*.f64 y (*.f64 x -1)))) |
(+.f64 (*.f64 x (neg.f64 y)) (+.f64 y (*.f64 z x))) |
(+.f64 y (*.f64 x (+.f64 z (neg.f64 y)))) |
(+.f64 (*.f64 z x) (+.f64 y (*.f64 -1 (*.f64 y x)))) |
(+.f64 (*.f64 z x) (+.f64 y (*.f64 y (*.f64 x -1)))) |
(+.f64 (*.f64 x (neg.f64 y)) (+.f64 y (*.f64 z x))) |
(+.f64 y (*.f64 x (+.f64 z (neg.f64 y)))) |
(+.f64 (*.f64 z x) (+.f64 y (*.f64 -1 (*.f64 y x)))) |
(+.f64 (*.f64 z x) (+.f64 y (*.f64 y (*.f64 x -1)))) |
(+.f64 (*.f64 x (neg.f64 y)) (+.f64 y (*.f64 z x))) |
(+.f64 y (*.f64 x (+.f64 z (neg.f64 y)))) |
(*.f64 z x) |
(+.f64 (*.f64 z x) (+.f64 y (*.f64 -1 (*.f64 y x)))) |
(+.f64 (*.f64 z x) (+.f64 y (*.f64 y (*.f64 x -1)))) |
(+.f64 (*.f64 x (neg.f64 y)) (+.f64 y (*.f64 z x))) |
(+.f64 y (*.f64 x (+.f64 z (neg.f64 y)))) |
(+.f64 (*.f64 z x) (+.f64 y (*.f64 -1 (*.f64 y x)))) |
(+.f64 (*.f64 z x) (+.f64 y (*.f64 y (*.f64 x -1)))) |
(+.f64 (*.f64 x (neg.f64 y)) (+.f64 y (*.f64 z x))) |
(+.f64 y (*.f64 x (+.f64 z (neg.f64 y)))) |
(+.f64 (*.f64 z x) (+.f64 y (*.f64 -1 (*.f64 y x)))) |
(+.f64 (*.f64 z x) (+.f64 y (*.f64 y (*.f64 x -1)))) |
(+.f64 (*.f64 x (neg.f64 y)) (+.f64 y (*.f64 z x))) |
(+.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 -1 (*.f64 y x)) |
(*.f64 y (*.f64 x -1)) |
(*.f64 x (neg.f64 y)) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x))) |
(+.f64 (*.f64 z x) (*.f64 y (*.f64 x -1))) |
(+.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 y (*.f64 x -1))) |
(+.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 y (*.f64 x -1))) |
(+.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 y (*.f64 x -1))) |
(+.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 y (*.f64 x -1))) |
(+.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 y (*.f64 x -1))) |
(+.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 y (*.f64 x -1))) |
(+.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 y (*.f64 x -1))) |
(+.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 y (*.f64 x -1))) |
(+.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 y (*.f64 x -1))) |
(+.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 y (*.f64 x -1))) |
(+.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 y (*.f64 x -1))) |
(+.f64 (*.f64 z x) (*.f64 x (neg.f64 y))) |
(*.f64 x (+.f64 z (neg.f64 y))) |
(*.f64 -1 (*.f64 y x)) |
(*.f64 y (*.f64 x -1)) |
(*.f64 x (neg.f64 y)) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x))) |
(+.f64 (*.f64 z x) (*.f64 y (*.f64 x -1))) |
(+.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 y (*.f64 x -1))) |
(+.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 y (*.f64 x -1))) |
(+.f64 (*.f64 z x) (*.f64 x (neg.f64 y))) |
(*.f64 x (+.f64 z (neg.f64 y))) |
(*.f64 -1 (*.f64 y x)) |
(*.f64 y (*.f64 x -1)) |
(*.f64 x (neg.f64 y)) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x))) |
(+.f64 (*.f64 z x) (*.f64 y (*.f64 x -1))) |
(+.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 y (*.f64 x -1))) |
(+.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 y (*.f64 x -1))) |
(+.f64 (*.f64 z x) (*.f64 x (neg.f64 y))) |
(*.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 (+.f64 y (*.f64 (+.f64 z (neg.f64 y)) x)) 0) |
(+.f64 (*.f64 z x) (+.f64 y (*.f64 y (*.f64 x -1)))) |
(+.f64 (*.f64 x (neg.f64 y)) (+.f64 y (*.f64 z x))) |
(+.f64 y (*.f64 x (+.f64 z (neg.f64 y)))) |
(*.f64 (+.f64 y (*.f64 (+.f64 z (neg.f64 y)) x)) 1) |
(+.f64 (*.f64 z x) (+.f64 y (*.f64 y (*.f64 x -1)))) |
(+.f64 (*.f64 x (neg.f64 y)) (+.f64 y (*.f64 z x))) |
(+.f64 y (*.f64 x (+.f64 z (neg.f64 y)))) |
(*.f64 1 (+.f64 y (*.f64 (+.f64 z (neg.f64 y)) x))) |
(+.f64 (*.f64 z x) (+.f64 y (*.f64 y (*.f64 x -1)))) |
(+.f64 (*.f64 x (neg.f64 y)) (+.f64 y (*.f64 z x))) |
(+.f64 y (*.f64 x (+.f64 z (neg.f64 y)))) |
(*.f64 2 (*.f64 (+.f64 y (*.f64 (+.f64 z (neg.f64 y)) x)) 1/2)) |
(+.f64 (*.f64 z x) (+.f64 y (*.f64 y (*.f64 x -1)))) |
(+.f64 (*.f64 x (neg.f64 y)) (+.f64 y (*.f64 z x))) |
(+.f64 y (*.f64 x (+.f64 z (neg.f64 y)))) |
(*.f64 (*.f64 (+.f64 y (*.f64 (+.f64 z (neg.f64 y)) x)) 2) 1/2) |
(+.f64 (*.f64 z x) (+.f64 y (*.f64 y (*.f64 x -1)))) |
(+.f64 (*.f64 x (neg.f64 y)) (+.f64 y (*.f64 z x))) |
(+.f64 y (*.f64 x (+.f64 z (neg.f64 y)))) |
(*.f64 4 (/.f64 (+.f64 y (*.f64 (+.f64 z (neg.f64 y)) x)) 4)) |
(+.f64 (*.f64 z x) (+.f64 y (*.f64 y (*.f64 x -1)))) |
(+.f64 (*.f64 x (neg.f64 y)) (+.f64 y (*.f64 z x))) |
(+.f64 y (*.f64 x (+.f64 z (neg.f64 y)))) |
(*.f64 (*.f64 (+.f64 y (*.f64 (+.f64 z (neg.f64 y)) x)) 4) 1/4) |
(+.f64 (*.f64 z x) (+.f64 y (*.f64 y (*.f64 x -1)))) |
(+.f64 (*.f64 x (neg.f64 y)) (+.f64 y (*.f64 z x))) |
(+.f64 y (*.f64 x (+.f64 z (neg.f64 y)))) |
(*.f64 1/2 (*.f64 (+.f64 y (*.f64 (+.f64 z (neg.f64 y)) x)) 2)) |
(+.f64 (*.f64 z x) (+.f64 y (*.f64 y (*.f64 x -1)))) |
(+.f64 (*.f64 x (neg.f64 y)) (+.f64 y (*.f64 z x))) |
(+.f64 y (*.f64 x (+.f64 z (neg.f64 y)))) |
(*.f64 1/2 (+.f64 (*.f64 (+.f64 z (neg.f64 y)) (+.f64 x x)) (+.f64 y y))) |
(+.f64 (*.f64 z x) (+.f64 y (*.f64 y (*.f64 x -1)))) |
(+.f64 (*.f64 x (neg.f64 y)) (+.f64 y (*.f64 z x))) |
(+.f64 y (*.f64 x (+.f64 z (neg.f64 y)))) |
(*.f64 (*.f64 (+.f64 y (*.f64 (+.f64 z (neg.f64 y)) x)) 1/2) 2) |
(+.f64 (*.f64 z x) (+.f64 y (*.f64 y (*.f64 x -1)))) |
(+.f64 (*.f64 x (neg.f64 y)) (+.f64 y (*.f64 z x))) |
(+.f64 y (*.f64 x (+.f64 z (neg.f64 y)))) |
(*.f64 1/4 (*.f64 (+.f64 y (*.f64 (+.f64 z (neg.f64 y)) x)) 4)) |
(+.f64 (*.f64 z x) (+.f64 y (*.f64 y (*.f64 x -1)))) |
(+.f64 (*.f64 x (neg.f64 y)) (+.f64 y (*.f64 z x))) |
(+.f64 y (*.f64 x (+.f64 z (neg.f64 y)))) |
(*.f64 (/.f64 (+.f64 y (*.f64 (+.f64 z (neg.f64 y)) x)) 4) 4) |
(+.f64 (*.f64 z x) (+.f64 y (*.f64 y (*.f64 x -1)))) |
(+.f64 (*.f64 x (neg.f64 y)) (+.f64 y (*.f64 z x))) |
(+.f64 y (*.f64 x (+.f64 z (neg.f64 y)))) |
(*.f64 (+.f64 (*.f64 (+.f64 z (neg.f64 y)) (+.f64 x x)) (+.f64 y y)) 1/2) |
(+.f64 (*.f64 z x) (+.f64 y (*.f64 y (*.f64 x -1)))) |
(+.f64 (*.f64 x (neg.f64 y)) (+.f64 y (*.f64 z x))) |
(+.f64 y (*.f64 x (+.f64 z (neg.f64 y)))) |
(/.f64 (+.f64 y (*.f64 (+.f64 z (neg.f64 y)) x)) 1) |
(+.f64 (*.f64 z x) (+.f64 y (*.f64 y (*.f64 x -1)))) |
(+.f64 (*.f64 x (neg.f64 y)) (+.f64 y (*.f64 z x))) |
(+.f64 y (*.f64 x (+.f64 z (neg.f64 y)))) |
(/.f64 (*.f64 (+.f64 y (*.f64 (+.f64 z (neg.f64 y)) x)) 2) 2) |
(+.f64 (*.f64 z x) (+.f64 y (*.f64 y (*.f64 x -1)))) |
(+.f64 (*.f64 x (neg.f64 y)) (+.f64 y (*.f64 z x))) |
(+.f64 y (*.f64 x (+.f64 z (neg.f64 y)))) |
(/.f64 (*.f64 (+.f64 y (*.f64 (+.f64 z (neg.f64 y)) x)) 4) 4) |
(+.f64 (*.f64 z x) (+.f64 y (*.f64 y (*.f64 x -1)))) |
(+.f64 (*.f64 x (neg.f64 y)) (+.f64 y (*.f64 z x))) |
(+.f64 y (*.f64 x (+.f64 z (neg.f64 y)))) |
(/.f64 (*.f64 (+.f64 y (*.f64 (+.f64 z (neg.f64 y)) x)) 8) 8) |
(+.f64 (*.f64 z x) (+.f64 y (*.f64 y (*.f64 x -1)))) |
(+.f64 (*.f64 x (neg.f64 y)) (+.f64 y (*.f64 z x))) |
(+.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 (*.f64 z x) (+.f64 y (*.f64 y (*.f64 x -1)))) |
(+.f64 (*.f64 x (neg.f64 y)) (+.f64 y (*.f64 z x))) |
(+.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 (*.f64 z x) (+.f64 y (*.f64 y (*.f64 x -1)))) |
(+.f64 (*.f64 x (neg.f64 y)) (+.f64 y (*.f64 z x))) |
(+.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 (*.f64 z x) (+.f64 y (*.f64 y (*.f64 x -1)))) |
(+.f64 (*.f64 x (neg.f64 y)) (+.f64 y (*.f64 z x))) |
(+.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 (*.f64 z x) (+.f64 y (*.f64 y (*.f64 x -1)))) |
(+.f64 (*.f64 x (neg.f64 y)) (+.f64 y (*.f64 z x))) |
(+.f64 y (*.f64 x (+.f64 z (neg.f64 y)))) |
(pow.f64 (+.f64 y (*.f64 (+.f64 z (neg.f64 y)) x)) 1) |
(+.f64 (*.f64 z x) (+.f64 y (*.f64 y (*.f64 x -1)))) |
(+.f64 (*.f64 x (neg.f64 y)) (+.f64 y (*.f64 z x))) |
(+.f64 y (*.f64 x (+.f64 z (neg.f64 y)))) |
(+.f64 (*.f64 (+.f64 z (neg.f64 y)) x) 0) |
(+.f64 (*.f64 z x) (*.f64 y (*.f64 x -1))) |
(+.f64 (*.f64 z x) (*.f64 x (neg.f64 y))) |
(*.f64 x (+.f64 z (neg.f64 y))) |
(+.f64 0 (*.f64 (+.f64 z (neg.f64 y)) x)) |
(+.f64 (*.f64 z x) (*.f64 y (*.f64 x -1))) |
(+.f64 (*.f64 z x) (*.f64 x (neg.f64 y))) |
(*.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 z x) (*.f64 y (*.f64 x -1))) |
(+.f64 (*.f64 z x) (*.f64 x (neg.f64 y))) |
(*.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 z x) (*.f64 y (*.f64 x -1))) |
(+.f64 (*.f64 z x) (*.f64 x (neg.f64 y))) |
(*.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 z x) (*.f64 y (*.f64 x -1))) |
(+.f64 (*.f64 z x) (*.f64 x (neg.f64 y))) |
(*.f64 x (+.f64 z (neg.f64 y))) |
(-.f64 (*.f64 (+.f64 z (neg.f64 y)) x) 0) |
(+.f64 (*.f64 z x) (*.f64 y (*.f64 x -1))) |
(+.f64 (*.f64 z x) (*.f64 x (neg.f64 y))) |
(*.f64 x (+.f64 z (neg.f64 y))) |
(/.f64 (*.f64 (+.f64 z (neg.f64 y)) x) 1) |
(+.f64 (*.f64 z x) (*.f64 y (*.f64 x -1))) |
(+.f64 (*.f64 z x) (*.f64 x (neg.f64 y))) |
(*.f64 x (+.f64 z (neg.f64 y))) |
(/.f64 (*.f64 (+.f64 z (neg.f64 y)) (+.f64 x x)) 2) |
(+.f64 (*.f64 z x) (*.f64 y (*.f64 x -1))) |
(+.f64 (*.f64 z x) (*.f64 x (neg.f64 y))) |
(*.f64 x (+.f64 z (neg.f64 y))) |
(/.f64 (*.f64 (+.f64 z (neg.f64 y)) (*.f64 x 4)) 4) |
(+.f64 (*.f64 z x) (*.f64 y (*.f64 x -1))) |
(+.f64 (*.f64 z x) (*.f64 x (neg.f64 y))) |
(*.f64 x (+.f64 z (neg.f64 y))) |
(/.f64 (*.f64 (+.f64 z (neg.f64 y)) (*.f64 x 8)) 8) |
(+.f64 (*.f64 z x) (*.f64 y (*.f64 x -1))) |
(+.f64 (*.f64 z x) (*.f64 x (neg.f64 y))) |
(*.f64 x (+.f64 z (neg.f64 y))) |
(/.f64 (*.f64 16 (*.f64 (+.f64 z (neg.f64 y)) x)) 16) |
(+.f64 (*.f64 z x) (*.f64 y (*.f64 x -1))) |
(+.f64 (*.f64 z x) (*.f64 x (neg.f64 y))) |
(*.f64 x (+.f64 z (neg.f64 y))) |
(/.f64 (*.f64 2 (*.f64 16 (*.f64 (+.f64 z (neg.f64 y)) x))) 32) |
(+.f64 (*.f64 z x) (*.f64 y (*.f64 x -1))) |
(+.f64 (*.f64 z x) (*.f64 x (neg.f64 y))) |
(*.f64 x (+.f64 z (neg.f64 y))) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 16 (*.f64 (+.f64 z (neg.f64 y)) x)))) 64) |
(+.f64 (*.f64 z x) (*.f64 y (*.f64 x -1))) |
(+.f64 (*.f64 z x) (*.f64 x (neg.f64 y))) |
(*.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 z x) (*.f64 y (*.f64 x -1))) |
(+.f64 (*.f64 z x) (*.f64 x (neg.f64 y))) |
(*.f64 x (+.f64 z (neg.f64 y))) |
(pow.f64 (*.f64 (+.f64 z (neg.f64 y)) x) 1) |
(+.f64 (*.f64 z x) (*.f64 y (*.f64 x -1))) |
(+.f64 (*.f64 z x) (*.f64 x (neg.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 | @ | -inf | (*.f64 y (-.f64 1 x)) |
| 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 | 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 | |
|---|---|---|---|---|
| 53.0ms | x | @ | 0 | (+.f64 (*.f64 (neg.f64 y) x) (*.f64 x z)) |
| 1.0ms | z | @ | 0 | (+.f64 (*.f64 (neg.f64 y) x) (*.f64 x z)) |
| 1.0ms | x | @ | inf | (+.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 1671 to 759 computations (54.6% saved)
8 alts after pruning (5 fresh and 3 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 164 | 4 | 168 |
| Fresh | 0 | 1 | 1 |
| Picked | 0 | 1 | 1 |
| Done | 2 | 2 | 4 |
| Total | 166 | 8 | 174 |
| Status | Error | Program |
|---|---|---|
| ▶ | 0.0b | (+.f64 (*.f64 (-.f64 z y) x) y) |
| ✓ | 27.9b | (+.f64 (*.f64 (neg.f64 y) x) (*.f64 x z)) |
| ▶ | 25.5b | (+.f64 y (*.f64 y (neg.f64 x))) |
| ▶ | 27.9b | (*.f64 (-.f64 z y) x) |
| ✓ | 38.1b | (*.f64 z x) |
| ✓ | 25.5b | (*.f64 y (-.f64 1 x)) |
| ▶ | 52.6b | (*.f64 y (neg.f64 x)) |
| 35.6b | y |
Compiled 63 to 42 computations (33.3% 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 | y | @ | -inf | (*.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) |
| 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 y (neg.f64 x))) |
Compiled 17 to 6 computations (64.7% saved)
6 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 0.0ms | y | @ | inf | (+.f64 y (*.f64 y (neg.f64 x))) |
| 0.0ms | y | @ | 0 | (+.f64 y (*.f64 y (neg.f64 x))) |
| 0.0ms | y | @ | -inf | (+.f64 y (*.f64 y (neg.f64 x))) |
| 0.0ms | x | @ | inf | (+.f64 y (*.f64 y (neg.f64 x))) |
| 0.0ms | x | @ | -inf | (+.f64 y (*.f64 y (neg.f64 x))) |
| 1× | batch-egg-rewrite |
| 1622× | rational.json-1 |
| 1622× | rational.json-2 |
| 1622× | rational.json-3 |
| 1616× | rational.json-4 |
| 1380× | rational.json-simplify-35 |
Useful iterations: 3 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 8 | 17 |
| 1 | 56 | 17 |
| 2 | 133 | 17 |
| 3 | 301 | 13 |
| 4 | 638 | 13 |
| 5 | 1510 | 13 |
| 6 | 3090 | 13 |
| 7 | 4917 | 13 |
| 8 | 7173 | 13 |
| 1× | node limit |
| Inputs |
|---|
(+.f64 y (*.f64 y (neg.f64 x))) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 y (-.f64 1 x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 y (-.f64 1 x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 y (-.f64 1 x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 y (-.f64 1 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 y (/.f64 (-.f64 1 x) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (*.f64 (-.f64 1 x) 1/2) y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 y (*.f64 (+.f64 x -1) -2)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -2 (*.f64 (+.f64 x -1) (*.f64 y 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 y y) (*.f64 (-.f64 1 x) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 y y) (/.f64 (-.f64 1 x) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 y y) (+.f64 1/2 (*.f64 x -1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 1 x) y)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (*.f64 y (-.f64 1 x)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 y (*.f64 4 (-.f64 1 x))) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x -1) -2) (*.f64 y 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 y (*.f64 (+.f64 x -1) -2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (+.f64 y y) (*.f64 x (*.f64 y -2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 y 1/2) (*.f64 (+.f64 x -1) -2))))) (#(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 2 (+.f64 x -1)) (/.f64 y -2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (-.f64 1 x) 1/2) (+.f64 y y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 y (*.f64 4 (-.f64 1 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (-.f64 1 x) 2) (+.f64 y y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 y (-.f64 1 x)) 4) 4)))) (#(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 x -1) -2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (*.f64 4 (-.f64 1 x))) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 y (-.f64 1 x)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 y (-.f64 1 x)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y (-.f64 1 x)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y (-.f64 1 x)) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y (-.f64 1 x)) 8)))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y (-.f64 1 x)) 8))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 y (-.f64 1 x)) 1))))) |
| 1× | egg-herbie |
| 2334× | rational.json-simplify-2 |
| 1884× | rational.json-simplify-35 |
| 956× | rational.json-simplify-1 |
| 882× | rational.json-simplify-53 |
| 878× | rational.json-simplify-45 |
Useful iterations: 3 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 86 | 1071 |
| 1 | 203 | 963 |
| 2 | 423 | 963 |
| 3 | 1322 | 749 |
| 4 | 2859 | 749 |
| 5 | 4052 | 749 |
| 6 | 5014 | 749 |
| 7 | 5404 | 749 |
| 8 | 5627 | 749 |
| 9 | 5845 | 749 |
| 10 | 6219 | 749 |
| 11 | 6857 | 749 |
| 1× | node limit |
| Inputs |
|---|
(*.f64 y (+.f64 1 (*.f64 -1 x))) |
(*.f64 y (+.f64 1 (*.f64 -1 x))) |
(*.f64 y (+.f64 1 (*.f64 -1 x))) |
(*.f64 y (+.f64 1 (*.f64 -1 x))) |
(*.f64 y (+.f64 1 (*.f64 -1 x))) |
(*.f64 y (+.f64 1 (*.f64 -1 x))) |
(*.f64 y (+.f64 1 (*.f64 -1 x))) |
(*.f64 y (+.f64 1 (*.f64 -1 x))) |
(*.f64 -1 (*.f64 y (-.f64 x 1))) |
(*.f64 -1 (*.f64 y (-.f64 x 1))) |
(*.f64 -1 (*.f64 y (-.f64 x 1))) |
(*.f64 -1 (*.f64 y (-.f64 x 1))) |
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 y (-.f64 1 x)) |
(*.f64 (*.f64 y (-.f64 1 x)) 1) |
(*.f64 1 (*.f64 y (-.f64 1 x))) |
(*.f64 2 (*.f64 y (/.f64 (-.f64 1 x) 2))) |
(*.f64 2 (*.f64 (*.f64 (-.f64 1 x) 1/2) y)) |
(*.f64 (*.f64 y (*.f64 (+.f64 x -1) -2)) 1/2) |
(*.f64 -2 (*.f64 (+.f64 x -1) (*.f64 y 1/2))) |
(*.f64 (+.f64 y y) (*.f64 (-.f64 1 x) 1/2)) |
(*.f64 (+.f64 y y) (/.f64 (-.f64 1 x) 2)) |
(*.f64 (+.f64 y y) (+.f64 1/2 (*.f64 x -1/2))) |
(*.f64 (-.f64 1 x) y) |
(*.f64 4 (/.f64 (*.f64 y (-.f64 1 x)) 4)) |
(*.f64 (*.f64 y (*.f64 4 (-.f64 1 x))) 1/4) |
(*.f64 (*.f64 (+.f64 x -1) -2) (*.f64 y 1/2)) |
(*.f64 1/2 (*.f64 y (*.f64 (+.f64 x -1) -2))) |
(*.f64 1/2 (+.f64 (+.f64 y y) (*.f64 x (*.f64 y -2)))) |
(*.f64 (*.f64 y 1/2) (*.f64 (+.f64 x -1) -2)) |
(*.f64 (*.f64 y (/.f64 (-.f64 1 x) 2)) 2) |
(*.f64 (*.f64 2 (+.f64 x -1)) (/.f64 y -2)) |
(*.f64 (*.f64 (-.f64 1 x) 1/2) (+.f64 y y)) |
(*.f64 1/4 (*.f64 y (*.f64 4 (-.f64 1 x)))) |
(*.f64 (/.f64 (-.f64 1 x) 2) (+.f64 y y)) |
(*.f64 (/.f64 (*.f64 y (-.f64 1 x)) 4) 4) |
(/.f64 (*.f64 y (-.f64 1 x)) 1) |
(/.f64 (*.f64 y (*.f64 (+.f64 x -1) -2)) 2) |
(/.f64 (*.f64 y (*.f64 4 (-.f64 1 x))) 4) |
(/.f64 (*.f64 (*.f64 y (-.f64 1 x)) 8) 8) |
(/.f64 (*.f64 2 (*.f64 (*.f64 y (-.f64 1 x)) 8)) 16) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y (-.f64 1 x)) 8))) 32) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y (-.f64 1 x)) 8)))) 64) |
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y (-.f64 1 x)) 8)))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y (-.f64 1 x)) 8))))) 128) |
(pow.f64 (*.f64 y (-.f64 1 x)) 1) |
| Outputs |
|---|
(*.f64 y (+.f64 1 (*.f64 -1 x))) |
(*.f64 y (+.f64 1 (neg.f64 x))) |
(*.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 y (+.f64 1 (*.f64 -1 x))) |
(*.f64 y (+.f64 1 (neg.f64 x))) |
(*.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 y (+.f64 1 (*.f64 -1 x))) |
(*.f64 y (+.f64 1 (neg.f64 x))) |
(*.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 y (+.f64 1 (*.f64 -1 x))) |
(*.f64 y (+.f64 1 (neg.f64 x))) |
(*.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 -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 -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 -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 -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)) |
y |
(+.f64 y (*.f64 -1 (*.f64 y x))) |
(*.f64 y (+.f64 1 (*.f64 -1 x))) |
(*.f64 y (+.f64 1 (neg.f64 x))) |
(*.f64 y (-.f64 1 x)) |
(+.f64 y (*.f64 -1 (*.f64 y x))) |
(*.f64 y (+.f64 1 (*.f64 -1 x))) |
(*.f64 y (+.f64 1 (neg.f64 x))) |
(*.f64 y (-.f64 1 x)) |
(+.f64 y (*.f64 -1 (*.f64 y x))) |
(*.f64 y (+.f64 1 (*.f64 -1 x))) |
(*.f64 y (+.f64 1 (neg.f64 x))) |
(*.f64 y (-.f64 1 x)) |
(*.f64 -1 (*.f64 y x)) |
(*.f64 y (*.f64 -1 x)) |
(*.f64 y (neg.f64 x)) |
(+.f64 y (*.f64 -1 (*.f64 y x))) |
(*.f64 y (+.f64 1 (*.f64 -1 x))) |
(*.f64 y (+.f64 1 (neg.f64 x))) |
(*.f64 y (-.f64 1 x)) |
(+.f64 y (*.f64 -1 (*.f64 y x))) |
(*.f64 y (+.f64 1 (*.f64 -1 x))) |
(*.f64 y (+.f64 1 (neg.f64 x))) |
(*.f64 y (-.f64 1 x)) |
(+.f64 y (*.f64 -1 (*.f64 y x))) |
(*.f64 y (+.f64 1 (*.f64 -1 x))) |
(*.f64 y (+.f64 1 (neg.f64 x))) |
(*.f64 y (-.f64 1 x)) |
(*.f64 -1 (*.f64 y x)) |
(*.f64 y (*.f64 -1 x)) |
(*.f64 y (neg.f64 x)) |
(+.f64 y (*.f64 -1 (*.f64 y x))) |
(*.f64 y (+.f64 1 (*.f64 -1 x))) |
(*.f64 y (+.f64 1 (neg.f64 x))) |
(*.f64 y (-.f64 1 x)) |
(+.f64 y (*.f64 -1 (*.f64 y x))) |
(*.f64 y (+.f64 1 (*.f64 -1 x))) |
(*.f64 y (+.f64 1 (neg.f64 x))) |
(*.f64 y (-.f64 1 x)) |
(+.f64 y (*.f64 -1 (*.f64 y x))) |
(*.f64 y (+.f64 1 (*.f64 -1 x))) |
(*.f64 y (+.f64 1 (neg.f64 x))) |
(*.f64 y (-.f64 1 x)) |
(-.f64 (*.f64 y (-.f64 1 x)) 0) |
(*.f64 y (+.f64 1 (*.f64 -1 x))) |
(*.f64 y (+.f64 1 (neg.f64 x))) |
(*.f64 y (-.f64 1 x)) |
(*.f64 y (-.f64 1 x)) |
(*.f64 y (+.f64 1 (*.f64 -1 x))) |
(*.f64 y (+.f64 1 (neg.f64 x))) |
(*.f64 (*.f64 y (-.f64 1 x)) 1) |
(*.f64 y (+.f64 1 (*.f64 -1 x))) |
(*.f64 y (+.f64 1 (neg.f64 x))) |
(*.f64 y (-.f64 1 x)) |
(*.f64 1 (*.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 2 (*.f64 y (/.f64 (-.f64 1 x) 2))) |
(*.f64 y (+.f64 1 (*.f64 -1 x))) |
(*.f64 y (+.f64 1 (neg.f64 x))) |
(*.f64 y (-.f64 1 x)) |
(*.f64 2 (*.f64 (*.f64 (-.f64 1 x) 1/2) y)) |
(*.f64 y (+.f64 1 (*.f64 -1 x))) |
(*.f64 y (+.f64 1 (neg.f64 x))) |
(*.f64 y (-.f64 1 x)) |
(*.f64 (*.f64 y (*.f64 (+.f64 x -1) -2)) 1/2) |
(*.f64 y (+.f64 1 (*.f64 -1 x))) |
(*.f64 y (+.f64 1 (neg.f64 x))) |
(*.f64 y (-.f64 1 x)) |
(*.f64 -2 (*.f64 (+.f64 x -1) (*.f64 y 1/2))) |
(*.f64 y (+.f64 1 (*.f64 -1 x))) |
(*.f64 y (+.f64 1 (neg.f64 x))) |
(*.f64 y (-.f64 1 x)) |
(*.f64 (+.f64 y y) (*.f64 (-.f64 1 x) 1/2)) |
(*.f64 y (+.f64 1 (*.f64 -1 x))) |
(*.f64 y (+.f64 1 (neg.f64 x))) |
(*.f64 y (-.f64 1 x)) |
(*.f64 (+.f64 y y) (/.f64 (-.f64 1 x) 2)) |
(*.f64 y (+.f64 1 (*.f64 -1 x))) |
(*.f64 y (+.f64 1 (neg.f64 x))) |
(*.f64 y (-.f64 1 x)) |
(*.f64 (+.f64 y y) (+.f64 1/2 (*.f64 x -1/2))) |
(*.f64 (-.f64 1 x) y) |
(*.f64 y (+.f64 1 (*.f64 -1 x))) |
(*.f64 y (+.f64 1 (neg.f64 x))) |
(*.f64 y (-.f64 1 x)) |
(*.f64 4 (/.f64 (*.f64 y (-.f64 1 x)) 4)) |
(*.f64 y (+.f64 1 (*.f64 -1 x))) |
(*.f64 y (+.f64 1 (neg.f64 x))) |
(*.f64 y (-.f64 1 x)) |
(*.f64 (*.f64 y (*.f64 4 (-.f64 1 x))) 1/4) |
(*.f64 y (+.f64 1 (*.f64 -1 x))) |
(*.f64 y (+.f64 1 (neg.f64 x))) |
(*.f64 y (-.f64 1 x)) |
(*.f64 (*.f64 (+.f64 x -1) -2) (*.f64 y 1/2)) |
(*.f64 y (+.f64 1 (*.f64 -1 x))) |
(*.f64 y (+.f64 1 (neg.f64 x))) |
(*.f64 y (-.f64 1 x)) |
(*.f64 1/2 (*.f64 y (*.f64 (+.f64 x -1) -2))) |
(*.f64 y (+.f64 1 (*.f64 -1 x))) |
(*.f64 y (+.f64 1 (neg.f64 x))) |
(*.f64 y (-.f64 1 x)) |
(*.f64 1/2 (+.f64 (+.f64 y y) (*.f64 x (*.f64 y -2)))) |
(*.f64 1/2 (+.f64 (+.f64 y y) (*.f64 y (*.f64 -2 x)))) |
(*.f64 1/2 (+.f64 y (+.f64 y (*.f64 -2 (*.f64 y x))))) |
(*.f64 1/2 (+.f64 (+.f64 y y) (*.f64 y (*.f64 x -2)))) |
(*.f64 1/2 (*.f64 y (+.f64 (*.f64 x -2) 2))) |
(*.f64 1/2 (*.f64 y (+.f64 2 (*.f64 x -2)))) |
(*.f64 (*.f64 y 1/2) (*.f64 (+.f64 x -1) -2)) |
(*.f64 y (+.f64 1 (*.f64 -1 x))) |
(*.f64 y (+.f64 1 (neg.f64 x))) |
(*.f64 y (-.f64 1 x)) |
(*.f64 (*.f64 y (/.f64 (-.f64 1 x) 2)) 2) |
(*.f64 y (+.f64 1 (*.f64 -1 x))) |
(*.f64 y (+.f64 1 (neg.f64 x))) |
(*.f64 y (-.f64 1 x)) |
(*.f64 (*.f64 2 (+.f64 x -1)) (/.f64 y -2)) |
(*.f64 y (+.f64 1 (*.f64 -1 x))) |
(*.f64 y (+.f64 1 (neg.f64 x))) |
(*.f64 y (-.f64 1 x)) |
(*.f64 (*.f64 (-.f64 1 x) 1/2) (+.f64 y y)) |
(*.f64 y (+.f64 1 (*.f64 -1 x))) |
(*.f64 y (+.f64 1 (neg.f64 x))) |
(*.f64 y (-.f64 1 x)) |
(*.f64 1/4 (*.f64 y (*.f64 4 (-.f64 1 x)))) |
(*.f64 y (+.f64 1 (*.f64 -1 x))) |
(*.f64 y (+.f64 1 (neg.f64 x))) |
(*.f64 y (-.f64 1 x)) |
(*.f64 (/.f64 (-.f64 1 x) 2) (+.f64 y y)) |
(*.f64 y (+.f64 1 (*.f64 -1 x))) |
(*.f64 y (+.f64 1 (neg.f64 x))) |
(*.f64 y (-.f64 1 x)) |
(*.f64 (/.f64 (*.f64 y (-.f64 1 x)) 4) 4) |
(*.f64 y (+.f64 1 (*.f64 -1 x))) |
(*.f64 y (+.f64 1 (neg.f64 x))) |
(*.f64 y (-.f64 1 x)) |
(/.f64 (*.f64 y (-.f64 1 x)) 1) |
(*.f64 y (+.f64 1 (*.f64 -1 x))) |
(*.f64 y (+.f64 1 (neg.f64 x))) |
(*.f64 y (-.f64 1 x)) |
(/.f64 (*.f64 y (*.f64 (+.f64 x -1) -2)) 2) |
(*.f64 y (+.f64 1 (*.f64 -1 x))) |
(*.f64 y (+.f64 1 (neg.f64 x))) |
(*.f64 y (-.f64 1 x)) |
(/.f64 (*.f64 y (*.f64 4 (-.f64 1 x))) 4) |
(*.f64 y (+.f64 1 (*.f64 -1 x))) |
(*.f64 y (+.f64 1 (neg.f64 x))) |
(*.f64 y (-.f64 1 x)) |
(/.f64 (*.f64 (*.f64 y (-.f64 1 x)) 8) 8) |
(*.f64 y (+.f64 1 (*.f64 -1 x))) |
(*.f64 y (+.f64 1 (neg.f64 x))) |
(*.f64 y (-.f64 1 x)) |
(/.f64 (*.f64 2 (*.f64 (*.f64 y (-.f64 1 x)) 8)) 16) |
(*.f64 y (+.f64 1 (*.f64 -1 x))) |
(*.f64 y (+.f64 1 (neg.f64 x))) |
(*.f64 y (-.f64 1 x)) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y (-.f64 1 x)) 8))) 32) |
(*.f64 y (+.f64 1 (*.f64 -1 x))) |
(*.f64 y (+.f64 1 (neg.f64 x))) |
(*.f64 y (-.f64 1 x)) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y (-.f64 1 x)) 8)))) 64) |
(*.f64 y (+.f64 1 (*.f64 -1 x))) |
(*.f64 y (+.f64 1 (neg.f64 x))) |
(*.f64 y (-.f64 1 x)) |
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y (-.f64 1 x)) 8)))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y (-.f64 1 x)) 8))))) 128) |
(*.f64 y (+.f64 1 (*.f64 -1 x))) |
(*.f64 y (+.f64 1 (neg.f64 x))) |
(*.f64 y (-.f64 1 x)) |
(pow.f64 (*.f64 y (-.f64 1 x)) 1) |
(*.f64 y (+.f64 1 (*.f64 -1 x))) |
(*.f64 y (+.f64 1 (neg.f64 x))) |
(*.f64 y (-.f64 1 x)) |
Found 2 expressions with local error:
| New | Error | Program |
|---|---|---|
| 0.0b | (*.f64 (-.f64 z y) x) | |
| ✓ | 0.0b | (+.f64 (*.f64 (-.f64 z y) x) y) |
Compiled 21 to 6 computations (71.4% saved)
9 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 0.0ms | z | @ | 0 | (+.f64 (*.f64 (-.f64 z y) x) y) |
| 0.0ms | y | @ | -inf | (+.f64 (*.f64 (-.f64 z y) x) y) |
| 0.0ms | z | @ | inf | (+.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) |
| 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 1555 to 767 computations (50.7% saved)
9 alts after pruning (2 fresh and 7 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 158 | 1 | 159 |
| Fresh | 0 | 1 | 1 |
| Picked | 0 | 1 | 1 |
| Done | 0 | 6 | 6 |
| Total | 158 | 9 | 167 |
| Status | Error | Program |
|---|---|---|
| ✓ | 0.0b | (+.f64 (*.f64 (-.f64 z y) x) y) |
| ✓ | 27.9b | (+.f64 (*.f64 (neg.f64 y) x) (*.f64 x z)) |
| ▶ | 10.9b | (+.f64 (*.f64 z x) y) |
| ✓ | 25.5b | (+.f64 y (*.f64 y (neg.f64 x))) |
| ✓ | 27.9b | (*.f64 (-.f64 z y) x) |
| ✓ | 38.1b | (*.f64 z x) |
| ✓ | 25.5b | (*.f64 y (-.f64 1 x)) |
| ✓ | 52.6b | (*.f64 y (neg.f64 x)) |
| 35.6b | y |
Compiled 71 to 47 computations (33.8% saved)
Found 1 expressions with local error:
| New | Error | Program |
|---|---|---|
| ✓ | 0.0b | (+.f64 (*.f64 z x) y) |
Compiled 14 to 5 computations (64.3% saved)
9 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 0.0ms | z | @ | 0 | (+.f64 (*.f64 z x) y) |
| 0.0ms | z | @ | inf | (+.f64 (*.f64 z x) y) |
| 0.0ms | x | @ | -inf | (+.f64 (*.f64 z x) y) |
| 0.0ms | z | @ | -inf | (+.f64 (*.f64 z x) y) |
| 0.0ms | y | @ | -inf | (+.f64 (*.f64 z x) y) |
| 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 | 2314 | 13 |
| 7 | 4169 | 13 |
| 8 | 5353 | 13 |
| 9 | 6864 | 13 |
| 10 | 7675 | 13 |
| 11 | 7675 | 13 |
| 1× | node limit |
| Inputs |
|---|
(+.f64 (*.f64 z x) y) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (*.f64 z x) y) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 z x) y) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 (*.f64 z x) y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (+.f64 (*.f64 z x) y) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 z x) y) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (*.f64 (+.f64 (*.f64 z x) y) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 z x) y) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 z x) y) 8) 1/8)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (+.f64 (*.f64 z x) y) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 z x) y) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (+.f64 (*.f64 z x) y) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 z x) y) 1/4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/8 (*.f64 (+.f64 (*.f64 z x) y) 8))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 z x) y) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 z x) y) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 z x) y) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 z x) y) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 z x) y) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 z x) y) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 z x) y) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 z x) y) 8))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 z x) y) 8)))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 (*.f64 z x) y) 1))))) |
| 1× | egg-herbie |
| 6176× | rational.json-simplify-51 |
| 3534× | rational.json-simplify-35 |
| 1360× | rational.json-simplify-49 |
| 1156× | rational.json-simplify-2 |
| 1124× | rational.json-simplify-1 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 53 | 338 |
| 1 | 121 | 338 |
| 2 | 423 | 338 |
| 3 | 1174 | 338 |
| 4 | 1878 | 338 |
| 5 | 2772 | 338 |
| 6 | 3259 | 338 |
| 7 | 3333 | 338 |
| 8 | 3381 | 338 |
| 9 | 3413 | 338 |
| 10 | 3445 | 338 |
| 11 | 3477 | 338 |
| 12 | 3509 | 338 |
| 13 | 3541 | 338 |
| 14 | 3573 | 338 |
| 15 | 3605 | 338 |
| 16 | 3637 | 338 |
| 17 | 3669 | 338 |
| 18 | 3701 | 338 |
| 19 | 4608 | 338 |
| 20 | 4867 | 338 |
| 21 | 4960 | 338 |
| 22 | 5049 | 338 |
| 23 | 5136 | 338 |
| 24 | 5222 | 338 |
| 25 | 5435 | 338 |
| 26 | 5435 | 338 |
| 27 | 5521 | 338 |
| 28 | 5607 | 338 |
| 29 | 5693 | 338 |
| 30 | 5779 | 338 |
| 31 | 5865 | 338 |
| 32 | 5951 | 338 |
| 33 | 6037 | 338 |
| 34 | 6123 | 338 |
| 35 | 6209 | 338 |
| 1× | node limit |
| Inputs |
|---|
y |
(*.f64 z x) |
(*.f64 z x) |
y |
(*.f64 z x) |
(*.f64 z x) |
(*.f64 z x) |
y |
y |
(-.f64 (+.f64 (*.f64 z x) y) 0) |
(*.f64 (+.f64 (*.f64 z x) y) 1) |
(*.f64 1 (+.f64 (*.f64 z x) y)) |
(*.f64 2 (*.f64 (+.f64 (*.f64 z x) y) 1/2)) |
(*.f64 (*.f64 (+.f64 (*.f64 z x) y) 2) 1/2) |
(*.f64 4 (*.f64 (+.f64 (*.f64 z x) y) 1/4)) |
(*.f64 (*.f64 (+.f64 (*.f64 z x) y) 4) 1/4) |
(*.f64 (*.f64 (+.f64 (*.f64 z x) y) 8) 1/8) |
(*.f64 1/2 (*.f64 (+.f64 (*.f64 z x) y) 2)) |
(*.f64 (*.f64 (+.f64 (*.f64 z x) y) 1/2) 2) |
(*.f64 1/4 (*.f64 (+.f64 (*.f64 z x) y) 4)) |
(*.f64 (*.f64 (+.f64 (*.f64 z x) y) 1/4) 4) |
(*.f64 1/8 (*.f64 (+.f64 (*.f64 z x) y) 8)) |
(/.f64 (+.f64 (*.f64 z x) y) 1) |
(/.f64 (*.f64 (+.f64 (*.f64 z x) y) 2) 2) |
(/.f64 (*.f64 (+.f64 (*.f64 z x) y) 4) 4) |
(/.f64 (*.f64 (+.f64 (*.f64 z x) y) 8) 8) |
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 z x) y) 8)) 16) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 z x) y) 8))) 32) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 z x) y) 8)))) 64) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 z x) y) 8))))) 128) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 z x) y) 8)))))) 256) |
(pow.f64 (+.f64 (*.f64 z x) y) 1) |
| Outputs |
|---|
y |
(*.f64 z x) |
(*.f64 z x) |
y |
(*.f64 z x) |
(*.f64 z x) |
(*.f64 z x) |
y |
y |
(-.f64 (+.f64 (*.f64 z x) y) 0) |
(+.f64 y (*.f64 z x)) |
(*.f64 (+.f64 (*.f64 z x) y) 1) |
(+.f64 y (*.f64 z x)) |
(*.f64 1 (+.f64 (*.f64 z x) y)) |
(+.f64 y (*.f64 z x)) |
(*.f64 2 (*.f64 (+.f64 (*.f64 z x) y) 1/2)) |
(+.f64 y (*.f64 z x)) |
(*.f64 (*.f64 (+.f64 (*.f64 z x) y) 2) 1/2) |
(+.f64 y (*.f64 z x)) |
(*.f64 4 (*.f64 (+.f64 (*.f64 z x) y) 1/4)) |
(+.f64 y (*.f64 z x)) |
(*.f64 (*.f64 (+.f64 (*.f64 z x) y) 4) 1/4) |
(+.f64 y (*.f64 z x)) |
(*.f64 (*.f64 (+.f64 (*.f64 z x) y) 8) 1/8) |
(+.f64 y (*.f64 z x)) |
(*.f64 1/2 (*.f64 (+.f64 (*.f64 z x) y) 2)) |
(+.f64 y (*.f64 z x)) |
(*.f64 (*.f64 (+.f64 (*.f64 z x) y) 1/2) 2) |
(+.f64 y (*.f64 z x)) |
(*.f64 1/4 (*.f64 (+.f64 (*.f64 z x) y) 4)) |
(+.f64 y (*.f64 z x)) |
(*.f64 (*.f64 (+.f64 (*.f64 z x) y) 1/4) 4) |
(+.f64 y (*.f64 z x)) |
(*.f64 1/8 (*.f64 (+.f64 (*.f64 z x) y) 8)) |
(+.f64 y (*.f64 z x)) |
(/.f64 (+.f64 (*.f64 z x) y) 1) |
(+.f64 y (*.f64 z x)) |
(/.f64 (*.f64 (+.f64 (*.f64 z x) y) 2) 2) |
(+.f64 y (*.f64 z x)) |
(/.f64 (*.f64 (+.f64 (*.f64 z x) y) 4) 4) |
(+.f64 y (*.f64 z x)) |
(/.f64 (*.f64 (+.f64 (*.f64 z x) y) 8) 8) |
(+.f64 y (*.f64 z x)) |
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 z x) y) 8)) 16) |
(+.f64 y (*.f64 z x)) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 z x) y) 8))) 32) |
(+.f64 y (*.f64 z x)) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 z x) y) 8)))) 64) |
(+.f64 y (*.f64 z x)) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 z x) y) 8))))) 128) |
(+.f64 y (*.f64 z x)) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 z x) y) 8)))))) 256) |
(+.f64 y (*.f64 z x)) |
(pow.f64 (+.f64 (*.f64 z x) y) 1) |
(+.f64 y (*.f64 z x)) |
Compiled 239 to 118 computations (50.6% saved)
9 alts after pruning (1 fresh and 8 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 26 | 0 | 26 |
| Fresh | 0 | 1 | 1 |
| Picked | 0 | 1 | 1 |
| Done | 0 | 7 | 7 |
| Total | 26 | 9 | 35 |
| Status | Error | Program |
|---|---|---|
| ✓ | 0.0b | (+.f64 (*.f64 (-.f64 z y) x) y) |
| ✓ | 27.9b | (+.f64 (*.f64 (neg.f64 y) x) (*.f64 x z)) |
| ✓ | 10.9b | (+.f64 (*.f64 z x) y) |
| ✓ | 25.5b | (+.f64 y (*.f64 y (neg.f64 x))) |
| ✓ | 27.9b | (*.f64 (-.f64 z y) x) |
| ✓ | 38.1b | (*.f64 z x) |
| ✓ | 25.5b | (*.f64 y (-.f64 1 x)) |
| ✓ | 52.6b | (*.f64 y (neg.f64 x)) |
| 35.6b | y |
Compiled 71 to 47 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 (*.f64 z x) y) |
(*.f64 (+.f64 z (neg.f64 y)) x) |
(+.f64 y (*.f64 y (neg.f64 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 z y) x) y) |
4 calls:
| 9.0ms | y |
| 8.0ms | (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z)) |
| 8.0ms | z |
| 7.0ms | x |
| 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 94 to 42 computations (55.3% saved)
| Inputs |
|---|
y |
(*.f64 z x) |
(*.f64 y (neg.f64 x)) |
(*.f64 y (-.f64 1 x)) |
(*.f64 (-.f64 z y) x) |
(+.f64 (*.f64 z x) y) |
(*.f64 (+.f64 z (neg.f64 y)) x) |
(+.f64 y (*.f64 y (neg.f64 x))) |
| Outputs |
|---|
(*.f64 (-.f64 z y) x) |
(+.f64 (*.f64 z x) y) |
(*.f64 (-.f64 z y) x) |
3 calls:
| 21.0ms | z |
| 15.0ms | x |
| 11.0ms | y |
| Error | Segments | Branch |
|---|---|---|
| 0.9b | 3 | x |
| 9.5b | 2 | y |
| 6.2b | 3 | z |
Compiled 50 to 25 computations (50% saved)
| 2× | binary-search |
| Time | Left | Right |
|---|---|---|
| 21.0ms | 0.8316250534184972 | 30133517969588604.0 |
| 17.0ms | -644.0067619160212 | -0.008444684004106 |
| 33.0ms | 304× | body | 256 | valid |
| 0.0ms | 1× | body | 256 | infinite |
Compiled 360 to 241 computations (33.1% 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) |
y |
(*.f64 (-.f64 z y) x) |
3 calls:
| 17.0ms | z |
| 16.0ms | x |
| 14.0ms | y |
| Error | Segments | Branch |
|---|---|---|
| 10.6b | 3 | x |
| 12.3b | 3 | y |
| 15.9b | 3 | z |
Compiled 33 to 20 computations (39.4% saved)
| 2× | binary-search |
| Time | Left | Right |
|---|---|---|
| 13.0ms | 1.4356326684279274e-66 | 6.355509118832487e-62 |
| 17.0ms | -4.070934767237013e-97 | -1.0434779203335217e-110 |
| 26.0ms | 288× | body | 256 | valid |
Compiled 270 to 193 computations (28.5% 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)) |
3 calls:
| 14.0ms | z |
| 14.0ms | x |
| 11.0ms | y |
| Error | Segments | Branch |
|---|---|---|
| 20.8b | 3 | x |
| 15.6b | 3 | y |
| 16.7b | 3 | z |
Compiled 28 to 18 computations (35.7% saved)
| 2× | binary-search |
| Time | Left | Right |
|---|---|---|
| 17.0ms | 9.823693489471623e-164 | 1.1525576078551205e-149 |
| 16.0ms | -3.4982539078415777e-31 | -1.0124240413706248e-37 |
| 29.0ms | 304× | body | 256 | valid |
Compiled 322 to 241 computations (25.2% saved)
Total -41.6b remaining (-200.2%)
Threshold costs -41.6b (-200.2%)
| Inputs |
|---|
y |
(*.f64 z x) |
(*.f64 y (neg.f64 x)) |
| Outputs |
|---|
(*.f64 z x) |
y |
(*.f64 z x) |
3 calls:
| 14.0ms | y |
| 12.0ms | z |
| 10.0ms | x |
| Error | Segments | Branch |
|---|---|---|
| 20.8b | 3 | x |
| 22.9b | 3 | y |
| 26.0b | 3 | z |
Compiled 23 to 15 computations (34.8% saved)
| 2× | binary-search |
| Time | Left | Right |
|---|---|---|
| 13.0ms | 1.4356326684279274e-66 | 6.355509118832487e-62 |
| 13.0ms | -5.903412225497125e-88 | -2.5671862055315186e-91 |
| 24.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 | 39 | 206 |
| 1× | fuel |
| 1× | saturated |
| Inputs |
|---|
(+.f64 (*.f64 (-.f64 z y) x) y) |
(if (<=.f64 x -1) (*.f64 (-.f64 z y) x) (if (<=.f64 x 1) (+.f64 (*.f64 z x) y) (*.f64 (-.f64 z y) x))) |
(if (<=.f64 x -468956982928279/1202453802380202612679414065556140558016349465041059773802132977424491020858679523053413887173001575952350707712) (*.f64 (-.f64 z y) x) (if (<=.f64 x 8299976956530825/118571099379011784113736688648896417641748464297615937576404566024103044751294464) y (*.f64 (-.f64 z y) x))) |
(if (<=.f64 y -8141382560850035/11972621413014756705924586149611790497021399392059392) (*.f64 y (-.f64 1 x)) (if (<=.f64 y 2948408144391829/14742040721959145907193572581985425355144223517251720423344555860334469384344331453461432520225229560708860839963921269139728846210643721220943102544658968920505450496) (*.f64 z x) (*.f64 y (-.f64 1 x)))) |
(if (<=.f64 x -2598103900926253/4479489484355608421114884561136888556243290994469299069799978201927583742360321890761754986543214231552) (*.f64 z x) (if (<=.f64 x 7642277889662869/463168356949264781694283940034751631413079938662562256157830336031652518559744) y (*.f64 z x))) |
y |
| Outputs |
|---|
(+.f64 (*.f64 (-.f64 z y) x) y) |
(if (<=.f64 x -1) (*.f64 (-.f64 z y) x) (if (<=.f64 x 1) (+.f64 (*.f64 z x) y) (*.f64 (-.f64 z y) x))) |
(if (<=.f64 x -468956982928279/1202453802380202612679414065556140558016349465041059773802132977424491020858679523053413887173001575952350707712) (*.f64 (-.f64 z y) x) (if (<=.f64 x 8299976956530825/118571099379011784113736688648896417641748464297615937576404566024103044751294464) y (*.f64 (-.f64 z y) x))) |
(if (<=.f64 y -8141382560850035/11972621413014756705924586149611790497021399392059392) (*.f64 y (-.f64 1 x)) (if (<=.f64 y 2948408144391829/14742040721959145907193572581985425355144223517251720423344555860334469384344331453461432520225229560708860839963921269139728846210643721220943102544658968920505450496) (*.f64 z x) (*.f64 y (-.f64 1 x)))) |
(if (<=.f64 x -2598103900926253/4479489484355608421114884561136888556243290994469299069799978201927583742360321890761754986543214231552) (*.f64 z x) (if (<=.f64 x 7642277889662869/463168356949264781694283940034751631413079938662562256157830336031652518559744) y (*.f64 z x))) |
y |
Compiled 104 to 59 computations (43.3% saved)
| 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 |
Compiled 38 to 22 computations (42.1% saved)
Compiled 89 to 38 computations (57.3% saved)
Loading profile data...