Time bar (total: 7.3s)
| 1× | search |
| Probability | Valid | Unknown | Precondition | Infinite | Domain | Can't | Iter |
|---|---|---|---|---|---|---|---|
| 0% | 0% | 99.9% | 0.1% | 0% | 0% | 0% | 0 |
| 0% | 0% | 99.9% | 0.1% | 0% | 0% | 0% | 1 |
| 0% | 0% | 99.9% | 0.1% | 0% | 0% | 0% | 2 |
| 0% | 0% | 99.9% | 0.1% | 0% | 0% | 0% | 3 |
| 0% | 0% | 99.9% | 0.1% | 0% | 0% | 0% | 4 |
| 0% | 0% | 99.9% | 0.1% | 0% | 0% | 0% | 5 |
| 0% | 0% | 99.9% | 0.1% | 0% | 0% | 0% | 6 |
| 12.5% | 12.5% | 87.4% | 0.1% | 0% | 0% | 0% | 7 |
| 18.8% | 18.7% | 81.1% | 0.1% | 0% | 0% | 0% | 8 |
| 26% | 25% | 71% | 0.1% | 3.9% | 0% | 0% | 9 |
| 36.7% | 34.3% | 59.3% | 0.1% | 6.2% | 0% | 0% | 10 |
| 44.3% | 41.3% | 52% | 0.1% | 6.5% | 0% | 0% | 11 |
| 51.6% | 46.8% | 43.8% | 0.1% | 9.2% | 0% | 0% | 12 |
Compiled 13 to 9 computations (30.8% saved)
| 839.0ms | 7996× | body | 256 | valid |
| 107.0ms | 1237× | body | 256 | infinite |
| 35.0ms | 169× | body | 1024 | valid |
| 14.0ms | 91× | body | 512 | valid |
| 2× | egg-herbie |
| 14× | rational.json-simplify-1 |
| 12× | rational.json-simplify-2 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 21 | 100 |
| 1 | 35 | 100 |
| 0 | 3 | 3 |
| 1× | saturated |
| 1× | saturated |
| Inputs |
|---|
0 |
1 |
2 |
| Outputs |
|---|
0 |
1 |
2 |
| Inputs |
|---|
(+.f64 (*.f64 x (+.f64 y z)) (*.f64 z 5)) |
(+.f64 (*.f64 y (+.f64 x z)) (*.f64 z 5)) |
(+.f64 (*.f64 z (+.f64 y x)) (*.f64 x 5)) |
(+.f64 (*.f64 x (+.f64 z y)) (*.f64 y 5)) |
| Outputs |
|---|
(+.f64 (*.f64 x (+.f64 y z)) (*.f64 z 5)) |
(+.f64 (*.f64 z 5) (*.f64 x (+.f64 y z))) |
(+.f64 (*.f64 y (+.f64 x z)) (*.f64 z 5)) |
(+.f64 (*.f64 z 5) (*.f64 y (+.f64 x z))) |
(+.f64 (*.f64 z (+.f64 y x)) (*.f64 x 5)) |
(+.f64 (*.f64 z (+.f64 x y)) (*.f64 x 5)) |
(+.f64 (*.f64 x (+.f64 z y)) (*.f64 y 5)) |
(+.f64 (*.f64 x (+.f64 y z)) (*.f64 y 5)) |
Compiled 15 to 11 computations (26.7% saved)
| 1× | egg-herbie |
| 4× | rational.json-simplify-2 |
| 4× | rational.json-simplify-1 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 10 | 25 |
| 1 | 14 | 25 |
| 1× | saturated |
| Inputs |
|---|
(+.f64 (*.f64 x (+.f64 y z)) (*.f64 z 5)) |
| Outputs |
|---|
(+.f64 (*.f64 x (+.f64 y z)) (*.f64 z 5)) |
Compiled 12 to 8 computations (33.3% saved)
2 alts after pruning (2 fresh and 0 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 0 | 1 | 1 |
| Fresh | 0 | 1 | 1 |
| Picked | 0 | 0 | 0 |
| Done | 0 | 0 | 0 |
| Total | 0 | 2 | 2 |
| Status | Error | Program |
|---|---|---|
| ▶ | 0.1b | (+.f64 (*.f64 x (+.f64 y z)) (*.f64 z 5)) |
Compiled 12 to 8 computations (33.3% saved)
Found 2 expressions with local error:
| New | Error | Program |
|---|---|---|
| ✓ | 0.0b | (+.f64 (*.f64 x (+.f64 y z)) (*.f64 z 5)) |
| ✓ | 0.0b | (*.f64 x (+.f64 y z)) |
Compiled 27 to 11 computations (59.3% saved)
18 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 1.0ms | x | @ | 0 | (*.f64 x (+.f64 y z)) |
| 0.0ms | y | @ | -inf | (*.f64 x (+.f64 y z)) |
| 0.0ms | x | @ | -inf | (*.f64 x (+.f64 y z)) |
| 0.0ms | x | @ | inf | (*.f64 x (+.f64 y z)) |
| 0.0ms | x | @ | inf | (+.f64 (*.f64 x (+.f64 y z)) (*.f64 z 5)) |
| 1× | batch-egg-rewrite |
| 2882× | rational.json-simplify-35 |
| 1422× | rational.json-simplify-1 |
| 1282× | rational.json-1 |
| 1282× | rational.json-2 |
| 1282× | rational.json-3 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 10 | 38 |
| 1 | 66 | 38 |
| 2 | 131 | 38 |
| 3 | 271 | 38 |
| 4 | 524 | 38 |
| 5 | 1213 | 38 |
| 6 | 2656 | 38 |
| 7 | 3936 | 38 |
| 8 | 5254 | 38 |
| 9 | 6482 | 38 |
| 10 | 7091 | 38 |
| 11 | 7091 | 38 |
| 12 | 7091 | 38 |
| 1× | node limit |
| Inputs |
|---|
(*.f64 x (+.f64 y z)) |
(+.f64 (*.f64 x (+.f64 y z)) (*.f64 z 5)) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (+.f64 y z)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 x (+.f64 y z)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (*.f64 (+.f64 y z) 1/2)) (*.f64 x (*.f64 (+.f64 y z) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 x (+.f64 y z)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (+.f64 y z)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 y z) (+.f64 x x)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (*.f64 (+.f64 y z) 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 y z) (*.f64 x 8)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 y z) (*.f64 x 8))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y z) (*.f64 x 8)))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y z) (*.f64 x 8))))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y z) (*.f64 x 8)))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y z) (*.f64 x 8))))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y z) (*.f64 x 8))))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y z) (*.f64 x 8)))))))) 512)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x (+.f64 y z)) 1))))) |
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (*.f64 x (+.f64 y z)) (*.f64 z 5)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 x (+.f64 y z)) (*.f64 z 5)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 (*.f64 x (+.f64 y z)) (*.f64 z 5)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (+.f64 (*.f64 z 5/2) (*.f64 x (*.f64 (+.f64 y z) 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 x (+.f64 y z)) (*.f64 z 5)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (*.f64 (+.f64 (*.f64 x (+.f64 y z)) (*.f64 z 5)) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 x (+.f64 y z)) (*.f64 z 5)) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 x (+.f64 y z)) (*.f64 z 5)) 8) 1/8)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (+.f64 (*.f64 x (+.f64 y z)) (*.f64 z 5)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (*.f64 z 10) (*.f64 (+.f64 y z) (+.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 z 5/2) (*.f64 x (*.f64 (+.f64 y z) 1/2))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (+.f64 (*.f64 x (+.f64 y z)) (*.f64 z 5)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 x (+.f64 y z)) (*.f64 z 5)) 1/4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 x (+.f64 y z)) (*.f64 z 5)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 x (+.f64 y z)) (*.f64 z 5)) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 x (+.f64 y z)) (*.f64 z 5)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 x (+.f64 y z)) (*.f64 z 5)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 x (+.f64 y z)) (*.f64 z 5)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x (+.f64 y z)) (*.f64 z 5)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x (+.f64 y z)) (*.f64 z 5)) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x (+.f64 y z)) (*.f64 z 5)) 8))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x (+.f64 y z)) (*.f64 z 5)) 8)))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x (+.f64 y z)) (*.f64 z 5)) 8)))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x (+.f64 y z)) (*.f64 z 5)) 8))))))) 512)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 (*.f64 x (+.f64 y z)) (*.f64 z 5)) 1))))) |
| 1× | egg-herbie |
| 5700× | rational.json-simplify-49 |
| 3948× | rational.json-simplify-35 |
| 2090× | rational.json-simplify-2 |
| 994× | rational.json-simplify-1 |
| 838× | rational.json-simplify-51 |
Useful iterations: 4 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 111 | 2067 |
| 1 | 255 | 2051 |
| 2 | 578 | 2051 |
| 3 | 1657 | 2035 |
| 4 | 3358 | 2019 |
| 5 | 3972 | 2019 |
| 6 | 4333 | 2019 |
| 7 | 4608 | 2019 |
| 8 | 4810 | 2019 |
| 9 | 4955 | 2019 |
| 10 | 5506 | 2019 |
| 11 | 5710 | 2019 |
| 12 | 5930 | 2019 |
| 13 | 5985 | 2019 |
| 14 | 6095 | 2019 |
| 15 | 6177 | 2019 |
| 16 | 6287 | 2019 |
| 17 | 6287 | 2019 |
| 18 | 6409 | 2019 |
| 19 | 6531 | 2019 |
| 20 | 6653 | 2019 |
| 21 | 6775 | 2019 |
| 22 | 6897 | 2019 |
| 23 | 7019 | 2019 |
| 24 | 7141 | 2019 |
| 25 | 7263 | 2019 |
| 26 | 7385 | 2019 |
| 27 | 7509 | 2019 |
| 28 | 7509 | 2019 |
| 1× | node limit |
| Inputs |
|---|
(*.f64 (+.f64 y z) x) |
(*.f64 (+.f64 y z) x) |
(*.f64 (+.f64 y z) x) |
(*.f64 (+.f64 y z) x) |
(*.f64 (+.f64 y z) x) |
(*.f64 (+.f64 y z) x) |
(*.f64 (+.f64 y z) x) |
(*.f64 (+.f64 y z) x) |
(*.f64 (+.f64 y z) x) |
(*.f64 (+.f64 y z) x) |
(*.f64 (+.f64 y z) x) |
(*.f64 (+.f64 y z) x) |
(*.f64 z x) |
(+.f64 (*.f64 z x) (*.f64 y x)) |
(+.f64 (*.f64 z x) (*.f64 y x)) |
(+.f64 (*.f64 z x) (*.f64 y x)) |
(*.f64 y x) |
(+.f64 (*.f64 z x) (*.f64 y x)) |
(+.f64 (*.f64 z x) (*.f64 y x)) |
(+.f64 (*.f64 z x) (*.f64 y x)) |
(*.f64 y x) |
(+.f64 (*.f64 z x) (*.f64 y x)) |
(+.f64 (*.f64 z x) (*.f64 y x)) |
(+.f64 (*.f64 z x) (*.f64 y x)) |
(*.f64 y x) |
(+.f64 (*.f64 z x) (*.f64 y x)) |
(+.f64 (*.f64 z x) (*.f64 y x)) |
(+.f64 (*.f64 z x) (*.f64 y x)) |
(*.f64 z x) |
(+.f64 (*.f64 z x) (*.f64 y x)) |
(+.f64 (*.f64 z x) (*.f64 y x)) |
(+.f64 (*.f64 z x) (*.f64 y x)) |
(*.f64 z x) |
(+.f64 (*.f64 z x) (*.f64 y x)) |
(+.f64 (*.f64 z x) (*.f64 y x)) |
(+.f64 (*.f64 z x) (*.f64 y x)) |
(*.f64 5 z) |
(+.f64 (*.f64 (+.f64 y z) x) (*.f64 5 z)) |
(+.f64 (*.f64 (+.f64 y z) x) (*.f64 5 z)) |
(+.f64 (*.f64 (+.f64 y z) x) (*.f64 5 z)) |
(*.f64 (+.f64 y z) x) |
(+.f64 (*.f64 (+.f64 y z) x) (*.f64 5 z)) |
(+.f64 (*.f64 (+.f64 y z) x) (*.f64 5 z)) |
(+.f64 (*.f64 (+.f64 y z) x) (*.f64 5 z)) |
(*.f64 (+.f64 y z) x) |
(+.f64 (*.f64 (+.f64 y z) x) (*.f64 5 z)) |
(+.f64 (*.f64 (+.f64 y z) x) (*.f64 5 z)) |
(+.f64 (*.f64 (+.f64 y z) x) (*.f64 5 z)) |
(+.f64 (*.f64 z x) (*.f64 5 z)) |
(+.f64 (*.f64 z x) (+.f64 (*.f64 y x) (*.f64 5 z))) |
(+.f64 (*.f64 z x) (+.f64 (*.f64 y x) (*.f64 5 z))) |
(+.f64 (*.f64 z x) (+.f64 (*.f64 y x) (*.f64 5 z))) |
(*.f64 y x) |
(+.f64 (*.f64 z x) (+.f64 (*.f64 y x) (*.f64 5 z))) |
(+.f64 (*.f64 z x) (+.f64 (*.f64 y x) (*.f64 5 z))) |
(+.f64 (*.f64 z x) (+.f64 (*.f64 y x) (*.f64 5 z))) |
(*.f64 y x) |
(+.f64 (*.f64 z x) (+.f64 (*.f64 y x) (*.f64 5 z))) |
(+.f64 (*.f64 z x) (+.f64 (*.f64 y x) (*.f64 5 z))) |
(+.f64 (*.f64 z x) (+.f64 (*.f64 y x) (*.f64 5 z))) |
(*.f64 y x) |
(+.f64 (*.f64 y x) (*.f64 z (+.f64 5 x))) |
(+.f64 (*.f64 y x) (*.f64 z (+.f64 5 x))) |
(+.f64 (*.f64 y x) (*.f64 z (+.f64 5 x))) |
(*.f64 z (+.f64 5 x)) |
(+.f64 (*.f64 y x) (*.f64 z (+.f64 5 x))) |
(+.f64 (*.f64 y x) (*.f64 z (+.f64 5 x))) |
(+.f64 (*.f64 y x) (*.f64 z (+.f64 5 x))) |
(*.f64 -1 (*.f64 z (-.f64 (*.f64 -1 x) 5))) |
(+.f64 (*.f64 -1 (*.f64 z (-.f64 (*.f64 -1 x) 5))) (*.f64 y x)) |
(+.f64 (*.f64 -1 (*.f64 z (-.f64 (*.f64 -1 x) 5))) (*.f64 y x)) |
(+.f64 (*.f64 -1 (*.f64 z (-.f64 (*.f64 -1 x) 5))) (*.f64 y x)) |
(+.f64 (*.f64 x (+.f64 y z)) 0) |
(+.f64 0 (*.f64 x (+.f64 y z))) |
(+.f64 (*.f64 x (*.f64 (+.f64 y z) 1/2)) (*.f64 x (*.f64 (+.f64 y z) 1/2))) |
(-.f64 (*.f64 x (+.f64 y z)) 0) |
(/.f64 (*.f64 x (+.f64 y z)) 1) |
(/.f64 (*.f64 (+.f64 y z) (+.f64 x x)) 2) |
(/.f64 (*.f64 x (*.f64 (+.f64 y z) 4)) 4) |
(/.f64 (*.f64 (+.f64 y z) (*.f64 x 8)) 8) |
(/.f64 (*.f64 2 (*.f64 (+.f64 y z) (*.f64 x 8))) 16) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y z) (*.f64 x 8)))) 32) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y z) (*.f64 x 8))))) 64) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y z) (*.f64 x 8)))))) 128) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y z) (*.f64 x 8))))))) 256) |
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y z) (*.f64 x 8))))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y z) (*.f64 x 8)))))))) 512) |
(pow.f64 (*.f64 x (+.f64 y z)) 1) |
(-.f64 (+.f64 (*.f64 x (+.f64 y z)) (*.f64 z 5)) 0) |
(*.f64 (+.f64 (*.f64 x (+.f64 y z)) (*.f64 z 5)) 1) |
(*.f64 1 (+.f64 (*.f64 x (+.f64 y z)) (*.f64 z 5))) |
(*.f64 2 (+.f64 (*.f64 z 5/2) (*.f64 x (*.f64 (+.f64 y z) 1/2)))) |
(*.f64 (*.f64 (+.f64 (*.f64 x (+.f64 y z)) (*.f64 z 5)) 2) 1/2) |
(*.f64 4 (*.f64 (+.f64 (*.f64 x (+.f64 y z)) (*.f64 z 5)) 1/4)) |
(*.f64 (*.f64 (+.f64 (*.f64 x (+.f64 y z)) (*.f64 z 5)) 4) 1/4) |
(*.f64 (*.f64 (+.f64 (*.f64 x (+.f64 y z)) (*.f64 z 5)) 8) 1/8) |
(*.f64 1/2 (*.f64 (+.f64 (*.f64 x (+.f64 y z)) (*.f64 z 5)) 2)) |
(*.f64 1/2 (+.f64 (*.f64 z 10) (*.f64 (+.f64 y z) (+.f64 x x)))) |
(*.f64 (+.f64 (*.f64 z 5/2) (*.f64 x (*.f64 (+.f64 y z) 1/2))) 2) |
(*.f64 1/4 (*.f64 (+.f64 (*.f64 x (+.f64 y z)) (*.f64 z 5)) 4)) |
(*.f64 (*.f64 (+.f64 (*.f64 x (+.f64 y z)) (*.f64 z 5)) 1/4) 4) |
(/.f64 (+.f64 (*.f64 x (+.f64 y z)) (*.f64 z 5)) 1) |
(/.f64 (*.f64 (+.f64 (*.f64 x (+.f64 y z)) (*.f64 z 5)) 2) 2) |
(/.f64 (*.f64 (+.f64 (*.f64 x (+.f64 y z)) (*.f64 z 5)) 4) 4) |
(/.f64 (*.f64 (+.f64 (*.f64 x (+.f64 y z)) (*.f64 z 5)) 8) 8) |
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 x (+.f64 y z)) (*.f64 z 5)) 8)) 16) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x (+.f64 y z)) (*.f64 z 5)) 8))) 32) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x (+.f64 y z)) (*.f64 z 5)) 8)))) 64) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x (+.f64 y z)) (*.f64 z 5)) 8))))) 128) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x (+.f64 y z)) (*.f64 z 5)) 8)))))) 256) |
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x (+.f64 y z)) (*.f64 z 5)) 8)))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x (+.f64 y z)) (*.f64 z 5)) 8))))))) 512) |
(pow.f64 (+.f64 (*.f64 x (+.f64 y z)) (*.f64 z 5)) 1) |
| Outputs |
|---|
(*.f64 (+.f64 y z) x) |
(*.f64 (+.f64 y z) x) |
(*.f64 (+.f64 y z) x) |
(*.f64 (+.f64 y z) x) |
(*.f64 (+.f64 y z) x) |
(*.f64 (+.f64 y z) x) |
(*.f64 (+.f64 y z) x) |
(*.f64 (+.f64 y z) x) |
(*.f64 (+.f64 y z) x) |
(*.f64 (+.f64 y z) x) |
(*.f64 (+.f64 y z) x) |
(*.f64 (+.f64 y z) x) |
(*.f64 z x) |
(+.f64 (*.f64 z x) (*.f64 y x)) |
(*.f64 (+.f64 y z) x) |
(+.f64 (*.f64 z x) (*.f64 y x)) |
(*.f64 (+.f64 y z) x) |
(+.f64 (*.f64 z x) (*.f64 y x)) |
(*.f64 (+.f64 y z) x) |
(*.f64 y x) |
(+.f64 (*.f64 z x) (*.f64 y x)) |
(*.f64 (+.f64 y z) x) |
(+.f64 (*.f64 z x) (*.f64 y x)) |
(*.f64 (+.f64 y z) x) |
(+.f64 (*.f64 z x) (*.f64 y x)) |
(*.f64 (+.f64 y z) x) |
(*.f64 y x) |
(+.f64 (*.f64 z x) (*.f64 y x)) |
(*.f64 (+.f64 y z) x) |
(+.f64 (*.f64 z x) (*.f64 y x)) |
(*.f64 (+.f64 y z) x) |
(+.f64 (*.f64 z x) (*.f64 y x)) |
(*.f64 (+.f64 y z) x) |
(*.f64 y x) |
(+.f64 (*.f64 z x) (*.f64 y x)) |
(*.f64 (+.f64 y z) x) |
(+.f64 (*.f64 z x) (*.f64 y x)) |
(*.f64 (+.f64 y z) x) |
(+.f64 (*.f64 z x) (*.f64 y x)) |
(*.f64 (+.f64 y z) x) |
(*.f64 z x) |
(+.f64 (*.f64 z x) (*.f64 y x)) |
(*.f64 (+.f64 y z) x) |
(+.f64 (*.f64 z x) (*.f64 y x)) |
(*.f64 (+.f64 y z) x) |
(+.f64 (*.f64 z x) (*.f64 y x)) |
(*.f64 (+.f64 y z) x) |
(*.f64 z x) |
(+.f64 (*.f64 z x) (*.f64 y x)) |
(*.f64 (+.f64 y z) x) |
(+.f64 (*.f64 z x) (*.f64 y x)) |
(*.f64 (+.f64 y z) x) |
(+.f64 (*.f64 z x) (*.f64 y x)) |
(*.f64 (+.f64 y z) x) |
(*.f64 5 z) |
(*.f64 z 5) |
(+.f64 (*.f64 (+.f64 y z) x) (*.f64 5 z)) |
(+.f64 (*.f64 z 5) (*.f64 (+.f64 y z) x)) |
(+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) |
(+.f64 (*.f64 (+.f64 y z) x) (*.f64 5 z)) |
(+.f64 (*.f64 z 5) (*.f64 (+.f64 y z) x)) |
(+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) |
(+.f64 (*.f64 (+.f64 y z) x) (*.f64 5 z)) |
(+.f64 (*.f64 z 5) (*.f64 (+.f64 y z) x)) |
(+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) |
(*.f64 (+.f64 y z) x) |
(+.f64 (*.f64 (+.f64 y z) x) (*.f64 5 z)) |
(+.f64 (*.f64 z 5) (*.f64 (+.f64 y z) x)) |
(+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) |
(+.f64 (*.f64 (+.f64 y z) x) (*.f64 5 z)) |
(+.f64 (*.f64 z 5) (*.f64 (+.f64 y z) x)) |
(+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) |
(+.f64 (*.f64 (+.f64 y z) x) (*.f64 5 z)) |
(+.f64 (*.f64 z 5) (*.f64 (+.f64 y z) x)) |
(+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) |
(*.f64 (+.f64 y z) x) |
(+.f64 (*.f64 (+.f64 y z) x) (*.f64 5 z)) |
(+.f64 (*.f64 z 5) (*.f64 (+.f64 y z) x)) |
(+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) |
(+.f64 (*.f64 (+.f64 y z) x) (*.f64 5 z)) |
(+.f64 (*.f64 z 5) (*.f64 (+.f64 y z) x)) |
(+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) |
(+.f64 (*.f64 (+.f64 y z) x) (*.f64 5 z)) |
(+.f64 (*.f64 z 5) (*.f64 (+.f64 y z) x)) |
(+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) |
(+.f64 (*.f64 z x) (*.f64 5 z)) |
(*.f64 z (+.f64 x 5)) |
(+.f64 (*.f64 z x) (+.f64 (*.f64 y x) (*.f64 5 z))) |
(+.f64 (*.f64 z 5) (*.f64 (+.f64 y z) x)) |
(+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) |
(+.f64 (*.f64 z x) (+.f64 (*.f64 y x) (*.f64 5 z))) |
(+.f64 (*.f64 z 5) (*.f64 (+.f64 y z) x)) |
(+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) |
(+.f64 (*.f64 z x) (+.f64 (*.f64 y x) (*.f64 5 z))) |
(+.f64 (*.f64 z 5) (*.f64 (+.f64 y z) x)) |
(+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) |
(*.f64 y x) |
(+.f64 (*.f64 z x) (+.f64 (*.f64 y x) (*.f64 5 z))) |
(+.f64 (*.f64 z 5) (*.f64 (+.f64 y z) x)) |
(+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) |
(+.f64 (*.f64 z x) (+.f64 (*.f64 y x) (*.f64 5 z))) |
(+.f64 (*.f64 z 5) (*.f64 (+.f64 y z) x)) |
(+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) |
(+.f64 (*.f64 z x) (+.f64 (*.f64 y x) (*.f64 5 z))) |
(+.f64 (*.f64 z 5) (*.f64 (+.f64 y z) x)) |
(+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) |
(*.f64 y x) |
(+.f64 (*.f64 z x) (+.f64 (*.f64 y x) (*.f64 5 z))) |
(+.f64 (*.f64 z 5) (*.f64 (+.f64 y z) x)) |
(+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) |
(+.f64 (*.f64 z x) (+.f64 (*.f64 y x) (*.f64 5 z))) |
(+.f64 (*.f64 z 5) (*.f64 (+.f64 y z) x)) |
(+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) |
(+.f64 (*.f64 z x) (+.f64 (*.f64 y x) (*.f64 5 z))) |
(+.f64 (*.f64 z 5) (*.f64 (+.f64 y z) x)) |
(+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) |
(*.f64 y x) |
(+.f64 (*.f64 y x) (*.f64 z (+.f64 5 x))) |
(+.f64 (*.f64 z 5) (*.f64 (+.f64 y z) x)) |
(+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) |
(+.f64 (*.f64 y x) (*.f64 z (+.f64 5 x))) |
(+.f64 (*.f64 z 5) (*.f64 (+.f64 y z) x)) |
(+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) |
(+.f64 (*.f64 y x) (*.f64 z (+.f64 5 x))) |
(+.f64 (*.f64 z 5) (*.f64 (+.f64 y z) x)) |
(+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) |
(*.f64 z (+.f64 5 x)) |
(*.f64 z (+.f64 x 5)) |
(+.f64 (*.f64 y x) (*.f64 z (+.f64 5 x))) |
(+.f64 (*.f64 z 5) (*.f64 (+.f64 y z) x)) |
(+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) |
(+.f64 (*.f64 y x) (*.f64 z (+.f64 5 x))) |
(+.f64 (*.f64 z 5) (*.f64 (+.f64 y z) x)) |
(+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) |
(+.f64 (*.f64 y x) (*.f64 z (+.f64 5 x))) |
(+.f64 (*.f64 z 5) (*.f64 (+.f64 y z) x)) |
(+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) |
(*.f64 -1 (*.f64 z (-.f64 (*.f64 -1 x) 5))) |
(*.f64 z (*.f64 (-.f64 (*.f64 x -1) 5) -1)) |
(*.f64 z (neg.f64 (-.f64 (neg.f64 x) 5))) |
(*.f64 z (neg.f64 (-.f64 -5 x))) |
(*.f64 z (-.f64 x -5)) |
(+.f64 (*.f64 -1 (*.f64 z (-.f64 (*.f64 -1 x) 5))) (*.f64 y x)) |
(+.f64 (*.f64 y x) (*.f64 z (*.f64 (-.f64 (*.f64 x -1) 5) -1))) |
(+.f64 (*.f64 y x) (*.f64 z (neg.f64 (-.f64 (neg.f64 x) 5)))) |
(+.f64 (*.f64 y x) (*.f64 z (neg.f64 (-.f64 -5 x)))) |
(+.f64 (*.f64 y x) (*.f64 z (-.f64 x -5))) |
(+.f64 (*.f64 -1 (*.f64 z (-.f64 (*.f64 -1 x) 5))) (*.f64 y x)) |
(+.f64 (*.f64 y x) (*.f64 z (*.f64 (-.f64 (*.f64 x -1) 5) -1))) |
(+.f64 (*.f64 y x) (*.f64 z (neg.f64 (-.f64 (neg.f64 x) 5)))) |
(+.f64 (*.f64 y x) (*.f64 z (neg.f64 (-.f64 -5 x)))) |
(+.f64 (*.f64 y x) (*.f64 z (-.f64 x -5))) |
(+.f64 (*.f64 -1 (*.f64 z (-.f64 (*.f64 -1 x) 5))) (*.f64 y x)) |
(+.f64 (*.f64 y x) (*.f64 z (*.f64 (-.f64 (*.f64 x -1) 5) -1))) |
(+.f64 (*.f64 y x) (*.f64 z (neg.f64 (-.f64 (neg.f64 x) 5)))) |
(+.f64 (*.f64 y x) (*.f64 z (neg.f64 (-.f64 -5 x)))) |
(+.f64 (*.f64 y x) (*.f64 z (-.f64 x -5))) |
(+.f64 (*.f64 x (+.f64 y z)) 0) |
(*.f64 (+.f64 y z) x) |
(+.f64 0 (*.f64 x (+.f64 y z))) |
(*.f64 (+.f64 y z) x) |
(+.f64 (*.f64 x (*.f64 (+.f64 y z) 1/2)) (*.f64 x (*.f64 (+.f64 y z) 1/2))) |
(*.f64 (+.f64 y z) x) |
(-.f64 (*.f64 x (+.f64 y z)) 0) |
(*.f64 (+.f64 y z) x) |
(/.f64 (*.f64 x (+.f64 y z)) 1) |
(*.f64 (+.f64 y z) x) |
(/.f64 (*.f64 (+.f64 y z) (+.f64 x x)) 2) |
(*.f64 (+.f64 y z) x) |
(/.f64 (*.f64 x (*.f64 (+.f64 y z) 4)) 4) |
(*.f64 (+.f64 y z) x) |
(/.f64 (*.f64 (+.f64 y z) (*.f64 x 8)) 8) |
(*.f64 (+.f64 y z) x) |
(/.f64 (*.f64 2 (*.f64 (+.f64 y z) (*.f64 x 8))) 16) |
(*.f64 (+.f64 y z) x) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y z) (*.f64 x 8)))) 32) |
(*.f64 (+.f64 y z) x) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y z) (*.f64 x 8))))) 64) |
(*.f64 (+.f64 y z) x) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y z) (*.f64 x 8)))))) 128) |
(*.f64 (+.f64 y z) x) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y z) (*.f64 x 8))))))) 256) |
(*.f64 (+.f64 y z) x) |
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y z) (*.f64 x 8))))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y z) (*.f64 x 8)))))))) 512) |
(*.f64 (+.f64 y z) x) |
(pow.f64 (*.f64 x (+.f64 y z)) 1) |
(*.f64 (+.f64 y z) x) |
(-.f64 (+.f64 (*.f64 x (+.f64 y z)) (*.f64 z 5)) 0) |
(+.f64 (*.f64 z 5) (*.f64 (+.f64 y z) x)) |
(+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) |
(*.f64 (+.f64 (*.f64 x (+.f64 y z)) (*.f64 z 5)) 1) |
(+.f64 (*.f64 z 5) (*.f64 (+.f64 y z) x)) |
(+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) |
(*.f64 1 (+.f64 (*.f64 x (+.f64 y z)) (*.f64 z 5))) |
(+.f64 (*.f64 z 5) (*.f64 (+.f64 y z) x)) |
(+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) |
(*.f64 2 (+.f64 (*.f64 z 5/2) (*.f64 x (*.f64 (+.f64 y z) 1/2)))) |
(*.f64 2 (+.f64 (*.f64 (+.f64 y z) (*.f64 1/2 x)) (*.f64 z 5/2))) |
(*.f64 2 (+.f64 (*.f64 (+.f64 y z) (*.f64 x 1/2)) (*.f64 z 5/2))) |
(*.f64 2 (+.f64 (*.f64 z 5/2) (*.f64 (+.f64 y z) (*.f64 x 1/2)))) |
(*.f64 (*.f64 (+.f64 (*.f64 x (+.f64 y z)) (*.f64 z 5)) 2) 1/2) |
(+.f64 (*.f64 z 5) (*.f64 (+.f64 y z) x)) |
(+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) |
(*.f64 4 (*.f64 (+.f64 (*.f64 x (+.f64 y z)) (*.f64 z 5)) 1/4)) |
(+.f64 (*.f64 z 5) (*.f64 (+.f64 y z) x)) |
(+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) |
(*.f64 (*.f64 (+.f64 (*.f64 x (+.f64 y z)) (*.f64 z 5)) 4) 1/4) |
(+.f64 (*.f64 z 5) (*.f64 (+.f64 y z) x)) |
(+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) |
(*.f64 (*.f64 (+.f64 (*.f64 x (+.f64 y z)) (*.f64 z 5)) 8) 1/8) |
(+.f64 (*.f64 z 5) (*.f64 (+.f64 y z) x)) |
(+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) |
(*.f64 1/2 (*.f64 (+.f64 (*.f64 x (+.f64 y z)) (*.f64 z 5)) 2)) |
(+.f64 (*.f64 z 5) (*.f64 (+.f64 y z) x)) |
(+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) |
(*.f64 1/2 (+.f64 (*.f64 z 10) (*.f64 (+.f64 y z) (+.f64 x x)))) |
(+.f64 (*.f64 z 5) (*.f64 (+.f64 y z) x)) |
(+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) |
(*.f64 (+.f64 (*.f64 z 5/2) (*.f64 x (*.f64 (+.f64 y z) 1/2))) 2) |
(*.f64 2 (+.f64 (*.f64 (+.f64 y z) (*.f64 1/2 x)) (*.f64 z 5/2))) |
(*.f64 2 (+.f64 (*.f64 (+.f64 y z) (*.f64 x 1/2)) (*.f64 z 5/2))) |
(*.f64 2 (+.f64 (*.f64 z 5/2) (*.f64 (+.f64 y z) (*.f64 x 1/2)))) |
(*.f64 1/4 (*.f64 (+.f64 (*.f64 x (+.f64 y z)) (*.f64 z 5)) 4)) |
(+.f64 (*.f64 z 5) (*.f64 (+.f64 y z) x)) |
(+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) |
(*.f64 (*.f64 (+.f64 (*.f64 x (+.f64 y z)) (*.f64 z 5)) 1/4) 4) |
(+.f64 (*.f64 z 5) (*.f64 (+.f64 y z) x)) |
(+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) |
(/.f64 (+.f64 (*.f64 x (+.f64 y z)) (*.f64 z 5)) 1) |
(+.f64 (*.f64 z 5) (*.f64 (+.f64 y z) x)) |
(+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) |
(/.f64 (*.f64 (+.f64 (*.f64 x (+.f64 y z)) (*.f64 z 5)) 2) 2) |
(+.f64 (*.f64 z 5) (*.f64 (+.f64 y z) x)) |
(+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) |
(/.f64 (*.f64 (+.f64 (*.f64 x (+.f64 y z)) (*.f64 z 5)) 4) 4) |
(+.f64 (*.f64 z 5) (*.f64 (+.f64 y z) x)) |
(+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) |
(/.f64 (*.f64 (+.f64 (*.f64 x (+.f64 y z)) (*.f64 z 5)) 8) 8) |
(+.f64 (*.f64 z 5) (*.f64 (+.f64 y z) x)) |
(+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) |
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 x (+.f64 y z)) (*.f64 z 5)) 8)) 16) |
(+.f64 (*.f64 z 5) (*.f64 (+.f64 y z) x)) |
(+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x (+.f64 y z)) (*.f64 z 5)) 8))) 32) |
(+.f64 (*.f64 z 5) (*.f64 (+.f64 y z) x)) |
(+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x (+.f64 y z)) (*.f64 z 5)) 8)))) 64) |
(+.f64 (*.f64 z 5) (*.f64 (+.f64 y z) x)) |
(+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x (+.f64 y z)) (*.f64 z 5)) 8))))) 128) |
(+.f64 (*.f64 z 5) (*.f64 (+.f64 y z) x)) |
(+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x (+.f64 y z)) (*.f64 z 5)) 8)))))) 256) |
(+.f64 (*.f64 z 5) (*.f64 (+.f64 y z) x)) |
(+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) |
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x (+.f64 y z)) (*.f64 z 5)) 8)))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x (+.f64 y z)) (*.f64 z 5)) 8))))))) 512) |
(+.f64 (*.f64 z 5) (*.f64 (+.f64 y z) x)) |
(+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) |
(pow.f64 (+.f64 (*.f64 x (+.f64 y z)) (*.f64 z 5)) 1) |
(+.f64 (*.f64 z 5) (*.f64 (+.f64 y z) x)) |
(+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) |
Compiled 851 to 506 computations (40.5% saved)
5 alts after pruning (4 fresh and 1 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 62 | 4 | 66 |
| Fresh | 0 | 0 | 0 |
| Picked | 0 | 1 | 1 |
| Done | 0 | 0 | 0 |
| Total | 62 | 5 | 67 |
| Status | Error | Program |
|---|---|---|
| ▶ | 0.1b | (+.f64 (*.f64 y x) (*.f64 z (-.f64 x -5))) |
| ▶ | 11.5b | (+.f64 (*.f64 y x) (*.f64 z 5)) |
| ✓ | 0.1b | (+.f64 (*.f64 x (+.f64 y z)) (*.f64 z 5)) |
| ▶ | 24.2b | (*.f64 z (-.f64 x -5)) |
| ▶ | 35.1b | (*.f64 z 5) |
Compiled 48 to 34 computations (29.2% saved)
Compiled 8 to 6 computations (25% saved)
Found 1 expressions with local error:
| New | Error | Program |
|---|---|---|
| ✓ | 0.0b | (*.f64 z (-.f64 x -5)) |
Compiled 14 to 9 computations (35.7% saved)
6 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 1.0ms | z | @ | 0 | (*.f64 z (-.f64 x -5)) |
| 0.0ms | z | @ | inf | (*.f64 z (-.f64 x -5)) |
| 0.0ms | x | @ | inf | (*.f64 z (-.f64 x -5)) |
| 0.0ms | z | @ | -inf | (*.f64 z (-.f64 x -5)) |
| 0.0ms | x | @ | -inf | (*.f64 z (-.f64 x -5)) |
| 1× | batch-egg-rewrite |
| 2620× | rational.json-simplify-2 |
| 2090× | rational.json-simplify-35 |
| 1396× | rational.json-1 |
| 1192× | rational.json-simplify-1 |
| 1078× | exponential.json-3 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 7 | 13 |
| 1 | 45 | 13 |
| 2 | 97 | 13 |
| 3 | 198 | 13 |
| 4 | 350 | 13 |
| 5 | 762 | 13 |
| 6 | 1830 | 13 |
| 7 | 3212 | 13 |
| 8 | 4222 | 13 |
| 9 | 5514 | 13 |
| 10 | 6144 | 13 |
| 11 | 6144 | 13 |
| 12 | 7056 | 13 |
| 13 | 7056 | 13 |
| 14 | 7905 | 13 |
| 1× | node limit |
| Inputs |
|---|
(*.f64 z (-.f64 x -5)) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 z (+.f64 x 5)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 z (+.f64 x 5)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 z (*.f64 (+.f64 x 5) 1/2)) (*.f64 z (*.f64 (+.f64 x 5) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 z (+.f64 x 5)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 z (+.f64 x 5)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 x 5) (+.f64 z z)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 z (*.f64 (+.f64 x 5) 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 z (*.f64 (+.f64 x 5) 8)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 z (*.f64 (+.f64 x 5) 8))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 z (*.f64 (+.f64 x 5) 8)))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 z (*.f64 (+.f64 x 5) 8))))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 z (*.f64 (+.f64 x 5) 8)))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 z (*.f64 (+.f64 x 5) 8))))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 z (*.f64 (+.f64 x 5) 8))))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 z (*.f64 (+.f64 x 5) 8)))))))) 512)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 z (+.f64 x 5)) 1))))) |
| 1× | egg-herbie |
| 2868× | rational.json-simplify-2 |
| 2268× | rational.json-simplify-35 |
| 1560× | rational.json-simplify-53 |
| 1514× | rational.json-simplify-1 |
| 1122× | rational.json-simplify-41 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 53 | 489 |
| 1 | 132 | 489 |
| 2 | 256 | 489 |
| 3 | 580 | 489 |
| 4 | 2113 | 489 |
| 5 | 4372 | 489 |
| 6 | 4607 | 489 |
| 7 | 4741 | 489 |
| 8 | 4851 | 489 |
| 9 | 4970 | 489 |
| 10 | 5082 | 489 |
| 11 | 6592 | 489 |
| 12 | 7244 | 489 |
| 13 | 7419 | 489 |
| 14 | 7420 | 489 |
| 15 | 7420 | 489 |
| 16 | 7525 | 489 |
| 17 | 7630 | 489 |
| 18 | 7735 | 489 |
| 1× | node limit |
| Inputs |
|---|
(*.f64 z (+.f64 5 x)) |
(*.f64 z (+.f64 5 x)) |
(*.f64 z (+.f64 5 x)) |
(*.f64 z (+.f64 5 x)) |
(*.f64 z (+.f64 5 x)) |
(*.f64 z (+.f64 5 x)) |
(*.f64 z (+.f64 5 x)) |
(*.f64 z (+.f64 5 x)) |
(*.f64 z (+.f64 5 x)) |
(*.f64 z (+.f64 5 x)) |
(*.f64 z (+.f64 5 x)) |
(*.f64 z (+.f64 5 x)) |
(*.f64 5 z) |
(+.f64 (*.f64 z x) (*.f64 5 z)) |
(+.f64 (*.f64 z x) (*.f64 5 z)) |
(+.f64 (*.f64 z x) (*.f64 5 z)) |
(*.f64 z x) |
(+.f64 (*.f64 z x) (*.f64 5 z)) |
(+.f64 (*.f64 z x) (*.f64 5 z)) |
(+.f64 (*.f64 z x) (*.f64 5 z)) |
(*.f64 z x) |
(+.f64 (*.f64 z x) (*.f64 5 z)) |
(+.f64 (*.f64 z x) (*.f64 5 z)) |
(+.f64 (*.f64 z x) (*.f64 5 z)) |
(+.f64 (*.f64 z (+.f64 x 5)) 0) |
(+.f64 0 (*.f64 z (+.f64 x 5))) |
(+.f64 (*.f64 z (*.f64 (+.f64 x 5) 1/2)) (*.f64 z (*.f64 (+.f64 x 5) 1/2))) |
(-.f64 (*.f64 z (+.f64 x 5)) 0) |
(/.f64 (*.f64 z (+.f64 x 5)) 1) |
(/.f64 (*.f64 (+.f64 x 5) (+.f64 z z)) 2) |
(/.f64 (*.f64 z (*.f64 (+.f64 x 5) 4)) 4) |
(/.f64 (*.f64 z (*.f64 (+.f64 x 5) 8)) 8) |
(/.f64 (*.f64 2 (*.f64 z (*.f64 (+.f64 x 5) 8))) 16) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 z (*.f64 (+.f64 x 5) 8)))) 32) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 z (*.f64 (+.f64 x 5) 8))))) 64) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 z (*.f64 (+.f64 x 5) 8)))))) 128) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 z (*.f64 (+.f64 x 5) 8))))))) 256) |
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 z (*.f64 (+.f64 x 5) 8))))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 z (*.f64 (+.f64 x 5) 8)))))))) 512) |
(pow.f64 (*.f64 z (+.f64 x 5)) 1) |
| Outputs |
|---|
(*.f64 z (+.f64 5 x)) |
(*.f64 z (+.f64 5 x)) |
(*.f64 z (+.f64 5 x)) |
(*.f64 z (+.f64 5 x)) |
(*.f64 z (+.f64 5 x)) |
(*.f64 z (+.f64 5 x)) |
(*.f64 z (+.f64 5 x)) |
(*.f64 z (+.f64 5 x)) |
(*.f64 z (+.f64 5 x)) |
(*.f64 z (+.f64 5 x)) |
(*.f64 z (+.f64 5 x)) |
(*.f64 z (+.f64 5 x)) |
(*.f64 5 z) |
(*.f64 z 5) |
(+.f64 (*.f64 z x) (*.f64 5 z)) |
(*.f64 z (+.f64 5 x)) |
(+.f64 (*.f64 z x) (*.f64 5 z)) |
(*.f64 z (+.f64 5 x)) |
(+.f64 (*.f64 z x) (*.f64 5 z)) |
(*.f64 z (+.f64 5 x)) |
(*.f64 z x) |
(+.f64 (*.f64 z x) (*.f64 5 z)) |
(*.f64 z (+.f64 5 x)) |
(+.f64 (*.f64 z x) (*.f64 5 z)) |
(*.f64 z (+.f64 5 x)) |
(+.f64 (*.f64 z x) (*.f64 5 z)) |
(*.f64 z (+.f64 5 x)) |
(*.f64 z x) |
(+.f64 (*.f64 z x) (*.f64 5 z)) |
(*.f64 z (+.f64 5 x)) |
(+.f64 (*.f64 z x) (*.f64 5 z)) |
(*.f64 z (+.f64 5 x)) |
(+.f64 (*.f64 z x) (*.f64 5 z)) |
(*.f64 z (+.f64 5 x)) |
(+.f64 (*.f64 z (+.f64 x 5)) 0) |
(*.f64 z (+.f64 5 x)) |
(+.f64 0 (*.f64 z (+.f64 x 5))) |
(*.f64 z (+.f64 5 x)) |
(+.f64 (*.f64 z (*.f64 (+.f64 x 5) 1/2)) (*.f64 z (*.f64 (+.f64 x 5) 1/2))) |
(*.f64 z (+.f64 5 x)) |
(-.f64 (*.f64 z (+.f64 x 5)) 0) |
(*.f64 z (+.f64 5 x)) |
(/.f64 (*.f64 z (+.f64 x 5)) 1) |
(*.f64 z (+.f64 5 x)) |
(/.f64 (*.f64 (+.f64 x 5) (+.f64 z z)) 2) |
(*.f64 z (+.f64 5 x)) |
(/.f64 (*.f64 z (*.f64 (+.f64 x 5) 4)) 4) |
(*.f64 z (+.f64 5 x)) |
(/.f64 (*.f64 z (*.f64 (+.f64 x 5) 8)) 8) |
(*.f64 z (+.f64 5 x)) |
(/.f64 (*.f64 2 (*.f64 z (*.f64 (+.f64 x 5) 8))) 16) |
(*.f64 z (+.f64 5 x)) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 z (*.f64 (+.f64 x 5) 8)))) 32) |
(*.f64 z (+.f64 5 x)) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 z (*.f64 (+.f64 x 5) 8))))) 64) |
(*.f64 z (+.f64 5 x)) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 z (*.f64 (+.f64 x 5) 8)))))) 128) |
(*.f64 z (+.f64 5 x)) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 z (*.f64 (+.f64 x 5) 8))))))) 256) |
(*.f64 z (+.f64 5 x)) |
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 z (*.f64 (+.f64 x 5) 8))))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 z (*.f64 (+.f64 x 5) 8)))))))) 512) |
(*.f64 z (+.f64 5 x)) |
(pow.f64 (*.f64 z (+.f64 x 5)) 1) |
(*.f64 z (+.f64 5 x)) |
Found 1 expressions with local error:
| New | Error | Program |
|---|---|---|
| ✓ | 0.0b | (+.f64 (*.f64 y x) (*.f64 z 5)) |
Compiled 20 to 10 computations (50% saved)
9 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 0.0ms | x | @ | -inf | (+.f64 (*.f64 y x) (*.f64 z 5)) |
| 0.0ms | y | @ | inf | (+.f64 (*.f64 y x) (*.f64 z 5)) |
| 0.0ms | y | @ | 0 | (+.f64 (*.f64 y x) (*.f64 z 5)) |
| 0.0ms | y | @ | -inf | (+.f64 (*.f64 y x) (*.f64 z 5)) |
| 0.0ms | x | @ | 0 | (+.f64 (*.f64 y x) (*.f64 z 5)) |
| 1× | batch-egg-rewrite |
| 1654× | rational.json-simplify-1 |
| 1614× | rational.json-simplify-35 |
| 1340× | exponential.json-3 |
| 1340× | rational.json-1 |
| 1340× | rational.json-2 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 9 | 19 |
| 1 | 59 | 19 |
| 2 | 120 | 19 |
| 3 | 246 | 19 |
| 4 | 460 | 19 |
| 5 | 1041 | 19 |
| 6 | 2500 | 19 |
| 7 | 4371 | 19 |
| 8 | 5405 | 19 |
| 9 | 6864 | 19 |
| 10 | 7627 | 19 |
| 11 | 7627 | 19 |
| 1× | node limit |
| Inputs |
|---|
(+.f64 (*.f64 y x) (*.f64 z 5)) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (*.f64 y x) (*.f64 z 5)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 y x) (*.f64 z 5)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 (*.f64 y x) (*.f64 z 5)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (+.f64 (*.f64 z 5/2) (*.f64 y (*.f64 x 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 z 10) (*.f64 y (+.f64 x x))) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (*.f64 (+.f64 (*.f64 y x) (*.f64 z 5)) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 y x) (*.f64 z 5)) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 y x) (*.f64 z 5)) 8) 1/8)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (*.f64 z 10) (*.f64 y (+.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 z 5/2) (*.f64 y (*.f64 x 1/2))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (+.f64 (*.f64 y x) (*.f64 z 5)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 y x) (*.f64 z 5)) 1/4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/8 (*.f64 (+.f64 (*.f64 y x) (*.f64 z 5)) 8))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 y x) (*.f64 z 5)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 z 10) (*.f64 y (+.f64 x x))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 y x) (*.f64 z 5)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 y x) (*.f64 z 5)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 y x) (*.f64 z 5)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y x) (*.f64 z 5)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y x) (*.f64 z 5)) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y x) (*.f64 z 5)) 8))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y x) (*.f64 z 5)) 8)))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 (*.f64 y x) (*.f64 z 5)) 1))))) |
| 1× | egg-herbie |
| 3346× | rational.json-simplify-51 |
| 2776× | rational.json-simplify-2 |
| 1750× | rational.json-simplify-35 |
| 1314× | rational.json-simplify-49 |
| 1234× | rational.json-simplify-1 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 65 | 1037 |
| 1 | 138 | 1037 |
| 2 | 344 | 1037 |
| 3 | 1124 | 1037 |
| 4 | 1946 | 1037 |
| 5 | 3018 | 1037 |
| 6 | 3497 | 1037 |
| 7 | 3567 | 1037 |
| 8 | 3617 | 1037 |
| 9 | 3654 | 1037 |
| 10 | 3691 | 1037 |
| 11 | 3728 | 1037 |
| 12 | 3765 | 1037 |
| 13 | 3802 | 1037 |
| 14 | 3839 | 1037 |
| 15 | 3876 | 1037 |
| 16 | 3913 | 1037 |
| 17 | 3950 | 1037 |
| 18 | 3987 | 1037 |
| 19 | 4876 | 1037 |
| 20 | 7328 | 1037 |
| 21 | 7390 | 1037 |
| 22 | 7423 | 1037 |
| 23 | 7456 | 1037 |
| 24 | 7487 | 1037 |
| 1× | node limit |
| Inputs |
|---|
(*.f64 5 z) |
(+.f64 (*.f64 y x) (*.f64 5 z)) |
(+.f64 (*.f64 y x) (*.f64 5 z)) |
(+.f64 (*.f64 y x) (*.f64 5 z)) |
(*.f64 y x) |
(+.f64 (*.f64 y x) (*.f64 5 z)) |
(+.f64 (*.f64 y x) (*.f64 5 z)) |
(+.f64 (*.f64 y x) (*.f64 5 z)) |
(*.f64 y x) |
(+.f64 (*.f64 y x) (*.f64 5 z)) |
(+.f64 (*.f64 y x) (*.f64 5 z)) |
(+.f64 (*.f64 y x) (*.f64 5 z)) |
(*.f64 5 z) |
(+.f64 (*.f64 y x) (*.f64 5 z)) |
(+.f64 (*.f64 y x) (*.f64 5 z)) |
(+.f64 (*.f64 y x) (*.f64 5 z)) |
(*.f64 y x) |
(+.f64 (*.f64 y x) (*.f64 5 z)) |
(+.f64 (*.f64 y x) (*.f64 5 z)) |
(+.f64 (*.f64 y x) (*.f64 5 z)) |
(*.f64 y x) |
(+.f64 (*.f64 y x) (*.f64 5 z)) |
(+.f64 (*.f64 y x) (*.f64 5 z)) |
(+.f64 (*.f64 y x) (*.f64 5 z)) |
(*.f64 y x) |
(+.f64 (*.f64 y x) (*.f64 5 z)) |
(+.f64 (*.f64 y x) (*.f64 5 z)) |
(+.f64 (*.f64 y x) (*.f64 5 z)) |
(*.f64 5 z) |
(+.f64 (*.f64 y x) (*.f64 5 z)) |
(+.f64 (*.f64 y x) (*.f64 5 z)) |
(+.f64 (*.f64 y x) (*.f64 5 z)) |
(*.f64 5 z) |
(+.f64 (*.f64 y x) (*.f64 5 z)) |
(+.f64 (*.f64 y x) (*.f64 5 z)) |
(+.f64 (*.f64 y x) (*.f64 5 z)) |
(-.f64 (+.f64 (*.f64 y x) (*.f64 z 5)) 0) |
(*.f64 (+.f64 (*.f64 y x) (*.f64 z 5)) 1) |
(*.f64 1 (+.f64 (*.f64 y x) (*.f64 z 5))) |
(*.f64 2 (+.f64 (*.f64 z 5/2) (*.f64 y (*.f64 x 1/2)))) |
(*.f64 (+.f64 (*.f64 z 10) (*.f64 y (+.f64 x x))) 1/2) |
(*.f64 4 (*.f64 (+.f64 (*.f64 y x) (*.f64 z 5)) 1/4)) |
(*.f64 (*.f64 (+.f64 (*.f64 y x) (*.f64 z 5)) 4) 1/4) |
(*.f64 (*.f64 (+.f64 (*.f64 y x) (*.f64 z 5)) 8) 1/8) |
(*.f64 1/2 (+.f64 (*.f64 z 10) (*.f64 y (+.f64 x x)))) |
(*.f64 (+.f64 (*.f64 z 5/2) (*.f64 y (*.f64 x 1/2))) 2) |
(*.f64 1/4 (*.f64 (+.f64 (*.f64 y x) (*.f64 z 5)) 4)) |
(*.f64 (*.f64 (+.f64 (*.f64 y x) (*.f64 z 5)) 1/4) 4) |
(*.f64 1/8 (*.f64 (+.f64 (*.f64 y x) (*.f64 z 5)) 8)) |
(/.f64 (+.f64 (*.f64 y x) (*.f64 z 5)) 1) |
(/.f64 (+.f64 (*.f64 z 10) (*.f64 y (+.f64 x x))) 2) |
(/.f64 (*.f64 (+.f64 (*.f64 y x) (*.f64 z 5)) 4) 4) |
(/.f64 (*.f64 (+.f64 (*.f64 y x) (*.f64 z 5)) 8) 8) |
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 y x) (*.f64 z 5)) 8)) 16) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y x) (*.f64 z 5)) 8))) 32) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y x) (*.f64 z 5)) 8)))) 64) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y x) (*.f64 z 5)) 8))))) 128) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y x) (*.f64 z 5)) 8)))))) 256) |
(pow.f64 (+.f64 (*.f64 y x) (*.f64 z 5)) 1) |
| Outputs |
|---|
(*.f64 5 z) |
(+.f64 (*.f64 y x) (*.f64 5 z)) |
(+.f64 (*.f64 5 z) (*.f64 y x)) |
(+.f64 (*.f64 y x) (*.f64 5 z)) |
(+.f64 (*.f64 5 z) (*.f64 y x)) |
(+.f64 (*.f64 y x) (*.f64 5 z)) |
(+.f64 (*.f64 5 z) (*.f64 y x)) |
(*.f64 y x) |
(+.f64 (*.f64 y x) (*.f64 5 z)) |
(+.f64 (*.f64 5 z) (*.f64 y x)) |
(+.f64 (*.f64 y x) (*.f64 5 z)) |
(+.f64 (*.f64 5 z) (*.f64 y x)) |
(+.f64 (*.f64 y x) (*.f64 5 z)) |
(+.f64 (*.f64 5 z) (*.f64 y x)) |
(*.f64 y x) |
(+.f64 (*.f64 y x) (*.f64 5 z)) |
(+.f64 (*.f64 5 z) (*.f64 y x)) |
(+.f64 (*.f64 y x) (*.f64 5 z)) |
(+.f64 (*.f64 5 z) (*.f64 y x)) |
(+.f64 (*.f64 y x) (*.f64 5 z)) |
(+.f64 (*.f64 5 z) (*.f64 y x)) |
(*.f64 5 z) |
(+.f64 (*.f64 y x) (*.f64 5 z)) |
(+.f64 (*.f64 5 z) (*.f64 y x)) |
(+.f64 (*.f64 y x) (*.f64 5 z)) |
(+.f64 (*.f64 5 z) (*.f64 y x)) |
(+.f64 (*.f64 y x) (*.f64 5 z)) |
(+.f64 (*.f64 5 z) (*.f64 y x)) |
(*.f64 y x) |
(+.f64 (*.f64 y x) (*.f64 5 z)) |
(+.f64 (*.f64 5 z) (*.f64 y x)) |
(+.f64 (*.f64 y x) (*.f64 5 z)) |
(+.f64 (*.f64 5 z) (*.f64 y x)) |
(+.f64 (*.f64 y x) (*.f64 5 z)) |
(+.f64 (*.f64 5 z) (*.f64 y x)) |
(*.f64 y x) |
(+.f64 (*.f64 y x) (*.f64 5 z)) |
(+.f64 (*.f64 5 z) (*.f64 y x)) |
(+.f64 (*.f64 y x) (*.f64 5 z)) |
(+.f64 (*.f64 5 z) (*.f64 y x)) |
(+.f64 (*.f64 y x) (*.f64 5 z)) |
(+.f64 (*.f64 5 z) (*.f64 y x)) |
(*.f64 y x) |
(+.f64 (*.f64 y x) (*.f64 5 z)) |
(+.f64 (*.f64 5 z) (*.f64 y x)) |
(+.f64 (*.f64 y x) (*.f64 5 z)) |
(+.f64 (*.f64 5 z) (*.f64 y x)) |
(+.f64 (*.f64 y x) (*.f64 5 z)) |
(+.f64 (*.f64 5 z) (*.f64 y x)) |
(*.f64 5 z) |
(+.f64 (*.f64 y x) (*.f64 5 z)) |
(+.f64 (*.f64 5 z) (*.f64 y x)) |
(+.f64 (*.f64 y x) (*.f64 5 z)) |
(+.f64 (*.f64 5 z) (*.f64 y x)) |
(+.f64 (*.f64 y x) (*.f64 5 z)) |
(+.f64 (*.f64 5 z) (*.f64 y x)) |
(*.f64 5 z) |
(+.f64 (*.f64 y x) (*.f64 5 z)) |
(+.f64 (*.f64 5 z) (*.f64 y x)) |
(+.f64 (*.f64 y x) (*.f64 5 z)) |
(+.f64 (*.f64 5 z) (*.f64 y x)) |
(+.f64 (*.f64 y x) (*.f64 5 z)) |
(+.f64 (*.f64 5 z) (*.f64 y x)) |
(-.f64 (+.f64 (*.f64 y x) (*.f64 z 5)) 0) |
(+.f64 (*.f64 5 z) (*.f64 y x)) |
(*.f64 (+.f64 (*.f64 y x) (*.f64 z 5)) 1) |
(+.f64 (*.f64 5 z) (*.f64 y x)) |
(*.f64 1 (+.f64 (*.f64 y x) (*.f64 z 5))) |
(+.f64 (*.f64 5 z) (*.f64 y x)) |
(*.f64 2 (+.f64 (*.f64 z 5/2) (*.f64 y (*.f64 x 1/2)))) |
(*.f64 (+.f64 (*.f64 z 10) (*.f64 y (+.f64 x x))) 1/2) |
(+.f64 (*.f64 5 z) (*.f64 y x)) |
(*.f64 4 (*.f64 (+.f64 (*.f64 y x) (*.f64 z 5)) 1/4)) |
(+.f64 (*.f64 5 z) (*.f64 y x)) |
(*.f64 (*.f64 (+.f64 (*.f64 y x) (*.f64 z 5)) 4) 1/4) |
(+.f64 (*.f64 5 z) (*.f64 y x)) |
(*.f64 (*.f64 (+.f64 (*.f64 y x) (*.f64 z 5)) 8) 1/8) |
(+.f64 (*.f64 5 z) (*.f64 y x)) |
(*.f64 1/2 (+.f64 (*.f64 z 10) (*.f64 y (+.f64 x x)))) |
(+.f64 (*.f64 5 z) (*.f64 y x)) |
(*.f64 (+.f64 (*.f64 z 5/2) (*.f64 y (*.f64 x 1/2))) 2) |
(*.f64 2 (+.f64 (*.f64 z 5/2) (*.f64 y (*.f64 x 1/2)))) |
(*.f64 1/4 (*.f64 (+.f64 (*.f64 y x) (*.f64 z 5)) 4)) |
(+.f64 (*.f64 5 z) (*.f64 y x)) |
(*.f64 (*.f64 (+.f64 (*.f64 y x) (*.f64 z 5)) 1/4) 4) |
(+.f64 (*.f64 5 z) (*.f64 y x)) |
(*.f64 1/8 (*.f64 (+.f64 (*.f64 y x) (*.f64 z 5)) 8)) |
(+.f64 (*.f64 5 z) (*.f64 y x)) |
(/.f64 (+.f64 (*.f64 y x) (*.f64 z 5)) 1) |
(+.f64 (*.f64 5 z) (*.f64 y x)) |
(/.f64 (+.f64 (*.f64 z 10) (*.f64 y (+.f64 x x))) 2) |
(+.f64 (*.f64 5 z) (*.f64 y x)) |
(/.f64 (*.f64 (+.f64 (*.f64 y x) (*.f64 z 5)) 4) 4) |
(+.f64 (*.f64 5 z) (*.f64 y x)) |
(/.f64 (*.f64 (+.f64 (*.f64 y x) (*.f64 z 5)) 8) 8) |
(+.f64 (*.f64 5 z) (*.f64 y x)) |
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 y x) (*.f64 z 5)) 8)) 16) |
(+.f64 (*.f64 5 z) (*.f64 y x)) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y x) (*.f64 z 5)) 8))) 32) |
(+.f64 (*.f64 5 z) (*.f64 y x)) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y x) (*.f64 z 5)) 8)))) 64) |
(+.f64 (*.f64 5 z) (*.f64 y x)) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y x) (*.f64 z 5)) 8))))) 128) |
(+.f64 (*.f64 5 z) (*.f64 y x)) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y x) (*.f64 z 5)) 8)))))) 256) |
(+.f64 (*.f64 5 z) (*.f64 y x)) |
(pow.f64 (+.f64 (*.f64 y x) (*.f64 z 5)) 1) |
(+.f64 (*.f64 5 z) (*.f64 y x)) |
Found 2 expressions with local error:
| New | Error | Program |
|---|---|---|
| 0.0b | (*.f64 z (-.f64 x -5)) | |
| ✓ | 0.0b | (+.f64 (*.f64 y x) (*.f64 z (-.f64 x -5))) |
Compiled 27 to 14 computations (48.1% saved)
9 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 0.0ms | y | @ | 0 | (+.f64 (*.f64 y x) (*.f64 z (-.f64 x -5))) |
| 0.0ms | z | @ | inf | (+.f64 (*.f64 y x) (*.f64 z (-.f64 x -5))) |
| 0.0ms | x | @ | -inf | (+.f64 (*.f64 y x) (*.f64 z (-.f64 x -5))) |
| 0.0ms | y | @ | -inf | (+.f64 (*.f64 y x) (*.f64 z (-.f64 x -5))) |
| 0.0ms | z | @ | -inf | (+.f64 (*.f64 y x) (*.f64 z (-.f64 x -5))) |
| 1× | batch-egg-rewrite |
| 2164× | rational.json-simplify-35 |
| 1532× | rational.json-simplify-1 |
| 1414× | rational.json-simplify-53 |
| 1144× | exponential.json-3 |
| 1144× | rational.json-1 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 10 | 25 |
| 1 | 65 | 25 |
| 2 | 129 | 25 |
| 3 | 266 | 25 |
| 4 | 495 | 25 |
| 5 | 1136 | 25 |
| 6 | 2772 | 25 |
| 7 | 4946 | 25 |
| 8 | 5960 | 25 |
| 9 | 6747 | 25 |
| 10 | 6747 | 25 |
| 11 | 6747 | 25 |
| 1× | node limit |
| Inputs |
|---|
(+.f64 (*.f64 y x) (*.f64 z (-.f64 x -5))) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (*.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) 8) 1/8)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) 1/4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/8 (*.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) 8))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) 8))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) 8))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) 8)))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) 1))))) |
| 1× | egg-herbie |
| 2312× | rational.json-simplify-35 |
| 1880× | rational.json-simplify-1 |
| 1288× | rational.json-simplify-49 |
| 1220× | rational.json-simplify-2 |
| 1064× | rational.json-simplify-45 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 70 | 1343 |
| 1 | 146 | 1343 |
| 2 | 458 | 1343 |
| 3 | 1174 | 1343 |
| 4 | 1860 | 1343 |
| 5 | 2826 | 1343 |
| 6 | 3399 | 1343 |
| 7 | 3497 | 1343 |
| 8 | 3573 | 1343 |
| 9 | 3641 | 1343 |
| 10 | 3738 | 1343 |
| 11 | 3901 | 1343 |
| 12 | 4126 | 1343 |
| 13 | 4568 | 1343 |
| 14 | 5002 | 1343 |
| 15 | 5199 | 1343 |
| 16 | 5455 | 1343 |
| 17 | 5585 | 1343 |
| 18 | 5693 | 1343 |
| 19 | 6617 | 1343 |
| 20 | 7271 | 1343 |
| 21 | 7300 | 1343 |
| 22 | 7374 | 1343 |
| 23 | 7376 | 1343 |
| 24 | 7376 | 1343 |
| 25 | 7769 | 1343 |
| 1× | node limit |
| Inputs |
|---|
(*.f64 z (+.f64 5 x)) |
(+.f64 (*.f64 y x) (*.f64 z (+.f64 5 x))) |
(+.f64 (*.f64 y x) (*.f64 z (+.f64 5 x))) |
(+.f64 (*.f64 y x) (*.f64 z (+.f64 5 x))) |
(*.f64 y x) |
(+.f64 (*.f64 y x) (*.f64 z (+.f64 5 x))) |
(+.f64 (*.f64 y x) (*.f64 z (+.f64 5 x))) |
(+.f64 (*.f64 y x) (*.f64 z (+.f64 5 x))) |
(*.f64 y x) |
(+.f64 (*.f64 y x) (*.f64 z (+.f64 5 x))) |
(+.f64 (*.f64 y x) (*.f64 z (+.f64 5 x))) |
(+.f64 (*.f64 y x) (*.f64 z (+.f64 5 x))) |
(*.f64 5 z) |
(+.f64 (*.f64 (+.f64 y z) x) (*.f64 5 z)) |
(+.f64 (*.f64 (+.f64 y z) x) (*.f64 5 z)) |
(+.f64 (*.f64 (+.f64 y z) x) (*.f64 5 z)) |
(*.f64 (+.f64 y z) x) |
(+.f64 (*.f64 (+.f64 y z) x) (*.f64 5 z)) |
(+.f64 (*.f64 (+.f64 y z) x) (*.f64 5 z)) |
(+.f64 (*.f64 (+.f64 y z) x) (*.f64 5 z)) |
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 z) (*.f64 -1 y)) x)) |
(+.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 z) (*.f64 -1 y)) x)) (*.f64 5 z)) |
(+.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 z) (*.f64 -1 y)) x)) (*.f64 5 z)) |
(+.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 z) (*.f64 -1 y)) x)) (*.f64 5 z)) |
(*.f64 y x) |
(+.f64 (*.f64 y x) (*.f64 z (+.f64 5 x))) |
(+.f64 (*.f64 y x) (*.f64 z (+.f64 5 x))) |
(+.f64 (*.f64 y x) (*.f64 z (+.f64 5 x))) |
(*.f64 z (+.f64 5 x)) |
(+.f64 (*.f64 y x) (*.f64 z (+.f64 5 x))) |
(+.f64 (*.f64 y x) (*.f64 z (+.f64 5 x))) |
(+.f64 (*.f64 y x) (*.f64 z (+.f64 5 x))) |
(*.f64 z (+.f64 5 x)) |
(+.f64 (*.f64 y x) (*.f64 z (+.f64 5 x))) |
(+.f64 (*.f64 y x) (*.f64 z (+.f64 5 x))) |
(+.f64 (*.f64 y x) (*.f64 z (+.f64 5 x))) |
(-.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) 0) |
(*.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) 1) |
(*.f64 1 (+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5)))) |
(*.f64 2 (*.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) 1/2)) |
(*.f64 (*.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) 2) 1/2) |
(*.f64 4 (*.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) 1/4)) |
(*.f64 (*.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) 4) 1/4) |
(*.f64 (*.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) 8) 1/8) |
(*.f64 1/2 (*.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) 2)) |
(*.f64 (*.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) 1/2) 2) |
(*.f64 1/4 (*.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) 4)) |
(*.f64 (*.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) 1/4) 4) |
(*.f64 1/8 (*.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) 8)) |
(/.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) 1) |
(/.f64 (*.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) 2) 2) |
(/.f64 (*.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) 4) 4) |
(/.f64 (*.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) 8) 8) |
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) 8)) 16) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) 8))) 32) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) 8)))) 64) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) 8))))) 128) |
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) 8))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) 8)))))) 256) |
(pow.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) 1) |
| Outputs |
|---|
(*.f64 z (+.f64 5 x)) |
(+.f64 (*.f64 y x) (*.f64 z (+.f64 5 x))) |
(+.f64 (*.f64 x y) (*.f64 z (+.f64 5 x))) |
(+.f64 (*.f64 y x) (*.f64 z (+.f64 5 x))) |
(+.f64 (*.f64 x y) (*.f64 z (+.f64 5 x))) |
(+.f64 (*.f64 y x) (*.f64 z (+.f64 5 x))) |
(+.f64 (*.f64 x y) (*.f64 z (+.f64 5 x))) |
(*.f64 y x) |
(*.f64 x y) |
(+.f64 (*.f64 y x) (*.f64 z (+.f64 5 x))) |
(+.f64 (*.f64 x y) (*.f64 z (+.f64 5 x))) |
(+.f64 (*.f64 y x) (*.f64 z (+.f64 5 x))) |
(+.f64 (*.f64 x y) (*.f64 z (+.f64 5 x))) |
(+.f64 (*.f64 y x) (*.f64 z (+.f64 5 x))) |
(+.f64 (*.f64 x y) (*.f64 z (+.f64 5 x))) |
(*.f64 y x) |
(*.f64 x y) |
(+.f64 (*.f64 y x) (*.f64 z (+.f64 5 x))) |
(+.f64 (*.f64 x y) (*.f64 z (+.f64 5 x))) |
(+.f64 (*.f64 y x) (*.f64 z (+.f64 5 x))) |
(+.f64 (*.f64 x y) (*.f64 z (+.f64 5 x))) |
(+.f64 (*.f64 y x) (*.f64 z (+.f64 5 x))) |
(+.f64 (*.f64 x y) (*.f64 z (+.f64 5 x))) |
(*.f64 5 z) |
(*.f64 z 5) |
(+.f64 (*.f64 (+.f64 y z) x) (*.f64 5 z)) |
(+.f64 (*.f64 z 5) (*.f64 x (+.f64 z y))) |
(+.f64 (*.f64 (+.f64 y z) x) (*.f64 5 z)) |
(+.f64 (*.f64 z 5) (*.f64 x (+.f64 z y))) |
(+.f64 (*.f64 (+.f64 y z) x) (*.f64 5 z)) |
(+.f64 (*.f64 z 5) (*.f64 x (+.f64 z y))) |
(*.f64 (+.f64 y z) x) |
(*.f64 x (+.f64 z y)) |
(+.f64 (*.f64 (+.f64 y z) x) (*.f64 5 z)) |
(+.f64 (*.f64 z 5) (*.f64 x (+.f64 z y))) |
(+.f64 (*.f64 (+.f64 y z) x) (*.f64 5 z)) |
(+.f64 (*.f64 z 5) (*.f64 x (+.f64 z y))) |
(+.f64 (*.f64 (+.f64 y z) x) (*.f64 5 z)) |
(+.f64 (*.f64 z 5) (*.f64 x (+.f64 z y))) |
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 z) (*.f64 -1 y)) x)) |
(*.f64 x (+.f64 z y)) |
(+.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 z) (*.f64 -1 y)) x)) (*.f64 5 z)) |
(+.f64 (*.f64 z 5) (*.f64 x (+.f64 z y))) |
(+.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 z) (*.f64 -1 y)) x)) (*.f64 5 z)) |
(+.f64 (*.f64 z 5) (*.f64 x (+.f64 z y))) |
(+.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 z) (*.f64 -1 y)) x)) (*.f64 5 z)) |
(+.f64 (*.f64 z 5) (*.f64 x (+.f64 z y))) |
(*.f64 y x) |
(*.f64 x y) |
(+.f64 (*.f64 y x) (*.f64 z (+.f64 5 x))) |
(+.f64 (*.f64 x y) (*.f64 z (+.f64 5 x))) |
(+.f64 (*.f64 y x) (*.f64 z (+.f64 5 x))) |
(+.f64 (*.f64 x y) (*.f64 z (+.f64 5 x))) |
(+.f64 (*.f64 y x) (*.f64 z (+.f64 5 x))) |
(+.f64 (*.f64 x y) (*.f64 z (+.f64 5 x))) |
(*.f64 z (+.f64 5 x)) |
(+.f64 (*.f64 y x) (*.f64 z (+.f64 5 x))) |
(+.f64 (*.f64 x y) (*.f64 z (+.f64 5 x))) |
(+.f64 (*.f64 y x) (*.f64 z (+.f64 5 x))) |
(+.f64 (*.f64 x y) (*.f64 z (+.f64 5 x))) |
(+.f64 (*.f64 y x) (*.f64 z (+.f64 5 x))) |
(+.f64 (*.f64 x y) (*.f64 z (+.f64 5 x))) |
(*.f64 z (+.f64 5 x)) |
(+.f64 (*.f64 y x) (*.f64 z (+.f64 5 x))) |
(+.f64 (*.f64 x y) (*.f64 z (+.f64 5 x))) |
(+.f64 (*.f64 y x) (*.f64 z (+.f64 5 x))) |
(+.f64 (*.f64 x y) (*.f64 z (+.f64 5 x))) |
(+.f64 (*.f64 y x) (*.f64 z (+.f64 5 x))) |
(+.f64 (*.f64 x y) (*.f64 z (+.f64 5 x))) |
(-.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) 0) |
(+.f64 (*.f64 x y) (*.f64 z (+.f64 5 x))) |
(*.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) 1) |
(+.f64 (*.f64 x y) (*.f64 z (+.f64 5 x))) |
(*.f64 1 (+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5)))) |
(+.f64 (*.f64 x y) (*.f64 z (+.f64 5 x))) |
(*.f64 2 (*.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) 1/2)) |
(+.f64 (*.f64 x y) (*.f64 z (+.f64 5 x))) |
(*.f64 (*.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) 2) 1/2) |
(+.f64 (*.f64 x y) (*.f64 z (+.f64 5 x))) |
(*.f64 4 (*.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) 1/4)) |
(+.f64 (*.f64 x y) (*.f64 z (+.f64 5 x))) |
(*.f64 (*.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) 4) 1/4) |
(+.f64 (*.f64 x y) (*.f64 z (+.f64 5 x))) |
(*.f64 (*.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) 8) 1/8) |
(+.f64 (*.f64 x y) (*.f64 z (+.f64 5 x))) |
(*.f64 1/2 (*.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) 2)) |
(+.f64 (*.f64 x y) (*.f64 z (+.f64 5 x))) |
(*.f64 (*.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) 1/2) 2) |
(+.f64 (*.f64 x y) (*.f64 z (+.f64 5 x))) |
(*.f64 1/4 (*.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) 4)) |
(+.f64 (*.f64 x y) (*.f64 z (+.f64 5 x))) |
(*.f64 (*.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) 1/4) 4) |
(+.f64 (*.f64 x y) (*.f64 z (+.f64 5 x))) |
(*.f64 1/8 (*.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) 8)) |
(+.f64 (*.f64 x y) (*.f64 z (+.f64 5 x))) |
(/.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) 1) |
(+.f64 (*.f64 x y) (*.f64 z (+.f64 5 x))) |
(/.f64 (*.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) 2) 2) |
(+.f64 (*.f64 x y) (*.f64 z (+.f64 5 x))) |
(/.f64 (*.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) 4) 4) |
(+.f64 (*.f64 x y) (*.f64 z (+.f64 5 x))) |
(/.f64 (*.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) 8) 8) |
(+.f64 (*.f64 x y) (*.f64 z (+.f64 5 x))) |
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) 8)) 16) |
(+.f64 (*.f64 x y) (*.f64 z (+.f64 5 x))) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) 8))) 32) |
(+.f64 (*.f64 x y) (*.f64 z (+.f64 5 x))) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) 8)))) 64) |
(+.f64 (*.f64 x y) (*.f64 z (+.f64 5 x))) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) 8))))) 128) |
(+.f64 (*.f64 x y) (*.f64 z (+.f64 5 x))) |
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) 8))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) 8)))))) 256) |
(+.f64 (*.f64 x y) (*.f64 z (+.f64 5 x))) |
(pow.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) 1) |
(+.f64 (*.f64 x y) (*.f64 z (+.f64 5 x))) |
Compiled 1222 to 801 computations (34.5% saved)
8 alts after pruning (4 fresh and 4 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 99 | 4 | 103 |
| Fresh | 0 | 0 | 0 |
| Picked | 1 | 0 | 1 |
| Done | 0 | 4 | 4 |
| Total | 100 | 8 | 108 |
| Status | Error | Program |
|---|---|---|
| ▶ | 27.9b | (+.f64 (*.f64 y x) (*.f64 z x)) |
| ✓ | 11.5b | (+.f64 (*.f64 y x) (*.f64 z 5)) |
| ✓ | 0.1b | (+.f64 (*.f64 x (+.f64 y z)) (*.f64 z 5)) |
| ▶ | 27.9b | (*.f64 (+.f64 y z) x) |
| ✓ | 24.2b | (*.f64 z (-.f64 x -5)) |
| ▶ | 51.5b | (*.f64 z x) |
| ✓ | 35.1b | (*.f64 z 5) |
| ▶ | 38.9b | (*.f64 y x) |
Compiled 66 to 45 computations (31.8% saved)
Compiled 8 to 4 computations (50% saved)
Compiled 8 to 4 computations (50% saved)
Found 1 expressions with local error:
| New | Error | Program |
|---|---|---|
| ✓ | 0.0b | (*.f64 (+.f64 y z) x) |
Compiled 14 to 5 computations (64.3% saved)
9 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 0.0ms | y | @ | -inf | (*.f64 (+.f64 y z) x) |
| 0.0ms | y | @ | 0 | (*.f64 (+.f64 y z) x) |
| 0.0ms | z | @ | inf | (*.f64 (+.f64 y z) x) |
| 0.0ms | y | @ | inf | (*.f64 (+.f64 y z) x) |
| 0.0ms | z | @ | -inf | (*.f64 (+.f64 y z) x) |
| 1× | batch-egg-rewrite |
| 2514× | rational.json-simplify-2 |
| 1526× | rational.json-simplify-35 |
| 1252× | rational.json-simplify-1 |
| 1232× | exponential.json-3 |
| 1232× | rational.json-1 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 7 | 13 |
| 1 | 46 | 13 |
| 2 | 102 | 13 |
| 3 | 214 | 13 |
| 4 | 397 | 13 |
| 5 | 898 | 13 |
| 6 | 2315 | 13 |
| 7 | 4176 | 13 |
| 8 | 5081 | 13 |
| 9 | 6155 | 13 |
| 10 | 6970 | 13 |
| 11 | 6970 | 13 |
| 1× | node limit |
| Inputs |
|---|
(*.f64 (+.f64 y z) x) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 y z) x) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (+.f64 y z) x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 y z) (*.f64 x 1/2)) (*.f64 (+.f64 y z) (*.f64 x 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (+.f64 y z) x) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 y z) x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 y z) (+.f64 x x)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 y z) (*.f64 x 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 y z) (*.f64 x 8)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 y z) (*.f64 x 8))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y z) (*.f64 x 8)))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y z) (*.f64 x 8))))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y z) (*.f64 x 8)))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y z) (*.f64 x 8))))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (+.f64 y z) x) 1))))) |
| 1× | egg-herbie |
| 3048× | rational.json-simplify-2 |
| 2748× | rational.json-simplify-35 |
| 2224× | rational.json-simplify-53 |
| 1042× | exponential.json-simplify-26 |
| 1042× | rational.json-simplify-1 |
Useful iterations: 1 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 48 | 650 |
| 1 | 127 | 458 |
| 2 | 238 | 458 |
| 3 | 543 | 458 |
| 4 | 1939 | 458 |
| 5 | 3812 | 458 |
| 6 | 4406 | 458 |
| 7 | 4549 | 458 |
| 8 | 4656 | 458 |
| 9 | 4761 | 458 |
| 10 | 4864 | 458 |
| 11 | 5827 | 458 |
| 12 | 6438 | 458 |
| 13 | 6712 | 458 |
| 14 | 6712 | 458 |
| 15 | 6712 | 458 |
| 16 | 6815 | 458 |
| 17 | 6918 | 458 |
| 18 | 7487 | 458 |
| 19 | 7745 | 458 |
| 1× | node limit |
| Inputs |
|---|
(*.f64 z x) |
(+.f64 (*.f64 z x) (*.f64 y x)) |
(+.f64 (*.f64 z x) (*.f64 y x)) |
(+.f64 (*.f64 z x) (*.f64 y x)) |
(*.f64 y x) |
(+.f64 (*.f64 z x) (*.f64 y x)) |
(+.f64 (*.f64 z x) (*.f64 y x)) |
(+.f64 (*.f64 z x) (*.f64 y x)) |
(*.f64 y x) |
(+.f64 (*.f64 z x) (*.f64 y x)) |
(+.f64 (*.f64 z x) (*.f64 y x)) |
(+.f64 (*.f64 z x) (*.f64 y x)) |
(*.f64 y x) |
(+.f64 (*.f64 z x) (*.f64 y x)) |
(+.f64 (*.f64 z x) (*.f64 y x)) |
(+.f64 (*.f64 z x) (*.f64 y x)) |
(*.f64 z x) |
(+.f64 (*.f64 z x) (*.f64 y x)) |
(+.f64 (*.f64 z x) (*.f64 y x)) |
(+.f64 (*.f64 z x) (*.f64 y x)) |
(*.f64 z x) |
(+.f64 (*.f64 z x) (*.f64 y x)) |
(+.f64 (*.f64 z x) (*.f64 y x)) |
(+.f64 (*.f64 z x) (*.f64 y x)) |
(+.f64 (*.f64 (+.f64 y z) x) 0) |
(+.f64 0 (*.f64 (+.f64 y z) x)) |
(+.f64 (*.f64 (+.f64 y z) (*.f64 x 1/2)) (*.f64 (+.f64 y z) (*.f64 x 1/2))) |
(-.f64 (*.f64 (+.f64 y z) x) 0) |
(/.f64 (*.f64 (+.f64 y z) x) 1) |
(/.f64 (*.f64 (+.f64 y z) (+.f64 x x)) 2) |
(/.f64 (*.f64 (+.f64 y z) (*.f64 x 4)) 4) |
(/.f64 (*.f64 (+.f64 y z) (*.f64 x 8)) 8) |
(/.f64 (*.f64 2 (*.f64 (+.f64 y z) (*.f64 x 8))) 16) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y z) (*.f64 x 8)))) 32) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y z) (*.f64 x 8))))) 64) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y z) (*.f64 x 8)))))) 128) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y z) (*.f64 x 8))))))) 256) |
(pow.f64 (*.f64 (+.f64 y z) x) 1) |
| Outputs |
|---|
(*.f64 z x) |
(+.f64 (*.f64 z x) (*.f64 y x)) |
(+.f64 (*.f64 z x) (*.f64 x y)) |
(*.f64 x (+.f64 z y)) |
(+.f64 (*.f64 z x) (*.f64 y x)) |
(+.f64 (*.f64 z x) (*.f64 x y)) |
(*.f64 x (+.f64 z y)) |
(+.f64 (*.f64 z x) (*.f64 y x)) |
(+.f64 (*.f64 z x) (*.f64 x y)) |
(*.f64 x (+.f64 z y)) |
(*.f64 y x) |
(*.f64 x y) |
(+.f64 (*.f64 z x) (*.f64 y x)) |
(+.f64 (*.f64 z x) (*.f64 x y)) |
(*.f64 x (+.f64 z y)) |
(+.f64 (*.f64 z x) (*.f64 y x)) |
(+.f64 (*.f64 z x) (*.f64 x y)) |
(*.f64 x (+.f64 z y)) |
(+.f64 (*.f64 z x) (*.f64 y x)) |
(+.f64 (*.f64 z x) (*.f64 x y)) |
(*.f64 x (+.f64 z y)) |
(*.f64 y x) |
(*.f64 x y) |
(+.f64 (*.f64 z x) (*.f64 y x)) |
(+.f64 (*.f64 z x) (*.f64 x y)) |
(*.f64 x (+.f64 z y)) |
(+.f64 (*.f64 z x) (*.f64 y x)) |
(+.f64 (*.f64 z x) (*.f64 x y)) |
(*.f64 x (+.f64 z y)) |
(+.f64 (*.f64 z x) (*.f64 y x)) |
(+.f64 (*.f64 z x) (*.f64 x y)) |
(*.f64 x (+.f64 z y)) |
(*.f64 y x) |
(*.f64 x y) |
(+.f64 (*.f64 z x) (*.f64 y x)) |
(+.f64 (*.f64 z x) (*.f64 x y)) |
(*.f64 x (+.f64 z y)) |
(+.f64 (*.f64 z x) (*.f64 y x)) |
(+.f64 (*.f64 z x) (*.f64 x y)) |
(*.f64 x (+.f64 z y)) |
(+.f64 (*.f64 z x) (*.f64 y x)) |
(+.f64 (*.f64 z x) (*.f64 x y)) |
(*.f64 x (+.f64 z y)) |
(*.f64 z x) |
(+.f64 (*.f64 z x) (*.f64 y x)) |
(+.f64 (*.f64 z x) (*.f64 x y)) |
(*.f64 x (+.f64 z y)) |
(+.f64 (*.f64 z x) (*.f64 y x)) |
(+.f64 (*.f64 z x) (*.f64 x y)) |
(*.f64 x (+.f64 z y)) |
(+.f64 (*.f64 z x) (*.f64 y x)) |
(+.f64 (*.f64 z x) (*.f64 x y)) |
(*.f64 x (+.f64 z y)) |
(*.f64 z x) |
(+.f64 (*.f64 z x) (*.f64 y x)) |
(+.f64 (*.f64 z x) (*.f64 x y)) |
(*.f64 x (+.f64 z y)) |
(+.f64 (*.f64 z x) (*.f64 y x)) |
(+.f64 (*.f64 z x) (*.f64 x y)) |
(*.f64 x (+.f64 z y)) |
(+.f64 (*.f64 z x) (*.f64 y x)) |
(+.f64 (*.f64 z x) (*.f64 x y)) |
(*.f64 x (+.f64 z y)) |
(+.f64 (*.f64 (+.f64 y z) x) 0) |
(+.f64 (*.f64 z x) (*.f64 x y)) |
(*.f64 x (+.f64 z y)) |
(+.f64 0 (*.f64 (+.f64 y z) x)) |
(+.f64 (*.f64 z x) (*.f64 x y)) |
(*.f64 x (+.f64 z y)) |
(+.f64 (*.f64 (+.f64 y z) (*.f64 x 1/2)) (*.f64 (+.f64 y z) (*.f64 x 1/2))) |
(+.f64 (*.f64 z x) (*.f64 x y)) |
(*.f64 x (+.f64 z y)) |
(-.f64 (*.f64 (+.f64 y z) x) 0) |
(+.f64 (*.f64 z x) (*.f64 x y)) |
(*.f64 x (+.f64 z y)) |
(/.f64 (*.f64 (+.f64 y z) x) 1) |
(+.f64 (*.f64 z x) (*.f64 x y)) |
(*.f64 x (+.f64 z y)) |
(/.f64 (*.f64 (+.f64 y z) (+.f64 x x)) 2) |
(+.f64 (*.f64 z x) (*.f64 x y)) |
(*.f64 x (+.f64 z y)) |
(/.f64 (*.f64 (+.f64 y z) (*.f64 x 4)) 4) |
(+.f64 (*.f64 z x) (*.f64 x y)) |
(*.f64 x (+.f64 z y)) |
(/.f64 (*.f64 (+.f64 y z) (*.f64 x 8)) 8) |
(+.f64 (*.f64 z x) (*.f64 x y)) |
(*.f64 x (+.f64 z y)) |
(/.f64 (*.f64 2 (*.f64 (+.f64 y z) (*.f64 x 8))) 16) |
(+.f64 (*.f64 z x) (*.f64 x y)) |
(*.f64 x (+.f64 z y)) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y z) (*.f64 x 8)))) 32) |
(+.f64 (*.f64 z x) (*.f64 x y)) |
(*.f64 x (+.f64 z y)) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y z) (*.f64 x 8))))) 64) |
(+.f64 (*.f64 z x) (*.f64 x y)) |
(*.f64 x (+.f64 z y)) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y z) (*.f64 x 8)))))) 128) |
(+.f64 (*.f64 z x) (*.f64 x y)) |
(*.f64 x (+.f64 z y)) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y z) (*.f64 x 8))))))) 256) |
(+.f64 (*.f64 z x) (*.f64 x y)) |
(*.f64 x (+.f64 z y)) |
(pow.f64 (*.f64 (+.f64 y z) x) 1) |
(+.f64 (*.f64 z x) (*.f64 x y)) |
(*.f64 x (+.f64 z y)) |
Found 1 expressions with local error:
| New | Error | Program |
|---|---|---|
| ✓ | 0.0b | (+.f64 (*.f64 y x) (*.f64 z x)) |
Compiled 19 to 6 computations (68.4% saved)
9 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 0.0ms | x | @ | -inf | (+.f64 (*.f64 y x) (*.f64 z x)) |
| 0.0ms | x | @ | 0 | (+.f64 (*.f64 y x) (*.f64 z x)) |
| 0.0ms | x | @ | inf | (+.f64 (*.f64 y x) (*.f64 z x)) |
| 0.0ms | y | @ | 0 | (+.f64 (*.f64 y x) (*.f64 z x)) |
| 0.0ms | z | @ | -inf | (+.f64 (*.f64 y x) (*.f64 z x)) |
| 1× | batch-egg-rewrite |
| 2744× | rational.json-simplify-2 |
| 1304× | rational.json-1 |
| 1304× | rational.json-2 |
| 1304× | rational.json-3 |
| 1284× | exponential.json-3 |
Useful iterations: 1 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 8 | 19 |
| 1 | 53 | 13 |
| 2 | 117 | 13 |
| 3 | 255 | 13 |
| 4 | 474 | 13 |
| 5 | 1107 | 13 |
| 6 | 2766 | 13 |
| 7 | 4904 | 13 |
| 8 | 6168 | 13 |
| 9 | 7027 | 13 |
| 10 | 7027 | 13 |
| 1× | node limit |
| Inputs |
|---|
(+.f64 (*.f64 y x) (*.f64 z x)) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 x (+.f64 y z)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (+.f64 y z))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x (+.f64 y z)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 x (+.f64 y z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (+.f64 y z) (*.f64 x 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x (*.f64 2 (+.f64 y z))) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x x) (*.f64 (+.f64 y z) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x x) (*.f64 (*.f64 2 (+.f64 y z)) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 y z) x)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (*.f64 x (/.f64 (+.f64 y z) 4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (*.f64 (*.f64 2 (+.f64 y z)) (/.f64 x 8)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 y z) (*.f64 x 4)) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x 4) (/.f64 (+.f64 y z) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x 4) (*.f64 (+.f64 y z) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x 4) (*.f64 (*.f64 2 (+.f64 y z)) 1/8))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 8 (*.f64 (+.f64 y z) (/.f64 x 8)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 x (+.f64 y z)) 8) 1/8)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (+.f64 y z)) (*.f64 x 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x 8) (*.f64 (+.f64 y z) 1/8))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 x (*.f64 2 (+.f64 y z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x 1/2) (*.f64 2 (+.f64 y z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x 1/2) (+.f64 (+.f64 z z) (+.f64 y y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 y z) (*.f64 x 1/2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (*.f64 x 8)) (*.f64 (+.f64 y z) 1/16))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 y z) 4) (*.f64 x 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (+.f64 y z) (*.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 y z) 1/2) (+.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x (/.f64 (+.f64 y z) 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x 1/4) (*.f64 (+.f64 y z) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/8 (*.f64 (*.f64 x (+.f64 y z)) 8))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 y z) 4) (*.f64 x 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (+.f64 z z) (+.f64 y y)) (*.f64 x 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 y z) 1/4) (*.f64 x 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 y z) (/.f64 x 8)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 y z) 1/8) (*.f64 x 8))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 y z) 1/16) (*.f64 2 (*.f64 x 8)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 2 (+.f64 y z)) 1/4) (+.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 2 (+.f64 y z)) (/.f64 x 8)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 2 (+.f64 y z)) 1/8) (*.f64 x 4))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (+.f64 y z)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (*.f64 2 (+.f64 y z))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 y z) (*.f64 x 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 x (+.f64 y z)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 x (+.f64 y z)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (+.f64 y z)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (+.f64 y z)) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (+.f64 y z)) 8))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x (+.f64 y z)) 1))))) |
| 1× | egg-herbie |
| 2074× | rational.json-simplify-2 |
| 1592× | rational.json-simplify-35 |
| 1522× | rational.json-simplify-1 |
| 1498× | rational.json-simplify-53 |
| 1326× | rational.json-simplify-51 |
Useful iterations: 1 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 106 | 1524 |
| 1 | 244 | 1056 |
| 2 | 554 | 1056 |
| 3 | 1460 | 1056 |
| 4 | 3745 | 1056 |
| 5 | 5551 | 1056 |
| 6 | 6009 | 1056 |
| 7 | 6129 | 1056 |
| 8 | 6255 | 1056 |
| 9 | 6379 | 1056 |
| 10 | 6527 | 1056 |
| 1× | node limit |
| Inputs |
|---|
(*.f64 z x) |
(+.f64 (*.f64 z x) (*.f64 y x)) |
(+.f64 (*.f64 z x) (*.f64 y x)) |
(+.f64 (*.f64 z x) (*.f64 y x)) |
(*.f64 y x) |
(+.f64 (*.f64 z x) (*.f64 y x)) |
(+.f64 (*.f64 z x) (*.f64 y x)) |
(+.f64 (*.f64 z x) (*.f64 y x)) |
(*.f64 y x) |
(+.f64 (*.f64 z x) (*.f64 y x)) |
(+.f64 (*.f64 z x) (*.f64 y x)) |
(+.f64 (*.f64 z x) (*.f64 y x)) |
(*.f64 (+.f64 y z) x) |
(*.f64 (+.f64 y z) x) |
(*.f64 (+.f64 y z) x) |
(*.f64 (+.f64 y z) x) |
(*.f64 (+.f64 y z) x) |
(*.f64 (+.f64 y z) x) |
(*.f64 (+.f64 y z) x) |
(*.f64 (+.f64 y z) x) |
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 z) (*.f64 -1 y)) x)) |
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 z) (*.f64 -1 y)) x)) |
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 z) (*.f64 -1 y)) x)) |
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 z) (*.f64 -1 y)) x)) |
(*.f64 y x) |
(+.f64 (*.f64 z x) (*.f64 y x)) |
(+.f64 (*.f64 z x) (*.f64 y x)) |
(+.f64 (*.f64 z x) (*.f64 y x)) |
(*.f64 z x) |
(+.f64 (*.f64 z x) (*.f64 y x)) |
(+.f64 (*.f64 z x) (*.f64 y x)) |
(+.f64 (*.f64 z x) (*.f64 y x)) |
(*.f64 z x) |
(+.f64 (*.f64 z x) (*.f64 y x)) |
(+.f64 (*.f64 z x) (*.f64 y x)) |
(+.f64 (*.f64 z x) (*.f64 y x)) |
(-.f64 (*.f64 x (+.f64 y z)) 0) |
(*.f64 x (+.f64 y z)) |
(*.f64 (*.f64 x (+.f64 y z)) 1) |
(*.f64 1 (*.f64 x (+.f64 y z))) |
(*.f64 2 (*.f64 (+.f64 y z) (*.f64 x 1/2))) |
(*.f64 (*.f64 x (*.f64 2 (+.f64 y z))) 1/2) |
(*.f64 (+.f64 x x) (*.f64 (+.f64 y z) 1/2)) |
(*.f64 (+.f64 x x) (*.f64 (*.f64 2 (+.f64 y z)) 1/4)) |
(*.f64 (+.f64 y z) x) |
(*.f64 4 (*.f64 x (/.f64 (+.f64 y z) 4))) |
(*.f64 4 (*.f64 (*.f64 2 (+.f64 y z)) (/.f64 x 8))) |
(*.f64 (*.f64 (+.f64 y z) (*.f64 x 4)) 1/4) |
(*.f64 (*.f64 x 4) (/.f64 (+.f64 y z) 4)) |
(*.f64 (*.f64 x 4) (*.f64 (+.f64 y z) 1/4)) |
(*.f64 (*.f64 x 4) (*.f64 (*.f64 2 (+.f64 y z)) 1/8)) |
(*.f64 8 (*.f64 (+.f64 y z) (/.f64 x 8))) |
(*.f64 (*.f64 (*.f64 x (+.f64 y z)) 8) 1/8) |
(*.f64 (*.f64 2 (+.f64 y z)) (*.f64 x 1/2)) |
(*.f64 (*.f64 x 8) (*.f64 (+.f64 y z) 1/8)) |
(*.f64 1/2 (*.f64 x (*.f64 2 (+.f64 y z)))) |
(*.f64 (*.f64 x 1/2) (*.f64 2 (+.f64 y z))) |
(*.f64 (*.f64 x 1/2) (+.f64 (+.f64 z z) (+.f64 y y))) |
(*.f64 (*.f64 (+.f64 y z) (*.f64 x 1/2)) 2) |
(*.f64 (*.f64 2 (*.f64 x 8)) (*.f64 (+.f64 y z) 1/16)) |
(*.f64 (*.f64 (+.f64 y z) 4) (*.f64 x 1/4)) |
(*.f64 1/4 (*.f64 (+.f64 y z) (*.f64 x 4))) |
(*.f64 (*.f64 (+.f64 y z) 1/2) (+.f64 x x)) |
(*.f64 (*.f64 x (/.f64 (+.f64 y z) 4)) 4) |
(*.f64 (*.f64 x 1/4) (*.f64 (+.f64 y z) 4)) |
(*.f64 1/8 (*.f64 (*.f64 x (+.f64 y z)) 8)) |
(*.f64 (/.f64 (+.f64 y z) 4) (*.f64 x 4)) |
(*.f64 (+.f64 (+.f64 z z) (+.f64 y y)) (*.f64 x 1/2)) |
(*.f64 (*.f64 (+.f64 y z) 1/4) (*.f64 x 4)) |
(*.f64 (*.f64 (+.f64 y z) (/.f64 x 8)) 8) |
(*.f64 (*.f64 (+.f64 y z) 1/8) (*.f64 x 8)) |
(*.f64 (*.f64 (+.f64 y z) 1/16) (*.f64 2 (*.f64 x 8))) |
(*.f64 (*.f64 (*.f64 2 (+.f64 y z)) 1/4) (+.f64 x x)) |
(*.f64 (*.f64 (*.f64 2 (+.f64 y z)) (/.f64 x 8)) 4) |
(*.f64 (*.f64 (*.f64 2 (+.f64 y z)) 1/8) (*.f64 x 4)) |
(/.f64 (*.f64 x (+.f64 y z)) 1) |
(/.f64 (*.f64 x (*.f64 2 (+.f64 y z))) 2) |
(/.f64 (*.f64 (+.f64 y z) (*.f64 x 4)) 4) |
(/.f64 (*.f64 (*.f64 x (+.f64 y z)) 8) 8) |
(/.f64 (*.f64 2 (*.f64 (*.f64 x (+.f64 y z)) 8)) 16) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (+.f64 y z)) 8))) 32) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (+.f64 y z)) 8)))) 64) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (+.f64 y z)) 8))))) 128) |
(pow.f64 (*.f64 x (+.f64 y z)) 1) |
| Outputs |
|---|
(*.f64 z x) |
(+.f64 (*.f64 z x) (*.f64 y x)) |
(+.f64 (*.f64 z x) (*.f64 x y)) |
(*.f64 x (+.f64 z y)) |
(+.f64 (*.f64 z x) (*.f64 y x)) |
(+.f64 (*.f64 z x) (*.f64 x y)) |
(*.f64 x (+.f64 z y)) |
(+.f64 (*.f64 z x) (*.f64 y x)) |
(+.f64 (*.f64 z x) (*.f64 x y)) |
(*.f64 x (+.f64 z y)) |
(*.f64 y x) |
(*.f64 x y) |
(+.f64 (*.f64 z x) (*.f64 y x)) |
(+.f64 (*.f64 z x) (*.f64 x y)) |
(*.f64 x (+.f64 z y)) |
(+.f64 (*.f64 z x) (*.f64 y x)) |
(+.f64 (*.f64 z x) (*.f64 x y)) |
(*.f64 x (+.f64 z y)) |
(+.f64 (*.f64 z x) (*.f64 y x)) |
(+.f64 (*.f64 z x) (*.f64 x y)) |
(*.f64 x (+.f64 z y)) |
(*.f64 y x) |
(*.f64 x y) |
(+.f64 (*.f64 z x) (*.f64 y x)) |
(+.f64 (*.f64 z x) (*.f64 x y)) |
(*.f64 x (+.f64 z y)) |
(+.f64 (*.f64 z x) (*.f64 y x)) |
(+.f64 (*.f64 z x) (*.f64 x y)) |
(*.f64 x (+.f64 z y)) |
(+.f64 (*.f64 z x) (*.f64 y x)) |
(+.f64 (*.f64 z x) (*.f64 x y)) |
(*.f64 x (+.f64 z y)) |
(*.f64 (+.f64 y z) x) |
(+.f64 (*.f64 z x) (*.f64 x y)) |
(*.f64 x (+.f64 z y)) |
(*.f64 (+.f64 y z) x) |
(+.f64 (*.f64 z x) (*.f64 x y)) |
(*.f64 x (+.f64 z y)) |
(*.f64 (+.f64 y z) x) |
(+.f64 (*.f64 z x) (*.f64 x y)) |
(*.f64 x (+.f64 z y)) |
(*.f64 (+.f64 y z) x) |
(+.f64 (*.f64 z x) (*.f64 x y)) |
(*.f64 x (+.f64 z y)) |
(*.f64 (+.f64 y z) x) |
(+.f64 (*.f64 z x) (*.f64 x y)) |
(*.f64 x (+.f64 z y)) |
(*.f64 (+.f64 y z) x) |
(+.f64 (*.f64 z x) (*.f64 x y)) |
(*.f64 x (+.f64 z y)) |
(*.f64 (+.f64 y z) x) |
(+.f64 (*.f64 z x) (*.f64 x y)) |
(*.f64 x (+.f64 z y)) |
(*.f64 (+.f64 y z) x) |
(+.f64 (*.f64 z x) (*.f64 x y)) |
(*.f64 x (+.f64 z y)) |
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 z) (*.f64 -1 y)) x)) |
(+.f64 (*.f64 z x) (*.f64 x y)) |
(*.f64 x (+.f64 z y)) |
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 z) (*.f64 -1 y)) x)) |
(+.f64 (*.f64 z x) (*.f64 x y)) |
(*.f64 x (+.f64 z y)) |
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 z) (*.f64 -1 y)) x)) |
(+.f64 (*.f64 z x) (*.f64 x y)) |
(*.f64 x (+.f64 z y)) |
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 z) (*.f64 -1 y)) x)) |
(+.f64 (*.f64 z x) (*.f64 x y)) |
(*.f64 x (+.f64 z y)) |
(*.f64 y x) |
(*.f64 x y) |
(+.f64 (*.f64 z x) (*.f64 y x)) |
(+.f64 (*.f64 z x) (*.f64 x y)) |
(*.f64 x (+.f64 z y)) |
(+.f64 (*.f64 z x) (*.f64 y x)) |
(+.f64 (*.f64 z x) (*.f64 x y)) |
(*.f64 x (+.f64 z y)) |
(+.f64 (*.f64 z x) (*.f64 y x)) |
(+.f64 (*.f64 z x) (*.f64 x y)) |
(*.f64 x (+.f64 z y)) |
(*.f64 z x) |
(+.f64 (*.f64 z x) (*.f64 y x)) |
(+.f64 (*.f64 z x) (*.f64 x y)) |
(*.f64 x (+.f64 z y)) |
(+.f64 (*.f64 z x) (*.f64 y x)) |
(+.f64 (*.f64 z x) (*.f64 x y)) |
(*.f64 x (+.f64 z y)) |
(+.f64 (*.f64 z x) (*.f64 y x)) |
(+.f64 (*.f64 z x) (*.f64 x y)) |
(*.f64 x (+.f64 z y)) |
(*.f64 z x) |
(+.f64 (*.f64 z x) (*.f64 y x)) |
(+.f64 (*.f64 z x) (*.f64 x y)) |
(*.f64 x (+.f64 z y)) |
(+.f64 (*.f64 z x) (*.f64 y x)) |
(+.f64 (*.f64 z x) (*.f64 x y)) |
(*.f64 x (+.f64 z y)) |
(+.f64 (*.f64 z x) (*.f64 y x)) |
(+.f64 (*.f64 z x) (*.f64 x y)) |
(*.f64 x (+.f64 z y)) |
(-.f64 (*.f64 x (+.f64 y z)) 0) |
(+.f64 (*.f64 z x) (*.f64 x y)) |
(*.f64 x (+.f64 z y)) |
(*.f64 x (+.f64 y z)) |
(+.f64 (*.f64 z x) (*.f64 x y)) |
(*.f64 x (+.f64 z y)) |
(*.f64 (*.f64 x (+.f64 y z)) 1) |
(+.f64 (*.f64 z x) (*.f64 x y)) |
(*.f64 x (+.f64 z y)) |
(*.f64 1 (*.f64 x (+.f64 y z))) |
(+.f64 (*.f64 z x) (*.f64 x y)) |
(*.f64 x (+.f64 z y)) |
(*.f64 2 (*.f64 (+.f64 y z) (*.f64 x 1/2))) |
(+.f64 (*.f64 z x) (*.f64 x y)) |
(*.f64 x (+.f64 z y)) |
(*.f64 (*.f64 x (*.f64 2 (+.f64 y z))) 1/2) |
(+.f64 (*.f64 z x) (*.f64 x y)) |
(*.f64 x (+.f64 z y)) |
(*.f64 (+.f64 x x) (*.f64 (+.f64 y z) 1/2)) |
(+.f64 (*.f64 z x) (*.f64 x y)) |
(*.f64 x (+.f64 z y)) |
(*.f64 (+.f64 x x) (*.f64 (*.f64 2 (+.f64 y z)) 1/4)) |
(+.f64 (*.f64 z x) (*.f64 x y)) |
(*.f64 x (+.f64 z y)) |
(*.f64 (+.f64 y z) x) |
(+.f64 (*.f64 z x) (*.f64 x y)) |
(*.f64 x (+.f64 z y)) |
(*.f64 4 (*.f64 x (/.f64 (+.f64 y z) 4))) |
(+.f64 (*.f64 z x) (*.f64 x y)) |
(*.f64 x (+.f64 z y)) |
(*.f64 4 (*.f64 (*.f64 2 (+.f64 y z)) (/.f64 x 8))) |
(+.f64 (*.f64 z x) (*.f64 x y)) |
(*.f64 x (+.f64 z y)) |
(*.f64 (*.f64 (+.f64 y z) (*.f64 x 4)) 1/4) |
(+.f64 (*.f64 z x) (*.f64 x y)) |
(*.f64 x (+.f64 z y)) |
(*.f64 (*.f64 x 4) (/.f64 (+.f64 y z) 4)) |
(+.f64 (*.f64 z x) (*.f64 x y)) |
(*.f64 x (+.f64 z y)) |
(*.f64 (*.f64 x 4) (*.f64 (+.f64 y z) 1/4)) |
(+.f64 (*.f64 z x) (*.f64 x y)) |
(*.f64 x (+.f64 z y)) |
(*.f64 (*.f64 x 4) (*.f64 (*.f64 2 (+.f64 y z)) 1/8)) |
(+.f64 (*.f64 z x) (*.f64 x y)) |
(*.f64 x (+.f64 z y)) |
(*.f64 8 (*.f64 (+.f64 y z) (/.f64 x 8))) |
(+.f64 (*.f64 z x) (*.f64 x y)) |
(*.f64 x (+.f64 z y)) |
(*.f64 (*.f64 (*.f64 x (+.f64 y z)) 8) 1/8) |
(+.f64 (*.f64 z x) (*.f64 x y)) |
(*.f64 x (+.f64 z y)) |
(*.f64 (*.f64 2 (+.f64 y z)) (*.f64 x 1/2)) |
(+.f64 (*.f64 z x) (*.f64 x y)) |
(*.f64 x (+.f64 z y)) |
(*.f64 (*.f64 x 8) (*.f64 (+.f64 y z) 1/8)) |
(+.f64 (*.f64 z x) (*.f64 x y)) |
(*.f64 x (+.f64 z y)) |
(*.f64 1/2 (*.f64 x (*.f64 2 (+.f64 y z)))) |
(+.f64 (*.f64 z x) (*.f64 x y)) |
(*.f64 x (+.f64 z y)) |
(*.f64 (*.f64 x 1/2) (*.f64 2 (+.f64 y z))) |
(+.f64 (*.f64 z x) (*.f64 x y)) |
(*.f64 x (+.f64 z y)) |
(*.f64 (*.f64 x 1/2) (+.f64 (+.f64 z z) (+.f64 y y))) |
(+.f64 (*.f64 z x) (*.f64 x y)) |
(*.f64 x (+.f64 z y)) |
(*.f64 (*.f64 (+.f64 y z) (*.f64 x 1/2)) 2) |
(+.f64 (*.f64 z x) (*.f64 x y)) |
(*.f64 x (+.f64 z y)) |
(*.f64 (*.f64 2 (*.f64 x 8)) (*.f64 (+.f64 y z) 1/16)) |
(+.f64 (*.f64 z x) (*.f64 x y)) |
(*.f64 x (+.f64 z y)) |
(*.f64 (*.f64 (+.f64 y z) 4) (*.f64 x 1/4)) |
(+.f64 (*.f64 z x) (*.f64 x y)) |
(*.f64 x (+.f64 z y)) |
(*.f64 1/4 (*.f64 (+.f64 y z) (*.f64 x 4))) |
(+.f64 (*.f64 z x) (*.f64 x y)) |
(*.f64 x (+.f64 z y)) |
(*.f64 (*.f64 (+.f64 y z) 1/2) (+.f64 x x)) |
(+.f64 (*.f64 z x) (*.f64 x y)) |
(*.f64 x (+.f64 z y)) |
(*.f64 (*.f64 x (/.f64 (+.f64 y z) 4)) 4) |
(+.f64 (*.f64 z x) (*.f64 x y)) |
(*.f64 x (+.f64 z y)) |
(*.f64 (*.f64 x 1/4) (*.f64 (+.f64 y z) 4)) |
(+.f64 (*.f64 z x) (*.f64 x y)) |
(*.f64 x (+.f64 z y)) |
(*.f64 1/8 (*.f64 (*.f64 x (+.f64 y z)) 8)) |
(+.f64 (*.f64 z x) (*.f64 x y)) |
(*.f64 x (+.f64 z y)) |
(*.f64 (/.f64 (+.f64 y z) 4) (*.f64 x 4)) |
(+.f64 (*.f64 z x) (*.f64 x y)) |
(*.f64 x (+.f64 z y)) |
(*.f64 (+.f64 (+.f64 z z) (+.f64 y y)) (*.f64 x 1/2)) |
(+.f64 (*.f64 z x) (*.f64 x y)) |
(*.f64 x (+.f64 z y)) |
(*.f64 (*.f64 (+.f64 y z) 1/4) (*.f64 x 4)) |
(+.f64 (*.f64 z x) (*.f64 x y)) |
(*.f64 x (+.f64 z y)) |
(*.f64 (*.f64 (+.f64 y z) (/.f64 x 8)) 8) |
(+.f64 (*.f64 z x) (*.f64 x y)) |
(*.f64 x (+.f64 z y)) |
(*.f64 (*.f64 (+.f64 y z) 1/8) (*.f64 x 8)) |
(+.f64 (*.f64 z x) (*.f64 x y)) |
(*.f64 x (+.f64 z y)) |
(*.f64 (*.f64 (+.f64 y z) 1/16) (*.f64 2 (*.f64 x 8))) |
(+.f64 (*.f64 z x) (*.f64 x y)) |
(*.f64 x (+.f64 z y)) |
(*.f64 (*.f64 (*.f64 2 (+.f64 y z)) 1/4) (+.f64 x x)) |
(+.f64 (*.f64 z x) (*.f64 x y)) |
(*.f64 x (+.f64 z y)) |
(*.f64 (*.f64 (*.f64 2 (+.f64 y z)) (/.f64 x 8)) 4) |
(+.f64 (*.f64 z x) (*.f64 x y)) |
(*.f64 x (+.f64 z y)) |
(*.f64 (*.f64 (*.f64 2 (+.f64 y z)) 1/8) (*.f64 x 4)) |
(+.f64 (*.f64 z x) (*.f64 x y)) |
(*.f64 x (+.f64 z y)) |
(/.f64 (*.f64 x (+.f64 y z)) 1) |
(+.f64 (*.f64 z x) (*.f64 x y)) |
(*.f64 x (+.f64 z y)) |
(/.f64 (*.f64 x (*.f64 2 (+.f64 y z))) 2) |
(+.f64 (*.f64 z x) (*.f64 x y)) |
(*.f64 x (+.f64 z y)) |
(/.f64 (*.f64 (+.f64 y z) (*.f64 x 4)) 4) |
(+.f64 (*.f64 z x) (*.f64 x y)) |
(*.f64 x (+.f64 z y)) |
(/.f64 (*.f64 (*.f64 x (+.f64 y z)) 8) 8) |
(+.f64 (*.f64 z x) (*.f64 x y)) |
(*.f64 x (+.f64 z y)) |
(/.f64 (*.f64 2 (*.f64 (*.f64 x (+.f64 y z)) 8)) 16) |
(+.f64 (*.f64 z x) (*.f64 x y)) |
(*.f64 x (+.f64 z y)) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (+.f64 y z)) 8))) 32) |
(+.f64 (*.f64 z x) (*.f64 x y)) |
(*.f64 x (+.f64 z y)) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (+.f64 y z)) 8)))) 64) |
(+.f64 (*.f64 z x) (*.f64 x y)) |
(*.f64 x (+.f64 z y)) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (+.f64 y z)) 8))))) 128) |
(+.f64 (*.f64 z x) (*.f64 x y)) |
(*.f64 x (+.f64 z y)) |
(pow.f64 (*.f64 x (+.f64 y z)) 1) |
(+.f64 (*.f64 z x) (*.f64 x y)) |
(*.f64 x (+.f64 z y)) |
Compiled 676 to 342 computations (49.4% saved)
8 alts after pruning (0 fresh and 8 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 75 | 0 | 75 |
| Fresh | 0 | 0 | 0 |
| Picked | 0 | 1 | 1 |
| Done | 0 | 7 | 7 |
| Total | 75 | 8 | 83 |
| Status | Error | Program |
|---|---|---|
| ✓ | 27.9b | (+.f64 (*.f64 y x) (*.f64 z x)) |
| ✓ | 11.5b | (+.f64 (*.f64 y x) (*.f64 z 5)) |
| ✓ | 0.1b | (+.f64 (*.f64 x (+.f64 y z)) (*.f64 z 5)) |
| ✓ | 27.9b | (*.f64 (+.f64 y z) x) |
| ✓ | 24.2b | (*.f64 z (-.f64 x -5)) |
| ✓ | 51.5b | (*.f64 z x) |
| ✓ | 35.1b | (*.f64 z 5) |
| ✓ | 38.9b | (*.f64 y x) |
Compiled 66 to 45 computations (31.8% saved)
| Inputs |
|---|
(*.f64 y x) |
(*.f64 z 5) |
(*.f64 z x) |
(*.f64 z (-.f64 x -5)) |
(*.f64 (+.f64 y z) x) |
(+.f64 (*.f64 y x) (*.f64 z 5)) |
(+.f64 (*.f64 y x) (*.f64 z x)) |
(+.f64 (*.f64 x (+.f64 y z)) (*.f64 z 5)) |
(+.f64 (*.f64 y x) (*.f64 z (-.f64 x -5))) |
| Outputs |
|---|
(+.f64 (*.f64 x (+.f64 y z)) (*.f64 z 5)) |
4 calls:
| 6.0ms | z |
| 6.0ms | x |
| 6.0ms | (+.f64 (*.f64 x (+.f64 y z)) (*.f64 z 5)) |
| 6.0ms | y |
| Error | Segments | Branch |
|---|---|---|
| 0.1b | 1 | x |
| 0.1b | 1 | y |
| 0.1b | 1 | z |
| 0.1b | 1 | (+.f64 (*.f64 x (+.f64 y z)) (*.f64 z 5)) |
Compiled 78 to 41 computations (47.4% saved)
| Inputs |
|---|
(*.f64 y x) |
(*.f64 z 5) |
(*.f64 z x) |
(*.f64 z (-.f64 x -5)) |
(*.f64 (+.f64 y z) x) |
(+.f64 (*.f64 y x) (*.f64 z 5)) |
(+.f64 (*.f64 y x) (*.f64 z x)) |
| Outputs |
|---|
(*.f64 (+.f64 y z) x) |
(+.f64 (*.f64 y x) (*.f64 z 5)) |
(+.f64 (*.f64 y x) (*.f64 z x)) |
3 calls:
| 14.0ms | y |
| 14.0ms | z |
| 14.0ms | x |
| Error | Segments | Branch |
|---|---|---|
| 0.8b | 3 | x |
| 7.6b | 3 | y |
| 6.0b | 3 | z |
Compiled 48 to 25 computations (47.9% saved)
| 2× | binary-search |
| Time | Left | Right |
|---|---|---|
| 14.0ms | 3.4592508225042433e-10 | 0.26674776029868247 |
| 7.0ms | -393950.8824775174 | -242379.28061955154 |
| 18.0ms | 208× | body | 256 | valid |
Compiled 296 to 204 computations (31.1% saved)
| Inputs |
|---|
(*.f64 y x) |
(*.f64 z 5) |
(*.f64 z x) |
(*.f64 z (-.f64 x -5)) |
(*.f64 (+.f64 y z) x) |
(+.f64 (*.f64 y x) (*.f64 z 5)) |
| Outputs |
|---|
(*.f64 (+.f64 y z) x) |
(+.f64 (*.f64 y x) (*.f64 z 5)) |
(*.f64 (+.f64 y z) x) |
3 calls:
| 14.0ms | z |
| 13.0ms | y |
| 13.0ms | x |
| Error | Segments | Branch |
|---|---|---|
| 0.8b | 3 | x |
| 7.6b | 3 | y |
| 6.0b | 3 | z |
Compiled 41 to 24 computations (41.5% saved)
| 2× | binary-search |
| Time | Left | Right |
|---|---|---|
| 15.0ms | 3.4592508225042433e-10 | 0.26674776029868247 |
| 7.0ms | -393950.8824775174 | -242379.28061955154 |
| 19.0ms | 208× | body | 256 | valid |
Compiled 278 to 195 computations (29.9% saved)
| Inputs |
|---|
(*.f64 y x) |
(*.f64 z 5) |
(*.f64 z x) |
(*.f64 z (-.f64 x -5)) |
(*.f64 (+.f64 y z) x) |
| Outputs |
|---|
(*.f64 (+.f64 y z) x) |
(*.f64 z 5) |
(*.f64 y x) |
(*.f64 z 5) |
(*.f64 (+.f64 y z) x) |
3 calls:
| 27.0ms | z |
| 19.0ms | x |
| 16.0ms | y |
| Error | Segments | Branch |
|---|---|---|
| 10.1b | 5 | x |
| 15.5b | 3 | y |
| 10.8b | 7 | z |
Compiled 34 to 21 computations (38.2% saved)
| 4× | binary-search |
| Time | Left | Right |
|---|---|---|
| 14.0ms | 8.729411848522688e-57 | 9.801851849305911e-51 |
| 15.0ms | -1.2118585333985279e-120 | -8.861185167507665e-127 |
| 108.0ms | -4.770255963605967e-81 | -1.618992396580103e-83 |
| 15.0ms | -4.260849081416492e-12 | -2.083503980684127e-19 |
| 143.0ms | 543× | body | 256 | valid |
| 3.0ms | 17× | body | 512 | valid |
Compiled 544 to 416 computations (23.5% saved)
| Inputs |
|---|
(*.f64 y x) |
(*.f64 z 5) |
(*.f64 z x) |
(*.f64 z (-.f64 x -5)) |
| Outputs |
|---|
(*.f64 z (-.f64 x -5)) |
(*.f64 y x) |
(*.f64 z (-.f64 x -5)) |
(*.f64 y x) |
(*.f64 z (-.f64 x -5)) |
3 calls:
| 108.0ms | z |
| 72.0ms | x |
| 26.0ms | y |
| Error | Segments | Branch |
|---|---|---|
| 19.0b | 6 | x |
| 15.4b | 5 | y |
| 15.1b | 5 | z |
Compiled 29 to 19 computations (34.5% saved)
| 4× | binary-search |
| Time | Left | Right |
|---|---|---|
| 11.0ms | 2.2141695903783026e-92 | 8.569599511479443e-91 |
| 105.0ms | -3.420968789030062e-217 | -2.8777631600077443e-221 |
| 16.0ms | -4.19111279775114e-116 | -5.960955500526149e-127 |
| 102.0ms | -9.624815027736249e-69 | -1.1071399074237863e-75 |
| 133.0ms | 523× | body | 256 | valid |
| 2.0ms | 14× | body | 512 | valid |
| 1.0ms | 7× | body | 1024 | valid |
Compiled 562 to 421 computations (25.1% saved)
| Inputs |
|---|
(*.f64 y x) |
(*.f64 z 5) |
(*.f64 z x) |
| Outputs |
|---|
(*.f64 y x) |
(*.f64 z x) |
(*.f64 y x) |
(*.f64 z 5) |
(*.f64 y x) |
(*.f64 z 5) |
(*.f64 y x) |
3 calls:
| 23.0ms | z |
| 21.0ms | x |
| 19.0ms | y |
| Error | Segments | Branch |
|---|---|---|
| 19.8b | 7 | x |
| 25.4b | 5 | y |
| 22.0b | 7 | z |
Compiled 24 to 16 computations (33.3% saved)
| 6× | binary-search |
| Time | Left | Right |
|---|---|---|
| 14.0ms | 8.729411848522688e-57 | 9.801851849305911e-51 |
| 18.0ms | -1.2118585333985279e-120 | -8.861185167507665e-127 |
| 15.0ms | -4.770255963605967e-81 | -1.618992396580103e-83 |
| 15.0ms | -4.260849081416492e-12 | -2.083503980684127e-19 |
| 16.0ms | -9.899213346760613e+36 | -6.690557247165059e+30 |
| 14.0ms | -7.881213927063903e+71 | -2.118916786275179e+67 |
| 78.0ms | 813× | body | 256 | valid |
| 3.0ms | 19× | body | 512 | valid |
| 2.0ms | 22× | body | 256 | infinite |
Compiled 746 to 568 computations (23.9% saved)
Total -41.0b remaining (-195%)
Threshold costs -41.0b (-195%)
| Inputs |
|---|
(*.f64 y x) |
(*.f64 z 5) |
| Outputs |
|---|
(*.f64 y x) |
(*.f64 z 5) |
(*.f64 y x) |
(*.f64 z 5) |
(*.f64 y x) |
3 calls:
| 19.0ms | z |
| 14.0ms | x |
| 13.0ms | y |
| Error | Segments | Branch |
|---|---|---|
| 21.0b | 5 | x |
| 26.5b | 3 | y |
| 22.0b | 7 | z |
Compiled 21 to 15 computations (28.6% saved)
| 4× | binary-search |
| Time | Left | Right |
|---|---|---|
| 15.0ms | 8.729411848522688e-57 | 9.801851849305911e-51 |
| 16.0ms | -1.2118585333985279e-120 | -8.861185167507665e-127 |
| 14.0ms | -4.770255963605967e-81 | -1.618992396580103e-83 |
| 14.0ms | -4.260849081416492e-12 | -2.083503980684127e-19 |
| 50.0ms | 540× | body | 256 | valid |
| 3.0ms | 20× | body | 512 | valid |
Compiled 508 to 398 computations (21.7% saved)
| 1× | egg-herbie |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 83 | 510 |
| 1× | done |
| 1× | saturated |
| Inputs |
|---|
(+.f64 (*.f64 x (+.f64 y z)) (*.f64 z 5)) |
(if (<=.f64 x -245000) (*.f64 (+.f64 y z) x) (if (<=.f64 x 1170935903116329/4503599627370496) (+.f64 (*.f64 y x) (*.f64 z 5)) (+.f64 (*.f64 y x) (*.f64 z x)))) |
(if (<=.f64 x -245000) (*.f64 (+.f64 y z) x) (if (<=.f64 x 1170935903116329/4503599627370496) (+.f64 (*.f64 y x) (*.f64 z 5)) (*.f64 (+.f64 y z) x))) |
(if (<=.f64 x -6591783121186793/10141204801825835211973625643008) (*.f64 (+.f64 y z) x) (if (<=.f64 x -5058017301060715/273406340597876490546562778389702670669146178861651554553221325801244124899921990402939147127881728) (*.f64 z 5) (if (<=.f64 x -3488825876618913/2907354897182427562197295231552018137414565442749272241125960796722557152453591693304764202855054262243050086425064711734138406514458624) (*.f64 y x) (if (<=.f64 x 2948744166719601/1684996666696914987166688442938726917102321526408785780068975640576) (*.f64 z 5) (*.f64 (+.f64 y z) x))))) |
(if (<=.f64 z -7708510164351693/497323236409786642155382248146820840100456150797347717440463976893159497012533375533056) (*.f64 z (-.f64 x -5)) (if (<=.f64 z -2743724311801165/762145642166990290864647761179972242614403843424065222377723867096038022172794340849684107193235344521442121855812163792833978437326241529856) (*.f64 y x) (if (<=.f64 z -8445698422115857/24840289476811342962383671815400040884110176273867145778224832608416815242982030181294054541258343647207803691154097171298745280705837030263108596400658898227271279616333598488804244570105575117204207987099463500014285549661056925696) (*.f64 z (-.f64 x -5)) (if (<=.f64 z 7339195571168229/293567822846729153486185074598667128421960318613539983838411371441526128139326055432962374798096087878991872) (*.f64 y x) (*.f64 z (-.f64 x -5)))))) |
(if (<=.f64 x -99999999999999995280522225138166806691251291352861698530421623488512) (*.f64 y x) (if (<=.f64 x -9499999999999999738913268399626780672) (*.f64 z x) (if (<=.f64 x -1298074214633707/649037107316853453566312041152512) (*.f64 y x) (if (<=.f64 x -4429182717685599/273406340597876490546562778389702670669146178861651554553221325801244124899921990402939147127881728) (*.f64 z 5) (if (<=.f64 x -105391615022863/90854840536950861318665475986000566794205170085914757535186274897579911014174740415773881339220445695095315200783272241691825203576832) (*.f64 y x) (if (<=.f64 x 3706992666733213/421249166674228746791672110734681729275580381602196445017243910144) (*.f64 z 5) (*.f64 y x))))))) |
(if (<=.f64 x -4436777100798803/2535301200456458802993406410752) (*.f64 y x) (if (<=.f64 x -4784610960462839/17087896287367280659160173649356416916821636178853222159576332862577757806245124400183696695492608) (*.f64 z 5) (if (<=.f64 x -1380993576161653/1453677448591213781098647615776009068707282721374636120562980398361278576226795846652382101427527131121525043212532355867069203257229312) (*.f64 y x) (if (<=.f64 x 4001867083405173/421249166674228746791672110734681729275580381602196445017243910144) (*.f64 z 5) (*.f64 y x))))) |
(*.f64 y x) |
| Outputs |
|---|
(+.f64 (*.f64 x (+.f64 y z)) (*.f64 z 5)) |
(if (<=.f64 x -245000) (*.f64 (+.f64 y z) x) (if (<=.f64 x 1170935903116329/4503599627370496) (+.f64 (*.f64 y x) (*.f64 z 5)) (+.f64 (*.f64 y x) (*.f64 z x)))) |
(if (<=.f64 x -245000) (*.f64 (+.f64 y z) x) (if (<=.f64 x 1170935903116329/4503599627370496) (+.f64 (*.f64 y x) (*.f64 z 5)) (*.f64 (+.f64 y z) x))) |
(if (<=.f64 x -6591783121186793/10141204801825835211973625643008) (*.f64 (+.f64 y z) x) (if (<=.f64 x -5058017301060715/273406340597876490546562778389702670669146178861651554553221325801244124899921990402939147127881728) (*.f64 z 5) (if (<=.f64 x -3488825876618913/2907354897182427562197295231552018137414565442749272241125960796722557152453591693304764202855054262243050086425064711734138406514458624) (*.f64 y x) (if (<=.f64 x 2948744166719601/1684996666696914987166688442938726917102321526408785780068975640576) (*.f64 z 5) (*.f64 (+.f64 y z) x))))) |
(if (<=.f64 z -7708510164351693/497323236409786642155382248146820840100456150797347717440463976893159497012533375533056) (*.f64 z (-.f64 x -5)) (if (<=.f64 z -2743724311801165/762145642166990290864647761179972242614403843424065222377723867096038022172794340849684107193235344521442121855812163792833978437326241529856) (*.f64 y x) (if (<=.f64 z -8445698422115857/24840289476811342962383671815400040884110176273867145778224832608416815242982030181294054541258343647207803691154097171298745280705837030263108596400658898227271279616333598488804244570105575117204207987099463500014285549661056925696) (*.f64 z (-.f64 x -5)) (if (<=.f64 z 7339195571168229/293567822846729153486185074598667128421960318613539983838411371441526128139326055432962374798096087878991872) (*.f64 y x) (*.f64 z (-.f64 x -5)))))) |
(if (<=.f64 x -99999999999999995280522225138166806691251291352861698530421623488512) (*.f64 y x) (if (<=.f64 x -9499999999999999738913268399626780672) (*.f64 z x) (if (<=.f64 x -1298074214633707/649037107316853453566312041152512) (*.f64 y x) (if (<=.f64 x -4429182717685599/273406340597876490546562778389702670669146178861651554553221325801244124899921990402939147127881728) (*.f64 z 5) (if (<=.f64 x -105391615022863/90854840536950861318665475986000566794205170085914757535186274897579911014174740415773881339220445695095315200783272241691825203576832) (*.f64 y x) (if (<=.f64 x 3706992666733213/421249166674228746791672110734681729275580381602196445017243910144) (*.f64 z 5) (*.f64 y x))))))) |
(if (<=.f64 x -4436777100798803/2535301200456458802993406410752) (*.f64 y x) (if (<=.f64 x -4784610960462839/17087896287367280659160173649356416916821636178853222159576332862577757806245124400183696695492608) (*.f64 z 5) (if (<=.f64 x -1380993576161653/1453677448591213781098647615776009068707282721374636120562980398361278576226795846652382101427527131121525043212532355867069203257229312) (*.f64 y x) (if (<=.f64 x 4001867083405173/421249166674228746791672110734681729275580381602196445017243910144) (*.f64 z 5) (*.f64 y x))))) |
(*.f64 y x) |
Compiled 236 to 138 computations (41.5% saved)
Compiled 215 to 105 computations (51.2% saved)
Loading profile data...