Time bar (total: 9.4s)
| 1× | search |
| Probability | Valid | Unknown | Precondition | Infinite | Domain | Can't | Iter |
|---|---|---|---|---|---|---|---|
| 0% | 0% | 99.9% | 0.1% | 0% | 0% | 0% | 0 |
| 0% | 0% | 99.9% | 0.1% | 0% | 0% | 0% | 1 |
| 0% | 0% | 99.9% | 0.1% | 0% | 0% | 0% | 2 |
| 0% | 0% | 99.9% | 0.1% | 0% | 0% | 0% | 3 |
| 0% | 0% | 99.9% | 0.1% | 0% | 0% | 0% | 4 |
| 25% | 25% | 74.9% | 0.1% | 0% | 0% | 0% | 5 |
| 37.5% | 37.5% | 62.4% | 0.1% | 0% | 0% | 0% | 6 |
| 53.3% | 50% | 43.7% | 0.1% | 6.2% | 0% | 0% | 7 |
| 63.3% | 59.3% | 34.3% | 0.1% | 6.2% | 0% | 0% | 8 |
| 74.1% | 67.1% | 23.4% | 0.1% | 9.4% | 0% | 0% | 9 |
| 80.2% | 72.6% | 18% | 0.1% | 9.4% | 0% | 0% | 10 |
| 86.4% | 76.9% | 12.1% | 0.1% | 10.9% | 0% | 0% | 11 |
| 89.7% | 79.8% | 9.2% | 0.1% | 10.9% | 0% | 0% | 12 |
Compiled 12 to 10 computations (16.7% saved)
| 2.1s | 8256× | body | 256 | valid |
| 74.0ms | 134× | body | 256 | infinite |
| 2× | egg-herbie |
| 24× | rational.json-simplify-2 |
| 8× | rational.json-simplify-43 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 15 | 38 |
| 1 | 19 | 38 |
| 2 | 27 | 38 |
| 3 | 35 | 38 |
| 0 | 2 | 2 |
| 1× | saturated |
| 1× | saturated |
| Inputs |
|---|
0 |
1 |
| Outputs |
|---|
0 |
1 |
| Inputs |
|---|
(*.f64 (*.f64 (-.f64 x (/.f64 16 116)) 3) y) |
(*.f64 (*.f64 (-.f64 y (/.f64 16 116)) 3) x) |
| Outputs |
|---|
(*.f64 (*.f64 (-.f64 x (/.f64 16 116)) 3) y) |
(*.f64 (*.f64 (-.f64 x 4/29) 3) y) |
(*.f64 (-.f64 x 4/29) (*.f64 3 y)) |
(*.f64 (*.f64 (-.f64 y (/.f64 16 116)) 3) x) |
(*.f64 x (*.f64 3 (-.f64 y 4/29))) |
(*.f64 3 (*.f64 (-.f64 y 4/29) x)) |
(*.f64 3 (*.f64 x (-.f64 y 4/29))) |
Compiled 13 to 11 computations (15.4% saved)
| 1× | egg-herbie |
| 12× | rational.json-simplify-2 |
| 4× | rational.json-simplify-43 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 12 | 19 |
| 1 | 14 | 19 |
| 2 | 18 | 19 |
| 3 | 22 | 19 |
| 1× | saturated |
| Inputs |
|---|
(*.f64 (*.f64 (-.f64 x (/.f64 16 116)) 3) y) |
| Outputs |
|---|
(*.f64 (*.f64 (-.f64 x (/.f64 16 116)) 3) y) |
(*.f64 (*.f64 (-.f64 x 4/29) 3) y) |
(*.f64 (-.f64 x 4/29) (*.f64 3 y)) |
Compiled 25 to 19 computations (24% saved)
2 alts after pruning (2 fresh and 0 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 1 | 2 | 3 |
| Fresh | 1 | 0 | 1 |
| Picked | 0 | 0 | 0 |
| Done | 0 | 0 | 0 |
| Total | 2 | 2 | 4 |
| Status | Error | Program |
|---|---|---|
| ▶ | 0.3b | (*.f64 (-.f64 x 4/29) (*.f64 3 y)) |
| ▶ | 0.2b | (*.f64 (*.f64 (-.f64 x 4/29) 3) y) |
Compiled 18 to 14 computations (22.2% saved)
Found 2 expressions with local error:
| New | Error | Program |
|---|---|---|
| ✓ | 0.0b | (*.f64 (-.f64 x 4/29) 3) |
| ✓ | 0.2b | (*.f64 (*.f64 (-.f64 x 4/29) 3) y) |
Compiled 21 to 15 computations (28.6% saved)
9 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 1.0ms | x | @ | inf | (*.f64 (-.f64 x 4/29) 3) |
| 1.0ms | y | @ | 0 | (*.f64 (*.f64 (-.f64 x 4/29) 3) y) |
| 1.0ms | x | @ | inf | (*.f64 (*.f64 (-.f64 x 4/29) 3) y) |
| 0.0ms | y | @ | inf | (*.f64 (*.f64 (-.f64 x 4/29) 3) y) |
| 0.0ms | x | @ | 0 | (*.f64 (*.f64 (-.f64 x 4/29) 3) y) |
| 1× | batch-egg-rewrite |
| 1312× | bool.json-1 |
| 1312× | bool.json-2 |
| 1268× | rational.json-1 |
| 1268× | rational.json-2 |
| 1268× | rational.json-4 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 9 | 32 |
| 1 | 88 | 32 |
| 2 | 231 | 32 |
| 3 | 487 | 32 |
| 4 | 1004 | 32 |
| 5 | 2216 | 32 |
| 6 | 4767 | 32 |
| 1× | node limit |
| Inputs |
|---|
(*.f64 (*.f64 (-.f64 x 4/29) 3) y) |
(*.f64 (-.f64 x 4/29) 3) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 x -4/29) (*.f64 3 y)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (+.f64 x -4/29) (*.f64 3 y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 x -4/29) y) (*.f64 (+.f64 x -4/29) (+.f64 y y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 x -4/29) (+.f64 y y)) (*.f64 (+.f64 x -4/29) y))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 x -4/29) (*.f64 y 3/2)) (*.f64 (+.f64 x -4/29) (*.f64 y 3/2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (+.f64 x -4/29) (*.f64 3 y)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 x -4/29) (*.f64 3 y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 x -4/29) (*.f64 y 6)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 x -4/29) (*.f64 12 y)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 24 (*.f64 (+.f64 x -4/29) y)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 24 (*.f64 (+.f64 x -4/29) y))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 24 (*.f64 (+.f64 x -4/29) y)))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 24 (*.f64 (+.f64 x -4/29) y)))) (*.f64 2 (*.f64 2 (*.f64 24 (*.f64 (+.f64 x -4/29) y))))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 (+.f64 x -4/29) (*.f64 3 y))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 (+.f64 x -4/29) (*.f64 3 y)) (*.f64 (+.f64 x -4/29) (*.f64 3 y)))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 (+.f64 x -4/29) (*.f64 3 y)) (*.f64 (+.f64 x -4/29) (*.f64 3 y))))))) |
((#(struct:change #<rule egg-rr> (2) ((x +.f64 x (+.f64 x (+.f64 -4/29 (+.f64 x -8/29))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 x -4/29) (+.f64 x (+.f64 x -8/29)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 x -4/29) 3) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (+.f64 x -4/29) 3))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 x (+.f64 x -8/29)) (+.f64 x -4/29))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -4/29 (+.f64 x (+.f64 x (+.f64 x -8/29))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -4/29 (+.f64 (+.f64 x (+.f64 x -4/29)) (+.f64 x -4/29)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 x -8/29) (+.f64 x (+.f64 x -4/29)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 x -4/29) 3/2) (*.f64 (+.f64 x -4/29) 3/2))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 x (+.f64 x -4/29)) (+.f64 x -8/29))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 x (+.f64 -4/29 (+.f64 x -8/29))) x)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 x (+.f64 x (+.f64 x -8/29))) -4/29)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 (+.f64 x (+.f64 x -4/29)) (+.f64 x -4/29)) -4/29)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (+.f64 x -4/29) 3) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 x -4/29) 3) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 x -4/29) 6) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 x -4/29) 12) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 (+.f64 x -4/29) 3) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 (+.f64 x -4/29) 3) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 x -4/29) 3) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 x -4/29) 3) 8))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 x -4/29) 3) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 (+.f64 x -4/29) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 (+.f64 x -4/29) 3) (*.f64 (+.f64 x -4/29) 3))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 (+.f64 x -4/29) 3) (*.f64 (+.f64 x -4/29) 3)))))) |
| 1× | egg-herbie |
| 3110× | rational.json-simplify-41 |
| 2674× | rational.json-simplify-2 |
| 2210× | rational.json-simplify-35 |
| 1348× | rational.json-simplify-53 |
| 570× | rational.json-simplify-1 |
Useful iterations: 3 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 96 | 1264 |
| 1 | 212 | 1210 |
| 2 | 418 | 1210 |
| 3 | 1062 | 1084 |
| 4 | 2086 | 1084 |
| 5 | 3005 | 1084 |
| 6 | 3929 | 1084 |
| 7 | 4043 | 1084 |
| 8 | 4148 | 1084 |
| 9 | 4251 | 1084 |
| 10 | 4361 | 1084 |
| 11 | 5278 | 1084 |
| 12 | 5381 | 1084 |
| 13 | 5481 | 1084 |
| 14 | 5481 | 1084 |
| 1× | node limit |
| Inputs |
|---|
(*.f64 -12/29 y) |
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y)) |
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y)) |
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y)) |
(*.f64 3 (*.f64 y x)) |
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y)) |
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y)) |
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y)) |
(*.f64 3 (*.f64 y x)) |
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y)) |
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y)) |
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y)) |
(*.f64 3 (*.f64 y (-.f64 x 4/29))) |
(*.f64 3 (*.f64 y (-.f64 x 4/29))) |
(*.f64 3 (*.f64 y (-.f64 x 4/29))) |
(*.f64 3 (*.f64 y (-.f64 x 4/29))) |
(*.f64 3 (*.f64 y (-.f64 x 4/29))) |
(*.f64 3 (*.f64 y (-.f64 x 4/29))) |
(*.f64 3 (*.f64 y (-.f64 x 4/29))) |
(*.f64 3 (*.f64 y (-.f64 x 4/29))) |
(*.f64 3 (*.f64 y (-.f64 x 4/29))) |
(*.f64 3 (*.f64 y (-.f64 x 4/29))) |
(*.f64 3 (*.f64 y (-.f64 x 4/29))) |
(*.f64 3 (*.f64 y (-.f64 x 4/29))) |
-12/29 |
(-.f64 (*.f64 3 x) 12/29) |
(-.f64 (*.f64 3 x) 12/29) |
(-.f64 (*.f64 3 x) 12/29) |
(*.f64 3 x) |
(-.f64 (*.f64 3 x) 12/29) |
(-.f64 (*.f64 3 x) 12/29) |
(-.f64 (*.f64 3 x) 12/29) |
(*.f64 3 x) |
(-.f64 (*.f64 3 x) 12/29) |
(-.f64 (*.f64 3 x) 12/29) |
(-.f64 (*.f64 3 x) 12/29) |
(+.f64 (*.f64 (+.f64 x -4/29) (*.f64 3 y)) 0) |
(+.f64 0 (*.f64 (+.f64 x -4/29) (*.f64 3 y))) |
(+.f64 (*.f64 (+.f64 x -4/29) y) (*.f64 (+.f64 x -4/29) (+.f64 y y))) |
(+.f64 (*.f64 (+.f64 x -4/29) (+.f64 y y)) (*.f64 (+.f64 x -4/29) y)) |
(+.f64 (*.f64 (+.f64 x -4/29) (*.f64 y 3/2)) (*.f64 (+.f64 x -4/29) (*.f64 y 3/2))) |
(-.f64 (*.f64 (+.f64 x -4/29) (*.f64 3 y)) 0) |
(/.f64 (*.f64 (+.f64 x -4/29) (*.f64 3 y)) 1) |
(/.f64 (*.f64 (+.f64 x -4/29) (*.f64 y 6)) 2) |
(/.f64 (*.f64 (+.f64 x -4/29) (*.f64 12 y)) 4) |
(/.f64 (*.f64 24 (*.f64 (+.f64 x -4/29) y)) 8) |
(/.f64 (*.f64 2 (*.f64 24 (*.f64 (+.f64 x -4/29) y))) 16) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 24 (*.f64 (+.f64 x -4/29) y)))) 32) |
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 24 (*.f64 (+.f64 x -4/29) y)))) (*.f64 2 (*.f64 2 (*.f64 24 (*.f64 (+.f64 x -4/29) y))))) 64) |
(+.f64 x (+.f64 x (+.f64 -4/29 (+.f64 x -8/29)))) |
(+.f64 (+.f64 x -4/29) (+.f64 x (+.f64 x -8/29))) |
(+.f64 (*.f64 (+.f64 x -4/29) 3) 0) |
(+.f64 0 (*.f64 (+.f64 x -4/29) 3)) |
(+.f64 (+.f64 x (+.f64 x -8/29)) (+.f64 x -4/29)) |
(+.f64 -4/29 (+.f64 x (+.f64 x (+.f64 x -8/29)))) |
(+.f64 -4/29 (+.f64 (+.f64 x (+.f64 x -4/29)) (+.f64 x -4/29))) |
(+.f64 (+.f64 x -8/29) (+.f64 x (+.f64 x -4/29))) |
(+.f64 (*.f64 (+.f64 x -4/29) 3/2) (*.f64 (+.f64 x -4/29) 3/2)) |
(+.f64 (+.f64 x (+.f64 x -4/29)) (+.f64 x -8/29)) |
(+.f64 (+.f64 x (+.f64 -4/29 (+.f64 x -8/29))) x) |
(+.f64 (+.f64 x (+.f64 x (+.f64 x -8/29))) -4/29) |
(+.f64 (+.f64 (+.f64 x (+.f64 x -4/29)) (+.f64 x -4/29)) -4/29) |
(-.f64 (*.f64 (+.f64 x -4/29) 3) 0) |
(/.f64 (*.f64 (+.f64 x -4/29) 3) 1) |
(/.f64 (*.f64 (+.f64 x -4/29) 6) 2) |
(/.f64 (*.f64 (+.f64 x -4/29) 12) 4) |
(/.f64 (*.f64 (*.f64 (+.f64 x -4/29) 3) 8) 8) |
(/.f64 (*.f64 2 (*.f64 (*.f64 (+.f64 x -4/29) 3) 8)) 16) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 x -4/29) 3) 8))) 32) |
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 x -4/29) 3) 8))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 x -4/29) 3) 8)))) 64) |
| Outputs |
|---|
(*.f64 -12/29 y) |
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y)) |
(+.f64 (*.f64 -12/29 y) (*.f64 y (*.f64 3 x))) |
(*.f64 y (+.f64 -12/29 (*.f64 3 x))) |
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y)) |
(+.f64 (*.f64 -12/29 y) (*.f64 y (*.f64 3 x))) |
(*.f64 y (+.f64 -12/29 (*.f64 3 x))) |
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y)) |
(+.f64 (*.f64 -12/29 y) (*.f64 y (*.f64 3 x))) |
(*.f64 y (+.f64 -12/29 (*.f64 3 x))) |
(*.f64 3 (*.f64 y x)) |
(*.f64 y (*.f64 3 x)) |
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y)) |
(+.f64 (*.f64 -12/29 y) (*.f64 y (*.f64 3 x))) |
(*.f64 y (+.f64 -12/29 (*.f64 3 x))) |
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y)) |
(+.f64 (*.f64 -12/29 y) (*.f64 y (*.f64 3 x))) |
(*.f64 y (+.f64 -12/29 (*.f64 3 x))) |
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y)) |
(+.f64 (*.f64 -12/29 y) (*.f64 y (*.f64 3 x))) |
(*.f64 y (+.f64 -12/29 (*.f64 3 x))) |
(*.f64 3 (*.f64 y x)) |
(*.f64 y (*.f64 3 x)) |
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y)) |
(+.f64 (*.f64 -12/29 y) (*.f64 y (*.f64 3 x))) |
(*.f64 y (+.f64 -12/29 (*.f64 3 x))) |
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y)) |
(+.f64 (*.f64 -12/29 y) (*.f64 y (*.f64 3 x))) |
(*.f64 y (+.f64 -12/29 (*.f64 3 x))) |
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y)) |
(+.f64 (*.f64 -12/29 y) (*.f64 y (*.f64 3 x))) |
(*.f64 y (+.f64 -12/29 (*.f64 3 x))) |
(*.f64 3 (*.f64 y (-.f64 x 4/29))) |
(*.f64 (-.f64 x 4/29) (*.f64 y 3)) |
(*.f64 3 (*.f64 y (-.f64 x 4/29))) |
(*.f64 (-.f64 x 4/29) (*.f64 y 3)) |
(*.f64 3 (*.f64 y (-.f64 x 4/29))) |
(*.f64 (-.f64 x 4/29) (*.f64 y 3)) |
(*.f64 3 (*.f64 y (-.f64 x 4/29))) |
(*.f64 (-.f64 x 4/29) (*.f64 y 3)) |
(*.f64 3 (*.f64 y (-.f64 x 4/29))) |
(*.f64 (-.f64 x 4/29) (*.f64 y 3)) |
(*.f64 3 (*.f64 y (-.f64 x 4/29))) |
(*.f64 (-.f64 x 4/29) (*.f64 y 3)) |
(*.f64 3 (*.f64 y (-.f64 x 4/29))) |
(*.f64 (-.f64 x 4/29) (*.f64 y 3)) |
(*.f64 3 (*.f64 y (-.f64 x 4/29))) |
(*.f64 (-.f64 x 4/29) (*.f64 y 3)) |
(*.f64 3 (*.f64 y (-.f64 x 4/29))) |
(*.f64 (-.f64 x 4/29) (*.f64 y 3)) |
(*.f64 3 (*.f64 y (-.f64 x 4/29))) |
(*.f64 (-.f64 x 4/29) (*.f64 y 3)) |
(*.f64 3 (*.f64 y (-.f64 x 4/29))) |
(*.f64 (-.f64 x 4/29) (*.f64 y 3)) |
(*.f64 3 (*.f64 y (-.f64 x 4/29))) |
(*.f64 (-.f64 x 4/29) (*.f64 y 3)) |
-12/29 |
(-.f64 (*.f64 3 x) 12/29) |
(-.f64 (*.f64 3 x) 12/29) |
(-.f64 (*.f64 3 x) 12/29) |
(*.f64 3 x) |
(-.f64 (*.f64 3 x) 12/29) |
(-.f64 (*.f64 3 x) 12/29) |
(-.f64 (*.f64 3 x) 12/29) |
(*.f64 3 x) |
(-.f64 (*.f64 3 x) 12/29) |
(-.f64 (*.f64 3 x) 12/29) |
(-.f64 (*.f64 3 x) 12/29) |
(+.f64 (*.f64 (+.f64 x -4/29) (*.f64 3 y)) 0) |
(*.f64 (+.f64 x -4/29) (*.f64 y 3)) |
(*.f64 y (*.f64 3 (+.f64 x -4/29))) |
(+.f64 0 (*.f64 (+.f64 x -4/29) (*.f64 3 y))) |
(*.f64 (+.f64 x -4/29) (*.f64 y 3)) |
(*.f64 y (*.f64 3 (+.f64 x -4/29))) |
(+.f64 (*.f64 (+.f64 x -4/29) y) (*.f64 (+.f64 x -4/29) (+.f64 y y))) |
(*.f64 (+.f64 x -4/29) (*.f64 y 3)) |
(*.f64 y (*.f64 3 (+.f64 x -4/29))) |
(+.f64 (*.f64 (+.f64 x -4/29) (+.f64 y y)) (*.f64 (+.f64 x -4/29) y)) |
(*.f64 (+.f64 x -4/29) (*.f64 y 3)) |
(*.f64 y (*.f64 3 (+.f64 x -4/29))) |
(+.f64 (*.f64 (+.f64 x -4/29) (*.f64 y 3/2)) (*.f64 (+.f64 x -4/29) (*.f64 y 3/2))) |
(*.f64 (+.f64 x -4/29) (*.f64 y 3)) |
(*.f64 y (*.f64 3 (+.f64 x -4/29))) |
(-.f64 (*.f64 (+.f64 x -4/29) (*.f64 3 y)) 0) |
(*.f64 (+.f64 x -4/29) (*.f64 y 3)) |
(*.f64 y (*.f64 3 (+.f64 x -4/29))) |
(/.f64 (*.f64 (+.f64 x -4/29) (*.f64 3 y)) 1) |
(*.f64 (+.f64 x -4/29) (*.f64 y 3)) |
(*.f64 y (*.f64 3 (+.f64 x -4/29))) |
(/.f64 (*.f64 (+.f64 x -4/29) (*.f64 y 6)) 2) |
(*.f64 (+.f64 x -4/29) (*.f64 y 3)) |
(*.f64 y (*.f64 3 (+.f64 x -4/29))) |
(/.f64 (*.f64 (+.f64 x -4/29) (*.f64 12 y)) 4) |
(*.f64 (+.f64 x -4/29) (*.f64 y 3)) |
(*.f64 y (*.f64 3 (+.f64 x -4/29))) |
(/.f64 (*.f64 24 (*.f64 (+.f64 x -4/29) y)) 8) |
(*.f64 (+.f64 x -4/29) (*.f64 y 3)) |
(*.f64 y (*.f64 3 (+.f64 x -4/29))) |
(/.f64 (*.f64 2 (*.f64 24 (*.f64 (+.f64 x -4/29) y))) 16) |
(*.f64 (+.f64 x -4/29) (*.f64 y 3)) |
(*.f64 y (*.f64 3 (+.f64 x -4/29))) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 24 (*.f64 (+.f64 x -4/29) y)))) 32) |
(*.f64 (+.f64 x -4/29) (*.f64 y 3)) |
(*.f64 y (*.f64 3 (+.f64 x -4/29))) |
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 24 (*.f64 (+.f64 x -4/29) y)))) (*.f64 2 (*.f64 2 (*.f64 24 (*.f64 (+.f64 x -4/29) y))))) 64) |
(*.f64 (+.f64 x -4/29) (*.f64 y 3)) |
(*.f64 y (*.f64 3 (+.f64 x -4/29))) |
(+.f64 x (+.f64 x (+.f64 -4/29 (+.f64 x -8/29)))) |
(+.f64 x (+.f64 x (+.f64 x -12/29))) |
(+.f64 (+.f64 -12/29 x) (+.f64 x x)) |
(+.f64 x (+.f64 x (+.f64 -12/29 x))) |
(*.f64 3 (+.f64 x -4/29)) |
(+.f64 (+.f64 x -4/29) (+.f64 x (+.f64 x -8/29))) |
(+.f64 x (+.f64 x (+.f64 x -12/29))) |
(+.f64 (+.f64 -12/29 x) (+.f64 x x)) |
(+.f64 x (+.f64 x (+.f64 -12/29 x))) |
(*.f64 3 (+.f64 x -4/29)) |
(+.f64 (*.f64 (+.f64 x -4/29) 3) 0) |
(+.f64 x (+.f64 x (+.f64 x -12/29))) |
(+.f64 (+.f64 -12/29 x) (+.f64 x x)) |
(+.f64 x (+.f64 x (+.f64 -12/29 x))) |
(*.f64 3 (+.f64 x -4/29)) |
(+.f64 0 (*.f64 (+.f64 x -4/29) 3)) |
(+.f64 x (+.f64 x (+.f64 x -12/29))) |
(+.f64 (+.f64 -12/29 x) (+.f64 x x)) |
(+.f64 x (+.f64 x (+.f64 -12/29 x))) |
(*.f64 3 (+.f64 x -4/29)) |
(+.f64 (+.f64 x (+.f64 x -8/29)) (+.f64 x -4/29)) |
(+.f64 x (+.f64 x (+.f64 x -12/29))) |
(+.f64 (+.f64 -12/29 x) (+.f64 x x)) |
(+.f64 x (+.f64 x (+.f64 -12/29 x))) |
(*.f64 3 (+.f64 x -4/29)) |
(+.f64 -4/29 (+.f64 x (+.f64 x (+.f64 x -8/29)))) |
(+.f64 x (+.f64 x (+.f64 x -12/29))) |
(+.f64 (+.f64 -12/29 x) (+.f64 x x)) |
(+.f64 x (+.f64 x (+.f64 -12/29 x))) |
(*.f64 3 (+.f64 x -4/29)) |
(+.f64 -4/29 (+.f64 (+.f64 x (+.f64 x -4/29)) (+.f64 x -4/29))) |
(+.f64 x (+.f64 x (+.f64 x -12/29))) |
(+.f64 (+.f64 -12/29 x) (+.f64 x x)) |
(+.f64 x (+.f64 x (+.f64 -12/29 x))) |
(*.f64 3 (+.f64 x -4/29)) |
(+.f64 (+.f64 x -8/29) (+.f64 x (+.f64 x -4/29))) |
(+.f64 x (+.f64 x (+.f64 x -12/29))) |
(+.f64 (+.f64 -12/29 x) (+.f64 x x)) |
(+.f64 x (+.f64 x (+.f64 -12/29 x))) |
(*.f64 3 (+.f64 x -4/29)) |
(+.f64 (*.f64 (+.f64 x -4/29) 3/2) (*.f64 (+.f64 x -4/29) 3/2)) |
(+.f64 x (+.f64 x (+.f64 x -12/29))) |
(+.f64 (+.f64 -12/29 x) (+.f64 x x)) |
(+.f64 x (+.f64 x (+.f64 -12/29 x))) |
(*.f64 3 (+.f64 x -4/29)) |
(+.f64 (+.f64 x (+.f64 x -4/29)) (+.f64 x -8/29)) |
(+.f64 x (+.f64 x (+.f64 x -12/29))) |
(+.f64 (+.f64 -12/29 x) (+.f64 x x)) |
(+.f64 x (+.f64 x (+.f64 -12/29 x))) |
(*.f64 3 (+.f64 x -4/29)) |
(+.f64 (+.f64 x (+.f64 -4/29 (+.f64 x -8/29))) x) |
(+.f64 x (+.f64 x (+.f64 x -12/29))) |
(+.f64 (+.f64 -12/29 x) (+.f64 x x)) |
(+.f64 x (+.f64 x (+.f64 -12/29 x))) |
(*.f64 3 (+.f64 x -4/29)) |
(+.f64 (+.f64 x (+.f64 x (+.f64 x -8/29))) -4/29) |
(+.f64 x (+.f64 x (+.f64 x -12/29))) |
(+.f64 (+.f64 -12/29 x) (+.f64 x x)) |
(+.f64 x (+.f64 x (+.f64 -12/29 x))) |
(*.f64 3 (+.f64 x -4/29)) |
(+.f64 (+.f64 (+.f64 x (+.f64 x -4/29)) (+.f64 x -4/29)) -4/29) |
(+.f64 x (+.f64 x (+.f64 x -12/29))) |
(+.f64 (+.f64 -12/29 x) (+.f64 x x)) |
(+.f64 x (+.f64 x (+.f64 -12/29 x))) |
(*.f64 3 (+.f64 x -4/29)) |
(-.f64 (*.f64 (+.f64 x -4/29) 3) 0) |
(+.f64 x (+.f64 x (+.f64 x -12/29))) |
(+.f64 (+.f64 -12/29 x) (+.f64 x x)) |
(+.f64 x (+.f64 x (+.f64 -12/29 x))) |
(*.f64 3 (+.f64 x -4/29)) |
(/.f64 (*.f64 (+.f64 x -4/29) 3) 1) |
(+.f64 x (+.f64 x (+.f64 x -12/29))) |
(+.f64 (+.f64 -12/29 x) (+.f64 x x)) |
(+.f64 x (+.f64 x (+.f64 -12/29 x))) |
(*.f64 3 (+.f64 x -4/29)) |
(/.f64 (*.f64 (+.f64 x -4/29) 6) 2) |
(+.f64 x (+.f64 x (+.f64 x -12/29))) |
(+.f64 (+.f64 -12/29 x) (+.f64 x x)) |
(+.f64 x (+.f64 x (+.f64 -12/29 x))) |
(*.f64 3 (+.f64 x -4/29)) |
(/.f64 (*.f64 (+.f64 x -4/29) 12) 4) |
(+.f64 x (+.f64 x (+.f64 x -12/29))) |
(+.f64 (+.f64 -12/29 x) (+.f64 x x)) |
(+.f64 x (+.f64 x (+.f64 -12/29 x))) |
(*.f64 3 (+.f64 x -4/29)) |
(/.f64 (*.f64 (*.f64 (+.f64 x -4/29) 3) 8) 8) |
(+.f64 x (+.f64 x (+.f64 x -12/29))) |
(+.f64 (+.f64 -12/29 x) (+.f64 x x)) |
(+.f64 x (+.f64 x (+.f64 -12/29 x))) |
(*.f64 3 (+.f64 x -4/29)) |
(/.f64 (*.f64 2 (*.f64 (*.f64 (+.f64 x -4/29) 3) 8)) 16) |
(+.f64 x (+.f64 x (+.f64 x -12/29))) |
(+.f64 (+.f64 -12/29 x) (+.f64 x x)) |
(+.f64 x (+.f64 x (+.f64 -12/29 x))) |
(*.f64 3 (+.f64 x -4/29)) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 x -4/29) 3) 8))) 32) |
(+.f64 x (+.f64 x (+.f64 x -12/29))) |
(+.f64 (+.f64 -12/29 x) (+.f64 x x)) |
(+.f64 x (+.f64 x (+.f64 -12/29 x))) |
(*.f64 3 (+.f64 x -4/29)) |
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 x -4/29) 3) 8))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 x -4/29) 3) 8)))) 64) |
(+.f64 x (+.f64 x (+.f64 x -12/29))) |
(+.f64 (+.f64 -12/29 x) (+.f64 x x)) |
(+.f64 x (+.f64 x (+.f64 -12/29 x))) |
(*.f64 3 (+.f64 x -4/29)) |
Found 1 expressions with local error:
| New | Error | Program |
|---|---|---|
| ✓ | 0.3b | (*.f64 (-.f64 x 4/29) (*.f64 3 y)) |
Compiled 19 to 13 computations (31.6% saved)
6 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 2.0ms | y | @ | 0 | (*.f64 (-.f64 x 4/29) (*.f64 3 y)) |
| 0.0ms | x | @ | 0 | (*.f64 (-.f64 x 4/29) (*.f64 3 y)) |
| 0.0ms | x | @ | inf | (*.f64 (-.f64 x 4/29) (*.f64 3 y)) |
| 0.0ms | y | @ | inf | (*.f64 (-.f64 x 4/29) (*.f64 3 y)) |
| 0.0ms | y | @ | -inf | (*.f64 (-.f64 x 4/29) (*.f64 3 y)) |
| 1× | batch-egg-rewrite |
| 1330× | bool.json-1 |
| 1330× | bool.json-2 |
| 1286× | rational.json-1 |
| 1286× | rational.json-2 |
| 1286× | rational.json-4 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 9 | 19 |
| 1 | 90 | 19 |
| 2 | 245 | 19 |
| 3 | 515 | 19 |
| 4 | 1037 | 19 |
| 5 | 2282 | 19 |
| 6 | 4892 | 19 |
| 1× | node limit |
| Inputs |
|---|
(*.f64 (-.f64 x 4/29) (*.f64 3 y)) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 x -4/29) (*.f64 3 y)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (+.f64 x -4/29) (*.f64 3 y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 x -4/29) y) (*.f64 (+.f64 x -4/29) (+.f64 y y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 x -4/29) (+.f64 y y)) (*.f64 (+.f64 x -4/29) y))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 (+.f64 x -4/29) y) 3/2) (*.f64 (*.f64 (+.f64 x -4/29) y) 3/2))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (+.f64 x -4/29) (*.f64 3 y)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 x -4/29) (*.f64 3 y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 (+.f64 x -4/29) y) 6) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 x -4/29) (*.f64 y 12)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 x -4/29) (*.f64 y 12))) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x -4/29) (*.f64 y 12)))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x -4/29) (*.f64 y 12))))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x -4/29) (*.f64 y 12))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x -4/29) (*.f64 y 12)))))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 (+.f64 x -4/29) (*.f64 3 y))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 (+.f64 x -4/29) (*.f64 3 y)) (*.f64 (+.f64 x -4/29) (*.f64 3 y)))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 (+.f64 x -4/29) (*.f64 3 y)) (*.f64 (+.f64 x -4/29) (*.f64 3 y))))))) |
| 1× | egg-herbie |
| 10586× | rational.json-simplify-41 |
| 5282× | rational.json-simplify-35 |
| 2686× | rational.json-simplify-2 |
| 1596× | rational.json-simplify-53 |
| 888× | rational.json-simplify-1 |
Useful iterations: 1 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 53 | 733 |
| 1 | 115 | 679 |
| 2 | 227 | 679 |
| 3 | 500 | 679 |
| 4 | 1361 | 679 |
| 5 | 2403 | 679 |
| 6 | 3225 | 679 |
| 7 | 3658 | 679 |
| 8 | 3967 | 679 |
| 9 | 4133 | 679 |
| 10 | 4289 | 679 |
| 11 | 4445 | 679 |
| 12 | 4855 | 679 |
| 13 | 4855 | 679 |
| 14 | 4981 | 679 |
| 15 | 5232 | 679 |
| 16 | 5483 | 679 |
| 17 | 5747 | 679 |
| 18 | 5915 | 679 |
| 19 | 6071 | 679 |
| 20 | 6227 | 679 |
| 21 | 6383 | 679 |
| 22 | 6539 | 679 |
| 23 | 6695 | 679 |
| 24 | 6695 | 679 |
| 25 | 6924 | 679 |
| 26 | 6924 | 679 |
| 27 | 7080 | 679 |
| 28 | 7236 | 679 |
| 29 | 7392 | 679 |
| 30 | 7548 | 679 |
| 31 | 7704 | 679 |
| 1× | node limit |
| Inputs |
|---|
(*.f64 -12/29 y) |
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y)) |
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y)) |
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y)) |
(*.f64 3 (*.f64 y x)) |
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y)) |
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y)) |
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y)) |
(*.f64 3 (*.f64 y x)) |
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y)) |
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y)) |
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y)) |
(*.f64 3 (*.f64 y (-.f64 x 4/29))) |
(*.f64 3 (*.f64 y (-.f64 x 4/29))) |
(*.f64 3 (*.f64 y (-.f64 x 4/29))) |
(*.f64 3 (*.f64 y (-.f64 x 4/29))) |
(*.f64 3 (*.f64 y (-.f64 x 4/29))) |
(*.f64 3 (*.f64 y (-.f64 x 4/29))) |
(*.f64 3 (*.f64 y (-.f64 x 4/29))) |
(*.f64 3 (*.f64 y (-.f64 x 4/29))) |
(*.f64 3 (*.f64 y (-.f64 x 4/29))) |
(*.f64 3 (*.f64 y (-.f64 x 4/29))) |
(*.f64 3 (*.f64 y (-.f64 x 4/29))) |
(*.f64 3 (*.f64 y (-.f64 x 4/29))) |
(+.f64 (*.f64 (+.f64 x -4/29) (*.f64 3 y)) 0) |
(+.f64 0 (*.f64 (+.f64 x -4/29) (*.f64 3 y))) |
(+.f64 (*.f64 (+.f64 x -4/29) y) (*.f64 (+.f64 x -4/29) (+.f64 y y))) |
(+.f64 (*.f64 (+.f64 x -4/29) (+.f64 y y)) (*.f64 (+.f64 x -4/29) y)) |
(+.f64 (*.f64 (*.f64 (+.f64 x -4/29) y) 3/2) (*.f64 (*.f64 (+.f64 x -4/29) y) 3/2)) |
(-.f64 (*.f64 (+.f64 x -4/29) (*.f64 3 y)) 0) |
(/.f64 (*.f64 (+.f64 x -4/29) (*.f64 3 y)) 1) |
(/.f64 (*.f64 (*.f64 (+.f64 x -4/29) y) 6) 2) |
(/.f64 (*.f64 (+.f64 x -4/29) (*.f64 y 12)) 4) |
(/.f64 (*.f64 2 (*.f64 (+.f64 x -4/29) (*.f64 y 12))) 8) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x -4/29) (*.f64 y 12)))) 16) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x -4/29) (*.f64 y 12))))) 32) |
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x -4/29) (*.f64 y 12))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x -4/29) (*.f64 y 12)))))) 64) |
| Outputs |
|---|
(*.f64 -12/29 y) |
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y)) |
(+.f64 (*.f64 -12/29 y) (*.f64 y (*.f64 x 3))) |
(*.f64 y (+.f64 -12/29 (*.f64 3 x))) |
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y)) |
(+.f64 (*.f64 -12/29 y) (*.f64 y (*.f64 x 3))) |
(*.f64 y (+.f64 -12/29 (*.f64 3 x))) |
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y)) |
(+.f64 (*.f64 -12/29 y) (*.f64 y (*.f64 x 3))) |
(*.f64 y (+.f64 -12/29 (*.f64 3 x))) |
(*.f64 3 (*.f64 y x)) |
(*.f64 y (*.f64 x 3)) |
(*.f64 y (*.f64 3 x)) |
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y)) |
(+.f64 (*.f64 -12/29 y) (*.f64 y (*.f64 x 3))) |
(*.f64 y (+.f64 -12/29 (*.f64 3 x))) |
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y)) |
(+.f64 (*.f64 -12/29 y) (*.f64 y (*.f64 x 3))) |
(*.f64 y (+.f64 -12/29 (*.f64 3 x))) |
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y)) |
(+.f64 (*.f64 -12/29 y) (*.f64 y (*.f64 x 3))) |
(*.f64 y (+.f64 -12/29 (*.f64 3 x))) |
(*.f64 3 (*.f64 y x)) |
(*.f64 y (*.f64 x 3)) |
(*.f64 y (*.f64 3 x)) |
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y)) |
(+.f64 (*.f64 -12/29 y) (*.f64 y (*.f64 x 3))) |
(*.f64 y (+.f64 -12/29 (*.f64 3 x))) |
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y)) |
(+.f64 (*.f64 -12/29 y) (*.f64 y (*.f64 x 3))) |
(*.f64 y (+.f64 -12/29 (*.f64 3 x))) |
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y)) |
(+.f64 (*.f64 -12/29 y) (*.f64 y (*.f64 x 3))) |
(*.f64 y (+.f64 -12/29 (*.f64 3 x))) |
(*.f64 3 (*.f64 y (-.f64 x 4/29))) |
(*.f64 (-.f64 x 4/29) (*.f64 y 3)) |
(*.f64 y (*.f64 3 (-.f64 x 4/29))) |
(*.f64 3 (*.f64 y (-.f64 x 4/29))) |
(*.f64 (-.f64 x 4/29) (*.f64 y 3)) |
(*.f64 y (*.f64 3 (-.f64 x 4/29))) |
(*.f64 3 (*.f64 y (-.f64 x 4/29))) |
(*.f64 (-.f64 x 4/29) (*.f64 y 3)) |
(*.f64 y (*.f64 3 (-.f64 x 4/29))) |
(*.f64 3 (*.f64 y (-.f64 x 4/29))) |
(*.f64 (-.f64 x 4/29) (*.f64 y 3)) |
(*.f64 y (*.f64 3 (-.f64 x 4/29))) |
(*.f64 3 (*.f64 y (-.f64 x 4/29))) |
(*.f64 (-.f64 x 4/29) (*.f64 y 3)) |
(*.f64 y (*.f64 3 (-.f64 x 4/29))) |
(*.f64 3 (*.f64 y (-.f64 x 4/29))) |
(*.f64 (-.f64 x 4/29) (*.f64 y 3)) |
(*.f64 y (*.f64 3 (-.f64 x 4/29))) |
(*.f64 3 (*.f64 y (-.f64 x 4/29))) |
(*.f64 (-.f64 x 4/29) (*.f64 y 3)) |
(*.f64 y (*.f64 3 (-.f64 x 4/29))) |
(*.f64 3 (*.f64 y (-.f64 x 4/29))) |
(*.f64 (-.f64 x 4/29) (*.f64 y 3)) |
(*.f64 y (*.f64 3 (-.f64 x 4/29))) |
(*.f64 3 (*.f64 y (-.f64 x 4/29))) |
(*.f64 (-.f64 x 4/29) (*.f64 y 3)) |
(*.f64 y (*.f64 3 (-.f64 x 4/29))) |
(*.f64 3 (*.f64 y (-.f64 x 4/29))) |
(*.f64 (-.f64 x 4/29) (*.f64 y 3)) |
(*.f64 y (*.f64 3 (-.f64 x 4/29))) |
(*.f64 3 (*.f64 y (-.f64 x 4/29))) |
(*.f64 (-.f64 x 4/29) (*.f64 y 3)) |
(*.f64 y (*.f64 3 (-.f64 x 4/29))) |
(*.f64 3 (*.f64 y (-.f64 x 4/29))) |
(*.f64 (-.f64 x 4/29) (*.f64 y 3)) |
(*.f64 y (*.f64 3 (-.f64 x 4/29))) |
(+.f64 (*.f64 (+.f64 x -4/29) (*.f64 3 y)) 0) |
(*.f64 (+.f64 x -4/29) (*.f64 y 3)) |
(*.f64 y (*.f64 (+.f64 x -4/29) 3)) |
(*.f64 y (*.f64 3 (+.f64 x -4/29))) |
(+.f64 0 (*.f64 (+.f64 x -4/29) (*.f64 3 y))) |
(*.f64 (+.f64 x -4/29) (*.f64 y 3)) |
(*.f64 y (*.f64 (+.f64 x -4/29) 3)) |
(*.f64 y (*.f64 3 (+.f64 x -4/29))) |
(+.f64 (*.f64 (+.f64 x -4/29) y) (*.f64 (+.f64 x -4/29) (+.f64 y y))) |
(*.f64 (+.f64 x -4/29) (*.f64 y 3)) |
(*.f64 y (*.f64 (+.f64 x -4/29) 3)) |
(*.f64 y (*.f64 3 (+.f64 x -4/29))) |
(+.f64 (*.f64 (+.f64 x -4/29) (+.f64 y y)) (*.f64 (+.f64 x -4/29) y)) |
(*.f64 (+.f64 x -4/29) (*.f64 y 3)) |
(*.f64 y (*.f64 (+.f64 x -4/29) 3)) |
(*.f64 y (*.f64 3 (+.f64 x -4/29))) |
(+.f64 (*.f64 (*.f64 (+.f64 x -4/29) y) 3/2) (*.f64 (*.f64 (+.f64 x -4/29) y) 3/2)) |
(*.f64 (+.f64 x -4/29) (*.f64 y 3)) |
(*.f64 y (*.f64 (+.f64 x -4/29) 3)) |
(*.f64 y (*.f64 3 (+.f64 x -4/29))) |
(-.f64 (*.f64 (+.f64 x -4/29) (*.f64 3 y)) 0) |
(*.f64 (+.f64 x -4/29) (*.f64 y 3)) |
(*.f64 y (*.f64 (+.f64 x -4/29) 3)) |
(*.f64 y (*.f64 3 (+.f64 x -4/29))) |
(/.f64 (*.f64 (+.f64 x -4/29) (*.f64 3 y)) 1) |
(*.f64 (+.f64 x -4/29) (*.f64 y 3)) |
(*.f64 y (*.f64 (+.f64 x -4/29) 3)) |
(*.f64 y (*.f64 3 (+.f64 x -4/29))) |
(/.f64 (*.f64 (*.f64 (+.f64 x -4/29) y) 6) 2) |
(*.f64 (+.f64 x -4/29) (*.f64 y 3)) |
(*.f64 y (*.f64 (+.f64 x -4/29) 3)) |
(*.f64 y (*.f64 3 (+.f64 x -4/29))) |
(/.f64 (*.f64 (+.f64 x -4/29) (*.f64 y 12)) 4) |
(*.f64 (+.f64 x -4/29) (*.f64 y 3)) |
(*.f64 y (*.f64 (+.f64 x -4/29) 3)) |
(*.f64 y (*.f64 3 (+.f64 x -4/29))) |
(/.f64 (*.f64 2 (*.f64 (+.f64 x -4/29) (*.f64 y 12))) 8) |
(*.f64 (+.f64 x -4/29) (*.f64 y 3)) |
(*.f64 y (*.f64 (+.f64 x -4/29) 3)) |
(*.f64 y (*.f64 3 (+.f64 x -4/29))) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x -4/29) (*.f64 y 12)))) 16) |
(*.f64 (+.f64 x -4/29) (*.f64 y 3)) |
(*.f64 y (*.f64 (+.f64 x -4/29) 3)) |
(*.f64 y (*.f64 3 (+.f64 x -4/29))) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x -4/29) (*.f64 y 12))))) 32) |
(*.f64 (+.f64 x -4/29) (*.f64 y 3)) |
(*.f64 y (*.f64 (+.f64 x -4/29) 3)) |
(*.f64 y (*.f64 3 (+.f64 x -4/29))) |
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x -4/29) (*.f64 y 12))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x -4/29) (*.f64 y 12)))))) 64) |
(*.f64 (+.f64 x -4/29) (*.f64 y 3)) |
(*.f64 y (*.f64 (+.f64 x -4/29) 3)) |
(*.f64 y (*.f64 3 (+.f64 x -4/29))) |
Compiled 765 to 556 computations (27.3% saved)
7 alts after pruning (6 fresh and 1 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 71 | 6 | 77 |
| Fresh | 0 | 0 | 0 |
| Picked | 0 | 1 | 1 |
| Done | 1 | 0 | 1 |
| Total | 72 | 7 | 79 |
| Status | Error | Program |
|---|---|---|
| ▶ | 0.2b | (+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y)) |
| 0.2b | (*.f64 (-.f64 (*.f64 3 x) 12/29) y) | |
| ✓ | 0.3b | (*.f64 (-.f64 x 4/29) (*.f64 3 y)) |
| ▶ | 36.8b | (*.f64 (*.f64 3 x) y) |
| ▶ | 0.3b | (*.f64 3 (*.f64 y (-.f64 x 4/29))) |
| ▶ | 36.8b | (*.f64 3 (*.f64 y x)) |
| ▶ | 26.6b | (*.f64 -12/29 y) |
Compiled 105 to 79 computations (24.8% saved)
Found 3 expressions with local error:
| New | Error | Program |
|---|---|---|
| ✓ | 0.0b | (+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y)) |
| ✓ | 0.1b | (*.f64 -12/29 y) |
| ✓ | 0.3b | (*.f64 3 (*.f64 y x)) |
Compiled 26 to 14 computations (46.2% saved)
15 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 1.0ms | y | @ | 0 | (*.f64 3 (*.f64 y x)) |
| 0.0ms | x | @ | inf | (*.f64 3 (*.f64 y x)) |
| 0.0ms | y | @ | inf | (*.f64 3 (*.f64 y x)) |
| 0.0ms | x | @ | 0 | (*.f64 3 (*.f64 y x)) |
| 0.0ms | y | @ | inf | (+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y)) |
| 1× | batch-egg-rewrite |
| 1992× | bool.json-1 |
| 1418× | rational.json-simplify-35 |
| 1280× | bool.json-2 |
| 1236× | rational.json-1 |
| 1236× | rational.json-2 |
Useful iterations: 1 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 10 | 45 |
| 1 | 101 | 39 |
| 2 | 269 | 39 |
| 3 | 575 | 39 |
| 4 | 1196 | 39 |
| 5 | 2696 | 39 |
| 6 | 5158 | 39 |
| 7 | 7800 | 39 |
| 1× | node limit |
| Inputs |
|---|
(*.f64 3 (*.f64 y x)) |
(*.f64 -12/29 y) |
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y)) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 y x) (*.f64 y (+.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 3 (*.f64 y x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 3 (*.f64 y x)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 y (+.f64 x x)) (*.f64 y x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 y (*.f64 x 3/2)) (*.f64 y (*.f64 x 3/2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 3 (*.f64 y x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 3 (*.f64 y x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (*.f64 x 6)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 y x) 12) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 y x) 12)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y x) 12))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y x) 12)))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y x) 12)))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y x) 12))))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 3 (*.f64 y x))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 3 (*.f64 y x)) (*.f64 3 (*.f64 y x)))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 3 (*.f64 y x)) (*.f64 3 (*.f64 y x))))))) |
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 y -12/29) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 y -12/29))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 y -6/29) (*.f64 y -6/29))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 y -12/29) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y -12/29) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y -24/29) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y -48/29) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 y -48/29)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 y -48/29))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y -48/29)))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y -48/29)))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y -48/29))))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 y -12/29)))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 y -12/29) (*.f64 y -12/29))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 y -12/29) (*.f64 y -12/29)))))) |
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 y (+.f64 -12/29 (*.f64 3 x))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 y (+.f64 -12/29 (*.f64 3 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 y (+.f64 -12/29 (*.f64 3 x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 y (+.f64 -12/29 (*.f64 3 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (*.f64 y (+.f64 -12/29 (*.f64 3 x))) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (*.f64 (+.f64 -12/29 (*.f64 3 x)) 1/2) y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 y (*.f64 2 (+.f64 -12/29 (*.f64 3 x)))) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 y y) (*.f64 (+.f64 -12/29 (*.f64 3 x)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 y y) (/.f64 (+.f64 -12/29 (*.f64 3 x)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 -12/29 (*.f64 3 x)) y)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (*.f64 y (+.f64 -12/29 (*.f64 3 x))) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 y (+.f64 -12/29 (*.f64 3 x))) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (+.f64 -12/29 (*.f64 3 x))) (*.f64 y 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 y (*.f64 2 (+.f64 -12/29 (*.f64 3 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 y 1/2) (*.f64 2 (+.f64 -12/29 (*.f64 3 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 y (+.f64 -12/29 (*.f64 3 x))) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 -12/29 (*.f64 3 x)) 1/2) (+.f64 y y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (*.f64 y (+.f64 -12/29 (*.f64 3 x))) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 -12/29 (*.f64 3 x)) 2) (+.f64 y y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 y (+.f64 -12/29 (*.f64 3 x))) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (+.f64 -12/29 (*.f64 3 x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (*.f64 2 (+.f64 -12/29 (*.f64 3 x)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 y (+.f64 -12/29 (*.f64 3 x))) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 y (+.f64 -12/29 (*.f64 3 x))) 4)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y (+.f64 -12/29 (*.f64 3 x))) 4))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y (+.f64 -12/29 (*.f64 3 x))) 4)))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y (+.f64 -12/29 (*.f64 3 x))) 4)))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y (+.f64 -12/29 (*.f64 3 x))) 4))))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 y (+.f64 -12/29 (*.f64 3 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 y (+.f64 -12/29 (*.f64 3 x))) (*.f64 y (+.f64 -12/29 (*.f64 3 x))))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 y (+.f64 -12/29 (*.f64 3 x))) (*.f64 y (+.f64 -12/29 (*.f64 3 x)))))))) |
| 1× | egg-herbie |
| 4016× | rational.json-simplify-41 |
| 2472× | rational.json-simplify-35 |
| 2330× | rational.json-simplify-2 |
| 894× | rational.json-simplify-51 |
| 728× | rational.json-simplify-1 |
Useful iterations: 1 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 120 | 1044 |
| 1 | 259 | 1036 |
| 2 | 594 | 1036 |
| 3 | 1678 | 1036 |
| 4 | 3262 | 1036 |
| 5 | 3848 | 1036 |
| 6 | 4085 | 1036 |
| 7 | 4257 | 1036 |
| 8 | 4411 | 1036 |
| 9 | 4557 | 1036 |
| 10 | 5119 | 1036 |
| 11 | 5335 | 1036 |
| 12 | 5434 | 1036 |
| 13 | 5467 | 1036 |
| 14 | 5524 | 1036 |
| 15 | 5556 | 1036 |
| 16 | 5556 | 1036 |
| 17 | 5686 | 1036 |
| 18 | 5816 | 1036 |
| 1× | node limit |
| Inputs |
|---|
(*.f64 (-.f64 (*.f64 3 x) 12/29) y) |
(*.f64 (-.f64 (*.f64 3 x) 12/29) y) |
(*.f64 (-.f64 (*.f64 3 x) 12/29) y) |
(*.f64 (-.f64 (*.f64 3 x) 12/29) y) |
(*.f64 (-.f64 (*.f64 3 x) 12/29) y) |
(*.f64 (-.f64 (*.f64 3 x) 12/29) y) |
(*.f64 (-.f64 (*.f64 3 x) 12/29) y) |
(*.f64 (-.f64 (*.f64 3 x) 12/29) y) |
(*.f64 -1 (*.f64 y (+.f64 12/29 (*.f64 -3 x)))) |
(*.f64 -1 (*.f64 y (+.f64 12/29 (*.f64 -3 x)))) |
(*.f64 -1 (*.f64 y (+.f64 12/29 (*.f64 -3 x)))) |
(*.f64 -1 (*.f64 y (+.f64 12/29 (*.f64 -3 x)))) |
(*.f64 -12/29 y) |
(*.f64 3 (*.f64 y x)) |
(*.f64 3 (*.f64 y x)) |
(+.f64 (*.f64 y x) (*.f64 y (+.f64 x x))) |
(+.f64 (*.f64 3 (*.f64 y x)) 0) |
(+.f64 0 (*.f64 3 (*.f64 y x))) |
(+.f64 (*.f64 y (+.f64 x x)) (*.f64 y x)) |
(+.f64 (*.f64 y (*.f64 x 3/2)) (*.f64 y (*.f64 x 3/2))) |
(-.f64 (*.f64 3 (*.f64 y x)) 0) |
(/.f64 (*.f64 3 (*.f64 y x)) 1) |
(/.f64 (*.f64 y (*.f64 x 6)) 2) |
(/.f64 (*.f64 (*.f64 y x) 12) 4) |
(/.f64 (*.f64 2 (*.f64 (*.f64 y x) 12)) 8) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y x) 12))) 16) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y x) 12)))) 32) |
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y x) 12)))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y x) 12))))) 64) |
(+.f64 (*.f64 y -12/29) 0) |
(+.f64 0 (*.f64 y -12/29)) |
(+.f64 (*.f64 y -6/29) (*.f64 y -6/29)) |
(-.f64 (*.f64 y -12/29) 0) |
(/.f64 (*.f64 y -12/29) 1) |
(/.f64 (*.f64 y -24/29) 2) |
(/.f64 (*.f64 y -48/29) 4) |
(/.f64 (*.f64 2 (*.f64 y -48/29)) 8) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 y -48/29))) 16) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y -48/29)))) 32) |
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y -48/29)))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y -48/29))))) 64) |
(-.f64 (*.f64 y (+.f64 -12/29 (*.f64 3 x))) 0) |
(*.f64 y (+.f64 -12/29 (*.f64 3 x))) |
(*.f64 (*.f64 y (+.f64 -12/29 (*.f64 3 x))) 1) |
(*.f64 1 (*.f64 y (+.f64 -12/29 (*.f64 3 x)))) |
(*.f64 2 (*.f64 (*.f64 y (+.f64 -12/29 (*.f64 3 x))) 1/2)) |
(*.f64 2 (*.f64 (*.f64 (+.f64 -12/29 (*.f64 3 x)) 1/2) y)) |
(*.f64 (*.f64 y (*.f64 2 (+.f64 -12/29 (*.f64 3 x)))) 1/2) |
(*.f64 (+.f64 y y) (*.f64 (+.f64 -12/29 (*.f64 3 x)) 1/2)) |
(*.f64 (+.f64 y y) (/.f64 (+.f64 -12/29 (*.f64 3 x)) 2)) |
(*.f64 (+.f64 -12/29 (*.f64 3 x)) y) |
(*.f64 4 (/.f64 (*.f64 y (+.f64 -12/29 (*.f64 3 x))) 4)) |
(*.f64 (*.f64 (*.f64 y (+.f64 -12/29 (*.f64 3 x))) 4) 1/4) |
(*.f64 (*.f64 2 (+.f64 -12/29 (*.f64 3 x))) (*.f64 y 1/2)) |
(*.f64 1/2 (*.f64 y (*.f64 2 (+.f64 -12/29 (*.f64 3 x))))) |
(*.f64 (*.f64 y 1/2) (*.f64 2 (+.f64 -12/29 (*.f64 3 x)))) |
(*.f64 (*.f64 (*.f64 y (+.f64 -12/29 (*.f64 3 x))) 1/2) 2) |
(*.f64 (*.f64 (+.f64 -12/29 (*.f64 3 x)) 1/2) (+.f64 y y)) |
(*.f64 1/4 (*.f64 (*.f64 y (+.f64 -12/29 (*.f64 3 x))) 4)) |
(*.f64 (/.f64 (+.f64 -12/29 (*.f64 3 x)) 2) (+.f64 y y)) |
(*.f64 (/.f64 (*.f64 y (+.f64 -12/29 (*.f64 3 x))) 4) 4) |
(/.f64 (*.f64 y (+.f64 -12/29 (*.f64 3 x))) 1) |
(/.f64 (*.f64 y (*.f64 2 (+.f64 -12/29 (*.f64 3 x)))) 2) |
(/.f64 (*.f64 (*.f64 y (+.f64 -12/29 (*.f64 3 x))) 4) 4) |
(/.f64 (*.f64 2 (*.f64 (*.f64 y (+.f64 -12/29 (*.f64 3 x))) 4)) 8) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y (+.f64 -12/29 (*.f64 3 x))) 4))) 16) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y (+.f64 -12/29 (*.f64 3 x))) 4)))) 32) |
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y (+.f64 -12/29 (*.f64 3 x))) 4)))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y (+.f64 -12/29 (*.f64 3 x))) 4))))) 64) |
| Outputs |
|---|
(*.f64 (-.f64 (*.f64 3 x) 12/29) y) |
(*.f64 (-.f64 (*.f64 3 x) 12/29) y) |
(*.f64 (-.f64 (*.f64 3 x) 12/29) y) |
(*.f64 (-.f64 (*.f64 3 x) 12/29) y) |
(*.f64 (-.f64 (*.f64 3 x) 12/29) y) |
(*.f64 (-.f64 (*.f64 3 x) 12/29) y) |
(*.f64 (-.f64 (*.f64 3 x) 12/29) y) |
(*.f64 (-.f64 (*.f64 3 x) 12/29) y) |
(*.f64 -1 (*.f64 y (+.f64 12/29 (*.f64 -3 x)))) |
(*.f64 y (*.f64 (+.f64 12/29 (*.f64 x -3)) -1)) |
(*.f64 y (neg.f64 (+.f64 12/29 (*.f64 x -3)))) |
(*.f64 (+.f64 12/29 (*.f64 x -3)) (neg.f64 y)) |
(*.f64 -1 (*.f64 y (+.f64 12/29 (*.f64 -3 x)))) |
(*.f64 y (*.f64 (+.f64 12/29 (*.f64 x -3)) -1)) |
(*.f64 y (neg.f64 (+.f64 12/29 (*.f64 x -3)))) |
(*.f64 (+.f64 12/29 (*.f64 x -3)) (neg.f64 y)) |
(*.f64 -1 (*.f64 y (+.f64 12/29 (*.f64 -3 x)))) |
(*.f64 y (*.f64 (+.f64 12/29 (*.f64 x -3)) -1)) |
(*.f64 y (neg.f64 (+.f64 12/29 (*.f64 x -3)))) |
(*.f64 (+.f64 12/29 (*.f64 x -3)) (neg.f64 y)) |
(*.f64 -1 (*.f64 y (+.f64 12/29 (*.f64 -3 x)))) |
(*.f64 y (*.f64 (+.f64 12/29 (*.f64 x -3)) -1)) |
(*.f64 y (neg.f64 (+.f64 12/29 (*.f64 x -3)))) |
(*.f64 (+.f64 12/29 (*.f64 x -3)) (neg.f64 y)) |
(*.f64 -12/29 y) |
(*.f64 y -12/29) |
(*.f64 3 (*.f64 y x)) |
(*.f64 3 (*.f64 x y)) |
(*.f64 3 (*.f64 y x)) |
(*.f64 3 (*.f64 x y)) |
(+.f64 (*.f64 y x) (*.f64 y (+.f64 x x))) |
(*.f64 3 (*.f64 x y)) |
(+.f64 (*.f64 3 (*.f64 y x)) 0) |
(*.f64 3 (*.f64 x y)) |
(+.f64 0 (*.f64 3 (*.f64 y x))) |
(*.f64 3 (*.f64 x y)) |
(+.f64 (*.f64 y (+.f64 x x)) (*.f64 y x)) |
(*.f64 3 (*.f64 x y)) |
(+.f64 (*.f64 y (*.f64 x 3/2)) (*.f64 y (*.f64 x 3/2))) |
(*.f64 3 (*.f64 x y)) |
(-.f64 (*.f64 3 (*.f64 y x)) 0) |
(*.f64 3 (*.f64 x y)) |
(/.f64 (*.f64 3 (*.f64 y x)) 1) |
(*.f64 3 (*.f64 x y)) |
(/.f64 (*.f64 y (*.f64 x 6)) 2) |
(*.f64 3 (*.f64 x y)) |
(/.f64 (*.f64 (*.f64 y x) 12) 4) |
(*.f64 3 (*.f64 x y)) |
(/.f64 (*.f64 2 (*.f64 (*.f64 y x) 12)) 8) |
(*.f64 3 (*.f64 x y)) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y x) 12))) 16) |
(*.f64 3 (*.f64 x y)) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y x) 12)))) 32) |
(*.f64 3 (*.f64 x y)) |
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y x) 12)))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y x) 12))))) 64) |
(*.f64 3 (*.f64 x y)) |
(+.f64 (*.f64 y -12/29) 0) |
(*.f64 y -12/29) |
(+.f64 0 (*.f64 y -12/29)) |
(*.f64 y -12/29) |
(+.f64 (*.f64 y -6/29) (*.f64 y -6/29)) |
(*.f64 y -12/29) |
(-.f64 (*.f64 y -12/29) 0) |
(*.f64 y -12/29) |
(/.f64 (*.f64 y -12/29) 1) |
(*.f64 y -12/29) |
(/.f64 (*.f64 y -24/29) 2) |
(*.f64 y -12/29) |
(/.f64 (*.f64 y -48/29) 4) |
(*.f64 y -12/29) |
(/.f64 (*.f64 2 (*.f64 y -48/29)) 8) |
(*.f64 y -12/29) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 y -48/29))) 16) |
(*.f64 y -12/29) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y -48/29)))) 32) |
(*.f64 y -12/29) |
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y -48/29)))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y -48/29))))) 64) |
(*.f64 y -12/29) |
(-.f64 (*.f64 y (+.f64 -12/29 (*.f64 3 x))) 0) |
(*.f64 y (+.f64 (*.f64 3 x) -12/29)) |
(*.f64 y (+.f64 -12/29 (*.f64 3 x))) |
(*.f64 y (+.f64 (*.f64 3 x) -12/29)) |
(*.f64 (*.f64 y (+.f64 -12/29 (*.f64 3 x))) 1) |
(*.f64 y (+.f64 (*.f64 3 x) -12/29)) |
(*.f64 1 (*.f64 y (+.f64 -12/29 (*.f64 3 x)))) |
(*.f64 y (+.f64 (*.f64 3 x) -12/29)) |
(*.f64 2 (*.f64 (*.f64 y (+.f64 -12/29 (*.f64 3 x))) 1/2)) |
(*.f64 y (+.f64 (*.f64 3 x) -12/29)) |
(*.f64 2 (*.f64 (*.f64 (+.f64 -12/29 (*.f64 3 x)) 1/2) y)) |
(*.f64 y (+.f64 (*.f64 3 x) -12/29)) |
(*.f64 (*.f64 y (*.f64 2 (+.f64 -12/29 (*.f64 3 x)))) 1/2) |
(*.f64 y (+.f64 (*.f64 3 x) -12/29)) |
(*.f64 (+.f64 y y) (*.f64 (+.f64 -12/29 (*.f64 3 x)) 1/2)) |
(*.f64 y (+.f64 (*.f64 3 x) -12/29)) |
(*.f64 (+.f64 y y) (/.f64 (+.f64 -12/29 (*.f64 3 x)) 2)) |
(*.f64 y (+.f64 (*.f64 3 x) -12/29)) |
(*.f64 (+.f64 -12/29 (*.f64 3 x)) y) |
(*.f64 y (+.f64 (*.f64 3 x) -12/29)) |
(*.f64 4 (/.f64 (*.f64 y (+.f64 -12/29 (*.f64 3 x))) 4)) |
(*.f64 y (+.f64 (*.f64 3 x) -12/29)) |
(*.f64 (*.f64 (*.f64 y (+.f64 -12/29 (*.f64 3 x))) 4) 1/4) |
(*.f64 y (+.f64 (*.f64 3 x) -12/29)) |
(*.f64 (*.f64 2 (+.f64 -12/29 (*.f64 3 x))) (*.f64 y 1/2)) |
(*.f64 y (+.f64 (*.f64 3 x) -12/29)) |
(*.f64 1/2 (*.f64 y (*.f64 2 (+.f64 -12/29 (*.f64 3 x))))) |
(*.f64 y (+.f64 (*.f64 3 x) -12/29)) |
(*.f64 (*.f64 y 1/2) (*.f64 2 (+.f64 -12/29 (*.f64 3 x)))) |
(*.f64 y (+.f64 (*.f64 3 x) -12/29)) |
(*.f64 (*.f64 (*.f64 y (+.f64 -12/29 (*.f64 3 x))) 1/2) 2) |
(*.f64 y (+.f64 (*.f64 3 x) -12/29)) |
(*.f64 (*.f64 (+.f64 -12/29 (*.f64 3 x)) 1/2) (+.f64 y y)) |
(*.f64 y (+.f64 (*.f64 3 x) -12/29)) |
(*.f64 1/4 (*.f64 (*.f64 y (+.f64 -12/29 (*.f64 3 x))) 4)) |
(*.f64 y (+.f64 (*.f64 3 x) -12/29)) |
(*.f64 (/.f64 (+.f64 -12/29 (*.f64 3 x)) 2) (+.f64 y y)) |
(*.f64 y (+.f64 (*.f64 3 x) -12/29)) |
(*.f64 (/.f64 (*.f64 y (+.f64 -12/29 (*.f64 3 x))) 4) 4) |
(*.f64 y (+.f64 (*.f64 3 x) -12/29)) |
(/.f64 (*.f64 y (+.f64 -12/29 (*.f64 3 x))) 1) |
(*.f64 y (+.f64 (*.f64 3 x) -12/29)) |
(/.f64 (*.f64 y (*.f64 2 (+.f64 -12/29 (*.f64 3 x)))) 2) |
(*.f64 y (+.f64 (*.f64 3 x) -12/29)) |
(/.f64 (*.f64 (*.f64 y (+.f64 -12/29 (*.f64 3 x))) 4) 4) |
(*.f64 y (+.f64 (*.f64 3 x) -12/29)) |
(/.f64 (*.f64 2 (*.f64 (*.f64 y (+.f64 -12/29 (*.f64 3 x))) 4)) 8) |
(*.f64 y (+.f64 (*.f64 3 x) -12/29)) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y (+.f64 -12/29 (*.f64 3 x))) 4))) 16) |
(*.f64 y (+.f64 (*.f64 3 x) -12/29)) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y (+.f64 -12/29 (*.f64 3 x))) 4)))) 32) |
(*.f64 y (+.f64 (*.f64 3 x) -12/29)) |
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y (+.f64 -12/29 (*.f64 3 x))) 4)))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y (+.f64 -12/29 (*.f64 3 x))) 4))))) 64) |
(*.f64 y (+.f64 (*.f64 3 x) -12/29)) |
Found 1 expressions with local error:
| New | Error | Program |
|---|---|---|
| 0.1b | (*.f64 -12/29 y) |
Compiled 7 to 5 computations (28.6% saved)
Found 1 expressions with local error:
| New | Error | Program |
|---|---|---|
| 0.3b | (*.f64 3 (*.f64 y x)) |
Compiled 13 to 6 computations (53.8% saved)
Found 1 expressions with local error:
| New | Error | Program |
|---|---|---|
| ✓ | 0.2b | (*.f64 (*.f64 3 x) y) |
Compiled 13 to 8 computations (38.5% saved)
6 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 0.0ms | x | @ | 0 | (*.f64 (*.f64 3 x) y) |
| 0.0ms | x | @ | inf | (*.f64 (*.f64 3 x) y) |
| 0.0ms | x | @ | -inf | (*.f64 (*.f64 3 x) y) |
| 0.0ms | y | @ | -inf | (*.f64 (*.f64 3 x) y) |
| 0.0ms | y | @ | inf | (*.f64 (*.f64 3 x) y) |
| 1× | batch-egg-rewrite |
| 1782× | bool.json-1 |
| 1782× | bool.json-2 |
| 1118× | bool.json-3 |
| 1070× | rational.json-1 |
| 1070× | rational.json-2 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 7 | 13 |
| 1 | 70 | 13 |
| 2 | 197 | 13 |
| 3 | 429 | 13 |
| 4 | 882 | 13 |
| 5 | 1943 | 13 |
| 6 | 4125 | 13 |
| 7 | 7045 | 13 |
| 1× | node limit |
| Inputs |
|---|
(*.f64 (*.f64 3 x) y) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 3 (*.f64 x y)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 3 (*.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x y) (*.f64 x (+.f64 y y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (+.f64 y y)) (*.f64 x y))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (*.f64 y 3/2)) (*.f64 x (*.f64 y 3/2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 3 (*.f64 x y)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 3 (*.f64 x y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (*.f64 y 6)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 x y) 12) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 24 (*.f64 x y)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 24 (*.f64 x y))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 24 (*.f64 x y)))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 24 (*.f64 x y)))) (*.f64 2 (*.f64 2 (*.f64 24 (*.f64 x y))))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 3 (*.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 3 (*.f64 x y)) (*.f64 3 (*.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 3 (*.f64 x y)) (*.f64 3 (*.f64 x y))))))) |
| 1× | egg-herbie |
| 3654× | rational.json-simplify-35 |
| 3496× | rational.json-simplify-49 |
| 3082× | rational.json-simplify-2 |
| 856× | rational.json-simplify-1 |
| 530× | rational.json-simplify-41 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 45 | 481 |
| 1 | 99 | 481 |
| 2 | 215 | 481 |
| 3 | 497 | 481 |
| 4 | 1364 | 481 |
| 5 | 2350 | 481 |
| 6 | 2937 | 481 |
| 7 | 3201 | 481 |
| 8 | 3407 | 481 |
| 9 | 3568 | 481 |
| 10 | 3734 | 481 |
| 11 | 3888 | 481 |
| 12 | 3888 | 481 |
| 13 | 3909 | 481 |
| 14 | 3909 | 481 |
| 15 | 4057 | 481 |
| 16 | 4205 | 481 |
| 17 | 6508 | 481 |
| 18 | 7722 | 481 |
| 1× | node limit |
| Inputs |
|---|
(*.f64 3 (*.f64 y x)) |
(*.f64 3 (*.f64 y x)) |
(*.f64 3 (*.f64 y x)) |
(*.f64 3 (*.f64 y x)) |
(*.f64 3 (*.f64 y x)) |
(*.f64 3 (*.f64 y x)) |
(*.f64 3 (*.f64 y x)) |
(*.f64 3 (*.f64 y x)) |
(*.f64 3 (*.f64 y x)) |
(*.f64 3 (*.f64 y x)) |
(*.f64 3 (*.f64 y x)) |
(*.f64 3 (*.f64 y x)) |
(*.f64 3 (*.f64 y x)) |
(*.f64 3 (*.f64 y x)) |
(*.f64 3 (*.f64 y x)) |
(*.f64 3 (*.f64 y x)) |
(*.f64 3 (*.f64 y x)) |
(*.f64 3 (*.f64 y x)) |
(*.f64 3 (*.f64 y x)) |
(*.f64 3 (*.f64 y x)) |
(*.f64 3 (*.f64 y x)) |
(*.f64 3 (*.f64 y x)) |
(*.f64 3 (*.f64 y x)) |
(*.f64 3 (*.f64 y x)) |
(+.f64 (*.f64 3 (*.f64 x y)) 0) |
(+.f64 0 (*.f64 3 (*.f64 x y))) |
(+.f64 (*.f64 x y) (*.f64 x (+.f64 y y))) |
(+.f64 (*.f64 x (+.f64 y y)) (*.f64 x y)) |
(+.f64 (*.f64 x (*.f64 y 3/2)) (*.f64 x (*.f64 y 3/2))) |
(-.f64 (*.f64 3 (*.f64 x y)) 0) |
(/.f64 (*.f64 3 (*.f64 x y)) 1) |
(/.f64 (*.f64 x (*.f64 y 6)) 2) |
(/.f64 (*.f64 (*.f64 x y) 12) 4) |
(/.f64 (*.f64 24 (*.f64 x y)) 8) |
(/.f64 (*.f64 2 (*.f64 24 (*.f64 x y))) 16) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 24 (*.f64 x y)))) 32) |
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 24 (*.f64 x y)))) (*.f64 2 (*.f64 2 (*.f64 24 (*.f64 x y))))) 64) |
| Outputs |
|---|
(*.f64 3 (*.f64 y x)) |
(*.f64 y (*.f64 3 x)) |
(*.f64 3 (*.f64 y x)) |
(*.f64 y (*.f64 3 x)) |
(*.f64 3 (*.f64 y x)) |
(*.f64 y (*.f64 3 x)) |
(*.f64 3 (*.f64 y x)) |
(*.f64 y (*.f64 3 x)) |
(*.f64 3 (*.f64 y x)) |
(*.f64 y (*.f64 3 x)) |
(*.f64 3 (*.f64 y x)) |
(*.f64 y (*.f64 3 x)) |
(*.f64 3 (*.f64 y x)) |
(*.f64 y (*.f64 3 x)) |
(*.f64 3 (*.f64 y x)) |
(*.f64 y (*.f64 3 x)) |
(*.f64 3 (*.f64 y x)) |
(*.f64 y (*.f64 3 x)) |
(*.f64 3 (*.f64 y x)) |
(*.f64 y (*.f64 3 x)) |
(*.f64 3 (*.f64 y x)) |
(*.f64 y (*.f64 3 x)) |
(*.f64 3 (*.f64 y x)) |
(*.f64 y (*.f64 3 x)) |
(*.f64 3 (*.f64 y x)) |
(*.f64 y (*.f64 3 x)) |
(*.f64 3 (*.f64 y x)) |
(*.f64 y (*.f64 3 x)) |
(*.f64 3 (*.f64 y x)) |
(*.f64 y (*.f64 3 x)) |
(*.f64 3 (*.f64 y x)) |
(*.f64 y (*.f64 3 x)) |
(*.f64 3 (*.f64 y x)) |
(*.f64 y (*.f64 3 x)) |
(*.f64 3 (*.f64 y x)) |
(*.f64 y (*.f64 3 x)) |
(*.f64 3 (*.f64 y x)) |
(*.f64 y (*.f64 3 x)) |
(*.f64 3 (*.f64 y x)) |
(*.f64 y (*.f64 3 x)) |
(*.f64 3 (*.f64 y x)) |
(*.f64 y (*.f64 3 x)) |
(*.f64 3 (*.f64 y x)) |
(*.f64 y (*.f64 3 x)) |
(*.f64 3 (*.f64 y x)) |
(*.f64 y (*.f64 3 x)) |
(*.f64 3 (*.f64 y x)) |
(*.f64 y (*.f64 3 x)) |
(+.f64 (*.f64 3 (*.f64 x y)) 0) |
(*.f64 3 (*.f64 y x)) |
(*.f64 y (*.f64 3 x)) |
(+.f64 0 (*.f64 3 (*.f64 x y))) |
(*.f64 3 (*.f64 y x)) |
(*.f64 y (*.f64 3 x)) |
(+.f64 (*.f64 x y) (*.f64 x (+.f64 y y))) |
(*.f64 3 (*.f64 y x)) |
(*.f64 y (*.f64 3 x)) |
(+.f64 (*.f64 x (+.f64 y y)) (*.f64 x y)) |
(*.f64 3 (*.f64 y x)) |
(*.f64 y (*.f64 3 x)) |
(+.f64 (*.f64 x (*.f64 y 3/2)) (*.f64 x (*.f64 y 3/2))) |
(*.f64 3 (*.f64 y x)) |
(*.f64 y (*.f64 3 x)) |
(-.f64 (*.f64 3 (*.f64 x y)) 0) |
(*.f64 3 (*.f64 y x)) |
(*.f64 y (*.f64 3 x)) |
(/.f64 (*.f64 3 (*.f64 x y)) 1) |
(*.f64 3 (*.f64 y x)) |
(*.f64 y (*.f64 3 x)) |
(/.f64 (*.f64 x (*.f64 y 6)) 2) |
(*.f64 3 (*.f64 y x)) |
(*.f64 y (*.f64 3 x)) |
(/.f64 (*.f64 (*.f64 x y) 12) 4) |
(*.f64 3 (*.f64 y x)) |
(*.f64 y (*.f64 3 x)) |
(/.f64 (*.f64 24 (*.f64 x y)) 8) |
(*.f64 3 (*.f64 y x)) |
(*.f64 y (*.f64 3 x)) |
(/.f64 (*.f64 2 (*.f64 24 (*.f64 x y))) 16) |
(*.f64 3 (*.f64 y x)) |
(*.f64 y (*.f64 3 x)) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 24 (*.f64 x y)))) 32) |
(*.f64 3 (*.f64 y x)) |
(*.f64 y (*.f64 3 x)) |
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 24 (*.f64 x y)))) (*.f64 2 (*.f64 2 (*.f64 24 (*.f64 x y))))) 64) |
(*.f64 3 (*.f64 y x)) |
(*.f64 y (*.f64 3 x)) |
Found 2 expressions with local error:
| New | Error | Program |
|---|---|---|
| ✓ | 0.1b | (*.f64 y (-.f64 x 4/29)) |
| ✓ | 0.3b | (*.f64 3 (*.f64 y (-.f64 x 4/29))) |
Compiled 21 to 14 computations (33.3% saved)
12 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 1.0ms | y | @ | -inf | (*.f64 y (-.f64 x 4/29)) |
| 0.0ms | x | @ | -inf | (*.f64 y (-.f64 x 4/29)) |
| 0.0ms | y | @ | inf | (*.f64 3 (*.f64 y (-.f64 x 4/29))) |
| 0.0ms | x | @ | inf | (*.f64 3 (*.f64 y (-.f64 x 4/29))) |
| 0.0ms | y | @ | 0 | (*.f64 3 (*.f64 y (-.f64 x 4/29))) |
| 1× | batch-egg-rewrite |
| 1332× | bool.json-1 |
| 1332× | bool.json-2 |
| 1288× | rational.json-1 |
| 1288× | rational.json-2 |
| 1288× | rational.json-4 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 9 | 32 |
| 1 | 90 | 32 |
| 2 | 245 | 32 |
| 3 | 516 | 32 |
| 4 | 1038 | 32 |
| 5 | 2277 | 32 |
| 6 | 4853 | 32 |
| 1× | node limit |
| Inputs |
|---|
(*.f64 3 (*.f64 y (-.f64 x 4/29))) |
(*.f64 y (-.f64 x 4/29)) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 y (+.f64 x -4/29)) (*.f64 y (+.f64 x (+.f64 x -8/29))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 3 (*.f64 y (+.f64 x -4/29))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 3 (*.f64 y (+.f64 x -4/29))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 y (+.f64 x (+.f64 x -8/29))) (*.f64 y (+.f64 x -4/29)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 y (*.f64 (+.f64 x -4/29) 3/2)) (*.f64 y (*.f64 (+.f64 x -4/29) 3/2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 3 (*.f64 y (+.f64 x -4/29))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 3 (*.f64 y (+.f64 x -4/29))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 x -4/29) (*.f64 y 6)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (*.f64 (+.f64 x -4/29) 12)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 (+.f64 x -4/29) (*.f64 y 6)) 4) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 (+.f64 x -4/29) (*.f64 y 6)) 4)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 x -4/29) (*.f64 y 6)) 4))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 x -4/29) (*.f64 y 6)) 4))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 x -4/29) (*.f64 y 6)) 4)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 3 (*.f64 y (+.f64 x -4/29)))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 3 (*.f64 y (+.f64 x -4/29))) (*.f64 3 (*.f64 y (+.f64 x -4/29))))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 3 (*.f64 y (+.f64 x -4/29))) (*.f64 3 (*.f64 y (+.f64 x -4/29)))))))) |
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 y (+.f64 x -4/29)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 y (+.f64 x -4/29)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 y (*.f64 (+.f64 x -4/29) 1/2)) (*.f64 y (*.f64 (+.f64 x -4/29) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 y (+.f64 x -4/29)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (+.f64 x -4/29)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (+.f64 x (+.f64 x -8/29))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 x -4/29) (*.f64 y 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 y (+.f64 x -4/29)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 y (+.f64 x -4/29)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y (+.f64 x -4/29)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y (+.f64 x -4/29)) 8))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 y (+.f64 x -4/29)) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 y (+.f64 x -4/29))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 y (+.f64 x -4/29)) (*.f64 y (+.f64 x -4/29)))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 y (+.f64 x -4/29)) (*.f64 y (+.f64 x -4/29))))))) |
| 1× | egg-herbie |
| 3636× | rational.json-simplify-41 |
| 2728× | rational.json-simplify-2 |
| 2436× | rational.json-simplify-35 |
| 1496× | rational.json-simplify-53 |
| 1430× | rational.json-simplify-43 |
Useful iterations: 3 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 74 | 1020 |
| 1 | 175 | 888 |
| 2 | 383 | 888 |
| 3 | 900 | 732 |
| 4 | 3477 | 732 |
| 5 | 4237 | 732 |
| 6 | 4450 | 732 |
| 7 | 4583 | 732 |
| 8 | 4706 | 732 |
| 9 | 4827 | 732 |
| 10 | 5950 | 732 |
| 11 | 6723 | 732 |
| 12 | 6852 | 732 |
| 13 | 6854 | 732 |
| 14 | 6854 | 732 |
| 15 | 6971 | 732 |
| 1× | node limit |
| Inputs |
|---|
(*.f64 -12/29 y) |
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y)) |
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y)) |
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y)) |
(*.f64 3 (*.f64 y x)) |
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y)) |
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y)) |
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y)) |
(*.f64 3 (*.f64 y x)) |
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y)) |
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y)) |
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y)) |
(*.f64 -4/29 y) |
(+.f64 (*.f64 y x) (*.f64 -4/29 y)) |
(+.f64 (*.f64 y x) (*.f64 -4/29 y)) |
(+.f64 (*.f64 y x) (*.f64 -4/29 y)) |
(*.f64 y x) |
(+.f64 (*.f64 y x) (*.f64 -4/29 y)) |
(+.f64 (*.f64 y x) (*.f64 -4/29 y)) |
(+.f64 (*.f64 y x) (*.f64 -4/29 y)) |
(*.f64 y x) |
(+.f64 (*.f64 y x) (*.f64 -4/29 y)) |
(+.f64 (*.f64 y x) (*.f64 -4/29 y)) |
(+.f64 (*.f64 y x) (*.f64 -4/29 y)) |
(+.f64 (*.f64 y (+.f64 x -4/29)) (*.f64 y (+.f64 x (+.f64 x -8/29)))) |
(+.f64 (*.f64 3 (*.f64 y (+.f64 x -4/29))) 0) |
(+.f64 0 (*.f64 3 (*.f64 y (+.f64 x -4/29)))) |
(+.f64 (*.f64 y (+.f64 x (+.f64 x -8/29))) (*.f64 y (+.f64 x -4/29))) |
(+.f64 (*.f64 y (*.f64 (+.f64 x -4/29) 3/2)) (*.f64 y (*.f64 (+.f64 x -4/29) 3/2))) |
(-.f64 (*.f64 3 (*.f64 y (+.f64 x -4/29))) 0) |
(/.f64 (*.f64 3 (*.f64 y (+.f64 x -4/29))) 1) |
(/.f64 (*.f64 (+.f64 x -4/29) (*.f64 y 6)) 2) |
(/.f64 (*.f64 y (*.f64 (+.f64 x -4/29) 12)) 4) |
(/.f64 (*.f64 (*.f64 (+.f64 x -4/29) (*.f64 y 6)) 4) 8) |
(/.f64 (*.f64 2 (*.f64 (*.f64 (+.f64 x -4/29) (*.f64 y 6)) 4)) 16) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 x -4/29) (*.f64 y 6)) 4))) 32) |
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 x -4/29) (*.f64 y 6)) 4))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 x -4/29) (*.f64 y 6)) 4)))) 64) |
(+.f64 (*.f64 y (+.f64 x -4/29)) 0) |
(+.f64 0 (*.f64 y (+.f64 x -4/29))) |
(+.f64 (*.f64 y (*.f64 (+.f64 x -4/29) 1/2)) (*.f64 y (*.f64 (+.f64 x -4/29) 1/2))) |
(-.f64 (*.f64 y (+.f64 x -4/29)) 0) |
(/.f64 (*.f64 y (+.f64 x -4/29)) 1) |
(/.f64 (*.f64 y (+.f64 x (+.f64 x -8/29))) 2) |
(/.f64 (*.f64 (+.f64 x -4/29) (*.f64 y 4)) 4) |
(/.f64 (*.f64 (*.f64 y (+.f64 x -4/29)) 8) 8) |
(/.f64 (*.f64 2 (*.f64 (*.f64 y (+.f64 x -4/29)) 8)) 16) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y (+.f64 x -4/29)) 8))) 32) |
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y (+.f64 x -4/29)) 8))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 y (+.f64 x -4/29)) 8)))) 64) |
| Outputs |
|---|
(*.f64 -12/29 y) |
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y)) |
(+.f64 (*.f64 -12/29 y) (*.f64 3 (*.f64 y x))) |
(*.f64 y (+.f64 -12/29 (*.f64 3 x))) |
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y)) |
(+.f64 (*.f64 -12/29 y) (*.f64 3 (*.f64 y x))) |
(*.f64 y (+.f64 -12/29 (*.f64 3 x))) |
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y)) |
(+.f64 (*.f64 -12/29 y) (*.f64 3 (*.f64 y x))) |
(*.f64 y (+.f64 -12/29 (*.f64 3 x))) |
(*.f64 3 (*.f64 y x)) |
(*.f64 y (*.f64 3 x)) |
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y)) |
(+.f64 (*.f64 -12/29 y) (*.f64 3 (*.f64 y x))) |
(*.f64 y (+.f64 -12/29 (*.f64 3 x))) |
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y)) |
(+.f64 (*.f64 -12/29 y) (*.f64 3 (*.f64 y x))) |
(*.f64 y (+.f64 -12/29 (*.f64 3 x))) |
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y)) |
(+.f64 (*.f64 -12/29 y) (*.f64 3 (*.f64 y x))) |
(*.f64 y (+.f64 -12/29 (*.f64 3 x))) |
(*.f64 3 (*.f64 y x)) |
(*.f64 y (*.f64 3 x)) |
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y)) |
(+.f64 (*.f64 -12/29 y) (*.f64 3 (*.f64 y x))) |
(*.f64 y (+.f64 -12/29 (*.f64 3 x))) |
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y)) |
(+.f64 (*.f64 -12/29 y) (*.f64 3 (*.f64 y x))) |
(*.f64 y (+.f64 -12/29 (*.f64 3 x))) |
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y)) |
(+.f64 (*.f64 -12/29 y) (*.f64 3 (*.f64 y x))) |
(*.f64 y (+.f64 -12/29 (*.f64 3 x))) |
(*.f64 -4/29 y) |
(*.f64 y -4/29) |
(+.f64 (*.f64 y x) (*.f64 -4/29 y)) |
(*.f64 y (+.f64 x -4/29)) |
(+.f64 (*.f64 y x) (*.f64 -4/29 y)) |
(*.f64 y (+.f64 x -4/29)) |
(+.f64 (*.f64 y x) (*.f64 -4/29 y)) |
(*.f64 y (+.f64 x -4/29)) |
(*.f64 y x) |
(+.f64 (*.f64 y x) (*.f64 -4/29 y)) |
(*.f64 y (+.f64 x -4/29)) |
(+.f64 (*.f64 y x) (*.f64 -4/29 y)) |
(*.f64 y (+.f64 x -4/29)) |
(+.f64 (*.f64 y x) (*.f64 -4/29 y)) |
(*.f64 y (+.f64 x -4/29)) |
(*.f64 y x) |
(+.f64 (*.f64 y x) (*.f64 -4/29 y)) |
(*.f64 y (+.f64 x -4/29)) |
(+.f64 (*.f64 y x) (*.f64 -4/29 y)) |
(*.f64 y (+.f64 x -4/29)) |
(+.f64 (*.f64 y x) (*.f64 -4/29 y)) |
(*.f64 y (+.f64 x -4/29)) |
(+.f64 (*.f64 y (+.f64 x -4/29)) (*.f64 y (+.f64 x (+.f64 x -8/29)))) |
(*.f64 y (+.f64 (+.f64 x (+.f64 x -8/29)) (+.f64 x -4/29))) |
(*.f64 y (+.f64 (+.f64 x -4/29) (+.f64 x (+.f64 x -8/29)))) |
(*.f64 (+.f64 x -4/29) (*.f64 y 3)) |
(+.f64 (*.f64 3 (*.f64 y (+.f64 x -4/29))) 0) |
(+.f64 (*.f64 y (+.f64 x -4/29)) (*.f64 y (+.f64 x (+.f64 x -8/29)))) |
(*.f64 y (+.f64 (+.f64 x (+.f64 x -8/29)) (+.f64 x -4/29))) |
(*.f64 y (+.f64 (+.f64 x -4/29) (+.f64 x (+.f64 x -8/29)))) |
(*.f64 (+.f64 x -4/29) (*.f64 y 3)) |
(+.f64 0 (*.f64 3 (*.f64 y (+.f64 x -4/29)))) |
(+.f64 (*.f64 y (+.f64 x -4/29)) (*.f64 y (+.f64 x (+.f64 x -8/29)))) |
(*.f64 y (+.f64 (+.f64 x (+.f64 x -8/29)) (+.f64 x -4/29))) |
(*.f64 y (+.f64 (+.f64 x -4/29) (+.f64 x (+.f64 x -8/29)))) |
(*.f64 (+.f64 x -4/29) (*.f64 y 3)) |
(+.f64 (*.f64 y (+.f64 x (+.f64 x -8/29))) (*.f64 y (+.f64 x -4/29))) |
(+.f64 (*.f64 y (+.f64 x -4/29)) (*.f64 y (+.f64 x (+.f64 x -8/29)))) |
(*.f64 y (+.f64 (+.f64 x (+.f64 x -8/29)) (+.f64 x -4/29))) |
(*.f64 y (+.f64 (+.f64 x -4/29) (+.f64 x (+.f64 x -8/29)))) |
(*.f64 (+.f64 x -4/29) (*.f64 y 3)) |
(+.f64 (*.f64 y (*.f64 (+.f64 x -4/29) 3/2)) (*.f64 y (*.f64 (+.f64 x -4/29) 3/2))) |
(+.f64 (*.f64 y (+.f64 x -4/29)) (*.f64 y (+.f64 x (+.f64 x -8/29)))) |
(*.f64 y (+.f64 (+.f64 x (+.f64 x -8/29)) (+.f64 x -4/29))) |
(*.f64 y (+.f64 (+.f64 x -4/29) (+.f64 x (+.f64 x -8/29)))) |
(*.f64 (+.f64 x -4/29) (*.f64 y 3)) |
(-.f64 (*.f64 3 (*.f64 y (+.f64 x -4/29))) 0) |
(+.f64 (*.f64 y (+.f64 x -4/29)) (*.f64 y (+.f64 x (+.f64 x -8/29)))) |
(*.f64 y (+.f64 (+.f64 x (+.f64 x -8/29)) (+.f64 x -4/29))) |
(*.f64 y (+.f64 (+.f64 x -4/29) (+.f64 x (+.f64 x -8/29)))) |
(*.f64 (+.f64 x -4/29) (*.f64 y 3)) |
(/.f64 (*.f64 3 (*.f64 y (+.f64 x -4/29))) 1) |
(+.f64 (*.f64 y (+.f64 x -4/29)) (*.f64 y (+.f64 x (+.f64 x -8/29)))) |
(*.f64 y (+.f64 (+.f64 x (+.f64 x -8/29)) (+.f64 x -4/29))) |
(*.f64 y (+.f64 (+.f64 x -4/29) (+.f64 x (+.f64 x -8/29)))) |
(*.f64 (+.f64 x -4/29) (*.f64 y 3)) |
(/.f64 (*.f64 (+.f64 x -4/29) (*.f64 y 6)) 2) |
(+.f64 (*.f64 y (+.f64 x -4/29)) (*.f64 y (+.f64 x (+.f64 x -8/29)))) |
(*.f64 y (+.f64 (+.f64 x (+.f64 x -8/29)) (+.f64 x -4/29))) |
(*.f64 y (+.f64 (+.f64 x -4/29) (+.f64 x (+.f64 x -8/29)))) |
(*.f64 (+.f64 x -4/29) (*.f64 y 3)) |
(/.f64 (*.f64 y (*.f64 (+.f64 x -4/29) 12)) 4) |
(+.f64 (*.f64 y (+.f64 x -4/29)) (*.f64 y (+.f64 x (+.f64 x -8/29)))) |
(*.f64 y (+.f64 (+.f64 x (+.f64 x -8/29)) (+.f64 x -4/29))) |
(*.f64 y (+.f64 (+.f64 x -4/29) (+.f64 x (+.f64 x -8/29)))) |
(*.f64 (+.f64 x -4/29) (*.f64 y 3)) |
(/.f64 (*.f64 (*.f64 (+.f64 x -4/29) (*.f64 y 6)) 4) 8) |
(+.f64 (*.f64 y (+.f64 x -4/29)) (*.f64 y (+.f64 x (+.f64 x -8/29)))) |
(*.f64 y (+.f64 (+.f64 x (+.f64 x -8/29)) (+.f64 x -4/29))) |
(*.f64 y (+.f64 (+.f64 x -4/29) (+.f64 x (+.f64 x -8/29)))) |
(*.f64 (+.f64 x -4/29) (*.f64 y 3)) |
(/.f64 (*.f64 2 (*.f64 (*.f64 (+.f64 x -4/29) (*.f64 y 6)) 4)) 16) |
(+.f64 (*.f64 y (+.f64 x -4/29)) (*.f64 y (+.f64 x (+.f64 x -8/29)))) |
(*.f64 y (+.f64 (+.f64 x (+.f64 x -8/29)) (+.f64 x -4/29))) |
(*.f64 y (+.f64 (+.f64 x -4/29) (+.f64 x (+.f64 x -8/29)))) |
(*.f64 (+.f64 x -4/29) (*.f64 y 3)) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 x -4/29) (*.f64 y 6)) 4))) 32) |
(+.f64 (*.f64 y (+.f64 x -4/29)) (*.f64 y (+.f64 x (+.f64 x -8/29)))) |
(*.f64 y (+.f64 (+.f64 x (+.f64 x -8/29)) (+.f64 x -4/29))) |
(*.f64 y (+.f64 (+.f64 x -4/29) (+.f64 x (+.f64 x -8/29)))) |
(*.f64 (+.f64 x -4/29) (*.f64 y 3)) |
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 x -4/29) (*.f64 y 6)) 4))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 x -4/29) (*.f64 y 6)) 4)))) 64) |
(+.f64 (*.f64 y (+.f64 x -4/29)) (*.f64 y (+.f64 x (+.f64 x -8/29)))) |
(*.f64 y (+.f64 (+.f64 x (+.f64 x -8/29)) (+.f64 x -4/29))) |
(*.f64 y (+.f64 (+.f64 x -4/29) (+.f64 x (+.f64 x -8/29)))) |
(*.f64 (+.f64 x -4/29) (*.f64 y 3)) |
(+.f64 (*.f64 y (+.f64 x -4/29)) 0) |
(*.f64 y (+.f64 x -4/29)) |
(+.f64 0 (*.f64 y (+.f64 x -4/29))) |
(*.f64 y (+.f64 x -4/29)) |
(+.f64 (*.f64 y (*.f64 (+.f64 x -4/29) 1/2)) (*.f64 y (*.f64 (+.f64 x -4/29) 1/2))) |
(*.f64 y (+.f64 x -4/29)) |
(-.f64 (*.f64 y (+.f64 x -4/29)) 0) |
(*.f64 y (+.f64 x -4/29)) |
(/.f64 (*.f64 y (+.f64 x -4/29)) 1) |
(*.f64 y (+.f64 x -4/29)) |
(/.f64 (*.f64 y (+.f64 x (+.f64 x -8/29))) 2) |
(*.f64 y (+.f64 x -4/29)) |
(/.f64 (*.f64 (+.f64 x -4/29) (*.f64 y 4)) 4) |
(*.f64 y (+.f64 x -4/29)) |
(/.f64 (*.f64 (*.f64 y (+.f64 x -4/29)) 8) 8) |
(*.f64 y (+.f64 x -4/29)) |
(/.f64 (*.f64 2 (*.f64 (*.f64 y (+.f64 x -4/29)) 8)) 16) |
(*.f64 y (+.f64 x -4/29)) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y (+.f64 x -4/29)) 8))) 32) |
(*.f64 y (+.f64 x -4/29)) |
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y (+.f64 x -4/29)) 8))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 y (+.f64 x -4/29)) 8)))) 64) |
(*.f64 y (+.f64 x -4/29)) |
Compiled 1458 to 1045 computations (28.3% saved)
7 alts after pruning (2 fresh and 5 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 137 | 1 | 138 |
| Fresh | 0 | 1 | 1 |
| Picked | 1 | 0 | 1 |
| Done | 0 | 5 | 5 |
| Total | 138 | 7 | 145 |
| Status | Error | Program |
|---|---|---|
| ✓ | 0.2b | (+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y)) |
| ▶ | 0.2b | (*.f64 (-.f64 (*.f64 3 x) 12/29) y) |
| ✓ | 0.3b | (*.f64 (-.f64 x 4/29) (*.f64 3 y)) |
| ✓ | 36.8b | (*.f64 (*.f64 3 x) y) |
| ✓ | 36.8b | (*.f64 3 (*.f64 y x)) |
| ▶ | 26.7b | (*.f64 3 (*.f64 y -4/29)) |
| ✓ | 26.6b | (*.f64 -12/29 y) |
Compiled 55 to 42 computations (23.6% saved)
Found 2 expressions with local error:
| New | Error | Program |
|---|---|---|
| ✓ | 0.1b | (*.f64 y -4/29) |
| ✓ | 0.3b | (*.f64 3 (*.f64 y -4/29)) |
Compiled 13 to 10 computations (23.1% saved)
6 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 0.0ms | y | @ | -inf | (*.f64 y -4/29) |
| 0.0ms | y | @ | inf | (*.f64 y -4/29) |
| 0.0ms | y | @ | 0 | (*.f64 y -4/29) |
| 0.0ms | y | @ | inf | (*.f64 3 (*.f64 y -4/29)) |
| 0.0ms | y | @ | 0 | (*.f64 3 (*.f64 y -4/29)) |
| 1× | batch-egg-rewrite |
| 1548× | bool.json-1 |
| 1548× | bool.json-2 |
| 1480× | rational.json-1 |
| 1480× | rational.json-2 |
| 1480× | rational.json-3 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 7 | 14 |
| 1 | 73 | 14 |
| 2 | 205 | 14 |
| 3 | 425 | 14 |
| 4 | 864 | 14 |
| 5 | 1852 | 14 |
| 6 | 3798 | 14 |
| 7 | 6540 | 14 |
| 1× | node limit |
| Inputs |
|---|
(*.f64 3 (*.f64 y -4/29)) |
(*.f64 y -4/29) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 y -4/29) (*.f64 y -8/29))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 y -12/29) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 y -12/29))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 y -8/29) (*.f64 y -4/29))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 y -6/29) (*.f64 y -6/29))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 y -12/29) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y -12/29) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y -24/29) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y -48/29) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 y -48/29)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 y -48/29))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y -48/29)))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y -48/29)))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y -48/29))))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 y -12/29)))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 y -12/29) (*.f64 y -12/29))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 y -12/29) (*.f64 y -12/29)))))) |
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 y -4/29) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 y -4/29))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 y -2/29) (*.f64 y -2/29))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 y -4/29) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y -4/29) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y -8/29) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y -16/29) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 y -4/29) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 y -16/29) (*.f64 y -48/29)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (+.f64 (*.f64 y -16/29) (*.f64 y -48/29))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (+.f64 (*.f64 y -16/29) (*.f64 y -48/29))) (*.f64 2 (+.f64 (*.f64 y -16/29) (*.f64 y -48/29)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 y -4/29)))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 y -4/29) (*.f64 y -4/29))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 y -4/29) (*.f64 y -4/29)))))) |
| 1× | egg-herbie |
| 5078× | rational.json-simplify-41 |
| 3840× | rational.json-simplify-35 |
| 1128× | rational.json-simplify-2 |
| 538× | rational.json-simplify-1 |
| 438× | rational.json-simplify-49 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 61 | 336 |
| 1 | 129 | 336 |
| 2 | 267 | 336 |
| 3 | 648 | 336 |
| 4 | 2048 | 336 |
| 5 | 3029 | 336 |
| 6 | 3268 | 336 |
| 7 | 3380 | 336 |
| 8 | 3479 | 336 |
| 9 | 3575 | 336 |
| 10 | 3669 | 336 |
| 11 | 3806 | 336 |
| 12 | 3900 | 336 |
| 13 | 3994 | 336 |
| 14 | 4088 | 336 |
| 15 | 4088 | 336 |
| 16 | 4182 | 336 |
| 17 | 4276 | 336 |
| 18 | 4370 | 336 |
| 19 | 4464 | 336 |
| 20 | 4558 | 336 |
| 21 | 4652 | 336 |
| 22 | 4746 | 336 |
| 23 | 4840 | 336 |
| 24 | 4934 | 336 |
| 25 | 5028 | 336 |
| 26 | 5122 | 336 |
| 27 | 5216 | 336 |
| 28 | 5216 | 336 |
| 1× | node limit |
| Inputs |
|---|
(*.f64 -12/29 y) |
(*.f64 -12/29 y) |
(*.f64 -12/29 y) |
(*.f64 -12/29 y) |
(*.f64 -12/29 y) |
(*.f64 -12/29 y) |
(*.f64 -12/29 y) |
(*.f64 -12/29 y) |
(*.f64 -12/29 y) |
(*.f64 -12/29 y) |
(*.f64 -12/29 y) |
(*.f64 -12/29 y) |
(*.f64 -4/29 y) |
(*.f64 -4/29 y) |
(*.f64 -4/29 y) |
(*.f64 -4/29 y) |
(*.f64 -4/29 y) |
(*.f64 -4/29 y) |
(*.f64 -4/29 y) |
(*.f64 -4/29 y) |
(*.f64 -4/29 y) |
(*.f64 -4/29 y) |
(*.f64 -4/29 y) |
(*.f64 -4/29 y) |
(+.f64 (*.f64 y -4/29) (*.f64 y -8/29)) |
(+.f64 (*.f64 y -12/29) 0) |
(+.f64 0 (*.f64 y -12/29)) |
(+.f64 (*.f64 y -8/29) (*.f64 y -4/29)) |
(+.f64 (*.f64 y -6/29) (*.f64 y -6/29)) |
(-.f64 (*.f64 y -12/29) 0) |
(/.f64 (*.f64 y -12/29) 1) |
(/.f64 (*.f64 y -24/29) 2) |
(/.f64 (*.f64 y -48/29) 4) |
(/.f64 (*.f64 2 (*.f64 y -48/29)) 8) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 y -48/29))) 16) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y -48/29)))) 32) |
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y -48/29)))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y -48/29))))) 64) |
(+.f64 (*.f64 y -4/29) 0) |
(+.f64 0 (*.f64 y -4/29)) |
(+.f64 (*.f64 y -2/29) (*.f64 y -2/29)) |
(-.f64 (*.f64 y -4/29) 0) |
(/.f64 (*.f64 y -4/29) 1) |
(/.f64 (*.f64 y -8/29) 2) |
(/.f64 (*.f64 y -16/29) 4) |
(/.f64 (*.f64 (*.f64 y -4/29) 8) 8) |
(/.f64 (+.f64 (*.f64 y -16/29) (*.f64 y -48/29)) 16) |
(/.f64 (*.f64 2 (+.f64 (*.f64 y -16/29) (*.f64 y -48/29))) 32) |
(/.f64 (+.f64 (*.f64 2 (+.f64 (*.f64 y -16/29) (*.f64 y -48/29))) (*.f64 2 (+.f64 (*.f64 y -16/29) (*.f64 y -48/29)))) 64) |
| Outputs |
|---|
(*.f64 -12/29 y) |
(*.f64 -12/29 y) |
(*.f64 -12/29 y) |
(*.f64 -12/29 y) |
(*.f64 -12/29 y) |
(*.f64 -12/29 y) |
(*.f64 -12/29 y) |
(*.f64 -12/29 y) |
(*.f64 -12/29 y) |
(*.f64 -12/29 y) |
(*.f64 -12/29 y) |
(*.f64 -12/29 y) |
(*.f64 -4/29 y) |
(*.f64 y -4/29) |
(*.f64 -4/29 y) |
(*.f64 y -4/29) |
(*.f64 -4/29 y) |
(*.f64 y -4/29) |
(*.f64 -4/29 y) |
(*.f64 y -4/29) |
(*.f64 -4/29 y) |
(*.f64 y -4/29) |
(*.f64 -4/29 y) |
(*.f64 y -4/29) |
(*.f64 -4/29 y) |
(*.f64 y -4/29) |
(*.f64 -4/29 y) |
(*.f64 y -4/29) |
(*.f64 -4/29 y) |
(*.f64 y -4/29) |
(*.f64 -4/29 y) |
(*.f64 y -4/29) |
(*.f64 -4/29 y) |
(*.f64 y -4/29) |
(*.f64 -4/29 y) |
(*.f64 y -4/29) |
(+.f64 (*.f64 y -4/29) (*.f64 y -8/29)) |
(*.f64 -12/29 y) |
(+.f64 (*.f64 y -12/29) 0) |
(*.f64 -12/29 y) |
(+.f64 0 (*.f64 y -12/29)) |
(*.f64 -12/29 y) |
(+.f64 (*.f64 y -8/29) (*.f64 y -4/29)) |
(*.f64 -12/29 y) |
(+.f64 (*.f64 y -6/29) (*.f64 y -6/29)) |
(*.f64 -12/29 y) |
(-.f64 (*.f64 y -12/29) 0) |
(*.f64 -12/29 y) |
(/.f64 (*.f64 y -12/29) 1) |
(*.f64 -12/29 y) |
(/.f64 (*.f64 y -24/29) 2) |
(*.f64 -12/29 y) |
(/.f64 (*.f64 y -48/29) 4) |
(*.f64 -12/29 y) |
(/.f64 (*.f64 2 (*.f64 y -48/29)) 8) |
(*.f64 -12/29 y) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 y -48/29))) 16) |
(*.f64 -12/29 y) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y -48/29)))) 32) |
(*.f64 -12/29 y) |
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y -48/29)))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y -48/29))))) 64) |
(*.f64 -12/29 y) |
(+.f64 (*.f64 y -4/29) 0) |
(*.f64 y -4/29) |
(+.f64 0 (*.f64 y -4/29)) |
(*.f64 y -4/29) |
(+.f64 (*.f64 y -2/29) (*.f64 y -2/29)) |
(*.f64 y -4/29) |
(-.f64 (*.f64 y -4/29) 0) |
(*.f64 y -4/29) |
(/.f64 (*.f64 y -4/29) 1) |
(*.f64 y -4/29) |
(/.f64 (*.f64 y -8/29) 2) |
(*.f64 y -4/29) |
(/.f64 (*.f64 y -16/29) 4) |
(*.f64 y -4/29) |
(/.f64 (*.f64 (*.f64 y -4/29) 8) 8) |
(*.f64 y -4/29) |
(/.f64 (+.f64 (*.f64 y -16/29) (*.f64 y -48/29)) 16) |
(*.f64 y -4/29) |
(/.f64 (*.f64 2 (+.f64 (*.f64 y -16/29) (*.f64 y -48/29))) 32) |
(*.f64 y -4/29) |
(/.f64 (+.f64 (*.f64 2 (+.f64 (*.f64 y -16/29) (*.f64 y -48/29))) (*.f64 2 (+.f64 (*.f64 y -16/29) (*.f64 y -48/29)))) 64) |
(*.f64 y -4/29) |
Found 2 expressions with local error:
| New | Error | Program |
|---|---|---|
| ✓ | 0.0b | (-.f64 (*.f64 3 x) 12/29) |
| ✓ | 0.2b | (*.f64 (-.f64 (*.f64 3 x) 12/29) y) |
Compiled 21 to 15 computations (28.6% saved)
9 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 0.0ms | y | @ | 0 | (*.f64 (-.f64 (*.f64 3 x) 12/29) y) |
| 0.0ms | x | @ | -inf | (*.f64 (-.f64 (*.f64 3 x) 12/29) y) |
| 0.0ms | x | @ | 0 | (*.f64 (-.f64 (*.f64 3 x) 12/29) y) |
| 0.0ms | y | @ | inf | (*.f64 (-.f64 (*.f64 3 x) 12/29) y) |
| 0.0ms | x | @ | inf | (*.f64 (-.f64 (*.f64 3 x) 12/29) y) |
| 1× | batch-egg-rewrite |
| 1970× | bool.json-1 |
| 1970× | bool.json-2 |
| 1164× | rational.json-1 |
| 1164× | rational.json-2 |
| 1164× | rational.json-4 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 9 | 32 |
| 1 | 88 | 32 |
| 2 | 227 | 32 |
| 3 | 459 | 32 |
| 4 | 929 | 32 |
| 5 | 1998 | 32 |
| 6 | 4286 | 32 |
| 7 | 7419 | 32 |
| 1× | node limit |
| Inputs |
|---|
(*.f64 (-.f64 (*.f64 3 x) 12/29) y) |
(-.f64 (*.f64 3 x) 12/29) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 (*.f64 3 x) -12/29) y) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (+.f64 (*.f64 3 x) -12/29) y))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 (*.f64 3 x) -12/29) (/.f64 y 2)) (*.f64 (+.f64 (*.f64 3 x) -12/29) (/.f64 y 2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (+.f64 (*.f64 3 x) -12/29) y) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 3 x) -12/29) y) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 3 x) -12/29) (+.f64 y y)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 3 x) -12/29) (*.f64 y 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 y 8) (+.f64 (*.f64 3 x) -12/29)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 y 8) (+.f64 (*.f64 3 x) -12/29))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y 8) (+.f64 (*.f64 3 x) -12/29)))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y 8) (+.f64 (*.f64 3 x) -12/29)))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 y 8) (+.f64 (*.f64 3 x) -12/29))))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 (+.f64 (*.f64 3 x) -12/29) y)))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 (+.f64 (*.f64 3 x) -12/29) y) (*.f64 (+.f64 (*.f64 3 x) -12/29) y))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 (+.f64 (*.f64 3 x) -12/29) y) (*.f64 (+.f64 (*.f64 3 x) -12/29) y)))))) |
((#(struct:change #<rule egg-rr> (2) ((x +.f64 x (+.f64 (+.f64 x x) -12/29))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 3 x) -12/29)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 (*.f64 3 x) -12/29) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (+.f64 (*.f64 3 x) -12/29))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 x x) (+.f64 x -12/29))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -12/29 (*.f64 3 x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 (*.f64 3 x) -12/29) 1/2) (*.f64 (+.f64 (*.f64 3 x) -12/29) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x 3/2) (-.f64 (*.f64 x 3/2) 12/29))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 x -12/29) (+.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 (+.f64 x x) -12/29) x)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 3 x) -12/29) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 (*.f64 3 x) -12/29))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (+.f64 (*.f64 3 x) -12/29) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 -12/29 (+.f64 (*.f64 x 6) -12/29)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (+.f64 (*.f64 3 x) -12/29) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 3 x) -12/29) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 -12/29 (+.f64 (*.f64 x 6) -12/29)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 3 x) -12/29) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (+.f64 (*.f64 3 x) -12/29) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 (*.f64 3 x) -12/29) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 3 x) -12/29) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 -12/29 (+.f64 (*.f64 x 6) -12/29)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 3 x) -12/29) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 3 x) -12/29) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 3 x) -12/29) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 3 x) -12/29) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 3 x) -12/29) 8))) (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 3 x) -12/29) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (+.f64 (*.f64 3 x) -12/29)))))) (#(struct:change #<rule egg-rr> (2) ((x and (+.f64 (*.f64 3 x) -12/29) (+.f64 (*.f64 3 x) -12/29))))) (#(struct:change #<rule egg-rr> (2) ((x or (+.f64 (*.f64 3 x) -12/29) (+.f64 (*.f64 3 x) -12/29)))))) |
| 1× | egg-herbie |
| 5012× | rational.json-simplify-41 |
| 1816× | rational.json-simplify-2 |
| 1804× | rational.json-simplify-35 |
| 812× | rational.json-simplify-51 |
| 756× | rational.json-simplify-1 |
Useful iterations: 1 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 89 | 935 |
| 1 | 178 | 815 |
| 2 | 468 | 815 |
| 3 | 1479 | 815 |
| 4 | 3185 | 815 |
| 5 | 3553 | 815 |
| 6 | 3646 | 815 |
| 7 | 3725 | 815 |
| 8 | 3801 | 815 |
| 9 | 3877 | 815 |
| 10 | 4424 | 815 |
| 11 | 4500 | 815 |
| 12 | 4576 | 815 |
| 13 | 4652 | 815 |
| 14 | 4728 | 815 |
| 15 | 4804 | 815 |
| 16 | 4880 | 815 |
| 17 | 4880 | 815 |
| 1× | node limit |
| Inputs |
|---|
(*.f64 -12/29 y) |
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y)) |
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y)) |
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y)) |
(*.f64 3 (*.f64 y x)) |
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y)) |
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y)) |
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y)) |
(*.f64 3 (*.f64 y x)) |
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y)) |
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y)) |
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y)) |
-12/29 |
(*.f64 3 x) |
(*.f64 3 x) |
(+.f64 (*.f64 (+.f64 (*.f64 3 x) -12/29) y) 0) |
(+.f64 0 (*.f64 (+.f64 (*.f64 3 x) -12/29) y)) |
(+.f64 (*.f64 (+.f64 (*.f64 3 x) -12/29) (/.f64 y 2)) (*.f64 (+.f64 (*.f64 3 x) -12/29) (/.f64 y 2))) |
(-.f64 (*.f64 (+.f64 (*.f64 3 x) -12/29) y) 0) |
(/.f64 (*.f64 (+.f64 (*.f64 3 x) -12/29) y) 1) |
(/.f64 (*.f64 (+.f64 (*.f64 3 x) -12/29) (+.f64 y y)) 2) |
(/.f64 (*.f64 (+.f64 (*.f64 3 x) -12/29) (*.f64 y 4)) 4) |
(/.f64 (*.f64 (*.f64 y 8) (+.f64 (*.f64 3 x) -12/29)) 8) |
(/.f64 (*.f64 2 (*.f64 (*.f64 y 8) (+.f64 (*.f64 3 x) -12/29))) 16) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y 8) (+.f64 (*.f64 3 x) -12/29)))) 32) |
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y 8) (+.f64 (*.f64 3 x) -12/29)))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 y 8) (+.f64 (*.f64 3 x) -12/29))))) 64) |
(+.f64 x (+.f64 (+.f64 x x) -12/29)) |
(+.f64 (*.f64 3 x) -12/29) |
(+.f64 (+.f64 (*.f64 3 x) -12/29) 0) |
(+.f64 0 (+.f64 (*.f64 3 x) -12/29)) |
(+.f64 (+.f64 x x) (+.f64 x -12/29)) |
(+.f64 -12/29 (*.f64 3 x)) |
(+.f64 (*.f64 (+.f64 (*.f64 3 x) -12/29) 1/2) (*.f64 (+.f64 (*.f64 3 x) -12/29) 1/2)) |
(+.f64 (*.f64 x 3/2) (-.f64 (*.f64 x 3/2) 12/29)) |
(+.f64 (+.f64 x -12/29) (+.f64 x x)) |
(+.f64 (+.f64 (+.f64 x x) -12/29) x) |
(*.f64 (+.f64 (*.f64 3 x) -12/29) 1) |
(*.f64 1 (+.f64 (*.f64 3 x) -12/29)) |
(*.f64 2 (*.f64 (+.f64 (*.f64 3 x) -12/29) 1/2)) |
(*.f64 (+.f64 -12/29 (+.f64 (*.f64 x 6) -12/29)) 1/2) |
(*.f64 4 (/.f64 (+.f64 (*.f64 3 x) -12/29) 4)) |
(*.f64 (*.f64 (+.f64 (*.f64 3 x) -12/29) 4) 1/4) |
(*.f64 1/2 (+.f64 -12/29 (+.f64 (*.f64 x 6) -12/29))) |
(*.f64 (*.f64 (+.f64 (*.f64 3 x) -12/29) 1/2) 2) |
(*.f64 1/4 (*.f64 (+.f64 (*.f64 3 x) -12/29) 4)) |
(*.f64 (/.f64 (+.f64 (*.f64 3 x) -12/29) 4) 4) |
(/.f64 (+.f64 (*.f64 3 x) -12/29) 1) |
(/.f64 (+.f64 -12/29 (+.f64 (*.f64 x 6) -12/29)) 2) |
(/.f64 (*.f64 (+.f64 (*.f64 3 x) -12/29) 4) 4) |
(/.f64 (*.f64 (+.f64 (*.f64 3 x) -12/29) 8) 8) |
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 3 x) -12/29) 8)) 16) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 3 x) -12/29) 8))) 32) |
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 3 x) -12/29) 8))) (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 3 x) -12/29) 8)))) 64) |
| Outputs |
|---|
(*.f64 -12/29 y) |
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y)) |
(+.f64 (*.f64 -12/29 y) (*.f64 3 (*.f64 y x))) |
(*.f64 y (+.f64 -12/29 (*.f64 3 x))) |
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y)) |
(+.f64 (*.f64 -12/29 y) (*.f64 3 (*.f64 y x))) |
(*.f64 y (+.f64 -12/29 (*.f64 3 x))) |
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y)) |
(+.f64 (*.f64 -12/29 y) (*.f64 3 (*.f64 y x))) |
(*.f64 y (+.f64 -12/29 (*.f64 3 x))) |
(*.f64 3 (*.f64 y x)) |
(*.f64 y (*.f64 3 x)) |
(*.f64 x (*.f64 y 3)) |
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y)) |
(+.f64 (*.f64 -12/29 y) (*.f64 3 (*.f64 y x))) |
(*.f64 y (+.f64 -12/29 (*.f64 3 x))) |
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y)) |
(+.f64 (*.f64 -12/29 y) (*.f64 3 (*.f64 y x))) |
(*.f64 y (+.f64 -12/29 (*.f64 3 x))) |
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y)) |
(+.f64 (*.f64 -12/29 y) (*.f64 3 (*.f64 y x))) |
(*.f64 y (+.f64 -12/29 (*.f64 3 x))) |
(*.f64 3 (*.f64 y x)) |
(*.f64 y (*.f64 3 x)) |
(*.f64 x (*.f64 y 3)) |
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y)) |
(+.f64 (*.f64 -12/29 y) (*.f64 3 (*.f64 y x))) |
(*.f64 y (+.f64 -12/29 (*.f64 3 x))) |
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y)) |
(+.f64 (*.f64 -12/29 y) (*.f64 3 (*.f64 y x))) |
(*.f64 y (+.f64 -12/29 (*.f64 3 x))) |
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y)) |
(+.f64 (*.f64 -12/29 y) (*.f64 3 (*.f64 y x))) |
(*.f64 y (+.f64 -12/29 (*.f64 3 x))) |
-12/29 |
(*.f64 3 x) |
(*.f64 3 x) |
(+.f64 (*.f64 (+.f64 (*.f64 3 x) -12/29) y) 0) |
(+.f64 (*.f64 -12/29 y) (*.f64 3 (*.f64 y x))) |
(*.f64 y (+.f64 -12/29 (*.f64 3 x))) |
(+.f64 0 (*.f64 (+.f64 (*.f64 3 x) -12/29) y)) |
(+.f64 (*.f64 -12/29 y) (*.f64 3 (*.f64 y x))) |
(*.f64 y (+.f64 -12/29 (*.f64 3 x))) |
(+.f64 (*.f64 (+.f64 (*.f64 3 x) -12/29) (/.f64 y 2)) (*.f64 (+.f64 (*.f64 3 x) -12/29) (/.f64 y 2))) |
(+.f64 (*.f64 -12/29 y) (*.f64 3 (*.f64 y x))) |
(*.f64 y (+.f64 -12/29 (*.f64 3 x))) |
(-.f64 (*.f64 (+.f64 (*.f64 3 x) -12/29) y) 0) |
(+.f64 (*.f64 -12/29 y) (*.f64 3 (*.f64 y x))) |
(*.f64 y (+.f64 -12/29 (*.f64 3 x))) |
(/.f64 (*.f64 (+.f64 (*.f64 3 x) -12/29) y) 1) |
(+.f64 (*.f64 -12/29 y) (*.f64 3 (*.f64 y x))) |
(*.f64 y (+.f64 -12/29 (*.f64 3 x))) |
(/.f64 (*.f64 (+.f64 (*.f64 3 x) -12/29) (+.f64 y y)) 2) |
(+.f64 (*.f64 -12/29 y) (*.f64 3 (*.f64 y x))) |
(*.f64 y (+.f64 -12/29 (*.f64 3 x))) |
(/.f64 (*.f64 (+.f64 (*.f64 3 x) -12/29) (*.f64 y 4)) 4) |
(+.f64 (*.f64 -12/29 y) (*.f64 3 (*.f64 y x))) |
(*.f64 y (+.f64 -12/29 (*.f64 3 x))) |
(/.f64 (*.f64 (*.f64 y 8) (+.f64 (*.f64 3 x) -12/29)) 8) |
(+.f64 (*.f64 -12/29 y) (*.f64 3 (*.f64 y x))) |
(*.f64 y (+.f64 -12/29 (*.f64 3 x))) |
(/.f64 (*.f64 2 (*.f64 (*.f64 y 8) (+.f64 (*.f64 3 x) -12/29))) 16) |
(+.f64 (*.f64 -12/29 y) (*.f64 3 (*.f64 y x))) |
(*.f64 y (+.f64 -12/29 (*.f64 3 x))) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y 8) (+.f64 (*.f64 3 x) -12/29)))) 32) |
(+.f64 (*.f64 -12/29 y) (*.f64 3 (*.f64 y x))) |
(*.f64 y (+.f64 -12/29 (*.f64 3 x))) |
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y 8) (+.f64 (*.f64 3 x) -12/29)))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 y 8) (+.f64 (*.f64 3 x) -12/29))))) 64) |
(+.f64 (*.f64 -12/29 y) (*.f64 3 (*.f64 y x))) |
(*.f64 y (+.f64 -12/29 (*.f64 3 x))) |
(+.f64 x (+.f64 (+.f64 x x) -12/29)) |
(+.f64 x (+.f64 -12/29 (+.f64 x x))) |
(+.f64 -12/29 (+.f64 (+.f64 x x) x)) |
(+.f64 -12/29 (+.f64 x (+.f64 x x))) |
(+.f64 (*.f64 3 x) -12/29) |
(+.f64 -12/29 (*.f64 3 x)) |
(+.f64 (+.f64 (*.f64 3 x) -12/29) 0) |
(+.f64 -12/29 (*.f64 3 x)) |
(+.f64 0 (+.f64 (*.f64 3 x) -12/29)) |
(+.f64 -12/29 (*.f64 3 x)) |
(+.f64 (+.f64 x x) (+.f64 x -12/29)) |
(+.f64 x (+.f64 -12/29 (+.f64 x x))) |
(+.f64 -12/29 (+.f64 (+.f64 x x) x)) |
(+.f64 -12/29 (+.f64 x (+.f64 x x))) |
(+.f64 -12/29 (*.f64 3 x)) |
(+.f64 (*.f64 (+.f64 (*.f64 3 x) -12/29) 1/2) (*.f64 (+.f64 (*.f64 3 x) -12/29) 1/2)) |
(+.f64 -12/29 (*.f64 3 x)) |
(+.f64 (*.f64 x 3/2) (-.f64 (*.f64 x 3/2) 12/29)) |
(+.f64 (+.f64 x -12/29) (+.f64 x x)) |
(+.f64 x (+.f64 -12/29 (+.f64 x x))) |
(+.f64 -12/29 (+.f64 (+.f64 x x) x)) |
(+.f64 -12/29 (+.f64 x (+.f64 x x))) |
(+.f64 (+.f64 (+.f64 x x) -12/29) x) |
(+.f64 x (+.f64 -12/29 (+.f64 x x))) |
(+.f64 -12/29 (+.f64 (+.f64 x x) x)) |
(+.f64 -12/29 (+.f64 x (+.f64 x x))) |
(*.f64 (+.f64 (*.f64 3 x) -12/29) 1) |
(+.f64 -12/29 (*.f64 3 x)) |
(*.f64 1 (+.f64 (*.f64 3 x) -12/29)) |
(+.f64 -12/29 (*.f64 3 x)) |
(*.f64 2 (*.f64 (+.f64 (*.f64 3 x) -12/29) 1/2)) |
(+.f64 -12/29 (*.f64 3 x)) |
(*.f64 (+.f64 -12/29 (+.f64 (*.f64 x 6) -12/29)) 1/2) |
(+.f64 -12/29 (*.f64 3 x)) |
(*.f64 4 (/.f64 (+.f64 (*.f64 3 x) -12/29) 4)) |
(+.f64 -12/29 (*.f64 3 x)) |
(*.f64 (*.f64 (+.f64 (*.f64 3 x) -12/29) 4) 1/4) |
(+.f64 -12/29 (*.f64 3 x)) |
(*.f64 1/2 (+.f64 -12/29 (+.f64 (*.f64 x 6) -12/29))) |
(+.f64 -12/29 (*.f64 3 x)) |
(*.f64 (*.f64 (+.f64 (*.f64 3 x) -12/29) 1/2) 2) |
(+.f64 -12/29 (*.f64 3 x)) |
(*.f64 1/4 (*.f64 (+.f64 (*.f64 3 x) -12/29) 4)) |
(+.f64 -12/29 (*.f64 3 x)) |
(*.f64 (/.f64 (+.f64 (*.f64 3 x) -12/29) 4) 4) |
(+.f64 -12/29 (*.f64 3 x)) |
(/.f64 (+.f64 (*.f64 3 x) -12/29) 1) |
(+.f64 -12/29 (*.f64 3 x)) |
(/.f64 (+.f64 -12/29 (+.f64 (*.f64 x 6) -12/29)) 2) |
(+.f64 -12/29 (*.f64 3 x)) |
(/.f64 (*.f64 (+.f64 (*.f64 3 x) -12/29) 4) 4) |
(+.f64 -12/29 (*.f64 3 x)) |
(/.f64 (*.f64 (+.f64 (*.f64 3 x) -12/29) 8) 8) |
(+.f64 -12/29 (*.f64 3 x)) |
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 3 x) -12/29) 8)) 16) |
(+.f64 -12/29 (*.f64 3 x)) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 3 x) -12/29) 8))) 32) |
(+.f64 -12/29 (*.f64 3 x)) |
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 3 x) -12/29) 8))) (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 3 x) -12/29) 8)))) 64) |
(+.f64 -12/29 (*.f64 3 x)) |
Compiled 743 to 576 computations (22.5% saved)
8 alts after pruning (1 fresh and 7 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 76 | 1 | 77 |
| Fresh | 0 | 0 | 0 |
| Picked | 0 | 1 | 1 |
| Done | 0 | 6 | 6 |
| Total | 76 | 8 | 84 |
| Status | Error | Program |
|---|---|---|
| ✓ | 0.2b | (+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y)) |
| ✓ | 0.2b | (*.f64 (-.f64 (*.f64 3 x) 12/29) y) |
| ✓ | 0.3b | (*.f64 (-.f64 x 4/29) (*.f64 3 y)) |
| ✓ | 36.8b | (*.f64 (*.f64 3 x) y) |
| ▶ | 36.8b | (*.f64 x (*.f64 y 3)) |
| ✓ | 36.8b | (*.f64 3 (*.f64 y x)) |
| ✓ | 26.7b | (*.f64 3 (*.f64 y -4/29)) |
| ✓ | 26.6b | (*.f64 -12/29 y) |
Compiled 62 to 47 computations (24.2% saved)
Found 1 expressions with local error:
| New | Error | Program |
|---|---|---|
| ✓ | 0.2b | (*.f64 x (*.f64 y 3)) |
Compiled 13 to 8 computations (38.5% saved)
6 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 0.0ms | x | @ | 0 | (*.f64 x (*.f64 y 3)) |
| 0.0ms | y | @ | -inf | (*.f64 x (*.f64 y 3)) |
| 0.0ms | y | @ | inf | (*.f64 x (*.f64 y 3)) |
| 0.0ms | x | @ | inf | (*.f64 x (*.f64 y 3)) |
| 0.0ms | x | @ | -inf | (*.f64 x (*.f64 y 3)) |
| 1× | batch-egg-rewrite |
| 1862× | bool.json-1 |
| 1862× | bool.json-2 |
| 1092× | rational.json-1 |
| 1092× | rational.json-2 |
| 1092× | rational.json-4 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 7 | 13 |
| 1 | 72 | 13 |
| 2 | 211 | 13 |
| 3 | 459 | 13 |
| 4 | 919 | 13 |
| 5 | 2021 | 13 |
| 6 | 4269 | 13 |
| 7 | 7284 | 13 |
| 1× | node limit |
| Inputs |
|---|
(*.f64 x (*.f64 y 3)) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (*.f64 y 3)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 x (*.f64 y 3)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x y) (*.f64 x (+.f64 y y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (+.f64 y y)) (*.f64 x y))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 y (*.f64 x 3/2)) (*.f64 y (*.f64 x 3/2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 x (*.f64 y 3)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (*.f64 y 3)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (*.f64 x 6)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 x y) 12) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 24 (*.f64 x y)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 24 (*.f64 x y))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 24 (*.f64 x y)))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 24 (*.f64 x y)))) (*.f64 2 (*.f64 2 (*.f64 24 (*.f64 x y))))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 x (*.f64 y 3))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 x (*.f64 y 3)) (*.f64 x (*.f64 y 3)))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 x (*.f64 y 3)) (*.f64 x (*.f64 y 3))))))) |
| 1× | egg-herbie |
| 4964× | rational.json-simplify-35 |
| 3520× | rational.json-simplify-49 |
| 1750× | rational.json-simplify-2 |
| 860× | rational.json-simplify-1 |
| 622× | rational.json-simplify-53 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 46 | 481 |
| 1 | 104 | 481 |
| 2 | 210 | 481 |
| 3 | 507 | 481 |
| 4 | 1382 | 481 |
| 5 | 2399 | 481 |
| 6 | 3056 | 481 |
| 7 | 3425 | 481 |
| 8 | 3637 | 481 |
| 9 | 3845 | 481 |
| 10 | 4014 | 481 |
| 11 | 4171 | 481 |
| 12 | 4174 | 481 |
| 13 | 4328 | 481 |
| 14 | 4351 | 481 |
| 15 | 4412 | 481 |
| 16 | 4455 | 481 |
| 17 | 4634 | 481 |
| 18 | 4807 | 481 |
| 19 | 4969 | 481 |
| 20 | 5120 | 481 |
| 21 | 5269 | 481 |
| 22 | 5418 | 481 |
| 23 | 5567 | 481 |
| 24 | 5716 | 481 |
| 25 | 5865 | 481 |
| 26 | 5865 | 481 |
| 27 | 6014 | 481 |
| 28 | 6163 | 481 |
| 29 | 6312 | 481 |
| 1× | node limit |
| Inputs |
|---|
(*.f64 3 (*.f64 y x)) |
(*.f64 3 (*.f64 y x)) |
(*.f64 3 (*.f64 y x)) |
(*.f64 3 (*.f64 y x)) |
(*.f64 3 (*.f64 y x)) |
(*.f64 3 (*.f64 y x)) |
(*.f64 3 (*.f64 y x)) |
(*.f64 3 (*.f64 y x)) |
(*.f64 3 (*.f64 y x)) |
(*.f64 3 (*.f64 y x)) |
(*.f64 3 (*.f64 y x)) |
(*.f64 3 (*.f64 y x)) |
(*.f64 3 (*.f64 y x)) |
(*.f64 3 (*.f64 y x)) |
(*.f64 3 (*.f64 y x)) |
(*.f64 3 (*.f64 y x)) |
(*.f64 3 (*.f64 y x)) |
(*.f64 3 (*.f64 y x)) |
(*.f64 3 (*.f64 y x)) |
(*.f64 3 (*.f64 y x)) |
(*.f64 3 (*.f64 y x)) |
(*.f64 3 (*.f64 y x)) |
(*.f64 3 (*.f64 y x)) |
(*.f64 3 (*.f64 y x)) |
(+.f64 (*.f64 x (*.f64 y 3)) 0) |
(+.f64 0 (*.f64 x (*.f64 y 3))) |
(+.f64 (*.f64 x y) (*.f64 x (+.f64 y y))) |
(+.f64 (*.f64 x (+.f64 y y)) (*.f64 x y)) |
(+.f64 (*.f64 y (*.f64 x 3/2)) (*.f64 y (*.f64 x 3/2))) |
(-.f64 (*.f64 x (*.f64 y 3)) 0) |
(/.f64 (*.f64 x (*.f64 y 3)) 1) |
(/.f64 (*.f64 y (*.f64 x 6)) 2) |
(/.f64 (*.f64 (*.f64 x y) 12) 4) |
(/.f64 (*.f64 24 (*.f64 x y)) 8) |
(/.f64 (*.f64 2 (*.f64 24 (*.f64 x y))) 16) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 24 (*.f64 x y)))) 32) |
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 24 (*.f64 x y)))) (*.f64 2 (*.f64 2 (*.f64 24 (*.f64 x y))))) 64) |
| Outputs |
|---|
(*.f64 3 (*.f64 y x)) |
(*.f64 y (*.f64 3 x)) |
(*.f64 3 (*.f64 y x)) |
(*.f64 y (*.f64 3 x)) |
(*.f64 3 (*.f64 y x)) |
(*.f64 y (*.f64 3 x)) |
(*.f64 3 (*.f64 y x)) |
(*.f64 y (*.f64 3 x)) |
(*.f64 3 (*.f64 y x)) |
(*.f64 y (*.f64 3 x)) |
(*.f64 3 (*.f64 y x)) |
(*.f64 y (*.f64 3 x)) |
(*.f64 3 (*.f64 y x)) |
(*.f64 y (*.f64 3 x)) |
(*.f64 3 (*.f64 y x)) |
(*.f64 y (*.f64 3 x)) |
(*.f64 3 (*.f64 y x)) |
(*.f64 y (*.f64 3 x)) |
(*.f64 3 (*.f64 y x)) |
(*.f64 y (*.f64 3 x)) |
(*.f64 3 (*.f64 y x)) |
(*.f64 y (*.f64 3 x)) |
(*.f64 3 (*.f64 y x)) |
(*.f64 y (*.f64 3 x)) |
(*.f64 3 (*.f64 y x)) |
(*.f64 y (*.f64 3 x)) |
(*.f64 3 (*.f64 y x)) |
(*.f64 y (*.f64 3 x)) |
(*.f64 3 (*.f64 y x)) |
(*.f64 y (*.f64 3 x)) |
(*.f64 3 (*.f64 y x)) |
(*.f64 y (*.f64 3 x)) |
(*.f64 3 (*.f64 y x)) |
(*.f64 y (*.f64 3 x)) |
(*.f64 3 (*.f64 y x)) |
(*.f64 y (*.f64 3 x)) |
(*.f64 3 (*.f64 y x)) |
(*.f64 y (*.f64 3 x)) |
(*.f64 3 (*.f64 y x)) |
(*.f64 y (*.f64 3 x)) |
(*.f64 3 (*.f64 y x)) |
(*.f64 y (*.f64 3 x)) |
(*.f64 3 (*.f64 y x)) |
(*.f64 y (*.f64 3 x)) |
(*.f64 3 (*.f64 y x)) |
(*.f64 y (*.f64 3 x)) |
(*.f64 3 (*.f64 y x)) |
(*.f64 y (*.f64 3 x)) |
(+.f64 (*.f64 x (*.f64 y 3)) 0) |
(*.f64 3 (*.f64 y x)) |
(*.f64 y (*.f64 3 x)) |
(+.f64 0 (*.f64 x (*.f64 y 3))) |
(*.f64 3 (*.f64 y x)) |
(*.f64 y (*.f64 3 x)) |
(+.f64 (*.f64 x y) (*.f64 x (+.f64 y y))) |
(*.f64 3 (*.f64 y x)) |
(*.f64 y (*.f64 3 x)) |
(+.f64 (*.f64 x (+.f64 y y)) (*.f64 x y)) |
(*.f64 3 (*.f64 y x)) |
(*.f64 y (*.f64 3 x)) |
(+.f64 (*.f64 y (*.f64 x 3/2)) (*.f64 y (*.f64 x 3/2))) |
(*.f64 3 (*.f64 y x)) |
(*.f64 y (*.f64 3 x)) |
(-.f64 (*.f64 x (*.f64 y 3)) 0) |
(*.f64 3 (*.f64 y x)) |
(*.f64 y (*.f64 3 x)) |
(/.f64 (*.f64 x (*.f64 y 3)) 1) |
(*.f64 3 (*.f64 y x)) |
(*.f64 y (*.f64 3 x)) |
(/.f64 (*.f64 y (*.f64 x 6)) 2) |
(*.f64 3 (*.f64 y x)) |
(*.f64 y (*.f64 3 x)) |
(/.f64 (*.f64 (*.f64 x y) 12) 4) |
(*.f64 3 (*.f64 y x)) |
(*.f64 y (*.f64 3 x)) |
(/.f64 (*.f64 24 (*.f64 x y)) 8) |
(*.f64 3 (*.f64 y x)) |
(*.f64 y (*.f64 3 x)) |
(/.f64 (*.f64 2 (*.f64 24 (*.f64 x y))) 16) |
(*.f64 3 (*.f64 y x)) |
(*.f64 y (*.f64 3 x)) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 24 (*.f64 x y)))) 32) |
(*.f64 3 (*.f64 y x)) |
(*.f64 y (*.f64 3 x)) |
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 24 (*.f64 x y)))) (*.f64 2 (*.f64 2 (*.f64 24 (*.f64 x y))))) 64) |
(*.f64 3 (*.f64 y x)) |
(*.f64 y (*.f64 3 x)) |
Compiled 131 to 82 computations (37.4% saved)
8 alts after pruning (0 fresh and 8 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 15 | 0 | 15 |
| Fresh | 0 | 0 | 0 |
| Picked | 0 | 1 | 1 |
| Done | 0 | 7 | 7 |
| Total | 15 | 8 | 23 |
| Status | Error | Program |
|---|---|---|
| ✓ | 0.2b | (+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y)) |
| ✓ | 0.2b | (*.f64 (-.f64 (*.f64 3 x) 12/29) y) |
| ✓ | 0.3b | (*.f64 (-.f64 x 4/29) (*.f64 3 y)) |
| ✓ | 36.8b | (*.f64 (*.f64 3 x) y) |
| ✓ | 36.8b | (*.f64 x (*.f64 y 3)) |
| ✓ | 36.8b | (*.f64 3 (*.f64 y x)) |
| ✓ | 26.7b | (*.f64 3 (*.f64 y -4/29)) |
| ✓ | 26.6b | (*.f64 -12/29 y) |
Compiled 62 to 47 computations (24.2% saved)
| Inputs |
|---|
(*.f64 -12/29 y) |
(*.f64 3 (*.f64 y -4/29)) |
(*.f64 3 (*.f64 y x)) |
(*.f64 x (*.f64 y 3)) |
(*.f64 (*.f64 3 x) y) |
(*.f64 3 (*.f64 y (-.f64 x 4/29))) |
(*.f64 (*.f64 (-.f64 x 4/29) 3) y) |
(*.f64 (-.f64 x 4/29) (*.f64 3 y)) |
(*.f64 (-.f64 (*.f64 3 x) 12/29) y) |
(*.f64 (*.f64 (-.f64 x (/.f64 16 116)) 3) y) |
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y)) |
| Outputs |
|---|
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y)) |
5 calls:
| 58.0ms | (-.f64 x (/.f64 16 116)) |
| 7.0ms | (*.f64 (*.f64 (-.f64 x (/.f64 16 116)) 3) y) |
| 7.0ms | x |
| 6.0ms | y |
| 4.0ms | (*.f64 (-.f64 x (/.f64 16 116)) 3) |
| Error | Segments | Branch |
|---|---|---|
| 0.2b | 1 | x |
| 0.2b | 1 | y |
| 0.2b | 1 | (*.f64 (*.f64 (-.f64 x (/.f64 16 116)) 3) y) |
| 0.2b | 1 | (*.f64 (-.f64 x (/.f64 16 116)) 3) |
| 0.2b | 1 | (-.f64 x (/.f64 16 116)) |
Compiled 104 to 76 computations (26.9% saved)
| Inputs |
|---|
(*.f64 -12/29 y) |
(*.f64 3 (*.f64 y -4/29)) |
(*.f64 3 (*.f64 y x)) |
(*.f64 x (*.f64 y 3)) |
(*.f64 (*.f64 3 x) y) |
(*.f64 3 (*.f64 y (-.f64 x 4/29))) |
(*.f64 (*.f64 (-.f64 x 4/29) 3) y) |
(*.f64 (-.f64 x 4/29) (*.f64 3 y)) |
(*.f64 (-.f64 (*.f64 3 x) 12/29) y) |
(*.f64 (*.f64 (-.f64 x (/.f64 16 116)) 3) y) |
| Outputs |
|---|
(*.f64 (-.f64 (*.f64 3 x) 12/29) y) |
5 calls:
| 159.0ms | (*.f64 (-.f64 x (/.f64 16 116)) 3) |
| 6.0ms | y |
| 6.0ms | (*.f64 (*.f64 (-.f64 x (/.f64 16 116)) 3) y) |
| 6.0ms | x |
| 4.0ms | (-.f64 x (/.f64 16 116)) |
| Error | Segments | Branch |
|---|---|---|
| 0.2b | 1 | x |
| 0.2b | 1 | y |
| 0.2b | 1 | (*.f64 (*.f64 (-.f64 x (/.f64 16 116)) 3) y) |
| 0.2b | 1 | (*.f64 (-.f64 x (/.f64 16 116)) 3) |
| 0.2b | 1 | (-.f64 x (/.f64 16 116)) |
Compiled 95 to 71 computations (25.3% saved)
| Inputs |
|---|
(*.f64 -12/29 y) |
(*.f64 3 (*.f64 y -4/29)) |
(*.f64 3 (*.f64 y x)) |
(*.f64 x (*.f64 y 3)) |
(*.f64 (*.f64 3 x) y) |
(*.f64 3 (*.f64 y (-.f64 x 4/29))) |
(*.f64 (*.f64 (-.f64 x 4/29) 3) y) |
(*.f64 (-.f64 x 4/29) (*.f64 3 y)) |
| Outputs |
|---|
(*.f64 (*.f64 (-.f64 x 4/29) 3) y) |
2 calls:
| 7.0ms | y |
| 5.0ms | x |
| Error | Segments | Branch |
|---|---|---|
| 0.2b | 1 | x |
| 0.2b | 1 | y |
Compiled 52 to 36 computations (30.8% saved)
| Inputs |
|---|
(*.f64 -12/29 y) |
(*.f64 3 (*.f64 y -4/29)) |
(*.f64 3 (*.f64 y x)) |
(*.f64 x (*.f64 y 3)) |
(*.f64 (*.f64 3 x) y) |
(*.f64 3 (*.f64 y (-.f64 x 4/29))) |
| Outputs |
|---|
(*.f64 3 (*.f64 y (-.f64 x 4/29))) |
2 calls:
| 6.0ms | x |
| 4.0ms | y |
| Error | Segments | Branch |
|---|---|---|
| 0.3b | 1 | x |
| 0.3b | 1 | y |
Compiled 38 to 26 computations (31.6% saved)
| Inputs |
|---|
(*.f64 -12/29 y) |
(*.f64 3 (*.f64 y -4/29)) |
(*.f64 3 (*.f64 y x)) |
(*.f64 x (*.f64 y 3)) |
(*.f64 (*.f64 3 x) y) |
| Outputs |
|---|
(*.f64 x (*.f64 y 3)) |
(*.f64 -12/29 y) |
(*.f64 x (*.f64 y 3)) |
2 calls:
| 32.0ms | y |
| 12.0ms | x |
| Error | Segments | Branch |
|---|---|---|
| 1.9b | 3 | x |
| 20.2b | 7 | y |
Compiled 31 to 21 computations (32.3% saved)
| 2× | binary-search |
| Time | Left | Right |
|---|---|---|
| 21.0ms | 0.0016437129257599414 | 6.665369094012651e+20 |
| 17.0ms | -63945.90558391673 | -0.007154197280916445 |
| 34.0ms | 320× | body | 256 | valid |
Compiled 296 to 233 computations (21.3% saved)
| Inputs |
|---|
(*.f64 -12/29 y) |
(*.f64 3 (*.f64 y -4/29)) |
(*.f64 3 (*.f64 y x)) |
| Outputs |
|---|
(*.f64 3 (*.f64 y x)) |
(*.f64 -12/29 y) |
(*.f64 3 (*.f64 y x)) |
2 calls:
| 78.0ms | x |
| 25.0ms | y |
| Error | Segments | Branch |
|---|---|---|
| 1.9b | 3 | x |
| 20.2b | 7 | y |
Compiled 21 to 15 computations (28.6% saved)
| 2× | binary-search |
| Time | Left | Right |
|---|---|---|
| 107.0ms | 0.0016437129257599414 | 6.665369094012651e+20 |
| 18.0ms | -63945.90558391673 | -0.007154197280916445 |
| 121.0ms | 320× | body | 256 | valid |
Compiled 296 to 233 computations (21.3% saved)
Total -0.2b remaining (-0.6%)
Threshold costs -0.2b (-0.6%)
| Inputs |
|---|
(*.f64 -12/29 y) |
(*.f64 3 (*.f64 y -4/29)) |
| Outputs |
|---|
(*.f64 -12/29 y) |
2 calls:
| 5.0ms | x |
| 3.0ms | y |
| Error | Segments | Branch |
|---|---|---|
| 26.6b | 1 | x |
| 26.6b | 1 | y |
Compiled 16 to 12 computations (25% saved)
| 1× | egg-herbie |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 33 | 191 |
| 1× | done |
| 1× | saturated |
| Inputs |
|---|
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y)) |
(*.f64 (-.f64 (*.f64 3 x) 12/29) y) |
(*.f64 (*.f64 (-.f64 x 4/29) 3) y) |
(*.f64 3 (*.f64 y (-.f64 x 4/29))) |
(if (<=.f64 x -1261007895663739/9007199254740992) (*.f64 x (*.f64 y 3)) (if (<=.f64 x 607985949695017/4503599627370496) (*.f64 -12/29 y) (*.f64 x (*.f64 y 3)))) |
(if (<=.f64 x -1261007895663739/9007199254740992) (*.f64 3 (*.f64 y x)) (if (<=.f64 x 607985949695017/4503599627370496) (*.f64 -12/29 y) (*.f64 3 (*.f64 y x)))) |
(*.f64 -12/29 y) |
| Outputs |
|---|
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y)) |
(*.f64 (-.f64 (*.f64 3 x) 12/29) y) |
(*.f64 (*.f64 (-.f64 x 4/29) 3) y) |
(*.f64 3 (*.f64 y (-.f64 x 4/29))) |
(if (<=.f64 x -1261007895663739/9007199254740992) (*.f64 x (*.f64 y 3)) (if (<=.f64 x 607985949695017/4503599627370496) (*.f64 -12/29 y) (*.f64 x (*.f64 y 3)))) |
(if (<=.f64 x -1261007895663739/9007199254740992) (*.f64 3 (*.f64 y x)) (if (<=.f64 x 607985949695017/4503599627370496) (*.f64 -12/29 y) (*.f64 3 (*.f64 y x)))) |
(*.f64 -12/29 y) |
Compiled 89 to 64 computations (28.1% saved)
| 1× | egg-herbie |
| 12× | rational.json-simplify-2 |
| 4× | rational.json-simplify-43 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 12 | 19 |
| 1 | 14 | 19 |
| 2 | 18 | 19 |
| 3 | 22 | 19 |
| 1× | saturated |
Compiled 18 to 14 computations (22.2% saved)
Compiled 77 to 51 computations (33.8% saved)
Loading profile data...