Time bar (total: 15.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 |
| 37.3% | 34.3% | 57.7% | 0.1% | 7.8% | 0% | 0% | 10 |
| 45.1% | 41.3% | 50.3% | 0.1% | 8.2% | 0% | 0% | 11 |
| 52.5% | 46.8% | 42.3% | 0.1% | 10.7% | 0% | 0% | 12 |
Compiled 13 to 10 computations (23.1% saved)
| 2.4s | 8256× | body | 256 | valid |
| 227.0ms | 1079× | body | 256 | infinite |
| 2× | egg-herbie |
| 16× | rational.json-simplify-2 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 21 | 100 |
| 1 | 29 | 100 |
| 0 | 3 | 3 |
| 1× | saturated |
| 1× | saturated |
| Inputs |
|---|
0 |
1 |
2 |
| Outputs |
|---|
0 |
1 |
2 |
| Inputs |
|---|
(*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z))) |
(*.f64 y (-.f64 1 (*.f64 (-.f64 1 x) z))) |
(*.f64 z (-.f64 1 (*.f64 (-.f64 1 y) x))) |
(*.f64 x (-.f64 1 (*.f64 (-.f64 1 z) y))) |
| Outputs |
|---|
(*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z))) |
(*.f64 y (-.f64 1 (*.f64 (-.f64 1 x) z))) |
(*.f64 y (-.f64 1 (*.f64 z (-.f64 1 x)))) |
(*.f64 z (-.f64 1 (*.f64 (-.f64 1 y) x))) |
(*.f64 z (-.f64 1 (*.f64 x (-.f64 1 y)))) |
(*.f64 x (-.f64 1 (*.f64 (-.f64 1 z) y))) |
(*.f64 x (-.f64 1 (*.f64 y (-.f64 1 z)))) |
Compiled 15 to 12 computations (20% saved)
| 1× | egg-herbie |
| 4× | rational.json-simplify-2 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 10 | 25 |
| 1 | 12 | 25 |
| 1× | saturated |
| Inputs |
|---|
(*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z))) |
| Outputs |
|---|
(*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z))) |
Compiled 12 to 9 computations (25% 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 |
|---|---|---|
| ▶ | 3.3b | (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z))) |
Compiled 12 to 9 computations (25% saved)
Found 2 expressions with local error:
| New | Error | Program |
|---|---|---|
| ✓ | 0.0b | (*.f64 (-.f64 1 y) z) |
| ✓ | 3.1b | (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z))) |
Compiled 31 to 20 computations (35.5% saved)
15 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 1.0ms | z | @ | inf | (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z))) |
| 1.0ms | x | @ | 0 | (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z))) |
| 1.0ms | y | @ | 0 | (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z))) |
| 0.0ms | y | @ | inf | (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z))) |
| 0.0ms | z | @ | -inf | (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z))) |
| 1× | batch-egg-rewrite |
| 1880× | rational.json-simplify-1 |
| 1380× | exponential.json-3 |
| 1380× | rational.json-1 |
| 1380× | rational.json-2 |
| 1380× | rational.json-4 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 10 | 38 |
| 1 | 74 | 38 |
| 2 | 161 | 38 |
| 3 | 311 | 38 |
| 4 | 564 | 38 |
| 5 | 1255 | 38 |
| 6 | 2740 | 38 |
| 7 | 4691 | 38 |
| 8 | 6009 | 38 |
| 9 | 7119 | 38 |
| 10 | 7279 | 38 |
| 11 | 7463 | 38 |
| 12 | 7641 | 38 |
| 1× | node limit |
| Inputs |
|---|
(*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z))) |
(*.f64 (-.f64 1 y) z) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (-.f64 1 (*.f64 (-.f64 1 y) z)) (*.f64 x 1/2)) (*.f64 (-.f64 1 (*.f64 (-.f64 1 y) z)) (*.f64 x 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (*.f64 (-.f64 1 (*.f64 (-.f64 1 y) z)) 2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 1 (*.f64 (-.f64 1 y) z)) (*.f64 x 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 (-.f64 1 (*.f64 (-.f64 1 y) z)) 8) x) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 (-.f64 1 (*.f64 (-.f64 1 y) z)) 8) x)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (-.f64 1 (*.f64 (-.f64 1 y) z)) 8) x))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (-.f64 1 (*.f64 (-.f64 1 y) z)) 8) x)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (-.f64 1 (*.f64 (-.f64 1 y) z)) 8) x))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z))) 1))))) |
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (-.f64 1 y) z) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (-.f64 1 y) z))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (-.f64 1 y) (*.f64 z 1/2)) (*.f64 (-.f64 1 y) (*.f64 z 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (-.f64 1 y) z) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 1 y) z) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 1 y) (+.f64 z z)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 1 y) (*.f64 z 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 (-.f64 1 y) z) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 (-.f64 1 y) z) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (-.f64 1 y) z) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (-.f64 1 y) z) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (-.f64 1 y) z) 8))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (-.f64 1 y) z) 1))))) |
| 1× | egg-herbie |
| 2880× | rational.json-simplify-35 |
| 2390× | rational.json-simplify-2 |
| 1316× | rational.json-simplify-1 |
| 1264× | rational.json-simplify-49 |
| 1012× | exponential.json-simplify-26 |
Useful iterations: 2 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 88 | 1730 |
| 1 | 228 | 1708 |
| 2 | 468 | 1654 |
| 3 | 1073 | 1654 |
| 4 | 2991 | 1654 |
| 5 | 5030 | 1654 |
| 6 | 5835 | 1654 |
| 7 | 6090 | 1654 |
| 8 | 6280 | 1654 |
| 9 | 6460 | 1654 |
| 10 | 7255 | 1654 |
| 11 | 7496 | 1654 |
| 12 | 7505 | 1654 |
| 13 | 7507 | 1654 |
| 14 | 7507 | 1654 |
| 15 | 7678 | 1654 |
| 16 | 7849 | 1654 |
| 1× | node limit |
| Inputs |
|---|
(*.f64 (-.f64 1 (*.f64 z (-.f64 1 y))) x) |
(*.f64 (-.f64 1 (*.f64 z (-.f64 1 y))) x) |
(*.f64 (-.f64 1 (*.f64 z (-.f64 1 y))) x) |
(*.f64 (-.f64 1 (*.f64 z (-.f64 1 y))) x) |
(*.f64 (-.f64 1 (*.f64 z (-.f64 1 y))) x) |
(*.f64 (-.f64 1 (*.f64 z (-.f64 1 y))) x) |
(*.f64 (-.f64 1 (*.f64 z (-.f64 1 y))) x) |
(*.f64 (-.f64 1 (*.f64 z (-.f64 1 y))) x) |
(*.f64 (-.f64 1 (*.f64 z (-.f64 1 y))) x) |
(*.f64 (-.f64 1 (*.f64 z (-.f64 1 y))) x) |
(*.f64 (-.f64 1 (*.f64 z (-.f64 1 y))) x) |
(*.f64 (-.f64 1 (*.f64 z (-.f64 1 y))) x) |
(*.f64 (-.f64 1 z) x) |
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 (-.f64 1 z) x)) |
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 (-.f64 1 z) x)) |
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 (-.f64 1 z) x)) |
(*.f64 y (*.f64 z x)) |
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 (-.f64 1 z) x)) |
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 (-.f64 1 z) x)) |
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 (-.f64 1 z) x)) |
(*.f64 y (*.f64 z x)) |
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 (-.f64 1 z) x)) |
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 (-.f64 1 z) x)) |
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 (-.f64 1 z) x)) |
x |
(+.f64 (*.f64 z (*.f64 (-.f64 y 1) x)) x) |
(+.f64 (*.f64 z (*.f64 (-.f64 y 1) x)) x) |
(+.f64 (*.f64 z (*.f64 (-.f64 y 1) x)) x) |
(*.f64 z (*.f64 (-.f64 y 1) x)) |
(+.f64 (*.f64 z (*.f64 (-.f64 y 1) x)) x) |
(+.f64 (*.f64 z (*.f64 (-.f64 y 1) x)) x) |
(+.f64 (*.f64 z (*.f64 (-.f64 y 1) x)) x) |
(*.f64 -1 (*.f64 z (*.f64 (-.f64 1 y) x))) |
(+.f64 (*.f64 -1 (*.f64 z (*.f64 (-.f64 1 y) x))) x) |
(+.f64 (*.f64 -1 (*.f64 z (*.f64 (-.f64 1 y) x))) x) |
(+.f64 (*.f64 -1 (*.f64 z (*.f64 (-.f64 1 y) x))) x) |
z |
(+.f64 (*.f64 -1 (*.f64 y z)) z) |
(+.f64 (*.f64 -1 (*.f64 y z)) z) |
(+.f64 (*.f64 -1 (*.f64 y z)) z) |
(*.f64 -1 (*.f64 y z)) |
(+.f64 (*.f64 -1 (*.f64 y z)) z) |
(+.f64 (*.f64 -1 (*.f64 y z)) z) |
(+.f64 (*.f64 -1 (*.f64 y z)) z) |
(*.f64 -1 (*.f64 y z)) |
(+.f64 (*.f64 -1 (*.f64 y z)) z) |
(+.f64 (*.f64 -1 (*.f64 y z)) z) |
(+.f64 (*.f64 -1 (*.f64 y z)) z) |
(*.f64 z (-.f64 1 y)) |
(*.f64 z (-.f64 1 y)) |
(*.f64 z (-.f64 1 y)) |
(*.f64 z (-.f64 1 y)) |
(*.f64 z (-.f64 1 y)) |
(*.f64 z (-.f64 1 y)) |
(*.f64 z (-.f64 1 y)) |
(*.f64 z (-.f64 1 y)) |
(*.f64 z (-.f64 1 y)) |
(*.f64 z (-.f64 1 y)) |
(*.f64 z (-.f64 1 y)) |
(*.f64 z (-.f64 1 y)) |
(+.f64 (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z))) 0) |
(+.f64 0 (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z)))) |
(+.f64 (*.f64 (-.f64 1 (*.f64 (-.f64 1 y) z)) (*.f64 x 1/2)) (*.f64 (-.f64 1 (*.f64 (-.f64 1 y) z)) (*.f64 x 1/2))) |
(-.f64 (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z))) 0) |
(/.f64 (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z))) 1) |
(/.f64 (*.f64 x (*.f64 (-.f64 1 (*.f64 (-.f64 1 y) z)) 2)) 2) |
(/.f64 (*.f64 (-.f64 1 (*.f64 (-.f64 1 y) z)) (*.f64 x 4)) 4) |
(/.f64 (*.f64 (*.f64 (-.f64 1 (*.f64 (-.f64 1 y) z)) 8) x) 8) |
(/.f64 (*.f64 2 (*.f64 (*.f64 (-.f64 1 (*.f64 (-.f64 1 y) z)) 8) x)) 16) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (-.f64 1 (*.f64 (-.f64 1 y) z)) 8) x))) 32) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (-.f64 1 (*.f64 (-.f64 1 y) z)) 8) x)))) 64) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (-.f64 1 (*.f64 (-.f64 1 y) z)) 8) x))))) 128) |
(pow.f64 (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z))) 1) |
(+.f64 (*.f64 (-.f64 1 y) z) 0) |
(+.f64 0 (*.f64 (-.f64 1 y) z)) |
(+.f64 (*.f64 (-.f64 1 y) (*.f64 z 1/2)) (*.f64 (-.f64 1 y) (*.f64 z 1/2))) |
(-.f64 (*.f64 (-.f64 1 y) z) 0) |
(/.f64 (*.f64 (-.f64 1 y) z) 1) |
(/.f64 (*.f64 (-.f64 1 y) (+.f64 z z)) 2) |
(/.f64 (*.f64 (-.f64 1 y) (*.f64 z 4)) 4) |
(/.f64 (*.f64 (*.f64 (-.f64 1 y) z) 8) 8) |
(/.f64 (*.f64 2 (*.f64 (*.f64 (-.f64 1 y) z) 8)) 16) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (-.f64 1 y) z) 8))) 32) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (-.f64 1 y) z) 8)))) 64) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (-.f64 1 y) z) 8))))) 128) |
(pow.f64 (*.f64 (-.f64 1 y) z) 1) |
| Outputs |
|---|
(*.f64 (-.f64 1 (*.f64 z (-.f64 1 y))) x) |
(*.f64 x (-.f64 1 (*.f64 z (-.f64 1 y)))) |
(*.f64 (-.f64 1 (*.f64 z (-.f64 1 y))) x) |
(*.f64 x (-.f64 1 (*.f64 z (-.f64 1 y)))) |
(*.f64 (-.f64 1 (*.f64 z (-.f64 1 y))) x) |
(*.f64 x (-.f64 1 (*.f64 z (-.f64 1 y)))) |
(*.f64 (-.f64 1 (*.f64 z (-.f64 1 y))) x) |
(*.f64 x (-.f64 1 (*.f64 z (-.f64 1 y)))) |
(*.f64 (-.f64 1 (*.f64 z (-.f64 1 y))) x) |
(*.f64 x (-.f64 1 (*.f64 z (-.f64 1 y)))) |
(*.f64 (-.f64 1 (*.f64 z (-.f64 1 y))) x) |
(*.f64 x (-.f64 1 (*.f64 z (-.f64 1 y)))) |
(*.f64 (-.f64 1 (*.f64 z (-.f64 1 y))) x) |
(*.f64 x (-.f64 1 (*.f64 z (-.f64 1 y)))) |
(*.f64 (-.f64 1 (*.f64 z (-.f64 1 y))) x) |
(*.f64 x (-.f64 1 (*.f64 z (-.f64 1 y)))) |
(*.f64 (-.f64 1 (*.f64 z (-.f64 1 y))) x) |
(*.f64 x (-.f64 1 (*.f64 z (-.f64 1 y)))) |
(*.f64 (-.f64 1 (*.f64 z (-.f64 1 y))) x) |
(*.f64 x (-.f64 1 (*.f64 z (-.f64 1 y)))) |
(*.f64 (-.f64 1 (*.f64 z (-.f64 1 y))) x) |
(*.f64 x (-.f64 1 (*.f64 z (-.f64 1 y)))) |
(*.f64 (-.f64 1 (*.f64 z (-.f64 1 y))) x) |
(*.f64 x (-.f64 1 (*.f64 z (-.f64 1 y)))) |
(*.f64 (-.f64 1 z) x) |
(*.f64 x (-.f64 1 z)) |
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 (-.f64 1 z) x)) |
(+.f64 (*.f64 x (-.f64 1 z)) (*.f64 z (*.f64 x y))) |
(+.f64 (*.f64 x (-.f64 1 z)) (*.f64 z (*.f64 y x))) |
(*.f64 x (+.f64 (-.f64 1 z) (*.f64 z y))) |
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 (-.f64 1 z) x)) |
(+.f64 (*.f64 x (-.f64 1 z)) (*.f64 z (*.f64 x y))) |
(+.f64 (*.f64 x (-.f64 1 z)) (*.f64 z (*.f64 y x))) |
(*.f64 x (+.f64 (-.f64 1 z) (*.f64 z y))) |
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 (-.f64 1 z) x)) |
(+.f64 (*.f64 x (-.f64 1 z)) (*.f64 z (*.f64 x y))) |
(+.f64 (*.f64 x (-.f64 1 z)) (*.f64 z (*.f64 y x))) |
(*.f64 x (+.f64 (-.f64 1 z) (*.f64 z y))) |
(*.f64 y (*.f64 z x)) |
(*.f64 z (*.f64 x y)) |
(*.f64 z (*.f64 y x)) |
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 (-.f64 1 z) x)) |
(+.f64 (*.f64 x (-.f64 1 z)) (*.f64 z (*.f64 x y))) |
(+.f64 (*.f64 x (-.f64 1 z)) (*.f64 z (*.f64 y x))) |
(*.f64 x (+.f64 (-.f64 1 z) (*.f64 z y))) |
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 (-.f64 1 z) x)) |
(+.f64 (*.f64 x (-.f64 1 z)) (*.f64 z (*.f64 x y))) |
(+.f64 (*.f64 x (-.f64 1 z)) (*.f64 z (*.f64 y x))) |
(*.f64 x (+.f64 (-.f64 1 z) (*.f64 z y))) |
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 (-.f64 1 z) x)) |
(+.f64 (*.f64 x (-.f64 1 z)) (*.f64 z (*.f64 x y))) |
(+.f64 (*.f64 x (-.f64 1 z)) (*.f64 z (*.f64 y x))) |
(*.f64 x (+.f64 (-.f64 1 z) (*.f64 z y))) |
(*.f64 y (*.f64 z x)) |
(*.f64 z (*.f64 x y)) |
(*.f64 z (*.f64 y x)) |
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 (-.f64 1 z) x)) |
(+.f64 (*.f64 x (-.f64 1 z)) (*.f64 z (*.f64 x y))) |
(+.f64 (*.f64 x (-.f64 1 z)) (*.f64 z (*.f64 y x))) |
(*.f64 x (+.f64 (-.f64 1 z) (*.f64 z y))) |
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 (-.f64 1 z) x)) |
(+.f64 (*.f64 x (-.f64 1 z)) (*.f64 z (*.f64 x y))) |
(+.f64 (*.f64 x (-.f64 1 z)) (*.f64 z (*.f64 y x))) |
(*.f64 x (+.f64 (-.f64 1 z) (*.f64 z y))) |
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 (-.f64 1 z) x)) |
(+.f64 (*.f64 x (-.f64 1 z)) (*.f64 z (*.f64 x y))) |
(+.f64 (*.f64 x (-.f64 1 z)) (*.f64 z (*.f64 y x))) |
(*.f64 x (+.f64 (-.f64 1 z) (*.f64 z y))) |
x |
(+.f64 (*.f64 z (*.f64 (-.f64 y 1) x)) x) |
(+.f64 x (*.f64 z (*.f64 x (+.f64 y -1)))) |
(+.f64 (*.f64 z (*.f64 (-.f64 y 1) x)) x) |
(+.f64 x (*.f64 z (*.f64 x (+.f64 y -1)))) |
(+.f64 (*.f64 z (*.f64 (-.f64 y 1) x)) x) |
(+.f64 x (*.f64 z (*.f64 x (+.f64 y -1)))) |
(*.f64 z (*.f64 (-.f64 y 1) x)) |
(*.f64 z (*.f64 x (+.f64 y -1))) |
(+.f64 (*.f64 z (*.f64 (-.f64 y 1) x)) x) |
(+.f64 x (*.f64 z (*.f64 x (+.f64 y -1)))) |
(+.f64 (*.f64 z (*.f64 (-.f64 y 1) x)) x) |
(+.f64 x (*.f64 z (*.f64 x (+.f64 y -1)))) |
(+.f64 (*.f64 z (*.f64 (-.f64 y 1) x)) x) |
(+.f64 x (*.f64 z (*.f64 x (+.f64 y -1)))) |
(*.f64 -1 (*.f64 z (*.f64 (-.f64 1 y) x))) |
(*.f64 z (*.f64 x (+.f64 y -1))) |
(+.f64 (*.f64 -1 (*.f64 z (*.f64 (-.f64 1 y) x))) x) |
(+.f64 x (*.f64 z (*.f64 x (+.f64 y -1)))) |
(+.f64 (*.f64 -1 (*.f64 z (*.f64 (-.f64 1 y) x))) x) |
(+.f64 x (*.f64 z (*.f64 x (+.f64 y -1)))) |
(+.f64 (*.f64 -1 (*.f64 z (*.f64 (-.f64 1 y) x))) x) |
(+.f64 x (*.f64 z (*.f64 x (+.f64 y -1)))) |
z |
(+.f64 (*.f64 -1 (*.f64 y z)) z) |
(+.f64 z (*.f64 y (*.f64 z -1))) |
(+.f64 z (*.f64 y (neg.f64 z))) |
(+.f64 z (*.f64 z (neg.f64 y))) |
(+.f64 (*.f64 -1 (*.f64 y z)) z) |
(+.f64 z (*.f64 y (*.f64 z -1))) |
(+.f64 z (*.f64 y (neg.f64 z))) |
(+.f64 z (*.f64 z (neg.f64 y))) |
(+.f64 (*.f64 -1 (*.f64 y z)) z) |
(+.f64 z (*.f64 y (*.f64 z -1))) |
(+.f64 z (*.f64 y (neg.f64 z))) |
(+.f64 z (*.f64 z (neg.f64 y))) |
(*.f64 -1 (*.f64 y z)) |
(*.f64 y (*.f64 z -1)) |
(*.f64 y (neg.f64 z)) |
(*.f64 z (neg.f64 y)) |
(+.f64 (*.f64 -1 (*.f64 y z)) z) |
(+.f64 z (*.f64 y (*.f64 z -1))) |
(+.f64 z (*.f64 y (neg.f64 z))) |
(+.f64 z (*.f64 z (neg.f64 y))) |
(+.f64 (*.f64 -1 (*.f64 y z)) z) |
(+.f64 z (*.f64 y (*.f64 z -1))) |
(+.f64 z (*.f64 y (neg.f64 z))) |
(+.f64 z (*.f64 z (neg.f64 y))) |
(+.f64 (*.f64 -1 (*.f64 y z)) z) |
(+.f64 z (*.f64 y (*.f64 z -1))) |
(+.f64 z (*.f64 y (neg.f64 z))) |
(+.f64 z (*.f64 z (neg.f64 y))) |
(*.f64 -1 (*.f64 y z)) |
(*.f64 y (*.f64 z -1)) |
(*.f64 y (neg.f64 z)) |
(*.f64 z (neg.f64 y)) |
(+.f64 (*.f64 -1 (*.f64 y z)) z) |
(+.f64 z (*.f64 y (*.f64 z -1))) |
(+.f64 z (*.f64 y (neg.f64 z))) |
(+.f64 z (*.f64 z (neg.f64 y))) |
(+.f64 (*.f64 -1 (*.f64 y z)) z) |
(+.f64 z (*.f64 y (*.f64 z -1))) |
(+.f64 z (*.f64 y (neg.f64 z))) |
(+.f64 z (*.f64 z (neg.f64 y))) |
(+.f64 (*.f64 -1 (*.f64 y z)) z) |
(+.f64 z (*.f64 y (*.f64 z -1))) |
(+.f64 z (*.f64 y (neg.f64 z))) |
(+.f64 z (*.f64 z (neg.f64 y))) |
(*.f64 z (-.f64 1 y)) |
(*.f64 z (-.f64 1 y)) |
(*.f64 z (-.f64 1 y)) |
(*.f64 z (-.f64 1 y)) |
(*.f64 z (-.f64 1 y)) |
(*.f64 z (-.f64 1 y)) |
(*.f64 z (-.f64 1 y)) |
(*.f64 z (-.f64 1 y)) |
(*.f64 z (-.f64 1 y)) |
(*.f64 z (-.f64 1 y)) |
(*.f64 z (-.f64 1 y)) |
(*.f64 z (-.f64 1 y)) |
(+.f64 (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z))) 0) |
(*.f64 x (-.f64 1 (*.f64 z (-.f64 1 y)))) |
(+.f64 0 (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z)))) |
(*.f64 x (-.f64 1 (*.f64 z (-.f64 1 y)))) |
(+.f64 (*.f64 (-.f64 1 (*.f64 (-.f64 1 y) z)) (*.f64 x 1/2)) (*.f64 (-.f64 1 (*.f64 (-.f64 1 y) z)) (*.f64 x 1/2))) |
(*.f64 x (-.f64 1 (*.f64 z (-.f64 1 y)))) |
(-.f64 (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z))) 0) |
(*.f64 x (-.f64 1 (*.f64 z (-.f64 1 y)))) |
(/.f64 (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z))) 1) |
(*.f64 x (-.f64 1 (*.f64 z (-.f64 1 y)))) |
(/.f64 (*.f64 x (*.f64 (-.f64 1 (*.f64 (-.f64 1 y) z)) 2)) 2) |
(*.f64 x (-.f64 1 (*.f64 z (-.f64 1 y)))) |
(/.f64 (*.f64 (-.f64 1 (*.f64 (-.f64 1 y) z)) (*.f64 x 4)) 4) |
(*.f64 x (-.f64 1 (*.f64 z (-.f64 1 y)))) |
(/.f64 (*.f64 (*.f64 (-.f64 1 (*.f64 (-.f64 1 y) z)) 8) x) 8) |
(*.f64 x (-.f64 1 (*.f64 z (-.f64 1 y)))) |
(/.f64 (*.f64 2 (*.f64 (*.f64 (-.f64 1 (*.f64 (-.f64 1 y) z)) 8) x)) 16) |
(*.f64 x (-.f64 1 (*.f64 z (-.f64 1 y)))) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (-.f64 1 (*.f64 (-.f64 1 y) z)) 8) x))) 32) |
(*.f64 x (-.f64 1 (*.f64 z (-.f64 1 y)))) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (-.f64 1 (*.f64 (-.f64 1 y) z)) 8) x)))) 64) |
(*.f64 x (-.f64 1 (*.f64 z (-.f64 1 y)))) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (-.f64 1 (*.f64 (-.f64 1 y) z)) 8) x))))) 128) |
(*.f64 x (-.f64 1 (*.f64 z (-.f64 1 y)))) |
(pow.f64 (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z))) 1) |
(*.f64 x (-.f64 1 (*.f64 z (-.f64 1 y)))) |
(+.f64 (*.f64 (-.f64 1 y) z) 0) |
(*.f64 z (-.f64 1 y)) |
(+.f64 0 (*.f64 (-.f64 1 y) z)) |
(*.f64 z (-.f64 1 y)) |
(+.f64 (*.f64 (-.f64 1 y) (*.f64 z 1/2)) (*.f64 (-.f64 1 y) (*.f64 z 1/2))) |
(*.f64 z (-.f64 1 y)) |
(-.f64 (*.f64 (-.f64 1 y) z) 0) |
(*.f64 z (-.f64 1 y)) |
(/.f64 (*.f64 (-.f64 1 y) z) 1) |
(*.f64 z (-.f64 1 y)) |
(/.f64 (*.f64 (-.f64 1 y) (+.f64 z z)) 2) |
(*.f64 z (-.f64 1 y)) |
(/.f64 (*.f64 (-.f64 1 y) (*.f64 z 4)) 4) |
(*.f64 z (-.f64 1 y)) |
(/.f64 (*.f64 (*.f64 (-.f64 1 y) z) 8) 8) |
(*.f64 z (-.f64 1 y)) |
(/.f64 (*.f64 2 (*.f64 (*.f64 (-.f64 1 y) z) 8)) 16) |
(*.f64 z (-.f64 1 y)) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (-.f64 1 y) z) 8))) 32) |
(*.f64 z (-.f64 1 y)) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (-.f64 1 y) z) 8)))) 64) |
(*.f64 z (-.f64 1 y)) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (-.f64 1 y) z) 8))))) 128) |
(*.f64 z (-.f64 1 y)) |
(pow.f64 (*.f64 (-.f64 1 y) z) 1) |
(*.f64 z (-.f64 1 y)) |
Compiled 605 to 417 computations (31.1% saved)
8 alts after pruning (8 fresh and 0 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 46 | 8 | 54 |
| Fresh | 0 | 0 | 0 |
| Picked | 1 | 0 | 1 |
| Done | 0 | 0 | 0 |
| Total | 47 | 8 | 55 |
| Status | Error | Program |
|---|---|---|
| 3.1b | (+.f64 (*.f64 z (*.f64 (-.f64 y 1) x)) x) | |
| ▶ | 2.1b | (+.f64 (*.f64 y (*.f64 z x)) (*.f64 (-.f64 1 z) x)) |
| ▶ | 20.1b | (*.f64 (-.f64 1 z) x) |
| ▶ | 29.5b | (*.f64 z (*.f64 (-.f64 y 1) x)) |
| ▶ | 44.3b | (*.f64 z (*.f64 y x)) |
| ▶ | 45.0b | (*.f64 y (*.f64 z x)) |
| 18.4b | (*.f64 x (-.f64 1 (*.f64 z (neg.f64 y)))) | |
| 34.5b | x |
Compiled 146 to 99 computations (32.2% saved)
Found 3 expressions with local error:
| New | Error | Program |
|---|---|---|
| ✓ | 0.0b | (*.f64 (-.f64 1 z) x) |
| ✓ | 0.0b | (+.f64 (*.f64 y (*.f64 z x)) (*.f64 (-.f64 1 z) x)) |
| ✓ | 2.9b | (*.f64 y (*.f64 z x)) |
Compiled 34 to 15 computations (55.9% saved)
24 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 1.0ms | x | @ | inf | (*.f64 y (*.f64 z x)) |
| 1.0ms | y | @ | inf | (*.f64 y (*.f64 z x)) |
| 1.0ms | y | @ | 0 | (*.f64 y (*.f64 z x)) |
| 1.0ms | x | @ | -inf | (+.f64 (*.f64 y (*.f64 z x)) (*.f64 (-.f64 1 z) x)) |
| 0.0ms | x | @ | inf | (+.f64 (*.f64 y (*.f64 z x)) (*.f64 (-.f64 1 z) x)) |
| 1× | batch-egg-rewrite |
| 2798× | rational.json-simplify-2 |
| 1564× | rational.json-simplify-35 |
| 1264× | exponential.json-3 |
| 1264× | rational.json-1 |
| 1264× | rational.json-2 |
Useful iterations: 2 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 11 | 57 |
| 1 | 84 | 57 |
| 2 | 186 | 51 |
| 3 | 369 | 51 |
| 4 | 705 | 51 |
| 5 | 1675 | 51 |
| 6 | 3476 | 51 |
| 7 | 4855 | 51 |
| 8 | 5908 | 51 |
| 9 | 6835 | 51 |
| 10 | 6887 | 51 |
| 11 | 6932 | 51 |
| 1× | node limit |
| Inputs |
|---|
(*.f64 y (*.f64 z x)) |
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 (-.f64 1 z) x)) |
(*.f64 (-.f64 1 z) x) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 y (*.f64 z x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 y (*.f64 z x)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 z (*.f64 x (*.f64 y 1/2))) (*.f64 z (*.f64 x (*.f64 y 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 y (*.f64 z x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (*.f64 z x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 z (*.f64 y (+.f64 x x))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (*.f64 z (*.f64 x 4))) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 y (*.f64 z x)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 y (*.f64 z x)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y (*.f64 z x)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y (*.f64 z x)) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y (*.f64 z x)) 8))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 y (*.f64 z x)) 1))))) |
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 x (+.f64 (-.f64 1 z) (*.f64 y z))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (+.f64 (-.f64 1 z) (*.f64 y z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 x (+.f64 (-.f64 1 z) (*.f64 y z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x (+.f64 (-.f64 1 z) (*.f64 y z))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (*.f64 x (+.f64 (-.f64 1 z) (*.f64 y z))) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x (*.f64 2 (+.f64 (-.f64 1 z) (*.f64 y z)))) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x x) (*.f64 1/2 (+.f64 (-.f64 1 z) (*.f64 y z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x x) (/.f64 (+.f64 (-.f64 1 z) (*.f64 y z)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x x) (+.f64 (*.f64 (-.f64 1 z) 1/2) (*.f64 (*.f64 y z) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (*.f64 x (+.f64 (-.f64 1 z) (*.f64 y z))) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 x (+.f64 (-.f64 1 z) (*.f64 y z))) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 x (*.f64 2 (+.f64 (-.f64 1 z) (*.f64 y z)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (*.f64 x (*.f64 (-.f64 1 z) 2)) (*.f64 z (*.f64 y (+.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (-.f64 1 z) (*.f64 y z)) x)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (+.f64 (-.f64 1 z) (*.f64 y z))) (*.f64 x 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x 1/2) (*.f64 2 (+.f64 (-.f64 1 z) (*.f64 y z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x 1/2) (+.f64 (*.f64 (-.f64 1 z) 2) (*.f64 2 (*.f64 y z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 x (+.f64 (-.f64 1 z) (*.f64 y z))) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (*.f64 x (+.f64 (-.f64 1 z) (*.f64 y z))) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 1/2 (+.f64 (-.f64 1 z) (*.f64 y z))) (+.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 x (+.f64 (-.f64 1 z) (*.f64 y z))) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 (-.f64 1 z) (*.f64 y z)) 2) (+.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 (-.f64 1 z) 1/2) (*.f64 (*.f64 y z) 1/2)) (+.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 x (*.f64 (-.f64 1 z) 2)) (*.f64 z (*.f64 y (+.f64 x x)))) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 (-.f64 1 z) 2) (*.f64 2 (*.f64 y z))) (*.f64 x 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (+.f64 (-.f64 1 z) (*.f64 y z))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (*.f64 2 (+.f64 (-.f64 1 z) (*.f64 y z)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 x (+.f64 (-.f64 1 z) (*.f64 y z))) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 x (+.f64 (-.f64 1 z) (*.f64 y z))) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 x (+.f64 (-.f64 1 z) (*.f64 y z))) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (+.f64 (-.f64 1 z) (*.f64 y z))) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (+.f64 (-.f64 1 z) (*.f64 y z))) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (+.f64 (-.f64 1 z) (*.f64 y z))) 8))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x (+.f64 (-.f64 1 z) (*.f64 y z))) 1))))) |
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (-.f64 1 z)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 x (-.f64 1 z)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (*.f64 (-.f64 1 z) 1/2)) (*.f64 x (*.f64 (-.f64 1 z) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 x (-.f64 1 z)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (-.f64 1 z)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (*.f64 (-.f64 1 z) 2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (*.f64 (-.f64 1 z) 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 x (-.f64 1 z)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 x (-.f64 1 z)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (-.f64 1 z)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (-.f64 1 z)) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (-.f64 1 z)) 8))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x (-.f64 1 z)) 1))))) |
| 1× | egg-herbie |
| 2498× | rational.json-simplify-2 |
| 1896× | rational.json-simplify-35 |
| 1408× | rational.json-simplify-51 |
| 924× | rational.json-simplify-49 |
| 786× | rational.json-simplify-48 |
Useful iterations: 4 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 147 | 2025 |
| 1 | 363 | 1963 |
| 2 | 944 | 1963 |
| 3 | 2254 | 1963 |
| 4 | 4977 | 1947 |
| 5 | 6089 | 1947 |
| 6 | 6560 | 1947 |
| 7 | 6681 | 1947 |
| 8 | 6815 | 1947 |
| 9 | 6978 | 1947 |
| 1× | node limit |
| Inputs |
|---|
(*.f64 (-.f64 1 z) x) |
(*.f64 y (*.f64 z x)) |
(*.f64 y (*.f64 z x)) |
x |
(+.f64 (*.f64 z (+.f64 (*.f64 y x) (*.f64 -1 x))) x) |
(+.f64 (*.f64 z (+.f64 (*.f64 y x) (*.f64 -1 x))) x) |
(+.f64 (*.f64 z (+.f64 (*.f64 y x) (*.f64 -1 x))) x) |
(*.f64 z (+.f64 (*.f64 y x) (*.f64 -1 x))) |
(+.f64 (*.f64 z (+.f64 (*.f64 y x) (*.f64 -1 x))) x) |
(+.f64 (*.f64 z (+.f64 (*.f64 y x) (*.f64 -1 x))) x) |
(+.f64 (*.f64 z (+.f64 (*.f64 y x) (*.f64 -1 x))) x) |
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (*.f64 y x)) x) z)) |
(+.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (*.f64 y x)) x) z)) x) |
(+.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (*.f64 y x)) x) z)) x) |
(+.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (*.f64 y x)) x) z)) x) |
(*.f64 (-.f64 (+.f64 (*.f64 y z) 1) z) x) |
(*.f64 (-.f64 (+.f64 (*.f64 y z) 1) z) x) |
(*.f64 (-.f64 (+.f64 (*.f64 y z) 1) z) x) |
(*.f64 (-.f64 (+.f64 (*.f64 y z) 1) z) x) |
(*.f64 (-.f64 (+.f64 (*.f64 y z) 1) z) x) |
(*.f64 (-.f64 (+.f64 (*.f64 y z) 1) z) x) |
(*.f64 (-.f64 (+.f64 (*.f64 y z) 1) z) x) |
(*.f64 (-.f64 (+.f64 (*.f64 y z) 1) z) x) |
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 -1 (-.f64 1 z))) x)) |
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 -1 (-.f64 1 z))) x)) |
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 -1 (-.f64 1 z))) x)) |
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 -1 (-.f64 1 z))) x)) |
x |
(+.f64 (*.f64 -1 (*.f64 z x)) x) |
(+.f64 (*.f64 -1 (*.f64 z x)) x) |
(+.f64 (*.f64 -1 (*.f64 z x)) x) |
(*.f64 -1 (*.f64 z x)) |
(+.f64 (*.f64 -1 (*.f64 z x)) x) |
(+.f64 (*.f64 -1 (*.f64 z x)) x) |
(+.f64 (*.f64 -1 (*.f64 z x)) x) |
(*.f64 -1 (*.f64 z x)) |
(+.f64 (*.f64 -1 (*.f64 z x)) x) |
(+.f64 (*.f64 -1 (*.f64 z x)) x) |
(+.f64 (*.f64 -1 (*.f64 z x)) x) |
(+.f64 (*.f64 y (*.f64 z x)) 0) |
(+.f64 0 (*.f64 y (*.f64 z x))) |
(+.f64 (*.f64 z (*.f64 x (*.f64 y 1/2))) (*.f64 z (*.f64 x (*.f64 y 1/2)))) |
(-.f64 (*.f64 y (*.f64 z x)) 0) |
(/.f64 (*.f64 y (*.f64 z x)) 1) |
(/.f64 (*.f64 z (*.f64 y (+.f64 x x))) 2) |
(/.f64 (*.f64 y (*.f64 z (*.f64 x 4))) 4) |
(/.f64 (*.f64 (*.f64 y (*.f64 z x)) 8) 8) |
(/.f64 (*.f64 2 (*.f64 (*.f64 y (*.f64 z x)) 8)) 16) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y (*.f64 z x)) 8))) 32) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y (*.f64 z x)) 8)))) 64) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y (*.f64 z x)) 8))))) 128) |
(pow.f64 (*.f64 y (*.f64 z x)) 1) |
(-.f64 (*.f64 x (+.f64 (-.f64 1 z) (*.f64 y z))) 0) |
(*.f64 x (+.f64 (-.f64 1 z) (*.f64 y z))) |
(*.f64 1 (*.f64 x (+.f64 (-.f64 1 z) (*.f64 y z)))) |
(*.f64 (*.f64 x (+.f64 (-.f64 1 z) (*.f64 y z))) 1) |
(*.f64 2 (*.f64 (*.f64 x (+.f64 (-.f64 1 z) (*.f64 y z))) 1/2)) |
(*.f64 (*.f64 x (*.f64 2 (+.f64 (-.f64 1 z) (*.f64 y z)))) 1/2) |
(*.f64 (+.f64 x x) (*.f64 1/2 (+.f64 (-.f64 1 z) (*.f64 y z)))) |
(*.f64 (+.f64 x x) (/.f64 (+.f64 (-.f64 1 z) (*.f64 y z)) 2)) |
(*.f64 (+.f64 x x) (+.f64 (*.f64 (-.f64 1 z) 1/2) (*.f64 (*.f64 y z) 1/2))) |
(*.f64 4 (/.f64 (*.f64 x (+.f64 (-.f64 1 z) (*.f64 y z))) 4)) |
(*.f64 (*.f64 (*.f64 x (+.f64 (-.f64 1 z) (*.f64 y z))) 4) 1/4) |
(*.f64 1/2 (*.f64 x (*.f64 2 (+.f64 (-.f64 1 z) (*.f64 y z))))) |
(*.f64 1/2 (+.f64 (*.f64 x (*.f64 (-.f64 1 z) 2)) (*.f64 z (*.f64 y (+.f64 x x))))) |
(*.f64 (+.f64 (-.f64 1 z) (*.f64 y z)) x) |
(*.f64 (*.f64 2 (+.f64 (-.f64 1 z) (*.f64 y z))) (*.f64 x 1/2)) |
(*.f64 (*.f64 x 1/2) (*.f64 2 (+.f64 (-.f64 1 z) (*.f64 y z)))) |
(*.f64 (*.f64 x 1/2) (+.f64 (*.f64 (-.f64 1 z) 2) (*.f64 2 (*.f64 y z)))) |
(*.f64 (*.f64 (*.f64 x (+.f64 (-.f64 1 z) (*.f64 y z))) 1/2) 2) |
(*.f64 1/4 (*.f64 (*.f64 x (+.f64 (-.f64 1 z) (*.f64 y z))) 4)) |
(*.f64 (*.f64 1/2 (+.f64 (-.f64 1 z) (*.f64 y z))) (+.f64 x x)) |
(*.f64 (/.f64 (*.f64 x (+.f64 (-.f64 1 z) (*.f64 y z))) 4) 4) |
(*.f64 (/.f64 (+.f64 (-.f64 1 z) (*.f64 y z)) 2) (+.f64 x x)) |
(*.f64 (+.f64 (*.f64 (-.f64 1 z) 1/2) (*.f64 (*.f64 y z) 1/2)) (+.f64 x x)) |
(*.f64 (+.f64 (*.f64 x (*.f64 (-.f64 1 z) 2)) (*.f64 z (*.f64 y (+.f64 x x)))) 1/2) |
(*.f64 (+.f64 (*.f64 (-.f64 1 z) 2) (*.f64 2 (*.f64 y z))) (*.f64 x 1/2)) |
(/.f64 (*.f64 x (+.f64 (-.f64 1 z) (*.f64 y z))) 1) |
(/.f64 (*.f64 x (*.f64 2 (+.f64 (-.f64 1 z) (*.f64 y z)))) 2) |
(/.f64 (*.f64 (*.f64 x (+.f64 (-.f64 1 z) (*.f64 y z))) 4) 4) |
(/.f64 (*.f64 (*.f64 x (+.f64 (-.f64 1 z) (*.f64 y z))) 8) 8) |
(/.f64 (*.f64 2 (*.f64 (*.f64 x (+.f64 (-.f64 1 z) (*.f64 y z))) 8)) 16) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (+.f64 (-.f64 1 z) (*.f64 y z))) 8))) 32) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (+.f64 (-.f64 1 z) (*.f64 y z))) 8)))) 64) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (+.f64 (-.f64 1 z) (*.f64 y z))) 8))))) 128) |
(pow.f64 (*.f64 x (+.f64 (-.f64 1 z) (*.f64 y z))) 1) |
(+.f64 (*.f64 x (-.f64 1 z)) 0) |
(+.f64 0 (*.f64 x (-.f64 1 z))) |
(+.f64 (*.f64 x (*.f64 (-.f64 1 z) 1/2)) (*.f64 x (*.f64 (-.f64 1 z) 1/2))) |
(-.f64 (*.f64 x (-.f64 1 z)) 0) |
(/.f64 (*.f64 x (-.f64 1 z)) 1) |
(/.f64 (*.f64 x (*.f64 (-.f64 1 z) 2)) 2) |
(/.f64 (*.f64 x (*.f64 (-.f64 1 z) 4)) 4) |
(/.f64 (*.f64 (*.f64 x (-.f64 1 z)) 8) 8) |
(/.f64 (*.f64 2 (*.f64 (*.f64 x (-.f64 1 z)) 8)) 16) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (-.f64 1 z)) 8))) 32) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (-.f64 1 z)) 8)))) 64) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (-.f64 1 z)) 8))))) 128) |
(pow.f64 (*.f64 x (-.f64 1 z)) 1) |
| Outputs |
|---|
(*.f64 (-.f64 1 z) x) |
(*.f64 y (*.f64 z x)) |
(*.f64 z (*.f64 x y)) |
(*.f64 y (*.f64 z x)) |
(*.f64 z (*.f64 x y)) |
x |
(+.f64 (*.f64 z (+.f64 (*.f64 y x) (*.f64 -1 x))) x) |
(+.f64 x (*.f64 z (+.f64 (*.f64 x y) (*.f64 x -1)))) |
(+.f64 x (*.f64 z (*.f64 x (+.f64 -1 y)))) |
(+.f64 x (*.f64 z (*.f64 x (+.f64 y -1)))) |
(+.f64 (*.f64 z (+.f64 (*.f64 y x) (*.f64 -1 x))) x) |
(+.f64 x (*.f64 z (+.f64 (*.f64 x y) (*.f64 x -1)))) |
(+.f64 x (*.f64 z (*.f64 x (+.f64 -1 y)))) |
(+.f64 x (*.f64 z (*.f64 x (+.f64 y -1)))) |
(+.f64 (*.f64 z (+.f64 (*.f64 y x) (*.f64 -1 x))) x) |
(+.f64 x (*.f64 z (+.f64 (*.f64 x y) (*.f64 x -1)))) |
(+.f64 x (*.f64 z (*.f64 x (+.f64 -1 y)))) |
(+.f64 x (*.f64 z (*.f64 x (+.f64 y -1)))) |
(*.f64 z (+.f64 (*.f64 y x) (*.f64 -1 x))) |
(*.f64 z (+.f64 (*.f64 x y) (*.f64 x -1))) |
(*.f64 z (*.f64 x (+.f64 -1 y))) |
(*.f64 z (*.f64 x (+.f64 y -1))) |
(+.f64 (*.f64 z (+.f64 (*.f64 y x) (*.f64 -1 x))) x) |
(+.f64 x (*.f64 z (+.f64 (*.f64 x y) (*.f64 x -1)))) |
(+.f64 x (*.f64 z (*.f64 x (+.f64 -1 y)))) |
(+.f64 x (*.f64 z (*.f64 x (+.f64 y -1)))) |
(+.f64 (*.f64 z (+.f64 (*.f64 y x) (*.f64 -1 x))) x) |
(+.f64 x (*.f64 z (+.f64 (*.f64 x y) (*.f64 x -1)))) |
(+.f64 x (*.f64 z (*.f64 x (+.f64 -1 y)))) |
(+.f64 x (*.f64 z (*.f64 x (+.f64 y -1)))) |
(+.f64 (*.f64 z (+.f64 (*.f64 y x) (*.f64 -1 x))) x) |
(+.f64 x (*.f64 z (+.f64 (*.f64 x y) (*.f64 x -1)))) |
(+.f64 x (*.f64 z (*.f64 x (+.f64 -1 y)))) |
(+.f64 x (*.f64 z (*.f64 x (+.f64 y -1)))) |
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (*.f64 y x)) x) z)) |
(*.f64 (+.f64 x (*.f64 y (*.f64 x -1))) (*.f64 z -1)) |
(*.f64 (+.f64 x (*.f64 y (neg.f64 x))) (neg.f64 z)) |
(*.f64 (+.f64 x (*.f64 x (neg.f64 y))) (neg.f64 z)) |
(*.f64 (*.f64 x (-.f64 1 y)) (neg.f64 z)) |
(+.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (*.f64 y x)) x) z)) x) |
(+.f64 x (*.f64 (+.f64 x (*.f64 y (*.f64 x -1))) (*.f64 z -1))) |
(+.f64 x (*.f64 (+.f64 x (*.f64 y (neg.f64 x))) (neg.f64 z))) |
(+.f64 x (*.f64 (+.f64 x (*.f64 x (neg.f64 y))) (neg.f64 z))) |
(+.f64 x (*.f64 (*.f64 x (-.f64 1 y)) (neg.f64 z))) |
(+.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (*.f64 y x)) x) z)) x) |
(+.f64 x (*.f64 (+.f64 x (*.f64 y (*.f64 x -1))) (*.f64 z -1))) |
(+.f64 x (*.f64 (+.f64 x (*.f64 y (neg.f64 x))) (neg.f64 z))) |
(+.f64 x (*.f64 (+.f64 x (*.f64 x (neg.f64 y))) (neg.f64 z))) |
(+.f64 x (*.f64 (*.f64 x (-.f64 1 y)) (neg.f64 z))) |
(+.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (*.f64 y x)) x) z)) x) |
(+.f64 x (*.f64 (+.f64 x (*.f64 y (*.f64 x -1))) (*.f64 z -1))) |
(+.f64 x (*.f64 (+.f64 x (*.f64 y (neg.f64 x))) (neg.f64 z))) |
(+.f64 x (*.f64 (+.f64 x (*.f64 x (neg.f64 y))) (neg.f64 z))) |
(+.f64 x (*.f64 (*.f64 x (-.f64 1 y)) (neg.f64 z))) |
(*.f64 (-.f64 (+.f64 (*.f64 y z) 1) z) x) |
(*.f64 x (+.f64 1 (-.f64 (*.f64 z y) z))) |
(*.f64 (-.f64 (+.f64 (*.f64 y z) 1) z) x) |
(*.f64 x (+.f64 1 (-.f64 (*.f64 z y) z))) |
(*.f64 (-.f64 (+.f64 (*.f64 y z) 1) z) x) |
(*.f64 x (+.f64 1 (-.f64 (*.f64 z y) z))) |
(*.f64 (-.f64 (+.f64 (*.f64 y z) 1) z) x) |
(*.f64 x (+.f64 1 (-.f64 (*.f64 z y) z))) |
(*.f64 (-.f64 (+.f64 (*.f64 y z) 1) z) x) |
(*.f64 x (+.f64 1 (-.f64 (*.f64 z y) z))) |
(*.f64 (-.f64 (+.f64 (*.f64 y z) 1) z) x) |
(*.f64 x (+.f64 1 (-.f64 (*.f64 z y) z))) |
(*.f64 (-.f64 (+.f64 (*.f64 y z) 1) z) x) |
(*.f64 x (+.f64 1 (-.f64 (*.f64 z y) z))) |
(*.f64 (-.f64 (+.f64 (*.f64 y z) 1) z) x) |
(*.f64 x (+.f64 1 (-.f64 (*.f64 z y) z))) |
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 -1 (-.f64 1 z))) x)) |
(*.f64 x (+.f64 1 (-.f64 (*.f64 z y) z))) |
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 -1 (-.f64 1 z))) x)) |
(*.f64 x (+.f64 1 (-.f64 (*.f64 z y) z))) |
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 -1 (-.f64 1 z))) x)) |
(*.f64 x (+.f64 1 (-.f64 (*.f64 z y) z))) |
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 -1 (-.f64 1 z))) x)) |
(*.f64 x (+.f64 1 (-.f64 (*.f64 z y) z))) |
x |
(+.f64 (*.f64 -1 (*.f64 z x)) x) |
(*.f64 (-.f64 1 z) x) |
(+.f64 (*.f64 -1 (*.f64 z x)) x) |
(*.f64 (-.f64 1 z) x) |
(+.f64 (*.f64 -1 (*.f64 z x)) x) |
(*.f64 (-.f64 1 z) x) |
(*.f64 -1 (*.f64 z x)) |
(*.f64 z (*.f64 x -1)) |
(*.f64 z (neg.f64 x)) |
(neg.f64 (*.f64 z x)) |
(*.f64 x (neg.f64 z)) |
(+.f64 (*.f64 -1 (*.f64 z x)) x) |
(*.f64 (-.f64 1 z) x) |
(+.f64 (*.f64 -1 (*.f64 z x)) x) |
(*.f64 (-.f64 1 z) x) |
(+.f64 (*.f64 -1 (*.f64 z x)) x) |
(*.f64 (-.f64 1 z) x) |
(*.f64 -1 (*.f64 z x)) |
(*.f64 z (*.f64 x -1)) |
(*.f64 z (neg.f64 x)) |
(neg.f64 (*.f64 z x)) |
(*.f64 x (neg.f64 z)) |
(+.f64 (*.f64 -1 (*.f64 z x)) x) |
(*.f64 (-.f64 1 z) x) |
(+.f64 (*.f64 -1 (*.f64 z x)) x) |
(*.f64 (-.f64 1 z) x) |
(+.f64 (*.f64 -1 (*.f64 z x)) x) |
(*.f64 (-.f64 1 z) x) |
(+.f64 (*.f64 y (*.f64 z x)) 0) |
(*.f64 z (*.f64 x y)) |
(+.f64 0 (*.f64 y (*.f64 z x))) |
(*.f64 z (*.f64 x y)) |
(+.f64 (*.f64 z (*.f64 x (*.f64 y 1/2))) (*.f64 z (*.f64 x (*.f64 y 1/2)))) |
(*.f64 z (*.f64 x y)) |
(-.f64 (*.f64 y (*.f64 z x)) 0) |
(*.f64 z (*.f64 x y)) |
(/.f64 (*.f64 y (*.f64 z x)) 1) |
(*.f64 z (*.f64 x y)) |
(/.f64 (*.f64 z (*.f64 y (+.f64 x x))) 2) |
(*.f64 z (*.f64 x y)) |
(/.f64 (*.f64 y (*.f64 z (*.f64 x 4))) 4) |
(*.f64 z (*.f64 x y)) |
(/.f64 (*.f64 (*.f64 y (*.f64 z x)) 8) 8) |
(*.f64 z (*.f64 x y)) |
(/.f64 (*.f64 2 (*.f64 (*.f64 y (*.f64 z x)) 8)) 16) |
(*.f64 z (*.f64 x y)) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y (*.f64 z x)) 8))) 32) |
(*.f64 z (*.f64 x y)) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y (*.f64 z x)) 8)))) 64) |
(*.f64 z (*.f64 x y)) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y (*.f64 z x)) 8))))) 128) |
(*.f64 z (*.f64 x y)) |
(pow.f64 (*.f64 y (*.f64 z x)) 1) |
(*.f64 z (*.f64 x y)) |
(-.f64 (*.f64 x (+.f64 (-.f64 1 z) (*.f64 y z))) 0) |
(*.f64 x (+.f64 1 (-.f64 (*.f64 z y) z))) |
(*.f64 x (+.f64 (-.f64 1 z) (*.f64 y z))) |
(*.f64 x (+.f64 1 (-.f64 (*.f64 z y) z))) |
(*.f64 1 (*.f64 x (+.f64 (-.f64 1 z) (*.f64 y z)))) |
(*.f64 x (+.f64 1 (-.f64 (*.f64 z y) z))) |
(*.f64 (*.f64 x (+.f64 (-.f64 1 z) (*.f64 y z))) 1) |
(*.f64 x (+.f64 1 (-.f64 (*.f64 z y) z))) |
(*.f64 2 (*.f64 (*.f64 x (+.f64 (-.f64 1 z) (*.f64 y z))) 1/2)) |
(*.f64 x (+.f64 1 (-.f64 (*.f64 z y) z))) |
(*.f64 (*.f64 x (*.f64 2 (+.f64 (-.f64 1 z) (*.f64 y z)))) 1/2) |
(*.f64 x (+.f64 1 (-.f64 (*.f64 z y) z))) |
(*.f64 (+.f64 x x) (*.f64 1/2 (+.f64 (-.f64 1 z) (*.f64 y z)))) |
(*.f64 x (+.f64 1 (-.f64 (*.f64 z y) z))) |
(*.f64 (+.f64 x x) (/.f64 (+.f64 (-.f64 1 z) (*.f64 y z)) 2)) |
(*.f64 x (+.f64 1 (-.f64 (*.f64 z y) z))) |
(*.f64 (+.f64 x x) (+.f64 (*.f64 (-.f64 1 z) 1/2) (*.f64 (*.f64 y z) 1/2))) |
(*.f64 x (+.f64 1 (-.f64 (*.f64 z y) z))) |
(*.f64 4 (/.f64 (*.f64 x (+.f64 (-.f64 1 z) (*.f64 y z))) 4)) |
(*.f64 x (+.f64 1 (-.f64 (*.f64 z y) z))) |
(*.f64 (*.f64 (*.f64 x (+.f64 (-.f64 1 z) (*.f64 y z))) 4) 1/4) |
(*.f64 x (+.f64 1 (-.f64 (*.f64 z y) z))) |
(*.f64 1/2 (*.f64 x (*.f64 2 (+.f64 (-.f64 1 z) (*.f64 y z))))) |
(*.f64 x (+.f64 1 (-.f64 (*.f64 z y) z))) |
(*.f64 1/2 (+.f64 (*.f64 x (*.f64 (-.f64 1 z) 2)) (*.f64 z (*.f64 y (+.f64 x x))))) |
(*.f64 x (+.f64 1 (-.f64 (*.f64 z y) z))) |
(*.f64 (+.f64 (-.f64 1 z) (*.f64 y z)) x) |
(*.f64 x (+.f64 1 (-.f64 (*.f64 z y) z))) |
(*.f64 (*.f64 2 (+.f64 (-.f64 1 z) (*.f64 y z))) (*.f64 x 1/2)) |
(*.f64 x (+.f64 1 (-.f64 (*.f64 z y) z))) |
(*.f64 (*.f64 x 1/2) (*.f64 2 (+.f64 (-.f64 1 z) (*.f64 y z)))) |
(*.f64 x (+.f64 1 (-.f64 (*.f64 z y) z))) |
(*.f64 (*.f64 x 1/2) (+.f64 (*.f64 (-.f64 1 z) 2) (*.f64 2 (*.f64 y z)))) |
(*.f64 x (+.f64 1 (-.f64 (*.f64 z y) z))) |
(*.f64 (*.f64 (*.f64 x (+.f64 (-.f64 1 z) (*.f64 y z))) 1/2) 2) |
(*.f64 x (+.f64 1 (-.f64 (*.f64 z y) z))) |
(*.f64 1/4 (*.f64 (*.f64 x (+.f64 (-.f64 1 z) (*.f64 y z))) 4)) |
(*.f64 x (+.f64 1 (-.f64 (*.f64 z y) z))) |
(*.f64 (*.f64 1/2 (+.f64 (-.f64 1 z) (*.f64 y z))) (+.f64 x x)) |
(*.f64 x (+.f64 1 (-.f64 (*.f64 z y) z))) |
(*.f64 (/.f64 (*.f64 x (+.f64 (-.f64 1 z) (*.f64 y z))) 4) 4) |
(*.f64 x (+.f64 1 (-.f64 (*.f64 z y) z))) |
(*.f64 (/.f64 (+.f64 (-.f64 1 z) (*.f64 y z)) 2) (+.f64 x x)) |
(*.f64 x (+.f64 1 (-.f64 (*.f64 z y) z))) |
(*.f64 (+.f64 (*.f64 (-.f64 1 z) 1/2) (*.f64 (*.f64 y z) 1/2)) (+.f64 x x)) |
(*.f64 x (+.f64 1 (-.f64 (*.f64 z y) z))) |
(*.f64 (+.f64 (*.f64 x (*.f64 (-.f64 1 z) 2)) (*.f64 z (*.f64 y (+.f64 x x)))) 1/2) |
(*.f64 x (+.f64 1 (-.f64 (*.f64 z y) z))) |
(*.f64 (+.f64 (*.f64 (-.f64 1 z) 2) (*.f64 2 (*.f64 y z))) (*.f64 x 1/2)) |
(*.f64 x (+.f64 1 (-.f64 (*.f64 z y) z))) |
(/.f64 (*.f64 x (+.f64 (-.f64 1 z) (*.f64 y z))) 1) |
(*.f64 x (+.f64 1 (-.f64 (*.f64 z y) z))) |
(/.f64 (*.f64 x (*.f64 2 (+.f64 (-.f64 1 z) (*.f64 y z)))) 2) |
(*.f64 x (+.f64 1 (-.f64 (*.f64 z y) z))) |
(/.f64 (*.f64 (*.f64 x (+.f64 (-.f64 1 z) (*.f64 y z))) 4) 4) |
(*.f64 x (+.f64 1 (-.f64 (*.f64 z y) z))) |
(/.f64 (*.f64 (*.f64 x (+.f64 (-.f64 1 z) (*.f64 y z))) 8) 8) |
(*.f64 x (+.f64 1 (-.f64 (*.f64 z y) z))) |
(/.f64 (*.f64 2 (*.f64 (*.f64 x (+.f64 (-.f64 1 z) (*.f64 y z))) 8)) 16) |
(*.f64 x (+.f64 1 (-.f64 (*.f64 z y) z))) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (+.f64 (-.f64 1 z) (*.f64 y z))) 8))) 32) |
(*.f64 x (+.f64 1 (-.f64 (*.f64 z y) z))) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (+.f64 (-.f64 1 z) (*.f64 y z))) 8)))) 64) |
(*.f64 x (+.f64 1 (-.f64 (*.f64 z y) z))) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (+.f64 (-.f64 1 z) (*.f64 y z))) 8))))) 128) |
(*.f64 x (+.f64 1 (-.f64 (*.f64 z y) z))) |
(pow.f64 (*.f64 x (+.f64 (-.f64 1 z) (*.f64 y z))) 1) |
(*.f64 x (+.f64 1 (-.f64 (*.f64 z y) z))) |
(+.f64 (*.f64 x (-.f64 1 z)) 0) |
(*.f64 (-.f64 1 z) x) |
(+.f64 0 (*.f64 x (-.f64 1 z))) |
(*.f64 (-.f64 1 z) x) |
(+.f64 (*.f64 x (*.f64 (-.f64 1 z) 1/2)) (*.f64 x (*.f64 (-.f64 1 z) 1/2))) |
(*.f64 (-.f64 1 z) x) |
(-.f64 (*.f64 x (-.f64 1 z)) 0) |
(*.f64 (-.f64 1 z) x) |
(/.f64 (*.f64 x (-.f64 1 z)) 1) |
(*.f64 (-.f64 1 z) x) |
(/.f64 (*.f64 x (*.f64 (-.f64 1 z) 2)) 2) |
(*.f64 (-.f64 1 z) x) |
(/.f64 (*.f64 x (*.f64 (-.f64 1 z) 4)) 4) |
(*.f64 (-.f64 1 z) x) |
(/.f64 (*.f64 (*.f64 x (-.f64 1 z)) 8) 8) |
(*.f64 (-.f64 1 z) x) |
(/.f64 (*.f64 2 (*.f64 (*.f64 x (-.f64 1 z)) 8)) 16) |
(*.f64 (-.f64 1 z) x) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (-.f64 1 z)) 8))) 32) |
(*.f64 (-.f64 1 z) x) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (-.f64 1 z)) 8)))) 64) |
(*.f64 (-.f64 1 z) x) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (-.f64 1 z)) 8))))) 128) |
(*.f64 (-.f64 1 z) x) |
(pow.f64 (*.f64 x (-.f64 1 z)) 1) |
(*.f64 (-.f64 1 z) x) |
Found 1 expressions with local error:
| New | Error | Program |
|---|---|---|
| 2.9b | (*.f64 y (*.f64 z x)) |
Compiled 14 to 5 computations (64.3% saved)
Found 1 expressions with local error:
| New | Error | Program |
|---|---|---|
| ✓ | 5.2b | (*.f64 z (*.f64 y x)) |
Compiled 14 to 5 computations (64.3% saved)
9 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 0.0ms | z | @ | 0 | (*.f64 z (*.f64 y x)) |
| 0.0ms | x | @ | -inf | (*.f64 z (*.f64 y x)) |
| 0.0ms | y | @ | -inf | (*.f64 z (*.f64 y x)) |
| 0.0ms | y | @ | inf | (*.f64 z (*.f64 y x)) |
| 0.0ms | z | @ | inf | (*.f64 z (*.f64 y x)) |
| 1× | batch-egg-rewrite |
| 2168× | rational.json-simplify-2 |
| 1512× | rational.json-simplify-1 |
| 1370× | exponential.json-3 |
| 1370× | rational.json-1 |
| 1370× | rational.json-2 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 7 | 13 |
| 1 | 48 | 13 |
| 2 | 117 | 13 |
| 3 | 250 | 13 |
| 4 | 452 | 13 |
| 5 | 1058 | 13 |
| 6 | 2170 | 13 |
| 7 | 3361 | 13 |
| 8 | 3993 | 13 |
| 9 | 4949 | 13 |
| 10 | 5542 | 13 |
| 11 | 5542 | 13 |
| 12 | 6896 | 13 |
| 13 | 7986 | 13 |
| 1× | node limit |
| Inputs |
|---|
(*.f64 z (*.f64 y x)) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 z (*.f64 y x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 z (*.f64 y x)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 z (*.f64 (*.f64 y x) 1/2)) (*.f64 z (*.f64 (*.f64 y x) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 z (*.f64 y x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 z (*.f64 y x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 z (*.f64 y (+.f64 x x))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (*.f64 z (*.f64 x 4))) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 z (*.f64 y (*.f64 x 8))) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 z (*.f64 y (*.f64 x 8)))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 z (*.f64 y (*.f64 x 8))))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 z (*.f64 y (*.f64 x 8)))))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 z (*.f64 y (*.f64 x 8))))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 z (*.f64 y (*.f64 x 8)))))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 z (*.f64 y x)) 1))))) |
| 1× | egg-herbie |
| 4310× | rational.json-simplify-53 |
| 3568× | rational.json-simplify-35 |
| 2436× | rational.json-simplify-2 |
| 1568× | exponential.json-simplify-26 |
| 698× | rational.json-simplify-43 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 50 | 650 |
| 1 | 137 | 650 |
| 2 | 291 | 650 |
| 3 | 729 | 650 |
| 4 | 1987 | 650 |
| 5 | 3628 | 650 |
| 6 | 4116 | 650 |
| 7 | 4453 | 650 |
| 8 | 4651 | 650 |
| 9 | 4843 | 650 |
| 10 | 5737 | 650 |
| 11 | 6486 | 650 |
| 12 | 6486 | 650 |
| 13 | 6486 | 650 |
| 14 | 6677 | 650 |
| 15 | 6868 | 650 |
| 16 | 7059 | 650 |
| 17 | 7250 | 650 |
| 18 | 7441 | 650 |
| 1× | node limit |
| Inputs |
|---|
(*.f64 y (*.f64 z x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 y (*.f64 z x)) |
(+.f64 (*.f64 z (*.f64 y x)) 0) |
(+.f64 0 (*.f64 z (*.f64 y x))) |
(+.f64 (*.f64 z (*.f64 (*.f64 y x) 1/2)) (*.f64 z (*.f64 (*.f64 y x) 1/2))) |
(-.f64 (*.f64 z (*.f64 y x)) 0) |
(/.f64 (*.f64 z (*.f64 y x)) 1) |
(/.f64 (*.f64 z (*.f64 y (+.f64 x x))) 2) |
(/.f64 (*.f64 y (*.f64 z (*.f64 x 4))) 4) |
(/.f64 (*.f64 z (*.f64 y (*.f64 x 8))) 8) |
(/.f64 (*.f64 2 (*.f64 z (*.f64 y (*.f64 x 8)))) 16) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 z (*.f64 y (*.f64 x 8))))) 32) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 z (*.f64 y (*.f64 x 8)))))) 64) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 z (*.f64 y (*.f64 x 8))))))) 128) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 z (*.f64 y (*.f64 x 8)))))))) 256) |
(pow.f64 (*.f64 z (*.f64 y x)) 1) |
| Outputs |
|---|
(*.f64 y (*.f64 z x)) |
(*.f64 z (*.f64 y x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 z (*.f64 y x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 z (*.f64 y x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 z (*.f64 y x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 z (*.f64 y x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 z (*.f64 y x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 z (*.f64 y x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 z (*.f64 y x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 z (*.f64 y x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 z (*.f64 y x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 z (*.f64 y x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 z (*.f64 y x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 z (*.f64 y x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 z (*.f64 y x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 z (*.f64 y x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 z (*.f64 y x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 z (*.f64 y x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 z (*.f64 y x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 z (*.f64 y x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 z (*.f64 y x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 z (*.f64 y x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 z (*.f64 y x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 z (*.f64 y x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 z (*.f64 y x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 z (*.f64 y x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 z (*.f64 y x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 z (*.f64 y x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 z (*.f64 y x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 z (*.f64 y x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 z (*.f64 y x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 z (*.f64 y x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 z (*.f64 y x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 z (*.f64 y x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 z (*.f64 y x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 z (*.f64 y x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 z (*.f64 y x)) |
(+.f64 (*.f64 z (*.f64 y x)) 0) |
(*.f64 y (*.f64 z x)) |
(*.f64 z (*.f64 y x)) |
(+.f64 0 (*.f64 z (*.f64 y x))) |
(*.f64 y (*.f64 z x)) |
(*.f64 z (*.f64 y x)) |
(+.f64 (*.f64 z (*.f64 (*.f64 y x) 1/2)) (*.f64 z (*.f64 (*.f64 y x) 1/2))) |
(*.f64 y (*.f64 z x)) |
(*.f64 z (*.f64 y x)) |
(-.f64 (*.f64 z (*.f64 y x)) 0) |
(*.f64 y (*.f64 z x)) |
(*.f64 z (*.f64 y x)) |
(/.f64 (*.f64 z (*.f64 y x)) 1) |
(*.f64 y (*.f64 z x)) |
(*.f64 z (*.f64 y x)) |
(/.f64 (*.f64 z (*.f64 y (+.f64 x x))) 2) |
(*.f64 y (*.f64 z x)) |
(*.f64 z (*.f64 y x)) |
(/.f64 (*.f64 y (*.f64 z (*.f64 x 4))) 4) |
(*.f64 y (*.f64 z x)) |
(*.f64 z (*.f64 y x)) |
(/.f64 (*.f64 z (*.f64 y (*.f64 x 8))) 8) |
(*.f64 y (*.f64 z x)) |
(*.f64 z (*.f64 y x)) |
(/.f64 (*.f64 2 (*.f64 z (*.f64 y (*.f64 x 8)))) 16) |
(*.f64 y (*.f64 z x)) |
(*.f64 z (*.f64 y x)) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 z (*.f64 y (*.f64 x 8))))) 32) |
(*.f64 y (*.f64 z x)) |
(*.f64 z (*.f64 y x)) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 z (*.f64 y (*.f64 x 8)))))) 64) |
(*.f64 y (*.f64 z x)) |
(*.f64 z (*.f64 y x)) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 z (*.f64 y (*.f64 x 8))))))) 128) |
(*.f64 y (*.f64 z x)) |
(*.f64 z (*.f64 y x)) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 z (*.f64 y (*.f64 x 8)))))))) 256) |
(*.f64 y (*.f64 z x)) |
(*.f64 z (*.f64 y x)) |
(pow.f64 (*.f64 z (*.f64 y x)) 1) |
(*.f64 y (*.f64 z x)) |
(*.f64 z (*.f64 y x)) |
Found 1 expressions with local error:
| New | Error | Program |
|---|---|---|
| 0.0b | (*.f64 (-.f64 1 z) x) |
Compiled 14 to 9 computations (35.7% saved)
Found 2 expressions with local error:
| New | Error | Program |
|---|---|---|
| ✓ | 0.0b | (*.f64 (-.f64 y 1) x) |
| ✓ | 2.9b | (*.f64 z (*.f64 (-.f64 y 1) x)) |
Compiled 22 to 13 computations (40.9% saved)
15 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 1.0ms | z | @ | 0 | (*.f64 z (*.f64 (-.f64 y 1) x)) |
| 0.0ms | x | @ | inf | (*.f64 z (*.f64 (-.f64 y 1) x)) |
| 0.0ms | x | @ | 0 | (*.f64 z (*.f64 (-.f64 y 1) x)) |
| 0.0ms | z | @ | inf | (*.f64 z (*.f64 (-.f64 y 1) x)) |
| 0.0ms | y | @ | 0 | (*.f64 z (*.f64 (-.f64 y 1) x)) |
| 1× | batch-egg-rewrite |
| 1872× | rational.json-simplify-35 |
| 1764× | rational.json-simplify-1 |
| 1412× | exponential.json-3 |
| 1412× | rational.json-1 |
| 1412× | rational.json-2 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 9 | 32 |
| 1 | 72 | 32 |
| 2 | 171 | 32 |
| 3 | 322 | 32 |
| 4 | 596 | 32 |
| 5 | 1361 | 32 |
| 6 | 2982 | 32 |
| 7 | 4756 | 32 |
| 8 | 5565 | 32 |
| 9 | 6959 | 32 |
| 10 | 7882 | 32 |
| 11 | 7882 | 32 |
| 1× | node limit |
| Inputs |
|---|
(*.f64 z (*.f64 (-.f64 y 1) x)) |
(*.f64 (-.f64 y 1) x) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 z (*.f64 (+.f64 y -1) x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 z (*.f64 (+.f64 y -1) x)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 y -1) (*.f64 x (*.f64 z 1/2))) (*.f64 (+.f64 y -1) (*.f64 x (*.f64 z 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 z (*.f64 (+.f64 y -1) x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 z (*.f64 (+.f64 y -1) x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 z (*.f64 (+.f64 y -1) (+.f64 x x))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 y -1) (*.f64 z (*.f64 x 4))) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 z (*.f64 (+.f64 y -1) x)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 z (*.f64 (+.f64 y -1) x)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 z (*.f64 (+.f64 y -1) x)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 z (*.f64 (+.f64 y -1) x)) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 z (*.f64 (+.f64 y -1) x)) 8))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 z (*.f64 (+.f64 y -1) x)) 8)))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 z (*.f64 (+.f64 y -1) x)) 1))))) |
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 y -1) x) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (+.f64 y -1) x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 y -1) (*.f64 x 1/2)) (*.f64 (+.f64 y -1) (*.f64 x 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (+.f64 y -1) x) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 y -1) x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 y -1) (+.f64 x x)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 y -1) (*.f64 x 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 (+.f64 y -1) x) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 (+.f64 y -1) x) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 y -1) x) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 y -1) x) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 y -1) x) 8))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 y -1) x) 8)))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (+.f64 y -1) x) 1))))) |
| 1× | egg-herbie |
| 3602× | rational.json-simplify-35 |
| 1664× | exponential.json-simplify-26 |
| 1622× | rational.json-simplify-2 |
| 1462× | rational.json-simplify-53 |
| 1052× | exponential.json-simplify-11 |
Useful iterations: 1 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 79 | 1210 |
| 1 | 217 | 792 |
| 2 | 482 | 792 |
| 3 | 1178 | 792 |
| 4 | 3046 | 792 |
| 5 | 3993 | 792 |
| 6 | 4276 | 792 |
| 7 | 4479 | 792 |
| 8 | 4659 | 792 |
| 9 | 4832 | 792 |
| 10 | 6221 | 792 |
| 11 | 7006 | 792 |
| 12 | 7008 | 792 |
| 13 | 7011 | 792 |
| 14 | 7014 | 792 |
| 15 | 7182 | 792 |
| 16 | 7349 | 792 |
| 17 | 7513 | 792 |
| 18 | 7677 | 792 |
| 19 | 7841 | 792 |
| 1× | node limit |
| Inputs |
|---|
(*.f64 -1 (*.f64 z x)) |
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 -1 (*.f64 z x))) |
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 -1 (*.f64 z x))) |
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 -1 (*.f64 z x))) |
(*.f64 y (*.f64 z x)) |
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 -1 (*.f64 z x))) |
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 -1 (*.f64 z x))) |
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 -1 (*.f64 z x))) |
(*.f64 y (*.f64 z x)) |
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 -1 (*.f64 z x))) |
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 -1 (*.f64 z x))) |
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 -1 (*.f64 z x))) |
(*.f64 -1 x) |
(+.f64 (*.f64 y x) (*.f64 -1 x)) |
(+.f64 (*.f64 y x) (*.f64 -1 x)) |
(+.f64 (*.f64 y x) (*.f64 -1 x)) |
(*.f64 y x) |
(+.f64 (*.f64 y x) (*.f64 -1 x)) |
(+.f64 (*.f64 y x) (*.f64 -1 x)) |
(+.f64 (*.f64 y x) (*.f64 -1 x)) |
(*.f64 y x) |
(+.f64 (*.f64 y x) (*.f64 -1 x)) |
(+.f64 (*.f64 y x) (*.f64 -1 x)) |
(+.f64 (*.f64 y x) (*.f64 -1 x)) |
(+.f64 (*.f64 z (*.f64 (+.f64 y -1) x)) 0) |
(+.f64 0 (*.f64 z (*.f64 (+.f64 y -1) x))) |
(+.f64 (*.f64 (+.f64 y -1) (*.f64 x (*.f64 z 1/2))) (*.f64 (+.f64 y -1) (*.f64 x (*.f64 z 1/2)))) |
(-.f64 (*.f64 z (*.f64 (+.f64 y -1) x)) 0) |
(/.f64 (*.f64 z (*.f64 (+.f64 y -1) x)) 1) |
(/.f64 (*.f64 z (*.f64 (+.f64 y -1) (+.f64 x x))) 2) |
(/.f64 (*.f64 (+.f64 y -1) (*.f64 z (*.f64 x 4))) 4) |
(/.f64 (*.f64 (*.f64 z (*.f64 (+.f64 y -1) x)) 8) 8) |
(/.f64 (*.f64 2 (*.f64 (*.f64 z (*.f64 (+.f64 y -1) x)) 8)) 16) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 z (*.f64 (+.f64 y -1) x)) 8))) 32) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 z (*.f64 (+.f64 y -1) x)) 8)))) 64) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 z (*.f64 (+.f64 y -1) x)) 8))))) 128) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 z (*.f64 (+.f64 y -1) x)) 8)))))) 256) |
(pow.f64 (*.f64 z (*.f64 (+.f64 y -1) x)) 1) |
(+.f64 (*.f64 (+.f64 y -1) x) 0) |
(+.f64 0 (*.f64 (+.f64 y -1) x)) |
(+.f64 (*.f64 (+.f64 y -1) (*.f64 x 1/2)) (*.f64 (+.f64 y -1) (*.f64 x 1/2))) |
(-.f64 (*.f64 (+.f64 y -1) x) 0) |
(/.f64 (*.f64 (+.f64 y -1) x) 1) |
(/.f64 (*.f64 (+.f64 y -1) (+.f64 x x)) 2) |
(/.f64 (*.f64 (+.f64 y -1) (*.f64 x 4)) 4) |
(/.f64 (*.f64 (*.f64 (+.f64 y -1) x) 8) 8) |
(/.f64 (*.f64 2 (*.f64 (*.f64 (+.f64 y -1) x) 8)) 16) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 y -1) x) 8))) 32) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 y -1) x) 8)))) 64) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 y -1) x) 8))))) 128) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 y -1) x) 8)))))) 256) |
(pow.f64 (*.f64 (+.f64 y -1) x) 1) |
| Outputs |
|---|
(*.f64 -1 (*.f64 z x)) |
(*.f64 z (neg.f64 x)) |
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 -1 (*.f64 z x))) |
(+.f64 (*.f64 -1 (*.f64 z x)) (*.f64 z (*.f64 x y))) |
(*.f64 x (*.f64 (+.f64 -1 y) z)) |
(*.f64 z (*.f64 x (+.f64 -1 y))) |
(*.f64 (*.f64 z x) (+.f64 -1 y)) |
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 -1 (*.f64 z x))) |
(+.f64 (*.f64 -1 (*.f64 z x)) (*.f64 z (*.f64 x y))) |
(*.f64 x (*.f64 (+.f64 -1 y) z)) |
(*.f64 z (*.f64 x (+.f64 -1 y))) |
(*.f64 (*.f64 z x) (+.f64 -1 y)) |
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 -1 (*.f64 z x))) |
(+.f64 (*.f64 -1 (*.f64 z x)) (*.f64 z (*.f64 x y))) |
(*.f64 x (*.f64 (+.f64 -1 y) z)) |
(*.f64 z (*.f64 x (+.f64 -1 y))) |
(*.f64 (*.f64 z x) (+.f64 -1 y)) |
(*.f64 y (*.f64 z x)) |
(*.f64 z (*.f64 x y)) |
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 -1 (*.f64 z x))) |
(+.f64 (*.f64 -1 (*.f64 z x)) (*.f64 z (*.f64 x y))) |
(*.f64 x (*.f64 (+.f64 -1 y) z)) |
(*.f64 z (*.f64 x (+.f64 -1 y))) |
(*.f64 (*.f64 z x) (+.f64 -1 y)) |
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 -1 (*.f64 z x))) |
(+.f64 (*.f64 -1 (*.f64 z x)) (*.f64 z (*.f64 x y))) |
(*.f64 x (*.f64 (+.f64 -1 y) z)) |
(*.f64 z (*.f64 x (+.f64 -1 y))) |
(*.f64 (*.f64 z x) (+.f64 -1 y)) |
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 -1 (*.f64 z x))) |
(+.f64 (*.f64 -1 (*.f64 z x)) (*.f64 z (*.f64 x y))) |
(*.f64 x (*.f64 (+.f64 -1 y) z)) |
(*.f64 z (*.f64 x (+.f64 -1 y))) |
(*.f64 (*.f64 z x) (+.f64 -1 y)) |
(*.f64 y (*.f64 z x)) |
(*.f64 z (*.f64 x y)) |
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 -1 (*.f64 z x))) |
(+.f64 (*.f64 -1 (*.f64 z x)) (*.f64 z (*.f64 x y))) |
(*.f64 x (*.f64 (+.f64 -1 y) z)) |
(*.f64 z (*.f64 x (+.f64 -1 y))) |
(*.f64 (*.f64 z x) (+.f64 -1 y)) |
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 -1 (*.f64 z x))) |
(+.f64 (*.f64 -1 (*.f64 z x)) (*.f64 z (*.f64 x y))) |
(*.f64 x (*.f64 (+.f64 -1 y) z)) |
(*.f64 z (*.f64 x (+.f64 -1 y))) |
(*.f64 (*.f64 z x) (+.f64 -1 y)) |
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 -1 (*.f64 z x))) |
(+.f64 (*.f64 -1 (*.f64 z x)) (*.f64 z (*.f64 x y))) |
(*.f64 x (*.f64 (+.f64 -1 y) z)) |
(*.f64 z (*.f64 x (+.f64 -1 y))) |
(*.f64 (*.f64 z x) (+.f64 -1 y)) |
(*.f64 -1 x) |
(neg.f64 x) |
(+.f64 (*.f64 y x) (*.f64 -1 x)) |
(+.f64 (*.f64 -1 x) (*.f64 x y)) |
(*.f64 x (+.f64 -1 y)) |
(+.f64 (*.f64 y x) (*.f64 -1 x)) |
(+.f64 (*.f64 -1 x) (*.f64 x y)) |
(*.f64 x (+.f64 -1 y)) |
(+.f64 (*.f64 y x) (*.f64 -1 x)) |
(+.f64 (*.f64 -1 x) (*.f64 x y)) |
(*.f64 x (+.f64 -1 y)) |
(*.f64 y x) |
(*.f64 x y) |
(+.f64 (*.f64 y x) (*.f64 -1 x)) |
(+.f64 (*.f64 -1 x) (*.f64 x y)) |
(*.f64 x (+.f64 -1 y)) |
(+.f64 (*.f64 y x) (*.f64 -1 x)) |
(+.f64 (*.f64 -1 x) (*.f64 x y)) |
(*.f64 x (+.f64 -1 y)) |
(+.f64 (*.f64 y x) (*.f64 -1 x)) |
(+.f64 (*.f64 -1 x) (*.f64 x y)) |
(*.f64 x (+.f64 -1 y)) |
(*.f64 y x) |
(*.f64 x y) |
(+.f64 (*.f64 y x) (*.f64 -1 x)) |
(+.f64 (*.f64 -1 x) (*.f64 x y)) |
(*.f64 x (+.f64 -1 y)) |
(+.f64 (*.f64 y x) (*.f64 -1 x)) |
(+.f64 (*.f64 -1 x) (*.f64 x y)) |
(*.f64 x (+.f64 -1 y)) |
(+.f64 (*.f64 y x) (*.f64 -1 x)) |
(+.f64 (*.f64 -1 x) (*.f64 x y)) |
(*.f64 x (+.f64 -1 y)) |
(+.f64 (*.f64 z (*.f64 (+.f64 y -1) x)) 0) |
(+.f64 (*.f64 -1 (*.f64 z x)) (*.f64 z (*.f64 x y))) |
(*.f64 x (*.f64 (+.f64 -1 y) z)) |
(*.f64 z (*.f64 x (+.f64 -1 y))) |
(*.f64 (*.f64 z x) (+.f64 -1 y)) |
(+.f64 0 (*.f64 z (*.f64 (+.f64 y -1) x))) |
(+.f64 (*.f64 -1 (*.f64 z x)) (*.f64 z (*.f64 x y))) |
(*.f64 x (*.f64 (+.f64 -1 y) z)) |
(*.f64 z (*.f64 x (+.f64 -1 y))) |
(*.f64 (*.f64 z x) (+.f64 -1 y)) |
(+.f64 (*.f64 (+.f64 y -1) (*.f64 x (*.f64 z 1/2))) (*.f64 (+.f64 y -1) (*.f64 x (*.f64 z 1/2)))) |
(+.f64 (*.f64 -1 (*.f64 z x)) (*.f64 z (*.f64 x y))) |
(*.f64 x (*.f64 (+.f64 -1 y) z)) |
(*.f64 z (*.f64 x (+.f64 -1 y))) |
(*.f64 (*.f64 z x) (+.f64 -1 y)) |
(-.f64 (*.f64 z (*.f64 (+.f64 y -1) x)) 0) |
(+.f64 (*.f64 -1 (*.f64 z x)) (*.f64 z (*.f64 x y))) |
(*.f64 x (*.f64 (+.f64 -1 y) z)) |
(*.f64 z (*.f64 x (+.f64 -1 y))) |
(*.f64 (*.f64 z x) (+.f64 -1 y)) |
(/.f64 (*.f64 z (*.f64 (+.f64 y -1) x)) 1) |
(+.f64 (*.f64 -1 (*.f64 z x)) (*.f64 z (*.f64 x y))) |
(*.f64 x (*.f64 (+.f64 -1 y) z)) |
(*.f64 z (*.f64 x (+.f64 -1 y))) |
(*.f64 (*.f64 z x) (+.f64 -1 y)) |
(/.f64 (*.f64 z (*.f64 (+.f64 y -1) (+.f64 x x))) 2) |
(+.f64 (*.f64 -1 (*.f64 z x)) (*.f64 z (*.f64 x y))) |
(*.f64 x (*.f64 (+.f64 -1 y) z)) |
(*.f64 z (*.f64 x (+.f64 -1 y))) |
(*.f64 (*.f64 z x) (+.f64 -1 y)) |
(/.f64 (*.f64 (+.f64 y -1) (*.f64 z (*.f64 x 4))) 4) |
(+.f64 (*.f64 -1 (*.f64 z x)) (*.f64 z (*.f64 x y))) |
(*.f64 x (*.f64 (+.f64 -1 y) z)) |
(*.f64 z (*.f64 x (+.f64 -1 y))) |
(*.f64 (*.f64 z x) (+.f64 -1 y)) |
(/.f64 (*.f64 (*.f64 z (*.f64 (+.f64 y -1) x)) 8) 8) |
(+.f64 (*.f64 -1 (*.f64 z x)) (*.f64 z (*.f64 x y))) |
(*.f64 x (*.f64 (+.f64 -1 y) z)) |
(*.f64 z (*.f64 x (+.f64 -1 y))) |
(*.f64 (*.f64 z x) (+.f64 -1 y)) |
(/.f64 (*.f64 2 (*.f64 (*.f64 z (*.f64 (+.f64 y -1) x)) 8)) 16) |
(+.f64 (*.f64 -1 (*.f64 z x)) (*.f64 z (*.f64 x y))) |
(*.f64 x (*.f64 (+.f64 -1 y) z)) |
(*.f64 z (*.f64 x (+.f64 -1 y))) |
(*.f64 (*.f64 z x) (+.f64 -1 y)) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 z (*.f64 (+.f64 y -1) x)) 8))) 32) |
(+.f64 (*.f64 -1 (*.f64 z x)) (*.f64 z (*.f64 x y))) |
(*.f64 x (*.f64 (+.f64 -1 y) z)) |
(*.f64 z (*.f64 x (+.f64 -1 y))) |
(*.f64 (*.f64 z x) (+.f64 -1 y)) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 z (*.f64 (+.f64 y -1) x)) 8)))) 64) |
(+.f64 (*.f64 -1 (*.f64 z x)) (*.f64 z (*.f64 x y))) |
(*.f64 x (*.f64 (+.f64 -1 y) z)) |
(*.f64 z (*.f64 x (+.f64 -1 y))) |
(*.f64 (*.f64 z x) (+.f64 -1 y)) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 z (*.f64 (+.f64 y -1) x)) 8))))) 128) |
(+.f64 (*.f64 -1 (*.f64 z x)) (*.f64 z (*.f64 x y))) |
(*.f64 x (*.f64 (+.f64 -1 y) z)) |
(*.f64 z (*.f64 x (+.f64 -1 y))) |
(*.f64 (*.f64 z x) (+.f64 -1 y)) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 z (*.f64 (+.f64 y -1) x)) 8)))))) 256) |
(+.f64 (*.f64 -1 (*.f64 z x)) (*.f64 z (*.f64 x y))) |
(*.f64 x (*.f64 (+.f64 -1 y) z)) |
(*.f64 z (*.f64 x (+.f64 -1 y))) |
(*.f64 (*.f64 z x) (+.f64 -1 y)) |
(pow.f64 (*.f64 z (*.f64 (+.f64 y -1) x)) 1) |
(+.f64 (*.f64 -1 (*.f64 z x)) (*.f64 z (*.f64 x y))) |
(*.f64 x (*.f64 (+.f64 -1 y) z)) |
(*.f64 z (*.f64 x (+.f64 -1 y))) |
(*.f64 (*.f64 z x) (+.f64 -1 y)) |
(+.f64 (*.f64 (+.f64 y -1) x) 0) |
(+.f64 (*.f64 -1 x) (*.f64 x y)) |
(*.f64 x (+.f64 -1 y)) |
(+.f64 0 (*.f64 (+.f64 y -1) x)) |
(+.f64 (*.f64 -1 x) (*.f64 x y)) |
(*.f64 x (+.f64 -1 y)) |
(+.f64 (*.f64 (+.f64 y -1) (*.f64 x 1/2)) (*.f64 (+.f64 y -1) (*.f64 x 1/2))) |
(+.f64 (*.f64 -1 x) (*.f64 x y)) |
(*.f64 x (+.f64 -1 y)) |
(-.f64 (*.f64 (+.f64 y -1) x) 0) |
(+.f64 (*.f64 -1 x) (*.f64 x y)) |
(*.f64 x (+.f64 -1 y)) |
(/.f64 (*.f64 (+.f64 y -1) x) 1) |
(+.f64 (*.f64 -1 x) (*.f64 x y)) |
(*.f64 x (+.f64 -1 y)) |
(/.f64 (*.f64 (+.f64 y -1) (+.f64 x x)) 2) |
(+.f64 (*.f64 -1 x) (*.f64 x y)) |
(*.f64 x (+.f64 -1 y)) |
(/.f64 (*.f64 (+.f64 y -1) (*.f64 x 4)) 4) |
(+.f64 (*.f64 -1 x) (*.f64 x y)) |
(*.f64 x (+.f64 -1 y)) |
(/.f64 (*.f64 (*.f64 (+.f64 y -1) x) 8) 8) |
(+.f64 (*.f64 -1 x) (*.f64 x y)) |
(*.f64 x (+.f64 -1 y)) |
(/.f64 (*.f64 2 (*.f64 (*.f64 (+.f64 y -1) x) 8)) 16) |
(+.f64 (*.f64 -1 x) (*.f64 x y)) |
(*.f64 x (+.f64 -1 y)) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 y -1) x) 8))) 32) |
(+.f64 (*.f64 -1 x) (*.f64 x y)) |
(*.f64 x (+.f64 -1 y)) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 y -1) x) 8)))) 64) |
(+.f64 (*.f64 -1 x) (*.f64 x y)) |
(*.f64 x (+.f64 -1 y)) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 y -1) x) 8))))) 128) |
(+.f64 (*.f64 -1 x) (*.f64 x y)) |
(*.f64 x (+.f64 -1 y)) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 y -1) x) 8)))))) 256) |
(+.f64 (*.f64 -1 x) (*.f64 x y)) |
(*.f64 x (+.f64 -1 y)) |
(pow.f64 (*.f64 (+.f64 y -1) x) 1) |
(+.f64 (*.f64 -1 x) (*.f64 x y)) |
(*.f64 x (+.f64 -1 y)) |
Compiled 2102 to 1217 computations (42.1% saved)
10 alts after pruning (6 fresh and 4 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 180 | 3 | 183 |
| Fresh | 0 | 3 | 3 |
| Picked | 1 | 0 | 1 |
| Done | 0 | 4 | 4 |
| Total | 181 | 10 | 191 |
| Status | Error | Program |
|---|---|---|
| ▶ | 3.1b | (+.f64 (*.f64 z (*.f64 (-.f64 y 1) x)) x) |
| ✓ | 2.1b | (+.f64 (*.f64 y (*.f64 z x)) (*.f64 (-.f64 1 z) x)) |
| ▶ | 20.1b | (+.f64 (*.f64 -1 (*.f64 z x)) x) |
| ✓ | 20.1b | (*.f64 (-.f64 1 z) x) |
| ✓ | 44.3b | (*.f64 z (*.f64 y x)) |
| ▶ | 47.7b | (*.f64 z (neg.f64 x)) |
| ✓ | 45.0b | (*.f64 y (*.f64 z x)) |
| ▶ | 18.4b | (*.f64 x (-.f64 1 (*.f64 z (neg.f64 y)))) |
| ▶ | 31.6b | (*.f64 x (*.f64 (+.f64 -1 y) z)) |
| 34.5b | x |
Compiled 142 to 98 computations (31% saved)
Found 3 expressions with local error:
| New | Error | Program |
|---|---|---|
| 0.0b | (*.f64 (-.f64 y 1) x) | |
| ✓ | 0.0b | (+.f64 (*.f64 z (*.f64 (-.f64 y 1) x)) x) |
| 2.9b | (*.f64 z (*.f64 (-.f64 y 1) x)) |
Compiled 31 to 18 computations (41.9% saved)
9 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 0.0ms | z | @ | -inf | (+.f64 (*.f64 z (*.f64 (-.f64 y 1) x)) x) |
| 0.0ms | x | @ | -inf | (+.f64 (*.f64 z (*.f64 (-.f64 y 1) x)) x) |
| 0.0ms | z | @ | 0 | (+.f64 (*.f64 z (*.f64 (-.f64 y 1) x)) x) |
| 0.0ms | y | @ | inf | (+.f64 (*.f64 z (*.f64 (-.f64 y 1) x)) x) |
| 0.0ms | z | @ | inf | (+.f64 (*.f64 z (*.f64 (-.f64 y 1) x)) x) |
| 1× | batch-egg-rewrite |
| 2462× | rational.json-simplify-2 |
| 1538× | rational.json-1 |
| 1538× | rational.json-2 |
| 1394× | rational.json-simplify-35 |
| 1144× | exponential.json-3 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 10 | 25 |
| 1 | 79 | 25 |
| 2 | 182 | 25 |
| 3 | 349 | 25 |
| 4 | 675 | 25 |
| 5 | 1588 | 25 |
| 6 | 3269 | 25 |
| 7 | 4559 | 25 |
| 8 | 5482 | 25 |
| 9 | 6261 | 25 |
| 10 | 6261 | 25 |
| 11 | 7772 | 25 |
| 1× | node limit |
| Inputs |
|---|
(+.f64 (*.f64 z (*.f64 (-.f64 y 1) x)) x) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 x (*.f64 z (*.f64 (+.f64 y -1) x))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 x (*.f64 z (*.f64 (+.f64 y -1) x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (+.f64 1 (*.f64 z (+.f64 y -1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x (*.f64 z (*.f64 (+.f64 y -1) x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (+.f64 x (*.f64 z (*.f64 (+.f64 y -1) x))) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (*.f64 1/2 (+.f64 1 (*.f64 z (+.f64 y -1)))) x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (+.f64 1/2 (*.f64 z (*.f64 (+.f64 y -1) 1/2))) x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (+.f64 1/2 (*.f64 (*.f64 z (+.f64 y -1)) 1/2)) x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (+.f64 x (*.f64 z (*.f64 (+.f64 y -1) x))) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x (*.f64 z (*.f64 (+.f64 y -1) x))) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x x) (*.f64 1/2 (+.f64 1 (*.f64 z (+.f64 y -1)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x x) (+.f64 1/2 (*.f64 z (*.f64 (+.f64 y -1) 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x x) (+.f64 1/2 (*.f64 (*.f64 z (+.f64 y -1)) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x (*.f64 4 (+.f64 1 (*.f64 z (+.f64 y -1))))) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (+.f64 x (*.f64 z (*.f64 (+.f64 y -1) x))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (*.f64 (+.f64 y -1) (*.f64 x (+.f64 z z))) (+.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 1 (*.f64 z (+.f64 y -1))) x)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (+.f64 1 (*.f64 z (+.f64 y -1)))) (*.f64 x 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 x (*.f64 4 (+.f64 1 (*.f64 z (+.f64 y -1))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x 1/2) (*.f64 2 (+.f64 1 (*.f64 z (+.f64 y -1)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x 1/2) (+.f64 2 (*.f64 z (+.f64 y (+.f64 y -2)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x (*.f64 z (*.f64 (+.f64 y -1) x))) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 1/2 (+.f64 1 (*.f64 z (+.f64 y -1)))) (+.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 x (*.f64 z (*.f64 (+.f64 y -1) x))) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 (+.f64 y -1) (*.f64 x (+.f64 z z))) (+.f64 x x)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 2 (*.f64 z (+.f64 y (+.f64 y -2)))) (*.f64 x 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 1/2 (*.f64 z (*.f64 (+.f64 y -1) 1/2))) (+.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 1/2 (*.f64 (*.f64 z (+.f64 y -1)) 1/2)) (+.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 x (*.f64 z (*.f64 (+.f64 y -1) x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 x (*.f64 z (*.f64 (+.f64 y -1) x))) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (*.f64 4 (+.f64 1 (*.f64 z (+.f64 y -1))))) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 x (*.f64 z (*.f64 (+.f64 y -1) x))) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 x (*.f64 z (*.f64 (+.f64 y -1) x))) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (*.f64 z (*.f64 (+.f64 y -1) x))) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (*.f64 z (*.f64 (+.f64 y -1) x))) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (*.f64 z (*.f64 (+.f64 y -1) x))) 8))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 x (*.f64 z (*.f64 (+.f64 y -1) x))) 1))))) |
| 1× | egg-herbie |
| 2178× | rational.json-simplify-2 |
| 1844× | rational.json-simplify-1 |
| 1622× | rational.json-simplify-35 |
| 1170× | rational.json-simplify-41 |
| 976× | rational.json-simplify-42 |
Useful iterations: 2 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 106 | 1942 |
| 1 | 243 | 1884 |
| 2 | 500 | 1604 |
| 3 | 1271 | 1604 |
| 4 | 2267 | 1604 |
| 5 | 3538 | 1604 |
| 6 | 3779 | 1604 |
| 7 | 4009 | 1604 |
| 8 | 4226 | 1604 |
| 9 | 4534 | 1604 |
| 10 | 5048 | 1604 |
| 11 | 6005 | 1604 |
| 12 | 6236 | 1604 |
| 13 | 6570 | 1604 |
| 14 | 6836 | 1604 |
| 15 | 7189 | 1604 |
| 1× | node limit |
| Inputs |
|---|
x |
(*.f64 z (*.f64 (-.f64 y 1) x)) |
(*.f64 z (*.f64 (-.f64 y 1) x)) |
(+.f64 (*.f64 -1 (*.f64 z x)) x) |
(+.f64 (*.f64 y (*.f64 z x)) (+.f64 (*.f64 -1 (*.f64 z x)) x)) |
(+.f64 (*.f64 y (*.f64 z x)) (+.f64 (*.f64 -1 (*.f64 z x)) x)) |
(+.f64 (*.f64 y (*.f64 z x)) (+.f64 (*.f64 -1 (*.f64 z x)) x)) |
(*.f64 y (*.f64 z x)) |
(+.f64 (*.f64 y (*.f64 z x)) (+.f64 (*.f64 -1 (*.f64 z x)) x)) |
(+.f64 (*.f64 y (*.f64 z x)) (+.f64 (*.f64 -1 (*.f64 z x)) x)) |
(+.f64 (*.f64 y (*.f64 z x)) (+.f64 (*.f64 -1 (*.f64 z x)) x)) |
(*.f64 y (*.f64 z x)) |
(+.f64 (*.f64 y (*.f64 z x)) (+.f64 (*.f64 -1 (*.f64 z x)) x)) |
(+.f64 (*.f64 y (*.f64 z x)) (+.f64 (*.f64 -1 (*.f64 z x)) x)) |
(+.f64 (*.f64 y (*.f64 z x)) (+.f64 (*.f64 -1 (*.f64 z x)) x)) |
(*.f64 (+.f64 1 (*.f64 z (-.f64 y 1))) x) |
(*.f64 (+.f64 1 (*.f64 z (-.f64 y 1))) x) |
(*.f64 (+.f64 1 (*.f64 z (-.f64 y 1))) x) |
(*.f64 (+.f64 1 (*.f64 z (-.f64 y 1))) x) |
(*.f64 (+.f64 1 (*.f64 z (-.f64 y 1))) x) |
(*.f64 (+.f64 1 (*.f64 z (-.f64 y 1))) x) |
(*.f64 (+.f64 1 (*.f64 z (-.f64 y 1))) x) |
(*.f64 (+.f64 1 (*.f64 z (-.f64 y 1))) x) |
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 (*.f64 z (-.f64 y 1))) 1) x)) |
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 (*.f64 z (-.f64 y 1))) 1) x)) |
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 (*.f64 z (-.f64 y 1))) 1) x)) |
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 (*.f64 z (-.f64 y 1))) 1) x)) |
(-.f64 (+.f64 x (*.f64 z (*.f64 (+.f64 y -1) x))) 0) |
(*.f64 1 (+.f64 x (*.f64 z (*.f64 (+.f64 y -1) x)))) |
(*.f64 x (+.f64 1 (*.f64 z (+.f64 y -1)))) |
(*.f64 (+.f64 x (*.f64 z (*.f64 (+.f64 y -1) x))) 1) |
(*.f64 2 (*.f64 (+.f64 x (*.f64 z (*.f64 (+.f64 y -1) x))) 1/2)) |
(*.f64 2 (*.f64 (*.f64 1/2 (+.f64 1 (*.f64 z (+.f64 y -1)))) x)) |
(*.f64 2 (*.f64 (+.f64 1/2 (*.f64 z (*.f64 (+.f64 y -1) 1/2))) x)) |
(*.f64 2 (*.f64 (+.f64 1/2 (*.f64 (*.f64 z (+.f64 y -1)) 1/2)) x)) |
(*.f64 4 (/.f64 (+.f64 x (*.f64 z (*.f64 (+.f64 y -1) x))) 4)) |
(*.f64 (*.f64 (+.f64 x (*.f64 z (*.f64 (+.f64 y -1) x))) 2) 1/2) |
(*.f64 (+.f64 x x) (*.f64 1/2 (+.f64 1 (*.f64 z (+.f64 y -1))))) |
(*.f64 (+.f64 x x) (+.f64 1/2 (*.f64 z (*.f64 (+.f64 y -1) 1/2)))) |
(*.f64 (+.f64 x x) (+.f64 1/2 (*.f64 (*.f64 z (+.f64 y -1)) 1/2))) |
(*.f64 (*.f64 x (*.f64 4 (+.f64 1 (*.f64 z (+.f64 y -1))))) 1/4) |
(*.f64 1/2 (*.f64 (+.f64 x (*.f64 z (*.f64 (+.f64 y -1) x))) 2)) |
(*.f64 1/2 (+.f64 (*.f64 (+.f64 y -1) (*.f64 x (+.f64 z z))) (+.f64 x x))) |
(*.f64 (+.f64 1 (*.f64 z (+.f64 y -1))) x) |
(*.f64 (*.f64 2 (+.f64 1 (*.f64 z (+.f64 y -1)))) (*.f64 x 1/2)) |
(*.f64 1/4 (*.f64 x (*.f64 4 (+.f64 1 (*.f64 z (+.f64 y -1)))))) |
(*.f64 (*.f64 x 1/2) (*.f64 2 (+.f64 1 (*.f64 z (+.f64 y -1))))) |
(*.f64 (*.f64 x 1/2) (+.f64 2 (*.f64 z (+.f64 y (+.f64 y -2))))) |
(*.f64 (*.f64 (+.f64 x (*.f64 z (*.f64 (+.f64 y -1) x))) 1/2) 2) |
(*.f64 (*.f64 1/2 (+.f64 1 (*.f64 z (+.f64 y -1)))) (+.f64 x x)) |
(*.f64 (/.f64 (+.f64 x (*.f64 z (*.f64 (+.f64 y -1) x))) 4) 4) |
(*.f64 (+.f64 (*.f64 (+.f64 y -1) (*.f64 x (+.f64 z z))) (+.f64 x x)) 1/2) |
(*.f64 (+.f64 2 (*.f64 z (+.f64 y (+.f64 y -2)))) (*.f64 x 1/2)) |
(*.f64 (+.f64 1/2 (*.f64 z (*.f64 (+.f64 y -1) 1/2))) (+.f64 x x)) |
(*.f64 (+.f64 1/2 (*.f64 (*.f64 z (+.f64 y -1)) 1/2)) (+.f64 x x)) |
(/.f64 (+.f64 x (*.f64 z (*.f64 (+.f64 y -1) x))) 1) |
(/.f64 (*.f64 (+.f64 x (*.f64 z (*.f64 (+.f64 y -1) x))) 2) 2) |
(/.f64 (*.f64 x (*.f64 4 (+.f64 1 (*.f64 z (+.f64 y -1))))) 4) |
(/.f64 (*.f64 (+.f64 x (*.f64 z (*.f64 (+.f64 y -1) x))) 8) 8) |
(/.f64 (*.f64 2 (*.f64 (+.f64 x (*.f64 z (*.f64 (+.f64 y -1) x))) 8)) 16) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (*.f64 z (*.f64 (+.f64 y -1) x))) 8))) 32) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (*.f64 z (*.f64 (+.f64 y -1) x))) 8)))) 64) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (*.f64 z (*.f64 (+.f64 y -1) x))) 8))))) 128) |
(pow.f64 (+.f64 x (*.f64 z (*.f64 (+.f64 y -1) x))) 1) |
| Outputs |
|---|
x |
(*.f64 z (*.f64 (-.f64 y 1) x)) |
(*.f64 (+.f64 y -1) (*.f64 x z)) |
(*.f64 x (*.f64 z (+.f64 y -1))) |
(*.f64 (*.f64 x z) (+.f64 y -1)) |
(*.f64 z (*.f64 (-.f64 y 1) x)) |
(*.f64 (+.f64 y -1) (*.f64 x z)) |
(*.f64 x (*.f64 z (+.f64 y -1))) |
(*.f64 (*.f64 x z) (+.f64 y -1)) |
(+.f64 (*.f64 -1 (*.f64 z x)) x) |
(+.f64 x (*.f64 z (*.f64 x -1))) |
(+.f64 x (*.f64 z (neg.f64 x))) |
(+.f64 x (*.f64 x (neg.f64 z))) |
(+.f64 x (neg.f64 (*.f64 x z))) |
(+.f64 (*.f64 y (*.f64 z x)) (+.f64 (*.f64 -1 (*.f64 z x)) x)) |
(+.f64 (*.f64 z (*.f64 x -1)) (+.f64 x (*.f64 z (*.f64 x y)))) |
(+.f64 x (+.f64 (*.f64 z (neg.f64 x)) (*.f64 x (*.f64 y z)))) |
(+.f64 x (*.f64 x (*.f64 z (+.f64 y -1)))) |
(+.f64 x (*.f64 (*.f64 x z) (+.f64 y -1))) |
(+.f64 (*.f64 y (*.f64 z x)) (+.f64 (*.f64 -1 (*.f64 z x)) x)) |
(+.f64 (*.f64 z (*.f64 x -1)) (+.f64 x (*.f64 z (*.f64 x y)))) |
(+.f64 x (+.f64 (*.f64 z (neg.f64 x)) (*.f64 x (*.f64 y z)))) |
(+.f64 x (*.f64 x (*.f64 z (+.f64 y -1)))) |
(+.f64 x (*.f64 (*.f64 x z) (+.f64 y -1))) |
(+.f64 (*.f64 y (*.f64 z x)) (+.f64 (*.f64 -1 (*.f64 z x)) x)) |
(+.f64 (*.f64 z (*.f64 x -1)) (+.f64 x (*.f64 z (*.f64 x y)))) |
(+.f64 x (+.f64 (*.f64 z (neg.f64 x)) (*.f64 x (*.f64 y z)))) |
(+.f64 x (*.f64 x (*.f64 z (+.f64 y -1)))) |
(+.f64 x (*.f64 (*.f64 x z) (+.f64 y -1))) |
(*.f64 y (*.f64 z x)) |
(*.f64 z (*.f64 x y)) |
(*.f64 x (*.f64 y z)) |
(*.f64 x (*.f64 z y)) |
(+.f64 (*.f64 y (*.f64 z x)) (+.f64 (*.f64 -1 (*.f64 z x)) x)) |
(+.f64 (*.f64 z (*.f64 x -1)) (+.f64 x (*.f64 z (*.f64 x y)))) |
(+.f64 x (+.f64 (*.f64 z (neg.f64 x)) (*.f64 x (*.f64 y z)))) |
(+.f64 x (*.f64 x (*.f64 z (+.f64 y -1)))) |
(+.f64 x (*.f64 (*.f64 x z) (+.f64 y -1))) |
(+.f64 (*.f64 y (*.f64 z x)) (+.f64 (*.f64 -1 (*.f64 z x)) x)) |
(+.f64 (*.f64 z (*.f64 x -1)) (+.f64 x (*.f64 z (*.f64 x y)))) |
(+.f64 x (+.f64 (*.f64 z (neg.f64 x)) (*.f64 x (*.f64 y z)))) |
(+.f64 x (*.f64 x (*.f64 z (+.f64 y -1)))) |
(+.f64 x (*.f64 (*.f64 x z) (+.f64 y -1))) |
(+.f64 (*.f64 y (*.f64 z x)) (+.f64 (*.f64 -1 (*.f64 z x)) x)) |
(+.f64 (*.f64 z (*.f64 x -1)) (+.f64 x (*.f64 z (*.f64 x y)))) |
(+.f64 x (+.f64 (*.f64 z (neg.f64 x)) (*.f64 x (*.f64 y z)))) |
(+.f64 x (*.f64 x (*.f64 z (+.f64 y -1)))) |
(+.f64 x (*.f64 (*.f64 x z) (+.f64 y -1))) |
(*.f64 y (*.f64 z x)) |
(*.f64 z (*.f64 x y)) |
(*.f64 x (*.f64 y z)) |
(*.f64 x (*.f64 z y)) |
(+.f64 (*.f64 y (*.f64 z x)) (+.f64 (*.f64 -1 (*.f64 z x)) x)) |
(+.f64 (*.f64 z (*.f64 x -1)) (+.f64 x (*.f64 z (*.f64 x y)))) |
(+.f64 x (+.f64 (*.f64 z (neg.f64 x)) (*.f64 x (*.f64 y z)))) |
(+.f64 x (*.f64 x (*.f64 z (+.f64 y -1)))) |
(+.f64 x (*.f64 (*.f64 x z) (+.f64 y -1))) |
(+.f64 (*.f64 y (*.f64 z x)) (+.f64 (*.f64 -1 (*.f64 z x)) x)) |
(+.f64 (*.f64 z (*.f64 x -1)) (+.f64 x (*.f64 z (*.f64 x y)))) |
(+.f64 x (+.f64 (*.f64 z (neg.f64 x)) (*.f64 x (*.f64 y z)))) |
(+.f64 x (*.f64 x (*.f64 z (+.f64 y -1)))) |
(+.f64 x (*.f64 (*.f64 x z) (+.f64 y -1))) |
(+.f64 (*.f64 y (*.f64 z x)) (+.f64 (*.f64 -1 (*.f64 z x)) x)) |
(+.f64 (*.f64 z (*.f64 x -1)) (+.f64 x (*.f64 z (*.f64 x y)))) |
(+.f64 x (+.f64 (*.f64 z (neg.f64 x)) (*.f64 x (*.f64 y z)))) |
(+.f64 x (*.f64 x (*.f64 z (+.f64 y -1)))) |
(+.f64 x (*.f64 (*.f64 x z) (+.f64 y -1))) |
(*.f64 (+.f64 1 (*.f64 z (-.f64 y 1))) x) |
(*.f64 x (+.f64 1 (*.f64 z (+.f64 y -1)))) |
(*.f64 x (-.f64 1 (*.f64 z (-.f64 1 y)))) |
(*.f64 (+.f64 1 (*.f64 z (-.f64 y 1))) x) |
(*.f64 x (+.f64 1 (*.f64 z (+.f64 y -1)))) |
(*.f64 x (-.f64 1 (*.f64 z (-.f64 1 y)))) |
(*.f64 (+.f64 1 (*.f64 z (-.f64 y 1))) x) |
(*.f64 x (+.f64 1 (*.f64 z (+.f64 y -1)))) |
(*.f64 x (-.f64 1 (*.f64 z (-.f64 1 y)))) |
(*.f64 (+.f64 1 (*.f64 z (-.f64 y 1))) x) |
(*.f64 x (+.f64 1 (*.f64 z (+.f64 y -1)))) |
(*.f64 x (-.f64 1 (*.f64 z (-.f64 1 y)))) |
(*.f64 (+.f64 1 (*.f64 z (-.f64 y 1))) x) |
(*.f64 x (+.f64 1 (*.f64 z (+.f64 y -1)))) |
(*.f64 x (-.f64 1 (*.f64 z (-.f64 1 y)))) |
(*.f64 (+.f64 1 (*.f64 z (-.f64 y 1))) x) |
(*.f64 x (+.f64 1 (*.f64 z (+.f64 y -1)))) |
(*.f64 x (-.f64 1 (*.f64 z (-.f64 1 y)))) |
(*.f64 (+.f64 1 (*.f64 z (-.f64 y 1))) x) |
(*.f64 x (+.f64 1 (*.f64 z (+.f64 y -1)))) |
(*.f64 x (-.f64 1 (*.f64 z (-.f64 1 y)))) |
(*.f64 (+.f64 1 (*.f64 z (-.f64 y 1))) x) |
(*.f64 x (+.f64 1 (*.f64 z (+.f64 y -1)))) |
(*.f64 x (-.f64 1 (*.f64 z (-.f64 1 y)))) |
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 (*.f64 z (-.f64 y 1))) 1) x)) |
(*.f64 x (+.f64 1 (*.f64 z (+.f64 y -1)))) |
(*.f64 x (-.f64 1 (*.f64 z (-.f64 1 y)))) |
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 (*.f64 z (-.f64 y 1))) 1) x)) |
(*.f64 x (+.f64 1 (*.f64 z (+.f64 y -1)))) |
(*.f64 x (-.f64 1 (*.f64 z (-.f64 1 y)))) |
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 (*.f64 z (-.f64 y 1))) 1) x)) |
(*.f64 x (+.f64 1 (*.f64 z (+.f64 y -1)))) |
(*.f64 x (-.f64 1 (*.f64 z (-.f64 1 y)))) |
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 (*.f64 z (-.f64 y 1))) 1) x)) |
(*.f64 x (+.f64 1 (*.f64 z (+.f64 y -1)))) |
(*.f64 x (-.f64 1 (*.f64 z (-.f64 1 y)))) |
(-.f64 (+.f64 x (*.f64 z (*.f64 (+.f64 y -1) x))) 0) |
(+.f64 (*.f64 z (*.f64 x -1)) (+.f64 x (*.f64 z (*.f64 x y)))) |
(+.f64 x (+.f64 (*.f64 z (neg.f64 x)) (*.f64 x (*.f64 y z)))) |
(+.f64 x (*.f64 x (*.f64 z (+.f64 y -1)))) |
(+.f64 x (*.f64 (*.f64 x z) (+.f64 y -1))) |
(*.f64 1 (+.f64 x (*.f64 z (*.f64 (+.f64 y -1) x)))) |
(+.f64 (*.f64 z (*.f64 x -1)) (+.f64 x (*.f64 z (*.f64 x y)))) |
(+.f64 x (+.f64 (*.f64 z (neg.f64 x)) (*.f64 x (*.f64 y z)))) |
(+.f64 x (*.f64 x (*.f64 z (+.f64 y -1)))) |
(+.f64 x (*.f64 (*.f64 x z) (+.f64 y -1))) |
(*.f64 x (+.f64 1 (*.f64 z (+.f64 y -1)))) |
(*.f64 x (-.f64 1 (*.f64 z (-.f64 1 y)))) |
(*.f64 (+.f64 x (*.f64 z (*.f64 (+.f64 y -1) x))) 1) |
(+.f64 (*.f64 z (*.f64 x -1)) (+.f64 x (*.f64 z (*.f64 x y)))) |
(+.f64 x (+.f64 (*.f64 z (neg.f64 x)) (*.f64 x (*.f64 y z)))) |
(+.f64 x (*.f64 x (*.f64 z (+.f64 y -1)))) |
(+.f64 x (*.f64 (*.f64 x z) (+.f64 y -1))) |
(*.f64 2 (*.f64 (+.f64 x (*.f64 z (*.f64 (+.f64 y -1) x))) 1/2)) |
(+.f64 (*.f64 z (*.f64 x -1)) (+.f64 x (*.f64 z (*.f64 x y)))) |
(+.f64 x (+.f64 (*.f64 z (neg.f64 x)) (*.f64 x (*.f64 y z)))) |
(+.f64 x (*.f64 x (*.f64 z (+.f64 y -1)))) |
(+.f64 x (*.f64 (*.f64 x z) (+.f64 y -1))) |
(*.f64 2 (*.f64 (*.f64 1/2 (+.f64 1 (*.f64 z (+.f64 y -1)))) x)) |
(*.f64 x (+.f64 1 (*.f64 z (+.f64 y -1)))) |
(*.f64 x (-.f64 1 (*.f64 z (-.f64 1 y)))) |
(*.f64 2 (*.f64 (+.f64 1/2 (*.f64 z (*.f64 (+.f64 y -1) 1/2))) x)) |
(*.f64 (+.f64 1/2 (*.f64 (+.f64 y -1) (*.f64 1/2 z))) (*.f64 x 2)) |
(*.f64 x (*.f64 2 (+.f64 1/2 (*.f64 (+.f64 y -1) (*.f64 z 1/2))))) |
(*.f64 x (*.f64 2 (+.f64 1/2 (*.f64 z (*.f64 (+.f64 y -1) 1/2))))) |
(*.f64 2 (*.f64 (+.f64 1/2 (*.f64 (*.f64 z (+.f64 y -1)) 1/2)) x)) |
(*.f64 (+.f64 1/2 (*.f64 (+.f64 y -1) (*.f64 1/2 z))) (*.f64 x 2)) |
(*.f64 x (*.f64 2 (+.f64 1/2 (*.f64 (+.f64 y -1) (*.f64 z 1/2))))) |
(*.f64 x (*.f64 2 (+.f64 1/2 (*.f64 z (*.f64 (+.f64 y -1) 1/2))))) |
(*.f64 4 (/.f64 (+.f64 x (*.f64 z (*.f64 (+.f64 y -1) x))) 4)) |
(+.f64 (*.f64 z (*.f64 x -1)) (+.f64 x (*.f64 z (*.f64 x y)))) |
(+.f64 x (+.f64 (*.f64 z (neg.f64 x)) (*.f64 x (*.f64 y z)))) |
(+.f64 x (*.f64 x (*.f64 z (+.f64 y -1)))) |
(+.f64 x (*.f64 (*.f64 x z) (+.f64 y -1))) |
(*.f64 (*.f64 (+.f64 x (*.f64 z (*.f64 (+.f64 y -1) x))) 2) 1/2) |
(+.f64 (*.f64 z (*.f64 x -1)) (+.f64 x (*.f64 z (*.f64 x y)))) |
(+.f64 x (+.f64 (*.f64 z (neg.f64 x)) (*.f64 x (*.f64 y z)))) |
(+.f64 x (*.f64 x (*.f64 z (+.f64 y -1)))) |
(+.f64 x (*.f64 (*.f64 x z) (+.f64 y -1))) |
(*.f64 (+.f64 x x) (*.f64 1/2 (+.f64 1 (*.f64 z (+.f64 y -1))))) |
(*.f64 x (+.f64 1 (*.f64 z (+.f64 y -1)))) |
(*.f64 x (-.f64 1 (*.f64 z (-.f64 1 y)))) |
(*.f64 (+.f64 x x) (+.f64 1/2 (*.f64 z (*.f64 (+.f64 y -1) 1/2)))) |
(*.f64 (+.f64 1/2 (*.f64 (+.f64 y -1) (*.f64 1/2 z))) (+.f64 x x)) |
(*.f64 (+.f64 1/2 (*.f64 (+.f64 y -1) (*.f64 z 1/2))) (+.f64 x x)) |
(*.f64 (+.f64 1/2 (*.f64 z (*.f64 (+.f64 y -1) 1/2))) (+.f64 x x)) |
(*.f64 (+.f64 x x) (+.f64 1/2 (*.f64 (*.f64 z (+.f64 y -1)) 1/2))) |
(*.f64 (+.f64 1/2 (*.f64 (+.f64 y -1) (*.f64 1/2 z))) (+.f64 x x)) |
(*.f64 (+.f64 1/2 (*.f64 (+.f64 y -1) (*.f64 z 1/2))) (+.f64 x x)) |
(*.f64 (+.f64 1/2 (*.f64 z (*.f64 (+.f64 y -1) 1/2))) (+.f64 x x)) |
(*.f64 (*.f64 x (*.f64 4 (+.f64 1 (*.f64 z (+.f64 y -1))))) 1/4) |
(*.f64 x (+.f64 1 (*.f64 z (+.f64 y -1)))) |
(*.f64 x (-.f64 1 (*.f64 z (-.f64 1 y)))) |
(*.f64 1/2 (*.f64 (+.f64 x (*.f64 z (*.f64 (+.f64 y -1) x))) 2)) |
(+.f64 (*.f64 z (*.f64 x -1)) (+.f64 x (*.f64 z (*.f64 x y)))) |
(+.f64 x (+.f64 (*.f64 z (neg.f64 x)) (*.f64 x (*.f64 y z)))) |
(+.f64 x (*.f64 x (*.f64 z (+.f64 y -1)))) |
(+.f64 x (*.f64 (*.f64 x z) (+.f64 y -1))) |
(*.f64 1/2 (+.f64 (*.f64 (+.f64 y -1) (*.f64 x (+.f64 z z))) (+.f64 x x))) |
(+.f64 (*.f64 z (*.f64 x -1)) (+.f64 x (*.f64 z (*.f64 x y)))) |
(+.f64 x (+.f64 (*.f64 z (neg.f64 x)) (*.f64 x (*.f64 y z)))) |
(+.f64 x (*.f64 x (*.f64 z (+.f64 y -1)))) |
(+.f64 x (*.f64 (*.f64 x z) (+.f64 y -1))) |
(*.f64 (+.f64 1 (*.f64 z (+.f64 y -1))) x) |
(*.f64 x (+.f64 1 (*.f64 z (+.f64 y -1)))) |
(*.f64 x (-.f64 1 (*.f64 z (-.f64 1 y)))) |
(*.f64 (*.f64 2 (+.f64 1 (*.f64 z (+.f64 y -1)))) (*.f64 x 1/2)) |
(*.f64 x (+.f64 1 (*.f64 z (+.f64 y -1)))) |
(*.f64 x (-.f64 1 (*.f64 z (-.f64 1 y)))) |
(*.f64 1/4 (*.f64 x (*.f64 4 (+.f64 1 (*.f64 z (+.f64 y -1)))))) |
(*.f64 x (+.f64 1 (*.f64 z (+.f64 y -1)))) |
(*.f64 x (-.f64 1 (*.f64 z (-.f64 1 y)))) |
(*.f64 (*.f64 x 1/2) (*.f64 2 (+.f64 1 (*.f64 z (+.f64 y -1))))) |
(*.f64 x (+.f64 1 (*.f64 z (+.f64 y -1)))) |
(*.f64 x (-.f64 1 (*.f64 z (-.f64 1 y)))) |
(*.f64 (*.f64 x 1/2) (+.f64 2 (*.f64 z (+.f64 y (+.f64 y -2))))) |
(*.f64 x (+.f64 1 (*.f64 z (+.f64 y -1)))) |
(*.f64 x (-.f64 1 (*.f64 z (-.f64 1 y)))) |
(*.f64 (*.f64 (+.f64 x (*.f64 z (*.f64 (+.f64 y -1) x))) 1/2) 2) |
(+.f64 (*.f64 z (*.f64 x -1)) (+.f64 x (*.f64 z (*.f64 x y)))) |
(+.f64 x (+.f64 (*.f64 z (neg.f64 x)) (*.f64 x (*.f64 y z)))) |
(+.f64 x (*.f64 x (*.f64 z (+.f64 y -1)))) |
(+.f64 x (*.f64 (*.f64 x z) (+.f64 y -1))) |
(*.f64 (*.f64 1/2 (+.f64 1 (*.f64 z (+.f64 y -1)))) (+.f64 x x)) |
(*.f64 x (+.f64 1 (*.f64 z (+.f64 y -1)))) |
(*.f64 x (-.f64 1 (*.f64 z (-.f64 1 y)))) |
(*.f64 (/.f64 (+.f64 x (*.f64 z (*.f64 (+.f64 y -1) x))) 4) 4) |
(+.f64 (*.f64 z (*.f64 x -1)) (+.f64 x (*.f64 z (*.f64 x y)))) |
(+.f64 x (+.f64 (*.f64 z (neg.f64 x)) (*.f64 x (*.f64 y z)))) |
(+.f64 x (*.f64 x (*.f64 z (+.f64 y -1)))) |
(+.f64 x (*.f64 (*.f64 x z) (+.f64 y -1))) |
(*.f64 (+.f64 (*.f64 (+.f64 y -1) (*.f64 x (+.f64 z z))) (+.f64 x x)) 1/2) |
(+.f64 (*.f64 z (*.f64 x -1)) (+.f64 x (*.f64 z (*.f64 x y)))) |
(+.f64 x (+.f64 (*.f64 z (neg.f64 x)) (*.f64 x (*.f64 y z)))) |
(+.f64 x (*.f64 x (*.f64 z (+.f64 y -1)))) |
(+.f64 x (*.f64 (*.f64 x z) (+.f64 y -1))) |
(*.f64 (+.f64 2 (*.f64 z (+.f64 y (+.f64 y -2)))) (*.f64 x 1/2)) |
(*.f64 x (+.f64 1 (*.f64 z (+.f64 y -1)))) |
(*.f64 x (-.f64 1 (*.f64 z (-.f64 1 y)))) |
(*.f64 (+.f64 1/2 (*.f64 z (*.f64 (+.f64 y -1) 1/2))) (+.f64 x x)) |
(*.f64 (+.f64 1/2 (*.f64 (+.f64 y -1) (*.f64 1/2 z))) (+.f64 x x)) |
(*.f64 (+.f64 1/2 (*.f64 (+.f64 y -1) (*.f64 z 1/2))) (+.f64 x x)) |
(*.f64 (+.f64 1/2 (*.f64 (*.f64 z (+.f64 y -1)) 1/2)) (+.f64 x x)) |
(*.f64 (+.f64 1/2 (*.f64 (+.f64 y -1) (*.f64 1/2 z))) (+.f64 x x)) |
(*.f64 (+.f64 1/2 (*.f64 (+.f64 y -1) (*.f64 z 1/2))) (+.f64 x x)) |
(*.f64 (+.f64 1/2 (*.f64 z (*.f64 (+.f64 y -1) 1/2))) (+.f64 x x)) |
(/.f64 (+.f64 x (*.f64 z (*.f64 (+.f64 y -1) x))) 1) |
(+.f64 (*.f64 z (*.f64 x -1)) (+.f64 x (*.f64 z (*.f64 x y)))) |
(+.f64 x (+.f64 (*.f64 z (neg.f64 x)) (*.f64 x (*.f64 y z)))) |
(+.f64 x (*.f64 x (*.f64 z (+.f64 y -1)))) |
(+.f64 x (*.f64 (*.f64 x z) (+.f64 y -1))) |
(/.f64 (*.f64 (+.f64 x (*.f64 z (*.f64 (+.f64 y -1) x))) 2) 2) |
(+.f64 (*.f64 z (*.f64 x -1)) (+.f64 x (*.f64 z (*.f64 x y)))) |
(+.f64 x (+.f64 (*.f64 z (neg.f64 x)) (*.f64 x (*.f64 y z)))) |
(+.f64 x (*.f64 x (*.f64 z (+.f64 y -1)))) |
(+.f64 x (*.f64 (*.f64 x z) (+.f64 y -1))) |
(/.f64 (*.f64 x (*.f64 4 (+.f64 1 (*.f64 z (+.f64 y -1))))) 4) |
(*.f64 x (+.f64 1 (*.f64 z (+.f64 y -1)))) |
(*.f64 x (-.f64 1 (*.f64 z (-.f64 1 y)))) |
(/.f64 (*.f64 (+.f64 x (*.f64 z (*.f64 (+.f64 y -1) x))) 8) 8) |
(+.f64 (*.f64 z (*.f64 x -1)) (+.f64 x (*.f64 z (*.f64 x y)))) |
(+.f64 x (+.f64 (*.f64 z (neg.f64 x)) (*.f64 x (*.f64 y z)))) |
(+.f64 x (*.f64 x (*.f64 z (+.f64 y -1)))) |
(+.f64 x (*.f64 (*.f64 x z) (+.f64 y -1))) |
(/.f64 (*.f64 2 (*.f64 (+.f64 x (*.f64 z (*.f64 (+.f64 y -1) x))) 8)) 16) |
(+.f64 (*.f64 z (*.f64 x -1)) (+.f64 x (*.f64 z (*.f64 x y)))) |
(+.f64 x (+.f64 (*.f64 z (neg.f64 x)) (*.f64 x (*.f64 y z)))) |
(+.f64 x (*.f64 x (*.f64 z (+.f64 y -1)))) |
(+.f64 x (*.f64 (*.f64 x z) (+.f64 y -1))) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (*.f64 z (*.f64 (+.f64 y -1) x))) 8))) 32) |
(+.f64 (*.f64 z (*.f64 x -1)) (+.f64 x (*.f64 z (*.f64 x y)))) |
(+.f64 x (+.f64 (*.f64 z (neg.f64 x)) (*.f64 x (*.f64 y z)))) |
(+.f64 x (*.f64 x (*.f64 z (+.f64 y -1)))) |
(+.f64 x (*.f64 (*.f64 x z) (+.f64 y -1))) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (*.f64 z (*.f64 (+.f64 y -1) x))) 8)))) 64) |
(+.f64 (*.f64 z (*.f64 x -1)) (+.f64 x (*.f64 z (*.f64 x y)))) |
(+.f64 x (+.f64 (*.f64 z (neg.f64 x)) (*.f64 x (*.f64 y z)))) |
(+.f64 x (*.f64 x (*.f64 z (+.f64 y -1)))) |
(+.f64 x (*.f64 (*.f64 x z) (+.f64 y -1))) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (*.f64 z (*.f64 (+.f64 y -1) x))) 8))))) 128) |
(+.f64 (*.f64 z (*.f64 x -1)) (+.f64 x (*.f64 z (*.f64 x y)))) |
(+.f64 x (+.f64 (*.f64 z (neg.f64 x)) (*.f64 x (*.f64 y z)))) |
(+.f64 x (*.f64 x (*.f64 z (+.f64 y -1)))) |
(+.f64 x (*.f64 (*.f64 x z) (+.f64 y -1))) |
(pow.f64 (+.f64 x (*.f64 z (*.f64 (+.f64 y -1) x))) 1) |
(+.f64 (*.f64 z (*.f64 x -1)) (+.f64 x (*.f64 z (*.f64 x y)))) |
(+.f64 x (+.f64 (*.f64 z (neg.f64 x)) (*.f64 x (*.f64 y z)))) |
(+.f64 x (*.f64 x (*.f64 z (+.f64 y -1)))) |
(+.f64 x (*.f64 (*.f64 x z) (+.f64 y -1))) |
Compiled 11 to 5 computations (54.5% saved)
Found 2 expressions with local error:
| New | Error | Program |
|---|---|---|
| ✓ | 0.0b | (*.f64 (+.f64 -1 y) z) |
| ✓ | 3.2b | (*.f64 x (*.f64 (+.f64 -1 y) z)) |
Compiled 22 to 13 computations (40.9% saved)
15 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 0.0ms | z | @ | 0 | (*.f64 (+.f64 -1 y) z) |
| 0.0ms | z | @ | inf | (*.f64 (+.f64 -1 y) z) |
| 0.0ms | y | @ | 0 | (*.f64 (+.f64 -1 y) z) |
| 0.0ms | y | @ | -inf | (*.f64 (+.f64 -1 y) z) |
| 0.0ms | y | @ | inf | (*.f64 (+.f64 -1 y) z) |
| 1× | batch-egg-rewrite |
| 1798× | rational.json-simplify-35 |
| 1674× | rational.json-simplify-1 |
| 1346× | exponential.json-3 |
| 1346× | rational.json-1 |
| 1346× | rational.json-2 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 9 | 32 |
| 1 | 65 | 32 |
| 2 | 152 | 32 |
| 3 | 300 | 32 |
| 4 | 559 | 32 |
| 5 | 1285 | 32 |
| 6 | 2800 | 32 |
| 7 | 4493 | 32 |
| 8 | 5275 | 32 |
| 9 | 6607 | 32 |
| 10 | 7488 | 32 |
| 11 | 7488 | 32 |
| 1× | node limit |
| Inputs |
|---|
(*.f64 x (*.f64 (+.f64 -1 y) z)) |
(*.f64 (+.f64 -1 y) z) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (*.f64 (+.f64 -1 y) z)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 x (*.f64 (+.f64 -1 y) z)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 -1 y) (*.f64 z (*.f64 x 1/2))) (*.f64 (+.f64 -1 y) (*.f64 z (*.f64 x 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 x (*.f64 (+.f64 -1 y) z)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (*.f64 (+.f64 -1 y) z)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 -1 y) (*.f64 x (+.f64 z z))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (*.f64 (+.f64 -1 y) (*.f64 z 4))) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (*.f64 (+.f64 -1 y) (*.f64 z 8))) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 x (*.f64 (+.f64 -1 y) (*.f64 z 8)))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 x (*.f64 (+.f64 -1 y) (*.f64 z 8))))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x (*.f64 (+.f64 -1 y) (*.f64 z 8)))))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x (*.f64 (+.f64 -1 y) (*.f64 z 8))))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x (*.f64 (+.f64 -1 y) (*.f64 z 8)))))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x (*.f64 (+.f64 -1 y) z)) 1))))) |
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 -1 y) z) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (+.f64 -1 y) z))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 -1 y) (*.f64 z 1/2)) (*.f64 (+.f64 -1 y) (*.f64 z 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (+.f64 -1 y) z) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 -1 y) z) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 -1 y) (+.f64 z z)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 -1 y) (*.f64 z 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 -1 y) (*.f64 z 8)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 -1 y) (*.f64 z 8))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 -1 y) (*.f64 z 8)))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 -1 y) (*.f64 z 8))))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 -1 y) (*.f64 z 8)))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 -1 y) (*.f64 z 8))))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (+.f64 -1 y) z) 1))))) |
| 1× | egg-herbie |
| 2746× | rational.json-simplify-41 |
| 2204× | rational.json-simplify-2 |
| 2056× | rational.json-simplify-35 |
| 1124× | rational.json-simplify-49 |
| 710× | rational.json-simplify-51 |
Useful iterations: 1 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 85 | 1618 |
| 1 | 232 | 1404 |
| 2 | 484 | 1404 |
| 3 | 1163 | 1404 |
| 4 | 3220 | 1404 |
| 5 | 3984 | 1404 |
| 6 | 4395 | 1404 |
| 7 | 4688 | 1404 |
| 8 | 4711 | 1404 |
| 9 | 4732 | 1404 |
| 10 | 7620 | 1404 |
| 11 | 7818 | 1404 |
| 12 | 7877 | 1404 |
| 1× | node limit |
| Inputs |
|---|
(*.f64 z (*.f64 (-.f64 y 1) x)) |
(*.f64 z (*.f64 (-.f64 y 1) x)) |
(*.f64 z (*.f64 (-.f64 y 1) x)) |
(*.f64 z (*.f64 (-.f64 y 1) x)) |
(*.f64 z (*.f64 (-.f64 y 1) x)) |
(*.f64 z (*.f64 (-.f64 y 1) x)) |
(*.f64 z (*.f64 (-.f64 y 1) x)) |
(*.f64 z (*.f64 (-.f64 y 1) x)) |
(*.f64 z (*.f64 (-.f64 y 1) x)) |
(*.f64 z (*.f64 (-.f64 y 1) x)) |
(*.f64 z (*.f64 (-.f64 y 1) x)) |
(*.f64 z (*.f64 (-.f64 y 1) x)) |
(*.f64 -1 (*.f64 z x)) |
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 -1 (*.f64 z x))) |
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 -1 (*.f64 z x))) |
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 -1 (*.f64 z x))) |
(*.f64 y (*.f64 z x)) |
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 -1 (*.f64 z x))) |
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 -1 (*.f64 z x))) |
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 -1 (*.f64 z x))) |
(*.f64 y (*.f64 z x)) |
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 -1 (*.f64 z x))) |
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 -1 (*.f64 z x))) |
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 -1 (*.f64 z x))) |
(*.f64 z (*.f64 (-.f64 y 1) x)) |
(*.f64 z (*.f64 (-.f64 y 1) x)) |
(*.f64 z (*.f64 (-.f64 y 1) x)) |
(*.f64 z (*.f64 (-.f64 y 1) x)) |
(*.f64 z (*.f64 (-.f64 y 1) x)) |
(*.f64 z (*.f64 (-.f64 y 1) x)) |
(*.f64 z (*.f64 (-.f64 y 1) x)) |
(*.f64 z (*.f64 (-.f64 y 1) x)) |
(*.f64 z (*.f64 (-.f64 y 1) x)) |
(*.f64 z (*.f64 (-.f64 y 1) x)) |
(*.f64 z (*.f64 (-.f64 y 1) x)) |
(*.f64 z (*.f64 (-.f64 y 1) x)) |
(*.f64 -1 z) |
(+.f64 (*.f64 y z) (*.f64 -1 z)) |
(+.f64 (*.f64 y z) (*.f64 -1 z)) |
(+.f64 (*.f64 y z) (*.f64 -1 z)) |
(*.f64 y z) |
(+.f64 (*.f64 -1 z) (*.f64 y z)) |
(+.f64 (*.f64 -1 z) (*.f64 y z)) |
(+.f64 (*.f64 -1 z) (*.f64 y z)) |
(*.f64 y z) |
(+.f64 (*.f64 -1 z) (*.f64 y z)) |
(+.f64 (*.f64 -1 z) (*.f64 y z)) |
(+.f64 (*.f64 -1 z) (*.f64 y z)) |
(*.f64 z (-.f64 y 1)) |
(*.f64 z (-.f64 y 1)) |
(*.f64 z (-.f64 y 1)) |
(*.f64 z (-.f64 y 1)) |
(*.f64 z (-.f64 y 1)) |
(*.f64 z (-.f64 y 1)) |
(*.f64 z (-.f64 y 1)) |
(*.f64 z (-.f64 y 1)) |
(*.f64 z (-.f64 y 1)) |
(*.f64 z (-.f64 y 1)) |
(*.f64 z (-.f64 y 1)) |
(*.f64 z (-.f64 y 1)) |
(+.f64 (*.f64 x (*.f64 (+.f64 -1 y) z)) 0) |
(+.f64 0 (*.f64 x (*.f64 (+.f64 -1 y) z))) |
(+.f64 (*.f64 (+.f64 -1 y) (*.f64 z (*.f64 x 1/2))) (*.f64 (+.f64 -1 y) (*.f64 z (*.f64 x 1/2)))) |
(-.f64 (*.f64 x (*.f64 (+.f64 -1 y) z)) 0) |
(/.f64 (*.f64 x (*.f64 (+.f64 -1 y) z)) 1) |
(/.f64 (*.f64 (+.f64 -1 y) (*.f64 x (+.f64 z z))) 2) |
(/.f64 (*.f64 x (*.f64 (+.f64 -1 y) (*.f64 z 4))) 4) |
(/.f64 (*.f64 x (*.f64 (+.f64 -1 y) (*.f64 z 8))) 8) |
(/.f64 (*.f64 2 (*.f64 x (*.f64 (+.f64 -1 y) (*.f64 z 8)))) 16) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 x (*.f64 (+.f64 -1 y) (*.f64 z 8))))) 32) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x (*.f64 (+.f64 -1 y) (*.f64 z 8)))))) 64) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x (*.f64 (+.f64 -1 y) (*.f64 z 8))))))) 128) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x (*.f64 (+.f64 -1 y) (*.f64 z 8)))))))) 256) |
(pow.f64 (*.f64 x (*.f64 (+.f64 -1 y) z)) 1) |
(+.f64 (*.f64 (+.f64 -1 y) z) 0) |
(+.f64 0 (*.f64 (+.f64 -1 y) z)) |
(+.f64 (*.f64 (+.f64 -1 y) (*.f64 z 1/2)) (*.f64 (+.f64 -1 y) (*.f64 z 1/2))) |
(-.f64 (*.f64 (+.f64 -1 y) z) 0) |
(/.f64 (*.f64 (+.f64 -1 y) z) 1) |
(/.f64 (*.f64 (+.f64 -1 y) (+.f64 z z)) 2) |
(/.f64 (*.f64 (+.f64 -1 y) (*.f64 z 4)) 4) |
(/.f64 (*.f64 (+.f64 -1 y) (*.f64 z 8)) 8) |
(/.f64 (*.f64 2 (*.f64 (+.f64 -1 y) (*.f64 z 8))) 16) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 -1 y) (*.f64 z 8)))) 32) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 -1 y) (*.f64 z 8))))) 64) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 -1 y) (*.f64 z 8)))))) 128) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 -1 y) (*.f64 z 8))))))) 256) |
(pow.f64 (*.f64 (+.f64 -1 y) z) 1) |
| Outputs |
|---|
(*.f64 z (*.f64 (-.f64 y 1) x)) |
(*.f64 z (*.f64 x (+.f64 y -1))) |
(*.f64 z (*.f64 (-.f64 y 1) x)) |
(*.f64 z (*.f64 x (+.f64 y -1))) |
(*.f64 z (*.f64 (-.f64 y 1) x)) |
(*.f64 z (*.f64 x (+.f64 y -1))) |
(*.f64 z (*.f64 (-.f64 y 1) x)) |
(*.f64 z (*.f64 x (+.f64 y -1))) |
(*.f64 z (*.f64 (-.f64 y 1) x)) |
(*.f64 z (*.f64 x (+.f64 y -1))) |
(*.f64 z (*.f64 (-.f64 y 1) x)) |
(*.f64 z (*.f64 x (+.f64 y -1))) |
(*.f64 z (*.f64 (-.f64 y 1) x)) |
(*.f64 z (*.f64 x (+.f64 y -1))) |
(*.f64 z (*.f64 (-.f64 y 1) x)) |
(*.f64 z (*.f64 x (+.f64 y -1))) |
(*.f64 z (*.f64 (-.f64 y 1) x)) |
(*.f64 z (*.f64 x (+.f64 y -1))) |
(*.f64 z (*.f64 (-.f64 y 1) x)) |
(*.f64 z (*.f64 x (+.f64 y -1))) |
(*.f64 z (*.f64 (-.f64 y 1) x)) |
(*.f64 z (*.f64 x (+.f64 y -1))) |
(*.f64 z (*.f64 (-.f64 y 1) x)) |
(*.f64 z (*.f64 x (+.f64 y -1))) |
(*.f64 -1 (*.f64 z x)) |
(*.f64 z (*.f64 x -1)) |
(*.f64 z (neg.f64 x)) |
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 -1 (*.f64 z x))) |
(*.f64 z (*.f64 x (+.f64 y -1))) |
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 -1 (*.f64 z x))) |
(*.f64 z (*.f64 x (+.f64 y -1))) |
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 -1 (*.f64 z x))) |
(*.f64 z (*.f64 x (+.f64 y -1))) |
(*.f64 y (*.f64 z x)) |
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 -1 (*.f64 z x))) |
(*.f64 z (*.f64 x (+.f64 y -1))) |
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 -1 (*.f64 z x))) |
(*.f64 z (*.f64 x (+.f64 y -1))) |
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 -1 (*.f64 z x))) |
(*.f64 z (*.f64 x (+.f64 y -1))) |
(*.f64 y (*.f64 z x)) |
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 -1 (*.f64 z x))) |
(*.f64 z (*.f64 x (+.f64 y -1))) |
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 -1 (*.f64 z x))) |
(*.f64 z (*.f64 x (+.f64 y -1))) |
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 -1 (*.f64 z x))) |
(*.f64 z (*.f64 x (+.f64 y -1))) |
(*.f64 z (*.f64 (-.f64 y 1) x)) |
(*.f64 z (*.f64 x (+.f64 y -1))) |
(*.f64 z (*.f64 (-.f64 y 1) x)) |
(*.f64 z (*.f64 x (+.f64 y -1))) |
(*.f64 z (*.f64 (-.f64 y 1) x)) |
(*.f64 z (*.f64 x (+.f64 y -1))) |
(*.f64 z (*.f64 (-.f64 y 1) x)) |
(*.f64 z (*.f64 x (+.f64 y -1))) |
(*.f64 z (*.f64 (-.f64 y 1) x)) |
(*.f64 z (*.f64 x (+.f64 y -1))) |
(*.f64 z (*.f64 (-.f64 y 1) x)) |
(*.f64 z (*.f64 x (+.f64 y -1))) |
(*.f64 z (*.f64 (-.f64 y 1) x)) |
(*.f64 z (*.f64 x (+.f64 y -1))) |
(*.f64 z (*.f64 (-.f64 y 1) x)) |
(*.f64 z (*.f64 x (+.f64 y -1))) |
(*.f64 z (*.f64 (-.f64 y 1) x)) |
(*.f64 z (*.f64 x (+.f64 y -1))) |
(*.f64 z (*.f64 (-.f64 y 1) x)) |
(*.f64 z (*.f64 x (+.f64 y -1))) |
(*.f64 z (*.f64 (-.f64 y 1) x)) |
(*.f64 z (*.f64 x (+.f64 y -1))) |
(*.f64 z (*.f64 (-.f64 y 1) x)) |
(*.f64 z (*.f64 x (+.f64 y -1))) |
(*.f64 -1 z) |
(*.f64 z -1) |
(neg.f64 z) |
(+.f64 (*.f64 y z) (*.f64 -1 z)) |
(+.f64 (*.f64 z -1) (*.f64 z y)) |
(*.f64 z (+.f64 y -1)) |
(+.f64 (*.f64 y z) (*.f64 -1 z)) |
(+.f64 (*.f64 z -1) (*.f64 z y)) |
(*.f64 z (+.f64 y -1)) |
(+.f64 (*.f64 y z) (*.f64 -1 z)) |
(+.f64 (*.f64 z -1) (*.f64 z y)) |
(*.f64 z (+.f64 y -1)) |
(*.f64 y z) |
(*.f64 z y) |
(+.f64 (*.f64 -1 z) (*.f64 y z)) |
(+.f64 (*.f64 z -1) (*.f64 z y)) |
(*.f64 z (+.f64 y -1)) |
(+.f64 (*.f64 -1 z) (*.f64 y z)) |
(+.f64 (*.f64 z -1) (*.f64 z y)) |
(*.f64 z (+.f64 y -1)) |
(+.f64 (*.f64 -1 z) (*.f64 y z)) |
(+.f64 (*.f64 z -1) (*.f64 z y)) |
(*.f64 z (+.f64 y -1)) |
(*.f64 y z) |
(*.f64 z y) |
(+.f64 (*.f64 -1 z) (*.f64 y z)) |
(+.f64 (*.f64 z -1) (*.f64 z y)) |
(*.f64 z (+.f64 y -1)) |
(+.f64 (*.f64 -1 z) (*.f64 y z)) |
(+.f64 (*.f64 z -1) (*.f64 z y)) |
(*.f64 z (+.f64 y -1)) |
(+.f64 (*.f64 -1 z) (*.f64 y z)) |
(+.f64 (*.f64 z -1) (*.f64 z y)) |
(*.f64 z (+.f64 y -1)) |
(*.f64 z (-.f64 y 1)) |
(+.f64 (*.f64 z -1) (*.f64 z y)) |
(*.f64 z (+.f64 y -1)) |
(*.f64 z (-.f64 y 1)) |
(+.f64 (*.f64 z -1) (*.f64 z y)) |
(*.f64 z (+.f64 y -1)) |
(*.f64 z (-.f64 y 1)) |
(+.f64 (*.f64 z -1) (*.f64 z y)) |
(*.f64 z (+.f64 y -1)) |
(*.f64 z (-.f64 y 1)) |
(+.f64 (*.f64 z -1) (*.f64 z y)) |
(*.f64 z (+.f64 y -1)) |
(*.f64 z (-.f64 y 1)) |
(+.f64 (*.f64 z -1) (*.f64 z y)) |
(*.f64 z (+.f64 y -1)) |
(*.f64 z (-.f64 y 1)) |
(+.f64 (*.f64 z -1) (*.f64 z y)) |
(*.f64 z (+.f64 y -1)) |
(*.f64 z (-.f64 y 1)) |
(+.f64 (*.f64 z -1) (*.f64 z y)) |
(*.f64 z (+.f64 y -1)) |
(*.f64 z (-.f64 y 1)) |
(+.f64 (*.f64 z -1) (*.f64 z y)) |
(*.f64 z (+.f64 y -1)) |
(*.f64 z (-.f64 y 1)) |
(+.f64 (*.f64 z -1) (*.f64 z y)) |
(*.f64 z (+.f64 y -1)) |
(*.f64 z (-.f64 y 1)) |
(+.f64 (*.f64 z -1) (*.f64 z y)) |
(*.f64 z (+.f64 y -1)) |
(*.f64 z (-.f64 y 1)) |
(+.f64 (*.f64 z -1) (*.f64 z y)) |
(*.f64 z (+.f64 y -1)) |
(*.f64 z (-.f64 y 1)) |
(+.f64 (*.f64 z -1) (*.f64 z y)) |
(*.f64 z (+.f64 y -1)) |
(+.f64 (*.f64 x (*.f64 (+.f64 -1 y) z)) 0) |
(*.f64 z (*.f64 x (+.f64 y -1))) |
(+.f64 0 (*.f64 x (*.f64 (+.f64 -1 y) z))) |
(*.f64 z (*.f64 x (+.f64 y -1))) |
(+.f64 (*.f64 (+.f64 -1 y) (*.f64 z (*.f64 x 1/2))) (*.f64 (+.f64 -1 y) (*.f64 z (*.f64 x 1/2)))) |
(*.f64 z (*.f64 x (+.f64 y -1))) |
(-.f64 (*.f64 x (*.f64 (+.f64 -1 y) z)) 0) |
(*.f64 z (*.f64 x (+.f64 y -1))) |
(/.f64 (*.f64 x (*.f64 (+.f64 -1 y) z)) 1) |
(*.f64 z (*.f64 x (+.f64 y -1))) |
(/.f64 (*.f64 (+.f64 -1 y) (*.f64 x (+.f64 z z))) 2) |
(*.f64 z (*.f64 x (+.f64 y -1))) |
(/.f64 (*.f64 x (*.f64 (+.f64 -1 y) (*.f64 z 4))) 4) |
(*.f64 z (*.f64 x (+.f64 y -1))) |
(/.f64 (*.f64 x (*.f64 (+.f64 -1 y) (*.f64 z 8))) 8) |
(*.f64 z (*.f64 x (+.f64 y -1))) |
(/.f64 (*.f64 2 (*.f64 x (*.f64 (+.f64 -1 y) (*.f64 z 8)))) 16) |
(*.f64 z (*.f64 x (+.f64 y -1))) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 x (*.f64 (+.f64 -1 y) (*.f64 z 8))))) 32) |
(*.f64 z (*.f64 x (+.f64 y -1))) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x (*.f64 (+.f64 -1 y) (*.f64 z 8)))))) 64) |
(*.f64 z (*.f64 x (+.f64 y -1))) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x (*.f64 (+.f64 -1 y) (*.f64 z 8))))))) 128) |
(*.f64 z (*.f64 x (+.f64 y -1))) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x (*.f64 (+.f64 -1 y) (*.f64 z 8)))))))) 256) |
(*.f64 z (*.f64 x (+.f64 y -1))) |
(pow.f64 (*.f64 x (*.f64 (+.f64 -1 y) z)) 1) |
(*.f64 z (*.f64 x (+.f64 y -1))) |
(+.f64 (*.f64 (+.f64 -1 y) z) 0) |
(+.f64 (*.f64 z -1) (*.f64 z y)) |
(*.f64 z (+.f64 y -1)) |
(+.f64 0 (*.f64 (+.f64 -1 y) z)) |
(+.f64 (*.f64 z -1) (*.f64 z y)) |
(*.f64 z (+.f64 y -1)) |
(+.f64 (*.f64 (+.f64 -1 y) (*.f64 z 1/2)) (*.f64 (+.f64 -1 y) (*.f64 z 1/2))) |
(+.f64 (*.f64 z -1) (*.f64 z y)) |
(*.f64 z (+.f64 y -1)) |
(-.f64 (*.f64 (+.f64 -1 y) z) 0) |
(+.f64 (*.f64 z -1) (*.f64 z y)) |
(*.f64 z (+.f64 y -1)) |
(/.f64 (*.f64 (+.f64 -1 y) z) 1) |
(+.f64 (*.f64 z -1) (*.f64 z y)) |
(*.f64 z (+.f64 y -1)) |
(/.f64 (*.f64 (+.f64 -1 y) (+.f64 z z)) 2) |
(+.f64 (*.f64 z -1) (*.f64 z y)) |
(*.f64 z (+.f64 y -1)) |
(/.f64 (*.f64 (+.f64 -1 y) (*.f64 z 4)) 4) |
(+.f64 (*.f64 z -1) (*.f64 z y)) |
(*.f64 z (+.f64 y -1)) |
(/.f64 (*.f64 (+.f64 -1 y) (*.f64 z 8)) 8) |
(+.f64 (*.f64 z -1) (*.f64 z y)) |
(*.f64 z (+.f64 y -1)) |
(/.f64 (*.f64 2 (*.f64 (+.f64 -1 y) (*.f64 z 8))) 16) |
(+.f64 (*.f64 z -1) (*.f64 z y)) |
(*.f64 z (+.f64 y -1)) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 -1 y) (*.f64 z 8)))) 32) |
(+.f64 (*.f64 z -1) (*.f64 z y)) |
(*.f64 z (+.f64 y -1)) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 -1 y) (*.f64 z 8))))) 64) |
(+.f64 (*.f64 z -1) (*.f64 z y)) |
(*.f64 z (+.f64 y -1)) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 -1 y) (*.f64 z 8)))))) 128) |
(+.f64 (*.f64 z -1) (*.f64 z y)) |
(*.f64 z (+.f64 y -1)) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 -1 y) (*.f64 z 8))))))) 256) |
(+.f64 (*.f64 z -1) (*.f64 z y)) |
(*.f64 z (+.f64 y -1)) |
(pow.f64 (*.f64 (+.f64 -1 y) z) 1) |
(+.f64 (*.f64 z -1) (*.f64 z y)) |
(*.f64 z (+.f64 y -1)) |
Found 1 expressions with local error:
| New | Error | Program |
|---|---|---|
| ✓ | 0.0b | (+.f64 (*.f64 -1 (*.f64 z x)) x) |
Compiled 21 to 10 computations (52.4% saved)
6 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 3.0ms | x | @ | 0 | (+.f64 (*.f64 -1 (*.f64 z x)) x) |
| 0.0ms | z | @ | inf | (+.f64 (*.f64 -1 (*.f64 z x)) x) |
| 0.0ms | x | @ | inf | (+.f64 (*.f64 -1 (*.f64 z x)) x) |
| 0.0ms | z | @ | 0 | (+.f64 (*.f64 -1 (*.f64 z x)) x) |
| 0.0ms | x | @ | -inf | (+.f64 (*.f64 -1 (*.f64 z x)) x) |
| 1× | batch-egg-rewrite |
| 1618× | rational.json-1 |
| 1618× | rational.json-2 |
| 1504× | rational.json-simplify-35 |
| 1402× | rational.json-3 |
| 1388× | exponential.json-3 |
Useful iterations: 4 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 8 | 19 |
| 1 | 59 | 17 |
| 2 | 143 | 17 |
| 3 | 292 | 17 |
| 4 | 595 | 13 |
| 5 | 1504 | 13 |
| 6 | 3146 | 13 |
| 7 | 4859 | 13 |
| 8 | 6537 | 13 |
| 9 | 7856 | 13 |
| 1× | node limit |
| Inputs |
|---|
(+.f64 (*.f64 -1 (*.f64 z x)) x) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 x (-.f64 1 z)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 x (-.f64 1 (*.f64 z x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (-.f64 1 z))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x (-.f64 1 z)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 x (-.f64 1 z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (*.f64 x (-.f64 1 z)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (*.f64 1/2 (-.f64 1 z)) x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x (-.f64 (-.f64 2 z) z)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x x) (*.f64 1/2 (-.f64 1 z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x x) (+.f64 1/2 (*.f64 (neg.f64 z) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x x) (+.f64 1/2 (/.f64 z -2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (*.f64 x (-.f64 1 z)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x (*.f64 4 (-.f64 1 z))) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 x (-.f64 (-.f64 2 z) z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (+.f64 x x) (*.f64 z (*.f64 x -2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 1 z) x)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (-.f64 2 z) z) (*.f64 x 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x 1/2) (-.f64 (-.f64 2 z) z))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x 1/2) (+.f64 2 (*.f64 z -2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 x (-.f64 1 z)) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 1/2 (-.f64 1 z)) (+.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 x (*.f64 4 (-.f64 1 z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 x (-.f64 1 z)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (-.f64 1 z)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (-.f64 (-.f64 2 z) z)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (*.f64 4 (-.f64 1 z))) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 x (-.f64 1 z)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 x (-.f64 1 z)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (-.f64 1 z)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (-.f64 1 z)) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (-.f64 1 z)) 8))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x (-.f64 1 z)) 1))))) |
| 1× | egg-herbie |
| 2030× | rational.json-simplify-2 |
| 1708× | rational.json-simplify-35 |
| 1416× | rational.json-simplify-1 |
| 886× | rational.json-simplify-48 |
| 850× | exponential.json-simplify-26 |
Useful iterations: 2 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 87 | 795 |
| 1 | 203 | 787 |
| 2 | 501 | 619 |
| 3 | 1657 | 619 |
| 4 | 3435 | 619 |
| 5 | 4415 | 619 |
| 6 | 5006 | 619 |
| 7 | 5358 | 619 |
| 8 | 5712 | 619 |
| 9 | 6172 | 619 |
| 10 | 7433 | 619 |
| 11 | 7806 | 619 |
| 1× | node limit |
| Inputs |
|---|
x |
(*.f64 -1 (*.f64 z x)) |
(*.f64 -1 (*.f64 z x)) |
(*.f64 (+.f64 (*.f64 -1 z) 1) x) |
(*.f64 (+.f64 (*.f64 -1 z) 1) x) |
(*.f64 (+.f64 (*.f64 -1 z) 1) x) |
(*.f64 (+.f64 (*.f64 -1 z) 1) x) |
(*.f64 (+.f64 (*.f64 -1 z) 1) x) |
(*.f64 (+.f64 (*.f64 -1 z) 1) x) |
(*.f64 (+.f64 (*.f64 -1 z) 1) x) |
(*.f64 (+.f64 (*.f64 -1 z) 1) x) |
(*.f64 -1 (*.f64 (-.f64 z 1) x)) |
(*.f64 -1 (*.f64 (-.f64 z 1) x)) |
(*.f64 -1 (*.f64 (-.f64 z 1) x)) |
(*.f64 -1 (*.f64 (-.f64 z 1) x)) |
(-.f64 (*.f64 x (-.f64 1 z)) 0) |
(-.f64 (+.f64 x (-.f64 1 (*.f64 z x))) 1) |
(*.f64 x (-.f64 1 z)) |
(*.f64 (*.f64 x (-.f64 1 z)) 1) |
(*.f64 1 (*.f64 x (-.f64 1 z))) |
(*.f64 2 (*.f64 (*.f64 x (-.f64 1 z)) 1/2)) |
(*.f64 2 (*.f64 (*.f64 1/2 (-.f64 1 z)) x)) |
(*.f64 (*.f64 x (-.f64 (-.f64 2 z) z)) 1/2) |
(*.f64 (+.f64 x x) (*.f64 1/2 (-.f64 1 z))) |
(*.f64 (+.f64 x x) (+.f64 1/2 (*.f64 (neg.f64 z) 1/2))) |
(*.f64 (+.f64 x x) (+.f64 1/2 (/.f64 z -2))) |
(*.f64 4 (/.f64 (*.f64 x (-.f64 1 z)) 4)) |
(*.f64 (*.f64 x (*.f64 4 (-.f64 1 z))) 1/4) |
(*.f64 1/2 (*.f64 x (-.f64 (-.f64 2 z) z))) |
(*.f64 1/2 (+.f64 (+.f64 x x) (*.f64 z (*.f64 x -2)))) |
(*.f64 (-.f64 1 z) x) |
(*.f64 (-.f64 (-.f64 2 z) z) (*.f64 x 1/2)) |
(*.f64 (*.f64 x 1/2) (-.f64 (-.f64 2 z) z)) |
(*.f64 (*.f64 x 1/2) (+.f64 2 (*.f64 z -2))) |
(*.f64 (*.f64 (*.f64 x (-.f64 1 z)) 1/2) 2) |
(*.f64 (*.f64 1/2 (-.f64 1 z)) (+.f64 x x)) |
(*.f64 1/4 (*.f64 x (*.f64 4 (-.f64 1 z)))) |
(*.f64 (/.f64 (*.f64 x (-.f64 1 z)) 4) 4) |
(/.f64 (*.f64 x (-.f64 1 z)) 1) |
(/.f64 (*.f64 x (-.f64 (-.f64 2 z) z)) 2) |
(/.f64 (*.f64 x (*.f64 4 (-.f64 1 z))) 4) |
(/.f64 (*.f64 (*.f64 x (-.f64 1 z)) 8) 8) |
(/.f64 (*.f64 2 (*.f64 (*.f64 x (-.f64 1 z)) 8)) 16) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (-.f64 1 z)) 8))) 32) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (-.f64 1 z)) 8)))) 64) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (-.f64 1 z)) 8))))) 128) |
(pow.f64 (*.f64 x (-.f64 1 z)) 1) |
| Outputs |
|---|
x |
(*.f64 -1 (*.f64 z x)) |
(*.f64 -1 (*.f64 x z)) |
(*.f64 x (neg.f64 z)) |
(*.f64 -1 (*.f64 z x)) |
(*.f64 -1 (*.f64 x z)) |
(*.f64 x (neg.f64 z)) |
(*.f64 (+.f64 (*.f64 -1 z) 1) x) |
(*.f64 x (+.f64 1 (neg.f64 z))) |
(*.f64 x (-.f64 1 z)) |
(-.f64 x (*.f64 x z)) |
(*.f64 (+.f64 (*.f64 -1 z) 1) x) |
(*.f64 x (+.f64 1 (neg.f64 z))) |
(*.f64 x (-.f64 1 z)) |
(-.f64 x (*.f64 x z)) |
(*.f64 (+.f64 (*.f64 -1 z) 1) x) |
(*.f64 x (+.f64 1 (neg.f64 z))) |
(*.f64 x (-.f64 1 z)) |
(-.f64 x (*.f64 x z)) |
(*.f64 (+.f64 (*.f64 -1 z) 1) x) |
(*.f64 x (+.f64 1 (neg.f64 z))) |
(*.f64 x (-.f64 1 z)) |
(-.f64 x (*.f64 x z)) |
(*.f64 (+.f64 (*.f64 -1 z) 1) x) |
(*.f64 x (+.f64 1 (neg.f64 z))) |
(*.f64 x (-.f64 1 z)) |
(-.f64 x (*.f64 x z)) |
(*.f64 (+.f64 (*.f64 -1 z) 1) x) |
(*.f64 x (+.f64 1 (neg.f64 z))) |
(*.f64 x (-.f64 1 z)) |
(-.f64 x (*.f64 x z)) |
(*.f64 (+.f64 (*.f64 -1 z) 1) x) |
(*.f64 x (+.f64 1 (neg.f64 z))) |
(*.f64 x (-.f64 1 z)) |
(-.f64 x (*.f64 x z)) |
(*.f64 (+.f64 (*.f64 -1 z) 1) x) |
(*.f64 x (+.f64 1 (neg.f64 z))) |
(*.f64 x (-.f64 1 z)) |
(-.f64 x (*.f64 x z)) |
(*.f64 -1 (*.f64 (-.f64 z 1) x)) |
(*.f64 x (+.f64 1 (neg.f64 z))) |
(*.f64 x (-.f64 1 z)) |
(-.f64 x (*.f64 x z)) |
(*.f64 -1 (*.f64 (-.f64 z 1) x)) |
(*.f64 x (+.f64 1 (neg.f64 z))) |
(*.f64 x (-.f64 1 z)) |
(-.f64 x (*.f64 x z)) |
(*.f64 -1 (*.f64 (-.f64 z 1) x)) |
(*.f64 x (+.f64 1 (neg.f64 z))) |
(*.f64 x (-.f64 1 z)) |
(-.f64 x (*.f64 x z)) |
(*.f64 -1 (*.f64 (-.f64 z 1) x)) |
(*.f64 x (+.f64 1 (neg.f64 z))) |
(*.f64 x (-.f64 1 z)) |
(-.f64 x (*.f64 x z)) |
(-.f64 (*.f64 x (-.f64 1 z)) 0) |
(*.f64 x (+.f64 1 (neg.f64 z))) |
(*.f64 x (-.f64 1 z)) |
(-.f64 x (*.f64 x z)) |
(-.f64 (+.f64 x (-.f64 1 (*.f64 z x))) 1) |
(*.f64 x (+.f64 1 (neg.f64 z))) |
(*.f64 x (-.f64 1 z)) |
(-.f64 x (*.f64 x z)) |
(*.f64 x (-.f64 1 z)) |
(*.f64 x (+.f64 1 (neg.f64 z))) |
(-.f64 x (*.f64 x z)) |
(*.f64 (*.f64 x (-.f64 1 z)) 1) |
(*.f64 x (+.f64 1 (neg.f64 z))) |
(*.f64 x (-.f64 1 z)) |
(-.f64 x (*.f64 x z)) |
(*.f64 1 (*.f64 x (-.f64 1 z))) |
(*.f64 x (+.f64 1 (neg.f64 z))) |
(*.f64 x (-.f64 1 z)) |
(-.f64 x (*.f64 x z)) |
(*.f64 2 (*.f64 (*.f64 x (-.f64 1 z)) 1/2)) |
(*.f64 x (+.f64 1 (neg.f64 z))) |
(*.f64 x (-.f64 1 z)) |
(-.f64 x (*.f64 x z)) |
(*.f64 2 (*.f64 (*.f64 1/2 (-.f64 1 z)) x)) |
(*.f64 x (+.f64 1 (neg.f64 z))) |
(*.f64 x (-.f64 1 z)) |
(-.f64 x (*.f64 x z)) |
(*.f64 (*.f64 x (-.f64 (-.f64 2 z) z)) 1/2) |
(*.f64 x (+.f64 1 (neg.f64 z))) |
(*.f64 x (-.f64 1 z)) |
(-.f64 x (*.f64 x z)) |
(*.f64 (+.f64 x x) (*.f64 1/2 (-.f64 1 z))) |
(*.f64 x (+.f64 1 (neg.f64 z))) |
(*.f64 x (-.f64 1 z)) |
(-.f64 x (*.f64 x z)) |
(*.f64 (+.f64 x x) (+.f64 1/2 (*.f64 (neg.f64 z) 1/2))) |
(*.f64 (+.f64 x x) (+.f64 1/2 (*.f64 1/2 (neg.f64 z)))) |
(*.f64 (+.f64 x x) (+.f64 1/2 (*.f64 z -1/2))) |
(*.f64 (+.f64 x x) (+.f64 1/2 (/.f64 z -2))) |
(*.f64 4 (/.f64 (*.f64 x (-.f64 1 z)) 4)) |
(*.f64 x (+.f64 1 (neg.f64 z))) |
(*.f64 x (-.f64 1 z)) |
(-.f64 x (*.f64 x z)) |
(*.f64 (*.f64 x (*.f64 4 (-.f64 1 z))) 1/4) |
(*.f64 x (+.f64 1 (neg.f64 z))) |
(*.f64 x (-.f64 1 z)) |
(-.f64 x (*.f64 x z)) |
(*.f64 1/2 (*.f64 x (-.f64 (-.f64 2 z) z))) |
(*.f64 x (+.f64 1 (neg.f64 z))) |
(*.f64 x (-.f64 1 z)) |
(-.f64 x (*.f64 x z)) |
(*.f64 1/2 (+.f64 (+.f64 x x) (*.f64 z (*.f64 x -2)))) |
(*.f64 x (+.f64 1 (neg.f64 z))) |
(*.f64 x (-.f64 1 z)) |
(-.f64 x (*.f64 x z)) |
(*.f64 (-.f64 1 z) x) |
(*.f64 x (+.f64 1 (neg.f64 z))) |
(*.f64 x (-.f64 1 z)) |
(-.f64 x (*.f64 x z)) |
(*.f64 (-.f64 (-.f64 2 z) z) (*.f64 x 1/2)) |
(*.f64 x (+.f64 1 (neg.f64 z))) |
(*.f64 x (-.f64 1 z)) |
(-.f64 x (*.f64 x z)) |
(*.f64 (*.f64 x 1/2) (-.f64 (-.f64 2 z) z)) |
(*.f64 x (+.f64 1 (neg.f64 z))) |
(*.f64 x (-.f64 1 z)) |
(-.f64 x (*.f64 x z)) |
(*.f64 (*.f64 x 1/2) (+.f64 2 (*.f64 z -2))) |
(*.f64 x (+.f64 1 (neg.f64 z))) |
(*.f64 x (-.f64 1 z)) |
(-.f64 x (*.f64 x z)) |
(*.f64 (*.f64 (*.f64 x (-.f64 1 z)) 1/2) 2) |
(*.f64 x (+.f64 1 (neg.f64 z))) |
(*.f64 x (-.f64 1 z)) |
(-.f64 x (*.f64 x z)) |
(*.f64 (*.f64 1/2 (-.f64 1 z)) (+.f64 x x)) |
(*.f64 x (+.f64 1 (neg.f64 z))) |
(*.f64 x (-.f64 1 z)) |
(-.f64 x (*.f64 x z)) |
(*.f64 1/4 (*.f64 x (*.f64 4 (-.f64 1 z)))) |
(*.f64 x (+.f64 1 (neg.f64 z))) |
(*.f64 x (-.f64 1 z)) |
(-.f64 x (*.f64 x z)) |
(*.f64 (/.f64 (*.f64 x (-.f64 1 z)) 4) 4) |
(*.f64 x (+.f64 1 (neg.f64 z))) |
(*.f64 x (-.f64 1 z)) |
(-.f64 x (*.f64 x z)) |
(/.f64 (*.f64 x (-.f64 1 z)) 1) |
(*.f64 x (+.f64 1 (neg.f64 z))) |
(*.f64 x (-.f64 1 z)) |
(-.f64 x (*.f64 x z)) |
(/.f64 (*.f64 x (-.f64 (-.f64 2 z) z)) 2) |
(*.f64 x (+.f64 1 (neg.f64 z))) |
(*.f64 x (-.f64 1 z)) |
(-.f64 x (*.f64 x z)) |
(/.f64 (*.f64 x (*.f64 4 (-.f64 1 z))) 4) |
(*.f64 x (+.f64 1 (neg.f64 z))) |
(*.f64 x (-.f64 1 z)) |
(-.f64 x (*.f64 x z)) |
(/.f64 (*.f64 (*.f64 x (-.f64 1 z)) 8) 8) |
(*.f64 x (+.f64 1 (neg.f64 z))) |
(*.f64 x (-.f64 1 z)) |
(-.f64 x (*.f64 x z)) |
(/.f64 (*.f64 2 (*.f64 (*.f64 x (-.f64 1 z)) 8)) 16) |
(*.f64 x (+.f64 1 (neg.f64 z))) |
(*.f64 x (-.f64 1 z)) |
(-.f64 x (*.f64 x z)) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (-.f64 1 z)) 8))) 32) |
(*.f64 x (+.f64 1 (neg.f64 z))) |
(*.f64 x (-.f64 1 z)) |
(-.f64 x (*.f64 x z)) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (-.f64 1 z)) 8)))) 64) |
(*.f64 x (+.f64 1 (neg.f64 z))) |
(*.f64 x (-.f64 1 z)) |
(-.f64 x (*.f64 x z)) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (-.f64 1 z)) 8))))) 128) |
(*.f64 x (+.f64 1 (neg.f64 z))) |
(*.f64 x (-.f64 1 z)) |
(-.f64 x (*.f64 x z)) |
(pow.f64 (*.f64 x (-.f64 1 z)) 1) |
(*.f64 x (+.f64 1 (neg.f64 z))) |
(*.f64 x (-.f64 1 z)) |
(-.f64 x (*.f64 x z)) |
Found 1 expressions with local error:
| New | Error | Program |
|---|---|---|
| ✓ | 3.1b | (*.f64 x (-.f64 1 (*.f64 z (neg.f64 y)))) |
Compiled 27 to 11 computations (59.3% saved)
9 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 0.0ms | x | @ | 0 | (*.f64 x (-.f64 1 (*.f64 z (neg.f64 y)))) |
| 0.0ms | z | @ | 0 | (*.f64 x (-.f64 1 (*.f64 z (neg.f64 y)))) |
| 0.0ms | y | @ | inf | (*.f64 x (-.f64 1 (*.f64 z (neg.f64 y)))) |
| 0.0ms | x | @ | inf | (*.f64 x (-.f64 1 (*.f64 z (neg.f64 y)))) |
| 0.0ms | y | @ | 0 | (*.f64 x (-.f64 1 (*.f64 z (neg.f64 y)))) |
| 1× | batch-egg-rewrite |
| 1744× | rational.json-1 |
| 1716× | rational.json-simplify-35 |
| 1278× | rational.json-2 |
| 1278× | rational.json-3 |
| 1270× | exponential.json-3 |
Useful iterations: 6 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 11 | 23 |
| 1 | 83 | 23 |
| 2 | 183 | 23 |
| 3 | 367 | 23 |
| 4 | 707 | 23 |
| 5 | 1659 | 23 |
| 6 | 3615 | 19 |
| 7 | 6023 | 19 |
| 8 | 7968 | 19 |
| 1× | node limit |
| Inputs |
|---|
(*.f64 x (-.f64 1 (*.f64 z (neg.f64 y)))) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (+.f64 1 (*.f64 z y))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 x (+.f64 1 (*.f64 z y))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 1 (*.f64 z y)) (*.f64 x 1/2)) (*.f64 (+.f64 1 (*.f64 z y)) (*.f64 x 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 x (+.f64 1 (*.f64 z y))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (+.f64 1 (*.f64 z y))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 1 (*.f64 z y)) (+.f64 x x)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (*.f64 (+.f64 1 (*.f64 z y)) 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 x 8) (+.f64 1 (*.f64 z y))) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 x 8) (+.f64 1 (*.f64 z y)))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x 8) (+.f64 1 (*.f64 z y))))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x 8) (+.f64 1 (*.f64 z y)))))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x 8) (+.f64 1 (*.f64 z y)))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x 8) (+.f64 1 (*.f64 z y))))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x (+.f64 1 (*.f64 z y))) 1))))) |
| 1× | egg-herbie |
| 3006× | rational.json-simplify-35 |
| 2366× | rational.json-simplify-2 |
| 1400× | rational.json-simplify-53 |
| 1322× | rational.json-simplify-1 |
| 1034× | rational.json-simplify-48 |
Useful iterations: 3 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 51 | 1021 |
| 1 | 123 | 971 |
| 2 | 233 | 971 |
| 3 | 502 | 871 |
| 4 | 1659 | 871 |
| 5 | 3322 | 871 |
| 6 | 4474 | 871 |
| 7 | 4722 | 871 |
| 8 | 4922 | 871 |
| 9 | 5098 | 871 |
| 10 | 5268 | 871 |
| 11 | 5864 | 871 |
| 12 | 6292 | 871 |
| 13 | 6452 | 871 |
| 14 | 6581 | 871 |
| 15 | 6606 | 871 |
| 16 | 6686 | 871 |
| 17 | 6734 | 871 |
| 18 | 6930 | 871 |
| 19 | 7126 | 871 |
| 20 | 7311 | 871 |
| 21 | 7493 | 871 |
| 22 | 7668 | 871 |
| 23 | 7988 | 871 |
| 1× | node limit |
| Inputs |
|---|
(*.f64 (-.f64 1 (*.f64 -1 (*.f64 y z))) x) |
(*.f64 (-.f64 1 (*.f64 -1 (*.f64 y z))) x) |
(*.f64 (-.f64 1 (*.f64 -1 (*.f64 y z))) x) |
(*.f64 (-.f64 1 (*.f64 -1 (*.f64 y z))) x) |
(*.f64 (-.f64 1 (*.f64 -1 (*.f64 y z))) x) |
(*.f64 (-.f64 1 (*.f64 -1 (*.f64 y z))) x) |
(*.f64 (-.f64 1 (*.f64 -1 (*.f64 y z))) x) |
(*.f64 (-.f64 1 (*.f64 -1 (*.f64 y z))) x) |
(*.f64 (-.f64 1 (*.f64 -1 (*.f64 y z))) x) |
(*.f64 (-.f64 1 (*.f64 -1 (*.f64 y z))) x) |
(*.f64 (-.f64 1 (*.f64 -1 (*.f64 y z))) x) |
(*.f64 (-.f64 1 (*.f64 -1 (*.f64 y z))) x) |
x |
(+.f64 (*.f64 y (*.f64 z x)) x) |
(+.f64 (*.f64 y (*.f64 z x)) x) |
(+.f64 (*.f64 y (*.f64 z x)) x) |
(*.f64 y (*.f64 z x)) |
(+.f64 (*.f64 y (*.f64 z x)) x) |
(+.f64 (*.f64 y (*.f64 z x)) x) |
(+.f64 (*.f64 y (*.f64 z x)) x) |
(*.f64 y (*.f64 z x)) |
(+.f64 (*.f64 y (*.f64 z x)) x) |
(+.f64 (*.f64 y (*.f64 z x)) x) |
(+.f64 (*.f64 y (*.f64 z x)) x) |
x |
(+.f64 (*.f64 y (*.f64 z x)) x) |
(+.f64 (*.f64 y (*.f64 z x)) x) |
(+.f64 (*.f64 y (*.f64 z x)) x) |
(*.f64 y (*.f64 z x)) |
(+.f64 (*.f64 y (*.f64 z x)) x) |
(+.f64 (*.f64 y (*.f64 z x)) x) |
(+.f64 (*.f64 y (*.f64 z x)) x) |
(*.f64 y (*.f64 z x)) |
(+.f64 (*.f64 y (*.f64 z x)) x) |
(+.f64 (*.f64 y (*.f64 z x)) x) |
(+.f64 (*.f64 y (*.f64 z x)) x) |
(+.f64 (*.f64 x (+.f64 1 (*.f64 z y))) 0) |
(+.f64 0 (*.f64 x (+.f64 1 (*.f64 z y)))) |
(+.f64 (*.f64 (+.f64 1 (*.f64 z y)) (*.f64 x 1/2)) (*.f64 (+.f64 1 (*.f64 z y)) (*.f64 x 1/2))) |
(-.f64 (*.f64 x (+.f64 1 (*.f64 z y))) 0) |
(/.f64 (*.f64 x (+.f64 1 (*.f64 z y))) 1) |
(/.f64 (*.f64 (+.f64 1 (*.f64 z y)) (+.f64 x x)) 2) |
(/.f64 (*.f64 x (*.f64 (+.f64 1 (*.f64 z y)) 4)) 4) |
(/.f64 (*.f64 (*.f64 x 8) (+.f64 1 (*.f64 z y))) 8) |
(/.f64 (*.f64 2 (*.f64 (*.f64 x 8) (+.f64 1 (*.f64 z y)))) 16) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x 8) (+.f64 1 (*.f64 z y))))) 32) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x 8) (+.f64 1 (*.f64 z y)))))) 64) |
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x 8) (+.f64 1 (*.f64 z y)))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x 8) (+.f64 1 (*.f64 z y))))))) 128) |
(pow.f64 (*.f64 x (+.f64 1 (*.f64 z y))) 1) |
| Outputs |
|---|
(*.f64 (-.f64 1 (*.f64 -1 (*.f64 y z))) x) |
(*.f64 (-.f64 1 (*.f64 y (neg.f64 z))) x) |
(*.f64 (-.f64 1 (*.f64 z (neg.f64 y))) x) |
(*.f64 x (+.f64 1 (*.f64 y z))) |
(*.f64 (-.f64 1 (*.f64 -1 (*.f64 y z))) x) |
(*.f64 (-.f64 1 (*.f64 y (neg.f64 z))) x) |
(*.f64 (-.f64 1 (*.f64 z (neg.f64 y))) x) |
(*.f64 x (+.f64 1 (*.f64 y z))) |
(*.f64 (-.f64 1 (*.f64 -1 (*.f64 y z))) x) |
(*.f64 (-.f64 1 (*.f64 y (neg.f64 z))) x) |
(*.f64 (-.f64 1 (*.f64 z (neg.f64 y))) x) |
(*.f64 x (+.f64 1 (*.f64 y z))) |
(*.f64 (-.f64 1 (*.f64 -1 (*.f64 y z))) x) |
(*.f64 (-.f64 1 (*.f64 y (neg.f64 z))) x) |
(*.f64 (-.f64 1 (*.f64 z (neg.f64 y))) x) |
(*.f64 x (+.f64 1 (*.f64 y z))) |
(*.f64 (-.f64 1 (*.f64 -1 (*.f64 y z))) x) |
(*.f64 (-.f64 1 (*.f64 y (neg.f64 z))) x) |
(*.f64 (-.f64 1 (*.f64 z (neg.f64 y))) x) |
(*.f64 x (+.f64 1 (*.f64 y z))) |
(*.f64 (-.f64 1 (*.f64 -1 (*.f64 y z))) x) |
(*.f64 (-.f64 1 (*.f64 y (neg.f64 z))) x) |
(*.f64 (-.f64 1 (*.f64 z (neg.f64 y))) x) |
(*.f64 x (+.f64 1 (*.f64 y z))) |
(*.f64 (-.f64 1 (*.f64 -1 (*.f64 y z))) x) |
(*.f64 (-.f64 1 (*.f64 y (neg.f64 z))) x) |
(*.f64 (-.f64 1 (*.f64 z (neg.f64 y))) x) |
(*.f64 x (+.f64 1 (*.f64 y z))) |
(*.f64 (-.f64 1 (*.f64 -1 (*.f64 y z))) x) |
(*.f64 (-.f64 1 (*.f64 y (neg.f64 z))) x) |
(*.f64 (-.f64 1 (*.f64 z (neg.f64 y))) x) |
(*.f64 x (+.f64 1 (*.f64 y z))) |
(*.f64 (-.f64 1 (*.f64 -1 (*.f64 y z))) x) |
(*.f64 (-.f64 1 (*.f64 y (neg.f64 z))) x) |
(*.f64 (-.f64 1 (*.f64 z (neg.f64 y))) x) |
(*.f64 x (+.f64 1 (*.f64 y z))) |
(*.f64 (-.f64 1 (*.f64 -1 (*.f64 y z))) x) |
(*.f64 (-.f64 1 (*.f64 y (neg.f64 z))) x) |
(*.f64 (-.f64 1 (*.f64 z (neg.f64 y))) x) |
(*.f64 x (+.f64 1 (*.f64 y z))) |
(*.f64 (-.f64 1 (*.f64 -1 (*.f64 y z))) x) |
(*.f64 (-.f64 1 (*.f64 y (neg.f64 z))) x) |
(*.f64 (-.f64 1 (*.f64 z (neg.f64 y))) x) |
(*.f64 x (+.f64 1 (*.f64 y z))) |
(*.f64 (-.f64 1 (*.f64 -1 (*.f64 y z))) x) |
(*.f64 (-.f64 1 (*.f64 y (neg.f64 z))) x) |
(*.f64 (-.f64 1 (*.f64 z (neg.f64 y))) x) |
(*.f64 x (+.f64 1 (*.f64 y z))) |
x |
(+.f64 (*.f64 y (*.f64 z x)) x) |
(+.f64 x (*.f64 z (*.f64 x y))) |
(+.f64 x (*.f64 z (*.f64 y x))) |
(+.f64 x (*.f64 y (*.f64 z x))) |
(+.f64 (*.f64 y (*.f64 z x)) x) |
(+.f64 x (*.f64 z (*.f64 x y))) |
(+.f64 x (*.f64 z (*.f64 y x))) |
(+.f64 x (*.f64 y (*.f64 z x))) |
(+.f64 (*.f64 y (*.f64 z x)) x) |
(+.f64 x (*.f64 z (*.f64 x y))) |
(+.f64 x (*.f64 z (*.f64 y x))) |
(+.f64 x (*.f64 y (*.f64 z x))) |
(*.f64 y (*.f64 z x)) |
(*.f64 z (*.f64 x y)) |
(*.f64 z (*.f64 y x)) |
(+.f64 (*.f64 y (*.f64 z x)) x) |
(+.f64 x (*.f64 z (*.f64 x y))) |
(+.f64 x (*.f64 z (*.f64 y x))) |
(+.f64 x (*.f64 y (*.f64 z x))) |
(+.f64 (*.f64 y (*.f64 z x)) x) |
(+.f64 x (*.f64 z (*.f64 x y))) |
(+.f64 x (*.f64 z (*.f64 y x))) |
(+.f64 x (*.f64 y (*.f64 z x))) |
(+.f64 (*.f64 y (*.f64 z x)) x) |
(+.f64 x (*.f64 z (*.f64 x y))) |
(+.f64 x (*.f64 z (*.f64 y x))) |
(+.f64 x (*.f64 y (*.f64 z x))) |
(*.f64 y (*.f64 z x)) |
(*.f64 z (*.f64 x y)) |
(*.f64 z (*.f64 y x)) |
(+.f64 (*.f64 y (*.f64 z x)) x) |
(+.f64 x (*.f64 z (*.f64 x y))) |
(+.f64 x (*.f64 z (*.f64 y x))) |
(+.f64 x (*.f64 y (*.f64 z x))) |
(+.f64 (*.f64 y (*.f64 z x)) x) |
(+.f64 x (*.f64 z (*.f64 x y))) |
(+.f64 x (*.f64 z (*.f64 y x))) |
(+.f64 x (*.f64 y (*.f64 z x))) |
(+.f64 (*.f64 y (*.f64 z x)) x) |
(+.f64 x (*.f64 z (*.f64 x y))) |
(+.f64 x (*.f64 z (*.f64 y x))) |
(+.f64 x (*.f64 y (*.f64 z x))) |
x |
(+.f64 (*.f64 y (*.f64 z x)) x) |
(+.f64 x (*.f64 z (*.f64 x y))) |
(+.f64 x (*.f64 z (*.f64 y x))) |
(+.f64 x (*.f64 y (*.f64 z x))) |
(+.f64 (*.f64 y (*.f64 z x)) x) |
(+.f64 x (*.f64 z (*.f64 x y))) |
(+.f64 x (*.f64 z (*.f64 y x))) |
(+.f64 x (*.f64 y (*.f64 z x))) |
(+.f64 (*.f64 y (*.f64 z x)) x) |
(+.f64 x (*.f64 z (*.f64 x y))) |
(+.f64 x (*.f64 z (*.f64 y x))) |
(+.f64 x (*.f64 y (*.f64 z x))) |
(*.f64 y (*.f64 z x)) |
(*.f64 z (*.f64 x y)) |
(*.f64 z (*.f64 y x)) |
(+.f64 (*.f64 y (*.f64 z x)) x) |
(+.f64 x (*.f64 z (*.f64 x y))) |
(+.f64 x (*.f64 z (*.f64 y x))) |
(+.f64 x (*.f64 y (*.f64 z x))) |
(+.f64 (*.f64 y (*.f64 z x)) x) |
(+.f64 x (*.f64 z (*.f64 x y))) |
(+.f64 x (*.f64 z (*.f64 y x))) |
(+.f64 x (*.f64 y (*.f64 z x))) |
(+.f64 (*.f64 y (*.f64 z x)) x) |
(+.f64 x (*.f64 z (*.f64 x y))) |
(+.f64 x (*.f64 z (*.f64 y x))) |
(+.f64 x (*.f64 y (*.f64 z x))) |
(*.f64 y (*.f64 z x)) |
(*.f64 z (*.f64 x y)) |
(*.f64 z (*.f64 y x)) |
(+.f64 (*.f64 y (*.f64 z x)) x) |
(+.f64 x (*.f64 z (*.f64 x y))) |
(+.f64 x (*.f64 z (*.f64 y x))) |
(+.f64 x (*.f64 y (*.f64 z x))) |
(+.f64 (*.f64 y (*.f64 z x)) x) |
(+.f64 x (*.f64 z (*.f64 x y))) |
(+.f64 x (*.f64 z (*.f64 y x))) |
(+.f64 x (*.f64 y (*.f64 z x))) |
(+.f64 (*.f64 y (*.f64 z x)) x) |
(+.f64 x (*.f64 z (*.f64 x y))) |
(+.f64 x (*.f64 z (*.f64 y x))) |
(+.f64 x (*.f64 y (*.f64 z x))) |
(+.f64 (*.f64 x (+.f64 1 (*.f64 z y))) 0) |
(*.f64 (-.f64 1 (*.f64 -1 (*.f64 y z))) x) |
(*.f64 (-.f64 1 (*.f64 y (neg.f64 z))) x) |
(*.f64 (-.f64 1 (*.f64 z (neg.f64 y))) x) |
(*.f64 x (+.f64 1 (*.f64 y z))) |
(+.f64 0 (*.f64 x (+.f64 1 (*.f64 z y)))) |
(*.f64 (-.f64 1 (*.f64 -1 (*.f64 y z))) x) |
(*.f64 (-.f64 1 (*.f64 y (neg.f64 z))) x) |
(*.f64 (-.f64 1 (*.f64 z (neg.f64 y))) x) |
(*.f64 x (+.f64 1 (*.f64 y z))) |
(+.f64 (*.f64 (+.f64 1 (*.f64 z y)) (*.f64 x 1/2)) (*.f64 (+.f64 1 (*.f64 z y)) (*.f64 x 1/2))) |
(*.f64 (-.f64 1 (*.f64 -1 (*.f64 y z))) x) |
(*.f64 (-.f64 1 (*.f64 y (neg.f64 z))) x) |
(*.f64 (-.f64 1 (*.f64 z (neg.f64 y))) x) |
(*.f64 x (+.f64 1 (*.f64 y z))) |
(-.f64 (*.f64 x (+.f64 1 (*.f64 z y))) 0) |
(*.f64 (-.f64 1 (*.f64 -1 (*.f64 y z))) x) |
(*.f64 (-.f64 1 (*.f64 y (neg.f64 z))) x) |
(*.f64 (-.f64 1 (*.f64 z (neg.f64 y))) x) |
(*.f64 x (+.f64 1 (*.f64 y z))) |
(/.f64 (*.f64 x (+.f64 1 (*.f64 z y))) 1) |
(*.f64 (-.f64 1 (*.f64 -1 (*.f64 y z))) x) |
(*.f64 (-.f64 1 (*.f64 y (neg.f64 z))) x) |
(*.f64 (-.f64 1 (*.f64 z (neg.f64 y))) x) |
(*.f64 x (+.f64 1 (*.f64 y z))) |
(/.f64 (*.f64 (+.f64 1 (*.f64 z y)) (+.f64 x x)) 2) |
(*.f64 (-.f64 1 (*.f64 -1 (*.f64 y z))) x) |
(*.f64 (-.f64 1 (*.f64 y (neg.f64 z))) x) |
(*.f64 (-.f64 1 (*.f64 z (neg.f64 y))) x) |
(*.f64 x (+.f64 1 (*.f64 y z))) |
(/.f64 (*.f64 x (*.f64 (+.f64 1 (*.f64 z y)) 4)) 4) |
(*.f64 (-.f64 1 (*.f64 -1 (*.f64 y z))) x) |
(*.f64 (-.f64 1 (*.f64 y (neg.f64 z))) x) |
(*.f64 (-.f64 1 (*.f64 z (neg.f64 y))) x) |
(*.f64 x (+.f64 1 (*.f64 y z))) |
(/.f64 (*.f64 (*.f64 x 8) (+.f64 1 (*.f64 z y))) 8) |
(*.f64 (-.f64 1 (*.f64 -1 (*.f64 y z))) x) |
(*.f64 (-.f64 1 (*.f64 y (neg.f64 z))) x) |
(*.f64 (-.f64 1 (*.f64 z (neg.f64 y))) x) |
(*.f64 x (+.f64 1 (*.f64 y z))) |
(/.f64 (*.f64 2 (*.f64 (*.f64 x 8) (+.f64 1 (*.f64 z y)))) 16) |
(*.f64 (-.f64 1 (*.f64 -1 (*.f64 y z))) x) |
(*.f64 (-.f64 1 (*.f64 y (neg.f64 z))) x) |
(*.f64 (-.f64 1 (*.f64 z (neg.f64 y))) x) |
(*.f64 x (+.f64 1 (*.f64 y z))) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x 8) (+.f64 1 (*.f64 z y))))) 32) |
(*.f64 (-.f64 1 (*.f64 -1 (*.f64 y z))) x) |
(*.f64 (-.f64 1 (*.f64 y (neg.f64 z))) x) |
(*.f64 (-.f64 1 (*.f64 z (neg.f64 y))) x) |
(*.f64 x (+.f64 1 (*.f64 y z))) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x 8) (+.f64 1 (*.f64 z y)))))) 64) |
(*.f64 (-.f64 1 (*.f64 -1 (*.f64 y z))) x) |
(*.f64 (-.f64 1 (*.f64 y (neg.f64 z))) x) |
(*.f64 (-.f64 1 (*.f64 z (neg.f64 y))) x) |
(*.f64 x (+.f64 1 (*.f64 y z))) |
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x 8) (+.f64 1 (*.f64 z y)))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x 8) (+.f64 1 (*.f64 z y))))))) 128) |
(*.f64 (-.f64 1 (*.f64 -1 (*.f64 y z))) x) |
(*.f64 (-.f64 1 (*.f64 y (neg.f64 z))) x) |
(*.f64 (-.f64 1 (*.f64 z (neg.f64 y))) x) |
(*.f64 x (+.f64 1 (*.f64 y z))) |
(pow.f64 (*.f64 x (+.f64 1 (*.f64 z y))) 1) |
(*.f64 (-.f64 1 (*.f64 -1 (*.f64 y z))) x) |
(*.f64 (-.f64 1 (*.f64 y (neg.f64 z))) x) |
(*.f64 (-.f64 1 (*.f64 z (neg.f64 y))) x) |
(*.f64 x (+.f64 1 (*.f64 y z))) |
Compiled 2353 to 1492 computations (36.6% saved)
10 alts after pruning (5 fresh and 5 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 216 | 4 | 220 |
| Fresh | 0 | 1 | 1 |
| Picked | 1 | 0 | 1 |
| Done | 3 | 5 | 8 |
| Total | 220 | 10 | 230 |
| Status | Error | Program |
|---|---|---|
| ▶ | 20.1b | (-.f64 x (*.f64 x z)) |
| ▶ | 17.2b | (+.f64 (*.f64 y (*.f64 z x)) x) |
| ✓ | 20.1b | (*.f64 (-.f64 1 z) x) |
| ✓ | 44.3b | (*.f64 z (*.f64 y x)) |
| ✓ | 47.7b | (*.f64 z (neg.f64 x)) |
| ✓ | 45.0b | (*.f64 y (*.f64 z x)) |
| ▶ | 18.4b | (*.f64 x (+.f64 1 (*.f64 y z))) |
| ✓ | 31.6b | (*.f64 x (*.f64 (+.f64 -1 y) z)) |
| ▶ | 46.3b | (*.f64 x (*.f64 z y)) |
| 34.5b | x |
Compiled 81 to 54 computations (33.3% saved)
Found 1 expressions with local error:
| New | Error | Program |
|---|---|---|
| ✓ | 6.4b | (*.f64 x (*.f64 z y)) |
Compiled 14 to 5 computations (64.3% saved)
9 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 0.0ms | x | @ | 0 | (*.f64 x (*.f64 z y)) |
| 0.0ms | z | @ | -inf | (*.f64 x (*.f64 z y)) |
| 0.0ms | z | @ | inf | (*.f64 x (*.f64 z y)) |
| 0.0ms | y | @ | -inf | (*.f64 x (*.f64 z y)) |
| 0.0ms | x | @ | inf | (*.f64 x (*.f64 z y)) |
| 1× | batch-egg-rewrite |
| 2168× | rational.json-simplify-2 |
| 1512× | rational.json-simplify-1 |
| 1370× | exponential.json-3 |
| 1370× | rational.json-1 |
| 1370× | rational.json-2 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 7 | 13 |
| 1 | 48 | 13 |
| 2 | 117 | 13 |
| 3 | 250 | 13 |
| 4 | 452 | 13 |
| 5 | 1058 | 13 |
| 6 | 2170 | 13 |
| 7 | 3361 | 13 |
| 8 | 3993 | 13 |
| 9 | 4949 | 13 |
| 10 | 5542 | 13 |
| 11 | 5542 | 13 |
| 12 | 6896 | 13 |
| 13 | 7986 | 13 |
| 1× | node limit |
| Inputs |
|---|
(*.f64 x (*.f64 z y)) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (*.f64 z y)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 x (*.f64 z y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (*.f64 (*.f64 z y) 1/2)) (*.f64 x (*.f64 (*.f64 z y) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 x (*.f64 z y)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (*.f64 z y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (*.f64 z (+.f64 y y))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 z (*.f64 x (*.f64 y 4))) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (*.f64 z (*.f64 y 8))) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 x (*.f64 z (*.f64 y 8)))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 x (*.f64 z (*.f64 y 8))))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x (*.f64 z (*.f64 y 8)))))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x (*.f64 z (*.f64 y 8))))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x (*.f64 z (*.f64 y 8)))))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x (*.f64 z y)) 1))))) |
| 1× | egg-herbie |
| 4276× | rational.json-simplify-53 |
| 3790× | rational.json-simplify-35 |
| 2412× | rational.json-simplify-2 |
| 1566× | exponential.json-simplify-26 |
| 696× | rational.json-simplify-43 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 50 | 650 |
| 1 | 141 | 650 |
| 2 | 284 | 650 |
| 3 | 716 | 650 |
| 4 | 1991 | 650 |
| 5 | 3638 | 650 |
| 6 | 4128 | 650 |
| 7 | 4487 | 650 |
| 8 | 4703 | 650 |
| 9 | 4913 | 650 |
| 10 | 5794 | 650 |
| 11 | 6545 | 650 |
| 12 | 6545 | 650 |
| 13 | 6545 | 650 |
| 14 | 6754 | 650 |
| 15 | 6963 | 650 |
| 16 | 7172 | 650 |
| 17 | 7381 | 650 |
| 18 | 7590 | 650 |
| 1× | node limit |
| Inputs |
|---|
(*.f64 y (*.f64 z x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 y (*.f64 z x)) |
(+.f64 (*.f64 x (*.f64 z y)) 0) |
(+.f64 0 (*.f64 x (*.f64 z y))) |
(+.f64 (*.f64 x (*.f64 (*.f64 z y) 1/2)) (*.f64 x (*.f64 (*.f64 z y) 1/2))) |
(-.f64 (*.f64 x (*.f64 z y)) 0) |
(/.f64 (*.f64 x (*.f64 z y)) 1) |
(/.f64 (*.f64 x (*.f64 z (+.f64 y y))) 2) |
(/.f64 (*.f64 z (*.f64 x (*.f64 y 4))) 4) |
(/.f64 (*.f64 x (*.f64 z (*.f64 y 8))) 8) |
(/.f64 (*.f64 2 (*.f64 x (*.f64 z (*.f64 y 8)))) 16) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 x (*.f64 z (*.f64 y 8))))) 32) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x (*.f64 z (*.f64 y 8)))))) 64) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x (*.f64 z (*.f64 y 8))))))) 128) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x (*.f64 z (*.f64 y 8)))))))) 256) |
(pow.f64 (*.f64 x (*.f64 z y)) 1) |
| Outputs |
|---|
(*.f64 y (*.f64 z x)) |
(*.f64 z (*.f64 y x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 z (*.f64 y x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 z (*.f64 y x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 z (*.f64 y x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 z (*.f64 y x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 z (*.f64 y x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 z (*.f64 y x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 z (*.f64 y x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 z (*.f64 y x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 z (*.f64 y x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 z (*.f64 y x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 z (*.f64 y x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 z (*.f64 y x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 z (*.f64 y x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 z (*.f64 y x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 z (*.f64 y x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 z (*.f64 y x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 z (*.f64 y x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 z (*.f64 y x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 z (*.f64 y x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 z (*.f64 y x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 z (*.f64 y x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 z (*.f64 y x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 z (*.f64 y x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 z (*.f64 y x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 z (*.f64 y x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 z (*.f64 y x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 z (*.f64 y x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 z (*.f64 y x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 z (*.f64 y x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 z (*.f64 y x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 z (*.f64 y x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 z (*.f64 y x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 z (*.f64 y x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 z (*.f64 y x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 z (*.f64 y x)) |
(+.f64 (*.f64 x (*.f64 z y)) 0) |
(*.f64 y (*.f64 z x)) |
(*.f64 z (*.f64 y x)) |
(+.f64 0 (*.f64 x (*.f64 z y))) |
(*.f64 y (*.f64 z x)) |
(*.f64 z (*.f64 y x)) |
(+.f64 (*.f64 x (*.f64 (*.f64 z y) 1/2)) (*.f64 x (*.f64 (*.f64 z y) 1/2))) |
(*.f64 y (*.f64 z x)) |
(*.f64 z (*.f64 y x)) |
(-.f64 (*.f64 x (*.f64 z y)) 0) |
(*.f64 y (*.f64 z x)) |
(*.f64 z (*.f64 y x)) |
(/.f64 (*.f64 x (*.f64 z y)) 1) |
(*.f64 y (*.f64 z x)) |
(*.f64 z (*.f64 y x)) |
(/.f64 (*.f64 x (*.f64 z (+.f64 y y))) 2) |
(*.f64 y (*.f64 z x)) |
(*.f64 z (*.f64 y x)) |
(/.f64 (*.f64 z (*.f64 x (*.f64 y 4))) 4) |
(*.f64 y (*.f64 z x)) |
(*.f64 z (*.f64 y x)) |
(/.f64 (*.f64 x (*.f64 z (*.f64 y 8))) 8) |
(*.f64 y (*.f64 z x)) |
(*.f64 z (*.f64 y x)) |
(/.f64 (*.f64 2 (*.f64 x (*.f64 z (*.f64 y 8)))) 16) |
(*.f64 y (*.f64 z x)) |
(*.f64 z (*.f64 y x)) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 x (*.f64 z (*.f64 y 8))))) 32) |
(*.f64 y (*.f64 z x)) |
(*.f64 z (*.f64 y x)) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x (*.f64 z (*.f64 y 8)))))) 64) |
(*.f64 y (*.f64 z x)) |
(*.f64 z (*.f64 y x)) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x (*.f64 z (*.f64 y 8))))))) 128) |
(*.f64 y (*.f64 z x)) |
(*.f64 z (*.f64 y x)) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x (*.f64 z (*.f64 y 8)))))))) 256) |
(*.f64 y (*.f64 z x)) |
(*.f64 z (*.f64 y x)) |
(pow.f64 (*.f64 x (*.f64 z y)) 1) |
(*.f64 y (*.f64 z x)) |
(*.f64 z (*.f64 y x)) |
Found 1 expressions with local error:
| New | Error | Program |
|---|---|---|
| ✓ | 3.1b | (*.f64 x (+.f64 1 (*.f64 y z))) |
Compiled 22 to 10 computations (54.5% saved)
9 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 9.0ms | y | @ | -inf | (*.f64 x (+.f64 1 (*.f64 y z))) |
| 0.0ms | x | @ | 0 | (*.f64 x (+.f64 1 (*.f64 y z))) |
| 0.0ms | x | @ | inf | (*.f64 x (+.f64 1 (*.f64 y z))) |
| 0.0ms | x | @ | -inf | (*.f64 x (+.f64 1 (*.f64 y z))) |
| 0.0ms | z | @ | -inf | (*.f64 x (+.f64 1 (*.f64 y z))) |
| 1× | batch-egg-rewrite |
| 1802× | rational.json-simplify-35 |
| 1722× | rational.json-simplify-1 |
| 1368× | exponential.json-3 |
| 1368× | rational.json-1 |
| 1368× | rational.json-2 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 9 | 19 |
| 1 | 71 | 19 |
| 2 | 157 | 19 |
| 3 | 284 | 19 |
| 4 | 522 | 19 |
| 5 | 1139 | 19 |
| 6 | 2717 | 19 |
| 7 | 4709 | 19 |
| 8 | 5670 | 19 |
| 9 | 6881 | 19 |
| 10 | 7846 | 19 |
| 11 | 7846 | 19 |
| 1× | node limit |
| Inputs |
|---|
(*.f64 x (+.f64 1 (*.f64 y z))) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (+.f64 1 (*.f64 y z))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 x (+.f64 1 (*.f64 y z))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 1 (*.f64 y z)) (*.f64 x 1/2)) (*.f64 (+.f64 1 (*.f64 y z)) (*.f64 x 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 x (+.f64 1 (*.f64 y z))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (+.f64 1 (*.f64 y z))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (+.f64 2 (*.f64 y (+.f64 z z)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (*.f64 (+.f64 1 (*.f64 y z)) 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 x 8) (+.f64 1 (*.f64 y z))) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 x 8) (+.f64 1 (*.f64 y z)))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x 8) (+.f64 1 (*.f64 y z))))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x 8) (+.f64 1 (*.f64 y z)))))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x 8) (+.f64 1 (*.f64 y z))))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x 8) (+.f64 1 (*.f64 y z)))))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x (+.f64 1 (*.f64 y z))) 1))))) |
| 1× | egg-herbie |
| 3770× | rational.json-simplify-35 |
| 2684× | rational.json-simplify-2 |
| 1630× | rational.json-simplify-53 |
| 924× | rational.json-simplify-1 |
| 922× | exponential.json-simplify-26 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 53 | 902 |
| 1 | 136 | 902 |
| 2 | 251 | 902 |
| 3 | 516 | 902 |
| 4 | 1709 | 902 |
| 5 | 3373 | 902 |
| 6 | 4505 | 902 |
| 7 | 4726 | 902 |
| 8 | 4899 | 902 |
| 9 | 5062 | 902 |
| 10 | 5219 | 902 |
| 11 | 5833 | 902 |
| 12 | 6189 | 902 |
| 13 | 6356 | 902 |
| 14 | 6446 | 902 |
| 15 | 6457 | 902 |
| 16 | 6482 | 902 |
| 17 | 6611 | 902 |
| 18 | 6745 | 902 |
| 19 | 6870 | 902 |
| 20 | 6993 | 902 |
| 21 | 7115 | 902 |
| 22 | 7237 | 902 |
| 23 | 7621 | 902 |
| 24 | 7743 | 902 |
| 25 | 7923 | 902 |
| 1× | node limit |
| Inputs |
|---|
(*.f64 (+.f64 (*.f64 y z) 1) x) |
(*.f64 (+.f64 (*.f64 y z) 1) x) |
(*.f64 (+.f64 (*.f64 y z) 1) x) |
(*.f64 (+.f64 (*.f64 y z) 1) x) |
(*.f64 (+.f64 (*.f64 y z) 1) x) |
(*.f64 (+.f64 (*.f64 y z) 1) x) |
(*.f64 (+.f64 (*.f64 y z) 1) x) |
(*.f64 (+.f64 (*.f64 y z) 1) x) |
(*.f64 (+.f64 (*.f64 y z) 1) x) |
(*.f64 (+.f64 (*.f64 y z) 1) x) |
(*.f64 (+.f64 (*.f64 y z) 1) x) |
(*.f64 (+.f64 (*.f64 y z) 1) x) |
x |
(+.f64 (*.f64 y (*.f64 z x)) x) |
(+.f64 (*.f64 y (*.f64 z x)) x) |
(+.f64 (*.f64 y (*.f64 z x)) x) |
(*.f64 y (*.f64 z x)) |
(+.f64 (*.f64 y (*.f64 z x)) x) |
(+.f64 (*.f64 y (*.f64 z x)) x) |
(+.f64 (*.f64 y (*.f64 z x)) x) |
(*.f64 y (*.f64 z x)) |
(+.f64 (*.f64 y (*.f64 z x)) x) |
(+.f64 (*.f64 y (*.f64 z x)) x) |
(+.f64 (*.f64 y (*.f64 z x)) x) |
x |
(+.f64 (*.f64 y (*.f64 z x)) x) |
(+.f64 (*.f64 y (*.f64 z x)) x) |
(+.f64 (*.f64 y (*.f64 z x)) x) |
(*.f64 y (*.f64 z x)) |
(+.f64 (*.f64 y (*.f64 z x)) x) |
(+.f64 (*.f64 y (*.f64 z x)) x) |
(+.f64 (*.f64 y (*.f64 z x)) x) |
(*.f64 y (*.f64 z x)) |
(+.f64 (*.f64 y (*.f64 z x)) x) |
(+.f64 (*.f64 y (*.f64 z x)) x) |
(+.f64 (*.f64 y (*.f64 z x)) x) |
(+.f64 (*.f64 x (+.f64 1 (*.f64 y z))) 0) |
(+.f64 0 (*.f64 x (+.f64 1 (*.f64 y z)))) |
(+.f64 (*.f64 (+.f64 1 (*.f64 y z)) (*.f64 x 1/2)) (*.f64 (+.f64 1 (*.f64 y z)) (*.f64 x 1/2))) |
(-.f64 (*.f64 x (+.f64 1 (*.f64 y z))) 0) |
(/.f64 (*.f64 x (+.f64 1 (*.f64 y z))) 1) |
(/.f64 (*.f64 x (+.f64 2 (*.f64 y (+.f64 z z)))) 2) |
(/.f64 (*.f64 x (*.f64 (+.f64 1 (*.f64 y z)) 4)) 4) |
(/.f64 (*.f64 (*.f64 x 8) (+.f64 1 (*.f64 y z))) 8) |
(/.f64 (*.f64 2 (*.f64 (*.f64 x 8) (+.f64 1 (*.f64 y z)))) 16) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x 8) (+.f64 1 (*.f64 y z))))) 32) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x 8) (+.f64 1 (*.f64 y z)))))) 64) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x 8) (+.f64 1 (*.f64 y z))))))) 128) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x 8) (+.f64 1 (*.f64 y z)))))))) 256) |
(pow.f64 (*.f64 x (+.f64 1 (*.f64 y z))) 1) |
| Outputs |
|---|
(*.f64 (+.f64 (*.f64 y z) 1) x) |
(*.f64 x (+.f64 (*.f64 y z) 1)) |
(*.f64 (+.f64 (*.f64 y z) 1) x) |
(*.f64 x (+.f64 (*.f64 y z) 1)) |
(*.f64 (+.f64 (*.f64 y z) 1) x) |
(*.f64 x (+.f64 (*.f64 y z) 1)) |
(*.f64 (+.f64 (*.f64 y z) 1) x) |
(*.f64 x (+.f64 (*.f64 y z) 1)) |
(*.f64 (+.f64 (*.f64 y z) 1) x) |
(*.f64 x (+.f64 (*.f64 y z) 1)) |
(*.f64 (+.f64 (*.f64 y z) 1) x) |
(*.f64 x (+.f64 (*.f64 y z) 1)) |
(*.f64 (+.f64 (*.f64 y z) 1) x) |
(*.f64 x (+.f64 (*.f64 y z) 1)) |
(*.f64 (+.f64 (*.f64 y z) 1) x) |
(*.f64 x (+.f64 (*.f64 y z) 1)) |
(*.f64 (+.f64 (*.f64 y z) 1) x) |
(*.f64 x (+.f64 (*.f64 y z) 1)) |
(*.f64 (+.f64 (*.f64 y z) 1) x) |
(*.f64 x (+.f64 (*.f64 y z) 1)) |
(*.f64 (+.f64 (*.f64 y z) 1) x) |
(*.f64 x (+.f64 (*.f64 y z) 1)) |
(*.f64 (+.f64 (*.f64 y z) 1) x) |
(*.f64 x (+.f64 (*.f64 y z) 1)) |
x |
(+.f64 (*.f64 y (*.f64 z x)) x) |
(+.f64 x (*.f64 z (*.f64 x y))) |
(+.f64 x (*.f64 z (*.f64 y x))) |
(+.f64 x (*.f64 y (*.f64 z x))) |
(+.f64 (*.f64 y (*.f64 z x)) x) |
(+.f64 x (*.f64 z (*.f64 x y))) |
(+.f64 x (*.f64 z (*.f64 y x))) |
(+.f64 x (*.f64 y (*.f64 z x))) |
(+.f64 (*.f64 y (*.f64 z x)) x) |
(+.f64 x (*.f64 z (*.f64 x y))) |
(+.f64 x (*.f64 z (*.f64 y x))) |
(+.f64 x (*.f64 y (*.f64 z x))) |
(*.f64 y (*.f64 z x)) |
(*.f64 z (*.f64 x y)) |
(*.f64 z (*.f64 y x)) |
(+.f64 (*.f64 y (*.f64 z x)) x) |
(+.f64 x (*.f64 z (*.f64 x y))) |
(+.f64 x (*.f64 z (*.f64 y x))) |
(+.f64 x (*.f64 y (*.f64 z x))) |
(+.f64 (*.f64 y (*.f64 z x)) x) |
(+.f64 x (*.f64 z (*.f64 x y))) |
(+.f64 x (*.f64 z (*.f64 y x))) |
(+.f64 x (*.f64 y (*.f64 z x))) |
(+.f64 (*.f64 y (*.f64 z x)) x) |
(+.f64 x (*.f64 z (*.f64 x y))) |
(+.f64 x (*.f64 z (*.f64 y x))) |
(+.f64 x (*.f64 y (*.f64 z x))) |
(*.f64 y (*.f64 z x)) |
(*.f64 z (*.f64 x y)) |
(*.f64 z (*.f64 y x)) |
(+.f64 (*.f64 y (*.f64 z x)) x) |
(+.f64 x (*.f64 z (*.f64 x y))) |
(+.f64 x (*.f64 z (*.f64 y x))) |
(+.f64 x (*.f64 y (*.f64 z x))) |
(+.f64 (*.f64 y (*.f64 z x)) x) |
(+.f64 x (*.f64 z (*.f64 x y))) |
(+.f64 x (*.f64 z (*.f64 y x))) |
(+.f64 x (*.f64 y (*.f64 z x))) |
(+.f64 (*.f64 y (*.f64 z x)) x) |
(+.f64 x (*.f64 z (*.f64 x y))) |
(+.f64 x (*.f64 z (*.f64 y x))) |
(+.f64 x (*.f64 y (*.f64 z x))) |
x |
(+.f64 (*.f64 y (*.f64 z x)) x) |
(+.f64 x (*.f64 z (*.f64 x y))) |
(+.f64 x (*.f64 z (*.f64 y x))) |
(+.f64 x (*.f64 y (*.f64 z x))) |
(+.f64 (*.f64 y (*.f64 z x)) x) |
(+.f64 x (*.f64 z (*.f64 x y))) |
(+.f64 x (*.f64 z (*.f64 y x))) |
(+.f64 x (*.f64 y (*.f64 z x))) |
(+.f64 (*.f64 y (*.f64 z x)) x) |
(+.f64 x (*.f64 z (*.f64 x y))) |
(+.f64 x (*.f64 z (*.f64 y x))) |
(+.f64 x (*.f64 y (*.f64 z x))) |
(*.f64 y (*.f64 z x)) |
(*.f64 z (*.f64 x y)) |
(*.f64 z (*.f64 y x)) |
(+.f64 (*.f64 y (*.f64 z x)) x) |
(+.f64 x (*.f64 z (*.f64 x y))) |
(+.f64 x (*.f64 z (*.f64 y x))) |
(+.f64 x (*.f64 y (*.f64 z x))) |
(+.f64 (*.f64 y (*.f64 z x)) x) |
(+.f64 x (*.f64 z (*.f64 x y))) |
(+.f64 x (*.f64 z (*.f64 y x))) |
(+.f64 x (*.f64 y (*.f64 z x))) |
(+.f64 (*.f64 y (*.f64 z x)) x) |
(+.f64 x (*.f64 z (*.f64 x y))) |
(+.f64 x (*.f64 z (*.f64 y x))) |
(+.f64 x (*.f64 y (*.f64 z x))) |
(*.f64 y (*.f64 z x)) |
(*.f64 z (*.f64 x y)) |
(*.f64 z (*.f64 y x)) |
(+.f64 (*.f64 y (*.f64 z x)) x) |
(+.f64 x (*.f64 z (*.f64 x y))) |
(+.f64 x (*.f64 z (*.f64 y x))) |
(+.f64 x (*.f64 y (*.f64 z x))) |
(+.f64 (*.f64 y (*.f64 z x)) x) |
(+.f64 x (*.f64 z (*.f64 x y))) |
(+.f64 x (*.f64 z (*.f64 y x))) |
(+.f64 x (*.f64 y (*.f64 z x))) |
(+.f64 (*.f64 y (*.f64 z x)) x) |
(+.f64 x (*.f64 z (*.f64 x y))) |
(+.f64 x (*.f64 z (*.f64 y x))) |
(+.f64 x (*.f64 y (*.f64 z x))) |
(+.f64 (*.f64 x (+.f64 1 (*.f64 y z))) 0) |
(*.f64 x (+.f64 (*.f64 y z) 1)) |
(+.f64 0 (*.f64 x (+.f64 1 (*.f64 y z)))) |
(*.f64 x (+.f64 (*.f64 y z) 1)) |
(+.f64 (*.f64 (+.f64 1 (*.f64 y z)) (*.f64 x 1/2)) (*.f64 (+.f64 1 (*.f64 y z)) (*.f64 x 1/2))) |
(*.f64 x (+.f64 (*.f64 y z) 1)) |
(-.f64 (*.f64 x (+.f64 1 (*.f64 y z))) 0) |
(*.f64 x (+.f64 (*.f64 y z) 1)) |
(/.f64 (*.f64 x (+.f64 1 (*.f64 y z))) 1) |
(*.f64 x (+.f64 (*.f64 y z) 1)) |
(/.f64 (*.f64 x (+.f64 2 (*.f64 y (+.f64 z z)))) 2) |
(*.f64 (+.f64 2 (*.f64 y (+.f64 z z))) (/.f64 x 2)) |
(*.f64 (*.f64 x 1/2) (+.f64 2 (*.f64 y (+.f64 z z)))) |
(*.f64 x (/.f64 (+.f64 2 (*.f64 y (+.f64 z z))) 2)) |
(/.f64 (*.f64 x (*.f64 (+.f64 1 (*.f64 y z)) 4)) 4) |
(*.f64 x (+.f64 (*.f64 y z) 1)) |
(/.f64 (*.f64 (*.f64 x 8) (+.f64 1 (*.f64 y z))) 8) |
(*.f64 x (+.f64 (*.f64 y z) 1)) |
(/.f64 (*.f64 2 (*.f64 (*.f64 x 8) (+.f64 1 (*.f64 y z)))) 16) |
(*.f64 x (+.f64 (*.f64 y z) 1)) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x 8) (+.f64 1 (*.f64 y z))))) 32) |
(*.f64 x (+.f64 (*.f64 y z) 1)) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x 8) (+.f64 1 (*.f64 y z)))))) 64) |
(*.f64 x (+.f64 (*.f64 y z) 1)) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x 8) (+.f64 1 (*.f64 y z))))))) 128) |
(*.f64 x (+.f64 (*.f64 y z) 1)) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x 8) (+.f64 1 (*.f64 y z)))))))) 256) |
(*.f64 x (+.f64 (*.f64 y z) 1)) |
(pow.f64 (*.f64 x (+.f64 1 (*.f64 y z))) 1) |
(*.f64 x (+.f64 (*.f64 y z) 1)) |
Found 2 expressions with local error:
| New | Error | Program |
|---|---|---|
| ✓ | 0.0b | (+.f64 (*.f64 y (*.f64 z x)) x) |
| 2.9b | (*.f64 y (*.f64 z x)) |
Compiled 21 to 6 computations (71.4% saved)
9 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 0.0ms | x | @ | -inf | (+.f64 (*.f64 y (*.f64 z x)) x) |
| 0.0ms | y | @ | 0 | (+.f64 (*.f64 y (*.f64 z x)) x) |
| 0.0ms | y | @ | -inf | (+.f64 (*.f64 y (*.f64 z x)) x) |
| 0.0ms | y | @ | inf | (+.f64 (*.f64 y (*.f64 z x)) x) |
| 0.0ms | z | @ | -inf | (+.f64 (*.f64 y (*.f64 z x)) x) |
| 1× | batch-egg-rewrite |
| 2442× | rational.json-simplify-2 |
| 1598× | rational.json-1 |
| 1240× | rational.json-simplify-35 |
| 1210× | exponential.json-3 |
| 1210× | rational.json-2 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 8 | 19 |
| 1 | 55 | 19 |
| 2 | 128 | 19 |
| 3 | 277 | 19 |
| 4 | 532 | 19 |
| 5 | 1296 | 19 |
| 6 | 2944 | 19 |
| 7 | 4561 | 19 |
| 8 | 5405 | 19 |
| 9 | 6424 | 19 |
| 10 | 6424 | 19 |
| 11 | 7961 | 19 |
| 1× | node limit |
| Inputs |
|---|
(+.f64 (*.f64 y (*.f64 z x)) x) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 x (+.f64 1 (*.f64 y z))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (+.f64 1 (*.f64 y z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x (+.f64 1 (*.f64 y z))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 x (+.f64 1 (*.f64 y z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (*.f64 x (+.f64 1 (*.f64 y z))) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (*.f64 (+.f64 1 (*.f64 y z)) 1/2) x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (+.f64 1/2 (*.f64 (*.f64 y z) 1/2)) x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (+.f64 1/2 (*.f64 y (*.f64 z 1/2))) x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x x) (+.f64 1 (*.f64 y z))) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x x) (*.f64 (+.f64 1 (*.f64 y z)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x x) (+.f64 1/2 (*.f64 (*.f64 y z) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x x) (+.f64 1/2 (*.f64 y (*.f64 z 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (*.f64 x (+.f64 1 (*.f64 y z))) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x (*.f64 4 (+.f64 1 (*.f64 y z)))) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 1 (*.f64 y z)) x)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (+.f64 1 (*.f64 y z))) (/.f64 x 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (+.f64 x x) (+.f64 1 (*.f64 y z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 x 2) (*.f64 2 (+.f64 1 (*.f64 y z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 x 2) (+.f64 2 (*.f64 y (+.f64 z z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 x (+.f64 1 (*.f64 y z))) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 1 (*.f64 y z)) 1/2) (+.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 x (*.f64 4 (+.f64 1 (*.f64 y z)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 x (+.f64 1 (*.f64 y z))) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 2 (*.f64 y (+.f64 z z))) (/.f64 x 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 1/2 (*.f64 (*.f64 y z) 1/2)) (+.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 1/2 (*.f64 y (*.f64 z 1/2))) (+.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (+.f64 1 (*.f64 y z))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 x x) (+.f64 1 (*.f64 y z))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (*.f64 4 (+.f64 1 (*.f64 y z)))) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 x (+.f64 1 (*.f64 y z))) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 x (+.f64 1 (*.f64 y z))) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (+.f64 1 (*.f64 y z))) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (+.f64 1 (*.f64 y z))) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (+.f64 1 (*.f64 y z))) 8))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x (+.f64 1 (*.f64 y z))) 1))))) |
| 1× | egg-herbie |
| 2032× | rational.json-simplify-2 |
| 1642× | rational.json-simplify-35 |
| 946× | rational.json-simplify-1 |
| 884× | rational.json-simplify-48 |
| 810× | rational.json-simplify-51 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 87 | 1019 |
| 1 | 197 | 1019 |
| 2 | 446 | 1019 |
| 3 | 1450 | 1019 |
| 4 | 3129 | 1019 |
| 5 | 4327 | 1019 |
| 6 | 4990 | 1019 |
| 7 | 5388 | 1019 |
| 8 | 5780 | 1019 |
| 9 | 6277 | 1019 |
| 10 | 7328 | 1019 |
| 1× | node limit |
| Inputs |
|---|
x |
(*.f64 y (*.f64 z x)) |
(*.f64 y (*.f64 z x)) |
x |
(*.f64 y (*.f64 z x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 (+.f64 (*.f64 y z) 1) x) |
(*.f64 (+.f64 (*.f64 y z) 1) x) |
(*.f64 (+.f64 (*.f64 y z) 1) x) |
(*.f64 (+.f64 (*.f64 y z) 1) x) |
(*.f64 (+.f64 (*.f64 y z) 1) x) |
(*.f64 (+.f64 (*.f64 y z) 1) x) |
(*.f64 (+.f64 (*.f64 y z) 1) x) |
(*.f64 (+.f64 (*.f64 y z) 1) x) |
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 (*.f64 y z)) 1) x)) |
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 (*.f64 y z)) 1) x)) |
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 (*.f64 y z)) 1) x)) |
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 (*.f64 y z)) 1) x)) |
(-.f64 (*.f64 x (+.f64 1 (*.f64 y z))) 0) |
(*.f64 x (+.f64 1 (*.f64 y z))) |
(*.f64 (*.f64 x (+.f64 1 (*.f64 y z))) 1) |
(*.f64 1 (*.f64 x (+.f64 1 (*.f64 y z)))) |
(*.f64 2 (*.f64 (*.f64 x (+.f64 1 (*.f64 y z))) 1/2)) |
(*.f64 2 (*.f64 (*.f64 (+.f64 1 (*.f64 y z)) 1/2) x)) |
(*.f64 2 (*.f64 (+.f64 1/2 (*.f64 (*.f64 y z) 1/2)) x)) |
(*.f64 2 (*.f64 (+.f64 1/2 (*.f64 y (*.f64 z 1/2))) x)) |
(*.f64 (*.f64 (+.f64 x x) (+.f64 1 (*.f64 y z))) 1/2) |
(*.f64 (+.f64 x x) (*.f64 (+.f64 1 (*.f64 y z)) 1/2)) |
(*.f64 (+.f64 x x) (+.f64 1/2 (*.f64 (*.f64 y z) 1/2))) |
(*.f64 (+.f64 x x) (+.f64 1/2 (*.f64 y (*.f64 z 1/2)))) |
(*.f64 4 (/.f64 (*.f64 x (+.f64 1 (*.f64 y z))) 4)) |
(*.f64 (*.f64 x (*.f64 4 (+.f64 1 (*.f64 y z)))) 1/4) |
(*.f64 (+.f64 1 (*.f64 y z)) x) |
(*.f64 (*.f64 2 (+.f64 1 (*.f64 y z))) (/.f64 x 2)) |
(*.f64 1/2 (*.f64 (+.f64 x x) (+.f64 1 (*.f64 y z)))) |
(*.f64 (/.f64 x 2) (*.f64 2 (+.f64 1 (*.f64 y z)))) |
(*.f64 (/.f64 x 2) (+.f64 2 (*.f64 y (+.f64 z z)))) |
(*.f64 (*.f64 (*.f64 x (+.f64 1 (*.f64 y z))) 1/2) 2) |
(*.f64 (*.f64 (+.f64 1 (*.f64 y z)) 1/2) (+.f64 x x)) |
(*.f64 1/4 (*.f64 x (*.f64 4 (+.f64 1 (*.f64 y z))))) |
(*.f64 (/.f64 (*.f64 x (+.f64 1 (*.f64 y z))) 4) 4) |
(*.f64 (+.f64 2 (*.f64 y (+.f64 z z))) (/.f64 x 2)) |
(*.f64 (+.f64 1/2 (*.f64 (*.f64 y z) 1/2)) (+.f64 x x)) |
(*.f64 (+.f64 1/2 (*.f64 y (*.f64 z 1/2))) (+.f64 x x)) |
(/.f64 (*.f64 x (+.f64 1 (*.f64 y z))) 1) |
(/.f64 (*.f64 (+.f64 x x) (+.f64 1 (*.f64 y z))) 2) |
(/.f64 (*.f64 x (*.f64 4 (+.f64 1 (*.f64 y z)))) 4) |
(/.f64 (*.f64 (*.f64 x (+.f64 1 (*.f64 y z))) 8) 8) |
(/.f64 (*.f64 2 (*.f64 (*.f64 x (+.f64 1 (*.f64 y z))) 8)) 16) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (+.f64 1 (*.f64 y z))) 8))) 32) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (+.f64 1 (*.f64 y z))) 8)))) 64) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (+.f64 1 (*.f64 y z))) 8))))) 128) |
(pow.f64 (*.f64 x (+.f64 1 (*.f64 y z))) 1) |
| Outputs |
|---|
x |
(*.f64 y (*.f64 z x)) |
(*.f64 y (*.f64 x z)) |
(*.f64 x (*.f64 y z)) |
(*.f64 y (*.f64 z x)) |
(*.f64 y (*.f64 x z)) |
(*.f64 x (*.f64 y z)) |
x |
(*.f64 y (*.f64 z x)) |
(*.f64 y (*.f64 x z)) |
(*.f64 x (*.f64 y z)) |
(*.f64 y (*.f64 z x)) |
(*.f64 y (*.f64 x z)) |
(*.f64 x (*.f64 y z)) |
(*.f64 (+.f64 (*.f64 y z) 1) x) |
(*.f64 x (+.f64 (*.f64 y z) 1)) |
(*.f64 (+.f64 (*.f64 y z) 1) x) |
(*.f64 x (+.f64 (*.f64 y z) 1)) |
(*.f64 (+.f64 (*.f64 y z) 1) x) |
(*.f64 x (+.f64 (*.f64 y z) 1)) |
(*.f64 (+.f64 (*.f64 y z) 1) x) |
(*.f64 x (+.f64 (*.f64 y z) 1)) |
(*.f64 (+.f64 (*.f64 y z) 1) x) |
(*.f64 x (+.f64 (*.f64 y z) 1)) |
(*.f64 (+.f64 (*.f64 y z) 1) x) |
(*.f64 x (+.f64 (*.f64 y z) 1)) |
(*.f64 (+.f64 (*.f64 y z) 1) x) |
(*.f64 x (+.f64 (*.f64 y z) 1)) |
(*.f64 (+.f64 (*.f64 y z) 1) x) |
(*.f64 x (+.f64 (*.f64 y z) 1)) |
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 (*.f64 y z)) 1) x)) |
(*.f64 x (+.f64 (*.f64 y z) 1)) |
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 (*.f64 y z)) 1) x)) |
(*.f64 x (+.f64 (*.f64 y z) 1)) |
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 (*.f64 y z)) 1) x)) |
(*.f64 x (+.f64 (*.f64 y z) 1)) |
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 (*.f64 y z)) 1) x)) |
(*.f64 x (+.f64 (*.f64 y z) 1)) |
(-.f64 (*.f64 x (+.f64 1 (*.f64 y z))) 0) |
(*.f64 x (+.f64 (*.f64 y z) 1)) |
(*.f64 x (+.f64 1 (*.f64 y z))) |
(*.f64 x (+.f64 (*.f64 y z) 1)) |
(*.f64 (*.f64 x (+.f64 1 (*.f64 y z))) 1) |
(*.f64 x (+.f64 (*.f64 y z) 1)) |
(*.f64 1 (*.f64 x (+.f64 1 (*.f64 y z)))) |
(*.f64 x (+.f64 (*.f64 y z) 1)) |
(*.f64 2 (*.f64 (*.f64 x (+.f64 1 (*.f64 y z))) 1/2)) |
(*.f64 x (+.f64 (*.f64 y z) 1)) |
(*.f64 2 (*.f64 (*.f64 (+.f64 1 (*.f64 y z)) 1/2) x)) |
(*.f64 x (+.f64 (*.f64 y z) 1)) |
(*.f64 2 (*.f64 (+.f64 1/2 (*.f64 (*.f64 y z) 1/2)) x)) |
(*.f64 2 (*.f64 x (+.f64 1/2 (*.f64 (*.f64 y z) 1/2)))) |
(*.f64 x (*.f64 2 (+.f64 1/2 (*.f64 y (*.f64 z 1/2))))) |
(*.f64 2 (*.f64 (+.f64 1/2 (*.f64 y (*.f64 z 1/2))) x)) |
(*.f64 2 (*.f64 x (+.f64 1/2 (*.f64 (*.f64 y z) 1/2)))) |
(*.f64 x (*.f64 2 (+.f64 1/2 (*.f64 y (*.f64 z 1/2))))) |
(*.f64 (*.f64 (+.f64 x x) (+.f64 1 (*.f64 y z))) 1/2) |
(*.f64 x (+.f64 (*.f64 y z) 1)) |
(*.f64 (+.f64 x x) (*.f64 (+.f64 1 (*.f64 y z)) 1/2)) |
(*.f64 x (+.f64 (*.f64 y z) 1)) |
(*.f64 (+.f64 x x) (+.f64 1/2 (*.f64 (*.f64 y z) 1/2))) |
(*.f64 2 (*.f64 x (+.f64 1/2 (*.f64 (*.f64 y z) 1/2)))) |
(*.f64 x (*.f64 2 (+.f64 1/2 (*.f64 y (*.f64 z 1/2))))) |
(*.f64 (+.f64 x x) (+.f64 1/2 (*.f64 y (*.f64 z 1/2)))) |
(*.f64 2 (*.f64 x (+.f64 1/2 (*.f64 (*.f64 y z) 1/2)))) |
(*.f64 x (*.f64 2 (+.f64 1/2 (*.f64 y (*.f64 z 1/2))))) |
(*.f64 4 (/.f64 (*.f64 x (+.f64 1 (*.f64 y z))) 4)) |
(*.f64 x (+.f64 (*.f64 y z) 1)) |
(*.f64 (*.f64 x (*.f64 4 (+.f64 1 (*.f64 y z)))) 1/4) |
(*.f64 x (+.f64 (*.f64 y z) 1)) |
(*.f64 (+.f64 1 (*.f64 y z)) x) |
(*.f64 x (+.f64 (*.f64 y z) 1)) |
(*.f64 (*.f64 2 (+.f64 1 (*.f64 y z))) (/.f64 x 2)) |
(*.f64 x (+.f64 (*.f64 y z) 1)) |
(*.f64 1/2 (*.f64 (+.f64 x x) (+.f64 1 (*.f64 y z)))) |
(*.f64 x (+.f64 (*.f64 y z) 1)) |
(*.f64 (/.f64 x 2) (*.f64 2 (+.f64 1 (*.f64 y z)))) |
(*.f64 x (+.f64 (*.f64 y z) 1)) |
(*.f64 (/.f64 x 2) (+.f64 2 (*.f64 y (+.f64 z z)))) |
(*.f64 x (+.f64 (*.f64 y z) 1)) |
(*.f64 (*.f64 (*.f64 x (+.f64 1 (*.f64 y z))) 1/2) 2) |
(*.f64 x (+.f64 (*.f64 y z) 1)) |
(*.f64 (*.f64 (+.f64 1 (*.f64 y z)) 1/2) (+.f64 x x)) |
(*.f64 x (+.f64 (*.f64 y z) 1)) |
(*.f64 1/4 (*.f64 x (*.f64 4 (+.f64 1 (*.f64 y z))))) |
(*.f64 x (+.f64 (*.f64 y z) 1)) |
(*.f64 (/.f64 (*.f64 x (+.f64 1 (*.f64 y z))) 4) 4) |
(*.f64 x (+.f64 (*.f64 y z) 1)) |
(*.f64 (+.f64 2 (*.f64 y (+.f64 z z))) (/.f64 x 2)) |
(*.f64 x (+.f64 (*.f64 y z) 1)) |
(*.f64 (+.f64 1/2 (*.f64 (*.f64 y z) 1/2)) (+.f64 x x)) |
(*.f64 2 (*.f64 x (+.f64 1/2 (*.f64 (*.f64 y z) 1/2)))) |
(*.f64 x (*.f64 2 (+.f64 1/2 (*.f64 y (*.f64 z 1/2))))) |
(*.f64 (+.f64 1/2 (*.f64 y (*.f64 z 1/2))) (+.f64 x x)) |
(*.f64 2 (*.f64 x (+.f64 1/2 (*.f64 (*.f64 y z) 1/2)))) |
(*.f64 x (*.f64 2 (+.f64 1/2 (*.f64 y (*.f64 z 1/2))))) |
(/.f64 (*.f64 x (+.f64 1 (*.f64 y z))) 1) |
(*.f64 x (+.f64 (*.f64 y z) 1)) |
(/.f64 (*.f64 (+.f64 x x) (+.f64 1 (*.f64 y z))) 2) |
(*.f64 x (+.f64 (*.f64 y z) 1)) |
(/.f64 (*.f64 x (*.f64 4 (+.f64 1 (*.f64 y z)))) 4) |
(*.f64 x (+.f64 (*.f64 y z) 1)) |
(/.f64 (*.f64 (*.f64 x (+.f64 1 (*.f64 y z))) 8) 8) |
(*.f64 x (+.f64 (*.f64 y z) 1)) |
(/.f64 (*.f64 2 (*.f64 (*.f64 x (+.f64 1 (*.f64 y z))) 8)) 16) |
(*.f64 x (+.f64 (*.f64 y z) 1)) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (+.f64 1 (*.f64 y z))) 8))) 32) |
(*.f64 x (+.f64 (*.f64 y z) 1)) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (+.f64 1 (*.f64 y z))) 8)))) 64) |
(*.f64 x (+.f64 (*.f64 y z) 1)) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (+.f64 1 (*.f64 y z))) 8))))) 128) |
(*.f64 x (+.f64 (*.f64 y z) 1)) |
(pow.f64 (*.f64 x (+.f64 1 (*.f64 y z))) 1) |
(*.f64 x (+.f64 (*.f64 y z) 1)) |
Found 1 expressions with local error:
| New | Error | Program |
|---|---|---|
| ✓ | 0.0b | (-.f64 x (*.f64 x z)) |
Compiled 13 to 5 computations (61.5% saved)
6 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 0.0ms | x | @ | 0 | (-.f64 x (*.f64 x z)) |
| 0.0ms | z | @ | -inf | (-.f64 x (*.f64 x z)) |
| 0.0ms | z | @ | inf | (-.f64 x (*.f64 x z)) |
| 0.0ms | x | @ | -inf | (-.f64 x (*.f64 x z)) |
| 0.0ms | x | @ | inf | (-.f64 x (*.f64 x z)) |
| 1× | batch-egg-rewrite |
| 1536× | rational.json-1 |
| 1536× | rational.json-2 |
| 1536× | rational.json-3 |
| 1534× | exponential.json-3 |
| 1534× | rational.json-4 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 6 | 13 |
| 1 | 39 | 13 |
| 2 | 93 | 13 |
| 3 | 207 | 13 |
| 4 | 399 | 13 |
| 5 | 924 | 13 |
| 6 | 2585 | 13 |
| 7 | 5115 | 13 |
| 8 | 6896 | 13 |
| 1× | node limit |
| Inputs |
|---|
(-.f64 x (*.f64 x z)) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x +.f64 x (*.f64 z (neg.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 x (*.f64 x z)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (-.f64 x (*.f64 x z)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 1 (-.f64 -1 (*.f64 x (+.f64 z -1))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 z (neg.f64 x)) x)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -1 (+.f64 x (-.f64 1 (*.f64 x z))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 x (-.f64 1 (*.f64 x z))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (/.f64 (+.f64 z -1) -2)) (*.f64 x (/.f64 (+.f64 z -1) -2)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x 1/2) (*.f64 x (-.f64 1/2 z)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 1 (*.f64 x z)) (+.f64 x -1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -2 (-.f64 2 (*.f64 x (+.f64 z -1))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 x 1) (-.f64 -1 (*.f64 x z)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 2 (*.f64 x (+.f64 z -1))) -2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (-.f64 1 z))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (*.f64 (*.f64 2 (-.f64 1 z)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (*.f64 2 (*.f64 (-.f64 1 z) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 x (*.f64 x z)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (-.f64 x (*.f64 x z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 x (/.f64 (+.f64 z -1) -2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x (*.f64 2 (-.f64 1 z))) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x x) (*.f64 (-.f64 1 z) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x x) (neg.f64 (*.f64 (+.f64 z -1) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x x) (/.f64 (+.f64 z -1) -2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x x) (-.f64 1/2 (*.f64 z 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x (+.f64 z -1)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (*.f64 x (-.f64 1/4 (*.f64 z 1/4))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 x (+.f64 z -1)) -4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x 4) (*.f64 (-.f64 1 z) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x 4) (-.f64 1/4 (*.f64 z 1/4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 x) (+.f64 z -1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 1 z) x)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 z -1) (neg.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (*.f64 x (+.f64 z -1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 8 (*.f64 (/.f64 x 8) (-.f64 1 z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 8 (*.f64 (*.f64 1/2 (*.f64 x 1/4)) (-.f64 1 z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (-.f64 x (*.f64 x z)) 8) 1/8)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x 8) (*.f64 1/8 (-.f64 1 z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (*.f64 x (+.f64 z -1))) -1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (-.f64 1 z)) (*.f64 x 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 x (*.f64 2 (-.f64 1 z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x (/.f64 (+.f64 z -1) -2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x 1/2) (*.f64 2 (-.f64 1 z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x 1/2) (-.f64 2 (+.f64 z z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (*.f64 x 8)) (*.f64 1/16 (-.f64 1 z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -2 (*.f64 x (+.f64 (*.f64 z 1/2) -1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (+.f64 z -1)) (/.f64 x -2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (+.f64 z -1)) (*.f64 -1 (*.f64 x 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (*.f64 2 (-.f64 1 z))) (*.f64 x 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (-.f64 1 z) 1/2) (+.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 z -1) 1/2) (neg.f64 (+.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x (+.f64 (*.f64 z 1/2) -1/2)) -2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (*.f64 x (+.f64 z -1)) -4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x 1/4) (*.f64 2 (*.f64 2 (-.f64 1 z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x 1/4) (-.f64 4 (*.f64 z 4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x (-.f64 1/4 (*.f64 z 1/4))) 4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/8 (*.f64 (-.f64 x (*.f64 x z)) 8))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/8 (-.f64 (*.f64 x 8) (*.f64 z (*.f64 x 8))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1/2 (*.f64 2 (*.f64 x (+.f64 z -1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 2 (-.f64 1 z)) 1/2) x)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (-.f64 1 z) 1/4) (*.f64 x 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 (*.f64 (+.f64 z -1) 1/2)) (+.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 (+.f64 x x)) (*.f64 (+.f64 z -1) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 x -2) (*.f64 2 (+.f64 z -1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 z -1) -2) (+.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 1/2 (*.f64 z 1/2)) (+.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 2 (+.f64 z z)) (*.f64 x 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (*.f64 (-.f64 1 z) 1/2)) x)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (*.f64 (+.f64 z -1) 1/2)) (neg.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 x (*.f64 x z)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (*.f64 2 (-.f64 1 z))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (+.f64 z -1)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 x (+.f64 z -1)) -4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 x (*.f64 x z)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 x (+.f64 z -1))) -2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (-.f64 x (*.f64 x z)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (-.f64 (*.f64 z 4) 4)) -4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 x (-.f64 (*.f64 z 4) 4))) -8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (-.f64 x (*.f64 x z)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 x (-.f64 (*.f64 z 4) 4)))) -16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (-.f64 x (*.f64 x z)) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (-.f64 x (*.f64 x z)) 8)))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (-.f64 x (*.f64 x z)) 8))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (-.f64 x (*.f64 x z)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (*.f64 x (+.f64 z -1))))))) |
| 1× | egg-herbie |
| 2454× | rational.json-simplify-2 |
| 1790× | rational.json-simplify-1 |
| 1286× | rational.json-simplify-35 |
| 1002× | rational.json-simplify-41 |
| 926× | rational.json-simplify-53 |
Useful iterations: 1 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 181 | 1555 |
| 1 | 386 | 1549 |
| 2 | 789 | 1549 |
| 3 | 1592 | 1549 |
| 4 | 3130 | 1549 |
| 5 | 4850 | 1549 |
| 6 | 5360 | 1549 |
| 7 | 5600 | 1549 |
| 8 | 5899 | 1549 |
| 9 | 6462 | 1549 |
| 10 | 7920 | 1549 |
| 1× | node limit |
| Inputs |
|---|
(*.f64 (-.f64 1 z) x) |
(*.f64 (-.f64 1 z) x) |
(*.f64 (-.f64 1 z) x) |
(*.f64 (-.f64 1 z) x) |
(*.f64 (-.f64 1 z) x) |
(*.f64 (-.f64 1 z) x) |
(*.f64 (-.f64 1 z) x) |
(*.f64 (-.f64 1 z) x) |
(*.f64 (+.f64 (*.f64 -1 z) 1) x) |
(*.f64 (+.f64 (*.f64 -1 z) 1) x) |
(*.f64 (+.f64 (*.f64 -1 z) 1) x) |
(*.f64 (+.f64 (*.f64 -1 z) 1) x) |
x |
(+.f64 (*.f64 -1 (*.f64 z x)) x) |
(+.f64 (*.f64 -1 (*.f64 z x)) x) |
(+.f64 (*.f64 -1 (*.f64 z x)) x) |
(*.f64 -1 (*.f64 z x)) |
(+.f64 (*.f64 -1 (*.f64 z x)) x) |
(+.f64 (*.f64 -1 (*.f64 z x)) x) |
(+.f64 (*.f64 -1 (*.f64 z x)) x) |
(*.f64 -1 (*.f64 z x)) |
(+.f64 (*.f64 -1 (*.f64 z x)) x) |
(+.f64 (*.f64 -1 (*.f64 z x)) x) |
(+.f64 (*.f64 -1 (*.f64 z x)) x) |
(+.f64 x (*.f64 z (neg.f64 x))) |
(+.f64 (-.f64 x (*.f64 x z)) 0) |
(+.f64 0 (-.f64 x (*.f64 x z))) |
(+.f64 1 (-.f64 -1 (*.f64 x (+.f64 z -1)))) |
(+.f64 (*.f64 z (neg.f64 x)) x) |
(+.f64 -1 (+.f64 x (-.f64 1 (*.f64 x z)))) |
(+.f64 (+.f64 x (-.f64 1 (*.f64 x z))) -1) |
(+.f64 (*.f64 x (/.f64 (+.f64 z -1) -2)) (*.f64 x (/.f64 (+.f64 z -1) -2))) |
(+.f64 (*.f64 x 1/2) (*.f64 x (-.f64 1/2 z))) |
(+.f64 (-.f64 1 (*.f64 x z)) (+.f64 x -1)) |
(+.f64 -2 (-.f64 2 (*.f64 x (+.f64 z -1)))) |
(+.f64 (+.f64 x 1) (-.f64 -1 (*.f64 x z))) |
(+.f64 (-.f64 2 (*.f64 x (+.f64 z -1))) -2) |
(*.f64 x (-.f64 1 z)) |
(*.f64 x (*.f64 (*.f64 2 (-.f64 1 z)) 1/2)) |
(*.f64 x (*.f64 2 (*.f64 (-.f64 1 z) 1/2))) |
(*.f64 (-.f64 x (*.f64 x z)) 1) |
(*.f64 1 (-.f64 x (*.f64 x z))) |
(*.f64 2 (*.f64 x (/.f64 (+.f64 z -1) -2))) |
(*.f64 (*.f64 x (*.f64 2 (-.f64 1 z))) 1/2) |
(*.f64 (+.f64 x x) (*.f64 (-.f64 1 z) 1/2)) |
(*.f64 (+.f64 x x) (neg.f64 (*.f64 (+.f64 z -1) 1/2))) |
(*.f64 (+.f64 x x) (/.f64 (+.f64 z -1) -2)) |
(*.f64 (+.f64 x x) (-.f64 1/2 (*.f64 z 1/2))) |
(*.f64 (*.f64 x (+.f64 z -1)) -1) |
(*.f64 4 (*.f64 x (-.f64 1/4 (*.f64 z 1/4)))) |
(*.f64 (*.f64 (*.f64 x (+.f64 z -1)) -4) 1/4) |
(*.f64 (*.f64 x 4) (*.f64 (-.f64 1 z) 1/4)) |
(*.f64 (*.f64 x 4) (-.f64 1/4 (*.f64 z 1/4))) |
(*.f64 (neg.f64 x) (+.f64 z -1)) |
(*.f64 (-.f64 1 z) x) |
(*.f64 (+.f64 z -1) (neg.f64 x)) |
(*.f64 -1 (*.f64 x (+.f64 z -1))) |
(*.f64 8 (*.f64 (/.f64 x 8) (-.f64 1 z))) |
(*.f64 8 (*.f64 (*.f64 1/2 (*.f64 x 1/4)) (-.f64 1 z))) |
(*.f64 (*.f64 (-.f64 x (*.f64 x z)) 8) 1/8) |
(*.f64 (*.f64 x 8) (*.f64 1/8 (-.f64 1 z))) |
(*.f64 (*.f64 2 (*.f64 x (+.f64 z -1))) -1/2) |
(*.f64 (*.f64 2 (-.f64 1 z)) (*.f64 x 1/2)) |
(*.f64 1/2 (*.f64 x (*.f64 2 (-.f64 1 z)))) |
(*.f64 (*.f64 x (/.f64 (+.f64 z -1) -2)) 2) |
(*.f64 (*.f64 x 1/2) (*.f64 2 (-.f64 1 z))) |
(*.f64 (*.f64 x 1/2) (-.f64 2 (+.f64 z z))) |
(*.f64 (*.f64 2 (*.f64 x 8)) (*.f64 1/16 (-.f64 1 z))) |
(*.f64 -2 (*.f64 x (+.f64 (*.f64 z 1/2) -1/2))) |
(*.f64 (*.f64 2 (+.f64 z -1)) (/.f64 x -2)) |
(*.f64 (*.f64 2 (+.f64 z -1)) (*.f64 -1 (*.f64 x 1/2))) |
(*.f64 (*.f64 2 (*.f64 2 (-.f64 1 z))) (*.f64 x 1/4)) |
(*.f64 (*.f64 (-.f64 1 z) 1/2) (+.f64 x x)) |
(*.f64 (*.f64 (+.f64 z -1) 1/2) (neg.f64 (+.f64 x x))) |
(*.f64 (*.f64 x (+.f64 (*.f64 z 1/2) -1/2)) -2) |
(*.f64 1/4 (*.f64 (*.f64 x (+.f64 z -1)) -4)) |
(*.f64 (*.f64 x 1/4) (*.f64 2 (*.f64 2 (-.f64 1 z)))) |
(*.f64 (*.f64 x 1/4) (-.f64 4 (*.f64 z 4))) |
(*.f64 (*.f64 x (-.f64 1/4 (*.f64 z 1/4))) 4) |
(*.f64 1/8 (*.f64 (-.f64 x (*.f64 x z)) 8)) |
(*.f64 1/8 (-.f64 (*.f64 x 8) (*.f64 z (*.f64 x 8)))) |
(*.f64 -1/2 (*.f64 2 (*.f64 x (+.f64 z -1)))) |
(*.f64 (*.f64 (*.f64 2 (-.f64 1 z)) 1/2) x) |
(*.f64 (*.f64 (-.f64 1 z) 1/4) (*.f64 x 4)) |
(*.f64 (neg.f64 (*.f64 (+.f64 z -1) 1/2)) (+.f64 x x)) |
(*.f64 (neg.f64 (+.f64 x x)) (*.f64 (+.f64 z -1) 1/2)) |
(*.f64 (/.f64 x -2) (*.f64 2 (+.f64 z -1))) |
(*.f64 (/.f64 (+.f64 z -1) -2) (+.f64 x x)) |
(*.f64 (-.f64 1/2 (*.f64 z 1/2)) (+.f64 x x)) |
(*.f64 (-.f64 2 (+.f64 z z)) (*.f64 x 1/2)) |
(*.f64 (*.f64 2 (*.f64 (-.f64 1 z) 1/2)) x) |
(*.f64 (*.f64 2 (*.f64 (+.f64 z -1) 1/2)) (neg.f64 x)) |
(/.f64 (-.f64 x (*.f64 x z)) 1) |
(/.f64 (*.f64 x (*.f64 2 (-.f64 1 z))) 2) |
(/.f64 (*.f64 x (+.f64 z -1)) -1) |
(/.f64 (*.f64 (*.f64 x (+.f64 z -1)) -4) 4) |
(/.f64 (*.f64 (-.f64 x (*.f64 x z)) 8) 8) |
(/.f64 (*.f64 2 (*.f64 x (+.f64 z -1))) -2) |
(/.f64 (*.f64 2 (*.f64 (-.f64 x (*.f64 x z)) 8)) 16) |
(/.f64 (*.f64 x (-.f64 (*.f64 z 4) 4)) -4) |
(/.f64 (*.f64 2 (*.f64 x (-.f64 (*.f64 z 4) 4))) -8) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (-.f64 x (*.f64 x z)) 8))) 32) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 x (-.f64 (*.f64 z 4) 4)))) -16) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (-.f64 x (*.f64 x z)) 8)))) 64) |
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (-.f64 x (*.f64 x z)) 8)))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (-.f64 x (*.f64 x z)) 8))))) 128) |
(pow.f64 (-.f64 x (*.f64 x z)) 1) |
(neg.f64 (*.f64 x (+.f64 z -1))) |
| Outputs |
|---|
(*.f64 (-.f64 1 z) x) |
(-.f64 x (*.f64 z x)) |
(*.f64 (-.f64 1 z) x) |
(-.f64 x (*.f64 z x)) |
(*.f64 (-.f64 1 z) x) |
(-.f64 x (*.f64 z x)) |
(*.f64 (-.f64 1 z) x) |
(-.f64 x (*.f64 z x)) |
(*.f64 (-.f64 1 z) x) |
(-.f64 x (*.f64 z x)) |
(*.f64 (-.f64 1 z) x) |
(-.f64 x (*.f64 z x)) |
(*.f64 (-.f64 1 z) x) |
(-.f64 x (*.f64 z x)) |
(*.f64 (-.f64 1 z) x) |
(-.f64 x (*.f64 z x)) |
(*.f64 (+.f64 (*.f64 -1 z) 1) x) |
(*.f64 (-.f64 1 z) x) |
(-.f64 x (*.f64 z x)) |
(*.f64 (+.f64 (*.f64 -1 z) 1) x) |
(*.f64 (-.f64 1 z) x) |
(-.f64 x (*.f64 z x)) |
(*.f64 (+.f64 (*.f64 -1 z) 1) x) |
(*.f64 (-.f64 1 z) x) |
(-.f64 x (*.f64 z x)) |
(*.f64 (+.f64 (*.f64 -1 z) 1) x) |
(*.f64 (-.f64 1 z) x) |
(-.f64 x (*.f64 z x)) |
x |
(+.f64 (*.f64 -1 (*.f64 z x)) x) |
(*.f64 (-.f64 1 z) x) |
(-.f64 x (*.f64 z x)) |
(+.f64 (*.f64 -1 (*.f64 z x)) x) |
(*.f64 (-.f64 1 z) x) |
(-.f64 x (*.f64 z x)) |
(+.f64 (*.f64 -1 (*.f64 z x)) x) |
(*.f64 (-.f64 1 z) x) |
(-.f64 x (*.f64 z x)) |
(*.f64 -1 (*.f64 z x)) |
(*.f64 z (neg.f64 x)) |
(+.f64 (*.f64 -1 (*.f64 z x)) x) |
(*.f64 (-.f64 1 z) x) |
(-.f64 x (*.f64 z x)) |
(+.f64 (*.f64 -1 (*.f64 z x)) x) |
(*.f64 (-.f64 1 z) x) |
(-.f64 x (*.f64 z x)) |
(+.f64 (*.f64 -1 (*.f64 z x)) x) |
(*.f64 (-.f64 1 z) x) |
(-.f64 x (*.f64 z x)) |
(*.f64 -1 (*.f64 z x)) |
(*.f64 z (neg.f64 x)) |
(+.f64 (*.f64 -1 (*.f64 z x)) x) |
(*.f64 (-.f64 1 z) x) |
(-.f64 x (*.f64 z x)) |
(+.f64 (*.f64 -1 (*.f64 z x)) x) |
(*.f64 (-.f64 1 z) x) |
(-.f64 x (*.f64 z x)) |
(+.f64 (*.f64 -1 (*.f64 z x)) x) |
(*.f64 (-.f64 1 z) x) |
(-.f64 x (*.f64 z x)) |
(+.f64 x (*.f64 z (neg.f64 x))) |
(*.f64 (-.f64 1 z) x) |
(-.f64 x (*.f64 z x)) |
(+.f64 (-.f64 x (*.f64 x z)) 0) |
(*.f64 (-.f64 1 z) x) |
(-.f64 x (*.f64 z x)) |
(+.f64 0 (-.f64 x (*.f64 x z))) |
(*.f64 (-.f64 1 z) x) |
(-.f64 x (*.f64 z x)) |
(+.f64 1 (-.f64 -1 (*.f64 x (+.f64 z -1)))) |
(*.f64 (-.f64 1 z) x) |
(-.f64 x (*.f64 z x)) |
(+.f64 (*.f64 z (neg.f64 x)) x) |
(*.f64 (-.f64 1 z) x) |
(-.f64 x (*.f64 z x)) |
(+.f64 -1 (+.f64 x (-.f64 1 (*.f64 x z)))) |
(*.f64 (-.f64 1 z) x) |
(-.f64 x (*.f64 z x)) |
(+.f64 (+.f64 x (-.f64 1 (*.f64 x z))) -1) |
(*.f64 (-.f64 1 z) x) |
(-.f64 x (*.f64 z x)) |
(+.f64 (*.f64 x (/.f64 (+.f64 z -1) -2)) (*.f64 x (/.f64 (+.f64 z -1) -2))) |
(*.f64 (-.f64 1 z) x) |
(-.f64 x (*.f64 z x)) |
(+.f64 (*.f64 x 1/2) (*.f64 x (-.f64 1/2 z))) |
(*.f64 x (+.f64 (-.f64 1/2 z) 1/2)) |
(*.f64 x (+.f64 1/2 (-.f64 1/2 z))) |
(+.f64 (-.f64 1 (*.f64 x z)) (+.f64 x -1)) |
(*.f64 (-.f64 1 z) x) |
(-.f64 x (*.f64 z x)) |
(+.f64 -2 (-.f64 2 (*.f64 x (+.f64 z -1)))) |
(*.f64 (-.f64 1 z) x) |
(-.f64 x (*.f64 z x)) |
(+.f64 (+.f64 x 1) (-.f64 -1 (*.f64 x z))) |
(*.f64 (-.f64 1 z) x) |
(-.f64 x (*.f64 z x)) |
(+.f64 (-.f64 2 (*.f64 x (+.f64 z -1))) -2) |
(*.f64 (-.f64 1 z) x) |
(-.f64 x (*.f64 z x)) |
(*.f64 x (-.f64 1 z)) |
(*.f64 (-.f64 1 z) x) |
(-.f64 x (*.f64 z x)) |
(*.f64 x (*.f64 (*.f64 2 (-.f64 1 z)) 1/2)) |
(*.f64 (-.f64 1 z) x) |
(-.f64 x (*.f64 z x)) |
(*.f64 x (*.f64 2 (*.f64 (-.f64 1 z) 1/2))) |
(*.f64 (-.f64 1 z) x) |
(-.f64 x (*.f64 z x)) |
(*.f64 (-.f64 x (*.f64 x z)) 1) |
(*.f64 (-.f64 1 z) x) |
(-.f64 x (*.f64 z x)) |
(*.f64 1 (-.f64 x (*.f64 x z))) |
(*.f64 (-.f64 1 z) x) |
(-.f64 x (*.f64 z x)) |
(*.f64 2 (*.f64 x (/.f64 (+.f64 z -1) -2))) |
(*.f64 (-.f64 1 z) x) |
(-.f64 x (*.f64 z x)) |
(*.f64 (*.f64 x (*.f64 2 (-.f64 1 z))) 1/2) |
(*.f64 (-.f64 1 z) x) |
(-.f64 x (*.f64 z x)) |
(*.f64 (+.f64 x x) (*.f64 (-.f64 1 z) 1/2)) |
(*.f64 (-.f64 1 z) x) |
(-.f64 x (*.f64 z x)) |
(*.f64 (+.f64 x x) (neg.f64 (*.f64 (+.f64 z -1) 1/2))) |
(*.f64 (-.f64 1 z) x) |
(-.f64 x (*.f64 z x)) |
(*.f64 (+.f64 x x) (/.f64 (+.f64 z -1) -2)) |
(*.f64 (-.f64 1 z) x) |
(-.f64 x (*.f64 z x)) |
(*.f64 (+.f64 x x) (-.f64 1/2 (*.f64 z 1/2))) |
(*.f64 (*.f64 x (+.f64 z -1)) -1) |
(*.f64 (-.f64 1 z) x) |
(-.f64 x (*.f64 z x)) |
(*.f64 4 (*.f64 x (-.f64 1/4 (*.f64 z 1/4)))) |
(*.f64 x (*.f64 (-.f64 1/4 (*.f64 z 1/4)) 4)) |
(*.f64 (*.f64 (*.f64 x (+.f64 z -1)) -4) 1/4) |
(*.f64 (-.f64 1 z) x) |
(-.f64 x (*.f64 z x)) |
(*.f64 (*.f64 x 4) (*.f64 (-.f64 1 z) 1/4)) |
(*.f64 (-.f64 1 z) x) |
(-.f64 x (*.f64 z x)) |
(*.f64 (*.f64 x 4) (-.f64 1/4 (*.f64 z 1/4))) |
(*.f64 x (*.f64 (-.f64 1/4 (*.f64 z 1/4)) 4)) |
(*.f64 4 (*.f64 x (-.f64 1/4 (*.f64 z 1/4)))) |
(*.f64 (neg.f64 x) (+.f64 z -1)) |
(*.f64 (-.f64 1 z) x) |
(-.f64 x (*.f64 z x)) |
(*.f64 (-.f64 1 z) x) |
(-.f64 x (*.f64 z x)) |
(*.f64 (+.f64 z -1) (neg.f64 x)) |
(*.f64 (-.f64 1 z) x) |
(-.f64 x (*.f64 z x)) |
(*.f64 -1 (*.f64 x (+.f64 z -1))) |
(*.f64 (-.f64 1 z) x) |
(-.f64 x (*.f64 z x)) |
(*.f64 8 (*.f64 (/.f64 x 8) (-.f64 1 z))) |
(*.f64 (/.f64 x 8) (*.f64 (-.f64 1 z) 8)) |
(*.f64 (-.f64 1 z) (*.f64 (/.f64 x 8) 8)) |
(*.f64 8 (*.f64 (-.f64 1 z) (/.f64 x 8))) |
(*.f64 (-.f64 1 z) (*.f64 8 (/.f64 x 8))) |
(*.f64 8 (*.f64 (*.f64 1/2 (*.f64 x 1/4)) (-.f64 1 z))) |
(*.f64 (-.f64 1 z) x) |
(-.f64 x (*.f64 z x)) |
(*.f64 (*.f64 (-.f64 x (*.f64 x z)) 8) 1/8) |
(*.f64 (-.f64 1 z) x) |
(-.f64 x (*.f64 z x)) |
(*.f64 (*.f64 x 8) (*.f64 1/8 (-.f64 1 z))) |
(*.f64 (-.f64 1 z) x) |
(-.f64 x (*.f64 z x)) |
(*.f64 (*.f64 2 (*.f64 x (+.f64 z -1))) -1/2) |
(*.f64 (-.f64 1 z) x) |
(-.f64 x (*.f64 z x)) |
(*.f64 (*.f64 2 (-.f64 1 z)) (*.f64 x 1/2)) |
(*.f64 (-.f64 1 z) x) |
(-.f64 x (*.f64 z x)) |
(*.f64 1/2 (*.f64 x (*.f64 2 (-.f64 1 z)))) |
(*.f64 (-.f64 1 z) x) |
(-.f64 x (*.f64 z x)) |
(*.f64 (*.f64 x (/.f64 (+.f64 z -1) -2)) 2) |
(*.f64 (-.f64 1 z) x) |
(-.f64 x (*.f64 z x)) |
(*.f64 (*.f64 x 1/2) (*.f64 2 (-.f64 1 z))) |
(*.f64 (-.f64 1 z) x) |
(-.f64 x (*.f64 z x)) |
(*.f64 (*.f64 x 1/2) (-.f64 2 (+.f64 z z))) |
(*.f64 x (*.f64 1/2 (-.f64 2 (+.f64 z z)))) |
(*.f64 (*.f64 2 (*.f64 x 8)) (*.f64 1/16 (-.f64 1 z))) |
(*.f64 (-.f64 1 z) x) |
(-.f64 x (*.f64 z x)) |
(*.f64 -2 (*.f64 x (+.f64 (*.f64 z 1/2) -1/2))) |
(*.f64 x (*.f64 (+.f64 (*.f64 z 1/2) -1/2) -2)) |
(*.f64 x (*.f64 -2 (+.f64 (*.f64 z 1/2) -1/2))) |
(*.f64 (+.f64 (*.f64 z 1/2) -1/2) (*.f64 x -2)) |
(*.f64 (*.f64 2 (+.f64 z -1)) (/.f64 x -2)) |
(*.f64 (-.f64 1 z) x) |
(-.f64 x (*.f64 z x)) |
(*.f64 (*.f64 2 (+.f64 z -1)) (*.f64 -1 (*.f64 x 1/2))) |
(*.f64 (-.f64 1 z) x) |
(-.f64 x (*.f64 z x)) |
(*.f64 (*.f64 2 (*.f64 2 (-.f64 1 z))) (*.f64 x 1/4)) |
(*.f64 (-.f64 1 z) x) |
(-.f64 x (*.f64 z x)) |
(*.f64 (*.f64 (-.f64 1 z) 1/2) (+.f64 x x)) |
(*.f64 (-.f64 1 z) x) |
(-.f64 x (*.f64 z x)) |
(*.f64 (*.f64 (+.f64 z -1) 1/2) (neg.f64 (+.f64 x x))) |
(*.f64 (-.f64 1 z) x) |
(-.f64 x (*.f64 z x)) |
(*.f64 (*.f64 x (+.f64 (*.f64 z 1/2) -1/2)) -2) |
(*.f64 x (*.f64 (+.f64 (*.f64 z 1/2) -1/2) -2)) |
(*.f64 x (*.f64 -2 (+.f64 (*.f64 z 1/2) -1/2))) |
(*.f64 (+.f64 (*.f64 z 1/2) -1/2) (*.f64 x -2)) |
(*.f64 1/4 (*.f64 (*.f64 x (+.f64 z -1)) -4)) |
(*.f64 (-.f64 1 z) x) |
(-.f64 x (*.f64 z x)) |
(*.f64 (*.f64 x 1/4) (*.f64 2 (*.f64 2 (-.f64 1 z)))) |
(*.f64 (-.f64 1 z) x) |
(-.f64 x (*.f64 z x)) |
(*.f64 (*.f64 x 1/4) (-.f64 4 (*.f64 z 4))) |
(*.f64 x (*.f64 1/4 (-.f64 4 (*.f64 z 4)))) |
(*.f64 (*.f64 x (-.f64 1/4 (*.f64 z 1/4))) 4) |
(*.f64 x (*.f64 (-.f64 1/4 (*.f64 z 1/4)) 4)) |
(*.f64 4 (*.f64 x (-.f64 1/4 (*.f64 z 1/4)))) |
(*.f64 1/8 (*.f64 (-.f64 x (*.f64 x z)) 8)) |
(*.f64 (-.f64 1 z) x) |
(-.f64 x (*.f64 z x)) |
(*.f64 1/8 (-.f64 (*.f64 x 8) (*.f64 z (*.f64 x 8)))) |
(*.f64 (-.f64 1 z) x) |
(-.f64 x (*.f64 z x)) |
(*.f64 -1/2 (*.f64 2 (*.f64 x (+.f64 z -1)))) |
(*.f64 (-.f64 1 z) x) |
(-.f64 x (*.f64 z x)) |
(*.f64 (*.f64 (*.f64 2 (-.f64 1 z)) 1/2) x) |
(*.f64 (-.f64 1 z) x) |
(-.f64 x (*.f64 z x)) |
(*.f64 (*.f64 (-.f64 1 z) 1/4) (*.f64 x 4)) |
(*.f64 (-.f64 1 z) x) |
(-.f64 x (*.f64 z x)) |
(*.f64 (neg.f64 (*.f64 (+.f64 z -1) 1/2)) (+.f64 x x)) |
(*.f64 (-.f64 1 z) x) |
(-.f64 x (*.f64 z x)) |
(*.f64 (neg.f64 (+.f64 x x)) (*.f64 (+.f64 z -1) 1/2)) |
(*.f64 (-.f64 1 z) x) |
(-.f64 x (*.f64 z x)) |
(*.f64 (/.f64 x -2) (*.f64 2 (+.f64 z -1))) |
(*.f64 (-.f64 1 z) x) |
(-.f64 x (*.f64 z x)) |
(*.f64 (/.f64 (+.f64 z -1) -2) (+.f64 x x)) |
(*.f64 (-.f64 1 z) x) |
(-.f64 x (*.f64 z x)) |
(*.f64 (-.f64 1/2 (*.f64 z 1/2)) (+.f64 x x)) |
(*.f64 (+.f64 x x) (-.f64 1/2 (*.f64 z 1/2))) |
(*.f64 (-.f64 2 (+.f64 z z)) (*.f64 x 1/2)) |
(*.f64 x (*.f64 1/2 (-.f64 2 (+.f64 z z)))) |
(*.f64 (*.f64 x 1/2) (-.f64 2 (+.f64 z z))) |
(*.f64 (*.f64 2 (*.f64 (-.f64 1 z) 1/2)) x) |
(*.f64 (-.f64 1 z) x) |
(-.f64 x (*.f64 z x)) |
(*.f64 (*.f64 2 (*.f64 (+.f64 z -1) 1/2)) (neg.f64 x)) |
(*.f64 (-.f64 1 z) x) |
(-.f64 x (*.f64 z x)) |
(/.f64 (-.f64 x (*.f64 x z)) 1) |
(*.f64 (-.f64 1 z) x) |
(-.f64 x (*.f64 z x)) |
(/.f64 (*.f64 x (*.f64 2 (-.f64 1 z))) 2) |
(*.f64 (-.f64 1 z) x) |
(-.f64 x (*.f64 z x)) |
(/.f64 (*.f64 x (+.f64 z -1)) -1) |
(*.f64 (-.f64 1 z) x) |
(-.f64 x (*.f64 z x)) |
(/.f64 (*.f64 (*.f64 x (+.f64 z -1)) -4) 4) |
(*.f64 (-.f64 1 z) x) |
(-.f64 x (*.f64 z x)) |
(/.f64 (*.f64 (-.f64 x (*.f64 x z)) 8) 8) |
(*.f64 (-.f64 1 z) x) |
(-.f64 x (*.f64 z x)) |
(/.f64 (*.f64 2 (*.f64 x (+.f64 z -1))) -2) |
(*.f64 (-.f64 1 z) x) |
(-.f64 x (*.f64 z x)) |
(/.f64 (*.f64 2 (*.f64 (-.f64 x (*.f64 x z)) 8)) 16) |
(*.f64 (-.f64 1 z) x) |
(-.f64 x (*.f64 z x)) |
(/.f64 (*.f64 x (-.f64 (*.f64 z 4) 4)) -4) |
(*.f64 (-.f64 (*.f64 z 4) 4) (/.f64 x -4)) |
(/.f64 (*.f64 2 (*.f64 x (-.f64 (*.f64 z 4) 4))) -8) |
(*.f64 (-.f64 (*.f64 z 4) 4) (/.f64 x -4)) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (-.f64 x (*.f64 x z)) 8))) 32) |
(*.f64 (-.f64 1 z) x) |
(-.f64 x (*.f64 z x)) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 x (-.f64 (*.f64 z 4) 4)))) -16) |
(*.f64 (-.f64 (*.f64 z 4) 4) (/.f64 x -4)) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (-.f64 x (*.f64 x z)) 8)))) 64) |
(*.f64 (-.f64 1 z) x) |
(-.f64 x (*.f64 z x)) |
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (-.f64 x (*.f64 x z)) 8)))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (-.f64 x (*.f64 x z)) 8))))) 128) |
(*.f64 (-.f64 1 z) x) |
(-.f64 x (*.f64 z x)) |
(pow.f64 (-.f64 x (*.f64 x z)) 1) |
(*.f64 (-.f64 1 z) x) |
(-.f64 x (*.f64 z x)) |
(neg.f64 (*.f64 x (+.f64 z -1))) |
(*.f64 (-.f64 1 z) x) |
(-.f64 x (*.f64 z x)) |
Compiled 1956 to 1205 computations (38.4% saved)
10 alts after pruning (1 fresh and 9 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 202 | 0 | 202 |
| Fresh | 0 | 1 | 1 |
| Picked | 0 | 1 | 1 |
| Done | 0 | 8 | 8 |
| Total | 202 | 10 | 212 |
| Status | Error | Program |
|---|---|---|
| ✓ | 20.1b | (-.f64 x (*.f64 x z)) |
| ✓ | 17.2b | (+.f64 (*.f64 y (*.f64 z x)) x) |
| ✓ | 20.1b | (*.f64 (-.f64 1 z) x) |
| ✓ | 44.3b | (*.f64 z (*.f64 y x)) |
| ✓ | 47.7b | (*.f64 z (neg.f64 x)) |
| ✓ | 45.0b | (*.f64 y (*.f64 z x)) |
| ✓ | 18.4b | (*.f64 x (+.f64 1 (*.f64 y z))) |
| ✓ | 31.6b | (*.f64 x (*.f64 (+.f64 -1 y) z)) |
| ✓ | 46.3b | (*.f64 x (*.f64 z y)) |
| 34.5b | x |
Compiled 81 to 54 computations (33.3% saved)
| Inputs |
|---|
x |
(*.f64 z (neg.f64 x)) |
(*.f64 x (*.f64 z y)) |
(*.f64 y (*.f64 z x)) |
(*.f64 z (*.f64 y x)) |
(*.f64 (-.f64 1 z) x) |
(-.f64 x (*.f64 x z)) |
(*.f64 x (*.f64 (+.f64 -1 y) z)) |
(*.f64 x (+.f64 1 (*.f64 y z))) |
(*.f64 z (*.f64 (-.f64 y 1) x)) |
(+.f64 (*.f64 -1 (*.f64 z x)) x) |
(+.f64 (*.f64 y (*.f64 z x)) x) |
(*.f64 x (-.f64 1 (*.f64 z (neg.f64 y)))) |
(*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z))) |
(+.f64 (*.f64 z (*.f64 (-.f64 y 1) x)) x) |
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 (-.f64 1 z) x)) |
| Outputs |
|---|
(+.f64 (*.f64 z (*.f64 (-.f64 y 1) x)) x) |
(*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z))) |
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 (-.f64 1 z) x)) |
7 calls:
| 129.0ms | (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z))) |
| 67.0ms | (-.f64 1 (*.f64 (-.f64 1 y) z)) |
| 23.0ms | z |
| 21.0ms | (*.f64 (-.f64 1 y) z) |
| 16.0ms | x |
| Error | Segments | Branch |
|---|---|---|
| 0.8b | 2 | x |
| 2.1b | 1 | y |
| 0.1b | 3 | z |
| 0.1b | 3 | (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z))) |
| 0.1b | 3 | (-.f64 1 (*.f64 (-.f64 1 y) z)) |
| 0.1b | 3 | (*.f64 (-.f64 1 y) z) |
| 2.1b | 1 | (-.f64 1 y) |
Compiled 153 to 89 computations (41.8% saved)
| 2× | binary-search |
| Time | Left | Right |
|---|---|---|
| 73.0ms | 1.1873082923867991e-108 | 4.862454979098907e-104 |
| 13.0ms | -50619528470430.56 | -2071825338351.0168 |
| 82.0ms | 176× | body | 256 | valid |
| 2.0ms | 12× | body | 256 | infinite |
Compiled 312 to 227 computations (27.2% saved)
| Inputs |
|---|
x |
(*.f64 z (neg.f64 x)) |
(*.f64 x (*.f64 z y)) |
(*.f64 y (*.f64 z x)) |
(*.f64 z (*.f64 y x)) |
(*.f64 (-.f64 1 z) x) |
(-.f64 x (*.f64 x z)) |
(*.f64 x (*.f64 (+.f64 -1 y) z)) |
(*.f64 x (+.f64 1 (*.f64 y z))) |
(*.f64 z (*.f64 (-.f64 y 1) x)) |
(+.f64 (*.f64 -1 (*.f64 z x)) x) |
(+.f64 (*.f64 y (*.f64 z x)) x) |
(*.f64 x (-.f64 1 (*.f64 z (neg.f64 y)))) |
(*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z))) |
(+.f64 (*.f64 z (*.f64 (-.f64 y 1) x)) x) |
| Outputs |
|---|
(+.f64 (*.f64 z (*.f64 (-.f64 y 1) x)) x) |
(*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z))) |
(+.f64 (*.f64 z (*.f64 (-.f64 y 1) x)) x) |
7 calls:
| 104.0ms | (*.f64 (-.f64 1 y) z) |
| 25.0ms | z |
| 23.0ms | (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z))) |
| 22.0ms | y |
| 15.0ms | x |
| Error | Segments | Branch |
|---|---|---|
| 0.8b | 2 | x |
| 2.0b | 2 | y |
| 0.1b | 3 | z |
| 0.1b | 3 | (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z))) |
| 0.1b | 3 | (-.f64 1 (*.f64 (-.f64 1 y) z)) |
| 0.1b | 3 | (*.f64 (-.f64 1 y) z) |
| 2.0b | 2 | (-.f64 1 y) |
Compiled 142 to 85 computations (40.1% saved)
| 2× | binary-search |
| Time | Left | Right |
|---|---|---|
| 10.0ms | 34468461118.05716 | 1230261785242.728 |
| 3.0ms | -50619528470430.56 | -2071825338351.0168 |
| 11.0ms | 96× | body | 256 | valid |
| 0.0ms | 5× | body | 256 | infinite |
Compiled 174 to 128 computations (26.4% saved)
| Inputs |
|---|
x |
(*.f64 z (neg.f64 x)) |
(*.f64 x (*.f64 z y)) |
(*.f64 y (*.f64 z x)) |
(*.f64 z (*.f64 y x)) |
(*.f64 (-.f64 1 z) x) |
(-.f64 x (*.f64 x z)) |
(*.f64 x (*.f64 (+.f64 -1 y) z)) |
(*.f64 x (+.f64 1 (*.f64 y z))) |
(*.f64 z (*.f64 (-.f64 y 1) x)) |
(+.f64 (*.f64 -1 (*.f64 z x)) x) |
(+.f64 (*.f64 y (*.f64 z x)) x) |
(*.f64 x (-.f64 1 (*.f64 z (neg.f64 y)))) |
(*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z))) |
| Outputs |
|---|
(*.f64 z (*.f64 (-.f64 y 1) x)) |
(*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z))) |
(*.f64 z (*.f64 (-.f64 y 1) x)) |
7 calls:
| 24.0ms | z |
| 21.0ms | (*.f64 (-.f64 1 y) z) |
| 20.0ms | (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z))) |
| 14.0ms | (-.f64 1 (*.f64 (-.f64 1 y) z)) |
| 14.0ms | y |
| Error | Segments | Branch |
|---|---|---|
| 3.3b | 1 | x |
| 2.0b | 2 | y |
| 0.1b | 3 | z |
| 0.1b | 3 | (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z))) |
| 0.1b | 3 | (-.f64 1 (*.f64 (-.f64 1 y) z)) |
| 0.1b | 3 | (*.f64 (-.f64 1 y) z) |
| 2.0b | 2 | (-.f64 1 y) |
Compiled 133 to 80 computations (39.8% saved)
| 2× | left-value |
| Time | Left | Right |
|---|---|---|
| 0.0ms | 2.153749436805581e+175 | 6.283644616529482e+176 |
| 0.0ms | -3.2618382331675552e+184 | -1.6602875148485615e+177 |
Compiled 18 to 14 computations (22.2% saved)
| Inputs |
|---|
x |
(*.f64 z (neg.f64 x)) |
(*.f64 x (*.f64 z y)) |
(*.f64 y (*.f64 z x)) |
(*.f64 z (*.f64 y x)) |
(*.f64 (-.f64 1 z) x) |
(-.f64 x (*.f64 x z)) |
(*.f64 x (*.f64 (+.f64 -1 y) z)) |
(*.f64 x (+.f64 1 (*.f64 y z))) |
(*.f64 z (*.f64 (-.f64 y 1) x)) |
(+.f64 (*.f64 -1 (*.f64 z x)) x) |
(+.f64 (*.f64 y (*.f64 z x)) x) |
(*.f64 x (-.f64 1 (*.f64 z (neg.f64 y)))) |
| Outputs |
|---|
(*.f64 z (*.f64 (-.f64 y 1) x)) |
(*.f64 x (+.f64 1 (*.f64 y z))) |
(*.f64 z (*.f64 (-.f64 y 1) x)) |
3 calls:
| 217.0ms | x |
| 20.0ms | z |
| 20.0ms | y |
| Error | Segments | Branch |
|---|---|---|
| 12.1b | 7 | x |
| 2.9b | 3 | y |
| 0.6b | 3 | z |
Compiled 88 to 46 computations (47.7% saved)
| 2× | binary-search |
| Time | Left | Right |
|---|---|---|
| 9.0ms | 4.527834778103447 | 15.671708698010798 |
| 7.0ms | -608096453439.5013 | -335437385973.98334 |
| 13.0ms | 144× | body | 256 | valid |
| 2.0ms | 13× | body | 256 | infinite |
Compiled 216 to 158 computations (26.9% saved)
| Inputs |
|---|
x |
(*.f64 z (neg.f64 x)) |
(*.f64 x (*.f64 z y)) |
(*.f64 y (*.f64 z x)) |
(*.f64 z (*.f64 y x)) |
(*.f64 (-.f64 1 z) x) |
(-.f64 x (*.f64 x z)) |
(*.f64 x (*.f64 (+.f64 -1 y) z)) |
(*.f64 x (+.f64 1 (*.f64 y z))) |
| Outputs |
|---|
(*.f64 z (*.f64 y x)) |
(*.f64 x (+.f64 1 (*.f64 y z))) |
(*.f64 (-.f64 1 z) x) |
(*.f64 x (+.f64 1 (*.f64 y z))) |
3 calls:
| 123.0ms | x |
| 76.0ms | y |
| 68.0ms | z |
| Error | Segments | Branch |
|---|---|---|
| 13.7b | 10 | x |
| 2.9b | 4 | y |
| 3.9b | 3 | z |
Compiled 59 to 33 computations (44.1% saved)
| 3× | binary-search |
| Time | Left | Right |
|---|---|---|
| 17.0ms | 8.69850675065622e-13 | 4.16286802311535 |
| 104.0ms | -36736.07074728173 | -0.2794585548801859 |
| 16.0ms | -3.506154405580211e+220 | -4.2475711582578004e+217 |
| 128.0ms | 432× | body | 256 | valid |
| 3.0ms | 22× | body | 256 | infinite |
Compiled 558 to 411 computations (26.3% saved)
| Inputs |
|---|
x |
(*.f64 z (neg.f64 x)) |
(*.f64 x (*.f64 z y)) |
(*.f64 y (*.f64 z x)) |
(*.f64 z (*.f64 y x)) |
(*.f64 (-.f64 1 z) x) |
(-.f64 x (*.f64 x z)) |
(*.f64 x (*.f64 (+.f64 -1 y) z)) |
| Outputs |
|---|
(*.f64 z (*.f64 y x)) |
(*.f64 (-.f64 1 z) x) |
(*.f64 z (*.f64 y x)) |
3 calls:
| 101.0ms | x |
| 16.0ms | z |
| 14.0ms | y |
| Error | Segments | Branch |
|---|---|---|
| 14.8b | 9 | x |
| 8.6b | 3 | y |
| 11.8b | 3 | z |
Compiled 52 to 29 computations (44.2% saved)
| 2× | binary-search |
| Time | Left | Right |
|---|---|---|
| 264.0ms | 9.652901634771426e+158 | 6.889067560955935e+163 |
| 15.0ms | -1.5217809484915855e+48 | -4.35289031739712e+45 |
| 272.0ms | 272× | body | 256 | valid |
| 2.0ms | 17× | body | 256 | infinite |
Compiled 324 to 235 computations (27.5% saved)
| Inputs |
|---|
x |
(*.f64 z (neg.f64 x)) |
(*.f64 x (*.f64 z y)) |
(*.f64 y (*.f64 z x)) |
(*.f64 z (*.f64 y x)) |
| Outputs |
|---|
(*.f64 z (neg.f64 x)) |
(*.f64 z (*.f64 y x)) |
(*.f64 z (neg.f64 x)) |
(*.f64 x (*.f64 z y)) |
x |
(*.f64 y (*.f64 z x)) |
(*.f64 z (neg.f64 x)) |
(*.f64 z (*.f64 y x)) |
(*.f64 z (neg.f64 x)) |
3 calls:
| 334.0ms | x |
| 189.0ms | y |
| 150.0ms | z |
| Error | Segments | Branch |
|---|---|---|
| 26.6b | 11 | x |
| 20.8b | 5 | y |
| 15.2b | 9 | z |
Compiled 35 to 20 computations (42.9% saved)
| 8× | binary-search |
| Time | Left | Right |
|---|---|---|
| 20.0ms | 2.328995091596568e+214 | 1.2199571016973619e+219 |
| 125.0ms | 3.1717386546295576e+68 | 1.2984363819613273e+75 |
| 39.0ms | 28302761967447.19 | 229434532139388.5 |
| 12.0ms | 7.025471972764272e-11 | 1.5117303998156407e-9 |
| 272.0ms | -3.5293679593545234e-53 | -2.428897923619469e-60 |
| 12.0ms | -8752629613071792.0 | -180597814295834.75 |
| 132.0ms | -1.314483613454274e+47 | -1.1529975253996054e+34 |
| 11.0ms | -2.7967408209444707e+94 | -3.6986816410298138e+93 |
| 569.0ms | 992× | body | 256 | valid |
| 42.0ms | 147× | body | 256 | infinite |
Compiled 1024 to 726 computations (29.1% saved)
| Inputs |
|---|
x |
(*.f64 z (neg.f64 x)) |
(*.f64 x (*.f64 z y)) |
(*.f64 y (*.f64 z x)) |
| Outputs |
|---|
(*.f64 z (neg.f64 x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 z (neg.f64 x)) |
(*.f64 x (*.f64 z y)) |
x |
(*.f64 y (*.f64 z x)) |
(*.f64 z (neg.f64 x)) |
(*.f64 y (*.f64 z x)) |
(*.f64 z (neg.f64 x)) |
3 calls:
| 48.0ms | x |
| 31.0ms | z |
| 17.0ms | y |
| Error | Segments | Branch |
|---|---|---|
| 26.8b | 13 | x |
| 21.5b | 5 | y |
| 15.2b | 9 | z |
Compiled 30 to 18 computations (40% saved)
| 8× | binary-search |
| Time | Left | Right |
|---|---|---|
| 19.0ms | 2.328995091596568e+214 | 1.2199571016973619e+219 |
| 11.0ms | 1.172201033638626e+80 | 1.5617892537097183e+81 |
| 11.0ms | 28302761967447.19 | 229434532139388.5 |
| 12.0ms | 7.025471972764272e-11 | 1.5117303998156407e-9 |
| 16.0ms | -3.5293679593545234e-53 | -2.428897923619469e-60 |
| 14.0ms | -8752629613071792.0 | -180597814295834.75 |
| 19.0ms | -1.314483613454274e+47 | -1.1529975253996054e+34 |
| 12.0ms | -2.7967408209444707e+94 | -3.6986816410298138e+93 |
| 90.0ms | 944× | body | 256 | valid |
| 13.0ms | 135× | body | 256 | infinite |
Compiled 973 to 690 computations (29.1% saved)
| Inputs |
|---|
x |
(*.f64 z (neg.f64 x)) |
(*.f64 x (*.f64 z y)) |
| Outputs |
|---|
(*.f64 z (neg.f64 x)) |
(*.f64 x (*.f64 z y)) |
x |
(*.f64 x (*.f64 z y)) |
(*.f64 z (neg.f64 x)) |
3 calls:
| 27.0ms | x |
| 19.0ms | z |
| 16.0ms | y |
| Error | Segments | Branch |
|---|---|---|
| 29.2b | 9 | x |
| 22.9b | 5 | y |
| 17.6b | 5 | z |
Compiled 25 to 16 computations (36% saved)
| 4× | binary-search |
| Time | Left | Right |
|---|---|---|
| 11.0ms | 28302761967447.19 | 229434532139388.5 |
| 13.0ms | 7.025471972764272e-11 | 1.5117303998156407e-9 |
| 16.0ms | -3.5293679593545234e-53 | -2.428897923619469e-60 |
| 13.0ms | -8752629613071792.0 | -180597814295834.75 |
| 46.0ms | 464× | body | 256 | valid |
| 2.0ms | 22× | body | 256 | infinite |
Compiled 463 to 330 computations (28.7% saved)
Total -41.0b remaining (-198.7%)
Threshold costs -41.0b (-198.7%)
| Inputs |
|---|
x |
(*.f64 z (neg.f64 x)) |
| Outputs |
|---|
(*.f64 z (neg.f64 x)) |
x |
(*.f64 z (neg.f64 x)) |
3 calls:
| 14.0ms | x |
| 9.0ms | z |
| 8.0ms | y |
| Error | Segments | Branch |
|---|---|---|
| 32.0b | 5 | x |
| 32.4b | 3 | y |
| 20.6b | 3 | z |
Compiled 20 to 14 computations (30% saved)
| 2× | binary-search |
| Time | Left | Right |
|---|---|---|
| 14.0ms | 0.00011604857013508527 | 4.527834778103447 |
| 19.0ms | -415060956.18400306 | -6.458084417320803e-17 |
| 29.0ms | 304× | body | 256 | valid |
| 1.0ms | 9× | body | 256 | infinite |
Compiled 265 to 204 computations (23% saved)
| 1× | egg-herbie |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 132 | 985 |
| 1× | fuel |
| 1× | saturated |
| Inputs |
|---|
(if (<=.f64 z -9500000000000) (+.f64 (*.f64 z (*.f64 (-.f64 y 1) x)) x) (if (<=.f64 z 5164499756173817/5164499756173817179311838344006023748659411585658447025661318713081295244033682389259290706560275662871806343945494986752) (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z))) (+.f64 (*.f64 y (*.f64 z x)) (*.f64 (-.f64 1 z) x)))) |
(if (<=.f64 z -50000000000000) (+.f64 (*.f64 z (*.f64 (-.f64 y 1) x)) x) (if (<=.f64 z 600000000000) (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z))) (+.f64 (*.f64 z (*.f64 (-.f64 y 1) x)) x))) |
(if (<=.f64 (*.f64 (-.f64 1 y) z) -20000000000000000347133368339382573870453505234990611224736886462437054770952482249848261400637690118797395263364344950671345201327496585184494821583360107684373027385378753248237715456) (*.f64 z (*.f64 (-.f64 y 1) x)) (if (<=.f64 (*.f64 (-.f64 1 y) z) 39999999999999997486138098493475056401093230239587493100825002713807698410740413528150307135276363386938195289179600132648448207361831475318456484960712247853539567853690159104) (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z))) (*.f64 z (*.f64 (-.f64 y 1) x)))) |
(if (<=.f64 z -350000000000) (*.f64 z (*.f64 (-.f64 y 1) x)) (if (<=.f64 z 2589569785738035/562949953421312) (*.f64 x (+.f64 1 (*.f64 y z))) (*.f64 z (*.f64 (-.f64 y 1) x)))) |
(if (<=.f64 y -1220000000000000042055658048447550999922138195584166853592838389838660297520263590176996046332283787079646259397230918623007236190874074685773346698082278091019612015841303712615348567761990388933512729449134291532382208) (*.f64 z (*.f64 y x)) (if (<=.f64 y -1) (*.f64 x (+.f64 1 (*.f64 y z))) (if (<=.f64 y 1) (*.f64 (-.f64 1 z) x) (*.f64 x (+.f64 1 (*.f64 y z)))))) |
(if (<=.f64 y -9999999999999999931398190359470212947659194368) (*.f64 z (*.f64 y x)) (if (<=.f64 y 17599999999999999365680324237362651868900355031679916748806412160523024522797528500728976700836657154163298012291356303582536737923847118519370642595582901747712) (*.f64 (-.f64 1 z) x) (*.f64 z (*.f64 y x)))) |
(if (<=.f64 z -6499999999999999760888028767101830070317474073092020186931598635302221106223799185509521031168) (*.f64 z (neg.f64 x)) (if (<=.f64 z -84000000000000000437865279202133309957699796992) (*.f64 z (*.f64 y x)) (if (<=.f64 z -185000000000000) (*.f64 z (neg.f64 x)) (if (<=.f64 z -7597442378547053/883423532389192164791648750371459257913741948437809479060803100646309888) (*.f64 x (*.f64 z y)) (if (<=.f64 z 332454600394023/302231454903657293676544) x (if (<=.f64 z 55000000000000) (*.f64 y (*.f64 z x)) (if (<=.f64 z 1199999999999999992194639624726952485308668475297491590825325392876076531712) (*.f64 z (neg.f64 x)) (if (<=.f64 z 24000000000000000820297333909090880929075884009481258342880504702081624351088400779237167599115449147611712754195080475414431669313123713491884531042993683328398299973917154582046481469702856330582057791536706355200) (*.f64 z (*.f64 y x)) (*.f64 z (neg.f64 x)))))))))) |
(if (<=.f64 z -5199999999999999993977765793387376733967555272374268714777254373266679348111173761068624248832) (*.f64 z (neg.f64 x)) (if (<=.f64 z -880000000000000025524244681961693511680) (*.f64 y (*.f64 z x)) (if (<=.f64 z -185000000000000) (*.f64 z (neg.f64 x)) (if (<=.f64 z -6686066773453359/215679573337205118357336120696157045389097155380324579848828881993728) (*.f64 x (*.f64 z y)) (if (<=.f64 z 3191564163782621/19342813113834066795298816) x (if (<=.f64 z 50000000000000) (*.f64 y (*.f64 z x)) (if (<=.f64 z 1549999999999999993830434673694868617709860488079210521090102187994771809808416768) (*.f64 z (neg.f64 x)) (if (<=.f64 z 5400000000000000299384477723076911575007317684984211358137920963168348945403067142898371295345122439800412138652069896431198447278044737300779281290776889335828399797868330932813023954570883001535360339315954154471424) (*.f64 y (*.f64 z x)) (*.f64 z (neg.f64 x)))))))))) |
(if (<=.f64 z -310000000000000) (*.f64 z (neg.f64 x)) (if (<=.f64 z -1015937062247571/110427941548649020598956093796432407239217743554726184882600387580788736) (*.f64 x (*.f64 z y)) (if (<=.f64 z 7737125245533627/77371252455336267181195264) x (if (<=.f64 z 95000000000000) (*.f64 x (*.f64 z y)) (*.f64 z (neg.f64 x)))))) |
(if (<=.f64 z -1) (*.f64 z (neg.f64 x)) (if (<=.f64 z 1) x (*.f64 z (neg.f64 x)))) |
x |
| Outputs |
|---|
(if (<=.f64 z -9500000000000) (+.f64 (*.f64 z (*.f64 (-.f64 y 1) x)) x) (if (<=.f64 z 5164499756173817/5164499756173817179311838344006023748659411585658447025661318713081295244033682389259290706560275662871806343945494986752) (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z))) (+.f64 (*.f64 y (*.f64 z x)) (*.f64 (-.f64 1 z) x)))) |
(if (<=.f64 z -50000000000000) (+.f64 (*.f64 z (*.f64 (-.f64 y 1) x)) x) (if (<=.f64 z 600000000000) (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z))) (+.f64 (*.f64 z (*.f64 (-.f64 y 1) x)) x))) |
(if (<=.f64 (*.f64 (-.f64 1 y) z) -20000000000000000347133368339382573870453505234990611224736886462437054770952482249848261400637690118797395263364344950671345201327496585184494821583360107684373027385378753248237715456) (*.f64 z (*.f64 (-.f64 y 1) x)) (if (<=.f64 (*.f64 (-.f64 1 y) z) 39999999999999997486138098493475056401093230239587493100825002713807698410740413528150307135276363386938195289179600132648448207361831475318456484960712247853539567853690159104) (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z))) (*.f64 z (*.f64 (-.f64 y 1) x)))) |
(if (<=.f64 z -350000000000) (*.f64 z (*.f64 (-.f64 y 1) x)) (if (<=.f64 z 2589569785738035/562949953421312) (*.f64 x (+.f64 1 (*.f64 y z))) (*.f64 z (*.f64 (-.f64 y 1) x)))) |
(if (<=.f64 y -1220000000000000042055658048447550999922138195584166853592838389838660297520263590176996046332283787079646259397230918623007236190874074685773346698082278091019612015841303712615348567761990388933512729449134291532382208) (*.f64 z (*.f64 y x)) (if (<=.f64 y -1) (*.f64 x (+.f64 1 (*.f64 y z))) (if (<=.f64 y 1) (*.f64 (-.f64 1 z) x) (*.f64 x (+.f64 1 (*.f64 y z)))))) |
(if (<=.f64 y -9999999999999999931398190359470212947659194368) (*.f64 z (*.f64 y x)) (if (<=.f64 y 17599999999999999365680324237362651868900355031679916748806412160523024522797528500728976700836657154163298012291356303582536737923847118519370642595582901747712) (*.f64 (-.f64 1 z) x) (*.f64 z (*.f64 y x)))) |
(if (<=.f64 z -6499999999999999760888028767101830070317474073092020186931598635302221106223799185509521031168) (*.f64 z (neg.f64 x)) (if (<=.f64 z -84000000000000000437865279202133309957699796992) (*.f64 z (*.f64 y x)) (if (<=.f64 z -185000000000000) (*.f64 z (neg.f64 x)) (if (<=.f64 z -7597442378547053/883423532389192164791648750371459257913741948437809479060803100646309888) (*.f64 x (*.f64 z y)) (if (<=.f64 z 332454600394023/302231454903657293676544) x (if (<=.f64 z 55000000000000) (*.f64 y (*.f64 z x)) (if (<=.f64 z 1199999999999999992194639624726952485308668475297491590825325392876076531712) (*.f64 z (neg.f64 x)) (if (<=.f64 z 24000000000000000820297333909090880929075884009481258342880504702081624351088400779237167599115449147611712754195080475414431669313123713491884531042993683328398299973917154582046481469702856330582057791536706355200) (*.f64 z (*.f64 y x)) (*.f64 z (neg.f64 x)))))))))) |
(if (<=.f64 z -5199999999999999993977765793387376733967555272374268714777254373266679348111173761068624248832) (*.f64 z (neg.f64 x)) (if (<=.f64 z -880000000000000025524244681961693511680) (*.f64 y (*.f64 z x)) (if (<=.f64 z -185000000000000) (*.f64 z (neg.f64 x)) (if (<=.f64 z -6686066773453359/215679573337205118357336120696157045389097155380324579848828881993728) (*.f64 x (*.f64 z y)) (if (<=.f64 z 3191564163782621/19342813113834066795298816) x (if (<=.f64 z 50000000000000) (*.f64 y (*.f64 z x)) (if (<=.f64 z 1549999999999999993830434673694868617709860488079210521090102187994771809808416768) (*.f64 z (neg.f64 x)) (if (<=.f64 z 5400000000000000299384477723076911575007317684984211358137920963168348945403067142898371295345122439800412138652069896431198447278044737300779281290776889335828399797868330932813023954570883001535360339315954154471424) (*.f64 y (*.f64 z x)) (*.f64 z (neg.f64 x)))))))))) |
(if (<=.f64 z -310000000000000) (*.f64 z (neg.f64 x)) (if (<=.f64 z -1015937062247571/110427941548649020598956093796432407239217743554726184882600387580788736) (*.f64 x (*.f64 z y)) (if (<=.f64 z 7737125245533627/77371252455336267181195264) x (if (<=.f64 z 95000000000000) (*.f64 x (*.f64 z y)) (*.f64 z (neg.f64 x)))))) |
(if (<=.f64 z -1) (*.f64 z (neg.f64 x)) (if (<=.f64 z 1) x (*.f64 z (neg.f64 x)))) |
x |
Compiled 423 to 240 computations (43.3% saved)
Compiled 393 to 191 computations (51.4% saved)
Loading profile data...