Time bar (total: 8.0s)
| 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 |
| 25% | 25% | 74.9% | 0.1% | 0% | 0% | 0% | 5 |
| 37.5% | 37.5% | 62.4% | 0.1% | 0% | 0% | 0% | 6 |
| 51.6% | 50% | 46.8% | 0.1% | 3.1% | 0% | 0% | 7 |
| 61.3% | 59.3% | 37.5% | 0.1% | 3.1% | 0% | 0% | 8 |
| 72.3% | 67.1% | 25.8% | 0.1% | 7% | 0% | 0% | 9 |
| 78.2% | 72.6% | 20.3% | 0.1% | 7% | 0% | 0% | 10 |
| 85.1% | 76.9% | 13.5% | 0.1% | 9.6% | 0% | 0% | 11 |
| 88.3% | 79.8% | 10.5% | 0.1% | 9.6% | 0% | 0% | 12 |
Compiled 14 to 11 computations (21.4% saved)
| 1.1s | 8256× | body | 256 | valid |
| 26.0ms | 287× | body | 256 | infinite |
| 2× | egg-herbie |
| 8× | rational.json-simplify-2 |
| 8× | rational.json-simplify-1 |
| 4× | rational.json-simplify-16 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 17 | 62 |
| 1 | 26 | 62 |
| 2 | 28 | 62 |
| 0 | 2 | 2 |
| 1× | saturated |
| 1× | saturated |
| Inputs |
|---|
0 |
1 |
| Outputs |
|---|
0 |
1 |
| Inputs |
|---|
(+.f64 (-.f64 (*.f64 x (-.f64 y 1)) (*.f64 y 1/2)) 918938533204673/1000000000000000) |
(+.f64 (-.f64 (*.f64 y (-.f64 x 1)) (*.f64 x 1/2)) 918938533204673/1000000000000000) |
| Outputs |
|---|
(+.f64 (-.f64 (*.f64 x (-.f64 y 1)) (*.f64 y 1/2)) 918938533204673/1000000000000000) |
(+.f64 (-.f64 (*.f64 x (+.f64 y -1)) (*.f64 y 1/2)) 918938533204673/1000000000000000) |
(+.f64 (-.f64 (*.f64 y (-.f64 x 1)) (*.f64 x 1/2)) 918938533204673/1000000000000000) |
(+.f64 918938533204673/1000000000000000 (-.f64 (*.f64 y (+.f64 x -1)) (*.f64 x 1/2))) |
Compiled 15 to 12 computations (20% saved)
| 1× | egg-herbie |
| 4× | rational.json-simplify-2 |
| 4× | rational.json-simplify-1 |
| 2× | rational.json-simplify-16 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 12 | 31 |
| 1 | 17 | 31 |
| 2 | 18 | 31 |
| 1× | saturated |
| Inputs |
|---|
(+.f64 (-.f64 (*.f64 x (-.f64 y 1)) (*.f64 y 1/2)) 918938533204673/1000000000000000) |
| Outputs |
|---|
(+.f64 (-.f64 (*.f64 x (-.f64 y 1)) (*.f64 y 1/2)) 918938533204673/1000000000000000) |
(+.f64 (-.f64 (*.f64 x (+.f64 y -1)) (*.f64 y 1/2)) 918938533204673/1000000000000000) |
Compiled 24 to 18 computations (25% saved)
2 alts after pruning (2 fresh and 0 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 1 | 1 | 2 |
| Fresh | 0 | 1 | 1 |
| Picked | 0 | 0 | 0 |
| Done | 0 | 0 | 0 |
| Total | 1 | 2 | 3 |
| Status | Error | Program |
|---|---|---|
| ▶ | 0.0b | (+.f64 (-.f64 (*.f64 x (-.f64 y 1)) (*.f64 y 1/2)) 918938533204673/1000000000000000) |
Compiled 13 to 10 computations (23.1% saved)
Found 2 expressions with local error:
| New | Error | Program |
|---|---|---|
| ✓ | 0.0b | (*.f64 x (-.f64 y 1)) |
| ✓ | 0.0b | (-.f64 (*.f64 x (-.f64 y 1)) (*.f64 y 1/2)) |
Compiled 38 to 26 computations (31.6% saved)
12 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 0.0ms | y | @ | 0 | (-.f64 (*.f64 x (-.f64 y 1)) (*.f64 y 1/2)) |
| 0.0ms | x | @ | inf | (-.f64 (*.f64 x (-.f64 y 1)) (*.f64 y 1/2)) |
| 0.0ms | x | @ | 0 | (-.f64 (*.f64 x (-.f64 y 1)) (*.f64 y 1/2)) |
| 0.0ms | y | @ | -inf | (-.f64 (*.f64 x (-.f64 y 1)) (*.f64 y 1/2)) |
| 0.0ms | y | @ | inf | (-.f64 (*.f64 x (-.f64 y 1)) (*.f64 y 1/2)) |
| 1× | batch-egg-rewrite |
| 1446× | bool.json-1 |
| 1446× | bool.json-2 |
| 1390× | rational.json-1 |
| 1390× | rational.json-2 |
| 1390× | rational.json-4 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 10 | 38 |
| 1 | 107 | 38 |
| 2 | 304 | 38 |
| 3 | 596 | 38 |
| 4 | 1165 | 38 |
| 5 | 2609 | 38 |
| 6 | 5525 | 38 |
| 1× | node limit |
| Inputs |
|---|
(-.f64 (*.f64 x (-.f64 y 1)) (*.f64 y 1/2)) |
(*.f64 x (-.f64 y 1)) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (+.f64 y -1)) (/.f64 y -2))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 (*.f64 x (+.f64 y -1)) (/.f64 y -2)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (+.f64 (*.f64 x (+.f64 y -1)) (/.f64 y -2)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -1 (+.f64 (*.f64 x (+.f64 y -1)) (-.f64 1 (*.f64 y 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (/.f64 y -2) (*.f64 x (+.f64 y -1)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 (*.f64 x (+.f64 y -1)) (-.f64 1 (*.f64 y 1/2))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -2 (-.f64 1 (+.f64 (-.f64 (*.f64 y 1/2) (*.f64 x (+.f64 y -1))) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (/.f64 (-.f64 (*.f64 y 1/2) (*.f64 x (+.f64 y -1))) -2) (/.f64 (-.f64 (*.f64 y 1/2) (*.f64 x (+.f64 y -1))) -2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 (*.f64 x (+.f64 y -1)) (/.f64 y -2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (+.f64 (*.f64 x (+.f64 y -1)) (/.f64 y -2)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (-.f64 (*.f64 x (+.f64 y (+.f64 y -2))) y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 x (+.f64 y -1)) (/.f64 y -2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (-.f64 (*.f64 y 1/2) (*.f64 x (+.f64 y -1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (/.f64 (-.f64 (*.f64 y 1/2) (*.f64 x (+.f64 y -1))) -2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (-.f64 (*.f64 (+.f64 y -1) (*.f64 x 1/2)) (*.f64 y 1/4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 x (+.f64 y -1)) (/.f64 y -2)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (+.f64 (*.f64 x (+.f64 y -1)) (/.f64 y -2)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (*.f64 y 1/2) (*.f64 x (+.f64 y -1))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 x (+.f64 y -1)) (/.f64 y -2)) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (+.f64 (*.f64 x (+.f64 y -1)) (/.f64 y -2)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (-.f64 (*.f64 y 1/2) (*.f64 x (+.f64 y -1))) -2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 (*.f64 x (+.f64 y -1)) (/.f64 y -2)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 x (+.f64 y -1)) (/.f64 y -2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 x (+.f64 y -1)) (/.f64 y -2)) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 y 1/2) (*.f64 x (+.f64 y -1))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 x (+.f64 y -1)) (/.f64 y -2)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 y (*.f64 x (+.f64 y (+.f64 y -2)))) -2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 x (+.f64 y -1)) (/.f64 y -2)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 x (+.f64 y -1)) (/.f64 y -2)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (-.f64 y (*.f64 x (+.f64 y (+.f64 y -2))))) -4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 y (*.f64 x (+.f64 y (+.f64 y -2))))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x (+.f64 y -1)) (/.f64 y -2)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (neg.f64 (-.f64 y (*.f64 x (+.f64 y (+.f64 y -2)))))) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (*.f64 2 (-.f64 y (*.f64 x (+.f64 y (+.f64 y -2)))))) 4)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (-.f64 (*.f64 y 1/2) (*.f64 x (+.f64 y -1))))))) (#(struct:change #<rule egg-rr> (2) ((x not (not (+.f64 (*.f64 x (+.f64 y -1)) (/.f64 y -2))))))) (#(struct:change #<rule egg-rr> (2) ((x and (+.f64 (*.f64 x (+.f64 y -1)) (/.f64 y -2)) (+.f64 (*.f64 x (+.f64 y -1)) (/.f64 y -2)))))) (#(struct:change #<rule egg-rr> (2) ((x or (+.f64 (*.f64 x (+.f64 y -1)) (/.f64 y -2)) (+.f64 (*.f64 x (+.f64 y -1)) (/.f64 y -2))))))) |
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (+.f64 y -1)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 x (+.f64 y -1)))))) (#(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 x (+.f64 y -1)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (+.f64 y -1)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (+.f64 y (+.f64 y -2))) 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 x (+.f64 y -1)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 x (+.f64 y -1)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (+.f64 y -1)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 x (+.f64 y -1))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 x (+.f64 y -1)) (*.f64 x (+.f64 y -1)))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 x (+.f64 y -1)) (*.f64 x (+.f64 y -1))))))) |
| 1× | egg-herbie |
| 2214× | rational.json-simplify-35 |
| 1774× | rational.json-simplify-2 |
| 1770× | rational.json-simplify-1 |
| 880× | rational.json-simplify-52 |
| 722× | rational.json-simplify-48 |
Useful iterations: 3 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 113 | 1917 |
| 1 | 250 | 1843 |
| 2 | 547 | 1843 |
| 3 | 1300 | 1815 |
| 4 | 2601 | 1815 |
| 5 | 3480 | 1815 |
| 6 | 4408 | 1815 |
| 7 | 5267 | 1815 |
| 8 | 5749 | 1815 |
| 9 | 6204 | 1815 |
| 10 | 6223 | 1815 |
| 11 | 6230 | 1815 |
| 12 | 6869 | 1815 |
| 13 | 6937 | 1815 |
| 14 | 7198 | 1815 |
| 1× | node limit |
| Inputs |
|---|
(*.f64 -1/2 y) |
(+.f64 (*.f64 (-.f64 y 1) x) (*.f64 -1/2 y)) |
(+.f64 (*.f64 (-.f64 y 1) x) (*.f64 -1/2 y)) |
(+.f64 (*.f64 (-.f64 y 1) x) (*.f64 -1/2 y)) |
(*.f64 (-.f64 y 1) x) |
(+.f64 (*.f64 -1/2 y) (*.f64 (-.f64 y 1) x)) |
(+.f64 (*.f64 -1/2 y) (*.f64 (-.f64 y 1) x)) |
(+.f64 (*.f64 -1/2 y) (*.f64 (-.f64 y 1) x)) |
(*.f64 (-.f64 y 1) x) |
(+.f64 (*.f64 -1/2 y) (*.f64 (-.f64 y 1) x)) |
(+.f64 (*.f64 -1/2 y) (*.f64 (-.f64 y 1) x)) |
(+.f64 (*.f64 -1/2 y) (*.f64 (-.f64 y 1) x)) |
(*.f64 -1 x) |
(+.f64 (*.f64 y (-.f64 x 1/2)) (*.f64 -1 x)) |
(+.f64 (*.f64 y (-.f64 x 1/2)) (*.f64 -1 x)) |
(+.f64 (*.f64 y (-.f64 x 1/2)) (*.f64 -1 x)) |
(*.f64 y (-.f64 x 1/2)) |
(+.f64 (*.f64 -1 x) (*.f64 y (-.f64 x 1/2))) |
(+.f64 (*.f64 -1 x) (*.f64 y (-.f64 x 1/2))) |
(+.f64 (*.f64 -1 x) (*.f64 y (-.f64 x 1/2))) |
(*.f64 -1 (*.f64 y (+.f64 1/2 (*.f64 -1 x)))) |
(+.f64 (*.f64 -1 (*.f64 y (+.f64 1/2 (*.f64 -1 x)))) (*.f64 -1 x)) |
(+.f64 (*.f64 -1 (*.f64 y (+.f64 1/2 (*.f64 -1 x)))) (*.f64 -1 x)) |
(+.f64 (*.f64 -1 (*.f64 y (+.f64 1/2 (*.f64 -1 x)))) (*.f64 -1 x)) |
(*.f64 (-.f64 y 1) x) |
(*.f64 (-.f64 y 1) x) |
(*.f64 (-.f64 y 1) x) |
(*.f64 (-.f64 y 1) x) |
(*.f64 (-.f64 y 1) x) |
(*.f64 (-.f64 y 1) x) |
(*.f64 (-.f64 y 1) x) |
(*.f64 (-.f64 y 1) x) |
(*.f64 (-.f64 y 1) x) |
(*.f64 (-.f64 y 1) x) |
(*.f64 (-.f64 y 1) x) |
(*.f64 (-.f64 y 1) 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 x (+.f64 y -1)) (/.f64 y -2)) |
(+.f64 (+.f64 (*.f64 x (+.f64 y -1)) (/.f64 y -2)) 0) |
(+.f64 0 (+.f64 (*.f64 x (+.f64 y -1)) (/.f64 y -2))) |
(+.f64 -1 (+.f64 (*.f64 x (+.f64 y -1)) (-.f64 1 (*.f64 y 1/2)))) |
(+.f64 (/.f64 y -2) (*.f64 x (+.f64 y -1))) |
(+.f64 (+.f64 (*.f64 x (+.f64 y -1)) (-.f64 1 (*.f64 y 1/2))) -1) |
(+.f64 -2 (-.f64 1 (+.f64 (-.f64 (*.f64 y 1/2) (*.f64 x (+.f64 y -1))) -1))) |
(+.f64 (/.f64 (-.f64 (*.f64 y 1/2) (*.f64 x (+.f64 y -1))) -2) (/.f64 (-.f64 (*.f64 y 1/2) (*.f64 x (+.f64 y -1))) -2)) |
(*.f64 1 (+.f64 (*.f64 x (+.f64 y -1)) (/.f64 y -2))) |
(*.f64 1/2 (*.f64 (+.f64 (*.f64 x (+.f64 y -1)) (/.f64 y -2)) 2)) |
(*.f64 1/2 (-.f64 (*.f64 x (+.f64 y (+.f64 y -2))) y)) |
(*.f64 (+.f64 (*.f64 x (+.f64 y -1)) (/.f64 y -2)) 1) |
(*.f64 -1 (-.f64 (*.f64 y 1/2) (*.f64 x (+.f64 y -1)))) |
(*.f64 2 (/.f64 (-.f64 (*.f64 y 1/2) (*.f64 x (+.f64 y -1))) -2)) |
(*.f64 2 (-.f64 (*.f64 (+.f64 y -1) (*.f64 x 1/2)) (*.f64 y 1/4))) |
(*.f64 (*.f64 (+.f64 (*.f64 x (+.f64 y -1)) (/.f64 y -2)) 2) 1/2) |
(*.f64 4 (/.f64 (+.f64 (*.f64 x (+.f64 y -1)) (/.f64 y -2)) 4)) |
(*.f64 (-.f64 (*.f64 y 1/2) (*.f64 x (+.f64 y -1))) -1) |
(*.f64 (*.f64 (+.f64 (*.f64 x (+.f64 y -1)) (/.f64 y -2)) 4) 1/4) |
(*.f64 1/4 (*.f64 (+.f64 (*.f64 x (+.f64 y -1)) (/.f64 y -2)) 4)) |
(*.f64 (/.f64 (-.f64 (*.f64 y 1/2) (*.f64 x (+.f64 y -1))) -2) 2) |
(*.f64 (/.f64 (+.f64 (*.f64 x (+.f64 y -1)) (/.f64 y -2)) 4) 4) |
(/.f64 (+.f64 (*.f64 x (+.f64 y -1)) (/.f64 y -2)) 1) |
(/.f64 (*.f64 (+.f64 (*.f64 x (+.f64 y -1)) (/.f64 y -2)) 2) 2) |
(/.f64 (-.f64 (*.f64 y 1/2) (*.f64 x (+.f64 y -1))) -1) |
(/.f64 (*.f64 (+.f64 (*.f64 x (+.f64 y -1)) (/.f64 y -2)) 4) 4) |
(/.f64 (-.f64 y (*.f64 x (+.f64 y (+.f64 y -2)))) -2) |
(/.f64 (*.f64 (+.f64 (*.f64 x (+.f64 y -1)) (/.f64 y -2)) 8) 8) |
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 x (+.f64 y -1)) (/.f64 y -2)) 8)) 16) |
(/.f64 (*.f64 2 (-.f64 y (*.f64 x (+.f64 y (+.f64 y -2))))) -4) |
(/.f64 (neg.f64 (-.f64 y (*.f64 x (+.f64 y (+.f64 y -2))))) 2) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x (+.f64 y -1)) (/.f64 y -2)) 8))) 32) |
(/.f64 (*.f64 2 (neg.f64 (-.f64 y (*.f64 x (+.f64 y (+.f64 y -2)))))) 4) |
(/.f64 (neg.f64 (*.f64 2 (-.f64 y (*.f64 x (+.f64 y (+.f64 y -2)))))) 4) |
(neg.f64 (-.f64 (*.f64 y 1/2) (*.f64 x (+.f64 y -1)))) |
(+.f64 (*.f64 x (+.f64 y -1)) 0) |
(+.f64 0 (*.f64 x (+.f64 y -1))) |
(+.f64 (*.f64 (+.f64 y -1) (*.f64 x 1/2)) (*.f64 (+.f64 y -1) (*.f64 x 1/2))) |
(-.f64 (*.f64 x (+.f64 y -1)) 0) |
(/.f64 (*.f64 x (+.f64 y -1)) 1) |
(/.f64 (*.f64 x (+.f64 y (+.f64 y -2))) 2) |
(/.f64 (*.f64 (+.f64 y -1) (*.f64 x 4)) 4) |
(/.f64 (*.f64 (*.f64 x (+.f64 y -1)) 8) 8) |
(/.f64 (*.f64 2 (*.f64 (*.f64 x (+.f64 y -1)) 8)) 16) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (+.f64 y -1)) 8))) 32) |
| Outputs |
|---|
(*.f64 -1/2 y) |
(+.f64 (*.f64 (-.f64 y 1) x) (*.f64 -1/2 y)) |
(+.f64 (*.f64 -1/2 y) (*.f64 x (+.f64 y -1))) |
(+.f64 (neg.f64 x) (*.f64 y (+.f64 -1/2 x))) |
(+.f64 (*.f64 (-.f64 y 1) x) (*.f64 -1/2 y)) |
(+.f64 (*.f64 -1/2 y) (*.f64 x (+.f64 y -1))) |
(+.f64 (neg.f64 x) (*.f64 y (+.f64 -1/2 x))) |
(+.f64 (*.f64 (-.f64 y 1) x) (*.f64 -1/2 y)) |
(+.f64 (*.f64 -1/2 y) (*.f64 x (+.f64 y -1))) |
(+.f64 (neg.f64 x) (*.f64 y (+.f64 -1/2 x))) |
(*.f64 (-.f64 y 1) x) |
(*.f64 x (+.f64 y -1)) |
(+.f64 (*.f64 -1/2 y) (*.f64 (-.f64 y 1) x)) |
(+.f64 (*.f64 -1/2 y) (*.f64 x (+.f64 y -1))) |
(+.f64 (neg.f64 x) (*.f64 y (+.f64 -1/2 x))) |
(+.f64 (*.f64 -1/2 y) (*.f64 (-.f64 y 1) x)) |
(+.f64 (*.f64 -1/2 y) (*.f64 x (+.f64 y -1))) |
(+.f64 (neg.f64 x) (*.f64 y (+.f64 -1/2 x))) |
(+.f64 (*.f64 -1/2 y) (*.f64 (-.f64 y 1) x)) |
(+.f64 (*.f64 -1/2 y) (*.f64 x (+.f64 y -1))) |
(+.f64 (neg.f64 x) (*.f64 y (+.f64 -1/2 x))) |
(*.f64 (-.f64 y 1) x) |
(*.f64 x (+.f64 y -1)) |
(+.f64 (*.f64 -1/2 y) (*.f64 (-.f64 y 1) x)) |
(+.f64 (*.f64 -1/2 y) (*.f64 x (+.f64 y -1))) |
(+.f64 (neg.f64 x) (*.f64 y (+.f64 -1/2 x))) |
(+.f64 (*.f64 -1/2 y) (*.f64 (-.f64 y 1) x)) |
(+.f64 (*.f64 -1/2 y) (*.f64 x (+.f64 y -1))) |
(+.f64 (neg.f64 x) (*.f64 y (+.f64 -1/2 x))) |
(+.f64 (*.f64 -1/2 y) (*.f64 (-.f64 y 1) x)) |
(+.f64 (*.f64 -1/2 y) (*.f64 x (+.f64 y -1))) |
(+.f64 (neg.f64 x) (*.f64 y (+.f64 -1/2 x))) |
(*.f64 -1 x) |
(*.f64 x -1) |
(neg.f64 x) |
(+.f64 (*.f64 y (-.f64 x 1/2)) (*.f64 -1 x)) |
(+.f64 (*.f64 x -1) (*.f64 y (-.f64 x 1/2))) |
(+.f64 (neg.f64 x) (*.f64 y (-.f64 x 1/2))) |
(+.f64 (*.f64 y (-.f64 x 1/2)) (*.f64 -1 x)) |
(+.f64 (*.f64 x -1) (*.f64 y (-.f64 x 1/2))) |
(+.f64 (neg.f64 x) (*.f64 y (-.f64 x 1/2))) |
(+.f64 (*.f64 y (-.f64 x 1/2)) (*.f64 -1 x)) |
(+.f64 (*.f64 x -1) (*.f64 y (-.f64 x 1/2))) |
(+.f64 (neg.f64 x) (*.f64 y (-.f64 x 1/2))) |
(*.f64 y (-.f64 x 1/2)) |
(+.f64 (*.f64 -1 x) (*.f64 y (-.f64 x 1/2))) |
(+.f64 (*.f64 x -1) (*.f64 y (-.f64 x 1/2))) |
(+.f64 (neg.f64 x) (*.f64 y (-.f64 x 1/2))) |
(+.f64 (*.f64 -1 x) (*.f64 y (-.f64 x 1/2))) |
(+.f64 (*.f64 x -1) (*.f64 y (-.f64 x 1/2))) |
(+.f64 (neg.f64 x) (*.f64 y (-.f64 x 1/2))) |
(+.f64 (*.f64 -1 x) (*.f64 y (-.f64 x 1/2))) |
(+.f64 (*.f64 x -1) (*.f64 y (-.f64 x 1/2))) |
(+.f64 (neg.f64 x) (*.f64 y (-.f64 x 1/2))) |
(*.f64 -1 (*.f64 y (+.f64 1/2 (*.f64 -1 x)))) |
(*.f64 y (*.f64 (+.f64 (*.f64 x -1) 1/2) -1)) |
(*.f64 y (neg.f64 (+.f64 (neg.f64 x) 1/2))) |
(*.f64 (+.f64 (neg.f64 x) 1/2) (neg.f64 y)) |
(+.f64 (*.f64 -1 (*.f64 y (+.f64 1/2 (*.f64 -1 x)))) (*.f64 -1 x)) |
(+.f64 (*.f64 x -1) (*.f64 y (*.f64 (+.f64 (*.f64 x -1) 1/2) -1))) |
(*.f64 -1 (+.f64 (*.f64 y (+.f64 (neg.f64 x) 1/2)) x)) |
(*.f64 -1 (+.f64 x (*.f64 y (+.f64 (neg.f64 x) 1/2)))) |
(neg.f64 (+.f64 x (*.f64 y (+.f64 (neg.f64 x) 1/2)))) |
(+.f64 (*.f64 -1 (*.f64 y (+.f64 1/2 (*.f64 -1 x)))) (*.f64 -1 x)) |
(+.f64 (*.f64 x -1) (*.f64 y (*.f64 (+.f64 (*.f64 x -1) 1/2) -1))) |
(*.f64 -1 (+.f64 (*.f64 y (+.f64 (neg.f64 x) 1/2)) x)) |
(*.f64 -1 (+.f64 x (*.f64 y (+.f64 (neg.f64 x) 1/2)))) |
(neg.f64 (+.f64 x (*.f64 y (+.f64 (neg.f64 x) 1/2)))) |
(+.f64 (*.f64 -1 (*.f64 y (+.f64 1/2 (*.f64 -1 x)))) (*.f64 -1 x)) |
(+.f64 (*.f64 x -1) (*.f64 y (*.f64 (+.f64 (*.f64 x -1) 1/2) -1))) |
(*.f64 -1 (+.f64 (*.f64 y (+.f64 (neg.f64 x) 1/2)) x)) |
(*.f64 -1 (+.f64 x (*.f64 y (+.f64 (neg.f64 x) 1/2)))) |
(neg.f64 (+.f64 x (*.f64 y (+.f64 (neg.f64 x) 1/2)))) |
(*.f64 (-.f64 y 1) x) |
(*.f64 x (+.f64 y -1)) |
(*.f64 (-.f64 y 1) x) |
(*.f64 x (+.f64 y -1)) |
(*.f64 (-.f64 y 1) x) |
(*.f64 x (+.f64 y -1)) |
(*.f64 (-.f64 y 1) x) |
(*.f64 x (+.f64 y -1)) |
(*.f64 (-.f64 y 1) x) |
(*.f64 x (+.f64 y -1)) |
(*.f64 (-.f64 y 1) x) |
(*.f64 x (+.f64 y -1)) |
(*.f64 (-.f64 y 1) x) |
(*.f64 x (+.f64 y -1)) |
(*.f64 (-.f64 y 1) x) |
(*.f64 x (+.f64 y -1)) |
(*.f64 (-.f64 y 1) x) |
(*.f64 x (+.f64 y -1)) |
(*.f64 (-.f64 y 1) x) |
(*.f64 x (+.f64 y -1)) |
(*.f64 (-.f64 y 1) x) |
(*.f64 x (+.f64 y -1)) |
(*.f64 (-.f64 y 1) x) |
(*.f64 x (+.f64 y -1)) |
(*.f64 -1 x) |
(*.f64 x -1) |
(neg.f64 x) |
(+.f64 (*.f64 y x) (*.f64 -1 x)) |
(*.f64 x (+.f64 y -1)) |
(+.f64 (*.f64 y x) (*.f64 -1 x)) |
(*.f64 x (+.f64 y -1)) |
(+.f64 (*.f64 y x) (*.f64 -1 x)) |
(*.f64 x (+.f64 y -1)) |
(*.f64 y x) |
(+.f64 (*.f64 y x) (*.f64 -1 x)) |
(*.f64 x (+.f64 y -1)) |
(+.f64 (*.f64 y x) (*.f64 -1 x)) |
(*.f64 x (+.f64 y -1)) |
(+.f64 (*.f64 y x) (*.f64 -1 x)) |
(*.f64 x (+.f64 y -1)) |
(*.f64 y x) |
(+.f64 (*.f64 y x) (*.f64 -1 x)) |
(*.f64 x (+.f64 y -1)) |
(+.f64 (*.f64 y x) (*.f64 -1 x)) |
(*.f64 x (+.f64 y -1)) |
(+.f64 (*.f64 y x) (*.f64 -1 x)) |
(*.f64 x (+.f64 y -1)) |
(+.f64 (*.f64 x (+.f64 y -1)) (/.f64 y -2)) |
(+.f64 (+.f64 (*.f64 x (+.f64 y -1)) (/.f64 y -2)) 0) |
(+.f64 (*.f64 x (+.f64 y -1)) (/.f64 y -2)) |
(+.f64 0 (+.f64 (*.f64 x (+.f64 y -1)) (/.f64 y -2))) |
(+.f64 (*.f64 x (+.f64 y -1)) (/.f64 y -2)) |
(+.f64 -1 (+.f64 (*.f64 x (+.f64 y -1)) (-.f64 1 (*.f64 y 1/2)))) |
(+.f64 (*.f64 x -1) (*.f64 y (-.f64 x 1/2))) |
(+.f64 (neg.f64 x) (*.f64 y (-.f64 x 1/2))) |
(+.f64 (/.f64 y -2) (*.f64 x (+.f64 y -1))) |
(+.f64 (*.f64 x (+.f64 y -1)) (/.f64 y -2)) |
(+.f64 (+.f64 (*.f64 x (+.f64 y -1)) (-.f64 1 (*.f64 y 1/2))) -1) |
(+.f64 (*.f64 x -1) (*.f64 y (-.f64 x 1/2))) |
(+.f64 (neg.f64 x) (*.f64 y (-.f64 x 1/2))) |
(+.f64 -2 (-.f64 1 (+.f64 (-.f64 (*.f64 y 1/2) (*.f64 x (+.f64 y -1))) -1))) |
(+.f64 (*.f64 x -1) (*.f64 y (-.f64 x 1/2))) |
(+.f64 (neg.f64 x) (*.f64 y (-.f64 x 1/2))) |
(+.f64 (/.f64 (-.f64 (*.f64 y 1/2) (*.f64 x (+.f64 y -1))) -2) (/.f64 (-.f64 (*.f64 y 1/2) (*.f64 x (+.f64 y -1))) -2)) |
(+.f64 (/.f64 (+.f64 (neg.f64 x) (*.f64 y (-.f64 x 1/2))) 2) (/.f64 (+.f64 (neg.f64 x) (*.f64 y (-.f64 x 1/2))) 2)) |
(*.f64 1 (+.f64 (*.f64 x (+.f64 y -1)) (/.f64 y -2))) |
(+.f64 (*.f64 x (+.f64 y -1)) (/.f64 y -2)) |
(*.f64 1/2 (*.f64 (+.f64 (*.f64 x (+.f64 y -1)) (/.f64 y -2)) 2)) |
(+.f64 (*.f64 x (+.f64 y -1)) (/.f64 y -2)) |
(*.f64 1/2 (-.f64 (*.f64 x (+.f64 y (+.f64 y -2))) y)) |
(+.f64 (*.f64 x -1) (*.f64 y (-.f64 x 1/2))) |
(+.f64 (neg.f64 x) (*.f64 y (-.f64 x 1/2))) |
(*.f64 (+.f64 (*.f64 x (+.f64 y -1)) (/.f64 y -2)) 1) |
(+.f64 (*.f64 x (+.f64 y -1)) (/.f64 y -2)) |
(*.f64 -1 (-.f64 (*.f64 y 1/2) (*.f64 x (+.f64 y -1)))) |
(+.f64 (*.f64 x -1) (*.f64 y (-.f64 x 1/2))) |
(+.f64 (neg.f64 x) (*.f64 y (-.f64 x 1/2))) |
(*.f64 2 (/.f64 (-.f64 (*.f64 y 1/2) (*.f64 x (+.f64 y -1))) -2)) |
(+.f64 (*.f64 x -1) (*.f64 y (-.f64 x 1/2))) |
(+.f64 (neg.f64 x) (*.f64 y (-.f64 x 1/2))) |
(*.f64 2 (-.f64 (*.f64 (+.f64 y -1) (*.f64 x 1/2)) (*.f64 y 1/4))) |
(*.f64 2 (-.f64 (*.f64 x (*.f64 1/2 (+.f64 y -1))) (*.f64 y 1/4))) |
(*.f64 (*.f64 (+.f64 (*.f64 x (+.f64 y -1)) (/.f64 y -2)) 2) 1/2) |
(+.f64 (*.f64 x (+.f64 y -1)) (/.f64 y -2)) |
(*.f64 4 (/.f64 (+.f64 (*.f64 x (+.f64 y -1)) (/.f64 y -2)) 4)) |
(+.f64 (*.f64 x (+.f64 y -1)) (/.f64 y -2)) |
(*.f64 (-.f64 (*.f64 y 1/2) (*.f64 x (+.f64 y -1))) -1) |
(+.f64 (*.f64 x -1) (*.f64 y (-.f64 x 1/2))) |
(+.f64 (neg.f64 x) (*.f64 y (-.f64 x 1/2))) |
(*.f64 (*.f64 (+.f64 (*.f64 x (+.f64 y -1)) (/.f64 y -2)) 4) 1/4) |
(+.f64 (*.f64 x (+.f64 y -1)) (/.f64 y -2)) |
(*.f64 1/4 (*.f64 (+.f64 (*.f64 x (+.f64 y -1)) (/.f64 y -2)) 4)) |
(+.f64 (*.f64 x (+.f64 y -1)) (/.f64 y -2)) |
(*.f64 (/.f64 (-.f64 (*.f64 y 1/2) (*.f64 x (+.f64 y -1))) -2) 2) |
(+.f64 (*.f64 x -1) (*.f64 y (-.f64 x 1/2))) |
(+.f64 (neg.f64 x) (*.f64 y (-.f64 x 1/2))) |
(*.f64 (/.f64 (+.f64 (*.f64 x (+.f64 y -1)) (/.f64 y -2)) 4) 4) |
(+.f64 (*.f64 x (+.f64 y -1)) (/.f64 y -2)) |
(/.f64 (+.f64 (*.f64 x (+.f64 y -1)) (/.f64 y -2)) 1) |
(+.f64 (*.f64 x (+.f64 y -1)) (/.f64 y -2)) |
(/.f64 (*.f64 (+.f64 (*.f64 x (+.f64 y -1)) (/.f64 y -2)) 2) 2) |
(+.f64 (*.f64 x (+.f64 y -1)) (/.f64 y -2)) |
(/.f64 (-.f64 (*.f64 y 1/2) (*.f64 x (+.f64 y -1))) -1) |
(+.f64 (*.f64 x -1) (*.f64 y (-.f64 x 1/2))) |
(+.f64 (neg.f64 x) (*.f64 y (-.f64 x 1/2))) |
(/.f64 (*.f64 (+.f64 (*.f64 x (+.f64 y -1)) (/.f64 y -2)) 4) 4) |
(+.f64 (*.f64 x (+.f64 y -1)) (/.f64 y -2)) |
(/.f64 (-.f64 y (*.f64 x (+.f64 y (+.f64 y -2)))) -2) |
(+.f64 (*.f64 x -1) (*.f64 y (-.f64 x 1/2))) |
(+.f64 (neg.f64 x) (*.f64 y (-.f64 x 1/2))) |
(/.f64 (*.f64 (+.f64 (*.f64 x (+.f64 y -1)) (/.f64 y -2)) 8) 8) |
(+.f64 (*.f64 x (+.f64 y -1)) (/.f64 y -2)) |
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 x (+.f64 y -1)) (/.f64 y -2)) 8)) 16) |
(+.f64 (*.f64 x (+.f64 y -1)) (/.f64 y -2)) |
(/.f64 (*.f64 2 (-.f64 y (*.f64 x (+.f64 y (+.f64 y -2))))) -4) |
(+.f64 (*.f64 x -1) (*.f64 y (-.f64 x 1/2))) |
(+.f64 (neg.f64 x) (*.f64 y (-.f64 x 1/2))) |
(/.f64 (neg.f64 (-.f64 y (*.f64 x (+.f64 y (+.f64 y -2))))) 2) |
(+.f64 (*.f64 x -1) (*.f64 y (-.f64 x 1/2))) |
(+.f64 (neg.f64 x) (*.f64 y (-.f64 x 1/2))) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x (+.f64 y -1)) (/.f64 y -2)) 8))) 32) |
(+.f64 (*.f64 x (+.f64 y -1)) (/.f64 y -2)) |
(/.f64 (*.f64 2 (neg.f64 (-.f64 y (*.f64 x (+.f64 y (+.f64 y -2)))))) 4) |
(+.f64 (*.f64 x -1) (*.f64 y (-.f64 x 1/2))) |
(+.f64 (neg.f64 x) (*.f64 y (-.f64 x 1/2))) |
(/.f64 (neg.f64 (*.f64 2 (-.f64 y (*.f64 x (+.f64 y (+.f64 y -2)))))) 4) |
(+.f64 (*.f64 x -1) (*.f64 y (-.f64 x 1/2))) |
(+.f64 (neg.f64 x) (*.f64 y (-.f64 x 1/2))) |
(neg.f64 (-.f64 (*.f64 y 1/2) (*.f64 x (+.f64 y -1)))) |
(+.f64 (*.f64 x -1) (*.f64 y (-.f64 x 1/2))) |
(+.f64 (neg.f64 x) (*.f64 y (-.f64 x 1/2))) |
(+.f64 (*.f64 x (+.f64 y -1)) 0) |
(*.f64 x (+.f64 y -1)) |
(+.f64 0 (*.f64 x (+.f64 y -1))) |
(*.f64 x (+.f64 y -1)) |
(+.f64 (*.f64 (+.f64 y -1) (*.f64 x 1/2)) (*.f64 (+.f64 y -1) (*.f64 x 1/2))) |
(*.f64 x (+.f64 y -1)) |
(-.f64 (*.f64 x (+.f64 y -1)) 0) |
(*.f64 x (+.f64 y -1)) |
(/.f64 (*.f64 x (+.f64 y -1)) 1) |
(*.f64 x (+.f64 y -1)) |
(/.f64 (*.f64 x (+.f64 y (+.f64 y -2))) 2) |
(*.f64 x (+.f64 y -1)) |
(/.f64 (*.f64 (+.f64 y -1) (*.f64 x 4)) 4) |
(*.f64 x (+.f64 y -1)) |
(/.f64 (*.f64 (*.f64 x (+.f64 y -1)) 8) 8) |
(*.f64 x (+.f64 y -1)) |
(/.f64 (*.f64 2 (*.f64 (*.f64 x (+.f64 y -1)) 8)) 16) |
(*.f64 x (+.f64 y -1)) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (+.f64 y -1)) 8))) 32) |
(*.f64 x (+.f64 y -1)) |
Compiled 960 to 730 computations (24% saved)
6 alts after pruning (6 fresh and 0 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 67 | 6 | 73 |
| Fresh | 0 | 0 | 0 |
| Picked | 1 | 0 | 1 |
| Done | 0 | 0 | 0 |
| Total | 68 | 6 | 74 |
| Status | Error | Program |
|---|---|---|
| 20.6b | (+.f64 (-.f64 (*.f64 y x) (*.f64 y 1/2)) 918938533204673/1000000000000000) | |
| ▶ | 0.0b | (+.f64 (+.f64 (neg.f64 x) (*.f64 y (-.f64 x 1/2))) 918938533204673/1000000000000000) |
| ▶ | 17.0b | (+.f64 (*.f64 (-.f64 y 1) x) 918938533204673/1000000000000000) |
| ▶ | 20.6b | (+.f64 (*.f64 y (-.f64 x 1/2)) 918938533204673/1000000000000000) |
| ▶ | 28.2b | (+.f64 (*.f64 -1/2 y) 918938533204673/1000000000000000) |
| ▶ | 25.4b | (+.f64 (neg.f64 x) 918938533204673/1000000000000000) |
Compiled 108 to 84 computations (22.2% saved)
Found 2 expressions with local error:
| New | Error | Program |
|---|---|---|
| ✓ | 0.0b | (+.f64 (neg.f64 x) (*.f64 y (-.f64 x 1/2))) |
| ✓ | 0.0b | (*.f64 y (-.f64 x 1/2)) |
Compiled 34 to 20 computations (41.2% saved)
12 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 1.0ms | y | @ | inf | (*.f64 y (-.f64 x 1/2)) |
| 0.0ms | y | @ | 0 | (*.f64 y (-.f64 x 1/2)) |
| 0.0ms | x | @ | -inf | (*.f64 y (-.f64 x 1/2)) |
| 0.0ms | y | @ | inf | (+.f64 (neg.f64 x) (*.f64 y (-.f64 x 1/2))) |
| 0.0ms | y | @ | -inf | (*.f64 y (-.f64 x 1/2)) |
| 1× | batch-egg-rewrite |
| 1518× | bool.json-1 |
| 1518× | bool.json-2 |
| 1464× | rational.json-1 |
| 1464× | rational.json-2 |
| 1464× | rational.json-4 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 10 | 36 |
| 1 | 101 | 36 |
| 2 | 269 | 36 |
| 3 | 561 | 36 |
| 4 | 1207 | 36 |
| 5 | 2763 | 36 |
| 6 | 5793 | 36 |
| 1× | node limit |
| Inputs |
|---|
(*.f64 y (-.f64 x 1/2)) |
(+.f64 (neg.f64 x) (*.f64 y (-.f64 x 1/2))) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 y (+.f64 x -1/2)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 y (+.f64 x -1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 x -1/2) (*.f64 y 1/2)) (*.f64 (+.f64 x -1/2) (*.f64 y 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 y (+.f64 x -1/2)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (+.f64 x -1/2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 x -1/2) (+.f64 y y)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (*.f64 (+.f64 x -1/2) 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 y (+.f64 x -1/2)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 y (+.f64 x -1/2)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 y (+.f64 x -1/2)) 8)) (*.f64 2 (*.f64 (*.f64 y (+.f64 x -1/2)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 y (+.f64 x -1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 y (+.f64 x -1/2)) (*.f64 y (+.f64 x -1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 y (+.f64 x -1/2)) (*.f64 y (+.f64 x -1/2))))))) |
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) (neg.f64 x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) (-.f64 1 x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) (neg.f64 x)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (*.f64 x -2) (*.f64 (+.f64 x -1/2) (+.f64 y y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (*.f64 (+.f64 x -1/2) (+.f64 y y)) (*.f64 x -2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) (neg.f64 x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 (*.f64 y (+.f64 x -1/2)) (neg.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 1/2 (+.f64 (*.f64 y (+.f64 x -1/2)) (neg.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (+.f64 (*.f64 x -1/2) (*.f64 (+.f64 x -1/2) (*.f64 y 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (+.f64 (*.f64 (+.f64 x -1/2) (*.f64 y 1/2)) (*.f64 x -1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) (neg.f64 x)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) (neg.f64 x)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) (neg.f64 x)) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 1/2 (+.f64 (*.f64 y (+.f64 x -1/2)) (neg.f64 x))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) (neg.f64 x)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) (neg.f64 x)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) (neg.f64 x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) (neg.f64 x)) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) (neg.f64 x)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) (neg.f64 x)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) (neg.f64 x)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) (neg.f64 x)) 8)) (*.f64 2 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) (neg.f64 x)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (+.f64 (*.f64 y (+.f64 x -1/2)) (neg.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x and (+.f64 (*.f64 y (+.f64 x -1/2)) (neg.f64 x)) (+.f64 (*.f64 y (+.f64 x -1/2)) (neg.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x or (+.f64 (*.f64 y (+.f64 x -1/2)) (neg.f64 x)) (+.f64 (*.f64 y (+.f64 x -1/2)) (neg.f64 x))))))) |
| 1× | egg-herbie |
| 3862× | rational.json-simplify-35 |
| 2330× | rational.json-simplify-48 |
| 1584× | rational.json-simplify-1 |
| 1330× | rational.json-simplify-2 |
| 808× | rational.json-simplify-42 |
Useful iterations: 3 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 94 | 1452 |
| 1 | 188 | 1338 |
| 2 | 441 | 1338 |
| 3 | 1072 | 1280 |
| 4 | 2138 | 1280 |
| 5 | 2776 | 1280 |
| 6 | 3122 | 1280 |
| 7 | 3477 | 1280 |
| 8 | 3765 | 1280 |
| 9 | 3996 | 1280 |
| 10 | 4157 | 1280 |
| 11 | 4336 | 1280 |
| 12 | 4538 | 1280 |
| 13 | 4816 | 1280 |
| 14 | 4854 | 1280 |
| 15 | 4955 | 1280 |
| 16 | 5010 | 1280 |
| 17 | 5058 | 1280 |
| 18 | 5100 | 1280 |
| 19 | 5440 | 1280 |
| 20 | 5698 | 1280 |
| 21 | 5853 | 1280 |
| 22 | 6011 | 1280 |
| 23 | 6171 | 1280 |
| 24 | 6326 | 1280 |
| 25 | 6478 | 1280 |
| 26 | 6628 | 1280 |
| 27 | 6751 | 1280 |
| 28 | 6866 | 1280 |
| 29 | 6981 | 1280 |
| 30 | 7305 | 1280 |
| 31 | 7641 | 1280 |
| 32 | 7668 | 1280 |
| 33 | 7697 | 1280 |
| 34 | 7735 | 1280 |
| 35 | 7822 | 1280 |
| 36 | 7867 | 1280 |
| 37 | 7913 | 1280 |
| 38 | 7962 | 1280 |
| 1× | node limit |
| Inputs |
|---|
(*.f64 -1/2 y) |
(+.f64 (*.f64 -1/2 y) (*.f64 y x)) |
(+.f64 (*.f64 -1/2 y) (*.f64 y x)) |
(+.f64 (*.f64 -1/2 y) (*.f64 y x)) |
(*.f64 y x) |
(+.f64 (*.f64 -1/2 y) (*.f64 y x)) |
(+.f64 (*.f64 -1/2 y) (*.f64 y x)) |
(+.f64 (*.f64 -1/2 y) (*.f64 y x)) |
(*.f64 y x) |
(+.f64 (*.f64 -1/2 y) (*.f64 y x)) |
(+.f64 (*.f64 -1/2 y) (*.f64 y x)) |
(+.f64 (*.f64 -1/2 y) (*.f64 y x)) |
(*.f64 -1/2 y) |
(+.f64 (*.f64 (-.f64 y 1) x) (*.f64 -1/2 y)) |
(+.f64 (*.f64 (-.f64 y 1) x) (*.f64 -1/2 y)) |
(+.f64 (*.f64 (-.f64 y 1) x) (*.f64 -1/2 y)) |
(*.f64 (-.f64 y 1) x) |
(+.f64 (*.f64 -1/2 y) (*.f64 (-.f64 y 1) x)) |
(+.f64 (*.f64 -1/2 y) (*.f64 (-.f64 y 1) x)) |
(+.f64 (*.f64 -1/2 y) (*.f64 (-.f64 y 1) x)) |
(*.f64 -1 (*.f64 (+.f64 1 (*.f64 -1 y)) x)) |
(+.f64 (*.f64 -1/2 y) (*.f64 -1 (*.f64 (+.f64 1 (*.f64 -1 y)) x))) |
(+.f64 (*.f64 -1/2 y) (*.f64 -1 (*.f64 (+.f64 1 (*.f64 -1 y)) x))) |
(+.f64 (*.f64 -1/2 y) (*.f64 -1 (*.f64 (+.f64 1 (*.f64 -1 y)) x))) |
(*.f64 -1 x) |
(+.f64 (*.f64 y (-.f64 x 1/2)) (*.f64 -1 x)) |
(+.f64 (*.f64 y (-.f64 x 1/2)) (*.f64 -1 x)) |
(+.f64 (*.f64 y (-.f64 x 1/2)) (*.f64 -1 x)) |
(*.f64 y (-.f64 x 1/2)) |
(+.f64 (*.f64 -1 x) (*.f64 y (-.f64 x 1/2))) |
(+.f64 (*.f64 -1 x) (*.f64 y (-.f64 x 1/2))) |
(+.f64 (*.f64 -1 x) (*.f64 y (-.f64 x 1/2))) |
(*.f64 y (-.f64 x 1/2)) |
(+.f64 (*.f64 -1 x) (*.f64 y (-.f64 x 1/2))) |
(+.f64 (*.f64 -1 x) (*.f64 y (-.f64 x 1/2))) |
(+.f64 (*.f64 -1 x) (*.f64 y (-.f64 x 1/2))) |
(+.f64 (*.f64 y (+.f64 x -1/2)) 0) |
(+.f64 0 (*.f64 y (+.f64 x -1/2))) |
(+.f64 (*.f64 (+.f64 x -1/2) (*.f64 y 1/2)) (*.f64 (+.f64 x -1/2) (*.f64 y 1/2))) |
(-.f64 (*.f64 y (+.f64 x -1/2)) 0) |
(/.f64 (*.f64 y (+.f64 x -1/2)) 1) |
(/.f64 (*.f64 (+.f64 x -1/2) (+.f64 y y)) 2) |
(/.f64 (*.f64 y (*.f64 (+.f64 x -1/2) 4)) 4) |
(/.f64 (*.f64 (*.f64 y (+.f64 x -1/2)) 8) 8) |
(/.f64 (*.f64 2 (*.f64 (*.f64 y (+.f64 x -1/2)) 8)) 16) |
(/.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 y (+.f64 x -1/2)) 8)) (*.f64 2 (*.f64 (*.f64 y (+.f64 x -1/2)) 8))) 32) |
(-.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) (neg.f64 x)) 0) |
(-.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) (-.f64 1 x)) 1) |
(*.f64 1/2 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) (neg.f64 x)) 2)) |
(*.f64 1/2 (+.f64 (*.f64 x -2) (*.f64 (+.f64 x -1/2) (+.f64 y y)))) |
(*.f64 1/2 (+.f64 (*.f64 (+.f64 x -1/2) (+.f64 y y)) (*.f64 x -2))) |
(*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) (neg.f64 x)) 1) |
(*.f64 1 (+.f64 (*.f64 y (+.f64 x -1/2)) (neg.f64 x))) |
(*.f64 2 (*.f64 1/2 (+.f64 (*.f64 y (+.f64 x -1/2)) (neg.f64 x)))) |
(*.f64 2 (+.f64 (*.f64 x -1/2) (*.f64 (+.f64 x -1/2) (*.f64 y 1/2)))) |
(*.f64 2 (+.f64 (*.f64 (+.f64 x -1/2) (*.f64 y 1/2)) (*.f64 x -1/2))) |
(*.f64 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) (neg.f64 x)) 2) 1/2) |
(*.f64 4 (/.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) (neg.f64 x)) 4)) |
(*.f64 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) (neg.f64 x)) 4) 1/4) |
(*.f64 (*.f64 1/2 (+.f64 (*.f64 y (+.f64 x -1/2)) (neg.f64 x))) 2) |
(*.f64 1/4 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) (neg.f64 x)) 4)) |
(*.f64 (/.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) (neg.f64 x)) 4) 4) |
(/.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) (neg.f64 x)) 1) |
(/.f64 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) (neg.f64 x)) 2) 2) |
(/.f64 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) (neg.f64 x)) 4) 4) |
(/.f64 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) (neg.f64 x)) 8) 8) |
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) (neg.f64 x)) 8)) 16) |
(/.f64 (+.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) (neg.f64 x)) 8)) (*.f64 2 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) (neg.f64 x)) 8))) 32) |
| Outputs |
|---|
(*.f64 -1/2 y) |
(+.f64 (*.f64 -1/2 y) (*.f64 y x)) |
(*.f64 y (+.f64 -1/2 x)) |
(+.f64 (*.f64 -1/2 y) (*.f64 y x)) |
(*.f64 y (+.f64 -1/2 x)) |
(+.f64 (*.f64 -1/2 y) (*.f64 y x)) |
(*.f64 y (+.f64 -1/2 x)) |
(*.f64 y x) |
(+.f64 (*.f64 -1/2 y) (*.f64 y x)) |
(*.f64 y (+.f64 -1/2 x)) |
(+.f64 (*.f64 -1/2 y) (*.f64 y x)) |
(*.f64 y (+.f64 -1/2 x)) |
(+.f64 (*.f64 -1/2 y) (*.f64 y x)) |
(*.f64 y (+.f64 -1/2 x)) |
(*.f64 y x) |
(+.f64 (*.f64 -1/2 y) (*.f64 y x)) |
(*.f64 y (+.f64 -1/2 x)) |
(+.f64 (*.f64 -1/2 y) (*.f64 y x)) |
(*.f64 y (+.f64 -1/2 x)) |
(+.f64 (*.f64 -1/2 y) (*.f64 y x)) |
(*.f64 y (+.f64 -1/2 x)) |
(*.f64 -1/2 y) |
(+.f64 (*.f64 (-.f64 y 1) x) (*.f64 -1/2 y)) |
(+.f64 (*.f64 -1/2 y) (*.f64 x (+.f64 y -1))) |
(+.f64 (*.f64 y (+.f64 -1/2 x)) (neg.f64 x)) |
(+.f64 (*.f64 (-.f64 y 1) x) (*.f64 -1/2 y)) |
(+.f64 (*.f64 -1/2 y) (*.f64 x (+.f64 y -1))) |
(+.f64 (*.f64 y (+.f64 -1/2 x)) (neg.f64 x)) |
(+.f64 (*.f64 (-.f64 y 1) x) (*.f64 -1/2 y)) |
(+.f64 (*.f64 -1/2 y) (*.f64 x (+.f64 y -1))) |
(+.f64 (*.f64 y (+.f64 -1/2 x)) (neg.f64 x)) |
(*.f64 (-.f64 y 1) x) |
(*.f64 x (+.f64 y -1)) |
(+.f64 (*.f64 -1/2 y) (*.f64 (-.f64 y 1) x)) |
(+.f64 (*.f64 -1/2 y) (*.f64 x (+.f64 y -1))) |
(+.f64 (*.f64 y (+.f64 -1/2 x)) (neg.f64 x)) |
(+.f64 (*.f64 -1/2 y) (*.f64 (-.f64 y 1) x)) |
(+.f64 (*.f64 -1/2 y) (*.f64 x (+.f64 y -1))) |
(+.f64 (*.f64 y (+.f64 -1/2 x)) (neg.f64 x)) |
(+.f64 (*.f64 -1/2 y) (*.f64 (-.f64 y 1) x)) |
(+.f64 (*.f64 -1/2 y) (*.f64 x (+.f64 y -1))) |
(+.f64 (*.f64 y (+.f64 -1/2 x)) (neg.f64 x)) |
(*.f64 -1 (*.f64 (+.f64 1 (*.f64 -1 y)) x)) |
(*.f64 x (+.f64 y -1)) |
(+.f64 (*.f64 -1/2 y) (*.f64 -1 (*.f64 (+.f64 1 (*.f64 -1 y)) x))) |
(+.f64 (*.f64 -1/2 y) (*.f64 x (+.f64 y -1))) |
(+.f64 (*.f64 y (+.f64 -1/2 x)) (neg.f64 x)) |
(+.f64 (*.f64 -1/2 y) (*.f64 -1 (*.f64 (+.f64 1 (*.f64 -1 y)) x))) |
(+.f64 (*.f64 -1/2 y) (*.f64 x (+.f64 y -1))) |
(+.f64 (*.f64 y (+.f64 -1/2 x)) (neg.f64 x)) |
(+.f64 (*.f64 -1/2 y) (*.f64 -1 (*.f64 (+.f64 1 (*.f64 -1 y)) x))) |
(+.f64 (*.f64 -1/2 y) (*.f64 x (+.f64 y -1))) |
(+.f64 (*.f64 y (+.f64 -1/2 x)) (neg.f64 x)) |
(*.f64 -1 x) |
(neg.f64 x) |
(+.f64 (*.f64 y (-.f64 x 1/2)) (*.f64 -1 x)) |
(+.f64 (*.f64 y (-.f64 x 1/2)) (neg.f64 x)) |
(+.f64 (*.f64 y (-.f64 x 1/2)) (*.f64 -1 x)) |
(+.f64 (*.f64 y (-.f64 x 1/2)) (neg.f64 x)) |
(+.f64 (*.f64 y (-.f64 x 1/2)) (*.f64 -1 x)) |
(+.f64 (*.f64 y (-.f64 x 1/2)) (neg.f64 x)) |
(*.f64 y (-.f64 x 1/2)) |
(+.f64 (*.f64 -1 x) (*.f64 y (-.f64 x 1/2))) |
(+.f64 (*.f64 y (-.f64 x 1/2)) (neg.f64 x)) |
(+.f64 (*.f64 -1 x) (*.f64 y (-.f64 x 1/2))) |
(+.f64 (*.f64 y (-.f64 x 1/2)) (neg.f64 x)) |
(+.f64 (*.f64 -1 x) (*.f64 y (-.f64 x 1/2))) |
(+.f64 (*.f64 y (-.f64 x 1/2)) (neg.f64 x)) |
(*.f64 y (-.f64 x 1/2)) |
(+.f64 (*.f64 -1 x) (*.f64 y (-.f64 x 1/2))) |
(+.f64 (*.f64 y (-.f64 x 1/2)) (neg.f64 x)) |
(+.f64 (*.f64 -1 x) (*.f64 y (-.f64 x 1/2))) |
(+.f64 (*.f64 y (-.f64 x 1/2)) (neg.f64 x)) |
(+.f64 (*.f64 -1 x) (*.f64 y (-.f64 x 1/2))) |
(+.f64 (*.f64 y (-.f64 x 1/2)) (neg.f64 x)) |
(+.f64 (*.f64 y (+.f64 x -1/2)) 0) |
(+.f64 (*.f64 -1/2 y) (*.f64 y x)) |
(*.f64 y (+.f64 -1/2 x)) |
(+.f64 0 (*.f64 y (+.f64 x -1/2))) |
(+.f64 (*.f64 -1/2 y) (*.f64 y x)) |
(*.f64 y (+.f64 -1/2 x)) |
(+.f64 (*.f64 (+.f64 x -1/2) (*.f64 y 1/2)) (*.f64 (+.f64 x -1/2) (*.f64 y 1/2))) |
(+.f64 (*.f64 -1/2 y) (*.f64 y x)) |
(*.f64 y (+.f64 -1/2 x)) |
(-.f64 (*.f64 y (+.f64 x -1/2)) 0) |
(+.f64 (*.f64 -1/2 y) (*.f64 y x)) |
(*.f64 y (+.f64 -1/2 x)) |
(/.f64 (*.f64 y (+.f64 x -1/2)) 1) |
(+.f64 (*.f64 -1/2 y) (*.f64 y x)) |
(*.f64 y (+.f64 -1/2 x)) |
(/.f64 (*.f64 (+.f64 x -1/2) (+.f64 y y)) 2) |
(+.f64 (*.f64 -1/2 y) (*.f64 y x)) |
(*.f64 y (+.f64 -1/2 x)) |
(/.f64 (*.f64 y (*.f64 (+.f64 x -1/2) 4)) 4) |
(+.f64 (*.f64 -1/2 y) (*.f64 y x)) |
(*.f64 y (+.f64 -1/2 x)) |
(/.f64 (*.f64 (*.f64 y (+.f64 x -1/2)) 8) 8) |
(+.f64 (*.f64 -1/2 y) (*.f64 y x)) |
(*.f64 y (+.f64 -1/2 x)) |
(/.f64 (*.f64 2 (*.f64 (*.f64 y (+.f64 x -1/2)) 8)) 16) |
(+.f64 (*.f64 -1/2 y) (*.f64 y x)) |
(*.f64 y (+.f64 -1/2 x)) |
(/.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 y (+.f64 x -1/2)) 8)) (*.f64 2 (*.f64 (*.f64 y (+.f64 x -1/2)) 8))) 32) |
(+.f64 (*.f64 -1/2 y) (*.f64 y x)) |
(*.f64 y (+.f64 -1/2 x)) |
(-.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) (neg.f64 x)) 0) |
(+.f64 (*.f64 -1/2 y) (*.f64 x (+.f64 y -1))) |
(+.f64 (*.f64 y (+.f64 -1/2 x)) (neg.f64 x)) |
(-.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) (-.f64 1 x)) 1) |
(+.f64 (*.f64 -1/2 y) (*.f64 x (+.f64 y -1))) |
(+.f64 (*.f64 y (+.f64 -1/2 x)) (neg.f64 x)) |
(*.f64 1/2 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) (neg.f64 x)) 2)) |
(+.f64 (*.f64 -1/2 y) (*.f64 x (+.f64 y -1))) |
(+.f64 (*.f64 y (+.f64 -1/2 x)) (neg.f64 x)) |
(*.f64 1/2 (+.f64 (*.f64 x -2) (*.f64 (+.f64 x -1/2) (+.f64 y y)))) |
(+.f64 (*.f64 -1/2 y) (*.f64 x (+.f64 y -1))) |
(+.f64 (*.f64 y (+.f64 -1/2 x)) (neg.f64 x)) |
(*.f64 1/2 (+.f64 (*.f64 (+.f64 x -1/2) (+.f64 y y)) (*.f64 x -2))) |
(+.f64 (*.f64 -1/2 y) (*.f64 x (+.f64 y -1))) |
(+.f64 (*.f64 y (+.f64 -1/2 x)) (neg.f64 x)) |
(*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) (neg.f64 x)) 1) |
(+.f64 (*.f64 -1/2 y) (*.f64 x (+.f64 y -1))) |
(+.f64 (*.f64 y (+.f64 -1/2 x)) (neg.f64 x)) |
(*.f64 1 (+.f64 (*.f64 y (+.f64 x -1/2)) (neg.f64 x))) |
(+.f64 (*.f64 -1/2 y) (*.f64 x (+.f64 y -1))) |
(+.f64 (*.f64 y (+.f64 -1/2 x)) (neg.f64 x)) |
(*.f64 2 (*.f64 1/2 (+.f64 (*.f64 y (+.f64 x -1/2)) (neg.f64 x)))) |
(+.f64 (*.f64 -1/2 y) (*.f64 x (+.f64 y -1))) |
(+.f64 (*.f64 y (+.f64 -1/2 x)) (neg.f64 x)) |
(*.f64 2 (+.f64 (*.f64 x -1/2) (*.f64 (+.f64 x -1/2) (*.f64 y 1/2)))) |
(*.f64 2 (+.f64 (*.f64 y (*.f64 1/2 (+.f64 -1/2 x))) (*.f64 -1/2 x))) |
(*.f64 2 (+.f64 (*.f64 (+.f64 -1/2 x) (*.f64 y 1/2)) (*.f64 -1/2 x))) |
(*.f64 2 (+.f64 (*.f64 1/2 (*.f64 y (+.f64 -1/2 x))) (*.f64 -1/2 x))) |
(*.f64 2 (+.f64 (*.f64 (+.f64 x -1/2) (*.f64 y 1/2)) (*.f64 x -1/2))) |
(*.f64 2 (+.f64 (*.f64 y (*.f64 1/2 (+.f64 -1/2 x))) (*.f64 -1/2 x))) |
(*.f64 2 (+.f64 (*.f64 (+.f64 -1/2 x) (*.f64 y 1/2)) (*.f64 -1/2 x))) |
(*.f64 2 (+.f64 (*.f64 1/2 (*.f64 y (+.f64 -1/2 x))) (*.f64 -1/2 x))) |
(*.f64 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) (neg.f64 x)) 2) 1/2) |
(+.f64 (*.f64 -1/2 y) (*.f64 x (+.f64 y -1))) |
(+.f64 (*.f64 y (+.f64 -1/2 x)) (neg.f64 x)) |
(*.f64 4 (/.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) (neg.f64 x)) 4)) |
(+.f64 (*.f64 -1/2 y) (*.f64 x (+.f64 y -1))) |
(+.f64 (*.f64 y (+.f64 -1/2 x)) (neg.f64 x)) |
(*.f64 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) (neg.f64 x)) 4) 1/4) |
(+.f64 (*.f64 -1/2 y) (*.f64 x (+.f64 y -1))) |
(+.f64 (*.f64 y (+.f64 -1/2 x)) (neg.f64 x)) |
(*.f64 (*.f64 1/2 (+.f64 (*.f64 y (+.f64 x -1/2)) (neg.f64 x))) 2) |
(+.f64 (*.f64 -1/2 y) (*.f64 x (+.f64 y -1))) |
(+.f64 (*.f64 y (+.f64 -1/2 x)) (neg.f64 x)) |
(*.f64 1/4 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) (neg.f64 x)) 4)) |
(+.f64 (*.f64 -1/2 y) (*.f64 x (+.f64 y -1))) |
(+.f64 (*.f64 y (+.f64 -1/2 x)) (neg.f64 x)) |
(*.f64 (/.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) (neg.f64 x)) 4) 4) |
(+.f64 (*.f64 -1/2 y) (*.f64 x (+.f64 y -1))) |
(+.f64 (*.f64 y (+.f64 -1/2 x)) (neg.f64 x)) |
(/.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) (neg.f64 x)) 1) |
(+.f64 (*.f64 -1/2 y) (*.f64 x (+.f64 y -1))) |
(+.f64 (*.f64 y (+.f64 -1/2 x)) (neg.f64 x)) |
(/.f64 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) (neg.f64 x)) 2) 2) |
(+.f64 (*.f64 -1/2 y) (*.f64 x (+.f64 y -1))) |
(+.f64 (*.f64 y (+.f64 -1/2 x)) (neg.f64 x)) |
(/.f64 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) (neg.f64 x)) 4) 4) |
(+.f64 (*.f64 -1/2 y) (*.f64 x (+.f64 y -1))) |
(+.f64 (*.f64 y (+.f64 -1/2 x)) (neg.f64 x)) |
(/.f64 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) (neg.f64 x)) 8) 8) |
(+.f64 (*.f64 -1/2 y) (*.f64 x (+.f64 y -1))) |
(+.f64 (*.f64 y (+.f64 -1/2 x)) (neg.f64 x)) |
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) (neg.f64 x)) 8)) 16) |
(+.f64 (*.f64 -1/2 y) (*.f64 x (+.f64 y -1))) |
(+.f64 (*.f64 y (+.f64 -1/2 x)) (neg.f64 x)) |
(/.f64 (+.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) (neg.f64 x)) 8)) (*.f64 2 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) (neg.f64 x)) 8))) 32) |
(+.f64 (*.f64 -1/2 y) (*.f64 x (+.f64 y -1))) |
(+.f64 (*.f64 y (+.f64 -1/2 x)) (neg.f64 x)) |
Compiled 10 to 6 computations (40% saved)
Compiled 13 to 10 computations (23.1% saved)
Found 2 expressions with local error:
| New | Error | Program |
|---|---|---|
| ✓ | 0.0b | (+.f64 (*.f64 y (-.f64 x 1/2)) 918938533204673/1000000000000000) |
| 0.0b | (*.f64 y (-.f64 x 1/2)) |
Compiled 21 to 14 computations (33.3% saved)
6 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 1.0ms | x | @ | -inf | (+.f64 (*.f64 y (-.f64 x 1/2)) 918938533204673/1000000000000000) |
| 0.0ms | x | @ | 0 | (+.f64 (*.f64 y (-.f64 x 1/2)) 918938533204673/1000000000000000) |
| 0.0ms | x | @ | inf | (+.f64 (*.f64 y (-.f64 x 1/2)) 918938533204673/1000000000000000) |
| 0.0ms | y | @ | 0 | (+.f64 (*.f64 y (-.f64 x 1/2)) 918938533204673/1000000000000000) |
| 0.0ms | y | @ | inf | (+.f64 (*.f64 y (-.f64 x 1/2)) 918938533204673/1000000000000000) |
| 1× | batch-egg-rewrite |
| 1694× | bool.json-1 |
| 1694× | bool.json-2 |
| 1654× | rational.json-1 |
| 1654× | rational.json-2 |
| 1208× | rational.json-simplify-35 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 9 | 19 |
| 1 | 88 | 19 |
| 2 | 227 | 19 |
| 3 | 459 | 19 |
| 4 | 941 | 19 |
| 5 | 2041 | 19 |
| 6 | 4170 | 19 |
| 7 | 6702 | 19 |
| 1× | node limit |
| Inputs |
|---|
(+.f64 (*.f64 y (-.f64 x 1/2)) 918938533204673/1000000000000000) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 1/2 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 1/2 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 8))) (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000)))))) (#(struct:change #<rule egg-rr> (2) ((x and (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000))))) (#(struct:change #<rule egg-rr> (2) ((x or (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000)))))) |
| 1× | egg-herbie |
| 4212× | rational.json-simplify-1 |
| 3396× | rational.json-simplify-41 |
| 1868× | rational.json-simplify-35 |
| 1796× | rational.json-simplify-2 |
| 1214× | rational.json-simplify-49 |
Useful iterations: 1 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 53 | 900 |
| 1 | 108 | 738 |
| 2 | 274 | 738 |
| 3 | 711 | 738 |
| 4 | 1228 | 738 |
| 5 | 2062 | 738 |
| 6 | 2435 | 738 |
| 7 | 2470 | 738 |
| 8 | 2504 | 738 |
| 9 | 2537 | 738 |
| 10 | 2567 | 738 |
| 11 | 2597 | 738 |
| 12 | 2636 | 738 |
| 13 | 2666 | 738 |
| 14 | 2696 | 738 |
| 15 | 2726 | 738 |
| 16 | 2756 | 738 |
| 17 | 2786 | 738 |
| 18 | 2816 | 738 |
| 19 | 3706 | 738 |
| 20 | 6550 | 738 |
| 21 | 6602 | 738 |
| 22 | 6655 | 738 |
| 23 | 6700 | 738 |
| 24 | 6740 | 738 |
| 25 | 6778 | 738 |
| 26 | 6815 | 738 |
| 27 | 6850 | 738 |
| 28 | 6883 | 738 |
| 29 | 6916 | 738 |
| 30 | 6949 | 738 |
| 31 | 6982 | 738 |
| 32 | 7015 | 738 |
| 33 | 7048 | 738 |
| 34 | 7081 | 738 |
| 35 | 7114 | 738 |
| 1× | node limit |
| Inputs |
|---|
918938533204673/1000000000000000 |
(+.f64 918938533204673/1000000000000000 (*.f64 y (-.f64 x 1/2))) |
(+.f64 918938533204673/1000000000000000 (*.f64 y (-.f64 x 1/2))) |
(+.f64 918938533204673/1000000000000000 (*.f64 y (-.f64 x 1/2))) |
(*.f64 y (-.f64 x 1/2)) |
(+.f64 918938533204673/1000000000000000 (*.f64 y (-.f64 x 1/2))) |
(+.f64 918938533204673/1000000000000000 (*.f64 y (-.f64 x 1/2))) |
(+.f64 918938533204673/1000000000000000 (*.f64 y (-.f64 x 1/2))) |
(*.f64 y (-.f64 x 1/2)) |
(+.f64 918938533204673/1000000000000000 (*.f64 y (-.f64 x 1/2))) |
(+.f64 918938533204673/1000000000000000 (*.f64 y (-.f64 x 1/2))) |
(+.f64 918938533204673/1000000000000000 (*.f64 y (-.f64 x 1/2))) |
(+.f64 918938533204673/1000000000000000 (*.f64 -1/2 y)) |
(+.f64 (*.f64 -1/2 y) (+.f64 918938533204673/1000000000000000 (*.f64 y x))) |
(+.f64 (*.f64 -1/2 y) (+.f64 918938533204673/1000000000000000 (*.f64 y x))) |
(+.f64 (*.f64 -1/2 y) (+.f64 918938533204673/1000000000000000 (*.f64 y x))) |
(*.f64 y x) |
(+.f64 (*.f64 -1/2 y) (+.f64 918938533204673/1000000000000000 (*.f64 y x))) |
(+.f64 (*.f64 -1/2 y) (+.f64 918938533204673/1000000000000000 (*.f64 y x))) |
(+.f64 (*.f64 -1/2 y) (+.f64 918938533204673/1000000000000000 (*.f64 y x))) |
(*.f64 y x) |
(+.f64 (*.f64 -1/2 y) (+.f64 918938533204673/1000000000000000 (*.f64 y x))) |
(+.f64 (*.f64 -1/2 y) (+.f64 918938533204673/1000000000000000 (*.f64 y x))) |
(+.f64 (*.f64 -1/2 y) (+.f64 918938533204673/1000000000000000 (*.f64 y x))) |
(-.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 0) |
(*.f64 1/2 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 2)) |
(*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 1) |
(*.f64 1 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000)) |
(*.f64 2 (*.f64 1/2 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000))) |
(*.f64 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 2) 1/2) |
(*.f64 4 (/.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 4)) |
(*.f64 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 4) 1/4) |
(*.f64 (*.f64 1/2 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000)) 2) |
(*.f64 1/4 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 4)) |
(*.f64 (/.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 4) 4) |
(/.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 1) |
(/.f64 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 2) 2) |
(/.f64 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 4) 4) |
(/.f64 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 8) 8) |
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 8)) 16) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 8))) 32) |
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 8))) (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 8)))) 64) |
| Outputs |
|---|
918938533204673/1000000000000000 |
(+.f64 918938533204673/1000000000000000 (*.f64 y (-.f64 x 1/2))) |
(+.f64 918938533204673/1000000000000000 (*.f64 y (-.f64 x 1/2))) |
(+.f64 918938533204673/1000000000000000 (*.f64 y (-.f64 x 1/2))) |
(*.f64 y (-.f64 x 1/2)) |
(+.f64 918938533204673/1000000000000000 (*.f64 y (-.f64 x 1/2))) |
(+.f64 918938533204673/1000000000000000 (*.f64 y (-.f64 x 1/2))) |
(+.f64 918938533204673/1000000000000000 (*.f64 y (-.f64 x 1/2))) |
(*.f64 y (-.f64 x 1/2)) |
(+.f64 918938533204673/1000000000000000 (*.f64 y (-.f64 x 1/2))) |
(+.f64 918938533204673/1000000000000000 (*.f64 y (-.f64 x 1/2))) |
(+.f64 918938533204673/1000000000000000 (*.f64 y (-.f64 x 1/2))) |
(+.f64 918938533204673/1000000000000000 (*.f64 -1/2 y)) |
(+.f64 918938533204673/1000000000000000 (*.f64 y -1/2)) |
(+.f64 (*.f64 -1/2 y) (+.f64 918938533204673/1000000000000000 (*.f64 y x))) |
(+.f64 (*.f64 y -1/2) (+.f64 918938533204673/1000000000000000 (*.f64 y x))) |
(+.f64 918938533204673/1000000000000000 (*.f64 y (+.f64 x -1/2))) |
(+.f64 (*.f64 -1/2 y) (+.f64 918938533204673/1000000000000000 (*.f64 y x))) |
(+.f64 (*.f64 y -1/2) (+.f64 918938533204673/1000000000000000 (*.f64 y x))) |
(+.f64 918938533204673/1000000000000000 (*.f64 y (+.f64 x -1/2))) |
(+.f64 (*.f64 -1/2 y) (+.f64 918938533204673/1000000000000000 (*.f64 y x))) |
(+.f64 (*.f64 y -1/2) (+.f64 918938533204673/1000000000000000 (*.f64 y x))) |
(+.f64 918938533204673/1000000000000000 (*.f64 y (+.f64 x -1/2))) |
(*.f64 y x) |
(+.f64 (*.f64 -1/2 y) (+.f64 918938533204673/1000000000000000 (*.f64 y x))) |
(+.f64 (*.f64 y -1/2) (+.f64 918938533204673/1000000000000000 (*.f64 y x))) |
(+.f64 918938533204673/1000000000000000 (*.f64 y (+.f64 x -1/2))) |
(+.f64 (*.f64 -1/2 y) (+.f64 918938533204673/1000000000000000 (*.f64 y x))) |
(+.f64 (*.f64 y -1/2) (+.f64 918938533204673/1000000000000000 (*.f64 y x))) |
(+.f64 918938533204673/1000000000000000 (*.f64 y (+.f64 x -1/2))) |
(+.f64 (*.f64 -1/2 y) (+.f64 918938533204673/1000000000000000 (*.f64 y x))) |
(+.f64 (*.f64 y -1/2) (+.f64 918938533204673/1000000000000000 (*.f64 y x))) |
(+.f64 918938533204673/1000000000000000 (*.f64 y (+.f64 x -1/2))) |
(*.f64 y x) |
(+.f64 (*.f64 -1/2 y) (+.f64 918938533204673/1000000000000000 (*.f64 y x))) |
(+.f64 (*.f64 y -1/2) (+.f64 918938533204673/1000000000000000 (*.f64 y x))) |
(+.f64 918938533204673/1000000000000000 (*.f64 y (+.f64 x -1/2))) |
(+.f64 (*.f64 -1/2 y) (+.f64 918938533204673/1000000000000000 (*.f64 y x))) |
(+.f64 (*.f64 y -1/2) (+.f64 918938533204673/1000000000000000 (*.f64 y x))) |
(+.f64 918938533204673/1000000000000000 (*.f64 y (+.f64 x -1/2))) |
(+.f64 (*.f64 -1/2 y) (+.f64 918938533204673/1000000000000000 (*.f64 y x))) |
(+.f64 (*.f64 y -1/2) (+.f64 918938533204673/1000000000000000 (*.f64 y x))) |
(+.f64 918938533204673/1000000000000000 (*.f64 y (+.f64 x -1/2))) |
(-.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 0) |
(+.f64 (*.f64 y -1/2) (+.f64 918938533204673/1000000000000000 (*.f64 y x))) |
(+.f64 918938533204673/1000000000000000 (*.f64 y (+.f64 x -1/2))) |
(*.f64 1/2 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 2)) |
(+.f64 (*.f64 y -1/2) (+.f64 918938533204673/1000000000000000 (*.f64 y x))) |
(+.f64 918938533204673/1000000000000000 (*.f64 y (+.f64 x -1/2))) |
(*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 1) |
(+.f64 (*.f64 y -1/2) (+.f64 918938533204673/1000000000000000 (*.f64 y x))) |
(+.f64 918938533204673/1000000000000000 (*.f64 y (+.f64 x -1/2))) |
(*.f64 1 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000)) |
(+.f64 (*.f64 y -1/2) (+.f64 918938533204673/1000000000000000 (*.f64 y x))) |
(+.f64 918938533204673/1000000000000000 (*.f64 y (+.f64 x -1/2))) |
(*.f64 2 (*.f64 1/2 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000))) |
(+.f64 (*.f64 y -1/2) (+.f64 918938533204673/1000000000000000 (*.f64 y x))) |
(+.f64 918938533204673/1000000000000000 (*.f64 y (+.f64 x -1/2))) |
(*.f64 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 2) 1/2) |
(+.f64 (*.f64 y -1/2) (+.f64 918938533204673/1000000000000000 (*.f64 y x))) |
(+.f64 918938533204673/1000000000000000 (*.f64 y (+.f64 x -1/2))) |
(*.f64 4 (/.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 4)) |
(+.f64 (*.f64 y -1/2) (+.f64 918938533204673/1000000000000000 (*.f64 y x))) |
(+.f64 918938533204673/1000000000000000 (*.f64 y (+.f64 x -1/2))) |
(*.f64 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 4) 1/4) |
(+.f64 (*.f64 y -1/2) (+.f64 918938533204673/1000000000000000 (*.f64 y x))) |
(+.f64 918938533204673/1000000000000000 (*.f64 y (+.f64 x -1/2))) |
(*.f64 (*.f64 1/2 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000)) 2) |
(+.f64 (*.f64 y -1/2) (+.f64 918938533204673/1000000000000000 (*.f64 y x))) |
(+.f64 918938533204673/1000000000000000 (*.f64 y (+.f64 x -1/2))) |
(*.f64 1/4 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 4)) |
(+.f64 (*.f64 y -1/2) (+.f64 918938533204673/1000000000000000 (*.f64 y x))) |
(+.f64 918938533204673/1000000000000000 (*.f64 y (+.f64 x -1/2))) |
(*.f64 (/.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 4) 4) |
(+.f64 (*.f64 y -1/2) (+.f64 918938533204673/1000000000000000 (*.f64 y x))) |
(+.f64 918938533204673/1000000000000000 (*.f64 y (+.f64 x -1/2))) |
(/.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 1) |
(+.f64 (*.f64 y -1/2) (+.f64 918938533204673/1000000000000000 (*.f64 y x))) |
(+.f64 918938533204673/1000000000000000 (*.f64 y (+.f64 x -1/2))) |
(/.f64 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 2) 2) |
(+.f64 (*.f64 y -1/2) (+.f64 918938533204673/1000000000000000 (*.f64 y x))) |
(+.f64 918938533204673/1000000000000000 (*.f64 y (+.f64 x -1/2))) |
(/.f64 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 4) 4) |
(+.f64 (*.f64 y -1/2) (+.f64 918938533204673/1000000000000000 (*.f64 y x))) |
(+.f64 918938533204673/1000000000000000 (*.f64 y (+.f64 x -1/2))) |
(/.f64 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 8) 8) |
(+.f64 (*.f64 y -1/2) (+.f64 918938533204673/1000000000000000 (*.f64 y x))) |
(+.f64 918938533204673/1000000000000000 (*.f64 y (+.f64 x -1/2))) |
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 8)) 16) |
(+.f64 (*.f64 y -1/2) (+.f64 918938533204673/1000000000000000 (*.f64 y x))) |
(+.f64 918938533204673/1000000000000000 (*.f64 y (+.f64 x -1/2))) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 8))) 32) |
(+.f64 (*.f64 y -1/2) (+.f64 918938533204673/1000000000000000 (*.f64 y x))) |
(+.f64 918938533204673/1000000000000000 (*.f64 y (+.f64 x -1/2))) |
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 8))) (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 8)))) 64) |
(+.f64 (*.f64 y -1/2) (+.f64 918938533204673/1000000000000000 (*.f64 y x))) |
(+.f64 918938533204673/1000000000000000 (*.f64 y (+.f64 x -1/2))) |
Found 2 expressions with local error:
| New | Error | Program |
|---|---|---|
| ✓ | 0.0b | (+.f64 (*.f64 (-.f64 y 1) x) 918938533204673/1000000000000000) |
| ✓ | 0.0b | (*.f64 (-.f64 y 1) x) |
Compiled 21 to 14 computations (33.3% saved)
12 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 0.0ms | y | @ | 0 | (+.f64 (*.f64 (-.f64 y 1) x) 918938533204673/1000000000000000) |
| 0.0ms | x | @ | inf | (+.f64 (*.f64 (-.f64 y 1) x) 918938533204673/1000000000000000) |
| 0.0ms | y | @ | inf | (+.f64 (*.f64 (-.f64 y 1) x) 918938533204673/1000000000000000) |
| 0.0ms | y | @ | -inf | (+.f64 (*.f64 (-.f64 y 1) x) 918938533204673/1000000000000000) |
| 0.0ms | y | @ | 0 | (*.f64 (-.f64 y 1) x) |
| 1× | batch-egg-rewrite |
| 1962× | bool.json-1 |
| 1382× | rational.json-simplify-35 |
| 1258× | bool.json-2 |
| 1214× | rational.json-1 |
| 1214× | rational.json-2 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 9 | 32 |
| 1 | 98 | 32 |
| 2 | 283 | 32 |
| 3 | 544 | 32 |
| 4 | 1084 | 32 |
| 5 | 2380 | 32 |
| 6 | 4877 | 32 |
| 7 | 7731 | 32 |
| 1× | node limit |
| Inputs |
|---|
(*.f64 (-.f64 y 1) x) |
(+.f64 (*.f64 (-.f64 y 1) x) 918938533204673/1000000000000000) |
| Outputs |
|---|
((#(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 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 y -1) x) 8))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 y -1) x) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 (+.f64 y -1) x)))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 (+.f64 y -1) x) (*.f64 (+.f64 y -1) x))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 (+.f64 y -1) x) (*.f64 (+.f64 y -1) x)))))) |
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (*.f64 (+.f64 y -1) x) 918938533204673/1000000000000000) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 (*.f64 (+.f64 y -1) x) 918938533204673/1000000000000000))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 (+.f64 y -1) x) 918938533204673/1000000000000000) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (+.f64 (*.f64 (+.f64 y -1) x) 918938533204673/1000000000000000) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (+.f64 (*.f64 (+.f64 y -1) x) 918938533204673/1000000000000000) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 (+.f64 y -1) x) 918938533204673/1000000000000000) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 (+.f64 y -1) x) 918938533204673/1000000000000000) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (+.f64 (*.f64 (+.f64 y -1) x) 918938533204673/1000000000000000) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (+.f64 (*.f64 (+.f64 y -1) x) 918938533204673/1000000000000000) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 (+.f64 y -1) x) 918938533204673/1000000000000000) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 (*.f64 (+.f64 y -1) x) 918938533204673/1000000000000000) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 (+.f64 y -1) x) 918938533204673/1000000000000000) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 (+.f64 y -1) x) 918938533204673/1000000000000000) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 (+.f64 y -1) x) 918938533204673/1000000000000000) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 (+.f64 y -1) x) 918938533204673/1000000000000000) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 (+.f64 y -1) x) 918938533204673/1000000000000000) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 (+.f64 y -1) x) 918938533204673/1000000000000000) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 (+.f64 y -1) x) 918938533204673/1000000000000000) 8))) (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 (+.f64 y -1) x) 918938533204673/1000000000000000) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (+.f64 (*.f64 (+.f64 y -1) x) 918938533204673/1000000000000000)))))) (#(struct:change #<rule egg-rr> (2) ((x and (+.f64 (*.f64 (+.f64 y -1) x) 918938533204673/1000000000000000) (+.f64 (*.f64 (+.f64 y -1) x) 918938533204673/1000000000000000))))) (#(struct:change #<rule egg-rr> (2) ((x or (+.f64 (*.f64 (+.f64 y -1) x) 918938533204673/1000000000000000) (+.f64 (*.f64 (+.f64 y -1) x) 918938533204673/1000000000000000)))))) |
| 1× | egg-herbie |
| 6230× | rational.json-simplify-41 |
| 4066× | rational.json-simplify-35 |
| 1412× | rational.json-simplify-2 |
| 802× | rational.json-simplify-1 |
| 470× | rational.json-simplify-51 |
Useful iterations: 1 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 74 | 1292 |
| 1 | 162 | 958 |
| 2 | 416 | 958 |
| 3 | 1093 | 958 |
| 4 | 2262 | 958 |
| 5 | 2919 | 958 |
| 6 | 3212 | 958 |
| 7 | 3426 | 958 |
| 8 | 3583 | 958 |
| 9 | 3713 | 958 |
| 10 | 3830 | 958 |
| 11 | 3943 | 958 |
| 12 | 4209 | 958 |
| 13 | 4228 | 958 |
| 14 | 4260 | 958 |
| 15 | 4279 | 958 |
| 16 | 4302 | 958 |
| 17 | 4321 | 958 |
| 18 | 4439 | 958 |
| 19 | 4551 | 958 |
| 20 | 4663 | 958 |
| 21 | 4775 | 958 |
| 22 | 4887 | 958 |
| 23 | 4999 | 958 |
| 24 | 5111 | 958 |
| 25 | 5223 | 958 |
| 26 | 5335 | 958 |
| 27 | 5447 | 958 |
| 28 | 5559 | 958 |
| 29 | 5671 | 958 |
| 30 | 5671 | 958 |
| 1× | node limit |
| Inputs |
|---|
(*.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 918938533204673/1000000000000000 (*.f64 -1 x)) |
(+.f64 918938533204673/1000000000000000 (+.f64 (*.f64 y x) (*.f64 -1 x))) |
(+.f64 918938533204673/1000000000000000 (+.f64 (*.f64 y x) (*.f64 -1 x))) |
(+.f64 918938533204673/1000000000000000 (+.f64 (*.f64 y x) (*.f64 -1 x))) |
(*.f64 y x) |
(+.f64 918938533204673/1000000000000000 (+.f64 (*.f64 y x) (*.f64 -1 x))) |
(+.f64 918938533204673/1000000000000000 (+.f64 (*.f64 y x) (*.f64 -1 x))) |
(+.f64 918938533204673/1000000000000000 (+.f64 (*.f64 y x) (*.f64 -1 x))) |
(*.f64 y x) |
(+.f64 918938533204673/1000000000000000 (+.f64 (*.f64 y x) (*.f64 -1 x))) |
(+.f64 918938533204673/1000000000000000 (+.f64 (*.f64 y x) (*.f64 -1 x))) |
(+.f64 918938533204673/1000000000000000 (+.f64 (*.f64 y x) (*.f64 -1 x))) |
918938533204673/1000000000000000 |
(*.f64 (-.f64 y 1) x) |
(+.f64 918938533204673/1000000000000000 (*.f64 (-.f64 y 1) x)) |
(+.f64 918938533204673/1000000000000000 (*.f64 (-.f64 y 1) x)) |
(+.f64 918938533204673/1000000000000000 (*.f64 (-.f64 y 1) x)) |
(*.f64 (-.f64 y 1) x) |
(+.f64 918938533204673/1000000000000000 (*.f64 (-.f64 y 1) x)) |
(+.f64 918938533204673/1000000000000000 (*.f64 (-.f64 y 1) x)) |
(+.f64 918938533204673/1000000000000000 (*.f64 (-.f64 y 1) x)) |
(+.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 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 y -1) x) 8))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 y -1) x) 8)))) 64) |
(-.f64 (+.f64 (*.f64 (+.f64 y -1) x) 918938533204673/1000000000000000) 0) |
(*.f64 1 (+.f64 (*.f64 (+.f64 y -1) x) 918938533204673/1000000000000000)) |
(*.f64 (+.f64 (*.f64 (+.f64 y -1) x) 918938533204673/1000000000000000) 1) |
(*.f64 2 (*.f64 (+.f64 (*.f64 (+.f64 y -1) x) 918938533204673/1000000000000000) 1/2)) |
(*.f64 4 (/.f64 (+.f64 (*.f64 (+.f64 y -1) x) 918938533204673/1000000000000000) 4)) |
(*.f64 (*.f64 (+.f64 (*.f64 (+.f64 y -1) x) 918938533204673/1000000000000000) 2) 1/2) |
(*.f64 (*.f64 (+.f64 (*.f64 (+.f64 y -1) x) 918938533204673/1000000000000000) 4) 1/4) |
(*.f64 1/2 (*.f64 (+.f64 (*.f64 (+.f64 y -1) x) 918938533204673/1000000000000000) 2)) |
(*.f64 1/4 (*.f64 (+.f64 (*.f64 (+.f64 y -1) x) 918938533204673/1000000000000000) 4)) |
(*.f64 (*.f64 (+.f64 (*.f64 (+.f64 y -1) x) 918938533204673/1000000000000000) 1/2) 2) |
(*.f64 (/.f64 (+.f64 (*.f64 (+.f64 y -1) x) 918938533204673/1000000000000000) 4) 4) |
(/.f64 (+.f64 (*.f64 (+.f64 y -1) x) 918938533204673/1000000000000000) 1) |
(/.f64 (*.f64 (+.f64 (*.f64 (+.f64 y -1) x) 918938533204673/1000000000000000) 2) 2) |
(/.f64 (*.f64 (+.f64 (*.f64 (+.f64 y -1) x) 918938533204673/1000000000000000) 4) 4) |
(/.f64 (*.f64 (+.f64 (*.f64 (+.f64 y -1) x) 918938533204673/1000000000000000) 8) 8) |
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 (+.f64 y -1) x) 918938533204673/1000000000000000) 8)) 16) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 (+.f64 y -1) x) 918938533204673/1000000000000000) 8))) 32) |
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 (+.f64 y -1) x) 918938533204673/1000000000000000) 8))) (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 (+.f64 y -1) x) 918938533204673/1000000000000000) 8)))) 64) |
| Outputs |
|---|
(*.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 918938533204673/1000000000000000 (*.f64 -1 x)) |
(+.f64 (*.f64 -1 x) 918938533204673/1000000000000000) |
(+.f64 (neg.f64 x) 918938533204673/1000000000000000) |
(+.f64 918938533204673/1000000000000000 (+.f64 (*.f64 y x) (*.f64 -1 x))) |
(+.f64 (*.f64 x y) (+.f64 (*.f64 -1 x) 918938533204673/1000000000000000)) |
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 -1 y))) |
(+.f64 918938533204673/1000000000000000 (+.f64 (*.f64 y x) (*.f64 -1 x))) |
(+.f64 (*.f64 x y) (+.f64 (*.f64 -1 x) 918938533204673/1000000000000000)) |
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 -1 y))) |
(+.f64 918938533204673/1000000000000000 (+.f64 (*.f64 y x) (*.f64 -1 x))) |
(+.f64 (*.f64 x y) (+.f64 (*.f64 -1 x) 918938533204673/1000000000000000)) |
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 -1 y))) |
(*.f64 y x) |
(*.f64 x y) |
(+.f64 918938533204673/1000000000000000 (+.f64 (*.f64 y x) (*.f64 -1 x))) |
(+.f64 (*.f64 x y) (+.f64 (*.f64 -1 x) 918938533204673/1000000000000000)) |
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 -1 y))) |
(+.f64 918938533204673/1000000000000000 (+.f64 (*.f64 y x) (*.f64 -1 x))) |
(+.f64 (*.f64 x y) (+.f64 (*.f64 -1 x) 918938533204673/1000000000000000)) |
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 -1 y))) |
(+.f64 918938533204673/1000000000000000 (+.f64 (*.f64 y x) (*.f64 -1 x))) |
(+.f64 (*.f64 x y) (+.f64 (*.f64 -1 x) 918938533204673/1000000000000000)) |
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 -1 y))) |
(*.f64 y x) |
(*.f64 x y) |
(+.f64 918938533204673/1000000000000000 (+.f64 (*.f64 y x) (*.f64 -1 x))) |
(+.f64 (*.f64 x y) (+.f64 (*.f64 -1 x) 918938533204673/1000000000000000)) |
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 -1 y))) |
(+.f64 918938533204673/1000000000000000 (+.f64 (*.f64 y x) (*.f64 -1 x))) |
(+.f64 (*.f64 x y) (+.f64 (*.f64 -1 x) 918938533204673/1000000000000000)) |
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 -1 y))) |
(+.f64 918938533204673/1000000000000000 (+.f64 (*.f64 y x) (*.f64 -1 x))) |
(+.f64 (*.f64 x y) (+.f64 (*.f64 -1 x) 918938533204673/1000000000000000)) |
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 -1 y))) |
918938533204673/1000000000000000 |
(*.f64 (-.f64 y 1) x) |
(+.f64 (*.f64 -1 x) (*.f64 x y)) |
(*.f64 x (+.f64 -1 y)) |
(+.f64 918938533204673/1000000000000000 (*.f64 (-.f64 y 1) x)) |
(+.f64 (*.f64 x y) (+.f64 (*.f64 -1 x) 918938533204673/1000000000000000)) |
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 -1 y))) |
(+.f64 918938533204673/1000000000000000 (*.f64 (-.f64 y 1) x)) |
(+.f64 (*.f64 x y) (+.f64 (*.f64 -1 x) 918938533204673/1000000000000000)) |
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 -1 y))) |
(+.f64 918938533204673/1000000000000000 (*.f64 (-.f64 y 1) x)) |
(+.f64 (*.f64 x y) (+.f64 (*.f64 -1 x) 918938533204673/1000000000000000)) |
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 -1 y))) |
(*.f64 (-.f64 y 1) x) |
(+.f64 (*.f64 -1 x) (*.f64 x y)) |
(*.f64 x (+.f64 -1 y)) |
(+.f64 918938533204673/1000000000000000 (*.f64 (-.f64 y 1) x)) |
(+.f64 (*.f64 x y) (+.f64 (*.f64 -1 x) 918938533204673/1000000000000000)) |
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 -1 y))) |
(+.f64 918938533204673/1000000000000000 (*.f64 (-.f64 y 1) x)) |
(+.f64 (*.f64 x y) (+.f64 (*.f64 -1 x) 918938533204673/1000000000000000)) |
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 -1 y))) |
(+.f64 918938533204673/1000000000000000 (*.f64 (-.f64 y 1) x)) |
(+.f64 (*.f64 x y) (+.f64 (*.f64 -1 x) 918938533204673/1000000000000000)) |
(+.f64 918938533204673/1000000000000000 (*.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 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 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 y -1) x) 8))) (*.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 (*.f64 (+.f64 y -1) x) 918938533204673/1000000000000000) 0) |
(+.f64 (*.f64 x y) (+.f64 (*.f64 -1 x) 918938533204673/1000000000000000)) |
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 -1 y))) |
(*.f64 1 (+.f64 (*.f64 (+.f64 y -1) x) 918938533204673/1000000000000000)) |
(+.f64 (*.f64 x y) (+.f64 (*.f64 -1 x) 918938533204673/1000000000000000)) |
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 -1 y))) |
(*.f64 (+.f64 (*.f64 (+.f64 y -1) x) 918938533204673/1000000000000000) 1) |
(+.f64 (*.f64 x y) (+.f64 (*.f64 -1 x) 918938533204673/1000000000000000)) |
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 -1 y))) |
(*.f64 2 (*.f64 (+.f64 (*.f64 (+.f64 y -1) x) 918938533204673/1000000000000000) 1/2)) |
(+.f64 (*.f64 x y) (+.f64 (*.f64 -1 x) 918938533204673/1000000000000000)) |
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 -1 y))) |
(*.f64 4 (/.f64 (+.f64 (*.f64 (+.f64 y -1) x) 918938533204673/1000000000000000) 4)) |
(+.f64 (*.f64 x y) (+.f64 (*.f64 -1 x) 918938533204673/1000000000000000)) |
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 -1 y))) |
(*.f64 (*.f64 (+.f64 (*.f64 (+.f64 y -1) x) 918938533204673/1000000000000000) 2) 1/2) |
(+.f64 (*.f64 x y) (+.f64 (*.f64 -1 x) 918938533204673/1000000000000000)) |
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 -1 y))) |
(*.f64 (*.f64 (+.f64 (*.f64 (+.f64 y -1) x) 918938533204673/1000000000000000) 4) 1/4) |
(+.f64 (*.f64 x y) (+.f64 (*.f64 -1 x) 918938533204673/1000000000000000)) |
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 -1 y))) |
(*.f64 1/2 (*.f64 (+.f64 (*.f64 (+.f64 y -1) x) 918938533204673/1000000000000000) 2)) |
(+.f64 (*.f64 x y) (+.f64 (*.f64 -1 x) 918938533204673/1000000000000000)) |
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 -1 y))) |
(*.f64 1/4 (*.f64 (+.f64 (*.f64 (+.f64 y -1) x) 918938533204673/1000000000000000) 4)) |
(+.f64 (*.f64 x y) (+.f64 (*.f64 -1 x) 918938533204673/1000000000000000)) |
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 -1 y))) |
(*.f64 (*.f64 (+.f64 (*.f64 (+.f64 y -1) x) 918938533204673/1000000000000000) 1/2) 2) |
(+.f64 (*.f64 x y) (+.f64 (*.f64 -1 x) 918938533204673/1000000000000000)) |
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 -1 y))) |
(*.f64 (/.f64 (+.f64 (*.f64 (+.f64 y -1) x) 918938533204673/1000000000000000) 4) 4) |
(+.f64 (*.f64 x y) (+.f64 (*.f64 -1 x) 918938533204673/1000000000000000)) |
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 -1 y))) |
(/.f64 (+.f64 (*.f64 (+.f64 y -1) x) 918938533204673/1000000000000000) 1) |
(+.f64 (*.f64 x y) (+.f64 (*.f64 -1 x) 918938533204673/1000000000000000)) |
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 -1 y))) |
(/.f64 (*.f64 (+.f64 (*.f64 (+.f64 y -1) x) 918938533204673/1000000000000000) 2) 2) |
(+.f64 (*.f64 x y) (+.f64 (*.f64 -1 x) 918938533204673/1000000000000000)) |
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 -1 y))) |
(/.f64 (*.f64 (+.f64 (*.f64 (+.f64 y -1) x) 918938533204673/1000000000000000) 4) 4) |
(+.f64 (*.f64 x y) (+.f64 (*.f64 -1 x) 918938533204673/1000000000000000)) |
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 -1 y))) |
(/.f64 (*.f64 (+.f64 (*.f64 (+.f64 y -1) x) 918938533204673/1000000000000000) 8) 8) |
(+.f64 (*.f64 x y) (+.f64 (*.f64 -1 x) 918938533204673/1000000000000000)) |
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 -1 y))) |
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 (+.f64 y -1) x) 918938533204673/1000000000000000) 8)) 16) |
(+.f64 (*.f64 x y) (+.f64 (*.f64 -1 x) 918938533204673/1000000000000000)) |
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 -1 y))) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 (+.f64 y -1) x) 918938533204673/1000000000000000) 8))) 32) |
(+.f64 (*.f64 x y) (+.f64 (*.f64 -1 x) 918938533204673/1000000000000000)) |
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 -1 y))) |
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 (+.f64 y -1) x) 918938533204673/1000000000000000) 8))) (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 (+.f64 y -1) x) 918938533204673/1000000000000000) 8)))) 64) |
(+.f64 (*.f64 x y) (+.f64 (*.f64 -1 x) 918938533204673/1000000000000000)) |
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 -1 y))) |
Compiled 1552 to 1160 computations (25.3% saved)
8 alts after pruning (6 fresh and 2 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 134 | 5 | 139 |
| Fresh | 0 | 1 | 1 |
| Picked | 1 | 0 | 1 |
| Done | 2 | 2 | 4 |
| Total | 137 | 8 | 145 |
| Status | Error | Program |
|---|---|---|
| ▶ | 20.6b | (+.f64 (-.f64 (*.f64 y x) (*.f64 y 1/2)) 918938533204673/1000000000000000) |
| ▶ | 17.0b | (+.f64 (+.f64 (neg.f64 x) (*.f64 y x)) 918938533204673/1000000000000000) |
| ✓ | 28.2b | (+.f64 (*.f64 -1/2 y) 918938533204673/1000000000000000) |
| ✓ | 25.4b | (+.f64 (neg.f64 x) 918938533204673/1000000000000000) |
| ▶ | 35.0b | (*.f64 (-.f64 y 1) x) |
| ▶ | 38.3b | (*.f64 y (-.f64 x 1/2)) |
| ▶ | 54.9b | (*.f64 y x) |
| 44.8b | 918938533204673/1000000000000000 |
Compiled 96 to 70 computations (27.1% saved)
Found 2 expressions with local error:
| New | Error | Program |
|---|---|---|
| ✓ | 0.0b | (+.f64 (+.f64 (neg.f64 x) (*.f64 y x)) 918938533204673/1000000000000000) |
| ✓ | 0.0b | (+.f64 (neg.f64 x) (*.f64 y x)) |
Compiled 24 to 8 computations (66.7% saved)
12 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 3.0ms | y | @ | 0 | (+.f64 (neg.f64 x) (*.f64 y x)) |
| 0.0ms | x | @ | 0 | (+.f64 (neg.f64 x) (*.f64 y x)) |
| 0.0ms | x | @ | inf | (+.f64 (neg.f64 x) (*.f64 y x)) |
| 0.0ms | x | @ | -inf | (+.f64 (neg.f64 x) (*.f64 y x)) |
| 0.0ms | y | @ | -inf | (+.f64 (neg.f64 x) (*.f64 y x)) |
| 1× | batch-egg-rewrite |
| 1580× | bool.json-1 |
| 1580× | bool.json-2 |
| 1526× | rational.json-1 |
| 1526× | rational.json-2 |
| 1526× | rational.json-3 |
Useful iterations: 1 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 10 | 40 |
| 1 | 102 | 32 |
| 2 | 277 | 32 |
| 3 | 607 | 32 |
| 4 | 1394 | 32 |
| 5 | 3113 | 32 |
| 6 | 5905 | 32 |
| 1× | node limit |
| Inputs |
|---|
(+.f64 (neg.f64 x) (*.f64 y x)) |
(+.f64 (+.f64 (neg.f64 x) (*.f64 y x)) 918938533204673/1000000000000000) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 x (+.f64 y -1)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (*.f64 x y) (-.f64 1 x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (+.f64 y -1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x (+.f64 y -1)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 x (+.f64 y -1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (*.f64 x (+.f64 y -1)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (+.f64 (*.f64 x (*.f64 y 1/2)) (*.f64 x -1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (+.f64 (*.f64 x -1/2) (*.f64 x (*.f64 y 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 x (+.f64 y -1)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x x) (*.f64 (+.f64 y -1) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x x) (/.f64 (+.f64 y -1) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x x) (+.f64 (*.f64 y 1/2) -1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x x) (+.f64 -1/2 (*.f64 y 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 y -1) x)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (*.f64 x (+.f64 y -1)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 x (+.f64 y -1)) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (+.f64 y -1)) (*.f64 x 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (*.f64 x (+.f64 y -1)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (*.f64 x (+.f64 y y)) (*.f64 x -2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (*.f64 x -2) (*.f64 x (+.f64 y y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x 1/2) (*.f64 2 (+.f64 y -1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x 1/2) (+.f64 (+.f64 y y) -2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x 1/2) (+.f64 -2 (+.f64 y y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 x (+.f64 y -1)) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 y -1) 1/2) (+.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (*.f64 x (+.f64 y -1)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 y -1) 2) (+.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 x (+.f64 y -1)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (+.f64 y -1)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 x (+.f64 y -1)) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 x (+.f64 y -1)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 x (+.f64 y -1)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 x (+.f64 y -1)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 x (+.f64 y -1)) 8)) (*.f64 2 (*.f64 (*.f64 x (+.f64 y -1)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 x (+.f64 y -1))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 x (+.f64 y -1)) (*.f64 x (+.f64 y -1)))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 x (+.f64 y -1)) (*.f64 x (+.f64 y -1))))))) |
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (*.f64 x (+.f64 y -1)) 918938533204673/1000000000000000) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 918938533204673/1000000000000000 (+.f64 (*.f64 x y) (-.f64 1 x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (-.f64 1 x) (+.f64 (*.f64 x y) 918938533204673/1000000000000000)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 x (+.f64 y -1)) 918938533204673/1000000000000000) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 (*.f64 x (+.f64 y -1)) 918938533204673/1000000000000000))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (+.f64 (*.f64 x (+.f64 y -1)) 918938533204673/1000000000000000) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 x (+.f64 y -1)) 918938533204673/1000000000000000) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (+.f64 (*.f64 x (+.f64 y -1)) 918938533204673/1000000000000000) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 x (+.f64 y -1)) 918938533204673/1000000000000000) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (+.f64 (*.f64 x (+.f64 y -1)) 918938533204673/1000000000000000) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 x (+.f64 y -1)) 918938533204673/1000000000000000) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (+.f64 (*.f64 x (+.f64 y -1)) 918938533204673/1000000000000000) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 (*.f64 x (+.f64 y -1)) 918938533204673/1000000000000000) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 x (+.f64 y -1)) 918938533204673/1000000000000000) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 x (+.f64 y -1)) 918938533204673/1000000000000000) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 x (+.f64 y -1)) 918938533204673/1000000000000000) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 x (+.f64 y -1)) 918938533204673/1000000000000000) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 x (+.f64 y -1)) 918938533204673/1000000000000000) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 x (+.f64 y -1)) 918938533204673/1000000000000000) 8)) (*.f64 2 (*.f64 (+.f64 (*.f64 x (+.f64 y -1)) 918938533204673/1000000000000000) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (+.f64 (*.f64 x (+.f64 y -1)) 918938533204673/1000000000000000)))))) (#(struct:change #<rule egg-rr> (2) ((x and (+.f64 (*.f64 x (+.f64 y -1)) 918938533204673/1000000000000000) (+.f64 (*.f64 x (+.f64 y -1)) 918938533204673/1000000000000000))))) (#(struct:change #<rule egg-rr> (2) ((x or (+.f64 (*.f64 x (+.f64 y -1)) 918938533204673/1000000000000000) (+.f64 (*.f64 x (+.f64 y -1)) 918938533204673/1000000000000000)))))) |
| 1× | egg-herbie |
| 2456× | rational.json-simplify-2 |
| 1756× | rational.json-simplify-35 |
| 1438× | rational.json-simplify-1 |
| 1144× | rational.json-simplify-52 |
| 850× | rational.json-simplify-48 |
Useful iterations: 1 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 126 | 1547 |
| 1 | 251 | 1533 |
| 2 | 634 | 1533 |
| 3 | 1378 | 1533 |
| 4 | 2666 | 1533 |
| 5 | 3408 | 1533 |
| 6 | 3675 | 1533 |
| 7 | 3932 | 1533 |
| 8 | 4196 | 1533 |
| 9 | 4493 | 1533 |
| 10 | 5002 | 1533 |
| 11 | 5390 | 1533 |
| 12 | 5682 | 1533 |
| 13 | 6291 | 1533 |
| 14 | 6859 | 1533 |
| 15 | 7718 | 1533 |
| 16 | 7887 | 1533 |
| 1× | node limit |
| Inputs |
|---|
(*.f64 (-.f64 y 1) x) |
(*.f64 (-.f64 y 1) x) |
(*.f64 (-.f64 y 1) x) |
(*.f64 (-.f64 y 1) x) |
(*.f64 (-.f64 y 1) x) |
(*.f64 (-.f64 y 1) x) |
(*.f64 (-.f64 y 1) x) |
(*.f64 (-.f64 y 1) x) |
(*.f64 -1 (*.f64 (+.f64 1 (*.f64 -1 y)) x)) |
(*.f64 -1 (*.f64 (+.f64 1 (*.f64 -1 y)) x)) |
(*.f64 -1 (*.f64 (+.f64 1 (*.f64 -1 y)) x)) |
(*.f64 -1 (*.f64 (+.f64 1 (*.f64 -1 y)) 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)) |
918938533204673/1000000000000000 |
(+.f64 (*.f64 (-.f64 y 1) x) 918938533204673/1000000000000000) |
(+.f64 (*.f64 (-.f64 y 1) x) 918938533204673/1000000000000000) |
(+.f64 (*.f64 (-.f64 y 1) x) 918938533204673/1000000000000000) |
(*.f64 (-.f64 y 1) x) |
(+.f64 918938533204673/1000000000000000 (*.f64 (-.f64 y 1) x)) |
(+.f64 918938533204673/1000000000000000 (*.f64 (-.f64 y 1) x)) |
(+.f64 918938533204673/1000000000000000 (*.f64 (-.f64 y 1) x)) |
(*.f64 -1 (*.f64 (+.f64 1 (*.f64 -1 y)) x)) |
(+.f64 918938533204673/1000000000000000 (*.f64 -1 (*.f64 (+.f64 1 (*.f64 -1 y)) x))) |
(+.f64 918938533204673/1000000000000000 (*.f64 -1 (*.f64 (+.f64 1 (*.f64 -1 y)) x))) |
(+.f64 918938533204673/1000000000000000 (*.f64 -1 (*.f64 (+.f64 1 (*.f64 -1 y)) x))) |
(-.f64 918938533204673/1000000000000000 x) |
(-.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) x) |
(-.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) x) |
(-.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) x) |
(*.f64 y x) |
(-.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) x) |
(-.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) x) |
(-.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) x) |
(*.f64 y x) |
(-.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) x) |
(-.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) x) |
(-.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) x) |
(-.f64 (*.f64 x (+.f64 y -1)) 0) |
(-.f64 (+.f64 (*.f64 x y) (-.f64 1 x)) 1) |
(*.f64 x (+.f64 y -1)) |
(*.f64 (*.f64 x (+.f64 y -1)) 1) |
(*.f64 1 (*.f64 x (+.f64 y -1))) |
(*.f64 2 (*.f64 (*.f64 x (+.f64 y -1)) 1/2)) |
(*.f64 2 (+.f64 (*.f64 x (*.f64 y 1/2)) (*.f64 x -1/2))) |
(*.f64 2 (+.f64 (*.f64 x -1/2) (*.f64 x (*.f64 y 1/2)))) |
(*.f64 (*.f64 (*.f64 x (+.f64 y -1)) 2) 1/2) |
(*.f64 (+.f64 x x) (*.f64 (+.f64 y -1) 1/2)) |
(*.f64 (+.f64 x x) (/.f64 (+.f64 y -1) 2)) |
(*.f64 (+.f64 x x) (+.f64 (*.f64 y 1/2) -1/2)) |
(*.f64 (+.f64 x x) (+.f64 -1/2 (*.f64 y 1/2))) |
(*.f64 (+.f64 y -1) x) |
(*.f64 4 (/.f64 (*.f64 x (+.f64 y -1)) 4)) |
(*.f64 (*.f64 (*.f64 x (+.f64 y -1)) 4) 1/4) |
(*.f64 (*.f64 2 (+.f64 y -1)) (*.f64 x 1/2)) |
(*.f64 1/2 (*.f64 (*.f64 x (+.f64 y -1)) 2)) |
(*.f64 1/2 (+.f64 (*.f64 x (+.f64 y y)) (*.f64 x -2))) |
(*.f64 1/2 (+.f64 (*.f64 x -2) (*.f64 x (+.f64 y y)))) |
(*.f64 (*.f64 x 1/2) (*.f64 2 (+.f64 y -1))) |
(*.f64 (*.f64 x 1/2) (+.f64 (+.f64 y y) -2)) |
(*.f64 (*.f64 x 1/2) (+.f64 -2 (+.f64 y y))) |
(*.f64 (*.f64 (*.f64 x (+.f64 y -1)) 1/2) 2) |
(*.f64 (*.f64 (+.f64 y -1) 1/2) (+.f64 x x)) |
(*.f64 1/4 (*.f64 (*.f64 x (+.f64 y -1)) 4)) |
(*.f64 (/.f64 (+.f64 y -1) 2) (+.f64 x x)) |
(*.f64 (/.f64 (*.f64 x (+.f64 y -1)) 4) 4) |
(/.f64 (*.f64 x (+.f64 y -1)) 1) |
(/.f64 (*.f64 (*.f64 x (+.f64 y -1)) 2) 2) |
(/.f64 (*.f64 (*.f64 x (+.f64 y -1)) 4) 4) |
(/.f64 (*.f64 (*.f64 x (+.f64 y -1)) 8) 8) |
(/.f64 (*.f64 2 (*.f64 (*.f64 x (+.f64 y -1)) 8)) 16) |
(/.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 x (+.f64 y -1)) 8)) (*.f64 2 (*.f64 (*.f64 x (+.f64 y -1)) 8))) 32) |
(-.f64 (+.f64 (*.f64 x (+.f64 y -1)) 918938533204673/1000000000000000) 0) |
(-.f64 (+.f64 918938533204673/1000000000000000 (+.f64 (*.f64 x y) (-.f64 1 x))) 1) |
(-.f64 (+.f64 (-.f64 1 x) (+.f64 (*.f64 x y) 918938533204673/1000000000000000)) 1) |
(*.f64 (+.f64 (*.f64 x (+.f64 y -1)) 918938533204673/1000000000000000) 1) |
(*.f64 1 (+.f64 (*.f64 x (+.f64 y -1)) 918938533204673/1000000000000000)) |
(*.f64 2 (*.f64 (+.f64 (*.f64 x (+.f64 y -1)) 918938533204673/1000000000000000) 1/2)) |
(*.f64 (*.f64 (+.f64 (*.f64 x (+.f64 y -1)) 918938533204673/1000000000000000) 2) 1/2) |
(*.f64 4 (/.f64 (+.f64 (*.f64 x (+.f64 y -1)) 918938533204673/1000000000000000) 4)) |
(*.f64 (*.f64 (+.f64 (*.f64 x (+.f64 y -1)) 918938533204673/1000000000000000) 4) 1/4) |
(*.f64 1/2 (*.f64 (+.f64 (*.f64 x (+.f64 y -1)) 918938533204673/1000000000000000) 2)) |
(*.f64 (*.f64 (+.f64 (*.f64 x (+.f64 y -1)) 918938533204673/1000000000000000) 1/2) 2) |
(*.f64 1/4 (*.f64 (+.f64 (*.f64 x (+.f64 y -1)) 918938533204673/1000000000000000) 4)) |
(*.f64 (/.f64 (+.f64 (*.f64 x (+.f64 y -1)) 918938533204673/1000000000000000) 4) 4) |
(/.f64 (+.f64 (*.f64 x (+.f64 y -1)) 918938533204673/1000000000000000) 1) |
(/.f64 (*.f64 (+.f64 (*.f64 x (+.f64 y -1)) 918938533204673/1000000000000000) 2) 2) |
(/.f64 (*.f64 (+.f64 (*.f64 x (+.f64 y -1)) 918938533204673/1000000000000000) 4) 4) |
(/.f64 (*.f64 (+.f64 (*.f64 x (+.f64 y -1)) 918938533204673/1000000000000000) 8) 8) |
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 x (+.f64 y -1)) 918938533204673/1000000000000000) 8)) 16) |
(/.f64 (+.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 x (+.f64 y -1)) 918938533204673/1000000000000000) 8)) (*.f64 2 (*.f64 (+.f64 (*.f64 x (+.f64 y -1)) 918938533204673/1000000000000000) 8))) 32) |
| Outputs |
|---|
(*.f64 (-.f64 y 1) x) |
(*.f64 x (+.f64 y -1)) |
(-.f64 (*.f64 y x) x) |
(*.f64 (-.f64 y 1) x) |
(*.f64 x (+.f64 y -1)) |
(-.f64 (*.f64 y x) x) |
(*.f64 (-.f64 y 1) x) |
(*.f64 x (+.f64 y -1)) |
(-.f64 (*.f64 y x) x) |
(*.f64 (-.f64 y 1) x) |
(*.f64 x (+.f64 y -1)) |
(-.f64 (*.f64 y x) x) |
(*.f64 (-.f64 y 1) x) |
(*.f64 x (+.f64 y -1)) |
(-.f64 (*.f64 y x) x) |
(*.f64 (-.f64 y 1) x) |
(*.f64 x (+.f64 y -1)) |
(-.f64 (*.f64 y x) x) |
(*.f64 (-.f64 y 1) x) |
(*.f64 x (+.f64 y -1)) |
(-.f64 (*.f64 y x) x) |
(*.f64 (-.f64 y 1) x) |
(*.f64 x (+.f64 y -1)) |
(-.f64 (*.f64 y x) x) |
(*.f64 -1 (*.f64 (+.f64 1 (*.f64 -1 y)) x)) |
(*.f64 x (+.f64 y -1)) |
(-.f64 (*.f64 y x) x) |
(*.f64 -1 (*.f64 (+.f64 1 (*.f64 -1 y)) x)) |
(*.f64 x (+.f64 y -1)) |
(-.f64 (*.f64 y x) x) |
(*.f64 -1 (*.f64 (+.f64 1 (*.f64 -1 y)) x)) |
(*.f64 x (+.f64 y -1)) |
(-.f64 (*.f64 y x) x) |
(*.f64 -1 (*.f64 (+.f64 1 (*.f64 -1 y)) x)) |
(*.f64 x (+.f64 y -1)) |
(-.f64 (*.f64 y x) x) |
(*.f64 -1 x) |
(*.f64 x -1) |
(neg.f64 x) |
(+.f64 (*.f64 y x) (*.f64 -1 x)) |
(*.f64 x (+.f64 y -1)) |
(-.f64 (*.f64 y x) x) |
(+.f64 (*.f64 y x) (*.f64 -1 x)) |
(*.f64 x (+.f64 y -1)) |
(-.f64 (*.f64 y x) x) |
(+.f64 (*.f64 y x) (*.f64 -1 x)) |
(*.f64 x (+.f64 y -1)) |
(-.f64 (*.f64 y x) x) |
(*.f64 y x) |
(+.f64 (*.f64 y x) (*.f64 -1 x)) |
(*.f64 x (+.f64 y -1)) |
(-.f64 (*.f64 y x) x) |
(+.f64 (*.f64 y x) (*.f64 -1 x)) |
(*.f64 x (+.f64 y -1)) |
(-.f64 (*.f64 y x) x) |
(+.f64 (*.f64 y x) (*.f64 -1 x)) |
(*.f64 x (+.f64 y -1)) |
(-.f64 (*.f64 y x) x) |
(*.f64 y x) |
(+.f64 (*.f64 y x) (*.f64 -1 x)) |
(*.f64 x (+.f64 y -1)) |
(-.f64 (*.f64 y x) x) |
(+.f64 (*.f64 y x) (*.f64 -1 x)) |
(*.f64 x (+.f64 y -1)) |
(-.f64 (*.f64 y x) x) |
(+.f64 (*.f64 y x) (*.f64 -1 x)) |
(*.f64 x (+.f64 y -1)) |
(-.f64 (*.f64 y x) x) |
918938533204673/1000000000000000 |
(+.f64 (*.f64 (-.f64 y 1) x) 918938533204673/1000000000000000) |
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 y -1))) |
(+.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x)) |
(+.f64 (*.f64 (-.f64 y 1) x) 918938533204673/1000000000000000) |
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 y -1))) |
(+.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x)) |
(+.f64 (*.f64 (-.f64 y 1) x) 918938533204673/1000000000000000) |
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 y -1))) |
(+.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x)) |
(*.f64 (-.f64 y 1) x) |
(*.f64 x (+.f64 y -1)) |
(-.f64 (*.f64 y x) x) |
(+.f64 918938533204673/1000000000000000 (*.f64 (-.f64 y 1) x)) |
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 y -1))) |
(+.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x)) |
(+.f64 918938533204673/1000000000000000 (*.f64 (-.f64 y 1) x)) |
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 y -1))) |
(+.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x)) |
(+.f64 918938533204673/1000000000000000 (*.f64 (-.f64 y 1) x)) |
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 y -1))) |
(+.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x)) |
(*.f64 -1 (*.f64 (+.f64 1 (*.f64 -1 y)) x)) |
(*.f64 x (+.f64 y -1)) |
(-.f64 (*.f64 y x) x) |
(+.f64 918938533204673/1000000000000000 (*.f64 -1 (*.f64 (+.f64 1 (*.f64 -1 y)) x))) |
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 y -1))) |
(+.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x)) |
(+.f64 918938533204673/1000000000000000 (*.f64 -1 (*.f64 (+.f64 1 (*.f64 -1 y)) x))) |
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 y -1))) |
(+.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x)) |
(+.f64 918938533204673/1000000000000000 (*.f64 -1 (*.f64 (+.f64 1 (*.f64 -1 y)) x))) |
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 y -1))) |
(+.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x)) |
(-.f64 918938533204673/1000000000000000 x) |
(-.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) x) |
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 y -1))) |
(+.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x)) |
(-.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) x) |
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 y -1))) |
(+.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x)) |
(-.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) x) |
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 y -1))) |
(+.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x)) |
(*.f64 y x) |
(-.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) x) |
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 y -1))) |
(+.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x)) |
(-.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) x) |
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 y -1))) |
(+.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x)) |
(-.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) x) |
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 y -1))) |
(+.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x)) |
(*.f64 y x) |
(-.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) x) |
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 y -1))) |
(+.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x)) |
(-.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) x) |
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 y -1))) |
(+.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x)) |
(-.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) x) |
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 y -1))) |
(+.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x)) |
(-.f64 (*.f64 x (+.f64 y -1)) 0) |
(*.f64 x (+.f64 y -1)) |
(-.f64 (*.f64 y x) x) |
(-.f64 (+.f64 (*.f64 x y) (-.f64 1 x)) 1) |
(*.f64 x (+.f64 y -1)) |
(-.f64 (*.f64 y x) x) |
(*.f64 x (+.f64 y -1)) |
(-.f64 (*.f64 y x) x) |
(*.f64 (*.f64 x (+.f64 y -1)) 1) |
(*.f64 x (+.f64 y -1)) |
(-.f64 (*.f64 y x) x) |
(*.f64 1 (*.f64 x (+.f64 y -1))) |
(*.f64 x (+.f64 y -1)) |
(-.f64 (*.f64 y x) x) |
(*.f64 2 (*.f64 (*.f64 x (+.f64 y -1)) 1/2)) |
(*.f64 x (+.f64 y -1)) |
(-.f64 (*.f64 y x) x) |
(*.f64 2 (+.f64 (*.f64 x (*.f64 y 1/2)) (*.f64 x -1/2))) |
(*.f64 2 (*.f64 x (+.f64 (*.f64 y 1/2) -1/2))) |
(*.f64 2 (+.f64 (*.f64 x -1/2) (*.f64 x (*.f64 y 1/2)))) |
(*.f64 2 (+.f64 (*.f64 x (*.f64 y 1/2)) (*.f64 x -1/2))) |
(*.f64 2 (*.f64 x (+.f64 (*.f64 y 1/2) -1/2))) |
(*.f64 (*.f64 (*.f64 x (+.f64 y -1)) 2) 1/2) |
(*.f64 x (+.f64 y -1)) |
(-.f64 (*.f64 y x) x) |
(*.f64 (+.f64 x x) (*.f64 (+.f64 y -1) 1/2)) |
(*.f64 x (+.f64 y -1)) |
(-.f64 (*.f64 y x) x) |
(*.f64 (+.f64 x x) (/.f64 (+.f64 y -1) 2)) |
(*.f64 x (+.f64 y -1)) |
(-.f64 (*.f64 y x) x) |
(*.f64 (+.f64 x x) (+.f64 (*.f64 y 1/2) -1/2)) |
(*.f64 (+.f64 x x) (+.f64 -1/2 (*.f64 y 1/2))) |
(*.f64 (+.f64 x x) (+.f64 (*.f64 y 1/2) -1/2)) |
(*.f64 (+.f64 y -1) x) |
(*.f64 x (+.f64 y -1)) |
(-.f64 (*.f64 y x) x) |
(*.f64 4 (/.f64 (*.f64 x (+.f64 y -1)) 4)) |
(*.f64 x (+.f64 y -1)) |
(-.f64 (*.f64 y x) x) |
(*.f64 (*.f64 (*.f64 x (+.f64 y -1)) 4) 1/4) |
(*.f64 x (+.f64 y -1)) |
(-.f64 (*.f64 y x) x) |
(*.f64 (*.f64 2 (+.f64 y -1)) (*.f64 x 1/2)) |
(*.f64 x (+.f64 y -1)) |
(-.f64 (*.f64 y x) x) |
(*.f64 1/2 (*.f64 (*.f64 x (+.f64 y -1)) 2)) |
(*.f64 x (+.f64 y -1)) |
(-.f64 (*.f64 y x) x) |
(*.f64 1/2 (+.f64 (*.f64 x (+.f64 y y)) (*.f64 x -2))) |
(*.f64 x (+.f64 y -1)) |
(-.f64 (*.f64 y x) x) |
(*.f64 1/2 (+.f64 (*.f64 x -2) (*.f64 x (+.f64 y y)))) |
(*.f64 x (+.f64 y -1)) |
(-.f64 (*.f64 y x) x) |
(*.f64 (*.f64 x 1/2) (*.f64 2 (+.f64 y -1))) |
(*.f64 x (+.f64 y -1)) |
(-.f64 (*.f64 y x) x) |
(*.f64 (*.f64 x 1/2) (+.f64 (+.f64 y y) -2)) |
(*.f64 x (+.f64 y -1)) |
(-.f64 (*.f64 y x) x) |
(*.f64 (*.f64 x 1/2) (+.f64 -2 (+.f64 y y))) |
(*.f64 x (+.f64 y -1)) |
(-.f64 (*.f64 y x) x) |
(*.f64 (*.f64 (*.f64 x (+.f64 y -1)) 1/2) 2) |
(*.f64 x (+.f64 y -1)) |
(-.f64 (*.f64 y x) x) |
(*.f64 (*.f64 (+.f64 y -1) 1/2) (+.f64 x x)) |
(*.f64 x (+.f64 y -1)) |
(-.f64 (*.f64 y x) x) |
(*.f64 1/4 (*.f64 (*.f64 x (+.f64 y -1)) 4)) |
(*.f64 x (+.f64 y -1)) |
(-.f64 (*.f64 y x) x) |
(*.f64 (/.f64 (+.f64 y -1) 2) (+.f64 x x)) |
(*.f64 x (+.f64 y -1)) |
(-.f64 (*.f64 y x) x) |
(*.f64 (/.f64 (*.f64 x (+.f64 y -1)) 4) 4) |
(*.f64 x (+.f64 y -1)) |
(-.f64 (*.f64 y x) x) |
(/.f64 (*.f64 x (+.f64 y -1)) 1) |
(*.f64 x (+.f64 y -1)) |
(-.f64 (*.f64 y x) x) |
(/.f64 (*.f64 (*.f64 x (+.f64 y -1)) 2) 2) |
(*.f64 x (+.f64 y -1)) |
(-.f64 (*.f64 y x) x) |
(/.f64 (*.f64 (*.f64 x (+.f64 y -1)) 4) 4) |
(*.f64 x (+.f64 y -1)) |
(-.f64 (*.f64 y x) x) |
(/.f64 (*.f64 (*.f64 x (+.f64 y -1)) 8) 8) |
(*.f64 x (+.f64 y -1)) |
(-.f64 (*.f64 y x) x) |
(/.f64 (*.f64 2 (*.f64 (*.f64 x (+.f64 y -1)) 8)) 16) |
(*.f64 x (+.f64 y -1)) |
(-.f64 (*.f64 y x) x) |
(/.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 x (+.f64 y -1)) 8)) (*.f64 2 (*.f64 (*.f64 x (+.f64 y -1)) 8))) 32) |
(*.f64 x (+.f64 y -1)) |
(-.f64 (*.f64 y x) x) |
(-.f64 (+.f64 (*.f64 x (+.f64 y -1)) 918938533204673/1000000000000000) 0) |
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 y -1))) |
(+.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x)) |
(-.f64 (+.f64 918938533204673/1000000000000000 (+.f64 (*.f64 x y) (-.f64 1 x))) 1) |
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 y -1))) |
(+.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x)) |
(-.f64 (+.f64 (-.f64 1 x) (+.f64 (*.f64 x y) 918938533204673/1000000000000000)) 1) |
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 y -1))) |
(+.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x)) |
(*.f64 (+.f64 (*.f64 x (+.f64 y -1)) 918938533204673/1000000000000000) 1) |
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 y -1))) |
(+.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x)) |
(*.f64 1 (+.f64 (*.f64 x (+.f64 y -1)) 918938533204673/1000000000000000)) |
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 y -1))) |
(+.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x)) |
(*.f64 2 (*.f64 (+.f64 (*.f64 x (+.f64 y -1)) 918938533204673/1000000000000000) 1/2)) |
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 y -1))) |
(+.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x)) |
(*.f64 (*.f64 (+.f64 (*.f64 x (+.f64 y -1)) 918938533204673/1000000000000000) 2) 1/2) |
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 y -1))) |
(+.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x)) |
(*.f64 4 (/.f64 (+.f64 (*.f64 x (+.f64 y -1)) 918938533204673/1000000000000000) 4)) |
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 y -1))) |
(+.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x)) |
(*.f64 (*.f64 (+.f64 (*.f64 x (+.f64 y -1)) 918938533204673/1000000000000000) 4) 1/4) |
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 y -1))) |
(+.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x)) |
(*.f64 1/2 (*.f64 (+.f64 (*.f64 x (+.f64 y -1)) 918938533204673/1000000000000000) 2)) |
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 y -1))) |
(+.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x)) |
(*.f64 (*.f64 (+.f64 (*.f64 x (+.f64 y -1)) 918938533204673/1000000000000000) 1/2) 2) |
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 y -1))) |
(+.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x)) |
(*.f64 1/4 (*.f64 (+.f64 (*.f64 x (+.f64 y -1)) 918938533204673/1000000000000000) 4)) |
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 y -1))) |
(+.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x)) |
(*.f64 (/.f64 (+.f64 (*.f64 x (+.f64 y -1)) 918938533204673/1000000000000000) 4) 4) |
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 y -1))) |
(+.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x)) |
(/.f64 (+.f64 (*.f64 x (+.f64 y -1)) 918938533204673/1000000000000000) 1) |
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 y -1))) |
(+.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x)) |
(/.f64 (*.f64 (+.f64 (*.f64 x (+.f64 y -1)) 918938533204673/1000000000000000) 2) 2) |
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 y -1))) |
(+.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x)) |
(/.f64 (*.f64 (+.f64 (*.f64 x (+.f64 y -1)) 918938533204673/1000000000000000) 4) 4) |
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 y -1))) |
(+.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x)) |
(/.f64 (*.f64 (+.f64 (*.f64 x (+.f64 y -1)) 918938533204673/1000000000000000) 8) 8) |
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 y -1))) |
(+.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x)) |
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 x (+.f64 y -1)) 918938533204673/1000000000000000) 8)) 16) |
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 y -1))) |
(+.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x)) |
(/.f64 (+.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 x (+.f64 y -1)) 918938533204673/1000000000000000) 8)) (*.f64 2 (*.f64 (+.f64 (*.f64 x (+.f64 y -1)) 918938533204673/1000000000000000) 8))) 32) |
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 y -1))) |
(+.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x)) |
Compiled 7 to 3 computations (57.1% saved)
Found 1 expressions with local error:
| New | Error | Program |
|---|---|---|
| 0.0b | (*.f64 y (-.f64 x 1/2)) |
Compiled 13 to 8 computations (38.5% saved)
Found 1 expressions with local error:
| New | Error | Program |
|---|---|---|
| 0.0b | (*.f64 (-.f64 y 1) x) |
Compiled 13 to 8 computations (38.5% saved)
Found 2 expressions with local error:
| New | Error | Program |
|---|---|---|
| ✓ | 0.0b | (+.f64 (-.f64 (*.f64 y x) (*.f64 y 1/2)) 918938533204673/1000000000000000) |
| ✓ | 0.0b | (-.f64 (*.f64 y x) (*.f64 y 1/2)) |
Compiled 28 to 15 computations (46.4% saved)
12 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 0.0ms | y | @ | inf | (-.f64 (*.f64 y x) (*.f64 y 1/2)) |
| 0.0ms | y | @ | 0 | (-.f64 (*.f64 y x) (*.f64 y 1/2)) |
| 0.0ms | y | @ | -inf | (-.f64 (*.f64 y x) (*.f64 y 1/2)) |
| 0.0ms | x | @ | -inf | (+.f64 (-.f64 (*.f64 y x) (*.f64 y 1/2)) 918938533204673/1000000000000000) |
| 0.0ms | x | @ | -inf | (-.f64 (*.f64 y x) (*.f64 y 1/2)) |
| 1× | batch-egg-rewrite |
| 1672× | bool.json-1 |
| 1672× | bool.json-2 |
| 1610× | rational.json-1 |
| 1610× | rational.json-2 |
| 1114× | bool.json-3 |
Useful iterations: 1 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 10 | 44 |
| 1 | 98 | 32 |
| 2 | 252 | 32 |
| 3 | 534 | 32 |
| 4 | 1134 | 32 |
| 5 | 2674 | 32 |
| 6 | 5987 | 32 |
| 1× | node limit |
| Inputs |
|---|
(-.f64 (*.f64 y x) (*.f64 y 1/2)) |
(+.f64 (-.f64 (*.f64 y x) (*.f64 y 1/2)) 918938533204673/1000000000000000) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 y x) (/.f64 y -2))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 y (+.f64 x -1/2)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 y (+.f64 x -1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (/.f64 y -2) (*.f64 y x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -1 (+.f64 (*.f64 y (+.f64 x -1/2)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 y 1/2) (+.f64 x -1/2)) (*.f64 (*.f64 y 1/2) (+.f64 x -1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 y (+.f64 x -1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 y (*.f64 1/2 (*.f64 2 (+.f64 x -1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 y (neg.f64 (-.f64 1/2 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 y (*.f64 2 (+.f64 x -1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 y 1/2) (*.f64 2 (+.f64 x -1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 y 1/2) (+.f64 x (-.f64 x 1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 y (+.f64 x -1/2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 y (+.f64 x -1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (*.f64 y 1/2) (+.f64 x -1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (-.f64 (*.f64 y (*.f64 x 1/2)) (*.f64 y 1/4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 y (*.f64 2 (+.f64 x -1/2))) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 y y) (*.f64 1/2 (+.f64 x -1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 y y) (*.f64 (*.f64 2 (+.f64 x -1/2)) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 y y) (/.f64 (+.f64 x -1/2) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 y y) (-.f64 (*.f64 x 1/2) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 y y) (-.f64 (*.f64 (+.f64 x x) 1/4) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 y (-.f64 1/2 x)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x -1/2) y)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (*.f64 (+.f64 x -1/2) (*.f64 y 1/4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (*.f64 y (+.f64 x -1/2)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 y 4) (*.f64 (+.f64 x -1/2) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 y (*.f64 (+.f64 x -1/2) 4)) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 1/2 x) (neg.f64 y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (*.f64 y (-.f64 1/2 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 8 (*.f64 (/.f64 y 8) (+.f64 x -1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 y 8) (*.f64 1/8 (+.f64 x -1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (+.f64 x -1/2)) (*.f64 y 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 y (*.f64 (+.f64 x -1/2) 4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 y 1/2) (+.f64 x -1/2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 1/2 (+.f64 x -1/2)) (+.f64 y y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 1/2 (*.f64 2 (+.f64 x -1/2))) y)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 2 (+.f64 x -1/2)) 1/4) (+.f64 y y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x -1/2) (*.f64 y 1/4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x -1/2) 1/4) (*.f64 y 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 x -1/2) 2) (+.f64 y y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 y) (-.f64 1/2 x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 (-.f64 1/2 x)) y)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 y (+.f64 x -1/2)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x (-.f64 x 1)) (*.f64 y 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (+.f64 x -1/2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (*.f64 2 (+.f64 x -1/2))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (-.f64 1/2 x)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (*.f64 (+.f64 x -1/2) 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 y (+.f64 x -1/2)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 y (*.f64 y (+.f64 x x))) -2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 y (+.f64 x -1/2)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 y (-.f64 1/2 x)) 4) -4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 y (*.f64 y (+.f64 x x)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 y (+.f64 x -1/2)) 8)) (*.f64 2 (*.f64 (*.f64 y (+.f64 x -1/2)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (neg.f64 (-.f64 y (*.f64 y (+.f64 x x)))) (neg.f64 (-.f64 y (*.f64 y (+.f64 x x))))) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (*.f64 (*.f64 y (-.f64 1/2 x)) 4) -1) 4)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (*.f64 y (-.f64 1/2 x)))))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 y (+.f64 x -1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 y (+.f64 x -1/2)) (*.f64 y (+.f64 x -1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 y (+.f64 x -1/2)) (*.f64 y (+.f64 x -1/2))))))) |
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 1/2 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 1/2 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 8)) (*.f64 2 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000)))))) (#(struct:change #<rule egg-rr> (2) ((x and (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000))))) (#(struct:change #<rule egg-rr> (2) ((x or (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000)))))) |
| 1× | egg-herbie |
| 1896× | rational.json-simplify-35 |
| 1324× | rational.json-simplify-52 |
| 1054× | rational.json-simplify-51 |
| 1022× | rational.json-simplify-2 |
| 938× | rational.json-simplify-41 |
Useful iterations: 1 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 164 | 1924 |
| 1 | 336 | 1886 |
| 2 | 807 | 1886 |
| 3 | 1970 | 1886 |
| 4 | 4496 | 1886 |
| 5 | 5251 | 1886 |
| 6 | 5623 | 1886 |
| 7 | 6167 | 1886 |
| 8 | 7099 | 1886 |
| 1× | node limit |
| Inputs |
|---|
(*.f64 y (-.f64 x 1/2)) |
(*.f64 y (-.f64 x 1/2)) |
(*.f64 y (-.f64 x 1/2)) |
(*.f64 y (-.f64 x 1/2)) |
(*.f64 y (-.f64 x 1/2)) |
(*.f64 y (-.f64 x 1/2)) |
(*.f64 y (-.f64 x 1/2)) |
(*.f64 y (-.f64 x 1/2)) |
(*.f64 -1 (*.f64 y (+.f64 1/2 (*.f64 -1 x)))) |
(*.f64 -1 (*.f64 y (+.f64 1/2 (*.f64 -1 x)))) |
(*.f64 -1 (*.f64 y (+.f64 1/2 (*.f64 -1 x)))) |
(*.f64 -1 (*.f64 y (+.f64 1/2 (*.f64 -1 x)))) |
(*.f64 -1/2 y) |
(+.f64 (*.f64 -1/2 y) (*.f64 y x)) |
(+.f64 (*.f64 -1/2 y) (*.f64 y x)) |
(+.f64 (*.f64 -1/2 y) (*.f64 y x)) |
(*.f64 y x) |
(+.f64 (*.f64 -1/2 y) (*.f64 y x)) |
(+.f64 (*.f64 -1/2 y) (*.f64 y x)) |
(+.f64 (*.f64 -1/2 y) (*.f64 y x)) |
(*.f64 y x) |
(+.f64 (*.f64 -1/2 y) (*.f64 y x)) |
(+.f64 (*.f64 -1/2 y) (*.f64 y x)) |
(+.f64 (*.f64 -1/2 y) (*.f64 y x)) |
918938533204673/1000000000000000 |
(+.f64 918938533204673/1000000000000000 (*.f64 y (-.f64 x 1/2))) |
(+.f64 918938533204673/1000000000000000 (*.f64 y (-.f64 x 1/2))) |
(+.f64 918938533204673/1000000000000000 (*.f64 y (-.f64 x 1/2))) |
(*.f64 y (-.f64 x 1/2)) |
(+.f64 918938533204673/1000000000000000 (*.f64 y (-.f64 x 1/2))) |
(+.f64 918938533204673/1000000000000000 (*.f64 y (-.f64 x 1/2))) |
(+.f64 918938533204673/1000000000000000 (*.f64 y (-.f64 x 1/2))) |
(*.f64 -1 (*.f64 y (+.f64 1/2 (*.f64 -1 x)))) |
(+.f64 918938533204673/1000000000000000 (*.f64 -1 (*.f64 y (+.f64 1/2 (*.f64 -1 x))))) |
(+.f64 918938533204673/1000000000000000 (*.f64 -1 (*.f64 y (+.f64 1/2 (*.f64 -1 x))))) |
(+.f64 918938533204673/1000000000000000 (*.f64 -1 (*.f64 y (+.f64 1/2 (*.f64 -1 x))))) |
(-.f64 918938533204673/1000000000000000 (*.f64 1/2 y)) |
(-.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) (*.f64 1/2 y)) |
(-.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) (*.f64 1/2 y)) |
(-.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) (*.f64 1/2 y)) |
(*.f64 y x) |
(-.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) (*.f64 1/2 y)) |
(-.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) (*.f64 1/2 y)) |
(-.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) (*.f64 1/2 y)) |
(*.f64 y x) |
(-.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) (*.f64 1/2 y)) |
(-.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) (*.f64 1/2 y)) |
(-.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) (*.f64 1/2 y)) |
(+.f64 (*.f64 y x) (/.f64 y -2)) |
(+.f64 (*.f64 y (+.f64 x -1/2)) 0) |
(+.f64 0 (*.f64 y (+.f64 x -1/2))) |
(+.f64 (/.f64 y -2) (*.f64 y x)) |
(+.f64 -1 (+.f64 (*.f64 y (+.f64 x -1/2)) 1)) |
(+.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 1) -1) |
(+.f64 (*.f64 (*.f64 y 1/2) (+.f64 x -1/2)) (*.f64 (*.f64 y 1/2) (+.f64 x -1/2))) |
(*.f64 y (+.f64 x -1/2)) |
(*.f64 y (*.f64 1/2 (*.f64 2 (+.f64 x -1/2)))) |
(*.f64 y (neg.f64 (-.f64 1/2 x))) |
(*.f64 1/2 (*.f64 y (*.f64 2 (+.f64 x -1/2)))) |
(*.f64 (*.f64 y 1/2) (*.f64 2 (+.f64 x -1/2))) |
(*.f64 (*.f64 y 1/2) (+.f64 x (-.f64 x 1))) |
(*.f64 (*.f64 y (+.f64 x -1/2)) 1) |
(*.f64 1 (*.f64 y (+.f64 x -1/2))) |
(*.f64 2 (*.f64 (*.f64 y 1/2) (+.f64 x -1/2))) |
(*.f64 2 (-.f64 (*.f64 y (*.f64 x 1/2)) (*.f64 y 1/4))) |
(*.f64 (*.f64 y (*.f64 2 (+.f64 x -1/2))) 1/2) |
(*.f64 (+.f64 y y) (*.f64 1/2 (+.f64 x -1/2))) |
(*.f64 (+.f64 y y) (*.f64 (*.f64 2 (+.f64 x -1/2)) 1/4)) |
(*.f64 (+.f64 y y) (/.f64 (+.f64 x -1/2) 2)) |
(*.f64 (+.f64 y y) (-.f64 (*.f64 x 1/2) 1/4)) |
(*.f64 (+.f64 y y) (-.f64 (*.f64 (+.f64 x x) 1/4) 1/4)) |
(*.f64 (*.f64 y (-.f64 1/2 x)) -1) |
(*.f64 (+.f64 x -1/2) y) |
(*.f64 4 (*.f64 (+.f64 x -1/2) (*.f64 y 1/4))) |
(*.f64 4 (/.f64 (*.f64 y (+.f64 x -1/2)) 4)) |
(*.f64 (*.f64 y 4) (*.f64 (+.f64 x -1/2) 1/4)) |
(*.f64 (*.f64 y (*.f64 (+.f64 x -1/2) 4)) 1/4) |
(*.f64 (-.f64 1/2 x) (neg.f64 y)) |
(*.f64 -1 (*.f64 y (-.f64 1/2 x))) |
(*.f64 8 (*.f64 (/.f64 y 8) (+.f64 x -1/2))) |
(*.f64 (*.f64 y 8) (*.f64 1/8 (+.f64 x -1/2))) |
(*.f64 (*.f64 2 (+.f64 x -1/2)) (*.f64 y 1/2)) |
(*.f64 1/4 (*.f64 y (*.f64 (+.f64 x -1/2) 4))) |
(*.f64 (*.f64 (*.f64 y 1/2) (+.f64 x -1/2)) 2) |
(*.f64 (*.f64 1/2 (+.f64 x -1/2)) (+.f64 y y)) |
(*.f64 (*.f64 1/2 (*.f64 2 (+.f64 x -1/2))) y) |
(*.f64 (*.f64 (*.f64 2 (+.f64 x -1/2)) 1/4) (+.f64 y y)) |
(*.f64 (*.f64 (+.f64 x -1/2) (*.f64 y 1/4)) 4) |
(*.f64 (*.f64 (+.f64 x -1/2) 1/4) (*.f64 y 4)) |
(*.f64 (/.f64 (+.f64 x -1/2) 2) (+.f64 y y)) |
(*.f64 (neg.f64 y) (-.f64 1/2 x)) |
(*.f64 (neg.f64 (-.f64 1/2 x)) y) |
(*.f64 (/.f64 (*.f64 y (+.f64 x -1/2)) 4) 4) |
(*.f64 (+.f64 x (-.f64 x 1)) (*.f64 y 1/2)) |
(/.f64 (*.f64 y (+.f64 x -1/2)) 1) |
(/.f64 (*.f64 y (*.f64 2 (+.f64 x -1/2))) 2) |
(/.f64 (*.f64 y (-.f64 1/2 x)) -1) |
(/.f64 (*.f64 y (*.f64 (+.f64 x -1/2) 4)) 4) |
(/.f64 (*.f64 (*.f64 y (+.f64 x -1/2)) 8) 8) |
(/.f64 (-.f64 y (*.f64 y (+.f64 x x))) -2) |
(/.f64 (*.f64 2 (*.f64 (*.f64 y (+.f64 x -1/2)) 8)) 16) |
(/.f64 (*.f64 (*.f64 y (-.f64 1/2 x)) 4) -4) |
(/.f64 (neg.f64 (-.f64 y (*.f64 y (+.f64 x x)))) 2) |
(/.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 y (+.f64 x -1/2)) 8)) (*.f64 2 (*.f64 (*.f64 y (+.f64 x -1/2)) 8))) 32) |
(/.f64 (+.f64 (neg.f64 (-.f64 y (*.f64 y (+.f64 x x)))) (neg.f64 (-.f64 y (*.f64 y (+.f64 x x))))) 4) |
(/.f64 (/.f64 (*.f64 (*.f64 y (-.f64 1/2 x)) 4) -1) 4) |
(neg.f64 (*.f64 y (-.f64 1/2 x))) |
(-.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 0) |
(*.f64 1/2 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 2)) |
(*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 1) |
(*.f64 1 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000)) |
(*.f64 2 (*.f64 1/2 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000))) |
(*.f64 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 2) 1/2) |
(*.f64 4 (/.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 4)) |
(*.f64 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 4) 1/4) |
(*.f64 (*.f64 1/2 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000)) 2) |
(*.f64 1/4 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 4)) |
(*.f64 (/.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 4) 4) |
(/.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 1) |
(/.f64 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 2) 2) |
(/.f64 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 4) 4) |
(/.f64 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 8) 8) |
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 8)) 16) |
(/.f64 (+.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 8)) (*.f64 2 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 8))) 32) |
| Outputs |
|---|
(*.f64 y (-.f64 x 1/2)) |
(*.f64 y (+.f64 x -1/2)) |
(*.f64 y (-.f64 x 1/2)) |
(*.f64 y (+.f64 x -1/2)) |
(*.f64 y (-.f64 x 1/2)) |
(*.f64 y (+.f64 x -1/2)) |
(*.f64 y (-.f64 x 1/2)) |
(*.f64 y (+.f64 x -1/2)) |
(*.f64 y (-.f64 x 1/2)) |
(*.f64 y (+.f64 x -1/2)) |
(*.f64 y (-.f64 x 1/2)) |
(*.f64 y (+.f64 x -1/2)) |
(*.f64 y (-.f64 x 1/2)) |
(*.f64 y (+.f64 x -1/2)) |
(*.f64 y (-.f64 x 1/2)) |
(*.f64 y (+.f64 x -1/2)) |
(*.f64 -1 (*.f64 y (+.f64 1/2 (*.f64 -1 x)))) |
(*.f64 y (*.f64 (+.f64 1/2 (*.f64 x -1)) -1)) |
(*.f64 y (neg.f64 (+.f64 1/2 (neg.f64 x)))) |
(*.f64 (+.f64 1/2 (neg.f64 x)) (neg.f64 y)) |
(*.f64 -1 (*.f64 y (+.f64 1/2 (*.f64 -1 x)))) |
(*.f64 y (*.f64 (+.f64 1/2 (*.f64 x -1)) -1)) |
(*.f64 y (neg.f64 (+.f64 1/2 (neg.f64 x)))) |
(*.f64 (+.f64 1/2 (neg.f64 x)) (neg.f64 y)) |
(*.f64 -1 (*.f64 y (+.f64 1/2 (*.f64 -1 x)))) |
(*.f64 y (*.f64 (+.f64 1/2 (*.f64 x -1)) -1)) |
(*.f64 y (neg.f64 (+.f64 1/2 (neg.f64 x)))) |
(*.f64 (+.f64 1/2 (neg.f64 x)) (neg.f64 y)) |
(*.f64 -1 (*.f64 y (+.f64 1/2 (*.f64 -1 x)))) |
(*.f64 y (*.f64 (+.f64 1/2 (*.f64 x -1)) -1)) |
(*.f64 y (neg.f64 (+.f64 1/2 (neg.f64 x)))) |
(*.f64 (+.f64 1/2 (neg.f64 x)) (neg.f64 y)) |
(*.f64 -1/2 y) |
(*.f64 y -1/2) |
(+.f64 (*.f64 -1/2 y) (*.f64 y x)) |
(*.f64 y (-.f64 x 1/2)) |
(*.f64 y (+.f64 x -1/2)) |
(+.f64 (*.f64 -1/2 y) (*.f64 y x)) |
(*.f64 y (-.f64 x 1/2)) |
(*.f64 y (+.f64 x -1/2)) |
(+.f64 (*.f64 -1/2 y) (*.f64 y x)) |
(*.f64 y (-.f64 x 1/2)) |
(*.f64 y (+.f64 x -1/2)) |
(*.f64 y x) |
(+.f64 (*.f64 -1/2 y) (*.f64 y x)) |
(*.f64 y (-.f64 x 1/2)) |
(*.f64 y (+.f64 x -1/2)) |
(+.f64 (*.f64 -1/2 y) (*.f64 y x)) |
(*.f64 y (-.f64 x 1/2)) |
(*.f64 y (+.f64 x -1/2)) |
(+.f64 (*.f64 -1/2 y) (*.f64 y x)) |
(*.f64 y (-.f64 x 1/2)) |
(*.f64 y (+.f64 x -1/2)) |
(*.f64 y x) |
(+.f64 (*.f64 -1/2 y) (*.f64 y x)) |
(*.f64 y (-.f64 x 1/2)) |
(*.f64 y (+.f64 x -1/2)) |
(+.f64 (*.f64 -1/2 y) (*.f64 y x)) |
(*.f64 y (-.f64 x 1/2)) |
(*.f64 y (+.f64 x -1/2)) |
(+.f64 (*.f64 -1/2 y) (*.f64 y x)) |
(*.f64 y (-.f64 x 1/2)) |
(*.f64 y (+.f64 x -1/2)) |
918938533204673/1000000000000000 |
(+.f64 918938533204673/1000000000000000 (*.f64 y (-.f64 x 1/2))) |
(+.f64 (*.f64 y (-.f64 x 1/2)) 918938533204673/1000000000000000) |
(+.f64 918938533204673/1000000000000000 (*.f64 y (+.f64 x -1/2))) |
(+.f64 918938533204673/1000000000000000 (*.f64 y (-.f64 x 1/2))) |
(+.f64 (*.f64 y (-.f64 x 1/2)) 918938533204673/1000000000000000) |
(+.f64 918938533204673/1000000000000000 (*.f64 y (+.f64 x -1/2))) |
(+.f64 918938533204673/1000000000000000 (*.f64 y (-.f64 x 1/2))) |
(+.f64 (*.f64 y (-.f64 x 1/2)) 918938533204673/1000000000000000) |
(+.f64 918938533204673/1000000000000000 (*.f64 y (+.f64 x -1/2))) |
(*.f64 y (-.f64 x 1/2)) |
(*.f64 y (+.f64 x -1/2)) |
(+.f64 918938533204673/1000000000000000 (*.f64 y (-.f64 x 1/2))) |
(+.f64 (*.f64 y (-.f64 x 1/2)) 918938533204673/1000000000000000) |
(+.f64 918938533204673/1000000000000000 (*.f64 y (+.f64 x -1/2))) |
(+.f64 918938533204673/1000000000000000 (*.f64 y (-.f64 x 1/2))) |
(+.f64 (*.f64 y (-.f64 x 1/2)) 918938533204673/1000000000000000) |
(+.f64 918938533204673/1000000000000000 (*.f64 y (+.f64 x -1/2))) |
(+.f64 918938533204673/1000000000000000 (*.f64 y (-.f64 x 1/2))) |
(+.f64 (*.f64 y (-.f64 x 1/2)) 918938533204673/1000000000000000) |
(+.f64 918938533204673/1000000000000000 (*.f64 y (+.f64 x -1/2))) |
(*.f64 -1 (*.f64 y (+.f64 1/2 (*.f64 -1 x)))) |
(*.f64 y (*.f64 (+.f64 1/2 (*.f64 x -1)) -1)) |
(*.f64 y (neg.f64 (+.f64 1/2 (neg.f64 x)))) |
(*.f64 (+.f64 1/2 (neg.f64 x)) (neg.f64 y)) |
(+.f64 918938533204673/1000000000000000 (*.f64 -1 (*.f64 y (+.f64 1/2 (*.f64 -1 x))))) |
(+.f64 (*.f64 y (*.f64 (+.f64 1/2 (*.f64 x -1)) -1)) 918938533204673/1000000000000000) |
(+.f64 (*.f64 y (neg.f64 (+.f64 1/2 (neg.f64 x)))) 918938533204673/1000000000000000) |
(+.f64 (*.f64 (+.f64 1/2 (neg.f64 x)) (neg.f64 y)) 918938533204673/1000000000000000) |
(+.f64 918938533204673/1000000000000000 (*.f64 -1 (*.f64 y (+.f64 1/2 (*.f64 -1 x))))) |
(+.f64 (*.f64 y (*.f64 (+.f64 1/2 (*.f64 x -1)) -1)) 918938533204673/1000000000000000) |
(+.f64 (*.f64 y (neg.f64 (+.f64 1/2 (neg.f64 x)))) 918938533204673/1000000000000000) |
(+.f64 (*.f64 (+.f64 1/2 (neg.f64 x)) (neg.f64 y)) 918938533204673/1000000000000000) |
(+.f64 918938533204673/1000000000000000 (*.f64 -1 (*.f64 y (+.f64 1/2 (*.f64 -1 x))))) |
(+.f64 (*.f64 y (*.f64 (+.f64 1/2 (*.f64 x -1)) -1)) 918938533204673/1000000000000000) |
(+.f64 (*.f64 y (neg.f64 (+.f64 1/2 (neg.f64 x)))) 918938533204673/1000000000000000) |
(+.f64 (*.f64 (+.f64 1/2 (neg.f64 x)) (neg.f64 y)) 918938533204673/1000000000000000) |
(-.f64 918938533204673/1000000000000000 (*.f64 1/2 y)) |
(-.f64 918938533204673/1000000000000000 (*.f64 y 1/2)) |
(-.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) (*.f64 1/2 y)) |
(+.f64 (*.f64 y (-.f64 x 1/2)) 918938533204673/1000000000000000) |
(+.f64 918938533204673/1000000000000000 (*.f64 y (-.f64 x 1/2))) |
(+.f64 918938533204673/1000000000000000 (*.f64 y (+.f64 x -1/2))) |
(-.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) (*.f64 1/2 y)) |
(+.f64 (*.f64 y (-.f64 x 1/2)) 918938533204673/1000000000000000) |
(+.f64 918938533204673/1000000000000000 (*.f64 y (-.f64 x 1/2))) |
(+.f64 918938533204673/1000000000000000 (*.f64 y (+.f64 x -1/2))) |
(-.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) (*.f64 1/2 y)) |
(+.f64 (*.f64 y (-.f64 x 1/2)) 918938533204673/1000000000000000) |
(+.f64 918938533204673/1000000000000000 (*.f64 y (-.f64 x 1/2))) |
(+.f64 918938533204673/1000000000000000 (*.f64 y (+.f64 x -1/2))) |
(*.f64 y x) |
(-.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) (*.f64 1/2 y)) |
(+.f64 (*.f64 y (-.f64 x 1/2)) 918938533204673/1000000000000000) |
(+.f64 918938533204673/1000000000000000 (*.f64 y (-.f64 x 1/2))) |
(+.f64 918938533204673/1000000000000000 (*.f64 y (+.f64 x -1/2))) |
(-.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) (*.f64 1/2 y)) |
(+.f64 (*.f64 y (-.f64 x 1/2)) 918938533204673/1000000000000000) |
(+.f64 918938533204673/1000000000000000 (*.f64 y (-.f64 x 1/2))) |
(+.f64 918938533204673/1000000000000000 (*.f64 y (+.f64 x -1/2))) |
(-.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) (*.f64 1/2 y)) |
(+.f64 (*.f64 y (-.f64 x 1/2)) 918938533204673/1000000000000000) |
(+.f64 918938533204673/1000000000000000 (*.f64 y (-.f64 x 1/2))) |
(+.f64 918938533204673/1000000000000000 (*.f64 y (+.f64 x -1/2))) |
(*.f64 y x) |
(-.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) (*.f64 1/2 y)) |
(+.f64 (*.f64 y (-.f64 x 1/2)) 918938533204673/1000000000000000) |
(+.f64 918938533204673/1000000000000000 (*.f64 y (-.f64 x 1/2))) |
(+.f64 918938533204673/1000000000000000 (*.f64 y (+.f64 x -1/2))) |
(-.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) (*.f64 1/2 y)) |
(+.f64 (*.f64 y (-.f64 x 1/2)) 918938533204673/1000000000000000) |
(+.f64 918938533204673/1000000000000000 (*.f64 y (-.f64 x 1/2))) |
(+.f64 918938533204673/1000000000000000 (*.f64 y (+.f64 x -1/2))) |
(-.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) (*.f64 1/2 y)) |
(+.f64 (*.f64 y (-.f64 x 1/2)) 918938533204673/1000000000000000) |
(+.f64 918938533204673/1000000000000000 (*.f64 y (-.f64 x 1/2))) |
(+.f64 918938533204673/1000000000000000 (*.f64 y (+.f64 x -1/2))) |
(+.f64 (*.f64 y x) (/.f64 y -2)) |
(*.f64 y (-.f64 x 1/2)) |
(*.f64 y (+.f64 x -1/2)) |
(+.f64 (*.f64 y (+.f64 x -1/2)) 0) |
(*.f64 y (-.f64 x 1/2)) |
(*.f64 y (+.f64 x -1/2)) |
(+.f64 0 (*.f64 y (+.f64 x -1/2))) |
(*.f64 y (-.f64 x 1/2)) |
(*.f64 y (+.f64 x -1/2)) |
(+.f64 (/.f64 y -2) (*.f64 y x)) |
(*.f64 y (-.f64 x 1/2)) |
(*.f64 y (+.f64 x -1/2)) |
(+.f64 -1 (+.f64 (*.f64 y (+.f64 x -1/2)) 1)) |
(*.f64 y (-.f64 x 1/2)) |
(*.f64 y (+.f64 x -1/2)) |
(+.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 1) -1) |
(*.f64 y (-.f64 x 1/2)) |
(*.f64 y (+.f64 x -1/2)) |
(+.f64 (*.f64 (*.f64 y 1/2) (+.f64 x -1/2)) (*.f64 (*.f64 y 1/2) (+.f64 x -1/2))) |
(*.f64 y (-.f64 x 1/2)) |
(*.f64 y (+.f64 x -1/2)) |
(*.f64 y (+.f64 x -1/2)) |
(*.f64 y (-.f64 x 1/2)) |
(*.f64 y (*.f64 1/2 (*.f64 2 (+.f64 x -1/2)))) |
(*.f64 y (-.f64 x 1/2)) |
(*.f64 y (+.f64 x -1/2)) |
(*.f64 y (neg.f64 (-.f64 1/2 x))) |
(*.f64 y (-.f64 x 1/2)) |
(*.f64 y (+.f64 x -1/2)) |
(*.f64 1/2 (*.f64 y (*.f64 2 (+.f64 x -1/2)))) |
(*.f64 y (-.f64 x 1/2)) |
(*.f64 y (+.f64 x -1/2)) |
(*.f64 (*.f64 y 1/2) (*.f64 2 (+.f64 x -1/2))) |
(*.f64 y (-.f64 x 1/2)) |
(*.f64 y (+.f64 x -1/2)) |
(*.f64 (*.f64 y 1/2) (+.f64 x (-.f64 x 1))) |
(*.f64 y (-.f64 x 1/2)) |
(*.f64 y (+.f64 x -1/2)) |
(*.f64 (*.f64 y (+.f64 x -1/2)) 1) |
(*.f64 y (-.f64 x 1/2)) |
(*.f64 y (+.f64 x -1/2)) |
(*.f64 1 (*.f64 y (+.f64 x -1/2))) |
(*.f64 y (-.f64 x 1/2)) |
(*.f64 y (+.f64 x -1/2)) |
(*.f64 2 (*.f64 (*.f64 y 1/2) (+.f64 x -1/2))) |
(*.f64 y (-.f64 x 1/2)) |
(*.f64 y (+.f64 x -1/2)) |
(*.f64 2 (-.f64 (*.f64 y (*.f64 x 1/2)) (*.f64 y 1/4))) |
(*.f64 2 (-.f64 (*.f64 x (*.f64 y 1/2)) (*.f64 y 1/4))) |
(*.f64 2 (*.f64 y (-.f64 (*.f64 x 1/2) 1/4))) |
(*.f64 (*.f64 y (*.f64 2 (+.f64 x -1/2))) 1/2) |
(*.f64 y (-.f64 x 1/2)) |
(*.f64 y (+.f64 x -1/2)) |
(*.f64 (+.f64 y y) (*.f64 1/2 (+.f64 x -1/2))) |
(*.f64 y (-.f64 x 1/2)) |
(*.f64 y (+.f64 x -1/2)) |
(*.f64 (+.f64 y y) (*.f64 (*.f64 2 (+.f64 x -1/2)) 1/4)) |
(*.f64 y (-.f64 x 1/2)) |
(*.f64 y (+.f64 x -1/2)) |
(*.f64 (+.f64 y y) (/.f64 (+.f64 x -1/2) 2)) |
(*.f64 y (-.f64 x 1/2)) |
(*.f64 y (+.f64 x -1/2)) |
(*.f64 (+.f64 y y) (-.f64 (*.f64 x 1/2) 1/4)) |
(*.f64 (+.f64 y y) (-.f64 (*.f64 (+.f64 x x) 1/4) 1/4)) |
(*.f64 (+.f64 y y) (-.f64 (*.f64 1/4 (+.f64 x x)) 1/4)) |
(*.f64 (*.f64 y (-.f64 1/2 x)) -1) |
(*.f64 y (-.f64 x 1/2)) |
(*.f64 y (+.f64 x -1/2)) |
(*.f64 (+.f64 x -1/2) y) |
(*.f64 y (-.f64 x 1/2)) |
(*.f64 y (+.f64 x -1/2)) |
(*.f64 4 (*.f64 (+.f64 x -1/2) (*.f64 y 1/4))) |
(*.f64 y (-.f64 x 1/2)) |
(*.f64 y (+.f64 x -1/2)) |
(*.f64 4 (/.f64 (*.f64 y (+.f64 x -1/2)) 4)) |
(*.f64 y (-.f64 x 1/2)) |
(*.f64 y (+.f64 x -1/2)) |
(*.f64 (*.f64 y 4) (*.f64 (+.f64 x -1/2) 1/4)) |
(*.f64 y (-.f64 x 1/2)) |
(*.f64 y (+.f64 x -1/2)) |
(*.f64 (*.f64 y (*.f64 (+.f64 x -1/2) 4)) 1/4) |
(*.f64 y (-.f64 x 1/2)) |
(*.f64 y (+.f64 x -1/2)) |
(*.f64 (-.f64 1/2 x) (neg.f64 y)) |
(*.f64 y (-.f64 x 1/2)) |
(*.f64 y (+.f64 x -1/2)) |
(*.f64 -1 (*.f64 y (-.f64 1/2 x))) |
(*.f64 y (-.f64 x 1/2)) |
(*.f64 y (+.f64 x -1/2)) |
(*.f64 8 (*.f64 (/.f64 y 8) (+.f64 x -1/2))) |
(*.f64 y (-.f64 x 1/2)) |
(*.f64 y (+.f64 x -1/2)) |
(*.f64 (*.f64 y 8) (*.f64 1/8 (+.f64 x -1/2))) |
(*.f64 y (-.f64 x 1/2)) |
(*.f64 y (+.f64 x -1/2)) |
(*.f64 (*.f64 2 (+.f64 x -1/2)) (*.f64 y 1/2)) |
(*.f64 y (-.f64 x 1/2)) |
(*.f64 y (+.f64 x -1/2)) |
(*.f64 1/4 (*.f64 y (*.f64 (+.f64 x -1/2) 4))) |
(*.f64 y (-.f64 x 1/2)) |
(*.f64 y (+.f64 x -1/2)) |
(*.f64 (*.f64 (*.f64 y 1/2) (+.f64 x -1/2)) 2) |
(*.f64 y (-.f64 x 1/2)) |
(*.f64 y (+.f64 x -1/2)) |
(*.f64 (*.f64 1/2 (+.f64 x -1/2)) (+.f64 y y)) |
(*.f64 y (-.f64 x 1/2)) |
(*.f64 y (+.f64 x -1/2)) |
(*.f64 (*.f64 1/2 (*.f64 2 (+.f64 x -1/2))) y) |
(*.f64 y (-.f64 x 1/2)) |
(*.f64 y (+.f64 x -1/2)) |
(*.f64 (*.f64 (*.f64 2 (+.f64 x -1/2)) 1/4) (+.f64 y y)) |
(*.f64 y (-.f64 x 1/2)) |
(*.f64 y (+.f64 x -1/2)) |
(*.f64 (*.f64 (+.f64 x -1/2) (*.f64 y 1/4)) 4) |
(*.f64 y (-.f64 x 1/2)) |
(*.f64 y (+.f64 x -1/2)) |
(*.f64 (*.f64 (+.f64 x -1/2) 1/4) (*.f64 y 4)) |
(*.f64 y (-.f64 x 1/2)) |
(*.f64 y (+.f64 x -1/2)) |
(*.f64 (/.f64 (+.f64 x -1/2) 2) (+.f64 y y)) |
(*.f64 y (-.f64 x 1/2)) |
(*.f64 y (+.f64 x -1/2)) |
(*.f64 (neg.f64 y) (-.f64 1/2 x)) |
(*.f64 y (-.f64 x 1/2)) |
(*.f64 y (+.f64 x -1/2)) |
(*.f64 (neg.f64 (-.f64 1/2 x)) y) |
(*.f64 y (-.f64 x 1/2)) |
(*.f64 y (+.f64 x -1/2)) |
(*.f64 (/.f64 (*.f64 y (+.f64 x -1/2)) 4) 4) |
(*.f64 y (-.f64 x 1/2)) |
(*.f64 y (+.f64 x -1/2)) |
(*.f64 (+.f64 x (-.f64 x 1)) (*.f64 y 1/2)) |
(*.f64 y (-.f64 x 1/2)) |
(*.f64 y (+.f64 x -1/2)) |
(/.f64 (*.f64 y (+.f64 x -1/2)) 1) |
(*.f64 y (-.f64 x 1/2)) |
(*.f64 y (+.f64 x -1/2)) |
(/.f64 (*.f64 y (*.f64 2 (+.f64 x -1/2))) 2) |
(*.f64 y (-.f64 x 1/2)) |
(*.f64 y (+.f64 x -1/2)) |
(/.f64 (*.f64 y (-.f64 1/2 x)) -1) |
(*.f64 y (-.f64 x 1/2)) |
(*.f64 y (+.f64 x -1/2)) |
(/.f64 (*.f64 y (*.f64 (+.f64 x -1/2) 4)) 4) |
(*.f64 y (-.f64 x 1/2)) |
(*.f64 y (+.f64 x -1/2)) |
(/.f64 (*.f64 (*.f64 y (+.f64 x -1/2)) 8) 8) |
(*.f64 y (-.f64 x 1/2)) |
(*.f64 y (+.f64 x -1/2)) |
(/.f64 (-.f64 y (*.f64 y (+.f64 x x))) -2) |
(*.f64 y (-.f64 x 1/2)) |
(*.f64 y (+.f64 x -1/2)) |
(/.f64 (*.f64 2 (*.f64 (*.f64 y (+.f64 x -1/2)) 8)) 16) |
(*.f64 y (-.f64 x 1/2)) |
(*.f64 y (+.f64 x -1/2)) |
(/.f64 (*.f64 (*.f64 y (-.f64 1/2 x)) 4) -4) |
(*.f64 y (-.f64 x 1/2)) |
(*.f64 y (+.f64 x -1/2)) |
(/.f64 (neg.f64 (-.f64 y (*.f64 y (+.f64 x x)))) 2) |
(*.f64 y (-.f64 x 1/2)) |
(*.f64 y (+.f64 x -1/2)) |
(/.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 y (+.f64 x -1/2)) 8)) (*.f64 2 (*.f64 (*.f64 y (+.f64 x -1/2)) 8))) 32) |
(*.f64 y (-.f64 x 1/2)) |
(*.f64 y (+.f64 x -1/2)) |
(/.f64 (+.f64 (neg.f64 (-.f64 y (*.f64 y (+.f64 x x)))) (neg.f64 (-.f64 y (*.f64 y (+.f64 x x))))) 4) |
(*.f64 y (-.f64 x 1/2)) |
(*.f64 y (+.f64 x -1/2)) |
(/.f64 (/.f64 (*.f64 (*.f64 y (-.f64 1/2 x)) 4) -1) 4) |
(*.f64 y (-.f64 x 1/2)) |
(*.f64 y (+.f64 x -1/2)) |
(neg.f64 (*.f64 y (-.f64 1/2 x))) |
(*.f64 y (-.f64 x 1/2)) |
(*.f64 y (+.f64 x -1/2)) |
(-.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 0) |
(+.f64 (*.f64 y (-.f64 x 1/2)) 918938533204673/1000000000000000) |
(+.f64 918938533204673/1000000000000000 (*.f64 y (-.f64 x 1/2))) |
(+.f64 918938533204673/1000000000000000 (*.f64 y (+.f64 x -1/2))) |
(*.f64 1/2 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 2)) |
(+.f64 (*.f64 y (-.f64 x 1/2)) 918938533204673/1000000000000000) |
(+.f64 918938533204673/1000000000000000 (*.f64 y (-.f64 x 1/2))) |
(+.f64 918938533204673/1000000000000000 (*.f64 y (+.f64 x -1/2))) |
(*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 1) |
(+.f64 (*.f64 y (-.f64 x 1/2)) 918938533204673/1000000000000000) |
(+.f64 918938533204673/1000000000000000 (*.f64 y (-.f64 x 1/2))) |
(+.f64 918938533204673/1000000000000000 (*.f64 y (+.f64 x -1/2))) |
(*.f64 1 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000)) |
(+.f64 (*.f64 y (-.f64 x 1/2)) 918938533204673/1000000000000000) |
(+.f64 918938533204673/1000000000000000 (*.f64 y (-.f64 x 1/2))) |
(+.f64 918938533204673/1000000000000000 (*.f64 y (+.f64 x -1/2))) |
(*.f64 2 (*.f64 1/2 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000))) |
(+.f64 (*.f64 y (-.f64 x 1/2)) 918938533204673/1000000000000000) |
(+.f64 918938533204673/1000000000000000 (*.f64 y (-.f64 x 1/2))) |
(+.f64 918938533204673/1000000000000000 (*.f64 y (+.f64 x -1/2))) |
(*.f64 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 2) 1/2) |
(+.f64 (*.f64 y (-.f64 x 1/2)) 918938533204673/1000000000000000) |
(+.f64 918938533204673/1000000000000000 (*.f64 y (-.f64 x 1/2))) |
(+.f64 918938533204673/1000000000000000 (*.f64 y (+.f64 x -1/2))) |
(*.f64 4 (/.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 4)) |
(+.f64 (*.f64 y (-.f64 x 1/2)) 918938533204673/1000000000000000) |
(+.f64 918938533204673/1000000000000000 (*.f64 y (-.f64 x 1/2))) |
(+.f64 918938533204673/1000000000000000 (*.f64 y (+.f64 x -1/2))) |
(*.f64 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 4) 1/4) |
(+.f64 (*.f64 y (-.f64 x 1/2)) 918938533204673/1000000000000000) |
(+.f64 918938533204673/1000000000000000 (*.f64 y (-.f64 x 1/2))) |
(+.f64 918938533204673/1000000000000000 (*.f64 y (+.f64 x -1/2))) |
(*.f64 (*.f64 1/2 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000)) 2) |
(+.f64 (*.f64 y (-.f64 x 1/2)) 918938533204673/1000000000000000) |
(+.f64 918938533204673/1000000000000000 (*.f64 y (-.f64 x 1/2))) |
(+.f64 918938533204673/1000000000000000 (*.f64 y (+.f64 x -1/2))) |
(*.f64 1/4 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 4)) |
(+.f64 (*.f64 y (-.f64 x 1/2)) 918938533204673/1000000000000000) |
(+.f64 918938533204673/1000000000000000 (*.f64 y (-.f64 x 1/2))) |
(+.f64 918938533204673/1000000000000000 (*.f64 y (+.f64 x -1/2))) |
(*.f64 (/.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 4) 4) |
(+.f64 (*.f64 y (-.f64 x 1/2)) 918938533204673/1000000000000000) |
(+.f64 918938533204673/1000000000000000 (*.f64 y (-.f64 x 1/2))) |
(+.f64 918938533204673/1000000000000000 (*.f64 y (+.f64 x -1/2))) |
(/.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 1) |
(+.f64 (*.f64 y (-.f64 x 1/2)) 918938533204673/1000000000000000) |
(+.f64 918938533204673/1000000000000000 (*.f64 y (-.f64 x 1/2))) |
(+.f64 918938533204673/1000000000000000 (*.f64 y (+.f64 x -1/2))) |
(/.f64 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 2) 2) |
(+.f64 (*.f64 y (-.f64 x 1/2)) 918938533204673/1000000000000000) |
(+.f64 918938533204673/1000000000000000 (*.f64 y (-.f64 x 1/2))) |
(+.f64 918938533204673/1000000000000000 (*.f64 y (+.f64 x -1/2))) |
(/.f64 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 4) 4) |
(+.f64 (*.f64 y (-.f64 x 1/2)) 918938533204673/1000000000000000) |
(+.f64 918938533204673/1000000000000000 (*.f64 y (-.f64 x 1/2))) |
(+.f64 918938533204673/1000000000000000 (*.f64 y (+.f64 x -1/2))) |
(/.f64 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 8) 8) |
(+.f64 (*.f64 y (-.f64 x 1/2)) 918938533204673/1000000000000000) |
(+.f64 918938533204673/1000000000000000 (*.f64 y (-.f64 x 1/2))) |
(+.f64 918938533204673/1000000000000000 (*.f64 y (+.f64 x -1/2))) |
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 8)) 16) |
(+.f64 (*.f64 y (-.f64 x 1/2)) 918938533204673/1000000000000000) |
(+.f64 918938533204673/1000000000000000 (*.f64 y (-.f64 x 1/2))) |
(+.f64 918938533204673/1000000000000000 (*.f64 y (+.f64 x -1/2))) |
(/.f64 (+.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 8)) (*.f64 2 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 8))) 32) |
(+.f64 (*.f64 y (-.f64 x 1/2)) 918938533204673/1000000000000000) |
(+.f64 918938533204673/1000000000000000 (*.f64 y (-.f64 x 1/2))) |
(+.f64 918938533204673/1000000000000000 (*.f64 y (+.f64 x -1/2))) |
Compiled 2013 to 1494 computations (25.8% saved)
11 alts after pruning (7 fresh and 4 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 195 | 6 | 201 |
| Fresh | 0 | 1 | 1 |
| Picked | 1 | 0 | 1 |
| Done | 2 | 4 | 6 |
| Total | 198 | 11 | 209 |
| Status | Error | Program |
|---|---|---|
| ▶ | 17.0b | (-.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) x) |
| ▶ | 25.4b | (-.f64 918938533204673/1000000000000000 x) |
| 20.6b | (+.f64 (*.f64 (+.f64 x (-.f64 x 1)) (*.f64 y 1/2)) 918938533204673/1000000000000000) | |
| ▶ | 38.3b | (+.f64 (*.f64 -1/2 y) (*.f64 y x)) |
| ✓ | 28.2b | (+.f64 (*.f64 -1/2 y) 918938533204673/1000000000000000) |
| ✓ | 35.0b | (*.f64 (-.f64 y 1) x) |
| ✓ | 38.3b | (*.f64 y (-.f64 x 1/2)) |
| ✓ | 54.9b | (*.f64 y x) |
| ▶ | 46.1b | (*.f64 -1/2 y) |
| ▶ | 43.6b | (neg.f64 x) |
| 44.8b | 918938533204673/1000000000000000 |
Compiled 119 to 88 computations (26.1% saved)
Found 2 expressions with local error:
| New | Error | Program |
|---|---|---|
| ✓ | 0.0b | (-.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) x) |
| ✓ | 0.0b | (+.f64 918938533204673/1000000000000000 (*.f64 y x)) |
Compiled 20 to 9 computations (55% saved)
12 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 0.0ms | y | @ | 0 | (+.f64 918938533204673/1000000000000000 (*.f64 y x)) |
| 0.0ms | x | @ | -inf | (-.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) x) |
| 0.0ms | x | @ | inf | (+.f64 918938533204673/1000000000000000 (*.f64 y x)) |
| 0.0ms | y | @ | 0 | (-.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) x) |
| 0.0ms | y | @ | inf | (-.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) x) |
| 1× | batch-egg-rewrite |
| 1764× | bool.json-1 |
| 1764× | bool.json-2 |
| 1712× | rational.json-1 |
| 1712× | rational.json-2 |
| 1146× | bool.json-3 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 8 | 32 |
| 1 | 81 | 32 |
| 2 | 229 | 32 |
| 3 | 513 | 32 |
| 4 | 1152 | 32 |
| 5 | 2791 | 32 |
| 6 | 6272 | 32 |
| 1× | node limit |
| Inputs |
|---|
(+.f64 918938533204673/1000000000000000 (*.f64 y x)) |
(-.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) x) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 918938533204673/1000000000000000 (*.f64 y x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) 8)) (*.f64 2 (*.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (+.f64 918938533204673/1000000000000000 (*.f64 y x))))))) (#(struct:change #<rule egg-rr> (2) ((x and (+.f64 918938533204673/1000000000000000 (*.f64 y x)) (+.f64 918938533204673/1000000000000000 (*.f64 y x)))))) (#(struct:change #<rule egg-rr> (2) ((x or (+.f64 918938533204673/1000000000000000 (*.f64 y x)) (+.f64 918938533204673/1000000000000000 (*.f64 y x))))))) |
((#(struct:change #<rule egg-rr> (2) ((x +.f64 918938533204673/1000000000000000 (-.f64 (*.f64 y x) x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 y x) (+.f64 918938533204673/1000000000000000 (neg.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) (neg.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 918938533204673/1000000000000000 (-.f64 (*.f64 y x) x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (+.f64 918938533204673/1000000000000000 (-.f64 (*.f64 y x) x)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 918938533204673/1000000000000000 x) (*.f64 y x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (*.f64 y x) x) 918938533204673/1000000000000000)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (neg.f64 x) (+.f64 918938533204673/1000000000000000 (*.f64 y x)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -1 (+.f64 (-.f64 (*.f64 y x) x) 1918938533204673/1000000000000000))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 (-.f64 (*.f64 y x) x) 1918938533204673/1000000000000000) -1)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 918938533204673/1000000000000000 (neg.f64 x)) (*.f64 y x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 918938533204673/1000000000000000 (-.f64 (*.f64 y x) x)) 1/2) (*.f64 (+.f64 918938533204673/1000000000000000 (-.f64 (*.f64 y x) x)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 918938533204673/1000000000000000 (-.f64 (*.f64 y x) x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 918938533204673/1000000000000000 (-.f64 (*.f64 y x) x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (+.f64 918938533204673/1000000000000000 (-.f64 (*.f64 y x) x)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (+.f64 (*.f64 y (*.f64 x 1/2)) (/.f64 (+.f64 x -918938533204673/1000000000000000) -2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (-.f64 (*.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) 1/2) (*.f64 x 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 918938533204673/1000000000000000 (-.f64 (*.f64 y x) x)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 x (+.f64 918938533204673/1000000000000000 (*.f64 y x))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (+.f64 918938533204673/1000000000000000 (-.f64 (*.f64 y x) x)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 918938533204673/1000000000000000 (-.f64 (*.f64 y x) x)) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (-.f64 x (+.f64 918938533204673/1000000000000000 (*.f64 y x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (+.f64 918938533204673/1000000000000000 (-.f64 (*.f64 y x) x)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (*.f64 (-.f64 918938533204673/1000000000000000 x) 2) (*.f64 y (+.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (-.f64 (*.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) 2) (+.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 918938533204673/1000000000000000 (-.f64 (*.f64 y x) x)) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (+.f64 918938533204673/1000000000000000 (-.f64 (*.f64 y x) x)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 918938533204673/1000000000000000 (-.f64 (*.f64 y x) x)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 918938533204673/1000000000000000 (-.f64 (*.f64 y x) x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 918938533204673/1000000000000000 (-.f64 (*.f64 y x) x)) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 x (+.f64 918938533204673/1000000000000000 (*.f64 y x))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 918938533204673/1000000000000000 (-.f64 (*.f64 y x) x)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 918938533204673/1000000000000000 (-.f64 (*.f64 y x) x)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (-.f64 x (+.f64 918938533204673/1000000000000000 (*.f64 y x)))) -2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 918938533204673/1000000000000000 (-.f64 (*.f64 y x) x)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 x (+.f64 918938533204673/1000000000000000 (*.f64 y x))) 4) -4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (*.f64 2 (-.f64 x (+.f64 918938533204673/1000000000000000 (*.f64 y x))))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 (+.f64 918938533204673/1000000000000000 (-.f64 (*.f64 y x) x)) 8)) (*.f64 2 (*.f64 (+.f64 918938533204673/1000000000000000 (-.f64 (*.f64 y x) x)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (neg.f64 (*.f64 2 (-.f64 x (+.f64 918938533204673/1000000000000000 (*.f64 y x))))) (neg.f64 (*.f64 2 (-.f64 x (+.f64 918938533204673/1000000000000000 (*.f64 y x)))))) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (*.f64 (-.f64 x (+.f64 918938533204673/1000000000000000 (*.f64 y x))) 4) -1) 4)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (-.f64 x (+.f64 918938533204673/1000000000000000 (*.f64 y x))))))) (#(struct:change #<rule egg-rr> (2) ((x not (not (+.f64 918938533204673/1000000000000000 (-.f64 (*.f64 y x) x))))))) (#(struct:change #<rule egg-rr> (2) ((x and (+.f64 918938533204673/1000000000000000 (-.f64 (*.f64 y x) x)) (+.f64 918938533204673/1000000000000000 (-.f64 (*.f64 y x) x)))))) (#(struct:change #<rule egg-rr> (2) ((x or (+.f64 918938533204673/1000000000000000 (-.f64 (*.f64 y x) x)) (+.f64 918938533204673/1000000000000000 (-.f64 (*.f64 y x) x))))))) |
| 1× | egg-herbie |
| 1852× | rational.json-simplify-52 |
| 1722× | rational.json-simplify-35 |
| 1718× | rational.json-simplify-2 |
| 1194× | rational.json-simplify-48 |
| 1126× | rational.json-simplify-1 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 126 | 1322 |
| 1 | 252 | 1322 |
| 2 | 609 | 1322 |
| 3 | 1476 | 1322 |
| 4 | 3004 | 1322 |
| 5 | 3827 | 1322 |
| 6 | 4246 | 1322 |
| 7 | 5187 | 1322 |
| 8 | 6017 | 1322 |
| 9 | 6445 | 1322 |
| 10 | 7187 | 1322 |
| 11 | 7416 | 1322 |
| 12 | 7455 | 1322 |
| 13 | 7457 | 1322 |
| 14 | 7457 | 1322 |
| 1× | node limit |
| Inputs |
|---|
918938533204673/1000000000000000 |
(*.f64 y x) |
(*.f64 y x) |
918938533204673/1000000000000000 |
(*.f64 y x) |
(*.f64 y x) |
(-.f64 918938533204673/1000000000000000 x) |
(*.f64 y x) |
(*.f64 y x) |
918938533204673/1000000000000000 |
(+.f64 (*.f64 (-.f64 y 1) x) 918938533204673/1000000000000000) |
(+.f64 (*.f64 (-.f64 y 1) x) 918938533204673/1000000000000000) |
(+.f64 (*.f64 (-.f64 y 1) x) 918938533204673/1000000000000000) |
(*.f64 (-.f64 y 1) x) |
(+.f64 918938533204673/1000000000000000 (*.f64 (-.f64 y 1) x)) |
(+.f64 918938533204673/1000000000000000 (*.f64 (-.f64 y 1) x)) |
(+.f64 918938533204673/1000000000000000 (*.f64 (-.f64 y 1) x)) |
(*.f64 -1 (*.f64 (+.f64 1 (*.f64 -1 y)) x)) |
(+.f64 918938533204673/1000000000000000 (*.f64 -1 (*.f64 (+.f64 1 (*.f64 -1 y)) x))) |
(+.f64 918938533204673/1000000000000000 (*.f64 -1 (*.f64 (+.f64 1 (*.f64 -1 y)) x))) |
(+.f64 918938533204673/1000000000000000 (*.f64 -1 (*.f64 (+.f64 1 (*.f64 -1 y)) x))) |
(-.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) 0) |
(*.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) 1) |
(*.f64 1 (+.f64 918938533204673/1000000000000000 (*.f64 y x))) |
(*.f64 2 (*.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) 1/2)) |
(*.f64 (*.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) 2) 1/2) |
(*.f64 4 (/.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) 4)) |
(*.f64 (*.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) 4) 1/4) |
(*.f64 1/2 (*.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) 2)) |
(*.f64 (*.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) 1/2) 2) |
(*.f64 1/4 (*.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) 4)) |
(*.f64 (/.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) 4) 4) |
(/.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) 1) |
(/.f64 (*.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) 2) 2) |
(/.f64 (*.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) 4) 4) |
(/.f64 (*.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) 8) 8) |
(/.f64 (*.f64 2 (*.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) 8)) 16) |
(/.f64 (+.f64 (*.f64 2 (*.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) 8)) (*.f64 2 (*.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) 8))) 32) |
(+.f64 918938533204673/1000000000000000 (-.f64 (*.f64 y x) x)) |
(+.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x)) |
(+.f64 (*.f64 y x) (+.f64 918938533204673/1000000000000000 (neg.f64 x))) |
(+.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) (neg.f64 x)) |
(+.f64 (+.f64 918938533204673/1000000000000000 (-.f64 (*.f64 y x) x)) 0) |
(+.f64 0 (+.f64 918938533204673/1000000000000000 (-.f64 (*.f64 y x) x))) |
(+.f64 (-.f64 918938533204673/1000000000000000 x) (*.f64 y x)) |
(+.f64 (-.f64 (*.f64 y x) x) 918938533204673/1000000000000000) |
(+.f64 (neg.f64 x) (+.f64 918938533204673/1000000000000000 (*.f64 y x))) |
(+.f64 -1 (+.f64 (-.f64 (*.f64 y x) x) 1918938533204673/1000000000000000)) |
(+.f64 (+.f64 (-.f64 (*.f64 y x) x) 1918938533204673/1000000000000000) -1) |
(+.f64 (+.f64 918938533204673/1000000000000000 (neg.f64 x)) (*.f64 y x)) |
(+.f64 (*.f64 (+.f64 918938533204673/1000000000000000 (-.f64 (*.f64 y x) x)) 1/2) (*.f64 (+.f64 918938533204673/1000000000000000 (-.f64 (*.f64 y x) x)) 1/2)) |
(*.f64 (+.f64 918938533204673/1000000000000000 (-.f64 (*.f64 y x) x)) 1) |
(*.f64 1 (+.f64 918938533204673/1000000000000000 (-.f64 (*.f64 y x) x))) |
(*.f64 2 (*.f64 (+.f64 918938533204673/1000000000000000 (-.f64 (*.f64 y x) x)) 1/2)) |
(*.f64 2 (+.f64 (*.f64 y (*.f64 x 1/2)) (/.f64 (+.f64 x -918938533204673/1000000000000000) -2))) |
(*.f64 2 (-.f64 (*.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) 1/2) (*.f64 x 1/2))) |
(*.f64 (*.f64 (+.f64 918938533204673/1000000000000000 (-.f64 (*.f64 y x) x)) 2) 1/2) |
(*.f64 (-.f64 x (+.f64 918938533204673/1000000000000000 (*.f64 y x))) -1) |
(*.f64 4 (/.f64 (+.f64 918938533204673/1000000000000000 (-.f64 (*.f64 y x) x)) 4)) |
(*.f64 (*.f64 (+.f64 918938533204673/1000000000000000 (-.f64 (*.f64 y x) x)) 4) 1/4) |
(*.f64 -1 (-.f64 x (+.f64 918938533204673/1000000000000000 (*.f64 y x)))) |
(*.f64 1/2 (*.f64 (+.f64 918938533204673/1000000000000000 (-.f64 (*.f64 y x) x)) 2)) |
(*.f64 1/2 (+.f64 (*.f64 (-.f64 918938533204673/1000000000000000 x) 2) (*.f64 y (+.f64 x x)))) |
(*.f64 1/2 (-.f64 (*.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) 2) (+.f64 x x))) |
(*.f64 (*.f64 (+.f64 918938533204673/1000000000000000 (-.f64 (*.f64 y x) x)) 1/2) 2) |
(*.f64 1/4 (*.f64 (+.f64 918938533204673/1000000000000000 (-.f64 (*.f64 y x) x)) 4)) |
(*.f64 (/.f64 (+.f64 918938533204673/1000000000000000 (-.f64 (*.f64 y x) x)) 4) 4) |
(/.f64 (+.f64 918938533204673/1000000000000000 (-.f64 (*.f64 y x) x)) 1) |
(/.f64 (*.f64 (+.f64 918938533204673/1000000000000000 (-.f64 (*.f64 y x) x)) 2) 2) |
(/.f64 (-.f64 x (+.f64 918938533204673/1000000000000000 (*.f64 y x))) -1) |
(/.f64 (*.f64 (+.f64 918938533204673/1000000000000000 (-.f64 (*.f64 y x) x)) 4) 4) |
(/.f64 (*.f64 (+.f64 918938533204673/1000000000000000 (-.f64 (*.f64 y x) x)) 8) 8) |
(/.f64 (*.f64 2 (-.f64 x (+.f64 918938533204673/1000000000000000 (*.f64 y x)))) -2) |
(/.f64 (*.f64 2 (*.f64 (+.f64 918938533204673/1000000000000000 (-.f64 (*.f64 y x) x)) 8)) 16) |
(/.f64 (*.f64 (-.f64 x (+.f64 918938533204673/1000000000000000 (*.f64 y x))) 4) -4) |
(/.f64 (neg.f64 (*.f64 2 (-.f64 x (+.f64 918938533204673/1000000000000000 (*.f64 y x))))) 2) |
(/.f64 (+.f64 (*.f64 2 (*.f64 (+.f64 918938533204673/1000000000000000 (-.f64 (*.f64 y x) x)) 8)) (*.f64 2 (*.f64 (+.f64 918938533204673/1000000000000000 (-.f64 (*.f64 y x) x)) 8))) 32) |
(/.f64 (+.f64 (neg.f64 (*.f64 2 (-.f64 x (+.f64 918938533204673/1000000000000000 (*.f64 y x))))) (neg.f64 (*.f64 2 (-.f64 x (+.f64 918938533204673/1000000000000000 (*.f64 y x)))))) 4) |
(/.f64 (/.f64 (*.f64 (-.f64 x (+.f64 918938533204673/1000000000000000 (*.f64 y x))) 4) -1) 4) |
(neg.f64 (-.f64 x (+.f64 918938533204673/1000000000000000 (*.f64 y x)))) |
| Outputs |
|---|
918938533204673/1000000000000000 |
(*.f64 y x) |
(*.f64 y x) |
918938533204673/1000000000000000 |
(*.f64 y x) |
(*.f64 y x) |
(-.f64 918938533204673/1000000000000000 x) |
(*.f64 y x) |
(*.f64 y x) |
918938533204673/1000000000000000 |
(+.f64 (*.f64 (-.f64 y 1) x) 918938533204673/1000000000000000) |
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 y -1))) |
(+.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x)) |
(+.f64 (*.f64 (-.f64 y 1) x) 918938533204673/1000000000000000) |
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 y -1))) |
(+.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x)) |
(+.f64 (*.f64 (-.f64 y 1) x) 918938533204673/1000000000000000) |
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 y -1))) |
(+.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x)) |
(*.f64 (-.f64 y 1) x) |
(*.f64 x (+.f64 y -1)) |
(-.f64 (*.f64 y x) x) |
(+.f64 918938533204673/1000000000000000 (*.f64 (-.f64 y 1) x)) |
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 y -1))) |
(+.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x)) |
(+.f64 918938533204673/1000000000000000 (*.f64 (-.f64 y 1) x)) |
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 y -1))) |
(+.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x)) |
(+.f64 918938533204673/1000000000000000 (*.f64 (-.f64 y 1) x)) |
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 y -1))) |
(+.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x)) |
(*.f64 -1 (*.f64 (+.f64 1 (*.f64 -1 y)) x)) |
(*.f64 x (+.f64 y -1)) |
(-.f64 (*.f64 y x) x) |
(+.f64 918938533204673/1000000000000000 (*.f64 -1 (*.f64 (+.f64 1 (*.f64 -1 y)) x))) |
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 y -1))) |
(+.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x)) |
(+.f64 918938533204673/1000000000000000 (*.f64 -1 (*.f64 (+.f64 1 (*.f64 -1 y)) x))) |
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 y -1))) |
(+.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x)) |
(+.f64 918938533204673/1000000000000000 (*.f64 -1 (*.f64 (+.f64 1 (*.f64 -1 y)) x))) |
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 y -1))) |
(+.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x)) |
(-.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) 0) |
(+.f64 918938533204673/1000000000000000 (*.f64 y x)) |
(*.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) 1) |
(+.f64 918938533204673/1000000000000000 (*.f64 y x)) |
(*.f64 1 (+.f64 918938533204673/1000000000000000 (*.f64 y x))) |
(+.f64 918938533204673/1000000000000000 (*.f64 y x)) |
(*.f64 2 (*.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) 1/2)) |
(+.f64 918938533204673/1000000000000000 (*.f64 y x)) |
(*.f64 (*.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) 2) 1/2) |
(+.f64 918938533204673/1000000000000000 (*.f64 y x)) |
(*.f64 4 (/.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) 4)) |
(+.f64 918938533204673/1000000000000000 (*.f64 y x)) |
(*.f64 (*.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) 4) 1/4) |
(+.f64 918938533204673/1000000000000000 (*.f64 y x)) |
(*.f64 1/2 (*.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) 2)) |
(+.f64 918938533204673/1000000000000000 (*.f64 y x)) |
(*.f64 (*.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) 1/2) 2) |
(+.f64 918938533204673/1000000000000000 (*.f64 y x)) |
(*.f64 1/4 (*.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) 4)) |
(+.f64 918938533204673/1000000000000000 (*.f64 y x)) |
(*.f64 (/.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) 4) 4) |
(+.f64 918938533204673/1000000000000000 (*.f64 y x)) |
(/.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) 1) |
(+.f64 918938533204673/1000000000000000 (*.f64 y x)) |
(/.f64 (*.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) 2) 2) |
(+.f64 918938533204673/1000000000000000 (*.f64 y x)) |
(/.f64 (*.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) 4) 4) |
(+.f64 918938533204673/1000000000000000 (*.f64 y x)) |
(/.f64 (*.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) 8) 8) |
(+.f64 918938533204673/1000000000000000 (*.f64 y x)) |
(/.f64 (*.f64 2 (*.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) 8)) 16) |
(+.f64 918938533204673/1000000000000000 (*.f64 y x)) |
(/.f64 (+.f64 (*.f64 2 (*.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) 8)) (*.f64 2 (*.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) 8))) 32) |
(+.f64 918938533204673/1000000000000000 (*.f64 y x)) |
(+.f64 918938533204673/1000000000000000 (-.f64 (*.f64 y x) x)) |
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 y -1))) |
(+.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x)) |
(+.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x)) |
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 y -1))) |
(+.f64 (*.f64 y x) (+.f64 918938533204673/1000000000000000 (neg.f64 x))) |
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 y -1))) |
(+.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x)) |
(+.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) (neg.f64 x)) |
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 y -1))) |
(+.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x)) |
(+.f64 (+.f64 918938533204673/1000000000000000 (-.f64 (*.f64 y x) x)) 0) |
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 y -1))) |
(+.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x)) |
(+.f64 0 (+.f64 918938533204673/1000000000000000 (-.f64 (*.f64 y x) x))) |
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 y -1))) |
(+.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x)) |
(+.f64 (-.f64 918938533204673/1000000000000000 x) (*.f64 y x)) |
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 y -1))) |
(+.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x)) |
(+.f64 (-.f64 (*.f64 y x) x) 918938533204673/1000000000000000) |
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 y -1))) |
(+.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x)) |
(+.f64 (neg.f64 x) (+.f64 918938533204673/1000000000000000 (*.f64 y x))) |
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 y -1))) |
(+.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x)) |
(+.f64 -1 (+.f64 (-.f64 (*.f64 y x) x) 1918938533204673/1000000000000000)) |
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 y -1))) |
(+.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x)) |
(+.f64 (+.f64 (-.f64 (*.f64 y x) x) 1918938533204673/1000000000000000) -1) |
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 y -1))) |
(+.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x)) |
(+.f64 (+.f64 918938533204673/1000000000000000 (neg.f64 x)) (*.f64 y x)) |
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 y -1))) |
(+.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x)) |
(+.f64 (*.f64 (+.f64 918938533204673/1000000000000000 (-.f64 (*.f64 y x) x)) 1/2) (*.f64 (+.f64 918938533204673/1000000000000000 (-.f64 (*.f64 y x) x)) 1/2)) |
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 y -1))) |
(+.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x)) |
(*.f64 (+.f64 918938533204673/1000000000000000 (-.f64 (*.f64 y x) x)) 1) |
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 y -1))) |
(+.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x)) |
(*.f64 1 (+.f64 918938533204673/1000000000000000 (-.f64 (*.f64 y x) x))) |
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 y -1))) |
(+.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x)) |
(*.f64 2 (*.f64 (+.f64 918938533204673/1000000000000000 (-.f64 (*.f64 y x) x)) 1/2)) |
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 y -1))) |
(+.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x)) |
(*.f64 2 (+.f64 (*.f64 y (*.f64 x 1/2)) (/.f64 (+.f64 x -918938533204673/1000000000000000) -2))) |
(*.f64 2 (+.f64 (*.f64 x (*.f64 1/2 y)) (/.f64 (+.f64 x -918938533204673/1000000000000000) -2))) |
(*.f64 2 (+.f64 (*.f64 x (*.f64 y 1/2)) (/.f64 (+.f64 x -918938533204673/1000000000000000) -2))) |
(*.f64 2 (-.f64 (*.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) 1/2) (*.f64 x 1/2))) |
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 y -1))) |
(+.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x)) |
(*.f64 (*.f64 (+.f64 918938533204673/1000000000000000 (-.f64 (*.f64 y x) x)) 2) 1/2) |
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 y -1))) |
(+.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x)) |
(*.f64 (-.f64 x (+.f64 918938533204673/1000000000000000 (*.f64 y x))) -1) |
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 y -1))) |
(+.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x)) |
(*.f64 4 (/.f64 (+.f64 918938533204673/1000000000000000 (-.f64 (*.f64 y x) x)) 4)) |
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 y -1))) |
(+.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x)) |
(*.f64 (*.f64 (+.f64 918938533204673/1000000000000000 (-.f64 (*.f64 y x) x)) 4) 1/4) |
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 y -1))) |
(+.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x)) |
(*.f64 -1 (-.f64 x (+.f64 918938533204673/1000000000000000 (*.f64 y x)))) |
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 y -1))) |
(+.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x)) |
(*.f64 1/2 (*.f64 (+.f64 918938533204673/1000000000000000 (-.f64 (*.f64 y x) x)) 2)) |
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 y -1))) |
(+.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x)) |
(*.f64 1/2 (+.f64 (*.f64 (-.f64 918938533204673/1000000000000000 x) 2) (*.f64 y (+.f64 x x)))) |
(*.f64 1/2 (-.f64 (*.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) 2) (+.f64 x x))) |
(*.f64 (*.f64 (+.f64 918938533204673/1000000000000000 (-.f64 (*.f64 y x) x)) 1/2) 2) |
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 y -1))) |
(+.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x)) |
(*.f64 1/4 (*.f64 (+.f64 918938533204673/1000000000000000 (-.f64 (*.f64 y x) x)) 4)) |
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 y -1))) |
(+.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x)) |
(*.f64 (/.f64 (+.f64 918938533204673/1000000000000000 (-.f64 (*.f64 y x) x)) 4) 4) |
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 y -1))) |
(+.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x)) |
(/.f64 (+.f64 918938533204673/1000000000000000 (-.f64 (*.f64 y x) x)) 1) |
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 y -1))) |
(+.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x)) |
(/.f64 (*.f64 (+.f64 918938533204673/1000000000000000 (-.f64 (*.f64 y x) x)) 2) 2) |
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 y -1))) |
(+.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x)) |
(/.f64 (-.f64 x (+.f64 918938533204673/1000000000000000 (*.f64 y x))) -1) |
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 y -1))) |
(+.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x)) |
(/.f64 (*.f64 (+.f64 918938533204673/1000000000000000 (-.f64 (*.f64 y x) x)) 4) 4) |
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 y -1))) |
(+.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x)) |
(/.f64 (*.f64 (+.f64 918938533204673/1000000000000000 (-.f64 (*.f64 y x) x)) 8) 8) |
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 y -1))) |
(+.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x)) |
(/.f64 (*.f64 2 (-.f64 x (+.f64 918938533204673/1000000000000000 (*.f64 y x)))) -2) |
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 y -1))) |
(+.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x)) |
(/.f64 (*.f64 2 (*.f64 (+.f64 918938533204673/1000000000000000 (-.f64 (*.f64 y x) x)) 8)) 16) |
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 y -1))) |
(+.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x)) |
(/.f64 (*.f64 (-.f64 x (+.f64 918938533204673/1000000000000000 (*.f64 y x))) 4) -4) |
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 y -1))) |
(+.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x)) |
(/.f64 (neg.f64 (*.f64 2 (-.f64 x (+.f64 918938533204673/1000000000000000 (*.f64 y x))))) 2) |
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 y -1))) |
(+.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x)) |
(/.f64 (+.f64 (*.f64 2 (*.f64 (+.f64 918938533204673/1000000000000000 (-.f64 (*.f64 y x) x)) 8)) (*.f64 2 (*.f64 (+.f64 918938533204673/1000000000000000 (-.f64 (*.f64 y x) x)) 8))) 32) |
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 y -1))) |
(+.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x)) |
(/.f64 (+.f64 (neg.f64 (*.f64 2 (-.f64 x (+.f64 918938533204673/1000000000000000 (*.f64 y x))))) (neg.f64 (*.f64 2 (-.f64 x (+.f64 918938533204673/1000000000000000 (*.f64 y x)))))) 4) |
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 y -1))) |
(+.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x)) |
(/.f64 (/.f64 (*.f64 (-.f64 x (+.f64 918938533204673/1000000000000000 (*.f64 y x))) 4) -1) 4) |
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 y -1))) |
(+.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x)) |
(neg.f64 (-.f64 x (+.f64 918938533204673/1000000000000000 (*.f64 y x)))) |
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 y -1))) |
(+.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x)) |
Compiled 5 to 3 computations (40% saved)
Compiled 7 to 5 computations (28.6% saved)
Compiled 7 to 5 computations (28.6% saved)
Found 1 expressions with local error:
| New | Error | Program |
|---|---|---|
| ✓ | 0.0b | (+.f64 (*.f64 -1/2 y) (*.f64 y x)) |
Compiled 18 to 9 computations (50% saved)
6 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 0.0ms | y | @ | 0 | (+.f64 (*.f64 -1/2 y) (*.f64 y x)) |
| 0.0ms | x | @ | 0 | (+.f64 (*.f64 -1/2 y) (*.f64 y x)) |
| 0.0ms | y | @ | inf | (+.f64 (*.f64 -1/2 y) (*.f64 y x)) |
| 0.0ms | y | @ | -inf | (+.f64 (*.f64 -1/2 y) (*.f64 y x)) |
| 0.0ms | x | @ | inf | (+.f64 (*.f64 -1/2 y) (*.f64 y x)) |
| 1× | batch-egg-rewrite |
| 2068× | bool.json-1 |
| 1286× | bool.json-2 |
| 1248× | rational.json-simplify-35 |
| 1236× | rational.json-1 |
| 1236× | rational.json-2 |
Useful iterations: 1 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 8 | 19 |
| 1 | 80 | 13 |
| 2 | 217 | 13 |
| 3 | 467 | 13 |
| 4 | 968 | 13 |
| 5 | 2140 | 13 |
| 6 | 4578 | 13 |
| 7 | 7885 | 13 |
| 1× | node limit |
| Inputs |
|---|
(+.f64 (*.f64 -1/2 y) (*.f64 y x)) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 y (+.f64 -1/2 x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 y (+.f64 -1/2 x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 y (+.f64 -1/2 x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 y (+.f64 -1/2 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 y (/.f64 (+.f64 -1/2 x) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (+.f64 (*.f64 y -1/4) (*.f64 y (*.f64 x 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (*.f64 (+.f64 -1/2 x) 1/2) y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 y (*.f64 2 (+.f64 -1/2 x))) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 y y) (*.f64 (+.f64 -1/2 x) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 y y) (/.f64 (+.f64 -1/2 x) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 y y) (+.f64 -1/4 (*.f64 x 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 -1/2 x) y)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (*.f64 y (+.f64 -1/2 x)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 y (*.f64 4 (+.f64 -1/2 x))) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (+.f64 -1/2 x)) (*.f64 y 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 y (*.f64 2 (+.f64 -1/2 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (neg.f64 y) (*.f64 y (+.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 y (/.f64 (+.f64 -1/2 x) 2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 y 1/2) (*.f64 2 (+.f64 -1/2 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 y 1/2) (+.f64 (+.f64 x x) -1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 -1/2 x) 1/2) (+.f64 y y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 y (*.f64 4 (+.f64 -1/2 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 -1/2 x) 2) (+.f64 y y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 y (+.f64 -1/2 x)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (+.f64 -1/2 x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (*.f64 2 (+.f64 -1/2 x))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (*.f64 4 (+.f64 -1/2 x))) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 y (+.f64 -1/2 x)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 y (+.f64 -1/2 x)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y (+.f64 -1/2 x)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y (+.f64 -1/2 x)) 8))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 y (+.f64 -1/2 x)) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 y (+.f64 -1/2 x))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 y (+.f64 -1/2 x)) (*.f64 y (+.f64 -1/2 x)))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 y (+.f64 -1/2 x)) (*.f64 y (+.f64 -1/2 x))))))) |
| 1× | egg-herbie |
| 3322× | rational.json-simplify-35 |
| 2062× | rational.json-simplify-1 |
| 1916× | rational.json-simplify-48 |
| 1782× | rational.json-simplify-2 |
| 864× | rational.json-simplify-41 |
Useful iterations: 1 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 83 | 664 |
| 1 | 181 | 636 |
| 2 | 377 | 636 |
| 3 | 1239 | 636 |
| 4 | 2427 | 636 |
| 5 | 3553 | 636 |
| 6 | 4305 | 636 |
| 7 | 4511 | 636 |
| 8 | 4680 | 636 |
| 9 | 4920 | 636 |
| 10 | 5211 | 636 |
| 11 | 5445 | 636 |
| 12 | 5938 | 636 |
| 13 | 6142 | 636 |
| 14 | 6502 | 636 |
| 15 | 6664 | 636 |
| 16 | 6664 | 636 |
| 17 | 6666 | 636 |
| 18 | 6763 | 636 |
| 19 | 6858 | 636 |
| 20 | 7083 | 636 |
| 21 | 7222 | 636 |
| 22 | 7361 | 636 |
| 23 | 7462 | 636 |
| 24 | 7555 | 636 |
| 25 | 7648 | 636 |
| 26 | 7741 | 636 |
| 1× | node limit |
| Inputs |
|---|
(*.f64 y (-.f64 x 1/2)) |
(*.f64 y (-.f64 x 1/2)) |
(*.f64 y (-.f64 x 1/2)) |
(*.f64 y (-.f64 x 1/2)) |
(*.f64 y (-.f64 x 1/2)) |
(*.f64 y (-.f64 x 1/2)) |
(*.f64 y (-.f64 x 1/2)) |
(*.f64 y (-.f64 x 1/2)) |
(*.f64 -1 (*.f64 y (+.f64 1/2 (*.f64 -1 x)))) |
(*.f64 -1 (*.f64 y (+.f64 1/2 (*.f64 -1 x)))) |
(*.f64 -1 (*.f64 y (+.f64 1/2 (*.f64 -1 x)))) |
(*.f64 -1 (*.f64 y (+.f64 1/2 (*.f64 -1 x)))) |
(*.f64 -1/2 y) |
(*.f64 y x) |
(*.f64 y x) |
(-.f64 (*.f64 y (+.f64 -1/2 x)) 0) |
(*.f64 y (+.f64 -1/2 x)) |
(*.f64 (*.f64 y (+.f64 -1/2 x)) 1) |
(*.f64 1 (*.f64 y (+.f64 -1/2 x))) |
(*.f64 2 (*.f64 y (/.f64 (+.f64 -1/2 x) 2))) |
(*.f64 2 (+.f64 (*.f64 y -1/4) (*.f64 y (*.f64 x 1/2)))) |
(*.f64 2 (*.f64 (*.f64 (+.f64 -1/2 x) 1/2) y)) |
(*.f64 (*.f64 y (*.f64 2 (+.f64 -1/2 x))) 1/2) |
(*.f64 (+.f64 y y) (*.f64 (+.f64 -1/2 x) 1/2)) |
(*.f64 (+.f64 y y) (/.f64 (+.f64 -1/2 x) 2)) |
(*.f64 (+.f64 y y) (+.f64 -1/4 (*.f64 x 1/2))) |
(*.f64 (+.f64 -1/2 x) y) |
(*.f64 4 (/.f64 (*.f64 y (+.f64 -1/2 x)) 4)) |
(*.f64 (*.f64 y (*.f64 4 (+.f64 -1/2 x))) 1/4) |
(*.f64 (*.f64 2 (+.f64 -1/2 x)) (*.f64 y 1/2)) |
(*.f64 1/2 (*.f64 y (*.f64 2 (+.f64 -1/2 x)))) |
(*.f64 1/2 (+.f64 (neg.f64 y) (*.f64 y (+.f64 x x)))) |
(*.f64 (*.f64 y (/.f64 (+.f64 -1/2 x) 2)) 2) |
(*.f64 (*.f64 y 1/2) (*.f64 2 (+.f64 -1/2 x))) |
(*.f64 (*.f64 y 1/2) (+.f64 (+.f64 x x) -1)) |
(*.f64 (*.f64 (+.f64 -1/2 x) 1/2) (+.f64 y y)) |
(*.f64 1/4 (*.f64 y (*.f64 4 (+.f64 -1/2 x)))) |
(*.f64 (/.f64 (+.f64 -1/2 x) 2) (+.f64 y y)) |
(*.f64 (/.f64 (*.f64 y (+.f64 -1/2 x)) 4) 4) |
(/.f64 (*.f64 y (+.f64 -1/2 x)) 1) |
(/.f64 (*.f64 y (*.f64 2 (+.f64 -1/2 x))) 2) |
(/.f64 (*.f64 y (*.f64 4 (+.f64 -1/2 x))) 4) |
(/.f64 (*.f64 (*.f64 y (+.f64 -1/2 x)) 8) 8) |
(/.f64 (*.f64 2 (*.f64 (*.f64 y (+.f64 -1/2 x)) 8)) 16) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y (+.f64 -1/2 x)) 8))) 32) |
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y (+.f64 -1/2 x)) 8))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 y (+.f64 -1/2 x)) 8)))) 64) |
| Outputs |
|---|
(*.f64 y (-.f64 x 1/2)) |
(*.f64 y (-.f64 x 1/2)) |
(*.f64 y (-.f64 x 1/2)) |
(*.f64 y (-.f64 x 1/2)) |
(*.f64 y (-.f64 x 1/2)) |
(*.f64 y (-.f64 x 1/2)) |
(*.f64 y (-.f64 x 1/2)) |
(*.f64 y (-.f64 x 1/2)) |
(*.f64 -1 (*.f64 y (+.f64 1/2 (*.f64 -1 x)))) |
(*.f64 -1 (*.f64 y (+.f64 1/2 (*.f64 x -1)))) |
(*.f64 (+.f64 1/2 (neg.f64 x)) (neg.f64 y)) |
(*.f64 y (neg.f64 (+.f64 1/2 (neg.f64 x)))) |
(*.f64 -1 (*.f64 y (+.f64 1/2 (*.f64 -1 x)))) |
(*.f64 -1 (*.f64 y (+.f64 1/2 (*.f64 x -1)))) |
(*.f64 (+.f64 1/2 (neg.f64 x)) (neg.f64 y)) |
(*.f64 y (neg.f64 (+.f64 1/2 (neg.f64 x)))) |
(*.f64 -1 (*.f64 y (+.f64 1/2 (*.f64 -1 x)))) |
(*.f64 -1 (*.f64 y (+.f64 1/2 (*.f64 x -1)))) |
(*.f64 (+.f64 1/2 (neg.f64 x)) (neg.f64 y)) |
(*.f64 y (neg.f64 (+.f64 1/2 (neg.f64 x)))) |
(*.f64 -1 (*.f64 y (+.f64 1/2 (*.f64 -1 x)))) |
(*.f64 -1 (*.f64 y (+.f64 1/2 (*.f64 x -1)))) |
(*.f64 (+.f64 1/2 (neg.f64 x)) (neg.f64 y)) |
(*.f64 y (neg.f64 (+.f64 1/2 (neg.f64 x)))) |
(*.f64 -1/2 y) |
(*.f64 y -1/2) |
(*.f64 y x) |
(*.f64 y x) |
(-.f64 (*.f64 y (+.f64 -1/2 x)) 0) |
(*.f64 y (+.f64 x -1/2)) |
(*.f64 y (+.f64 -1/2 x)) |
(*.f64 y (+.f64 x -1/2)) |
(*.f64 (*.f64 y (+.f64 -1/2 x)) 1) |
(*.f64 y (+.f64 x -1/2)) |
(*.f64 1 (*.f64 y (+.f64 -1/2 x))) |
(*.f64 y (+.f64 x -1/2)) |
(*.f64 2 (*.f64 y (/.f64 (+.f64 -1/2 x) 2))) |
(*.f64 y (+.f64 x -1/2)) |
(*.f64 2 (+.f64 (*.f64 y -1/4) (*.f64 y (*.f64 x 1/2)))) |
(*.f64 2 (*.f64 y (+.f64 -1/4 (*.f64 x 1/2)))) |
(*.f64 y (*.f64 (+.f64 -1/4 (*.f64 x 1/2)) 2)) |
(*.f64 y (*.f64 2 (+.f64 -1/4 (*.f64 x 1/2)))) |
(*.f64 (+.f64 y y) (+.f64 -1/4 (*.f64 x 1/2))) |
(*.f64 2 (*.f64 (*.f64 (+.f64 -1/2 x) 1/2) y)) |
(*.f64 y (+.f64 x -1/2)) |
(*.f64 (*.f64 y (*.f64 2 (+.f64 -1/2 x))) 1/2) |
(*.f64 y (+.f64 x -1/2)) |
(*.f64 (+.f64 y y) (*.f64 (+.f64 -1/2 x) 1/2)) |
(*.f64 y (+.f64 x -1/2)) |
(*.f64 (+.f64 y y) (/.f64 (+.f64 -1/2 x) 2)) |
(*.f64 y (+.f64 x -1/2)) |
(*.f64 (+.f64 y y) (+.f64 -1/4 (*.f64 x 1/2))) |
(*.f64 2 (+.f64 (*.f64 y -1/4) (*.f64 y (*.f64 x 1/2)))) |
(*.f64 2 (*.f64 y (+.f64 -1/4 (*.f64 x 1/2)))) |
(*.f64 y (*.f64 (+.f64 -1/4 (*.f64 x 1/2)) 2)) |
(*.f64 y (*.f64 2 (+.f64 -1/4 (*.f64 x 1/2)))) |
(*.f64 (+.f64 -1/2 x) y) |
(*.f64 y (+.f64 x -1/2)) |
(*.f64 4 (/.f64 (*.f64 y (+.f64 -1/2 x)) 4)) |
(*.f64 y (+.f64 x -1/2)) |
(*.f64 (*.f64 y (*.f64 4 (+.f64 -1/2 x))) 1/4) |
(*.f64 y (+.f64 x -1/2)) |
(*.f64 (*.f64 2 (+.f64 -1/2 x)) (*.f64 y 1/2)) |
(*.f64 y (+.f64 x -1/2)) |
(*.f64 1/2 (*.f64 y (*.f64 2 (+.f64 -1/2 x)))) |
(*.f64 y (+.f64 x -1/2)) |
(*.f64 1/2 (+.f64 (neg.f64 y) (*.f64 y (+.f64 x x)))) |
(*.f64 y (+.f64 x -1/2)) |
(*.f64 (*.f64 y (/.f64 (+.f64 -1/2 x) 2)) 2) |
(*.f64 y (+.f64 x -1/2)) |
(*.f64 (*.f64 y 1/2) (*.f64 2 (+.f64 -1/2 x))) |
(*.f64 y (+.f64 x -1/2)) |
(*.f64 (*.f64 y 1/2) (+.f64 (+.f64 x x) -1)) |
(*.f64 y (+.f64 x -1/2)) |
(*.f64 (*.f64 (+.f64 -1/2 x) 1/2) (+.f64 y y)) |
(*.f64 y (+.f64 x -1/2)) |
(*.f64 1/4 (*.f64 y (*.f64 4 (+.f64 -1/2 x)))) |
(*.f64 y (+.f64 x -1/2)) |
(*.f64 (/.f64 (+.f64 -1/2 x) 2) (+.f64 y y)) |
(*.f64 y (+.f64 x -1/2)) |
(*.f64 (/.f64 (*.f64 y (+.f64 -1/2 x)) 4) 4) |
(*.f64 y (+.f64 x -1/2)) |
(/.f64 (*.f64 y (+.f64 -1/2 x)) 1) |
(*.f64 y (+.f64 x -1/2)) |
(/.f64 (*.f64 y (*.f64 2 (+.f64 -1/2 x))) 2) |
(*.f64 y (+.f64 x -1/2)) |
(/.f64 (*.f64 y (*.f64 4 (+.f64 -1/2 x))) 4) |
(*.f64 y (+.f64 x -1/2)) |
(/.f64 (*.f64 (*.f64 y (+.f64 -1/2 x)) 8) 8) |
(*.f64 y (+.f64 x -1/2)) |
(/.f64 (*.f64 2 (*.f64 (*.f64 y (+.f64 -1/2 x)) 8)) 16) |
(*.f64 y (+.f64 x -1/2)) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y (+.f64 -1/2 x)) 8))) 32) |
(*.f64 y (+.f64 x -1/2)) |
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y (+.f64 -1/2 x)) 8))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 y (+.f64 -1/2 x)) 8)))) 64) |
(*.f64 y (+.f64 x -1/2)) |
Compiled 1119 to 699 computations (37.5% saved)
11 alts after pruning (3 fresh and 8 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 115 | 1 | 116 |
| Fresh | 0 | 2 | 2 |
| Picked | 0 | 1 | 1 |
| Done | 1 | 7 | 8 |
| Total | 116 | 11 | 127 |
| Status | Error | Program |
|---|---|---|
| 35.0b | (-.f64 (*.f64 y x) x) | |
| ✓ | 25.4b | (-.f64 918938533204673/1000000000000000 x) |
| 20.6b | (+.f64 (*.f64 (+.f64 x (-.f64 x 1)) (*.f64 y 1/2)) 918938533204673/1000000000000000) | |
| ✓ | 38.3b | (+.f64 (*.f64 -1/2 y) (*.f64 y x)) |
| ✓ | 28.2b | (+.f64 (*.f64 -1/2 y) 918938533204673/1000000000000000) |
| ✓ | 35.0b | (*.f64 (-.f64 y 1) x) |
| ✓ | 38.3b | (*.f64 y (-.f64 x 1/2)) |
| ✓ | 54.9b | (*.f64 y x) |
| ✓ | 46.1b | (*.f64 -1/2 y) |
| ✓ | 43.6b | (neg.f64 x) |
| 44.8b | 918938533204673/1000000000000000 |
Compiled 72 to 53 computations (26.4% saved)
| Inputs |
|---|
918938533204673/1000000000000000 |
(neg.f64 x) |
(*.f64 -1/2 y) |
(*.f64 y x) |
(-.f64 918938533204673/1000000000000000 x) |
(+.f64 (neg.f64 x) 918938533204673/1000000000000000) |
(*.f64 y (-.f64 x 1/2)) |
(*.f64 (-.f64 y 1) x) |
(+.f64 (*.f64 -1/2 y) 918938533204673/1000000000000000) |
(-.f64 (*.f64 y x) x) |
(+.f64 (*.f64 -1/2 y) (*.f64 y x)) |
(+.f64 (*.f64 y (-.f64 x 1/2)) 918938533204673/1000000000000000) |
(+.f64 (*.f64 (-.f64 y 1) x) 918938533204673/1000000000000000) |
(-.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) x) |
(+.f64 (+.f64 (neg.f64 x) (*.f64 y x)) 918938533204673/1000000000000000) |
(+.f64 (-.f64 (*.f64 y x) (*.f64 y 1/2)) 918938533204673/1000000000000000) |
(+.f64 (+.f64 (neg.f64 x) (*.f64 y (-.f64 x 1/2))) 918938533204673/1000000000000000) |
(+.f64 (*.f64 (+.f64 x (-.f64 x 1)) (*.f64 y 1/2)) 918938533204673/1000000000000000) |
(+.f64 (-.f64 (*.f64 x (-.f64 y 1)) (*.f64 y 1/2)) 918938533204673/1000000000000000) |
| Outputs |
|---|
(+.f64 (-.f64 (*.f64 x (-.f64 y 1)) (*.f64 y 1/2)) 918938533204673/1000000000000000) |
4 calls:
| 11.0ms | (-.f64 (*.f64 x (-.f64 y 1)) (*.f64 y 1/2)) |
| 10.0ms | y |
| 9.0ms | x |
| 8.0ms | (+.f64 (-.f64 (*.f64 x (-.f64 y 1)) (*.f64 y 1/2)) 918938533204673/1000000000000000) |
| Error | Segments | Branch |
|---|---|---|
| 0.0b | 1 | x |
| 0.0b | 1 | y |
| 0.0b | 1 | (+.f64 (-.f64 (*.f64 x (-.f64 y 1)) (*.f64 y 1/2)) 918938533204673/1000000000000000) |
| 0.0b | 1 | (-.f64 (*.f64 x (-.f64 y 1)) (*.f64 y 1/2)) |
Compiled 145 to 90 computations (37.9% saved)
| Inputs |
|---|
918938533204673/1000000000000000 |
(neg.f64 x) |
(*.f64 -1/2 y) |
(*.f64 y x) |
(-.f64 918938533204673/1000000000000000 x) |
(+.f64 (neg.f64 x) 918938533204673/1000000000000000) |
(*.f64 y (-.f64 x 1/2)) |
(*.f64 (-.f64 y 1) x) |
(+.f64 (*.f64 -1/2 y) 918938533204673/1000000000000000) |
(-.f64 (*.f64 y x) x) |
(+.f64 (*.f64 -1/2 y) (*.f64 y x)) |
(+.f64 (*.f64 y (-.f64 x 1/2)) 918938533204673/1000000000000000) |
(+.f64 (*.f64 (-.f64 y 1) x) 918938533204673/1000000000000000) |
(-.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) x) |
(+.f64 (+.f64 (neg.f64 x) (*.f64 y x)) 918938533204673/1000000000000000) |
(+.f64 (-.f64 (*.f64 y x) (*.f64 y 1/2)) 918938533204673/1000000000000000) |
(+.f64 (+.f64 (neg.f64 x) (*.f64 y (-.f64 x 1/2))) 918938533204673/1000000000000000) |
(+.f64 (*.f64 (+.f64 x (-.f64 x 1)) (*.f64 y 1/2)) 918938533204673/1000000000000000) |
| Outputs |
|---|
(+.f64 (+.f64 (neg.f64 x) (*.f64 y (-.f64 x 1/2))) 918938533204673/1000000000000000) |
2 calls:
| 10.0ms | x |
| 9.0ms | y |
| Error | Segments | Branch |
|---|---|---|
| 0.0b | 1 | x |
| 0.0b | 1 | y |
Compiled 110 to 64 computations (41.8% saved)
| Inputs |
|---|
918938533204673/1000000000000000 |
(neg.f64 x) |
(*.f64 -1/2 y) |
(*.f64 y x) |
(-.f64 918938533204673/1000000000000000 x) |
(+.f64 (neg.f64 x) 918938533204673/1000000000000000) |
(*.f64 y (-.f64 x 1/2)) |
(*.f64 (-.f64 y 1) x) |
(+.f64 (*.f64 -1/2 y) 918938533204673/1000000000000000) |
(-.f64 (*.f64 y x) x) |
(+.f64 (*.f64 -1/2 y) (*.f64 y x)) |
(+.f64 (*.f64 y (-.f64 x 1/2)) 918938533204673/1000000000000000) |
(+.f64 (*.f64 (-.f64 y 1) x) 918938533204673/1000000000000000) |
(-.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) x) |
(+.f64 (+.f64 (neg.f64 x) (*.f64 y x)) 918938533204673/1000000000000000) |
(+.f64 (-.f64 (*.f64 y x) (*.f64 y 1/2)) 918938533204673/1000000000000000) |
| Outputs |
|---|
(+.f64 (*.f64 (-.f64 y 1) x) 918938533204673/1000000000000000) |
(+.f64 (-.f64 (*.f64 y x) (*.f64 y 1/2)) 918938533204673/1000000000000000) |
(+.f64 (*.f64 (-.f64 y 1) x) 918938533204673/1000000000000000) |
2 calls:
| 24.0ms | x |
| 23.0ms | y |
| Error | Segments | Branch |
|---|---|---|
| 0.4b | 3 | x |
| 0.6b | 3 | y |
Compiled 89 to 50 computations (43.8% saved)
| 2× | binary-search |
| Time | Left | Right |
|---|---|---|
| 16.0ms | 3.939488035470421e-38 | 5.1808661219950835e-30 |
| 13.0ms | -14740280.11391023 | -63945.90558391673 |
| 25.0ms | 256× | body | 256 | valid |
Compiled 370 to 286 computations (22.7% saved)
| Inputs |
|---|
918938533204673/1000000000000000 |
(neg.f64 x) |
(*.f64 -1/2 y) |
(*.f64 y x) |
(-.f64 918938533204673/1000000000000000 x) |
(+.f64 (neg.f64 x) 918938533204673/1000000000000000) |
(*.f64 y (-.f64 x 1/2)) |
(*.f64 (-.f64 y 1) x) |
(+.f64 (*.f64 -1/2 y) 918938533204673/1000000000000000) |
(-.f64 (*.f64 y x) x) |
(+.f64 (*.f64 -1/2 y) (*.f64 y x)) |
(+.f64 (*.f64 y (-.f64 x 1/2)) 918938533204673/1000000000000000) |
(+.f64 (*.f64 (-.f64 y 1) x) 918938533204673/1000000000000000) |
(-.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) x) |
(+.f64 (+.f64 (neg.f64 x) (*.f64 y x)) 918938533204673/1000000000000000) |
| Outputs |
|---|
(+.f64 (*.f64 (-.f64 y 1) x) 918938533204673/1000000000000000) |
(+.f64 (*.f64 y (-.f64 x 1/2)) 918938533204673/1000000000000000) |
(+.f64 (*.f64 (-.f64 y 1) x) 918938533204673/1000000000000000) |
2 calls:
| 23.0ms | x |
| 23.0ms | y |
| Error | Segments | Branch |
|---|---|---|
| 0.4b | 3 | x |
| 0.6b | 3 | y |
Compiled 80 to 45 computations (43.8% saved)
| 2× | binary-search |
| Time | Left | Right |
|---|---|---|
| 16.0ms | 3.939488035470421e-38 | 5.1808661219950835e-30 |
| 12.0ms | -14740280.11391023 | -63945.90558391673 |
| 24.0ms | 256× | body | 256 | valid |
Compiled 338 to 270 computations (20.1% saved)
| Inputs |
|---|
918938533204673/1000000000000000 |
(neg.f64 x) |
(*.f64 -1/2 y) |
(*.f64 y x) |
(-.f64 918938533204673/1000000000000000 x) |
(+.f64 (neg.f64 x) 918938533204673/1000000000000000) |
(*.f64 y (-.f64 x 1/2)) |
(*.f64 (-.f64 y 1) x) |
(+.f64 (*.f64 -1/2 y) 918938533204673/1000000000000000) |
(-.f64 (*.f64 y x) x) |
(+.f64 (*.f64 -1/2 y) (*.f64 y x)) |
(+.f64 (*.f64 y (-.f64 x 1/2)) 918938533204673/1000000000000000) |
| Outputs |
|---|
(*.f64 (-.f64 y 1) x) |
(+.f64 (*.f64 y (-.f64 x 1/2)) 918938533204673/1000000000000000) |
(*.f64 (-.f64 y 1) x) |
2 calls:
| 20.0ms | x |
| 20.0ms | y |
| Error | Segments | Branch |
|---|---|---|
| 1.0b | 3 | x |
| 1.6b | 3 | y |
Compiled 58 to 34 computations (41.4% saved)
| 2× | binary-search |
| Time | Left | Right |
|---|---|---|
| 19.0ms | 6.875795999559287e-7 | 115733996952161.72 |
| 12.0ms | -14740280.11391023 | -63945.90558391673 |
| 27.0ms | 288× | body | 256 | valid |
Compiled 342 to 266 computations (22.2% saved)
| Inputs |
|---|
918938533204673/1000000000000000 |
(neg.f64 x) |
(*.f64 -1/2 y) |
(*.f64 y x) |
(-.f64 918938533204673/1000000000000000 x) |
(+.f64 (neg.f64 x) 918938533204673/1000000000000000) |
(*.f64 y (-.f64 x 1/2)) |
(*.f64 (-.f64 y 1) x) |
(+.f64 (*.f64 -1/2 y) 918938533204673/1000000000000000) |
(-.f64 (*.f64 y x) x) |
(+.f64 (*.f64 -1/2 y) (*.f64 y x)) |
| Outputs |
|---|
(*.f64 (-.f64 y 1) x) |
(+.f64 (*.f64 -1/2 y) 918938533204673/1000000000000000) |
(*.f64 (-.f64 y 1) x) |
2 calls:
| 19.0ms | y |
| 18.0ms | x |
| Error | Segments | Branch |
|---|---|---|
| 1.5b | 3 | x |
| 2.1b | 3 | y |
Compiled 51 to 29 computations (43.1% saved)
| 2× | binary-search |
| Time | Left | Right |
|---|---|---|
| 19.0ms | 6.875795999559287e-7 | 115733996952161.72 |
| 16.0ms | -63945.90558391673 | -0.17890390871090597 |
| 30.0ms | 320× | body | 256 | valid |
Compiled 338 to 274 computations (18.9% saved)
| Inputs |
|---|
918938533204673/1000000000000000 |
(neg.f64 x) |
(*.f64 -1/2 y) |
(*.f64 y x) |
(-.f64 918938533204673/1000000000000000 x) |
(+.f64 (neg.f64 x) 918938533204673/1000000000000000) |
(*.f64 y (-.f64 x 1/2)) |
(*.f64 (-.f64 y 1) x) |
| Outputs |
|---|
(*.f64 y (-.f64 x 1/2)) |
(-.f64 918938533204673/1000000000000000 x) |
(*.f64 y (-.f64 x 1/2)) |
2 calls:
| 29.0ms | x |
| 15.0ms | y |
| Error | Segments | Branch |
|---|---|---|
| 13.8b | 6 | x |
| 2.2b | 3 | y |
Compiled 34 to 21 computations (38.2% saved)
| 2× | binary-search |
| Time | Left | Right |
|---|---|---|
| 9.0ms | 0.8332286219781533 | 2.364689922758369 |
| 14.0ms | -848.933060354832 | -0.29189197902147296 |
| 20.0ms | 208× | body | 256 | valid |
Compiled 200 to 157 computations (21.5% saved)
| Inputs |
|---|
918938533204673/1000000000000000 |
(neg.f64 x) |
(*.f64 -1/2 y) |
(*.f64 y x) |
(-.f64 918938533204673/1000000000000000 x) |
(+.f64 (neg.f64 x) 918938533204673/1000000000000000) |
| Outputs |
|---|
(*.f64 -1/2 y) |
(-.f64 918938533204673/1000000000000000 x) |
(*.f64 -1/2 y) |
2 calls:
| 22.0ms | x |
| 13.0ms | y |
| Error | Segments | Branch |
|---|---|---|
| 21.3b | 5 | x |
| 9.5b | 3 | y |
Compiled 24 to 15 computations (37.5% saved)
| 2× | binary-search |
| Time | Left | Right |
|---|---|---|
| 8.0ms | 0.8332286219781533 | 2.364689922758369 |
| 12.0ms | -14476453796820976000.0 | -822330720342328800.0 |
| 18.0ms | 192× | body | 256 | valid |
| 0.0ms | 1× | body | 256 | infinite |
Compiled 162 to 134 computations (17.3% saved)
| Inputs |
|---|
918938533204673/1000000000000000 |
(neg.f64 x) |
(*.f64 -1/2 y) |
(*.f64 y x) |
| Outputs |
|---|
(*.f64 -1/2 y) |
918938533204673/1000000000000000 |
(neg.f64 x) |
918938533204673/1000000000000000 |
(neg.f64 x) |
918938533204673/1000000000000000 |
(neg.f64 x) |
918938533204673/1000000000000000 |
(*.f64 -1/2 y) |
2 calls:
| 31.0ms | y |
| 17.0ms | x |
| Error | Segments | Branch |
|---|---|---|
| 23.9b | 5 | x |
| 21.0b | 9 | y |
Compiled 17 to 11 computations (35.3% saved)
| 8× | binary-search |
| Time | Left | Right |
|---|---|---|
| 14.0ms | 0.0005512598874770371 | 0.8332286219781533 |
| 16.0ms | 2.7258416938323966e-34 | 1.2851403143341646e-30 |
| 7.0ms | 8.931575094078147e-80 | 1.576256177309835e-79 |
| 12.0ms | 3.093682395947294e-279 | 3.523344304170023e-277 |
| 12.0ms | -6.839457308517321e-296 | -3.4842506370956016e-298 |
| 8.0ms | -3.971919944631368e-242 | -1.7921513519677164e-242 |
| 12.0ms | -3.633676349931997e-168 | -1.0529995377673893e-169 |
| 14.0ms | -9021522972.005451 | -6423620.172662059 |
| 84.0ms | 864× | body | 256 | valid |
Compiled 520 to 462 computations (11.2% saved)
Total -35.9b remaining (-136.7%)
Threshold costs -35.9b (-136.7%)
| Inputs |
|---|
918938533204673/1000000000000000 |
(neg.f64 x) |
| Outputs |
|---|
(neg.f64 x) |
918938533204673/1000000000000000 |
(neg.f64 x) |
2 calls:
| 24.0ms | y |
| 9.0ms | x |
| Error | Segments | Branch |
|---|---|---|
| 26.3b | 3 | x |
| 35.7b | 9 | y |
Compiled 11 to 8 computations (27.3% saved)
| 2× | binary-search |
| Time | Left | Right |
|---|---|---|
| 19.0ms | 6.875795999559287e-7 | 115733996952161.72 |
| 12.0ms | -14740280.11391023 | -63945.90558391673 |
| 27.0ms | 288× | body | 256 | valid |
Compiled 180 to 158 computations (12.2% saved)
| 1× | egg-herbie |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 87 | 561 |
| 1× | fuel |
| 1× | saturated |
| Inputs |
|---|
(+.f64 (-.f64 (*.f64 x (-.f64 y 1)) (*.f64 y 1/2)) 918938533204673/1000000000000000) |
(+.f64 (+.f64 (neg.f64 x) (*.f64 y (-.f64 x 1/2))) 918938533204673/1000000000000000) |
(if (<=.f64 x -65000) (+.f64 (*.f64 (-.f64 y 1) x) 918938533204673/1000000000000000) (if (<=.f64 x 7278963232800395/1427247692705959881058285969449495136382746624) (+.f64 (-.f64 (*.f64 y x) (*.f64 y 1/2)) 918938533204673/1000000000000000) (+.f64 (*.f64 (-.f64 y 1) x) 918938533204673/1000000000000000))) |
(if (<=.f64 x -65000) (+.f64 (*.f64 (-.f64 y 1) x) 918938533204673/1000000000000000) (if (<=.f64 x 7278963232800395/1427247692705959881058285969449495136382746624) (+.f64 (*.f64 y (-.f64 x 1/2)) 918938533204673/1000000000000000) (+.f64 (*.f64 (-.f64 y 1) x) 918938533204673/1000000000000000))) |
(if (<=.f64 x -1050000) (*.f64 (-.f64 y 1) x) (if (<=.f64 x 2800) (+.f64 (*.f64 y (-.f64 x 1/2)) 918938533204673/1000000000000000) (*.f64 (-.f64 y 1) x))) |
(if (<=.f64 x -3332663724254167/4503599627370496) (*.f64 (-.f64 y 1) x) (if (<=.f64 x 8286623314361713/9007199254740992) (+.f64 (*.f64 -1/2 y) 918938533204673/1000000000000000) (*.f64 (-.f64 y 1) x))) |
(if (<=.f64 y -3422735716801577/2251799813685248) (*.f64 y (-.f64 x 1/2)) (if (<=.f64 y 4165829655317709/2251799813685248) (-.f64 918938533204673/1000000000000000 x) (*.f64 y (-.f64 x 1/2)))) |
(if (<=.f64 y -840000000000000000) (*.f64 -1/2 y) (if (<=.f64 y 4165829655317709/2251799813685248) (-.f64 918938533204673/1000000000000000 x) (*.f64 -1/2 y))) |
(if (<=.f64 y -6500000) (*.f64 -1/2 y) (if (<=.f64 y -900810035817237/8498207885068273579033411304839498037273489883632510771191106211206456957773635883826600036243668570702229271779944016245545269402443315830552319660265397631101300333366291504507650048) 918938533204673/1000000000000000 (if (<=.f64 y -4684690501174133/120120269260875203679538523128148109780988153496792056586846390252202105001907707327158563177285302093576864306955287401906923050660835892188183374506238482560635630761454441237386053598226326597119676286686442018469285424714953873908233822195833562657193984) (neg.f64 x) (if (<=.f64 y -809968618843565/368167554019802297902961703073592265444961685287384386095984806211036520049665972495786961556290633771253993225976613596485201446531925242865351537949643006725668645734124513845866945743352000756639913885870091814580532597437363981258574050387614181710541845882032738795411959682006458992302809763070411033018368) 918938533204673/1000000000000000 (if (<=.f64 y 146179710171/19490628022799998160706764775750376621752453715190015053735812914425897381532852204931230131764020518450609832462817336366918339730406188093155974592625306839062555399912946059741579310980107296705599186958436757747371195850789749891492727230937931225655477606208555094163657179983828221952) (neg.f64 x) (if (<=.f64 y 4071725287224235/33374797436264220037422214158899251790667258161822699530422525122222183215322508594108782608384) 918938533204673/1000000000000000 (if (<=.f64 y 6722907531722153/2923003274661805836407369665432566039311865085952) (neg.f64 x) (if (<=.f64 y 7385903388887613/9007199254740992) 918938533204673/1000000000000000 (*.f64 -1/2 y))))))))) |
(if (<=.f64 x -65000) (neg.f64 x) (if (<=.f64 x 8286623314361713/9007199254740992) 918938533204673/1000000000000000 (neg.f64 x))) |
918938533204673/1000000000000000 |
| Outputs |
|---|
(+.f64 (-.f64 (*.f64 x (-.f64 y 1)) (*.f64 y 1/2)) 918938533204673/1000000000000000) |
(+.f64 (+.f64 (neg.f64 x) (*.f64 y (-.f64 x 1/2))) 918938533204673/1000000000000000) |
(if (<=.f64 x -65000) (+.f64 (*.f64 (-.f64 y 1) x) 918938533204673/1000000000000000) (if (<=.f64 x 7278963232800395/1427247692705959881058285969449495136382746624) (+.f64 (-.f64 (*.f64 y x) (*.f64 y 1/2)) 918938533204673/1000000000000000) (+.f64 (*.f64 (-.f64 y 1) x) 918938533204673/1000000000000000))) |
(if (<=.f64 x -65000) (+.f64 (*.f64 (-.f64 y 1) x) 918938533204673/1000000000000000) (if (<=.f64 x 7278963232800395/1427247692705959881058285969449495136382746624) (+.f64 (*.f64 y (-.f64 x 1/2)) 918938533204673/1000000000000000) (+.f64 (*.f64 (-.f64 y 1) x) 918938533204673/1000000000000000))) |
(if (<=.f64 x -1050000) (*.f64 (-.f64 y 1) x) (if (<=.f64 x 2800) (+.f64 (*.f64 y (-.f64 x 1/2)) 918938533204673/1000000000000000) (*.f64 (-.f64 y 1) x))) |
(if (<=.f64 x -3332663724254167/4503599627370496) (*.f64 (-.f64 y 1) x) (if (<=.f64 x 8286623314361713/9007199254740992) (+.f64 (*.f64 -1/2 y) 918938533204673/1000000000000000) (*.f64 (-.f64 y 1) x))) |
(if (<=.f64 y -3422735716801577/2251799813685248) (*.f64 y (-.f64 x 1/2)) (if (<=.f64 y 4165829655317709/2251799813685248) (-.f64 918938533204673/1000000000000000 x) (*.f64 y (-.f64 x 1/2)))) |
(if (<=.f64 y -840000000000000000) (*.f64 -1/2 y) (if (<=.f64 y 4165829655317709/2251799813685248) (-.f64 918938533204673/1000000000000000 x) (*.f64 -1/2 y))) |
(if (<=.f64 y -6500000) (*.f64 -1/2 y) (if (<=.f64 y -900810035817237/8498207885068273579033411304839498037273489883632510771191106211206456957773635883826600036243668570702229271779944016245545269402443315830552319660265397631101300333366291504507650048) 918938533204673/1000000000000000 (if (<=.f64 y -4684690501174133/120120269260875203679538523128148109780988153496792056586846390252202105001907707327158563177285302093576864306955287401906923050660835892188183374506238482560635630761454441237386053598226326597119676286686442018469285424714953873908233822195833562657193984) (neg.f64 x) (if (<=.f64 y -809968618843565/368167554019802297902961703073592265444961685287384386095984806211036520049665972495786961556290633771253993225976613596485201446531925242865351537949643006725668645734124513845866945743352000756639913885870091814580532597437363981258574050387614181710541845882032738795411959682006458992302809763070411033018368) 918938533204673/1000000000000000 (if (<=.f64 y 146179710171/19490628022799998160706764775750376621752453715190015053735812914425897381532852204931230131764020518450609832462817336366918339730406188093155974592625306839062555399912946059741579310980107296705599186958436757747371195850789749891492727230937931225655477606208555094163657179983828221952) (neg.f64 x) (if (<=.f64 y 4071725287224235/33374797436264220037422214158899251790667258161822699530422525122222183215322508594108782608384) 918938533204673/1000000000000000 (if (<=.f64 y 6722907531722153/2923003274661805836407369665432566039311865085952) (neg.f64 x) (if (<=.f64 y 7385903388887613/9007199254740992) 918938533204673/1000000000000000 (*.f64 -1/2 y))))))))) |
(if (<=.f64 x -65000) (neg.f64 x) (if (<=.f64 x 8286623314361713/9007199254740992) 918938533204673/1000000000000000 (neg.f64 x))) |
918938533204673/1000000000000000 |
Compiled 251 to 181 computations (27.9% saved)
Compiled 231 to 159 computations (31.2% saved)
Loading profile data...