Time bar (total: 16.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 |
| 3.1% | 3.1% | 96.7% | 0.1% | 0% | 0% | 0% | 7 |
| 4.7% | 4.7% | 95.2% | 0.1% | 0% | 0% | 0% | 8 |
| 7.4% | 7% | 88.2% | 0.1% | 0% | 4.7% | 0% | 9 |
| 12.2% | 10.5% | 75.9% | 0.1% | 0% | 13.5% | 0% | 10 |
| 16.2% | 13.7% | 70.7% | 0.1% | 0% | 15.5% | 0% | 11 |
| 23.5% | 18.2% | 59.3% | 0.1% | 0% | 22.3% | 0% | 12 |
Compiled 18 to 12 computations (33.3% saved)
| 2.0s | 8256× | body | 256 | valid |
| 979.0ms | 4626× | body | 256 | invalid |
| 2× | egg-herbie |
| 20× | rational.json-simplify-2 |
| 20× | rational.json-simplify-1 |
| 12× | rational.json-simplify-51 |
| 4× | rational.json-simplify-41 |
| 2× | swap-x-y |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 29 | 164 |
| 1 | 45 | 140 |
| 2 | 57 | 140 |
| 3 | 60 | 140 |
| 0 | 3 | 3 |
| 1 | 3 | 3 |
| 1× | unsound |
| 1× | saturated |
| Inputs |
|---|
0 |
1 |
2 |
| Outputs |
|---|
0 |
1 |
0 |
2 |
0 |
| Inputs |
|---|
(*.f64 2 (sqrt.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 x z)) (*.f64 y z)))) |
(*.f64 2 (sqrt.f64 (+.f64 (+.f64 (*.f64 y x) (*.f64 y z)) (*.f64 x z)))) |
(*.f64 2 (sqrt.f64 (+.f64 (+.f64 (*.f64 z y) (*.f64 z x)) (*.f64 y x)))) |
(*.f64 2 (sqrt.f64 (+.f64 (+.f64 (*.f64 x z) (*.f64 x y)) (*.f64 z y)))) |
| Outputs |
|---|
(*.f64 2 (sqrt.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 x z)) (*.f64 y z)))) |
(*.f64 2 (sqrt.f64 (+.f64 (*.f64 y z) (+.f64 (*.f64 x z) (*.f64 x y))))) |
(*.f64 2 (sqrt.f64 (+.f64 (*.f64 x z) (*.f64 y (+.f64 x z))))) |
(*.f64 2 (sqrt.f64 (+.f64 (+.f64 (*.f64 y x) (*.f64 y z)) (*.f64 x z)))) |
(*.f64 2 (sqrt.f64 (+.f64 (*.f64 y z) (+.f64 (*.f64 x z) (*.f64 x y))))) |
(*.f64 2 (sqrt.f64 (+.f64 (*.f64 x z) (*.f64 y (+.f64 x z))))) |
(*.f64 2 (sqrt.f64 (+.f64 (+.f64 (*.f64 z y) (*.f64 z x)) (*.f64 y x)))) |
(*.f64 2 (sqrt.f64 (+.f64 (*.f64 y z) (+.f64 (*.f64 x z) (*.f64 x y))))) |
(*.f64 2 (sqrt.f64 (+.f64 (*.f64 x z) (*.f64 y (+.f64 x z))))) |
(*.f64 2 (sqrt.f64 (+.f64 (+.f64 (*.f64 x z) (*.f64 x y)) (*.f64 z y)))) |
(*.f64 2 (sqrt.f64 (+.f64 (*.f64 y z) (+.f64 (*.f64 x z) (*.f64 x y))))) |
(*.f64 2 (sqrt.f64 (+.f64 (*.f64 x z) (*.f64 y (+.f64 x z))))) |
(sort x y z)
Compiled 20 to 14 computations (30% saved)
| 1× | egg-herbie |
| 18× | rational.json-simplify-1 |
| 14× | rational.json-simplify-2 |
| 8× | rational.json-simplify-51 |
| 4× | rational.json-simplify-41 |
Useful iterations: 1 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 14 | 41 |
| 1 | 20 | 35 |
| 2 | 28 | 35 |
| 3 | 37 | 35 |
| 4 | 41 | 35 |
| 1× | saturated |
| Inputs |
|---|
(*.f64 2 (sqrt.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 x z)) (*.f64 y z)))) |
| Outputs |
|---|
(*.f64 2 (sqrt.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 x z)) (*.f64 y z)))) |
(*.f64 2 (sqrt.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 y z)))) |
(*.f64 2 (sqrt.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 y x))))) |
(*.f64 2 (sqrt.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y))))) |
Compiled 53 to 29 computations (45.3% saved)
2 alts after pruning (2 fresh and 0 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 2 | 2 | 4 |
| Fresh | 1 | 0 | 1 |
| Picked | 0 | 0 | 0 |
| Done | 0 | 0 | 0 |
| Total | 3 | 2 | 5 |
| Status | Error | Program |
|---|---|---|
| ▶ | 17.5b | (*.f64 2 (sqrt.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 y z)))) |
| ▶ | 17.5b | (*.f64 2 (sqrt.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 y x))))) |
Compiled 30 to 20 computations (33.3% saved)
Found 3 expressions with local error:
| New | Error | Program |
|---|---|---|
| ✓ | 0.0b | (*.f64 z (+.f64 y x)) |
| ✓ | 0.4b | (+.f64 (*.f64 x y) (*.f64 z (+.f64 y x))) |
| ✓ | 16.5b | (sqrt.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 y x)))) |
Compiled 49 to 11 computations (77.6% saved)
27 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 1.0ms | z | @ | inf | (sqrt.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 y x)))) |
| 1.0ms | x | @ | -inf | (sqrt.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 y x)))) |
| 1.0ms | y | @ | -inf | (sqrt.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 y x)))) |
| 1.0ms | y | @ | inf | (sqrt.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 y x)))) |
| 1.0ms | y | @ | 0 | (sqrt.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 y x)))) |
| 1× | batch-egg-rewrite |
| 1506× | bool.json-1 |
| 1506× | bool.json-2 |
| 1476× | rational.json-1 |
| 1476× | rational.json-2 |
| 1476× | rational.json-4 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 11 | 67 |
| 1 | 108 | 67 |
| 2 | 273 | 67 |
| 3 | 560 | 67 |
| 4 | 1182 | 67 |
| 5 | 2664 | 67 |
| 6 | 5636 | 67 |
| 1× | node limit |
| Inputs |
|---|
(sqrt.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 y x)))) |
(+.f64 (*.f64 x y) (*.f64 z (+.f64 y x))) |
(*.f64 z (+.f64 y x)) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (sqrt.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y)))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (sqrt.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (sqrt.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y)))) 1/2) (*.f64 (sqrt.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y)))) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (sqrt.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y)))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (sqrt.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (sqrt.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y)))) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sqrt.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y)))) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (sqrt.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y)))) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sqrt.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y)))) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (sqrt.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sqrt.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y)))) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (sqrt.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y)))) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y)))) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (sqrt.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sqrt.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y)))) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sqrt.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y)))) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sqrt.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y)))) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (sqrt.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y)))) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 (sqrt.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y)))) 8)) (*.f64 2 (*.f64 (sqrt.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y)))) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (sqrt.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y))))))))) (#(struct:change #<rule egg-rr> (2) ((x and (sqrt.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y)))) (sqrt.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y)))))))) (#(struct:change #<rule egg-rr> (2) ((x or (sqrt.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y)))) (sqrt.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y))))))))) |
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y))) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (+.f64 (*.f64 (+.f64 x y) (*.f64 z 1/2)) (*.f64 x (*.f64 y 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (+.f64 (*.f64 x (*.f64 y 1/2)) (*.f64 (+.f64 x y) (*.f64 z 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y))) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y))) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y))) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (*.f64 (+.f64 x y) (+.f64 z z)) (*.f64 x (+.f64 y y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (*.f64 x (+.f64 y y)) (*.f64 (+.f64 x y) (+.f64 z z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y))) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y))) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y))) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y))) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y))) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y))) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y))) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y))) 8)) (*.f64 2 (*.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y))) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y)))))))) (#(struct:change #<rule egg-rr> (2) ((x and (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y))) (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x or (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y))) (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y)))))))) |
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 z (+.f64 x y)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 z (+.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 x y) (*.f64 z 1/2)) (*.f64 (+.f64 x y) (*.f64 z 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 z (+.f64 x y)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 z (+.f64 x y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 x y) (+.f64 z z)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 z (*.f64 (+.f64 x y) 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 z (+.f64 x y)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 z (+.f64 x y)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 z (+.f64 x y)) 8)) (*.f64 2 (*.f64 (*.f64 z (+.f64 x y)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 z (+.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 z (+.f64 x y)) (*.f64 z (+.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 z (+.f64 x y)) (*.f64 z (+.f64 x y))))))) |
| 1× | egg-herbie |
| 1368× | rational.json-simplify-35 |
| 1190× | rational.json-simplify-2 |
| 1122× | rational.json-simplify-1 |
| 1078× | rational.json-simplify-46 |
| 962× | rational.json-simplify-61 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 210 | 3617 |
| 1 | 454 | 3617 |
| 2 | 1041 | 3617 |
| 3 | 2260 | 3617 |
| 4 | 4081 | 3617 |
| 5 | 5262 | 3617 |
| 6 | 6459 | 3617 |
| 7 | 7536 | 3617 |
| 1× | node limit |
| Inputs |
|---|
(sqrt.f64 (*.f64 y z)) |
(+.f64 (sqrt.f64 (*.f64 y z)) (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y z))) (*.f64 (+.f64 y z) x)))) |
(+.f64 (sqrt.f64 (*.f64 y z)) (+.f64 (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 y 3) (pow.f64 z 3)))) (*.f64 (pow.f64 (+.f64 y z) 2) (pow.f64 x 2)))) (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y z))) (*.f64 (+.f64 y z) x))))) |
(+.f64 (*.f64 1/16 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 y 5) (pow.f64 z 5)))) (*.f64 (pow.f64 (+.f64 y z) 3) (pow.f64 x 3)))) (+.f64 (sqrt.f64 (*.f64 y z)) (+.f64 (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 y 3) (pow.f64 z 3)))) (*.f64 (pow.f64 (+.f64 y z) 2) (pow.f64 x 2)))) (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y z))) (*.f64 (+.f64 y z) x)))))) |
(sqrt.f64 (*.f64 z x)) |
(+.f64 (*.f64 1/2 (*.f64 (*.f64 y (+.f64 z x)) (sqrt.f64 (/.f64 1 (*.f64 z x))))) (sqrt.f64 (*.f64 z x))) |
(+.f64 (*.f64 -1/8 (*.f64 (*.f64 (pow.f64 y 2) (pow.f64 (+.f64 z x) 2)) (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 z 3) (pow.f64 x 3)))))) (+.f64 (*.f64 1/2 (*.f64 (*.f64 y (+.f64 z x)) (sqrt.f64 (/.f64 1 (*.f64 z x))))) (sqrt.f64 (*.f64 z x)))) |
(+.f64 (*.f64 -1/8 (*.f64 (*.f64 (pow.f64 y 2) (pow.f64 (+.f64 z x) 2)) (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 z 3) (pow.f64 x 3)))))) (+.f64 (*.f64 1/16 (*.f64 (*.f64 (pow.f64 y 3) (pow.f64 (+.f64 z x) 3)) (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 z 5) (pow.f64 x 5)))))) (+.f64 (*.f64 1/2 (*.f64 (*.f64 y (+.f64 z x)) (sqrt.f64 (/.f64 1 (*.f64 z x))))) (sqrt.f64 (*.f64 z x))))) |
(sqrt.f64 (*.f64 y x)) |
(+.f64 (sqrt.f64 (*.f64 y x)) (*.f64 1/2 (*.f64 (*.f64 (+.f64 y x) z) (sqrt.f64 (/.f64 1 (*.f64 y x)))))) |
(+.f64 (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 y 3) (pow.f64 x 3)))) (*.f64 (pow.f64 (+.f64 y x) 2) (pow.f64 z 2)))) (+.f64 (sqrt.f64 (*.f64 y x)) (*.f64 1/2 (*.f64 (*.f64 (+.f64 y x) z) (sqrt.f64 (/.f64 1 (*.f64 y x))))))) |
(+.f64 (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 y 3) (pow.f64 x 3)))) (*.f64 (pow.f64 (+.f64 y x) 2) (pow.f64 z 2)))) (+.f64 (*.f64 1/16 (*.f64 (*.f64 (pow.f64 (+.f64 y x) 3) (pow.f64 z 3)) (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 y 5) (pow.f64 x 5)))))) (+.f64 (sqrt.f64 (*.f64 y x)) (*.f64 1/2 (*.f64 (*.f64 (+.f64 y x) z) (sqrt.f64 (/.f64 1 (*.f64 y x)))))))) |
(*.f64 y z) |
(+.f64 (*.f64 (+.f64 y z) x) (*.f64 y z)) |
(+.f64 (*.f64 (+.f64 y z) x) (*.f64 y z)) |
(+.f64 (*.f64 (+.f64 y z) x) (*.f64 y z)) |
(*.f64 (+.f64 y z) x) |
(+.f64 (*.f64 y z) (*.f64 (+.f64 y z) x)) |
(+.f64 (*.f64 y z) (*.f64 (+.f64 y z) x)) |
(+.f64 (*.f64 y z) (*.f64 (+.f64 y z) x)) |
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 z) (*.f64 -1 y)) x)) |
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 z) (*.f64 -1 y)) x))) |
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 z) (*.f64 -1 y)) x))) |
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 z) (*.f64 -1 y)) x))) |
(*.f64 z x) |
(+.f64 (*.f64 z x) (*.f64 y (+.f64 z x))) |
(+.f64 (*.f64 z x) (*.f64 y (+.f64 z x))) |
(+.f64 (*.f64 z x) (*.f64 y (+.f64 z x))) |
(*.f64 y (+.f64 z x)) |
(+.f64 (*.f64 z x) (*.f64 y (+.f64 z x))) |
(+.f64 (*.f64 z x) (*.f64 y (+.f64 z x))) |
(+.f64 (*.f64 z x) (*.f64 y (+.f64 z x))) |
(*.f64 -1 (*.f64 y (+.f64 (*.f64 -1 z) (*.f64 -1 x)))) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y (+.f64 (*.f64 -1 z) (*.f64 -1 x))))) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y (+.f64 (*.f64 -1 z) (*.f64 -1 x))))) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y (+.f64 (*.f64 -1 z) (*.f64 -1 x))))) |
(*.f64 y x) |
(+.f64 (*.f64 y x) (*.f64 (+.f64 y x) z)) |
(+.f64 (*.f64 y x) (*.f64 (+.f64 y x) z)) |
(+.f64 (*.f64 y x) (*.f64 (+.f64 y x) z)) |
(*.f64 (+.f64 y x) z) |
(+.f64 (*.f64 y x) (*.f64 (+.f64 y x) z)) |
(+.f64 (*.f64 y x) (*.f64 (+.f64 y x) z)) |
(+.f64 (*.f64 y x) (*.f64 (+.f64 y x) z)) |
(*.f64 (+.f64 y x) z) |
(+.f64 (*.f64 y x) (*.f64 (+.f64 y x) z)) |
(+.f64 (*.f64 y x) (*.f64 (+.f64 y x) z)) |
(+.f64 (*.f64 y x) (*.f64 (+.f64 y x) z)) |
(*.f64 (+.f64 y x) z) |
(*.f64 (+.f64 y x) z) |
(*.f64 (+.f64 y x) z) |
(*.f64 (+.f64 y x) z) |
(*.f64 (+.f64 y x) z) |
(*.f64 (+.f64 y x) z) |
(*.f64 (+.f64 y x) z) |
(*.f64 (+.f64 y x) z) |
(*.f64 (+.f64 y x) z) |
(*.f64 (+.f64 y x) z) |
(*.f64 (+.f64 y x) z) |
(*.f64 (+.f64 y x) z) |
(*.f64 z x) |
(+.f64 (*.f64 y z) (*.f64 z x)) |
(+.f64 (*.f64 y z) (*.f64 z x)) |
(+.f64 (*.f64 y z) (*.f64 z x)) |
(*.f64 y z) |
(+.f64 (*.f64 y z) (*.f64 z x)) |
(+.f64 (*.f64 y z) (*.f64 z x)) |
(+.f64 (*.f64 y z) (*.f64 z x)) |
(*.f64 y z) |
(+.f64 (*.f64 y z) (*.f64 z x)) |
(+.f64 (*.f64 y z) (*.f64 z x)) |
(+.f64 (*.f64 y z) (*.f64 z x)) |
(*.f64 y z) |
(+.f64 (*.f64 y z) (*.f64 z x)) |
(+.f64 (*.f64 y z) (*.f64 z x)) |
(+.f64 (*.f64 y z) (*.f64 z x)) |
(*.f64 z x) |
(+.f64 (*.f64 y z) (*.f64 z x)) |
(+.f64 (*.f64 y z) (*.f64 z x)) |
(+.f64 (*.f64 y z) (*.f64 z x)) |
(*.f64 z x) |
(+.f64 (*.f64 y z) (*.f64 z x)) |
(+.f64 (*.f64 y z) (*.f64 z x)) |
(+.f64 (*.f64 y z) (*.f64 z x)) |
(+.f64 (sqrt.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y)))) 0) |
(+.f64 0 (sqrt.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y))))) |
(+.f64 (*.f64 (sqrt.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y)))) 1/2) (*.f64 (sqrt.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y)))) 1/2)) |
(-.f64 (sqrt.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y)))) 0) |
(*.f64 (sqrt.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y)))) 1) |
(*.f64 1 (sqrt.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y))))) |
(*.f64 2 (*.f64 (sqrt.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y)))) 1/2)) |
(*.f64 (*.f64 (sqrt.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y)))) 2) 1/2) |
(*.f64 4 (/.f64 (sqrt.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y)))) 4)) |
(*.f64 (*.f64 (sqrt.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y)))) 4) 1/4) |
(*.f64 1/2 (*.f64 (sqrt.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y)))) 2)) |
(*.f64 (*.f64 (sqrt.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y)))) 1/2) 2) |
(*.f64 1/4 (*.f64 (sqrt.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y)))) 4)) |
(*.f64 (/.f64 (sqrt.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y)))) 4) 4) |
(/.f64 (sqrt.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y)))) 1) |
(/.f64 (*.f64 (sqrt.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y)))) 2) 2) |
(/.f64 (*.f64 (sqrt.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y)))) 4) 4) |
(/.f64 (*.f64 (sqrt.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y)))) 8) 8) |
(/.f64 (*.f64 2 (*.f64 (sqrt.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y)))) 8)) 16) |
(/.f64 (+.f64 (*.f64 2 (*.f64 (sqrt.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y)))) 8)) (*.f64 2 (*.f64 (sqrt.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y)))) 8))) 32) |
(-.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y))) 0) |
(*.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y))) 1) |
(*.f64 1 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y)))) |
(*.f64 2 (*.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y))) 1/2)) |
(*.f64 2 (+.f64 (*.f64 (+.f64 x y) (*.f64 z 1/2)) (*.f64 x (*.f64 y 1/2)))) |
(*.f64 2 (+.f64 (*.f64 x (*.f64 y 1/2)) (*.f64 (+.f64 x y) (*.f64 z 1/2)))) |
(*.f64 (*.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y))) 2) 1/2) |
(*.f64 4 (/.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y))) 4)) |
(*.f64 (*.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y))) 4) 1/4) |
(*.f64 1/2 (*.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y))) 2)) |
(*.f64 1/2 (+.f64 (*.f64 (+.f64 x y) (+.f64 z z)) (*.f64 x (+.f64 y y)))) |
(*.f64 1/2 (+.f64 (*.f64 x (+.f64 y y)) (*.f64 (+.f64 x y) (+.f64 z z)))) |
(*.f64 (*.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y))) 1/2) 2) |
(*.f64 1/4 (*.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y))) 4)) |
(*.f64 (/.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y))) 4) 4) |
(/.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y))) 1) |
(/.f64 (*.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y))) 2) 2) |
(/.f64 (*.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y))) 4) 4) |
(/.f64 (*.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y))) 8) 8) |
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y))) 8)) 16) |
(/.f64 (+.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y))) 8)) (*.f64 2 (*.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y))) 8))) 32) |
(+.f64 (*.f64 z (+.f64 x y)) 0) |
(+.f64 0 (*.f64 z (+.f64 x y))) |
(+.f64 (*.f64 (+.f64 x y) (*.f64 z 1/2)) (*.f64 (+.f64 x y) (*.f64 z 1/2))) |
(-.f64 (*.f64 z (+.f64 x y)) 0) |
(/.f64 (*.f64 z (+.f64 x y)) 1) |
(/.f64 (*.f64 (+.f64 x y) (+.f64 z z)) 2) |
(/.f64 (*.f64 z (*.f64 (+.f64 x y) 4)) 4) |
(/.f64 (*.f64 (*.f64 z (+.f64 x y)) 8) 8) |
(/.f64 (*.f64 2 (*.f64 (*.f64 z (+.f64 x y)) 8)) 16) |
(/.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 z (+.f64 x y)) 8)) (*.f64 2 (*.f64 (*.f64 z (+.f64 x y)) 8))) 32) |
| Outputs |
|---|
(sqrt.f64 (*.f64 y z)) |
(+.f64 (sqrt.f64 (*.f64 y z)) (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y z))) (*.f64 (+.f64 y z) x)))) |
(+.f64 (sqrt.f64 (*.f64 y z)) (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y z))) (*.f64 1/2 (*.f64 (+.f64 y z) x)))) |
(+.f64 (sqrt.f64 (*.f64 y z)) (+.f64 (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 y 3) (pow.f64 z 3)))) (*.f64 (pow.f64 (+.f64 y z) 2) (pow.f64 x 2)))) (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y z))) (*.f64 (+.f64 y z) x))))) |
(+.f64 (sqrt.f64 (*.f64 y z)) (+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y z))) (*.f64 (+.f64 y z) x))) (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 y 3) (pow.f64 z 3)))) (*.f64 (pow.f64 (+.f64 y z) 2) (pow.f64 x 2)))))) |
(+.f64 (+.f64 (sqrt.f64 (*.f64 y z)) (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y z))) (*.f64 1/2 (*.f64 (+.f64 y z) x)))) (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 y 3) (pow.f64 z 3)))) (*.f64 (pow.f64 (+.f64 y z) 2) (pow.f64 x 2))))) |
(+.f64 (*.f64 1/16 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 y 5) (pow.f64 z 5)))) (*.f64 (pow.f64 (+.f64 y z) 3) (pow.f64 x 3)))) (+.f64 (sqrt.f64 (*.f64 y z)) (+.f64 (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 y 3) (pow.f64 z 3)))) (*.f64 (pow.f64 (+.f64 y z) 2) (pow.f64 x 2)))) (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y z))) (*.f64 (+.f64 y z) x)))))) |
(+.f64 (sqrt.f64 (*.f64 y z)) (+.f64 (+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y z))) (*.f64 (+.f64 y z) x))) (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 y 3) (pow.f64 z 3)))) (*.f64 (pow.f64 (+.f64 y z) 2) (pow.f64 x 2))))) (*.f64 1/16 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 y 5) (pow.f64 z 5)))) (*.f64 (pow.f64 (+.f64 y z) 3) (pow.f64 x 3)))))) |
(+.f64 (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 y 3) (pow.f64 z 3)))) (*.f64 (pow.f64 (+.f64 y z) 2) (pow.f64 x 2)))) (+.f64 (+.f64 (sqrt.f64 (*.f64 y z)) (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y z))) (*.f64 (+.f64 y z) x)))) (*.f64 1/16 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 y 5) (pow.f64 z 5)))) (*.f64 (pow.f64 (+.f64 y z) 3) (pow.f64 x 3)))))) |
(+.f64 (sqrt.f64 (*.f64 y z)) (+.f64 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y z))) (*.f64 1/2 (*.f64 (+.f64 y z) x))) (+.f64 (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 y 3) (pow.f64 z 3)))) (*.f64 (pow.f64 (+.f64 y z) 2) (pow.f64 x 2)))) (*.f64 (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 y 5) (pow.f64 z 5)))) (*.f64 1/16 (*.f64 (pow.f64 (+.f64 y z) 3) (pow.f64 x 3))))))) |
(+.f64 (sqrt.f64 (*.f64 y z)) (+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y z))) (*.f64 (+.f64 y z) x))) (+.f64 (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 y 3) (pow.f64 z 3)))) (*.f64 (pow.f64 (+.f64 y z) 2) (pow.f64 x 2)))) (*.f64 1/16 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 y 5) (pow.f64 z 5)))) (*.f64 (pow.f64 (+.f64 y z) 3) (pow.f64 x 3))))))) |
(sqrt.f64 (*.f64 z x)) |
(+.f64 (*.f64 1/2 (*.f64 (*.f64 y (+.f64 z x)) (sqrt.f64 (/.f64 1 (*.f64 z x))))) (sqrt.f64 (*.f64 z x))) |
(+.f64 (sqrt.f64 (*.f64 z x)) (*.f64 1/2 (*.f64 (*.f64 y (+.f64 z x)) (sqrt.f64 (/.f64 1 (*.f64 z x)))))) |
(+.f64 (sqrt.f64 (*.f64 z x)) (*.f64 1/2 (*.f64 y (*.f64 (+.f64 z x) (sqrt.f64 (/.f64 1 (*.f64 z x))))))) |
(+.f64 (sqrt.f64 (*.f64 z x)) (*.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) (*.f64 y (*.f64 (+.f64 z x) 1/2)))) |
(+.f64 (sqrt.f64 (*.f64 z x)) (*.f64 (sqrt.f64 (/.f64 (/.f64 1 z) x)) (*.f64 y (*.f64 1/2 (+.f64 z x))))) |
(+.f64 (*.f64 -1/8 (*.f64 (*.f64 (pow.f64 y 2) (pow.f64 (+.f64 z x) 2)) (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 z 3) (pow.f64 x 3)))))) (+.f64 (*.f64 1/2 (*.f64 (*.f64 y (+.f64 z x)) (sqrt.f64 (/.f64 1 (*.f64 z x))))) (sqrt.f64 (*.f64 z x)))) |
(+.f64 (+.f64 (sqrt.f64 (*.f64 z x)) (*.f64 1/2 (*.f64 (*.f64 y (+.f64 z x)) (sqrt.f64 (/.f64 1 (*.f64 z x)))))) (*.f64 -1/8 (*.f64 (*.f64 (pow.f64 y 2) (pow.f64 (+.f64 z x) 2)) (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 z 3) (pow.f64 x 3))))))) |
(+.f64 (+.f64 (sqrt.f64 (*.f64 z x)) (*.f64 1/2 (*.f64 y (*.f64 (+.f64 z x) (sqrt.f64 (/.f64 1 (*.f64 z x))))))) (*.f64 -1/8 (*.f64 (pow.f64 (+.f64 z x) 2) (*.f64 (pow.f64 y 2) (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 z 3) (pow.f64 x 3)))))))) |
(+.f64 (sqrt.f64 (*.f64 z x)) (+.f64 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) (*.f64 y (*.f64 (+.f64 z x) 1/2))) (*.f64 (pow.f64 y 2) (*.f64 (pow.f64 (+.f64 z x) 2) (*.f64 -1/8 (sqrt.f64 (/.f64 (/.f64 1 (pow.f64 z 3)) (pow.f64 x 3)))))))) |
(+.f64 (sqrt.f64 (*.f64 z x)) (+.f64 (*.f64 1/2 (*.f64 (*.f64 y (+.f64 z x)) (sqrt.f64 (/.f64 1 (*.f64 z x))))) (*.f64 -1/8 (*.f64 (*.f64 (pow.f64 y 2) (pow.f64 (+.f64 z x) 2)) (sqrt.f64 (/.f64 (/.f64 1 (pow.f64 z 3)) (pow.f64 x 3))))))) |
(+.f64 (sqrt.f64 (*.f64 z x)) (+.f64 (*.f64 (sqrt.f64 (/.f64 (/.f64 1 z) x)) (*.f64 y (*.f64 1/2 (+.f64 z x)))) (*.f64 (*.f64 (pow.f64 y 2) (pow.f64 (+.f64 z x) 2)) (*.f64 -1/8 (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 z 3) (pow.f64 x 3)))))))) |
(+.f64 (*.f64 -1/8 (*.f64 (*.f64 (pow.f64 y 2) (pow.f64 (+.f64 z x) 2)) (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 z 3) (pow.f64 x 3)))))) (+.f64 (*.f64 1/16 (*.f64 (*.f64 (pow.f64 y 3) (pow.f64 (+.f64 z x) 3)) (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 z 5) (pow.f64 x 5)))))) (+.f64 (*.f64 1/2 (*.f64 (*.f64 y (+.f64 z x)) (sqrt.f64 (/.f64 1 (*.f64 z x))))) (sqrt.f64 (*.f64 z x))))) |
(+.f64 (*.f64 -1/8 (*.f64 (*.f64 (pow.f64 y 2) (pow.f64 (+.f64 z x) 2)) (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 z 3) (pow.f64 x 3)))))) (+.f64 (*.f64 1/2 (*.f64 (*.f64 y (+.f64 z x)) (sqrt.f64 (/.f64 1 (*.f64 z x))))) (+.f64 (sqrt.f64 (*.f64 z x)) (*.f64 1/16 (*.f64 (*.f64 (pow.f64 y 3) (pow.f64 (+.f64 z x) 3)) (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 z 5) (pow.f64 x 5))))))))) |
(+.f64 (*.f64 1/2 (*.f64 y (*.f64 (+.f64 z x) (sqrt.f64 (/.f64 1 (*.f64 z x)))))) (+.f64 (+.f64 (sqrt.f64 (*.f64 z x)) (*.f64 1/16 (*.f64 (pow.f64 (+.f64 z x) 3) (*.f64 (pow.f64 y 3) (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 z 5) (pow.f64 x 5)))))))) (*.f64 -1/8 (*.f64 (pow.f64 (+.f64 z x) 2) (*.f64 (pow.f64 y 2) (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 z 3) (pow.f64 x 3))))))))) |
(+.f64 (sqrt.f64 (*.f64 z x)) (+.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) (*.f64 y (*.f64 (+.f64 z x) 1/2))) (*.f64 (pow.f64 y 2) (*.f64 (pow.f64 (+.f64 z x) 2) (*.f64 -1/8 (sqrt.f64 (/.f64 (/.f64 1 (pow.f64 z 3)) (pow.f64 x 3))))))) (*.f64 (sqrt.f64 (/.f64 (/.f64 1 (pow.f64 x 5)) (pow.f64 z 5))) (*.f64 (pow.f64 (+.f64 z x) 3) (*.f64 (pow.f64 y 3) 1/16))))) |
(+.f64 (+.f64 (sqrt.f64 (*.f64 z x)) (*.f64 1/2 (*.f64 (*.f64 y (+.f64 z x)) (sqrt.f64 (/.f64 1 (*.f64 z x)))))) (+.f64 (*.f64 -1/8 (*.f64 (*.f64 (pow.f64 y 2) (pow.f64 (+.f64 z x) 2)) (sqrt.f64 (/.f64 (/.f64 1 (pow.f64 z 3)) (pow.f64 x 3))))) (*.f64 (pow.f64 y 3) (*.f64 (pow.f64 (+.f64 z x) 3) (*.f64 1/16 (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 z 5) (pow.f64 x 5))))))))) |
(+.f64 (+.f64 (sqrt.f64 (*.f64 z x)) (*.f64 (sqrt.f64 (/.f64 (/.f64 1 z) x)) (*.f64 y (*.f64 1/2 (+.f64 z x))))) (+.f64 (*.f64 (*.f64 (pow.f64 y 2) (pow.f64 (+.f64 z x) 2)) (*.f64 -1/8 (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 z 3) (pow.f64 x 3)))))) (*.f64 (sqrt.f64 (/.f64 (/.f64 1 (pow.f64 x 5)) (pow.f64 z 5))) (*.f64 (pow.f64 (+.f64 z x) 3) (*.f64 (pow.f64 y 3) 1/16))))) |
(sqrt.f64 (*.f64 y x)) |
(+.f64 (sqrt.f64 (*.f64 y x)) (*.f64 1/2 (*.f64 (*.f64 (+.f64 y x) z) (sqrt.f64 (/.f64 1 (*.f64 y x)))))) |
(+.f64 (sqrt.f64 (*.f64 y x)) (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 z (+.f64 y x))))) |
(+.f64 (sqrt.f64 (*.f64 y x)) (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 z (*.f64 1/2 (+.f64 y x))))) |
(+.f64 (sqrt.f64 (*.f64 y x)) (*.f64 z (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 1/2 (+.f64 y x))))) |
(+.f64 (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 y 3) (pow.f64 x 3)))) (*.f64 (pow.f64 (+.f64 y x) 2) (pow.f64 z 2)))) (+.f64 (sqrt.f64 (*.f64 y x)) (*.f64 1/2 (*.f64 (*.f64 (+.f64 y x) z) (sqrt.f64 (/.f64 1 (*.f64 y x))))))) |
(+.f64 (+.f64 (sqrt.f64 (*.f64 y x)) (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 z (+.f64 y x))))) (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 y 3) (pow.f64 x 3)))) (*.f64 (pow.f64 (+.f64 y x) 2) (pow.f64 z 2))))) |
(+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 z (+.f64 y x)))) (+.f64 (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 y 3) (pow.f64 x 3)))) (*.f64 (pow.f64 (+.f64 y x) 2) (pow.f64 z 2)))) (sqrt.f64 (*.f64 y x)))) |
(+.f64 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 z (*.f64 1/2 (+.f64 y x)))) (+.f64 (sqrt.f64 (*.f64 y x)) (*.f64 (sqrt.f64 (/.f64 (/.f64 1 (pow.f64 x 3)) (pow.f64 y 3))) (*.f64 -1/8 (*.f64 (pow.f64 (+.f64 y x) 2) (pow.f64 z 2)))))) |
(+.f64 (sqrt.f64 (*.f64 y x)) (+.f64 (*.f64 z (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 1/2 (+.f64 y x)))) (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 y 3) (pow.f64 x 3)))) (*.f64 (pow.f64 (+.f64 y x) 2) (pow.f64 z 2)))))) |
(+.f64 (sqrt.f64 (*.f64 y x)) (+.f64 (*.f64 z (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 1/2 (+.f64 y x)))) (*.f64 (sqrt.f64 (/.f64 (/.f64 1 (pow.f64 y 3)) (pow.f64 x 3))) (*.f64 -1/8 (*.f64 (pow.f64 (+.f64 y x) 2) (pow.f64 z 2)))))) |
(+.f64 (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 y 3) (pow.f64 x 3)))) (*.f64 (pow.f64 (+.f64 y x) 2) (pow.f64 z 2)))) (+.f64 (*.f64 1/16 (*.f64 (*.f64 (pow.f64 (+.f64 y x) 3) (pow.f64 z 3)) (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 y 5) (pow.f64 x 5)))))) (+.f64 (sqrt.f64 (*.f64 y x)) (*.f64 1/2 (*.f64 (*.f64 (+.f64 y x) z) (sqrt.f64 (/.f64 1 (*.f64 y x)))))))) |
(+.f64 (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 y 3) (pow.f64 x 3)))) (*.f64 (pow.f64 (+.f64 y x) 2) (pow.f64 z 2)))) (+.f64 (sqrt.f64 (*.f64 y x)) (+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 z (+.f64 y x)))) (*.f64 1/16 (*.f64 (*.f64 (pow.f64 z 3) (pow.f64 (+.f64 y x) 3)) (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 y 5) (pow.f64 x 5))))))))) |
(+.f64 (sqrt.f64 (*.f64 y x)) (+.f64 (+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 z (+.f64 y x)))) (*.f64 1/16 (*.f64 (pow.f64 (+.f64 y x) 3) (*.f64 (pow.f64 z 3) (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 y 5) (pow.f64 x 5)))))))) (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 y 3) (pow.f64 x 3)))) (*.f64 (pow.f64 (+.f64 y x) 2) (pow.f64 z 2)))))) |
(+.f64 (sqrt.f64 (*.f64 y x)) (+.f64 (*.f64 (sqrt.f64 (/.f64 (/.f64 1 (pow.f64 x 3)) (pow.f64 y 3))) (*.f64 -1/8 (*.f64 (pow.f64 (+.f64 y x) 2) (pow.f64 z 2)))) (+.f64 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 z (*.f64 1/2 (+.f64 y x)))) (*.f64 (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 y 5) (pow.f64 x 5)))) (*.f64 (pow.f64 z 3) (*.f64 (pow.f64 (+.f64 y x) 3) 1/16)))))) |
(+.f64 (*.f64 z (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 1/2 (+.f64 y x)))) (+.f64 (sqrt.f64 (*.f64 y x)) (+.f64 (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 y 3) (pow.f64 x 3)))) (*.f64 (pow.f64 (+.f64 y x) 2) (pow.f64 z 2)))) (*.f64 (pow.f64 z 3) (*.f64 1/16 (*.f64 (pow.f64 (+.f64 y x) 3) (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 y 5) (pow.f64 x 5)))))))))) |
(+.f64 (*.f64 z (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 1/2 (+.f64 y x)))) (+.f64 (*.f64 (pow.f64 z 3) (*.f64 1/16 (*.f64 (pow.f64 (+.f64 y x) 3) (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 y 5) (pow.f64 x 5))))))) (+.f64 (sqrt.f64 (*.f64 y x)) (*.f64 (sqrt.f64 (/.f64 (/.f64 1 (pow.f64 y 3)) (pow.f64 x 3))) (*.f64 -1/8 (*.f64 (pow.f64 (+.f64 y x) 2) (pow.f64 z 2))))))) |
(*.f64 y z) |
(+.f64 (*.f64 (+.f64 y z) x) (*.f64 y z)) |
(+.f64 (*.f64 y z) (*.f64 (+.f64 y z) x)) |
(+.f64 (*.f64 z x) (*.f64 y (+.f64 z x))) |
(+.f64 (*.f64 (+.f64 y z) x) (*.f64 y z)) |
(+.f64 (*.f64 y z) (*.f64 (+.f64 y z) x)) |
(+.f64 (*.f64 z x) (*.f64 y (+.f64 z x))) |
(+.f64 (*.f64 (+.f64 y z) x) (*.f64 y z)) |
(+.f64 (*.f64 y z) (*.f64 (+.f64 y z) x)) |
(+.f64 (*.f64 z x) (*.f64 y (+.f64 z x))) |
(*.f64 (+.f64 y z) x) |
(+.f64 (*.f64 y z) (*.f64 (+.f64 y z) x)) |
(+.f64 (*.f64 z x) (*.f64 y (+.f64 z x))) |
(+.f64 (*.f64 y z) (*.f64 (+.f64 y z) x)) |
(+.f64 (*.f64 z x) (*.f64 y (+.f64 z x))) |
(+.f64 (*.f64 y z) (*.f64 (+.f64 y z) x)) |
(+.f64 (*.f64 z x) (*.f64 y (+.f64 z x))) |
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 z) (*.f64 -1 y)) x)) |
(*.f64 (+.f64 y z) x) |
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 z) (*.f64 -1 y)) x))) |
(+.f64 (*.f64 y z) (*.f64 (+.f64 y z) x)) |
(+.f64 (*.f64 z x) (*.f64 y (+.f64 z x))) |
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 z) (*.f64 -1 y)) x))) |
(+.f64 (*.f64 y z) (*.f64 (+.f64 y z) x)) |
(+.f64 (*.f64 z x) (*.f64 y (+.f64 z x))) |
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 z) (*.f64 -1 y)) x))) |
(+.f64 (*.f64 y z) (*.f64 (+.f64 y z) x)) |
(+.f64 (*.f64 z x) (*.f64 y (+.f64 z x))) |
(*.f64 z x) |
(+.f64 (*.f64 z x) (*.f64 y (+.f64 z x))) |
(+.f64 (*.f64 y z) (*.f64 (+.f64 y z) x)) |
(+.f64 (*.f64 z x) (*.f64 y (+.f64 z x))) |
(+.f64 (*.f64 y z) (*.f64 (+.f64 y z) x)) |
(+.f64 (*.f64 z x) (*.f64 y (+.f64 z x))) |
(+.f64 (*.f64 y z) (*.f64 (+.f64 y z) x)) |
(*.f64 y (+.f64 z x)) |
(+.f64 (*.f64 z x) (*.f64 y (+.f64 z x))) |
(+.f64 (*.f64 y z) (*.f64 (+.f64 y z) x)) |
(+.f64 (*.f64 z x) (*.f64 y (+.f64 z x))) |
(+.f64 (*.f64 y z) (*.f64 (+.f64 y z) x)) |
(+.f64 (*.f64 z x) (*.f64 y (+.f64 z x))) |
(+.f64 (*.f64 y z) (*.f64 (+.f64 y z) x)) |
(*.f64 -1 (*.f64 y (+.f64 (*.f64 -1 z) (*.f64 -1 x)))) |
(*.f64 y (+.f64 z x)) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y (+.f64 (*.f64 -1 z) (*.f64 -1 x))))) |
(+.f64 (*.f64 y z) (*.f64 (+.f64 y z) x)) |
(+.f64 (*.f64 z x) (*.f64 y (+.f64 z x))) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y (+.f64 (*.f64 -1 z) (*.f64 -1 x))))) |
(+.f64 (*.f64 y z) (*.f64 (+.f64 y z) x)) |
(+.f64 (*.f64 z x) (*.f64 y (+.f64 z x))) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y (+.f64 (*.f64 -1 z) (*.f64 -1 x))))) |
(+.f64 (*.f64 y z) (*.f64 (+.f64 y z) x)) |
(+.f64 (*.f64 z x) (*.f64 y (+.f64 z x))) |
(*.f64 y x) |
(+.f64 (*.f64 y x) (*.f64 (+.f64 y x) z)) |
(+.f64 (*.f64 y z) (*.f64 (+.f64 y z) x)) |
(+.f64 (*.f64 z x) (*.f64 y (+.f64 z x))) |
(+.f64 (*.f64 y x) (*.f64 (+.f64 y x) z)) |
(+.f64 (*.f64 y z) (*.f64 (+.f64 y z) x)) |
(+.f64 (*.f64 z x) (*.f64 y (+.f64 z x))) |
(+.f64 (*.f64 y x) (*.f64 (+.f64 y x) z)) |
(+.f64 (*.f64 y z) (*.f64 (+.f64 y z) x)) |
(+.f64 (*.f64 z x) (*.f64 y (+.f64 z x))) |
(*.f64 (+.f64 y x) z) |
(*.f64 z (+.f64 y x)) |
(+.f64 (*.f64 y x) (*.f64 (+.f64 y x) z)) |
(+.f64 (*.f64 y z) (*.f64 (+.f64 y z) x)) |
(+.f64 (*.f64 z x) (*.f64 y (+.f64 z x))) |
(+.f64 (*.f64 y x) (*.f64 (+.f64 y x) z)) |
(+.f64 (*.f64 y z) (*.f64 (+.f64 y z) x)) |
(+.f64 (*.f64 z x) (*.f64 y (+.f64 z x))) |
(+.f64 (*.f64 y x) (*.f64 (+.f64 y x) z)) |
(+.f64 (*.f64 y z) (*.f64 (+.f64 y z) x)) |
(+.f64 (*.f64 z x) (*.f64 y (+.f64 z x))) |
(*.f64 (+.f64 y x) z) |
(*.f64 z (+.f64 y x)) |
(+.f64 (*.f64 y x) (*.f64 (+.f64 y x) z)) |
(+.f64 (*.f64 y z) (*.f64 (+.f64 y z) x)) |
(+.f64 (*.f64 z x) (*.f64 y (+.f64 z x))) |
(+.f64 (*.f64 y x) (*.f64 (+.f64 y x) z)) |
(+.f64 (*.f64 y z) (*.f64 (+.f64 y z) x)) |
(+.f64 (*.f64 z x) (*.f64 y (+.f64 z x))) |
(+.f64 (*.f64 y x) (*.f64 (+.f64 y x) z)) |
(+.f64 (*.f64 y z) (*.f64 (+.f64 y z) x)) |
(+.f64 (*.f64 z x) (*.f64 y (+.f64 z x))) |
(*.f64 (+.f64 y x) z) |
(*.f64 z (+.f64 y x)) |
(*.f64 (+.f64 y x) z) |
(*.f64 z (+.f64 y x)) |
(*.f64 (+.f64 y x) z) |
(*.f64 z (+.f64 y x)) |
(*.f64 (+.f64 y x) z) |
(*.f64 z (+.f64 y x)) |
(*.f64 (+.f64 y x) z) |
(*.f64 z (+.f64 y x)) |
(*.f64 (+.f64 y x) z) |
(*.f64 z (+.f64 y x)) |
(*.f64 (+.f64 y x) z) |
(*.f64 z (+.f64 y x)) |
(*.f64 (+.f64 y x) z) |
(*.f64 z (+.f64 y x)) |
(*.f64 (+.f64 y x) z) |
(*.f64 z (+.f64 y x)) |
(*.f64 (+.f64 y x) z) |
(*.f64 z (+.f64 y x)) |
(*.f64 (+.f64 y x) z) |
(*.f64 z (+.f64 y x)) |
(*.f64 (+.f64 y x) z) |
(*.f64 z (+.f64 y x)) |
(*.f64 z x) |
(+.f64 (*.f64 y z) (*.f64 z x)) |
(*.f64 z (+.f64 y x)) |
(+.f64 (*.f64 y z) (*.f64 z x)) |
(*.f64 z (+.f64 y x)) |
(+.f64 (*.f64 y z) (*.f64 z x)) |
(*.f64 z (+.f64 y x)) |
(*.f64 y z) |
(+.f64 (*.f64 y z) (*.f64 z x)) |
(*.f64 z (+.f64 y x)) |
(+.f64 (*.f64 y z) (*.f64 z x)) |
(*.f64 z (+.f64 y x)) |
(+.f64 (*.f64 y z) (*.f64 z x)) |
(*.f64 z (+.f64 y x)) |
(*.f64 y z) |
(+.f64 (*.f64 y z) (*.f64 z x)) |
(*.f64 z (+.f64 y x)) |
(+.f64 (*.f64 y z) (*.f64 z x)) |
(*.f64 z (+.f64 y x)) |
(+.f64 (*.f64 y z) (*.f64 z x)) |
(*.f64 z (+.f64 y x)) |
(*.f64 y z) |
(+.f64 (*.f64 y z) (*.f64 z x)) |
(*.f64 z (+.f64 y x)) |
(+.f64 (*.f64 y z) (*.f64 z x)) |
(*.f64 z (+.f64 y x)) |
(+.f64 (*.f64 y z) (*.f64 z x)) |
(*.f64 z (+.f64 y x)) |
(*.f64 z x) |
(+.f64 (*.f64 y z) (*.f64 z x)) |
(*.f64 z (+.f64 y x)) |
(+.f64 (*.f64 y z) (*.f64 z x)) |
(*.f64 z (+.f64 y x)) |
(+.f64 (*.f64 y z) (*.f64 z x)) |
(*.f64 z (+.f64 y x)) |
(*.f64 z x) |
(+.f64 (*.f64 y z) (*.f64 z x)) |
(*.f64 z (+.f64 y x)) |
(+.f64 (*.f64 y z) (*.f64 z x)) |
(*.f64 z (+.f64 y x)) |
(+.f64 (*.f64 y z) (*.f64 z x)) |
(*.f64 z (+.f64 y x)) |
(+.f64 (sqrt.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y)))) 0) |
(sqrt.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 y x)))) |
(sqrt.f64 (+.f64 (*.f64 z x) (*.f64 y (+.f64 z x)))) |
(sqrt.f64 (+.f64 (*.f64 y z) (*.f64 (+.f64 y z) x))) |
(+.f64 0 (sqrt.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y))))) |
(sqrt.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 y x)))) |
(sqrt.f64 (+.f64 (*.f64 z x) (*.f64 y (+.f64 z x)))) |
(sqrt.f64 (+.f64 (*.f64 y z) (*.f64 (+.f64 y z) x))) |
(+.f64 (*.f64 (sqrt.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y)))) 1/2) (*.f64 (sqrt.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y)))) 1/2)) |
(sqrt.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 y x)))) |
(sqrt.f64 (+.f64 (*.f64 z x) (*.f64 y (+.f64 z x)))) |
(sqrt.f64 (+.f64 (*.f64 y z) (*.f64 (+.f64 y z) x))) |
(-.f64 (sqrt.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y)))) 0) |
(sqrt.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 y x)))) |
(sqrt.f64 (+.f64 (*.f64 z x) (*.f64 y (+.f64 z x)))) |
(sqrt.f64 (+.f64 (*.f64 y z) (*.f64 (+.f64 y z) x))) |
(*.f64 (sqrt.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y)))) 1) |
(sqrt.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 y x)))) |
(sqrt.f64 (+.f64 (*.f64 z x) (*.f64 y (+.f64 z x)))) |
(sqrt.f64 (+.f64 (*.f64 y z) (*.f64 (+.f64 y z) x))) |
(*.f64 1 (sqrt.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y))))) |
(sqrt.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 y x)))) |
(sqrt.f64 (+.f64 (*.f64 z x) (*.f64 y (+.f64 z x)))) |
(sqrt.f64 (+.f64 (*.f64 y z) (*.f64 (+.f64 y z) x))) |
(*.f64 2 (*.f64 (sqrt.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y)))) 1/2)) |
(sqrt.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 y x)))) |
(sqrt.f64 (+.f64 (*.f64 z x) (*.f64 y (+.f64 z x)))) |
(sqrt.f64 (+.f64 (*.f64 y z) (*.f64 (+.f64 y z) x))) |
(*.f64 (*.f64 (sqrt.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y)))) 2) 1/2) |
(sqrt.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 y x)))) |
(sqrt.f64 (+.f64 (*.f64 z x) (*.f64 y (+.f64 z x)))) |
(sqrt.f64 (+.f64 (*.f64 y z) (*.f64 (+.f64 y z) x))) |
(*.f64 4 (/.f64 (sqrt.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y)))) 4)) |
(sqrt.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 y x)))) |
(sqrt.f64 (+.f64 (*.f64 z x) (*.f64 y (+.f64 z x)))) |
(sqrt.f64 (+.f64 (*.f64 y z) (*.f64 (+.f64 y z) x))) |
(*.f64 (*.f64 (sqrt.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y)))) 4) 1/4) |
(sqrt.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 y x)))) |
(sqrt.f64 (+.f64 (*.f64 z x) (*.f64 y (+.f64 z x)))) |
(sqrt.f64 (+.f64 (*.f64 y z) (*.f64 (+.f64 y z) x))) |
(*.f64 1/2 (*.f64 (sqrt.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y)))) 2)) |
(sqrt.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 y x)))) |
(sqrt.f64 (+.f64 (*.f64 z x) (*.f64 y (+.f64 z x)))) |
(sqrt.f64 (+.f64 (*.f64 y z) (*.f64 (+.f64 y z) x))) |
(*.f64 (*.f64 (sqrt.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y)))) 1/2) 2) |
(sqrt.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 y x)))) |
(sqrt.f64 (+.f64 (*.f64 z x) (*.f64 y (+.f64 z x)))) |
(sqrt.f64 (+.f64 (*.f64 y z) (*.f64 (+.f64 y z) x))) |
(*.f64 1/4 (*.f64 (sqrt.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y)))) 4)) |
(sqrt.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 y x)))) |
(sqrt.f64 (+.f64 (*.f64 z x) (*.f64 y (+.f64 z x)))) |
(sqrt.f64 (+.f64 (*.f64 y z) (*.f64 (+.f64 y z) x))) |
(*.f64 (/.f64 (sqrt.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y)))) 4) 4) |
(sqrt.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 y x)))) |
(sqrt.f64 (+.f64 (*.f64 z x) (*.f64 y (+.f64 z x)))) |
(sqrt.f64 (+.f64 (*.f64 y z) (*.f64 (+.f64 y z) x))) |
(/.f64 (sqrt.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y)))) 1) |
(sqrt.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 y x)))) |
(sqrt.f64 (+.f64 (*.f64 z x) (*.f64 y (+.f64 z x)))) |
(sqrt.f64 (+.f64 (*.f64 y z) (*.f64 (+.f64 y z) x))) |
(/.f64 (*.f64 (sqrt.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y)))) 2) 2) |
(sqrt.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 y x)))) |
(sqrt.f64 (+.f64 (*.f64 z x) (*.f64 y (+.f64 z x)))) |
(sqrt.f64 (+.f64 (*.f64 y z) (*.f64 (+.f64 y z) x))) |
(/.f64 (*.f64 (sqrt.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y)))) 4) 4) |
(sqrt.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 y x)))) |
(sqrt.f64 (+.f64 (*.f64 z x) (*.f64 y (+.f64 z x)))) |
(sqrt.f64 (+.f64 (*.f64 y z) (*.f64 (+.f64 y z) x))) |
(/.f64 (*.f64 (sqrt.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y)))) 8) 8) |
(sqrt.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 y x)))) |
(sqrt.f64 (+.f64 (*.f64 z x) (*.f64 y (+.f64 z x)))) |
(sqrt.f64 (+.f64 (*.f64 y z) (*.f64 (+.f64 y z) x))) |
(/.f64 (*.f64 2 (*.f64 (sqrt.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y)))) 8)) 16) |
(sqrt.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 y x)))) |
(sqrt.f64 (+.f64 (*.f64 z x) (*.f64 y (+.f64 z x)))) |
(sqrt.f64 (+.f64 (*.f64 y z) (*.f64 (+.f64 y z) x))) |
(/.f64 (+.f64 (*.f64 2 (*.f64 (sqrt.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y)))) 8)) (*.f64 2 (*.f64 (sqrt.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y)))) 8))) 32) |
(sqrt.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 y x)))) |
(sqrt.f64 (+.f64 (*.f64 z x) (*.f64 y (+.f64 z x)))) |
(sqrt.f64 (+.f64 (*.f64 y z) (*.f64 (+.f64 y z) x))) |
(-.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y))) 0) |
(+.f64 (*.f64 y z) (*.f64 (+.f64 y z) x)) |
(+.f64 (*.f64 z x) (*.f64 y (+.f64 z x))) |
(*.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y))) 1) |
(+.f64 (*.f64 y z) (*.f64 (+.f64 y z) x)) |
(+.f64 (*.f64 z x) (*.f64 y (+.f64 z x))) |
(*.f64 1 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y)))) |
(+.f64 (*.f64 y z) (*.f64 (+.f64 y z) x)) |
(+.f64 (*.f64 z x) (*.f64 y (+.f64 z x))) |
(*.f64 2 (*.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y))) 1/2)) |
(+.f64 (*.f64 y z) (*.f64 (+.f64 y z) x)) |
(+.f64 (*.f64 z x) (*.f64 y (+.f64 z x))) |
(*.f64 2 (+.f64 (*.f64 (+.f64 x y) (*.f64 z 1/2)) (*.f64 x (*.f64 y 1/2)))) |
(+.f64 (*.f64 y z) (*.f64 (+.f64 y z) x)) |
(+.f64 (*.f64 z x) (*.f64 y (+.f64 z x))) |
(*.f64 2 (+.f64 (*.f64 x (*.f64 y 1/2)) (*.f64 (+.f64 x y) (*.f64 z 1/2)))) |
(+.f64 (*.f64 y z) (*.f64 (+.f64 y z) x)) |
(+.f64 (*.f64 z x) (*.f64 y (+.f64 z x))) |
(*.f64 (*.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y))) 2) 1/2) |
(+.f64 (*.f64 y z) (*.f64 (+.f64 y z) x)) |
(+.f64 (*.f64 z x) (*.f64 y (+.f64 z x))) |
(*.f64 4 (/.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y))) 4)) |
(+.f64 (*.f64 y z) (*.f64 (+.f64 y z) x)) |
(+.f64 (*.f64 z x) (*.f64 y (+.f64 z x))) |
(*.f64 (*.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y))) 4) 1/4) |
(+.f64 (*.f64 y z) (*.f64 (+.f64 y z) x)) |
(+.f64 (*.f64 z x) (*.f64 y (+.f64 z x))) |
(*.f64 1/2 (*.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y))) 2)) |
(+.f64 (*.f64 y z) (*.f64 (+.f64 y z) x)) |
(+.f64 (*.f64 z x) (*.f64 y (+.f64 z x))) |
(*.f64 1/2 (+.f64 (*.f64 (+.f64 x y) (+.f64 z z)) (*.f64 x (+.f64 y y)))) |
(+.f64 (*.f64 y z) (*.f64 (+.f64 y z) x)) |
(+.f64 (*.f64 z x) (*.f64 y (+.f64 z x))) |
(*.f64 1/2 (+.f64 (*.f64 x (+.f64 y y)) (*.f64 (+.f64 x y) (+.f64 z z)))) |
(+.f64 (*.f64 y z) (*.f64 (+.f64 y z) x)) |
(+.f64 (*.f64 z x) (*.f64 y (+.f64 z x))) |
(*.f64 (*.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y))) 1/2) 2) |
(+.f64 (*.f64 y z) (*.f64 (+.f64 y z) x)) |
(+.f64 (*.f64 z x) (*.f64 y (+.f64 z x))) |
(*.f64 1/4 (*.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y))) 4)) |
(+.f64 (*.f64 y z) (*.f64 (+.f64 y z) x)) |
(+.f64 (*.f64 z x) (*.f64 y (+.f64 z x))) |
(*.f64 (/.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y))) 4) 4) |
(+.f64 (*.f64 y z) (*.f64 (+.f64 y z) x)) |
(+.f64 (*.f64 z x) (*.f64 y (+.f64 z x))) |
(/.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y))) 1) |
(+.f64 (*.f64 y z) (*.f64 (+.f64 y z) x)) |
(+.f64 (*.f64 z x) (*.f64 y (+.f64 z x))) |
(/.f64 (*.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y))) 2) 2) |
(+.f64 (*.f64 y z) (*.f64 (+.f64 y z) x)) |
(+.f64 (*.f64 z x) (*.f64 y (+.f64 z x))) |
(/.f64 (*.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y))) 4) 4) |
(+.f64 (*.f64 y z) (*.f64 (+.f64 y z) x)) |
(+.f64 (*.f64 z x) (*.f64 y (+.f64 z x))) |
(/.f64 (*.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y))) 8) 8) |
(+.f64 (*.f64 y z) (*.f64 (+.f64 y z) x)) |
(+.f64 (*.f64 z x) (*.f64 y (+.f64 z x))) |
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y))) 8)) 16) |
(+.f64 (*.f64 y z) (*.f64 (+.f64 y z) x)) |
(+.f64 (*.f64 z x) (*.f64 y (+.f64 z x))) |
(/.f64 (+.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y))) 8)) (*.f64 2 (*.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y))) 8))) 32) |
(+.f64 (*.f64 y z) (*.f64 (+.f64 y z) x)) |
(+.f64 (*.f64 z x) (*.f64 y (+.f64 z x))) |
(+.f64 (*.f64 z (+.f64 x y)) 0) |
(*.f64 z (+.f64 y x)) |
(+.f64 0 (*.f64 z (+.f64 x y))) |
(*.f64 z (+.f64 y x)) |
(+.f64 (*.f64 (+.f64 x y) (*.f64 z 1/2)) (*.f64 (+.f64 x y) (*.f64 z 1/2))) |
(*.f64 z (+.f64 y x)) |
(-.f64 (*.f64 z (+.f64 x y)) 0) |
(*.f64 z (+.f64 y x)) |
(/.f64 (*.f64 z (+.f64 x y)) 1) |
(*.f64 z (+.f64 y x)) |
(/.f64 (*.f64 (+.f64 x y) (+.f64 z z)) 2) |
(*.f64 z (+.f64 y x)) |
(/.f64 (*.f64 z (*.f64 (+.f64 x y) 4)) 4) |
(*.f64 z (+.f64 y x)) |
(/.f64 (*.f64 (*.f64 z (+.f64 x y)) 8) 8) |
(*.f64 z (+.f64 y x)) |
(/.f64 (*.f64 2 (*.f64 (*.f64 z (+.f64 x y)) 8)) 16) |
(*.f64 z (+.f64 y x)) |
(/.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 z (+.f64 x y)) 8)) (*.f64 2 (*.f64 (*.f64 z (+.f64 x y)) 8))) 32) |
(*.f64 z (+.f64 y x)) |
Found 3 expressions with local error:
| New | Error | Program |
|---|---|---|
| ✓ | 0.0b | (*.f64 x (+.f64 z y)) |
| ✓ | 0.4b | (+.f64 (*.f64 x (+.f64 z y)) (*.f64 y z)) |
| ✓ | 16.5b | (sqrt.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 y z))) |
Compiled 49 to 11 computations (77.6% saved)
27 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 1.0ms | x | @ | -inf | (sqrt.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 y z))) |
| 1.0ms | z | @ | -inf | (sqrt.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 y z))) |
| 0.0ms | y | @ | -inf | (sqrt.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 y z))) |
| 0.0ms | x | @ | inf | (sqrt.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 y z))) |
| 0.0ms | z | @ | inf | (sqrt.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 y z))) |
| 1× | batch-egg-rewrite |
| 1506× | bool.json-1 |
| 1506× | bool.json-2 |
| 1476× | rational.json-1 |
| 1476× | rational.json-2 |
| 1476× | rational.json-4 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 11 | 67 |
| 1 | 108 | 67 |
| 2 | 273 | 67 |
| 3 | 560 | 67 |
| 4 | 1182 | 67 |
| 5 | 2664 | 67 |
| 6 | 5636 | 67 |
| 1× | node limit |
| Inputs |
|---|
(sqrt.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 y z))) |
(+.f64 (*.f64 x (+.f64 z y)) (*.f64 y z)) |
(*.f64 x (+.f64 z y)) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (sqrt.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (sqrt.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (sqrt.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y))) 1/2) (*.f64 (sqrt.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y))) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (sqrt.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (sqrt.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (sqrt.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y))) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sqrt.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y))) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (sqrt.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y))) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sqrt.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y))) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (sqrt.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sqrt.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y))) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (sqrt.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y))) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y))) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (sqrt.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sqrt.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y))) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sqrt.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y))) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sqrt.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y))) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (sqrt.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y))) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 (sqrt.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y))) 8)) (*.f64 2 (*.f64 (sqrt.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y))) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (sqrt.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y)))))))) (#(struct:change #<rule egg-rr> (2) ((x and (sqrt.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y))) (sqrt.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y))))))) (#(struct:change #<rule egg-rr> (2) ((x or (sqrt.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y))) (sqrt.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y)))))))) |
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (+.f64 (*.f64 y (*.f64 z 1/2)) (*.f64 x (*.f64 (+.f64 z y) 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (+.f64 (*.f64 x (*.f64 (+.f64 z y) 1/2)) (*.f64 y (*.f64 z 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y)) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (*.f64 y (+.f64 z z)) (*.f64 x (*.f64 (+.f64 z y) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (*.f64 x (*.f64 (+.f64 z y) 2)) (*.f64 y (+.f64 z z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y)) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y)) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y)) 8)) (*.f64 2 (*.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y))))))) (#(struct:change #<rule egg-rr> (2) ((x and (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y)) (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y)))))) (#(struct:change #<rule egg-rr> (2) ((x or (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y)) (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y))))))) |
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (+.f64 z y)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 x (+.f64 z y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (*.f64 (+.f64 z y) 1/2)) (*.f64 x (*.f64 (+.f64 z y) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 x (+.f64 z y)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (+.f64 z y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (*.f64 (+.f64 z y) 2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 z y) (*.f64 x 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 x (+.f64 z y)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 x (+.f64 z y)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 x (+.f64 z y)) 8)) (*.f64 2 (*.f64 (*.f64 x (+.f64 z y)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 x (+.f64 z y))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 x (+.f64 z y)) (*.f64 x (+.f64 z y)))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 x (+.f64 z y)) (*.f64 x (+.f64 z y))))))) |
| 1× | egg-herbie |
| 2376× | rational.json-simplify-2 |
| 1384× | rational.json-simplify-35 |
| 1180× | rational.json-simplify-1 |
| 928× | rational.json-simplify-51 |
| 720× | rational.json-simplify-43 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 210 | 3617 |
| 1 | 455 | 3617 |
| 2 | 1057 | 3617 |
| 3 | 2340 | 3617 |
| 4 | 4021 | 3617 |
| 5 | 5471 | 3617 |
| 6 | 6062 | 3617 |
| 7 | 6318 | 3617 |
| 8 | 6901 | 3617 |
| 1× | node limit |
| Inputs |
|---|
(sqrt.f64 (*.f64 y z)) |
(+.f64 (sqrt.f64 (*.f64 y z)) (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y z))) (*.f64 (+.f64 y z) x)))) |
(+.f64 (sqrt.f64 (*.f64 y z)) (+.f64 (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 y 3) (pow.f64 z 3)))) (*.f64 (pow.f64 (+.f64 y z) 2) (pow.f64 x 2)))) (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y z))) (*.f64 (+.f64 y z) x))))) |
(+.f64 (*.f64 1/16 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 y 5) (pow.f64 z 5)))) (*.f64 (pow.f64 (+.f64 y z) 3) (pow.f64 x 3)))) (+.f64 (sqrt.f64 (*.f64 y z)) (+.f64 (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 y 3) (pow.f64 z 3)))) (*.f64 (pow.f64 (+.f64 y z) 2) (pow.f64 x 2)))) (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y z))) (*.f64 (+.f64 y z) x)))))) |
(sqrt.f64 (*.f64 y x)) |
(+.f64 (sqrt.f64 (*.f64 y x)) (*.f64 1/2 (*.f64 (*.f64 (+.f64 y x) z) (sqrt.f64 (/.f64 1 (*.f64 y x)))))) |
(+.f64 (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 y 3) (pow.f64 x 3)))) (*.f64 (pow.f64 (+.f64 y x) 2) (pow.f64 z 2)))) (+.f64 (sqrt.f64 (*.f64 y x)) (*.f64 1/2 (*.f64 (*.f64 (+.f64 y x) z) (sqrt.f64 (/.f64 1 (*.f64 y x))))))) |
(+.f64 (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 y 3) (pow.f64 x 3)))) (*.f64 (pow.f64 (+.f64 y x) 2) (pow.f64 z 2)))) (+.f64 (*.f64 1/16 (*.f64 (*.f64 (pow.f64 (+.f64 y x) 3) (pow.f64 z 3)) (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 y 5) (pow.f64 x 5)))))) (+.f64 (sqrt.f64 (*.f64 y x)) (*.f64 1/2 (*.f64 (*.f64 (+.f64 y x) z) (sqrt.f64 (/.f64 1 (*.f64 y x)))))))) |
(sqrt.f64 (*.f64 z x)) |
(+.f64 (*.f64 1/2 (*.f64 (*.f64 y (+.f64 z x)) (sqrt.f64 (/.f64 1 (*.f64 z x))))) (sqrt.f64 (*.f64 z x))) |
(+.f64 (*.f64 -1/8 (*.f64 (*.f64 (pow.f64 y 2) (pow.f64 (+.f64 z x) 2)) (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 z 3) (pow.f64 x 3)))))) (+.f64 (*.f64 1/2 (*.f64 (*.f64 y (+.f64 z x)) (sqrt.f64 (/.f64 1 (*.f64 z x))))) (sqrt.f64 (*.f64 z x)))) |
(+.f64 (*.f64 -1/8 (*.f64 (*.f64 (pow.f64 y 2) (pow.f64 (+.f64 z x) 2)) (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 z 3) (pow.f64 x 3)))))) (+.f64 (*.f64 1/16 (*.f64 (*.f64 (pow.f64 y 3) (pow.f64 (+.f64 z x) 3)) (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 z 5) (pow.f64 x 5)))))) (+.f64 (*.f64 1/2 (*.f64 (*.f64 y (+.f64 z x)) (sqrt.f64 (/.f64 1 (*.f64 z x))))) (sqrt.f64 (*.f64 z x))))) |
(*.f64 y z) |
(+.f64 (*.f64 (+.f64 y z) x) (*.f64 y z)) |
(+.f64 (*.f64 (+.f64 y z) x) (*.f64 y z)) |
(+.f64 (*.f64 (+.f64 y z) x) (*.f64 y z)) |
(*.f64 (+.f64 y z) x) |
(+.f64 (*.f64 y z) (*.f64 (+.f64 y z) x)) |
(+.f64 (*.f64 y z) (*.f64 (+.f64 y z) x)) |
(+.f64 (*.f64 y z) (*.f64 (+.f64 y z) x)) |
(*.f64 (+.f64 y z) x) |
(+.f64 (*.f64 y z) (*.f64 (+.f64 y z) x)) |
(+.f64 (*.f64 y z) (*.f64 (+.f64 y z) x)) |
(+.f64 (*.f64 y z) (*.f64 (+.f64 y z) x)) |
(*.f64 y x) |
(+.f64 (*.f64 y x) (*.f64 (+.f64 y x) z)) |
(+.f64 (*.f64 y x) (*.f64 (+.f64 y x) z)) |
(+.f64 (*.f64 y x) (*.f64 (+.f64 y x) z)) |
(*.f64 (+.f64 y x) z) |
(+.f64 (*.f64 y x) (*.f64 (+.f64 y x) z)) |
(+.f64 (*.f64 y x) (*.f64 (+.f64 y x) z)) |
(+.f64 (*.f64 y x) (*.f64 (+.f64 y x) z)) |
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 x) (*.f64 -1 y)) z)) |
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 x) (*.f64 -1 y)) z))) |
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 x) (*.f64 -1 y)) z))) |
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 x) (*.f64 -1 y)) z))) |
(*.f64 z x) |
(+.f64 (*.f64 z x) (*.f64 y (+.f64 z x))) |
(+.f64 (*.f64 z x) (*.f64 y (+.f64 z x))) |
(+.f64 (*.f64 z x) (*.f64 y (+.f64 z x))) |
(*.f64 y (+.f64 z x)) |
(+.f64 (*.f64 z x) (*.f64 y (+.f64 z x))) |
(+.f64 (*.f64 z x) (*.f64 y (+.f64 z x))) |
(+.f64 (*.f64 z x) (*.f64 y (+.f64 z x))) |
(*.f64 -1 (*.f64 y (+.f64 (*.f64 -1 z) (*.f64 -1 x)))) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y (+.f64 (*.f64 -1 z) (*.f64 -1 x))))) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y (+.f64 (*.f64 -1 z) (*.f64 -1 x))))) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y (+.f64 (*.f64 -1 z) (*.f64 -1 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 (+.f64 y z) 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 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 (sqrt.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y))) 0) |
(+.f64 0 (sqrt.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y)))) |
(+.f64 (*.f64 (sqrt.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y))) 1/2) (*.f64 (sqrt.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y))) 1/2)) |
(-.f64 (sqrt.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y))) 0) |
(*.f64 (sqrt.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y))) 1) |
(*.f64 1 (sqrt.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y)))) |
(*.f64 2 (*.f64 (sqrt.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y))) 1/2)) |
(*.f64 (*.f64 (sqrt.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y))) 2) 1/2) |
(*.f64 4 (/.f64 (sqrt.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y))) 4)) |
(*.f64 (*.f64 (sqrt.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y))) 4) 1/4) |
(*.f64 1/2 (*.f64 (sqrt.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y))) 2)) |
(*.f64 (*.f64 (sqrt.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y))) 1/2) 2) |
(*.f64 1/4 (*.f64 (sqrt.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y))) 4)) |
(*.f64 (/.f64 (sqrt.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y))) 4) 4) |
(/.f64 (sqrt.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y))) 1) |
(/.f64 (*.f64 (sqrt.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y))) 2) 2) |
(/.f64 (*.f64 (sqrt.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y))) 4) 4) |
(/.f64 (*.f64 (sqrt.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y))) 8) 8) |
(/.f64 (*.f64 2 (*.f64 (sqrt.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y))) 8)) 16) |
(/.f64 (+.f64 (*.f64 2 (*.f64 (sqrt.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y))) 8)) (*.f64 2 (*.f64 (sqrt.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y))) 8))) 32) |
(-.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y)) 0) |
(*.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y)) 1) |
(*.f64 1 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y))) |
(*.f64 2 (*.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y)) 1/2)) |
(*.f64 2 (+.f64 (*.f64 y (*.f64 z 1/2)) (*.f64 x (*.f64 (+.f64 z y) 1/2)))) |
(*.f64 2 (+.f64 (*.f64 x (*.f64 (+.f64 z y) 1/2)) (*.f64 y (*.f64 z 1/2)))) |
(*.f64 (*.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y)) 2) 1/2) |
(*.f64 4 (/.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y)) 4)) |
(*.f64 (*.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y)) 4) 1/4) |
(*.f64 1/2 (*.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y)) 2)) |
(*.f64 1/2 (+.f64 (*.f64 y (+.f64 z z)) (*.f64 x (*.f64 (+.f64 z y) 2)))) |
(*.f64 1/2 (+.f64 (*.f64 x (*.f64 (+.f64 z y) 2)) (*.f64 y (+.f64 z z)))) |
(*.f64 (*.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y)) 1/2) 2) |
(*.f64 1/4 (*.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y)) 4)) |
(*.f64 (/.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y)) 4) 4) |
(/.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y)) 1) |
(/.f64 (*.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y)) 2) 2) |
(/.f64 (*.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y)) 4) 4) |
(/.f64 (*.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y)) 8) 8) |
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y)) 8)) 16) |
(/.f64 (+.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y)) 8)) (*.f64 2 (*.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y)) 8))) 32) |
(+.f64 (*.f64 x (+.f64 z y)) 0) |
(+.f64 0 (*.f64 x (+.f64 z y))) |
(+.f64 (*.f64 x (*.f64 (+.f64 z y) 1/2)) (*.f64 x (*.f64 (+.f64 z y) 1/2))) |
(-.f64 (*.f64 x (+.f64 z y)) 0) |
(/.f64 (*.f64 x (+.f64 z y)) 1) |
(/.f64 (*.f64 x (*.f64 (+.f64 z y) 2)) 2) |
(/.f64 (*.f64 (+.f64 z y) (*.f64 x 4)) 4) |
(/.f64 (*.f64 (*.f64 x (+.f64 z y)) 8) 8) |
(/.f64 (*.f64 2 (*.f64 (*.f64 x (+.f64 z y)) 8)) 16) |
(/.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 x (+.f64 z y)) 8)) (*.f64 2 (*.f64 (*.f64 x (+.f64 z y)) 8))) 32) |
| Outputs |
|---|
(sqrt.f64 (*.f64 y z)) |
(+.f64 (sqrt.f64 (*.f64 y z)) (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y z))) (*.f64 (+.f64 y z) x)))) |
(+.f64 (sqrt.f64 (*.f64 y z)) (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y z))) (*.f64 x (+.f64 y z))))) |
(+.f64 (sqrt.f64 (*.f64 y z)) (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y z))) (*.f64 1/2 (*.f64 x (+.f64 y z))))) |
(+.f64 (sqrt.f64 (*.f64 y z)) (+.f64 (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 y 3) (pow.f64 z 3)))) (*.f64 (pow.f64 (+.f64 y z) 2) (pow.f64 x 2)))) (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y z))) (*.f64 (+.f64 y z) x))))) |
(+.f64 (sqrt.f64 (*.f64 y z)) (+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y z))) (*.f64 x (+.f64 y z)))) (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 y 3) (pow.f64 z 3)))) (*.f64 (pow.f64 (+.f64 y z) 2) (pow.f64 x 2)))))) |
(+.f64 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y z))) (*.f64 1/2 (*.f64 x (+.f64 y z)))) (+.f64 (sqrt.f64 (*.f64 y z)) (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 y 3) (pow.f64 z 3)))) (*.f64 (pow.f64 (+.f64 y z) 2) (pow.f64 x 2)))))) |
(+.f64 (*.f64 1/16 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 y 5) (pow.f64 z 5)))) (*.f64 (pow.f64 (+.f64 y z) 3) (pow.f64 x 3)))) (+.f64 (sqrt.f64 (*.f64 y z)) (+.f64 (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 y 3) (pow.f64 z 3)))) (*.f64 (pow.f64 (+.f64 y z) 2) (pow.f64 x 2)))) (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y z))) (*.f64 (+.f64 y z) x)))))) |
(+.f64 (sqrt.f64 (*.f64 y z)) (+.f64 (+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y z))) (*.f64 x (+.f64 y z)))) (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 y 3) (pow.f64 z 3)))) (*.f64 (pow.f64 (+.f64 y z) 2) (pow.f64 x 2))))) (*.f64 1/16 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 y 5) (pow.f64 z 5)))) (*.f64 (pow.f64 (+.f64 y z) 3) (pow.f64 x 3)))))) |
(+.f64 (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 y 3) (pow.f64 z 3)))) (*.f64 (pow.f64 (+.f64 y z) 2) (pow.f64 x 2)))) (+.f64 (+.f64 (sqrt.f64 (*.f64 y z)) (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y z))) (*.f64 x (+.f64 y z))))) (*.f64 1/16 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 y 5) (pow.f64 z 5)))) (*.f64 (pow.f64 (+.f64 y z) 3) (pow.f64 x 3)))))) |
(+.f64 (sqrt.f64 (*.f64 y z)) (+.f64 (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 y 3) (pow.f64 z 3)))) (*.f64 (pow.f64 (+.f64 y z) 2) (pow.f64 x 2)))) (+.f64 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y z))) (*.f64 1/2 (*.f64 x (+.f64 y z)))) (*.f64 1/16 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 y 5) (pow.f64 z 5)))) (*.f64 (pow.f64 (+.f64 y z) 3) (pow.f64 x 3))))))) |
(+.f64 (sqrt.f64 (*.f64 y z)) (+.f64 (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 y 3) (pow.f64 z 3)))) (*.f64 (pow.f64 (+.f64 y z) 2) (pow.f64 x 2)))) (+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y z))) (*.f64 x (+.f64 y z)))) (*.f64 (pow.f64 (+.f64 y z) 3) (*.f64 1/16 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 y 5) (pow.f64 z 5)))) (pow.f64 x 3))))))) |
(sqrt.f64 (*.f64 y x)) |
(+.f64 (sqrt.f64 (*.f64 y x)) (*.f64 1/2 (*.f64 (*.f64 (+.f64 y x) z) (sqrt.f64 (/.f64 1 (*.f64 y x)))))) |
(+.f64 (sqrt.f64 (*.f64 y x)) (*.f64 (*.f64 z (+.f64 y x)) (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) 1/2))) |
(+.f64 (sqrt.f64 (*.f64 y x)) (*.f64 (*.f64 z (+.f64 y x)) (*.f64 1/2 (sqrt.f64 (/.f64 1 (*.f64 y x)))))) |
(+.f64 (sqrt.f64 (*.f64 y x)) (*.f64 z (*.f64 (*.f64 (+.f64 y x) (sqrt.f64 (/.f64 1 (*.f64 y x)))) 1/2))) |
(+.f64 (sqrt.f64 (*.f64 y x)) (*.f64 z (*.f64 1/2 (*.f64 (+.f64 y x) (sqrt.f64 (/.f64 1 (*.f64 y x))))))) |
(+.f64 (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 y 3) (pow.f64 x 3)))) (*.f64 (pow.f64 (+.f64 y x) 2) (pow.f64 z 2)))) (+.f64 (sqrt.f64 (*.f64 y x)) (*.f64 1/2 (*.f64 (*.f64 (+.f64 y x) z) (sqrt.f64 (/.f64 1 (*.f64 y x))))))) |
(+.f64 (+.f64 (sqrt.f64 (*.f64 y x)) (*.f64 (*.f64 z (+.f64 y x)) (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) 1/2))) (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 y 3) (pow.f64 x 3)))) (*.f64 (pow.f64 (+.f64 y x) 2) (pow.f64 z 2))))) |
(+.f64 (*.f64 (*.f64 z (+.f64 y x)) (*.f64 1/2 (sqrt.f64 (/.f64 1 (*.f64 y x))))) (+.f64 (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 y 3) (pow.f64 x 3)))) (*.f64 (pow.f64 (+.f64 y x) 2) (pow.f64 z 2)))) (sqrt.f64 (*.f64 y x)))) |
(+.f64 (sqrt.f64 (*.f64 y x)) (+.f64 (*.f64 z (*.f64 (*.f64 (+.f64 y x) (sqrt.f64 (/.f64 1 (*.f64 y x)))) 1/2)) (*.f64 (sqrt.f64 (/.f64 (/.f64 1 (pow.f64 x 3)) (pow.f64 y 3))) (*.f64 (pow.f64 (+.f64 y x) 2) (*.f64 (pow.f64 z 2) -1/8))))) |
(+.f64 (sqrt.f64 (*.f64 y x)) (+.f64 (*.f64 z (*.f64 (*.f64 (+.f64 y x) (sqrt.f64 (/.f64 1 (*.f64 y x)))) 1/2)) (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 y 3) (pow.f64 x 3)))) (*.f64 (pow.f64 (+.f64 y x) 2) (pow.f64 z 2)))))) |
(+.f64 (sqrt.f64 (*.f64 y x)) (+.f64 (*.f64 z (*.f64 1/2 (*.f64 (+.f64 y x) (sqrt.f64 (/.f64 1 (*.f64 y x)))))) (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 y 3) (pow.f64 x 3)))) (*.f64 (pow.f64 (+.f64 y x) 2) (pow.f64 z 2)))))) |
(+.f64 (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 y 3) (pow.f64 x 3)))) (*.f64 (pow.f64 (+.f64 y x) 2) (pow.f64 z 2)))) (+.f64 (*.f64 1/16 (*.f64 (*.f64 (pow.f64 (+.f64 y x) 3) (pow.f64 z 3)) (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 y 5) (pow.f64 x 5)))))) (+.f64 (sqrt.f64 (*.f64 y x)) (*.f64 1/2 (*.f64 (*.f64 (+.f64 y x) z) (sqrt.f64 (/.f64 1 (*.f64 y x)))))))) |
(+.f64 (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 y 3) (pow.f64 x 3)))) (*.f64 (pow.f64 (+.f64 y x) 2) (pow.f64 z 2)))) (+.f64 (+.f64 (sqrt.f64 (*.f64 y x)) (*.f64 (*.f64 z (+.f64 y x)) (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) 1/2))) (*.f64 1/16 (*.f64 (*.f64 (pow.f64 z 3) (pow.f64 (+.f64 y x) 3)) (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 y 5) (pow.f64 x 5)))))))) |
(+.f64 (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 y 3) (pow.f64 x 3)))) (*.f64 (pow.f64 (+.f64 y x) 2) (pow.f64 z 2)))) (+.f64 (*.f64 (*.f64 z (+.f64 y x)) (*.f64 1/2 (sqrt.f64 (/.f64 1 (*.f64 y x))))) (+.f64 (*.f64 1/16 (*.f64 (pow.f64 z 3) (*.f64 (pow.f64 (+.f64 y x) 3) (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 y 5) (pow.f64 x 5))))))) (sqrt.f64 (*.f64 y x))))) |
(+.f64 (sqrt.f64 (*.f64 y x)) (+.f64 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 y 5) (pow.f64 x 5)))) (*.f64 (pow.f64 z 3) (*.f64 (pow.f64 (+.f64 y x) 3) 1/16))) (+.f64 (*.f64 z (*.f64 (*.f64 (+.f64 y x) (sqrt.f64 (/.f64 1 (*.f64 y x)))) 1/2)) (*.f64 (sqrt.f64 (/.f64 (/.f64 1 (pow.f64 x 3)) (pow.f64 y 3))) (*.f64 (pow.f64 (+.f64 y x) 2) (*.f64 (pow.f64 z 2) -1/8)))))) |
(+.f64 (+.f64 (sqrt.f64 (*.f64 y x)) (+.f64 (*.f64 z (*.f64 (*.f64 (+.f64 y x) (sqrt.f64 (/.f64 1 (*.f64 y x)))) 1/2)) (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 y 3) (pow.f64 x 3)))) (*.f64 (pow.f64 (+.f64 y x) 2) (pow.f64 z 2)))))) (*.f64 1/16 (*.f64 (*.f64 (pow.f64 z 3) (pow.f64 (+.f64 y x) 3)) (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 y 5) (pow.f64 x 5))))))) |
(+.f64 (+.f64 (sqrt.f64 (*.f64 y x)) (+.f64 (*.f64 z (*.f64 1/2 (*.f64 (+.f64 y x) (sqrt.f64 (/.f64 1 (*.f64 y x)))))) (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 y 3) (pow.f64 x 3)))) (*.f64 (pow.f64 (+.f64 y x) 2) (pow.f64 z 2)))))) (*.f64 1/16 (*.f64 (*.f64 (pow.f64 z 3) (pow.f64 (+.f64 y x) 3)) (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 y 5) (pow.f64 x 5))))))) |
(sqrt.f64 (*.f64 z x)) |
(+.f64 (*.f64 1/2 (*.f64 (*.f64 y (+.f64 z x)) (sqrt.f64 (/.f64 1 (*.f64 z x))))) (sqrt.f64 (*.f64 z x))) |
(+.f64 (sqrt.f64 (*.f64 z x)) (*.f64 1/2 (*.f64 (*.f64 y (+.f64 z x)) (sqrt.f64 (/.f64 1 (*.f64 z x)))))) |
(+.f64 (sqrt.f64 (*.f64 z x)) (*.f64 1/2 (*.f64 y (*.f64 (+.f64 z x) (sqrt.f64 (/.f64 1 (*.f64 z x))))))) |
(+.f64 (sqrt.f64 (*.f64 z x)) (*.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) (*.f64 y (*.f64 (+.f64 z x) 1/2)))) |
(+.f64 (sqrt.f64 (*.f64 z x)) (*.f64 y (*.f64 (*.f64 (+.f64 z x) (sqrt.f64 (/.f64 1 (*.f64 z x)))) 1/2))) |
(+.f64 (sqrt.f64 (*.f64 z x)) (*.f64 y (*.f64 1/2 (*.f64 (+.f64 z x) (sqrt.f64 (/.f64 1 (*.f64 z x))))))) |
(+.f64 (*.f64 -1/8 (*.f64 (*.f64 (pow.f64 y 2) (pow.f64 (+.f64 z x) 2)) (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 z 3) (pow.f64 x 3)))))) (+.f64 (*.f64 1/2 (*.f64 (*.f64 y (+.f64 z x)) (sqrt.f64 (/.f64 1 (*.f64 z x))))) (sqrt.f64 (*.f64 z x)))) |
(+.f64 (+.f64 (sqrt.f64 (*.f64 z x)) (*.f64 1/2 (*.f64 (*.f64 y (+.f64 z x)) (sqrt.f64 (/.f64 1 (*.f64 z x)))))) (*.f64 -1/8 (*.f64 (*.f64 (pow.f64 y 2) (pow.f64 (+.f64 z x) 2)) (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 z 3) (pow.f64 x 3))))))) |
(+.f64 (+.f64 (sqrt.f64 (*.f64 z x)) (*.f64 1/2 (*.f64 y (*.f64 (+.f64 z x) (sqrt.f64 (/.f64 1 (*.f64 z x))))))) (*.f64 -1/8 (*.f64 (pow.f64 (+.f64 z x) 2) (*.f64 (pow.f64 y 2) (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 z 3) (pow.f64 x 3)))))))) |
(+.f64 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) (*.f64 y (*.f64 (+.f64 z x) 1/2))) (+.f64 (sqrt.f64 (*.f64 z x)) (*.f64 (sqrt.f64 (/.f64 (/.f64 1 (pow.f64 x 3)) (pow.f64 z 3))) (*.f64 (pow.f64 y 2) (*.f64 (pow.f64 (+.f64 z x) 2) -1/8))))) |
(+.f64 (sqrt.f64 (*.f64 z x)) (+.f64 (*.f64 y (*.f64 (*.f64 (+.f64 z x) (sqrt.f64 (/.f64 1 (*.f64 z x)))) 1/2)) (*.f64 -1/8 (*.f64 (pow.f64 (+.f64 z x) 2) (*.f64 (pow.f64 y 2) (sqrt.f64 (/.f64 (/.f64 1 (pow.f64 x 3)) (pow.f64 z 3)))))))) |
(+.f64 (sqrt.f64 (*.f64 z x)) (+.f64 (*.f64 y (*.f64 1/2 (*.f64 (+.f64 z x) (sqrt.f64 (/.f64 1 (*.f64 z x)))))) (*.f64 -1/8 (*.f64 (pow.f64 (+.f64 z x) 2) (*.f64 (pow.f64 y 2) (sqrt.f64 (/.f64 (/.f64 1 (pow.f64 x 3)) (pow.f64 z 3)))))))) |
(+.f64 (*.f64 -1/8 (*.f64 (*.f64 (pow.f64 y 2) (pow.f64 (+.f64 z x) 2)) (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 z 3) (pow.f64 x 3)))))) (+.f64 (*.f64 1/16 (*.f64 (*.f64 (pow.f64 y 3) (pow.f64 (+.f64 z x) 3)) (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 z 5) (pow.f64 x 5)))))) (+.f64 (*.f64 1/2 (*.f64 (*.f64 y (+.f64 z x)) (sqrt.f64 (/.f64 1 (*.f64 z x))))) (sqrt.f64 (*.f64 z x))))) |
(+.f64 (*.f64 -1/8 (*.f64 (*.f64 (pow.f64 y 2) (pow.f64 (+.f64 z x) 2)) (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 z 3) (pow.f64 x 3)))))) (+.f64 (+.f64 (sqrt.f64 (*.f64 z x)) (*.f64 1/2 (*.f64 (*.f64 y (+.f64 z x)) (sqrt.f64 (/.f64 1 (*.f64 z x)))))) (*.f64 1/16 (*.f64 (*.f64 (pow.f64 y 3) (pow.f64 (+.f64 z x) 3)) (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 z 5) (pow.f64 x 5)))))))) |
(+.f64 (+.f64 (sqrt.f64 (*.f64 z x)) (*.f64 1/2 (*.f64 y (*.f64 (+.f64 z x) (sqrt.f64 (/.f64 1 (*.f64 z x))))))) (+.f64 (*.f64 -1/8 (*.f64 (pow.f64 (+.f64 z x) 2) (*.f64 (pow.f64 y 2) (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 z 3) (pow.f64 x 3))))))) (*.f64 1/16 (*.f64 (*.f64 (pow.f64 y 3) (pow.f64 (+.f64 z x) 3)) (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 z 5) (pow.f64 x 5)))))))) |
(+.f64 (sqrt.f64 (*.f64 z x)) (+.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) (*.f64 y (*.f64 (+.f64 z x) 1/2))) (*.f64 (*.f64 (pow.f64 y 3) (pow.f64 (+.f64 z x) 3)) (*.f64 1/16 (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 z 5) (pow.f64 x 5))))))) (*.f64 (sqrt.f64 (/.f64 (/.f64 1 (pow.f64 x 3)) (pow.f64 z 3))) (*.f64 (pow.f64 y 2) (*.f64 (pow.f64 (+.f64 z x) 2) -1/8))))) |
(+.f64 (sqrt.f64 (*.f64 z x)) (+.f64 (*.f64 (pow.f64 y 3) (*.f64 (*.f64 (pow.f64 (+.f64 z x) 3) (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 z 5) (pow.f64 x 5))))) 1/16)) (+.f64 (*.f64 y (*.f64 (*.f64 (+.f64 z x) (sqrt.f64 (/.f64 1 (*.f64 z x)))) 1/2)) (*.f64 -1/8 (*.f64 (pow.f64 (+.f64 z x) 2) (*.f64 (pow.f64 y 2) (sqrt.f64 (/.f64 (/.f64 1 (pow.f64 x 3)) (pow.f64 z 3))))))))) |
(+.f64 (sqrt.f64 (*.f64 z x)) (+.f64 (*.f64 (pow.f64 y 3) (*.f64 1/16 (*.f64 (pow.f64 (+.f64 z x) 3) (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 z 5) (pow.f64 x 5))))))) (+.f64 (*.f64 y (*.f64 1/2 (*.f64 (+.f64 z x) (sqrt.f64 (/.f64 1 (*.f64 z x)))))) (*.f64 -1/8 (*.f64 (pow.f64 (+.f64 z x) 2) (*.f64 (pow.f64 y 2) (sqrt.f64 (/.f64 (/.f64 1 (pow.f64 x 3)) (pow.f64 z 3))))))))) |
(*.f64 y z) |
(+.f64 (*.f64 (+.f64 y z) x) (*.f64 y z)) |
(+.f64 (*.f64 y z) (*.f64 x (+.f64 y z))) |
(+.f64 (*.f64 y x) (*.f64 z (+.f64 y x))) |
(+.f64 (*.f64 (+.f64 y z) x) (*.f64 y z)) |
(+.f64 (*.f64 y z) (*.f64 x (+.f64 y z))) |
(+.f64 (*.f64 y x) (*.f64 z (+.f64 y x))) |
(+.f64 (*.f64 (+.f64 y z) x) (*.f64 y z)) |
(+.f64 (*.f64 y z) (*.f64 x (+.f64 y z))) |
(+.f64 (*.f64 y x) (*.f64 z (+.f64 y x))) |
(*.f64 (+.f64 y z) x) |
(*.f64 x (+.f64 y z)) |
(+.f64 (*.f64 y z) (*.f64 (+.f64 y z) x)) |
(+.f64 (*.f64 y z) (*.f64 x (+.f64 y z))) |
(+.f64 (*.f64 y x) (*.f64 z (+.f64 y x))) |
(+.f64 (*.f64 y z) (*.f64 (+.f64 y z) x)) |
(+.f64 (*.f64 y z) (*.f64 x (+.f64 y z))) |
(+.f64 (*.f64 y x) (*.f64 z (+.f64 y x))) |
(+.f64 (*.f64 y z) (*.f64 (+.f64 y z) x)) |
(+.f64 (*.f64 y z) (*.f64 x (+.f64 y z))) |
(+.f64 (*.f64 y x) (*.f64 z (+.f64 y x))) |
(*.f64 (+.f64 y z) x) |
(*.f64 x (+.f64 y z)) |
(+.f64 (*.f64 y z) (*.f64 (+.f64 y z) x)) |
(+.f64 (*.f64 y z) (*.f64 x (+.f64 y z))) |
(+.f64 (*.f64 y x) (*.f64 z (+.f64 y x))) |
(+.f64 (*.f64 y z) (*.f64 (+.f64 y z) x)) |
(+.f64 (*.f64 y z) (*.f64 x (+.f64 y z))) |
(+.f64 (*.f64 y x) (*.f64 z (+.f64 y x))) |
(+.f64 (*.f64 y z) (*.f64 (+.f64 y z) x)) |
(+.f64 (*.f64 y z) (*.f64 x (+.f64 y z))) |
(+.f64 (*.f64 y x) (*.f64 z (+.f64 y x))) |
(*.f64 y x) |
(+.f64 (*.f64 y x) (*.f64 (+.f64 y x) z)) |
(+.f64 (*.f64 y z) (*.f64 x (+.f64 y z))) |
(+.f64 (*.f64 y x) (*.f64 z (+.f64 y x))) |
(+.f64 (*.f64 y x) (*.f64 (+.f64 y x) z)) |
(+.f64 (*.f64 y z) (*.f64 x (+.f64 y z))) |
(+.f64 (*.f64 y x) (*.f64 z (+.f64 y x))) |
(+.f64 (*.f64 y x) (*.f64 (+.f64 y x) z)) |
(+.f64 (*.f64 y z) (*.f64 x (+.f64 y z))) |
(+.f64 (*.f64 y x) (*.f64 z (+.f64 y x))) |
(*.f64 (+.f64 y x) z) |
(*.f64 z (+.f64 y x)) |
(+.f64 (*.f64 y x) (*.f64 (+.f64 y x) z)) |
(+.f64 (*.f64 y z) (*.f64 x (+.f64 y z))) |
(+.f64 (*.f64 y x) (*.f64 z (+.f64 y x))) |
(+.f64 (*.f64 y x) (*.f64 (+.f64 y x) z)) |
(+.f64 (*.f64 y z) (*.f64 x (+.f64 y z))) |
(+.f64 (*.f64 y x) (*.f64 z (+.f64 y x))) |
(+.f64 (*.f64 y x) (*.f64 (+.f64 y x) z)) |
(+.f64 (*.f64 y z) (*.f64 x (+.f64 y z))) |
(+.f64 (*.f64 y x) (*.f64 z (+.f64 y x))) |
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 x) (*.f64 -1 y)) z)) |
(*.f64 z (+.f64 y x)) |
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 x) (*.f64 -1 y)) z))) |
(+.f64 (*.f64 y z) (*.f64 x (+.f64 y z))) |
(+.f64 (*.f64 y x) (*.f64 z (+.f64 y x))) |
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 x) (*.f64 -1 y)) z))) |
(+.f64 (*.f64 y z) (*.f64 x (+.f64 y z))) |
(+.f64 (*.f64 y x) (*.f64 z (+.f64 y x))) |
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 x) (*.f64 -1 y)) z))) |
(+.f64 (*.f64 y z) (*.f64 x (+.f64 y z))) |
(+.f64 (*.f64 y x) (*.f64 z (+.f64 y x))) |
(*.f64 z x) |
(+.f64 (*.f64 z x) (*.f64 y (+.f64 z x))) |
(+.f64 (*.f64 y z) (*.f64 x (+.f64 y z))) |
(+.f64 (*.f64 y x) (*.f64 z (+.f64 y x))) |
(+.f64 (*.f64 z x) (*.f64 y (+.f64 z x))) |
(+.f64 (*.f64 y z) (*.f64 x (+.f64 y z))) |
(+.f64 (*.f64 y x) (*.f64 z (+.f64 y x))) |
(+.f64 (*.f64 z x) (*.f64 y (+.f64 z x))) |
(+.f64 (*.f64 y z) (*.f64 x (+.f64 y z))) |
(+.f64 (*.f64 y x) (*.f64 z (+.f64 y x))) |
(*.f64 y (+.f64 z x)) |
(+.f64 (*.f64 z x) (*.f64 y (+.f64 z x))) |
(+.f64 (*.f64 y z) (*.f64 x (+.f64 y z))) |
(+.f64 (*.f64 y x) (*.f64 z (+.f64 y x))) |
(+.f64 (*.f64 z x) (*.f64 y (+.f64 z x))) |
(+.f64 (*.f64 y z) (*.f64 x (+.f64 y z))) |
(+.f64 (*.f64 y x) (*.f64 z (+.f64 y x))) |
(+.f64 (*.f64 z x) (*.f64 y (+.f64 z x))) |
(+.f64 (*.f64 y z) (*.f64 x (+.f64 y z))) |
(+.f64 (*.f64 y x) (*.f64 z (+.f64 y x))) |
(*.f64 -1 (*.f64 y (+.f64 (*.f64 -1 z) (*.f64 -1 x)))) |
(*.f64 y (+.f64 z x)) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y (+.f64 (*.f64 -1 z) (*.f64 -1 x))))) |
(+.f64 (*.f64 y z) (*.f64 x (+.f64 y z))) |
(+.f64 (*.f64 y x) (*.f64 z (+.f64 y x))) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y (+.f64 (*.f64 -1 z) (*.f64 -1 x))))) |
(+.f64 (*.f64 y z) (*.f64 x (+.f64 y z))) |
(+.f64 (*.f64 y x) (*.f64 z (+.f64 y x))) |
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y (+.f64 (*.f64 -1 z) (*.f64 -1 x))))) |
(+.f64 (*.f64 y z) (*.f64 x (+.f64 y z))) |
(+.f64 (*.f64 y x) (*.f64 z (+.f64 y x))) |
(*.f64 (+.f64 y z) x) |
(*.f64 x (+.f64 y z)) |
(*.f64 (+.f64 y z) x) |
(*.f64 x (+.f64 y z)) |
(*.f64 (+.f64 y z) x) |
(*.f64 x (+.f64 y z)) |
(*.f64 (+.f64 y z) x) |
(*.f64 x (+.f64 y z)) |
(*.f64 (+.f64 y z) x) |
(*.f64 x (+.f64 y z)) |
(*.f64 (+.f64 y z) x) |
(*.f64 x (+.f64 y z)) |
(*.f64 (+.f64 y z) x) |
(*.f64 x (+.f64 y z)) |
(*.f64 (+.f64 y z) x) |
(*.f64 x (+.f64 y z)) |
(*.f64 (+.f64 y z) x) |
(*.f64 x (+.f64 y z)) |
(*.f64 (+.f64 y z) x) |
(*.f64 x (+.f64 y z)) |
(*.f64 (+.f64 y z) x) |
(*.f64 x (+.f64 y z)) |
(*.f64 (+.f64 y z) x) |
(*.f64 x (+.f64 y z)) |
(*.f64 y x) |
(+.f64 (*.f64 z x) (*.f64 y x)) |
(*.f64 x (+.f64 y z)) |
(+.f64 (*.f64 z x) (*.f64 y x)) |
(*.f64 x (+.f64 y z)) |
(+.f64 (*.f64 z x) (*.f64 y x)) |
(*.f64 x (+.f64 y z)) |
(*.f64 z x) |
(+.f64 (*.f64 z x) (*.f64 y x)) |
(*.f64 x (+.f64 y z)) |
(+.f64 (*.f64 z x) (*.f64 y x)) |
(*.f64 x (+.f64 y z)) |
(+.f64 (*.f64 z x) (*.f64 y x)) |
(*.f64 x (+.f64 y z)) |
(*.f64 z x) |
(+.f64 (*.f64 z x) (*.f64 y x)) |
(*.f64 x (+.f64 y z)) |
(+.f64 (*.f64 z x) (*.f64 y x)) |
(*.f64 x (+.f64 y z)) |
(+.f64 (*.f64 z x) (*.f64 y x)) |
(*.f64 x (+.f64 y z)) |
(*.f64 z x) |
(+.f64 (*.f64 z x) (*.f64 y x)) |
(*.f64 x (+.f64 y z)) |
(+.f64 (*.f64 z x) (*.f64 y x)) |
(*.f64 x (+.f64 y z)) |
(+.f64 (*.f64 z x) (*.f64 y x)) |
(*.f64 x (+.f64 y z)) |
(*.f64 y x) |
(+.f64 (*.f64 z x) (*.f64 y x)) |
(*.f64 x (+.f64 y z)) |
(+.f64 (*.f64 z x) (*.f64 y x)) |
(*.f64 x (+.f64 y z)) |
(+.f64 (*.f64 z x) (*.f64 y x)) |
(*.f64 x (+.f64 y z)) |
(*.f64 y x) |
(+.f64 (*.f64 z x) (*.f64 y x)) |
(*.f64 x (+.f64 y z)) |
(+.f64 (*.f64 z x) (*.f64 y x)) |
(*.f64 x (+.f64 y z)) |
(+.f64 (*.f64 z x) (*.f64 y x)) |
(*.f64 x (+.f64 y z)) |
(+.f64 (sqrt.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y))) 0) |
(sqrt.f64 (+.f64 (*.f64 y z) (*.f64 x (+.f64 y z)))) |
(sqrt.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 y x)))) |
(+.f64 0 (sqrt.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y)))) |
(sqrt.f64 (+.f64 (*.f64 y z) (*.f64 x (+.f64 y z)))) |
(sqrt.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 y x)))) |
(+.f64 (*.f64 (sqrt.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y))) 1/2) (*.f64 (sqrt.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y))) 1/2)) |
(sqrt.f64 (+.f64 (*.f64 y z) (*.f64 x (+.f64 y z)))) |
(sqrt.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 y x)))) |
(-.f64 (sqrt.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y))) 0) |
(sqrt.f64 (+.f64 (*.f64 y z) (*.f64 x (+.f64 y z)))) |
(sqrt.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 y x)))) |
(*.f64 (sqrt.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y))) 1) |
(sqrt.f64 (+.f64 (*.f64 y z) (*.f64 x (+.f64 y z)))) |
(sqrt.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 y x)))) |
(*.f64 1 (sqrt.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y)))) |
(sqrt.f64 (+.f64 (*.f64 y z) (*.f64 x (+.f64 y z)))) |
(sqrt.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 y x)))) |
(*.f64 2 (*.f64 (sqrt.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y))) 1/2)) |
(sqrt.f64 (+.f64 (*.f64 y z) (*.f64 x (+.f64 y z)))) |
(sqrt.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 y x)))) |
(*.f64 (*.f64 (sqrt.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y))) 2) 1/2) |
(sqrt.f64 (+.f64 (*.f64 y z) (*.f64 x (+.f64 y z)))) |
(sqrt.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 y x)))) |
(*.f64 4 (/.f64 (sqrt.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y))) 4)) |
(sqrt.f64 (+.f64 (*.f64 y z) (*.f64 x (+.f64 y z)))) |
(sqrt.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 y x)))) |
(*.f64 (*.f64 (sqrt.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y))) 4) 1/4) |
(sqrt.f64 (+.f64 (*.f64 y z) (*.f64 x (+.f64 y z)))) |
(sqrt.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 y x)))) |
(*.f64 1/2 (*.f64 (sqrt.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y))) 2)) |
(sqrt.f64 (+.f64 (*.f64 y z) (*.f64 x (+.f64 y z)))) |
(sqrt.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 y x)))) |
(*.f64 (*.f64 (sqrt.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y))) 1/2) 2) |
(sqrt.f64 (+.f64 (*.f64 y z) (*.f64 x (+.f64 y z)))) |
(sqrt.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 y x)))) |
(*.f64 1/4 (*.f64 (sqrt.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y))) 4)) |
(sqrt.f64 (+.f64 (*.f64 y z) (*.f64 x (+.f64 y z)))) |
(sqrt.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 y x)))) |
(*.f64 (/.f64 (sqrt.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y))) 4) 4) |
(sqrt.f64 (+.f64 (*.f64 y z) (*.f64 x (+.f64 y z)))) |
(sqrt.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 y x)))) |
(/.f64 (sqrt.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y))) 1) |
(sqrt.f64 (+.f64 (*.f64 y z) (*.f64 x (+.f64 y z)))) |
(sqrt.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 y x)))) |
(/.f64 (*.f64 (sqrt.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y))) 2) 2) |
(sqrt.f64 (+.f64 (*.f64 y z) (*.f64 x (+.f64 y z)))) |
(sqrt.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 y x)))) |
(/.f64 (*.f64 (sqrt.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y))) 4) 4) |
(sqrt.f64 (+.f64 (*.f64 y z) (*.f64 x (+.f64 y z)))) |
(sqrt.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 y x)))) |
(/.f64 (*.f64 (sqrt.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y))) 8) 8) |
(sqrt.f64 (+.f64 (*.f64 y z) (*.f64 x (+.f64 y z)))) |
(sqrt.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 y x)))) |
(/.f64 (*.f64 2 (*.f64 (sqrt.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y))) 8)) 16) |
(sqrt.f64 (+.f64 (*.f64 y z) (*.f64 x (+.f64 y z)))) |
(sqrt.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 y x)))) |
(/.f64 (+.f64 (*.f64 2 (*.f64 (sqrt.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y))) 8)) (*.f64 2 (*.f64 (sqrt.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y))) 8))) 32) |
(sqrt.f64 (+.f64 (*.f64 y z) (*.f64 x (+.f64 y z)))) |
(sqrt.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 y x)))) |
(-.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y)) 0) |
(+.f64 (*.f64 y z) (*.f64 x (+.f64 y z))) |
(+.f64 (*.f64 y x) (*.f64 z (+.f64 y x))) |
(*.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y)) 1) |
(+.f64 (*.f64 y z) (*.f64 x (+.f64 y z))) |
(+.f64 (*.f64 y x) (*.f64 z (+.f64 y x))) |
(*.f64 1 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y))) |
(+.f64 (*.f64 y z) (*.f64 x (+.f64 y z))) |
(+.f64 (*.f64 y x) (*.f64 z (+.f64 y x))) |
(*.f64 2 (*.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y)) 1/2)) |
(+.f64 (*.f64 y z) (*.f64 x (+.f64 y z))) |
(+.f64 (*.f64 y x) (*.f64 z (+.f64 y x))) |
(*.f64 2 (+.f64 (*.f64 y (*.f64 z 1/2)) (*.f64 x (*.f64 (+.f64 z y) 1/2)))) |
(+.f64 (*.f64 y z) (*.f64 x (+.f64 y z))) |
(+.f64 (*.f64 y x) (*.f64 z (+.f64 y x))) |
(*.f64 2 (+.f64 (*.f64 x (*.f64 (+.f64 z y) 1/2)) (*.f64 y (*.f64 z 1/2)))) |
(+.f64 (*.f64 y z) (*.f64 x (+.f64 y z))) |
(+.f64 (*.f64 y x) (*.f64 z (+.f64 y x))) |
(*.f64 (*.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y)) 2) 1/2) |
(+.f64 (*.f64 y z) (*.f64 x (+.f64 y z))) |
(+.f64 (*.f64 y x) (*.f64 z (+.f64 y x))) |
(*.f64 4 (/.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y)) 4)) |
(+.f64 (*.f64 y z) (*.f64 x (+.f64 y z))) |
(+.f64 (*.f64 y x) (*.f64 z (+.f64 y x))) |
(*.f64 (*.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y)) 4) 1/4) |
(+.f64 (*.f64 y z) (*.f64 x (+.f64 y z))) |
(+.f64 (*.f64 y x) (*.f64 z (+.f64 y x))) |
(*.f64 1/2 (*.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y)) 2)) |
(+.f64 (*.f64 y z) (*.f64 x (+.f64 y z))) |
(+.f64 (*.f64 y x) (*.f64 z (+.f64 y x))) |
(*.f64 1/2 (+.f64 (*.f64 y (+.f64 z z)) (*.f64 x (*.f64 (+.f64 z y) 2)))) |
(+.f64 (*.f64 y z) (*.f64 x (+.f64 y z))) |
(+.f64 (*.f64 y x) (*.f64 z (+.f64 y x))) |
(*.f64 1/2 (+.f64 (*.f64 x (*.f64 (+.f64 z y) 2)) (*.f64 y (+.f64 z z)))) |
(+.f64 (*.f64 y z) (*.f64 x (+.f64 y z))) |
(+.f64 (*.f64 y x) (*.f64 z (+.f64 y x))) |
(*.f64 (*.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y)) 1/2) 2) |
(+.f64 (*.f64 y z) (*.f64 x (+.f64 y z))) |
(+.f64 (*.f64 y x) (*.f64 z (+.f64 y x))) |
(*.f64 1/4 (*.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y)) 4)) |
(+.f64 (*.f64 y z) (*.f64 x (+.f64 y z))) |
(+.f64 (*.f64 y x) (*.f64 z (+.f64 y x))) |
(*.f64 (/.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y)) 4) 4) |
(+.f64 (*.f64 y z) (*.f64 x (+.f64 y z))) |
(+.f64 (*.f64 y x) (*.f64 z (+.f64 y x))) |
(/.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y)) 1) |
(+.f64 (*.f64 y z) (*.f64 x (+.f64 y z))) |
(+.f64 (*.f64 y x) (*.f64 z (+.f64 y x))) |
(/.f64 (*.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y)) 2) 2) |
(+.f64 (*.f64 y z) (*.f64 x (+.f64 y z))) |
(+.f64 (*.f64 y x) (*.f64 z (+.f64 y x))) |
(/.f64 (*.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y)) 4) 4) |
(+.f64 (*.f64 y z) (*.f64 x (+.f64 y z))) |
(+.f64 (*.f64 y x) (*.f64 z (+.f64 y x))) |
(/.f64 (*.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y)) 8) 8) |
(+.f64 (*.f64 y z) (*.f64 x (+.f64 y z))) |
(+.f64 (*.f64 y x) (*.f64 z (+.f64 y x))) |
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y)) 8)) 16) |
(+.f64 (*.f64 y z) (*.f64 x (+.f64 y z))) |
(+.f64 (*.f64 y x) (*.f64 z (+.f64 y x))) |
(/.f64 (+.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y)) 8)) (*.f64 2 (*.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y)) 8))) 32) |
(+.f64 (*.f64 y z) (*.f64 x (+.f64 y z))) |
(+.f64 (*.f64 y x) (*.f64 z (+.f64 y x))) |
(+.f64 (*.f64 x (+.f64 z y)) 0) |
(*.f64 x (+.f64 y z)) |
(+.f64 0 (*.f64 x (+.f64 z y))) |
(*.f64 x (+.f64 y z)) |
(+.f64 (*.f64 x (*.f64 (+.f64 z y) 1/2)) (*.f64 x (*.f64 (+.f64 z y) 1/2))) |
(*.f64 x (+.f64 y z)) |
(-.f64 (*.f64 x (+.f64 z y)) 0) |
(*.f64 x (+.f64 y z)) |
(/.f64 (*.f64 x (+.f64 z y)) 1) |
(*.f64 x (+.f64 y z)) |
(/.f64 (*.f64 x (*.f64 (+.f64 z y) 2)) 2) |
(*.f64 x (+.f64 y z)) |
(/.f64 (*.f64 (+.f64 z y) (*.f64 x 4)) 4) |
(*.f64 x (+.f64 y z)) |
(/.f64 (*.f64 (*.f64 x (+.f64 z y)) 8) 8) |
(*.f64 x (+.f64 y z)) |
(/.f64 (*.f64 2 (*.f64 (*.f64 x (+.f64 z y)) 8)) 16) |
(*.f64 x (+.f64 y z)) |
(/.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 x (+.f64 z y)) 8)) (*.f64 2 (*.f64 (*.f64 x (+.f64 z y)) 8))) 32) |
(*.f64 x (+.f64 y z)) |
Compiled 6334 to 3453 computations (45.5% saved)
7 alts after pruning (7 fresh and 0 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 230 | 7 | 237 |
| Fresh | 0 | 0 | 0 |
| Picked | 1 | 0 | 1 |
| Done | 1 | 0 | 1 |
| Total | 232 | 7 | 239 |
| Status | Error | Program |
|---|---|---|
| 62.2b | (*.f64 2 (+.f64 (sqrt.f64 (*.f64 z x)) (*.f64 y (*.f64 (*.f64 (+.f64 z x) (sqrt.f64 (/.f64 1 (*.f64 z x)))) 1/2)))) | |
| 38.7b | (*.f64 2 (+.f64 (sqrt.f64 (*.f64 y x)) (*.f64 z (*.f64 (*.f64 (+.f64 y x) (sqrt.f64 (/.f64 1 (*.f64 y x)))) 1/2)))) | |
| ▶ | 37.0b | (*.f64 2 (sqrt.f64 (*.f64 (+.f64 y z) x))) |
| ▶ | 42.2b | (*.f64 2 (sqrt.f64 (*.f64 (+.f64 y x) z))) |
| ▶ | 61.7b | (*.f64 2 (sqrt.f64 (*.f64 z x))) |
| ▶ | 43.1b | (*.f64 2 (sqrt.f64 (*.f64 y z))) |
| ▶ | 38.5b | (*.f64 2 (sqrt.f64 (*.f64 y x))) |
Compiled 194 to 138 computations (28.9% saved)
Found 2 expressions with local error:
| New | Error | Program |
|---|---|---|
| ✓ | 0.0b | (*.f64 (+.f64 y z) x) |
| ✓ | 10.9b | (sqrt.f64 (*.f64 (+.f64 y z) x)) |
Compiled 29 to 9 computations (69% saved)
18 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 1.0ms | y | @ | inf | (sqrt.f64 (*.f64 (+.f64 y z) x)) |
| 1.0ms | z | @ | inf | (sqrt.f64 (*.f64 (+.f64 y z) x)) |
| 0.0ms | x | @ | -inf | (sqrt.f64 (*.f64 (+.f64 y z) x)) |
| 0.0ms | x | @ | 0 | (sqrt.f64 (*.f64 (+.f64 y z) x)) |
| 0.0ms | y | @ | 0 | (sqrt.f64 (*.f64 (+.f64 y z) x)) |
| 1× | batch-egg-rewrite |
| 1864× | bool.json-1 |
| 1864× | bool.json-2 |
| 1320× | rational.json-simplify-35 |
| 1160× | rational.json-1 |
| 1160× | rational.json-2 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 9 | 30 |
| 1 | 88 | 30 |
| 2 | 233 | 30 |
| 3 | 480 | 30 |
| 4 | 992 | 30 |
| 5 | 2186 | 30 |
| 6 | 4526 | 30 |
| 7 | 7372 | 30 |
| 1× | node limit |
| Inputs |
|---|
(sqrt.f64 (*.f64 (+.f64 y z) x)) |
(*.f64 (+.f64 y z) x) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (sqrt.f64 (*.f64 (+.f64 y z) x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (sqrt.f64 (*.f64 (+.f64 y z) x)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (sqrt.f64 (*.f64 (+.f64 y z) x)) 1/2) (*.f64 (sqrt.f64 (*.f64 (+.f64 y z) x)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (sqrt.f64 (*.f64 (+.f64 y z) x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 (+.f64 y z) x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (sqrt.f64 (*.f64 (+.f64 y z) x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (sqrt.f64 (*.f64 (+.f64 y z) x)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sqrt.f64 (*.f64 (+.f64 y z) x)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (sqrt.f64 (*.f64 (+.f64 y z) x)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sqrt.f64 (*.f64 (+.f64 y z) x)) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (sqrt.f64 (*.f64 (+.f64 y z) x)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sqrt.f64 (*.f64 (+.f64 y z) x)) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (sqrt.f64 (*.f64 (+.f64 y z) x)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 (*.f64 (+.f64 y z) x)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (sqrt.f64 (*.f64 (+.f64 y z) x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sqrt.f64 (*.f64 (+.f64 y z) x)) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sqrt.f64 (*.f64 (+.f64 y z) x)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sqrt.f64 (*.f64 (+.f64 y z) x)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (sqrt.f64 (*.f64 (+.f64 y z) x)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (*.f64 (+.f64 y z) x)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (*.f64 (+.f64 y z) x)) 8))) (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (*.f64 (+.f64 y z) x)) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (sqrt.f64 (*.f64 (+.f64 y z) x))))))) (#(struct:change #<rule egg-rr> (2) ((x and (sqrt.f64 (*.f64 (+.f64 y z) x)) (sqrt.f64 (*.f64 (+.f64 y z) x)))))) (#(struct:change #<rule egg-rr> (2) ((x or (sqrt.f64 (*.f64 (+.f64 y z) x)) (sqrt.f64 (*.f64 (+.f64 y z) x))))))) |
((#(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 (+.f64 y z) x) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 (+.f64 y z) x) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 y z) x) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 y z) x) 8))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 y z) x) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 (+.f64 y z) x)))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 (+.f64 y z) x) (*.f64 (+.f64 y z) x))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 (+.f64 y z) x) (*.f64 (+.f64 y z) x)))))) |
| 1× | egg-herbie |
| 3706× | rational.json-simplify-41 |
| 3534× | rational.json-simplify-35 |
| 1576× | rational.json-simplify-2 |
| 656× | rational.json-simplify-1 |
| 478× | rational.json-simplify-51 |
Useful iterations: 1 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 117 | 1446 |
| 1 | 251 | 1272 |
| 2 | 567 | 1272 |
| 3 | 1262 | 1272 |
| 4 | 2377 | 1272 |
| 5 | 3061 | 1272 |
| 6 | 3396 | 1272 |
| 7 | 3691 | 1272 |
| 8 | 3915 | 1272 |
| 9 | 4118 | 1272 |
| 10 | 4118 | 1272 |
| 11 | 4320 | 1272 |
| 12 | 4352 | 1272 |
| 13 | 4397 | 1272 |
| 14 | 4613 | 1272 |
| 15 | 4833 | 1272 |
| 16 | 5049 | 1272 |
| 17 | 5252 | 1272 |
| 18 | 5449 | 1272 |
| 1× | node limit |
| Inputs |
|---|
(sqrt.f64 (*.f64 z x)) |
(+.f64 (*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 x z)))) (sqrt.f64 (*.f64 z x))) |
(+.f64 (*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 x z)))) (+.f64 (*.f64 -1/8 (*.f64 (pow.f64 y 2) (sqrt.f64 (/.f64 x (pow.f64 z 3))))) (sqrt.f64 (*.f64 z x)))) |
(+.f64 (*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 x z)))) (+.f64 (*.f64 -1/8 (*.f64 (pow.f64 y 2) (sqrt.f64 (/.f64 x (pow.f64 z 3))))) (+.f64 (*.f64 1/16 (*.f64 (pow.f64 y 3) (sqrt.f64 (/.f64 x (pow.f64 z 5))))) (sqrt.f64 (*.f64 z x))))) |
(sqrt.f64 (*.f64 y x)) |
(+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 x y)) z)) (sqrt.f64 (*.f64 y x))) |
(+.f64 (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 x (pow.f64 y 3))) (pow.f64 z 2))) (+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 x y)) z)) (sqrt.f64 (*.f64 y x)))) |
(+.f64 (*.f64 1/16 (*.f64 (sqrt.f64 (/.f64 x (pow.f64 y 5))) (pow.f64 z 3))) (+.f64 (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 x (pow.f64 y 3))) (pow.f64 z 2))) (+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 x y)) z)) (sqrt.f64 (*.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 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 (sqrt.f64 (*.f64 (+.f64 y z) x)) 0) |
(+.f64 0 (sqrt.f64 (*.f64 (+.f64 y z) x))) |
(+.f64 (*.f64 (sqrt.f64 (*.f64 (+.f64 y z) x)) 1/2) (*.f64 (sqrt.f64 (*.f64 (+.f64 y z) x)) 1/2)) |
(-.f64 (sqrt.f64 (*.f64 (+.f64 y z) x)) 0) |
(*.f64 (sqrt.f64 (*.f64 (+.f64 y z) x)) 1) |
(*.f64 1 (sqrt.f64 (*.f64 (+.f64 y z) x))) |
(*.f64 2 (*.f64 (sqrt.f64 (*.f64 (+.f64 y z) x)) 1/2)) |
(*.f64 (*.f64 (sqrt.f64 (*.f64 (+.f64 y z) x)) 2) 1/2) |
(*.f64 4 (/.f64 (sqrt.f64 (*.f64 (+.f64 y z) x)) 4)) |
(*.f64 (*.f64 (sqrt.f64 (*.f64 (+.f64 y z) x)) 4) 1/4) |
(*.f64 1/2 (*.f64 (sqrt.f64 (*.f64 (+.f64 y z) x)) 2)) |
(*.f64 (*.f64 (sqrt.f64 (*.f64 (+.f64 y z) x)) 1/2) 2) |
(*.f64 1/4 (*.f64 (sqrt.f64 (*.f64 (+.f64 y z) x)) 4)) |
(*.f64 (/.f64 (sqrt.f64 (*.f64 (+.f64 y z) x)) 4) 4) |
(/.f64 (sqrt.f64 (*.f64 (+.f64 y z) x)) 1) |
(/.f64 (*.f64 (sqrt.f64 (*.f64 (+.f64 y z) x)) 2) 2) |
(/.f64 (*.f64 (sqrt.f64 (*.f64 (+.f64 y z) x)) 4) 4) |
(/.f64 (*.f64 (sqrt.f64 (*.f64 (+.f64 y z) x)) 8) 8) |
(/.f64 (*.f64 2 (*.f64 (sqrt.f64 (*.f64 (+.f64 y z) x)) 8)) 16) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (*.f64 (+.f64 y z) x)) 8))) 32) |
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (*.f64 (+.f64 y z) x)) 8))) (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (*.f64 (+.f64 y z) x)) 8)))) 64) |
(+.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 (+.f64 y z) x) 8) 8) |
(/.f64 (*.f64 2 (*.f64 (*.f64 (+.f64 y z) x) 8)) 16) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 y z) x) 8))) 32) |
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 y z) x) 8))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 y z) x) 8)))) 64) |
| Outputs |
|---|
(sqrt.f64 (*.f64 z x)) |
(+.f64 (*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 x z)))) (sqrt.f64 (*.f64 z x))) |
(+.f64 (sqrt.f64 (*.f64 z x)) (*.f64 y (*.f64 (sqrt.f64 (/.f64 x z)) 1/2))) |
(+.f64 (sqrt.f64 (*.f64 z x)) (*.f64 y (*.f64 1/2 (sqrt.f64 (/.f64 x z))))) |
(+.f64 (sqrt.f64 (*.f64 z x)) (*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 x z))))) |
(+.f64 (sqrt.f64 (*.f64 z x)) (*.f64 (sqrt.f64 (/.f64 x z)) (*.f64 1/2 y))) |
(+.f64 (*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 x z)))) (+.f64 (*.f64 -1/8 (*.f64 (pow.f64 y 2) (sqrt.f64 (/.f64 x (pow.f64 z 3))))) (sqrt.f64 (*.f64 z x)))) |
(+.f64 (*.f64 -1/8 (*.f64 (pow.f64 y 2) (sqrt.f64 (/.f64 x (pow.f64 z 3))))) (+.f64 (sqrt.f64 (*.f64 z x)) (*.f64 y (*.f64 (sqrt.f64 (/.f64 x z)) 1/2)))) |
(+.f64 (+.f64 (sqrt.f64 (*.f64 z x)) (*.f64 y (*.f64 1/2 (sqrt.f64 (/.f64 x z))))) (*.f64 (sqrt.f64 (/.f64 x (pow.f64 z 3))) (*.f64 (pow.f64 y 2) -1/8))) |
(+.f64 (*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 x z)))) (+.f64 (sqrt.f64 (*.f64 z x)) (*.f64 -1/8 (*.f64 (pow.f64 y 2) (sqrt.f64 (/.f64 x (pow.f64 z 3))))))) |
(+.f64 (+.f64 (sqrt.f64 (*.f64 z x)) (*.f64 (sqrt.f64 (/.f64 x z)) (*.f64 1/2 y))) (*.f64 (sqrt.f64 (/.f64 x (pow.f64 z 3))) (*.f64 -1/8 (pow.f64 y 2)))) |
(+.f64 (+.f64 (sqrt.f64 (*.f64 z x)) (*.f64 y (*.f64 1/2 (sqrt.f64 (/.f64 x z))))) (*.f64 (sqrt.f64 (/.f64 x (pow.f64 z 3))) (*.f64 -1/8 (pow.f64 y 2)))) |
(+.f64 (*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 x z)))) (+.f64 (*.f64 -1/8 (*.f64 (pow.f64 y 2) (sqrt.f64 (/.f64 x (pow.f64 z 3))))) (+.f64 (*.f64 1/16 (*.f64 (pow.f64 y 3) (sqrt.f64 (/.f64 x (pow.f64 z 5))))) (sqrt.f64 (*.f64 z x))))) |
(+.f64 (*.f64 -1/8 (*.f64 (pow.f64 y 2) (sqrt.f64 (/.f64 x (pow.f64 z 3))))) (+.f64 (+.f64 (sqrt.f64 (*.f64 z x)) (*.f64 1/16 (*.f64 (pow.f64 y 3) (sqrt.f64 (/.f64 x (pow.f64 z 5)))))) (*.f64 y (*.f64 (sqrt.f64 (/.f64 x z)) 1/2)))) |
(+.f64 (*.f64 (sqrt.f64 (/.f64 x (pow.f64 z 3))) (*.f64 (pow.f64 y 2) -1/8)) (+.f64 (*.f64 y (*.f64 1/2 (sqrt.f64 (/.f64 x z)))) (+.f64 (sqrt.f64 (*.f64 z x)) (*.f64 (sqrt.f64 (/.f64 x (pow.f64 z 5))) (*.f64 (pow.f64 y 3) 1/16))))) |
(+.f64 (*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 x z)))) (+.f64 (sqrt.f64 (*.f64 z x)) (+.f64 (*.f64 -1/8 (*.f64 (pow.f64 y 2) (sqrt.f64 (/.f64 x (pow.f64 z 3))))) (*.f64 1/16 (*.f64 (pow.f64 y 3) (sqrt.f64 (/.f64 x (pow.f64 z 5)))))))) |
(+.f64 (sqrt.f64 (*.f64 z x)) (+.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 x z)) (*.f64 1/2 y)) (*.f64 (sqrt.f64 (/.f64 x (pow.f64 z 5))) (*.f64 1/16 (pow.f64 y 3)))) (*.f64 (sqrt.f64 (/.f64 x (pow.f64 z 3))) (*.f64 -1/8 (pow.f64 y 2))))) |
(+.f64 (sqrt.f64 (*.f64 z x)) (+.f64 (*.f64 (sqrt.f64 (/.f64 x (pow.f64 z 3))) (*.f64 -1/8 (pow.f64 y 2))) (+.f64 (*.f64 (sqrt.f64 (/.f64 x z)) (*.f64 1/2 y)) (*.f64 (sqrt.f64 (/.f64 x (pow.f64 z 5))) (*.f64 1/16 (pow.f64 y 3)))))) |
(+.f64 (sqrt.f64 (*.f64 z x)) (+.f64 (*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 x z)))) (+.f64 (*.f64 -1/8 (*.f64 (pow.f64 y 2) (sqrt.f64 (/.f64 x (pow.f64 z 3))))) (*.f64 1/16 (*.f64 (pow.f64 y 3) (sqrt.f64 (/.f64 x (pow.f64 z 5)))))))) |
(+.f64 (+.f64 (sqrt.f64 (*.f64 z x)) (*.f64 y (*.f64 1/2 (sqrt.f64 (/.f64 x z))))) (+.f64 (*.f64 (sqrt.f64 (/.f64 x (pow.f64 z 3))) (*.f64 -1/8 (pow.f64 y 2))) (*.f64 (sqrt.f64 (/.f64 x (pow.f64 z 5))) (*.f64 1/16 (pow.f64 y 3))))) |
(sqrt.f64 (*.f64 y x)) |
(sqrt.f64 (*.f64 x y)) |
(+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 x y)) z)) (sqrt.f64 (*.f64 y x))) |
(+.f64 (sqrt.f64 (*.f64 x y)) (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 z 1/2))) |
(+.f64 (sqrt.f64 (*.f64 x y)) (*.f64 1/2 (*.f64 z (sqrt.f64 (/.f64 x y))))) |
(+.f64 (sqrt.f64 (*.f64 x y)) (*.f64 z (*.f64 1/2 (sqrt.f64 (/.f64 x y))))) |
(+.f64 (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 x (pow.f64 y 3))) (pow.f64 z 2))) (+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 x y)) z)) (sqrt.f64 (*.f64 y x)))) |
(+.f64 (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 z 1/2)) (+.f64 (sqrt.f64 (*.f64 x y)) (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 x (pow.f64 y 3))) (pow.f64 z 2))))) |
(+.f64 (sqrt.f64 (*.f64 x y)) (+.f64 (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 x (pow.f64 y 3))) (pow.f64 z 2))) (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 z 1/2)))) |
(+.f64 (+.f64 (sqrt.f64 (*.f64 x y)) (*.f64 1/2 (*.f64 z (sqrt.f64 (/.f64 x y))))) (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 x (pow.f64 y 3))) (pow.f64 z 2)))) |
(+.f64 (sqrt.f64 (*.f64 x y)) (+.f64 (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 z 1/2)) (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 x (pow.f64 y 3))) (pow.f64 z 2))))) |
(+.f64 (+.f64 (sqrt.f64 (*.f64 x y)) (*.f64 z (*.f64 1/2 (sqrt.f64 (/.f64 x y))))) (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 x (pow.f64 y 3))) (pow.f64 z 2)))) |
(+.f64 (*.f64 1/16 (*.f64 (sqrt.f64 (/.f64 x (pow.f64 y 5))) (pow.f64 z 3))) (+.f64 (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 x (pow.f64 y 3))) (pow.f64 z 2))) (+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 x y)) z)) (sqrt.f64 (*.f64 y x))))) |
(+.f64 (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 x (pow.f64 y 3))) (pow.f64 z 2))) (+.f64 (+.f64 (sqrt.f64 (*.f64 x y)) (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 z 1/2))) (*.f64 (sqrt.f64 (/.f64 x (pow.f64 y 5))) (*.f64 (pow.f64 z 3) 1/16)))) |
(+.f64 (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 x (pow.f64 y 3))) (pow.f64 z 2))) (+.f64 (*.f64 1/2 (*.f64 z (sqrt.f64 (/.f64 x y)))) (+.f64 (sqrt.f64 (*.f64 x y)) (*.f64 1/16 (*.f64 (pow.f64 z 3) (sqrt.f64 (/.f64 x (pow.f64 y 5)))))))) |
(+.f64 (sqrt.f64 (*.f64 x y)) (+.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 z 1/2)) (*.f64 (sqrt.f64 (/.f64 x (pow.f64 y 5))) (*.f64 (pow.f64 z 3) 1/16))) (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 x (pow.f64 y 3))) (pow.f64 z 2))))) |
(+.f64 (sqrt.f64 (*.f64 x y)) (+.f64 (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 x (pow.f64 y 3))) (pow.f64 z 2))) (+.f64 (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 z 1/2)) (*.f64 (sqrt.f64 (/.f64 x (pow.f64 y 5))) (*.f64 (pow.f64 z 3) 1/16))))) |
(+.f64 (sqrt.f64 (*.f64 x y)) (+.f64 (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 x (pow.f64 y 3))) (pow.f64 z 2))) (+.f64 (*.f64 z (*.f64 1/2 (sqrt.f64 (/.f64 x y)))) (*.f64 (pow.f64 z 3) (*.f64 1/16 (sqrt.f64 (/.f64 x (pow.f64 y 5)))))))) |
(+.f64 (*.f64 z (*.f64 1/2 (sqrt.f64 (/.f64 x y)))) (+.f64 (sqrt.f64 (*.f64 x y)) (+.f64 (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 x (pow.f64 y 3))) (pow.f64 z 2))) (*.f64 (sqrt.f64 (/.f64 x (pow.f64 y 5))) (*.f64 (pow.f64 z 3) 1/16))))) |
(*.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 (sqrt.f64 (*.f64 (+.f64 y z) x)) 0) |
(sqrt.f64 (*.f64 x (+.f64 z y))) |
(+.f64 0 (sqrt.f64 (*.f64 (+.f64 y z) x))) |
(sqrt.f64 (*.f64 x (+.f64 z y))) |
(+.f64 (*.f64 (sqrt.f64 (*.f64 (+.f64 y z) x)) 1/2) (*.f64 (sqrt.f64 (*.f64 (+.f64 y z) x)) 1/2)) |
(sqrt.f64 (*.f64 x (+.f64 z y))) |
(-.f64 (sqrt.f64 (*.f64 (+.f64 y z) x)) 0) |
(sqrt.f64 (*.f64 x (+.f64 z y))) |
(*.f64 (sqrt.f64 (*.f64 (+.f64 y z) x)) 1) |
(sqrt.f64 (*.f64 x (+.f64 z y))) |
(*.f64 1 (sqrt.f64 (*.f64 (+.f64 y z) x))) |
(sqrt.f64 (*.f64 x (+.f64 z y))) |
(*.f64 2 (*.f64 (sqrt.f64 (*.f64 (+.f64 y z) x)) 1/2)) |
(sqrt.f64 (*.f64 x (+.f64 z y))) |
(*.f64 (*.f64 (sqrt.f64 (*.f64 (+.f64 y z) x)) 2) 1/2) |
(sqrt.f64 (*.f64 x (+.f64 z y))) |
(*.f64 4 (/.f64 (sqrt.f64 (*.f64 (+.f64 y z) x)) 4)) |
(sqrt.f64 (*.f64 x (+.f64 z y))) |
(*.f64 (*.f64 (sqrt.f64 (*.f64 (+.f64 y z) x)) 4) 1/4) |
(sqrt.f64 (*.f64 x (+.f64 z y))) |
(*.f64 1/2 (*.f64 (sqrt.f64 (*.f64 (+.f64 y z) x)) 2)) |
(sqrt.f64 (*.f64 x (+.f64 z y))) |
(*.f64 (*.f64 (sqrt.f64 (*.f64 (+.f64 y z) x)) 1/2) 2) |
(sqrt.f64 (*.f64 x (+.f64 z y))) |
(*.f64 1/4 (*.f64 (sqrt.f64 (*.f64 (+.f64 y z) x)) 4)) |
(sqrt.f64 (*.f64 x (+.f64 z y))) |
(*.f64 (/.f64 (sqrt.f64 (*.f64 (+.f64 y z) x)) 4) 4) |
(sqrt.f64 (*.f64 x (+.f64 z y))) |
(/.f64 (sqrt.f64 (*.f64 (+.f64 y z) x)) 1) |
(sqrt.f64 (*.f64 x (+.f64 z y))) |
(/.f64 (*.f64 (sqrt.f64 (*.f64 (+.f64 y z) x)) 2) 2) |
(sqrt.f64 (*.f64 x (+.f64 z y))) |
(/.f64 (*.f64 (sqrt.f64 (*.f64 (+.f64 y z) x)) 4) 4) |
(sqrt.f64 (*.f64 x (+.f64 z y))) |
(/.f64 (*.f64 (sqrt.f64 (*.f64 (+.f64 y z) x)) 8) 8) |
(sqrt.f64 (*.f64 x (+.f64 z y))) |
(/.f64 (*.f64 2 (*.f64 (sqrt.f64 (*.f64 (+.f64 y z) x)) 8)) 16) |
(sqrt.f64 (*.f64 x (+.f64 z y))) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (*.f64 (+.f64 y z) x)) 8))) 32) |
(sqrt.f64 (*.f64 x (+.f64 z y))) |
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (*.f64 (+.f64 y z) x)) 8))) (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (*.f64 (+.f64 y z) x)) 8)))) 64) |
(sqrt.f64 (*.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 (+.f64 y z) x) 8) 8) |
(+.f64 (*.f64 z x) (*.f64 x y)) |
(*.f64 x (+.f64 z y)) |
(/.f64 (*.f64 2 (*.f64 (*.f64 (+.f64 y z) x) 8)) 16) |
(+.f64 (*.f64 z x) (*.f64 x y)) |
(*.f64 x (+.f64 z y)) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 y z) x) 8))) 32) |
(+.f64 (*.f64 z x) (*.f64 x y)) |
(*.f64 x (+.f64 z y)) |
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 y z) x) 8))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 y z) x) 8)))) 64) |
(+.f64 (*.f64 z x) (*.f64 x y)) |
(*.f64 x (+.f64 z y)) |
Found 1 expressions with local error:
| New | Error | Program |
|---|---|---|
| ✓ | 18.0b | (sqrt.f64 (*.f64 y x)) |
Compiled 19 to 8 computations (57.9% saved)
6 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 1.0ms | x | @ | 0 | (sqrt.f64 (*.f64 y x)) |
| 0.0ms | x | @ | -inf | (sqrt.f64 (*.f64 y x)) |
| 0.0ms | y | @ | 0 | (sqrt.f64 (*.f64 y x)) |
| 0.0ms | y | @ | -inf | (sqrt.f64 (*.f64 y x)) |
| 0.0ms | x | @ | inf | (sqrt.f64 (*.f64 y x)) |
| 1× | batch-egg-rewrite |
| 1622× | bool.json-1 |
| 1622× | bool.json-2 |
| 1588× | rational.json-1 |
| 1588× | rational.json-2 |
| 1140× | rational.json-simplify-2 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 7 | 11 |
| 1 | 69 | 11 |
| 2 | 194 | 11 |
| 3 | 403 | 11 |
| 4 | 809 | 11 |
| 5 | 1739 | 11 |
| 6 | 3713 | 11 |
| 7 | 6673 | 11 |
| 1× | node limit |
| Inputs |
|---|
(sqrt.f64 (*.f64 y x)) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (sqrt.f64 (*.f64 y x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (sqrt.f64 (*.f64 y x)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (sqrt.f64 (*.f64 y x)) 1/2) (*.f64 (sqrt.f64 (*.f64 y x)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (sqrt.f64 (*.f64 y x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 y x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (sqrt.f64 (*.f64 y x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (sqrt.f64 (*.f64 y x)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sqrt.f64 (*.f64 y x)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (sqrt.f64 (*.f64 y x)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sqrt.f64 (*.f64 y x)) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (sqrt.f64 (*.f64 y x)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sqrt.f64 (*.f64 y x)) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (sqrt.f64 (*.f64 y x)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 (*.f64 y x)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (sqrt.f64 (*.f64 y x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sqrt.f64 (*.f64 y x)) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sqrt.f64 (*.f64 y x)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sqrt.f64 (*.f64 y x)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (sqrt.f64 (*.f64 y x)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (*.f64 y x)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (*.f64 y x)) 8))) (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (*.f64 y x)) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (sqrt.f64 (*.f64 y x))))))) (#(struct:change #<rule egg-rr> (2) ((x and (sqrt.f64 (*.f64 y x)) (sqrt.f64 (*.f64 y x)))))) (#(struct:change #<rule egg-rr> (2) ((x or (sqrt.f64 (*.f64 y x)) (sqrt.f64 (*.f64 y x))))))) |
| 1× | egg-herbie |
| 8076× | rational.json-simplify-41 |
| 2014× | rational.json-simplify-35 |
| 1790× | rational.json-simplify-2 |
| 1304× | rational.json-simplify-49 |
| 924× | rational.json-simplify-51 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 46 | 231 |
| 1 | 89 | 231 |
| 2 | 246 | 231 |
| 3 | 645 | 231 |
| 4 | 1044 | 231 |
| 5 | 2177 | 231 |
| 6 | 2813 | 231 |
| 7 | 2864 | 231 |
| 8 | 2898 | 231 |
| 9 | 2927 | 231 |
| 10 | 2953 | 231 |
| 11 | 2979 | 231 |
| 12 | 3025 | 231 |
| 13 | 3051 | 231 |
| 14 | 3077 | 231 |
| 15 | 3103 | 231 |
| 16 | 3129 | 231 |
| 17 | 3155 | 231 |
| 18 | 3181 | 231 |
| 19 | 4142 | 231 |
| 20 | 4537 | 231 |
| 21 | 4579 | 231 |
| 22 | 4611 | 231 |
| 23 | 4641 | 231 |
| 24 | 4670 | 231 |
| 25 | 4699 | 231 |
| 26 | 4728 | 231 |
| 27 | 4757 | 231 |
| 28 | 4786 | 231 |
| 29 | 4815 | 231 |
| 30 | 4844 | 231 |
| 31 | 4873 | 231 |
| 32 | 4902 | 231 |
| 33 | 4931 | 231 |
| 34 | 4960 | 231 |
| 35 | 4989 | 231 |
| 36 | 5018 | 231 |
| 37 | 5047 | 231 |
| 38 | 5076 | 231 |
| 39 | 5105 | 231 |
| 40 | 5105 | 231 |
| 1× | node limit |
| Inputs |
|---|
(+.f64 (sqrt.f64 (*.f64 y x)) 0) |
(+.f64 0 (sqrt.f64 (*.f64 y x))) |
(+.f64 (*.f64 (sqrt.f64 (*.f64 y x)) 1/2) (*.f64 (sqrt.f64 (*.f64 y x)) 1/2)) |
(-.f64 (sqrt.f64 (*.f64 y x)) 0) |
(*.f64 (sqrt.f64 (*.f64 y x)) 1) |
(*.f64 1 (sqrt.f64 (*.f64 y x))) |
(*.f64 2 (*.f64 (sqrt.f64 (*.f64 y x)) 1/2)) |
(*.f64 (*.f64 (sqrt.f64 (*.f64 y x)) 2) 1/2) |
(*.f64 4 (/.f64 (sqrt.f64 (*.f64 y x)) 4)) |
(*.f64 (*.f64 (sqrt.f64 (*.f64 y x)) 4) 1/4) |
(*.f64 1/2 (*.f64 (sqrt.f64 (*.f64 y x)) 2)) |
(*.f64 (*.f64 (sqrt.f64 (*.f64 y x)) 1/2) 2) |
(*.f64 1/4 (*.f64 (sqrt.f64 (*.f64 y x)) 4)) |
(*.f64 (/.f64 (sqrt.f64 (*.f64 y x)) 4) 4) |
(/.f64 (sqrt.f64 (*.f64 y x)) 1) |
(/.f64 (*.f64 (sqrt.f64 (*.f64 y x)) 2) 2) |
(/.f64 (*.f64 (sqrt.f64 (*.f64 y x)) 4) 4) |
(/.f64 (*.f64 (sqrt.f64 (*.f64 y x)) 8) 8) |
(/.f64 (*.f64 2 (*.f64 (sqrt.f64 (*.f64 y x)) 8)) 16) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (*.f64 y x)) 8))) 32) |
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (*.f64 y x)) 8))) (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (*.f64 y x)) 8)))) 64) |
| Outputs |
|---|
(+.f64 (sqrt.f64 (*.f64 y x)) 0) |
(sqrt.f64 (*.f64 y x)) |
(+.f64 0 (sqrt.f64 (*.f64 y x))) |
(sqrt.f64 (*.f64 y x)) |
(+.f64 (*.f64 (sqrt.f64 (*.f64 y x)) 1/2) (*.f64 (sqrt.f64 (*.f64 y x)) 1/2)) |
(sqrt.f64 (*.f64 y x)) |
(-.f64 (sqrt.f64 (*.f64 y x)) 0) |
(sqrt.f64 (*.f64 y x)) |
(*.f64 (sqrt.f64 (*.f64 y x)) 1) |
(sqrt.f64 (*.f64 y x)) |
(*.f64 1 (sqrt.f64 (*.f64 y x))) |
(sqrt.f64 (*.f64 y x)) |
(*.f64 2 (*.f64 (sqrt.f64 (*.f64 y x)) 1/2)) |
(sqrt.f64 (*.f64 y x)) |
(*.f64 (*.f64 (sqrt.f64 (*.f64 y x)) 2) 1/2) |
(sqrt.f64 (*.f64 y x)) |
(*.f64 4 (/.f64 (sqrt.f64 (*.f64 y x)) 4)) |
(sqrt.f64 (*.f64 y x)) |
(*.f64 (*.f64 (sqrt.f64 (*.f64 y x)) 4) 1/4) |
(sqrt.f64 (*.f64 y x)) |
(*.f64 1/2 (*.f64 (sqrt.f64 (*.f64 y x)) 2)) |
(sqrt.f64 (*.f64 y x)) |
(*.f64 (*.f64 (sqrt.f64 (*.f64 y x)) 1/2) 2) |
(sqrt.f64 (*.f64 y x)) |
(*.f64 1/4 (*.f64 (sqrt.f64 (*.f64 y x)) 4)) |
(sqrt.f64 (*.f64 y x)) |
(*.f64 (/.f64 (sqrt.f64 (*.f64 y x)) 4) 4) |
(sqrt.f64 (*.f64 y x)) |
(/.f64 (sqrt.f64 (*.f64 y x)) 1) |
(sqrt.f64 (*.f64 y x)) |
(/.f64 (*.f64 (sqrt.f64 (*.f64 y x)) 2) 2) |
(sqrt.f64 (*.f64 y x)) |
(/.f64 (*.f64 (sqrt.f64 (*.f64 y x)) 4) 4) |
(sqrt.f64 (*.f64 y x)) |
(/.f64 (*.f64 (sqrt.f64 (*.f64 y x)) 8) 8) |
(sqrt.f64 (*.f64 y x)) |
(/.f64 (*.f64 2 (*.f64 (sqrt.f64 (*.f64 y x)) 8)) 16) |
(sqrt.f64 (*.f64 y x)) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (*.f64 y x)) 8))) 32) |
(sqrt.f64 (*.f64 y x)) |
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (*.f64 y x)) 8))) (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (*.f64 y x)) 8)))) 64) |
(sqrt.f64 (*.f64 y x)) |
Found 1 expressions with local error:
| New | Error | Program |
|---|---|---|
| ✓ | 17.5b | (sqrt.f64 (*.f64 y z)) |
Compiled 19 to 8 computations (57.9% saved)
6 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 0.0ms | y | @ | 0 | (sqrt.f64 (*.f64 y z)) |
| 0.0ms | y | @ | -inf | (sqrt.f64 (*.f64 y z)) |
| 0.0ms | z | @ | -inf | (sqrt.f64 (*.f64 y z)) |
| 0.0ms | z | @ | inf | (sqrt.f64 (*.f64 y z)) |
| 0.0ms | y | @ | inf | (sqrt.f64 (*.f64 y z)) |
| 1× | batch-egg-rewrite |
| 1622× | bool.json-1 |
| 1622× | bool.json-2 |
| 1588× | rational.json-1 |
| 1588× | rational.json-2 |
| 1140× | rational.json-simplify-2 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 7 | 11 |
| 1 | 69 | 11 |
| 2 | 194 | 11 |
| 3 | 403 | 11 |
| 4 | 809 | 11 |
| 5 | 1739 | 11 |
| 6 | 3713 | 11 |
| 7 | 6673 | 11 |
| 1× | node limit |
| Inputs |
|---|
(sqrt.f64 (*.f64 y z)) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (sqrt.f64 (*.f64 y z)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (sqrt.f64 (*.f64 y z)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (sqrt.f64 (*.f64 y z)) 1/2) (*.f64 (sqrt.f64 (*.f64 y z)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (sqrt.f64 (*.f64 y z)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 y z)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (sqrt.f64 (*.f64 y z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (sqrt.f64 (*.f64 y z)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sqrt.f64 (*.f64 y z)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (sqrt.f64 (*.f64 y z)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sqrt.f64 (*.f64 y z)) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (sqrt.f64 (*.f64 y z)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sqrt.f64 (*.f64 y z)) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (sqrt.f64 (*.f64 y z)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 (*.f64 y z)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (sqrt.f64 (*.f64 y z)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sqrt.f64 (*.f64 y z)) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sqrt.f64 (*.f64 y z)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sqrt.f64 (*.f64 y z)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (sqrt.f64 (*.f64 y z)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (*.f64 y z)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (*.f64 y z)) 8))) (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (*.f64 y z)) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (sqrt.f64 (*.f64 y z))))))) (#(struct:change #<rule egg-rr> (2) ((x and (sqrt.f64 (*.f64 y z)) (sqrt.f64 (*.f64 y z)))))) (#(struct:change #<rule egg-rr> (2) ((x or (sqrt.f64 (*.f64 y z)) (sqrt.f64 (*.f64 y z))))))) |
| 1× | egg-herbie |
| 8076× | rational.json-simplify-41 |
| 2014× | rational.json-simplify-35 |
| 1790× | rational.json-simplify-2 |
| 1304× | rational.json-simplify-49 |
| 924× | rational.json-simplify-51 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 46 | 231 |
| 1 | 89 | 231 |
| 2 | 246 | 231 |
| 3 | 645 | 231 |
| 4 | 1044 | 231 |
| 5 | 2177 | 231 |
| 6 | 2813 | 231 |
| 7 | 2864 | 231 |
| 8 | 2898 | 231 |
| 9 | 2927 | 231 |
| 10 | 2953 | 231 |
| 11 | 2979 | 231 |
| 12 | 3025 | 231 |
| 13 | 3051 | 231 |
| 14 | 3077 | 231 |
| 15 | 3103 | 231 |
| 16 | 3129 | 231 |
| 17 | 3155 | 231 |
| 18 | 3181 | 231 |
| 19 | 4142 | 231 |
| 20 | 4537 | 231 |
| 21 | 4579 | 231 |
| 22 | 4611 | 231 |
| 23 | 4641 | 231 |
| 24 | 4670 | 231 |
| 25 | 4699 | 231 |
| 26 | 4728 | 231 |
| 27 | 4757 | 231 |
| 28 | 4786 | 231 |
| 29 | 4815 | 231 |
| 30 | 4844 | 231 |
| 31 | 4873 | 231 |
| 32 | 4902 | 231 |
| 33 | 4931 | 231 |
| 34 | 4960 | 231 |
| 35 | 4989 | 231 |
| 36 | 5018 | 231 |
| 37 | 5047 | 231 |
| 38 | 5076 | 231 |
| 39 | 5105 | 231 |
| 40 | 5105 | 231 |
| 1× | node limit |
| Inputs |
|---|
(+.f64 (sqrt.f64 (*.f64 y z)) 0) |
(+.f64 0 (sqrt.f64 (*.f64 y z))) |
(+.f64 (*.f64 (sqrt.f64 (*.f64 y z)) 1/2) (*.f64 (sqrt.f64 (*.f64 y z)) 1/2)) |
(-.f64 (sqrt.f64 (*.f64 y z)) 0) |
(*.f64 (sqrt.f64 (*.f64 y z)) 1) |
(*.f64 1 (sqrt.f64 (*.f64 y z))) |
(*.f64 2 (*.f64 (sqrt.f64 (*.f64 y z)) 1/2)) |
(*.f64 (*.f64 (sqrt.f64 (*.f64 y z)) 2) 1/2) |
(*.f64 4 (/.f64 (sqrt.f64 (*.f64 y z)) 4)) |
(*.f64 (*.f64 (sqrt.f64 (*.f64 y z)) 4) 1/4) |
(*.f64 1/2 (*.f64 (sqrt.f64 (*.f64 y z)) 2)) |
(*.f64 (*.f64 (sqrt.f64 (*.f64 y z)) 1/2) 2) |
(*.f64 1/4 (*.f64 (sqrt.f64 (*.f64 y z)) 4)) |
(*.f64 (/.f64 (sqrt.f64 (*.f64 y z)) 4) 4) |
(/.f64 (sqrt.f64 (*.f64 y z)) 1) |
(/.f64 (*.f64 (sqrt.f64 (*.f64 y z)) 2) 2) |
(/.f64 (*.f64 (sqrt.f64 (*.f64 y z)) 4) 4) |
(/.f64 (*.f64 (sqrt.f64 (*.f64 y z)) 8) 8) |
(/.f64 (*.f64 2 (*.f64 (sqrt.f64 (*.f64 y z)) 8)) 16) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (*.f64 y z)) 8))) 32) |
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (*.f64 y z)) 8))) (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (*.f64 y z)) 8)))) 64) |
| Outputs |
|---|
(+.f64 (sqrt.f64 (*.f64 y z)) 0) |
(sqrt.f64 (*.f64 y z)) |
(+.f64 0 (sqrt.f64 (*.f64 y z))) |
(sqrt.f64 (*.f64 y z)) |
(+.f64 (*.f64 (sqrt.f64 (*.f64 y z)) 1/2) (*.f64 (sqrt.f64 (*.f64 y z)) 1/2)) |
(sqrt.f64 (*.f64 y z)) |
(-.f64 (sqrt.f64 (*.f64 y z)) 0) |
(sqrt.f64 (*.f64 y z)) |
(*.f64 (sqrt.f64 (*.f64 y z)) 1) |
(sqrt.f64 (*.f64 y z)) |
(*.f64 1 (sqrt.f64 (*.f64 y z))) |
(sqrt.f64 (*.f64 y z)) |
(*.f64 2 (*.f64 (sqrt.f64 (*.f64 y z)) 1/2)) |
(sqrt.f64 (*.f64 y z)) |
(*.f64 (*.f64 (sqrt.f64 (*.f64 y z)) 2) 1/2) |
(sqrt.f64 (*.f64 y z)) |
(*.f64 4 (/.f64 (sqrt.f64 (*.f64 y z)) 4)) |
(sqrt.f64 (*.f64 y z)) |
(*.f64 (*.f64 (sqrt.f64 (*.f64 y z)) 4) 1/4) |
(sqrt.f64 (*.f64 y z)) |
(*.f64 1/2 (*.f64 (sqrt.f64 (*.f64 y z)) 2)) |
(sqrt.f64 (*.f64 y z)) |
(*.f64 (*.f64 (sqrt.f64 (*.f64 y z)) 1/2) 2) |
(sqrt.f64 (*.f64 y z)) |
(*.f64 1/4 (*.f64 (sqrt.f64 (*.f64 y z)) 4)) |
(sqrt.f64 (*.f64 y z)) |
(*.f64 (/.f64 (sqrt.f64 (*.f64 y z)) 4) 4) |
(sqrt.f64 (*.f64 y z)) |
(/.f64 (sqrt.f64 (*.f64 y z)) 1) |
(sqrt.f64 (*.f64 y z)) |
(/.f64 (*.f64 (sqrt.f64 (*.f64 y z)) 2) 2) |
(sqrt.f64 (*.f64 y z)) |
(/.f64 (*.f64 (sqrt.f64 (*.f64 y z)) 4) 4) |
(sqrt.f64 (*.f64 y z)) |
(/.f64 (*.f64 (sqrt.f64 (*.f64 y z)) 8) 8) |
(sqrt.f64 (*.f64 y z)) |
(/.f64 (*.f64 2 (*.f64 (sqrt.f64 (*.f64 y z)) 8)) 16) |
(sqrt.f64 (*.f64 y z)) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (*.f64 y z)) 8))) 32) |
(sqrt.f64 (*.f64 y z)) |
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (*.f64 y z)) 8))) (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (*.f64 y z)) 8)))) 64) |
(sqrt.f64 (*.f64 y z)) |
Found 1 expressions with local error:
| New | Error | Program |
|---|---|---|
| ✓ | 5.1b | (sqrt.f64 (*.f64 z x)) |
Compiled 19 to 8 computations (57.9% saved)
6 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 2.0ms | x | @ | inf | (sqrt.f64 (*.f64 z x)) |
| 0.0ms | z | @ | -inf | (sqrt.f64 (*.f64 z x)) |
| 0.0ms | x | @ | -inf | (sqrt.f64 (*.f64 z x)) |
| 0.0ms | z | @ | 0 | (sqrt.f64 (*.f64 z x)) |
| 0.0ms | z | @ | inf | (sqrt.f64 (*.f64 z x)) |
| 1× | batch-egg-rewrite |
| 1622× | bool.json-1 |
| 1622× | bool.json-2 |
| 1588× | rational.json-1 |
| 1588× | rational.json-2 |
| 1140× | rational.json-simplify-2 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 7 | 11 |
| 1 | 69 | 11 |
| 2 | 194 | 11 |
| 3 | 403 | 11 |
| 4 | 809 | 11 |
| 5 | 1739 | 11 |
| 6 | 3713 | 11 |
| 7 | 6673 | 11 |
| 1× | node limit |
| Inputs |
|---|
(sqrt.f64 (*.f64 z x)) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (sqrt.f64 (*.f64 z x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (sqrt.f64 (*.f64 z x)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (sqrt.f64 (*.f64 z x)) 1/2) (*.f64 (sqrt.f64 (*.f64 z x)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (sqrt.f64 (*.f64 z x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 z x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (sqrt.f64 (*.f64 z x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (sqrt.f64 (*.f64 z x)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sqrt.f64 (*.f64 z x)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (sqrt.f64 (*.f64 z x)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sqrt.f64 (*.f64 z x)) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (sqrt.f64 (*.f64 z x)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sqrt.f64 (*.f64 z x)) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (sqrt.f64 (*.f64 z x)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 (*.f64 z x)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (sqrt.f64 (*.f64 z x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sqrt.f64 (*.f64 z x)) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sqrt.f64 (*.f64 z x)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sqrt.f64 (*.f64 z x)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (sqrt.f64 (*.f64 z x)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (*.f64 z x)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (*.f64 z x)) 8))) (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (*.f64 z x)) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (sqrt.f64 (*.f64 z x))))))) (#(struct:change #<rule egg-rr> (2) ((x and (sqrt.f64 (*.f64 z x)) (sqrt.f64 (*.f64 z x)))))) (#(struct:change #<rule egg-rr> (2) ((x or (sqrt.f64 (*.f64 z x)) (sqrt.f64 (*.f64 z x))))))) |
| 1× | egg-herbie |
| 8076× | rational.json-simplify-41 |
| 2014× | rational.json-simplify-35 |
| 1790× | rational.json-simplify-2 |
| 1304× | rational.json-simplify-49 |
| 924× | rational.json-simplify-51 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 46 | 231 |
| 1 | 89 | 231 |
| 2 | 246 | 231 |
| 3 | 645 | 231 |
| 4 | 1044 | 231 |
| 5 | 2177 | 231 |
| 6 | 2813 | 231 |
| 7 | 2864 | 231 |
| 8 | 2898 | 231 |
| 9 | 2927 | 231 |
| 10 | 2953 | 231 |
| 11 | 2979 | 231 |
| 12 | 3025 | 231 |
| 13 | 3051 | 231 |
| 14 | 3077 | 231 |
| 15 | 3103 | 231 |
| 16 | 3129 | 231 |
| 17 | 3155 | 231 |
| 18 | 3181 | 231 |
| 19 | 4142 | 231 |
| 20 | 4537 | 231 |
| 21 | 4579 | 231 |
| 22 | 4611 | 231 |
| 23 | 4641 | 231 |
| 24 | 4670 | 231 |
| 25 | 4699 | 231 |
| 26 | 4728 | 231 |
| 27 | 4757 | 231 |
| 28 | 4786 | 231 |
| 29 | 4815 | 231 |
| 30 | 4844 | 231 |
| 31 | 4873 | 231 |
| 32 | 4902 | 231 |
| 33 | 4931 | 231 |
| 34 | 4960 | 231 |
| 35 | 4989 | 231 |
| 36 | 5018 | 231 |
| 37 | 5047 | 231 |
| 38 | 5076 | 231 |
| 39 | 5105 | 231 |
| 40 | 5105 | 231 |
| 1× | node limit |
| Inputs |
|---|
(+.f64 (sqrt.f64 (*.f64 z x)) 0) |
(+.f64 0 (sqrt.f64 (*.f64 z x))) |
(+.f64 (*.f64 (sqrt.f64 (*.f64 z x)) 1/2) (*.f64 (sqrt.f64 (*.f64 z x)) 1/2)) |
(-.f64 (sqrt.f64 (*.f64 z x)) 0) |
(*.f64 (sqrt.f64 (*.f64 z x)) 1) |
(*.f64 1 (sqrt.f64 (*.f64 z x))) |
(*.f64 2 (*.f64 (sqrt.f64 (*.f64 z x)) 1/2)) |
(*.f64 (*.f64 (sqrt.f64 (*.f64 z x)) 2) 1/2) |
(*.f64 4 (/.f64 (sqrt.f64 (*.f64 z x)) 4)) |
(*.f64 (*.f64 (sqrt.f64 (*.f64 z x)) 4) 1/4) |
(*.f64 1/2 (*.f64 (sqrt.f64 (*.f64 z x)) 2)) |
(*.f64 (*.f64 (sqrt.f64 (*.f64 z x)) 1/2) 2) |
(*.f64 1/4 (*.f64 (sqrt.f64 (*.f64 z x)) 4)) |
(*.f64 (/.f64 (sqrt.f64 (*.f64 z x)) 4) 4) |
(/.f64 (sqrt.f64 (*.f64 z x)) 1) |
(/.f64 (*.f64 (sqrt.f64 (*.f64 z x)) 2) 2) |
(/.f64 (*.f64 (sqrt.f64 (*.f64 z x)) 4) 4) |
(/.f64 (*.f64 (sqrt.f64 (*.f64 z x)) 8) 8) |
(/.f64 (*.f64 2 (*.f64 (sqrt.f64 (*.f64 z x)) 8)) 16) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (*.f64 z x)) 8))) 32) |
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (*.f64 z x)) 8))) (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (*.f64 z x)) 8)))) 64) |
| Outputs |
|---|
(+.f64 (sqrt.f64 (*.f64 z x)) 0) |
(sqrt.f64 (*.f64 z x)) |
(+.f64 0 (sqrt.f64 (*.f64 z x))) |
(sqrt.f64 (*.f64 z x)) |
(+.f64 (*.f64 (sqrt.f64 (*.f64 z x)) 1/2) (*.f64 (sqrt.f64 (*.f64 z x)) 1/2)) |
(sqrt.f64 (*.f64 z x)) |
(-.f64 (sqrt.f64 (*.f64 z x)) 0) |
(sqrt.f64 (*.f64 z x)) |
(*.f64 (sqrt.f64 (*.f64 z x)) 1) |
(sqrt.f64 (*.f64 z x)) |
(*.f64 1 (sqrt.f64 (*.f64 z x))) |
(sqrt.f64 (*.f64 z x)) |
(*.f64 2 (*.f64 (sqrt.f64 (*.f64 z x)) 1/2)) |
(sqrt.f64 (*.f64 z x)) |
(*.f64 (*.f64 (sqrt.f64 (*.f64 z x)) 2) 1/2) |
(sqrt.f64 (*.f64 z x)) |
(*.f64 4 (/.f64 (sqrt.f64 (*.f64 z x)) 4)) |
(sqrt.f64 (*.f64 z x)) |
(*.f64 (*.f64 (sqrt.f64 (*.f64 z x)) 4) 1/4) |
(sqrt.f64 (*.f64 z x)) |
(*.f64 1/2 (*.f64 (sqrt.f64 (*.f64 z x)) 2)) |
(sqrt.f64 (*.f64 z x)) |
(*.f64 (*.f64 (sqrt.f64 (*.f64 z x)) 1/2) 2) |
(sqrt.f64 (*.f64 z x)) |
(*.f64 1/4 (*.f64 (sqrt.f64 (*.f64 z x)) 4)) |
(sqrt.f64 (*.f64 z x)) |
(*.f64 (/.f64 (sqrt.f64 (*.f64 z x)) 4) 4) |
(sqrt.f64 (*.f64 z x)) |
(/.f64 (sqrt.f64 (*.f64 z x)) 1) |
(sqrt.f64 (*.f64 z x)) |
(/.f64 (*.f64 (sqrt.f64 (*.f64 z x)) 2) 2) |
(sqrt.f64 (*.f64 z x)) |
(/.f64 (*.f64 (sqrt.f64 (*.f64 z x)) 4) 4) |
(sqrt.f64 (*.f64 z x)) |
(/.f64 (*.f64 (sqrt.f64 (*.f64 z x)) 8) 8) |
(sqrt.f64 (*.f64 z x)) |
(/.f64 (*.f64 2 (*.f64 (sqrt.f64 (*.f64 z x)) 8)) 16) |
(sqrt.f64 (*.f64 z x)) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (*.f64 z x)) 8))) 32) |
(sqrt.f64 (*.f64 z x)) |
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (*.f64 z x)) 8))) (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (*.f64 z x)) 8)))) 64) |
(sqrt.f64 (*.f64 z x)) |
Found 2 expressions with local error:
| New | Error | Program |
|---|---|---|
| ✓ | 0.0b | (*.f64 (+.f64 y x) z) |
| ✓ | 10.8b | (sqrt.f64 (*.f64 (+.f64 y x) z)) |
Compiled 29 to 9 computations (69% saved)
18 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 1.0ms | x | @ | 0 | (sqrt.f64 (*.f64 (+.f64 y x) z)) |
| 1.0ms | x | @ | inf | (sqrt.f64 (*.f64 (+.f64 y x) z)) |
| 1.0ms | y | @ | inf | (sqrt.f64 (*.f64 (+.f64 y x) z)) |
| 0.0ms | z | @ | -inf | (sqrt.f64 (*.f64 (+.f64 y x) z)) |
| 0.0ms | z | @ | 0 | (sqrt.f64 (*.f64 (+.f64 y x) z)) |
| 1× | batch-egg-rewrite |
| 1864× | bool.json-1 |
| 1864× | bool.json-2 |
| 1320× | rational.json-simplify-35 |
| 1160× | rational.json-1 |
| 1160× | rational.json-2 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 9 | 30 |
| 1 | 88 | 30 |
| 2 | 233 | 30 |
| 3 | 480 | 30 |
| 4 | 992 | 30 |
| 5 | 2186 | 30 |
| 6 | 4526 | 30 |
| 7 | 7372 | 30 |
| 1× | node limit |
| Inputs |
|---|
(sqrt.f64 (*.f64 (+.f64 y x) z)) |
(*.f64 (+.f64 y x) z) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (sqrt.f64 (*.f64 (+.f64 y x) z)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (sqrt.f64 (*.f64 (+.f64 y x) z)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (sqrt.f64 (*.f64 (+.f64 y x) z)) 1/2) (*.f64 (sqrt.f64 (*.f64 (+.f64 y x) z)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (sqrt.f64 (*.f64 (+.f64 y x) z)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 (+.f64 y x) z)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (sqrt.f64 (*.f64 (+.f64 y x) z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (sqrt.f64 (*.f64 (+.f64 y x) z)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sqrt.f64 (*.f64 (+.f64 y x) z)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (sqrt.f64 (*.f64 (+.f64 y x) z)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sqrt.f64 (*.f64 (+.f64 y x) z)) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (sqrt.f64 (*.f64 (+.f64 y x) z)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sqrt.f64 (*.f64 (+.f64 y x) z)) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (sqrt.f64 (*.f64 (+.f64 y x) z)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 (*.f64 (+.f64 y x) z)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (sqrt.f64 (*.f64 (+.f64 y x) z)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sqrt.f64 (*.f64 (+.f64 y x) z)) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sqrt.f64 (*.f64 (+.f64 y x) z)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sqrt.f64 (*.f64 (+.f64 y x) z)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (sqrt.f64 (*.f64 (+.f64 y x) z)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (*.f64 (+.f64 y x) z)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (*.f64 (+.f64 y x) z)) 8))) (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (*.f64 (+.f64 y x) z)) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (sqrt.f64 (*.f64 (+.f64 y x) z))))))) (#(struct:change #<rule egg-rr> (2) ((x and (sqrt.f64 (*.f64 (+.f64 y x) z)) (sqrt.f64 (*.f64 (+.f64 y x) z)))))) (#(struct:change #<rule egg-rr> (2) ((x or (sqrt.f64 (*.f64 (+.f64 y x) z)) (sqrt.f64 (*.f64 (+.f64 y x) z))))))) |
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 y x) z) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (+.f64 y x) z))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 y x) (*.f64 z 1/2)) (*.f64 (+.f64 y x) (*.f64 z 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (+.f64 y x) z) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 y x) z) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 y x) (+.f64 z z)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 y x) (*.f64 z 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 (+.f64 y x) z) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 (+.f64 y x) z) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 y x) z) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 y x) z) 8))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 y x) z) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 (+.f64 y x) z)))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 (+.f64 y x) z) (*.f64 (+.f64 y x) z))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 (+.f64 y x) z) (*.f64 (+.f64 y x) z)))))) |
| 1× | egg-herbie |
| 3636× | rational.json-simplify-41 |
| 3528× | rational.json-simplify-35 |
| 1566× | rational.json-simplify-2 |
| 654× | rational.json-simplify-1 |
| 472× | rational.json-simplify-51 |
Useful iterations: 1 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 118 | 1446 |
| 1 | 253 | 1272 |
| 2 | 564 | 1272 |
| 3 | 1263 | 1272 |
| 4 | 2380 | 1272 |
| 5 | 3054 | 1272 |
| 6 | 3389 | 1272 |
| 7 | 3684 | 1272 |
| 8 | 3908 | 1272 |
| 9 | 4111 | 1272 |
| 10 | 4111 | 1272 |
| 11 | 4309 | 1272 |
| 12 | 4341 | 1272 |
| 13 | 4386 | 1272 |
| 14 | 4602 | 1272 |
| 15 | 4822 | 1272 |
| 16 | 5038 | 1272 |
| 17 | 5241 | 1272 |
| 18 | 5438 | 1272 |
| 1× | node limit |
| Inputs |
|---|
(sqrt.f64 (*.f64 z x)) |
(+.f64 (*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 z x)))) (sqrt.f64 (*.f64 z x))) |
(+.f64 (*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 z x)))) (+.f64 (*.f64 -1/8 (*.f64 (pow.f64 y 2) (sqrt.f64 (/.f64 z (pow.f64 x 3))))) (sqrt.f64 (*.f64 z x)))) |
(+.f64 (*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 z x)))) (+.f64 (*.f64 -1/8 (*.f64 (pow.f64 y 2) (sqrt.f64 (/.f64 z (pow.f64 x 3))))) (+.f64 (*.f64 1/16 (*.f64 (pow.f64 y 3) (sqrt.f64 (/.f64 z (pow.f64 x 5))))) (sqrt.f64 (*.f64 z x))))) |
(sqrt.f64 (*.f64 y z)) |
(+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 z y)) x)) (sqrt.f64 (*.f64 y z))) |
(+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 z y)) x)) (+.f64 (sqrt.f64 (*.f64 y z)) (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 z (pow.f64 y 3))) (pow.f64 x 2))))) |
(+.f64 (*.f64 1/16 (*.f64 (sqrt.f64 (/.f64 z (pow.f64 y 5))) (pow.f64 x 3))) (+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 z y)) x)) (+.f64 (sqrt.f64 (*.f64 y z)) (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 z (pow.f64 y 3))) (pow.f64 x 2)))))) |
(*.f64 z x) |
(+.f64 (*.f64 y z) (*.f64 z x)) |
(+.f64 (*.f64 y z) (*.f64 z x)) |
(+.f64 (*.f64 y z) (*.f64 z x)) |
(*.f64 y z) |
(+.f64 (*.f64 y z) (*.f64 z x)) |
(+.f64 (*.f64 y z) (*.f64 z x)) |
(+.f64 (*.f64 y z) (*.f64 z x)) |
(*.f64 y z) |
(+.f64 (*.f64 y z) (*.f64 z x)) |
(+.f64 (*.f64 y z) (*.f64 z x)) |
(+.f64 (*.f64 y z) (*.f64 z x)) |
(*.f64 y z) |
(+.f64 (*.f64 y z) (*.f64 z x)) |
(+.f64 (*.f64 y z) (*.f64 z x)) |
(+.f64 (*.f64 y z) (*.f64 z x)) |
(*.f64 z x) |
(+.f64 (*.f64 y z) (*.f64 z x)) |
(+.f64 (*.f64 y z) (*.f64 z x)) |
(+.f64 (*.f64 y z) (*.f64 z x)) |
(*.f64 z x) |
(+.f64 (*.f64 y z) (*.f64 z x)) |
(+.f64 (*.f64 y z) (*.f64 z x)) |
(+.f64 (*.f64 y z) (*.f64 z x)) |
(+.f64 (sqrt.f64 (*.f64 (+.f64 y x) z)) 0) |
(+.f64 0 (sqrt.f64 (*.f64 (+.f64 y x) z))) |
(+.f64 (*.f64 (sqrt.f64 (*.f64 (+.f64 y x) z)) 1/2) (*.f64 (sqrt.f64 (*.f64 (+.f64 y x) z)) 1/2)) |
(-.f64 (sqrt.f64 (*.f64 (+.f64 y x) z)) 0) |
(*.f64 (sqrt.f64 (*.f64 (+.f64 y x) z)) 1) |
(*.f64 1 (sqrt.f64 (*.f64 (+.f64 y x) z))) |
(*.f64 2 (*.f64 (sqrt.f64 (*.f64 (+.f64 y x) z)) 1/2)) |
(*.f64 (*.f64 (sqrt.f64 (*.f64 (+.f64 y x) z)) 2) 1/2) |
(*.f64 4 (/.f64 (sqrt.f64 (*.f64 (+.f64 y x) z)) 4)) |
(*.f64 (*.f64 (sqrt.f64 (*.f64 (+.f64 y x) z)) 4) 1/4) |
(*.f64 1/2 (*.f64 (sqrt.f64 (*.f64 (+.f64 y x) z)) 2)) |
(*.f64 (*.f64 (sqrt.f64 (*.f64 (+.f64 y x) z)) 1/2) 2) |
(*.f64 1/4 (*.f64 (sqrt.f64 (*.f64 (+.f64 y x) z)) 4)) |
(*.f64 (/.f64 (sqrt.f64 (*.f64 (+.f64 y x) z)) 4) 4) |
(/.f64 (sqrt.f64 (*.f64 (+.f64 y x) z)) 1) |
(/.f64 (*.f64 (sqrt.f64 (*.f64 (+.f64 y x) z)) 2) 2) |
(/.f64 (*.f64 (sqrt.f64 (*.f64 (+.f64 y x) z)) 4) 4) |
(/.f64 (*.f64 (sqrt.f64 (*.f64 (+.f64 y x) z)) 8) 8) |
(/.f64 (*.f64 2 (*.f64 (sqrt.f64 (*.f64 (+.f64 y x) z)) 8)) 16) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (*.f64 (+.f64 y x) z)) 8))) 32) |
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (*.f64 (+.f64 y x) z)) 8))) (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (*.f64 (+.f64 y x) z)) 8)))) 64) |
(+.f64 (*.f64 (+.f64 y x) z) 0) |
(+.f64 0 (*.f64 (+.f64 y x) z)) |
(+.f64 (*.f64 (+.f64 y x) (*.f64 z 1/2)) (*.f64 (+.f64 y x) (*.f64 z 1/2))) |
(-.f64 (*.f64 (+.f64 y x) z) 0) |
(/.f64 (*.f64 (+.f64 y x) z) 1) |
(/.f64 (*.f64 (+.f64 y x) (+.f64 z z)) 2) |
(/.f64 (*.f64 (+.f64 y x) (*.f64 z 4)) 4) |
(/.f64 (*.f64 (*.f64 (+.f64 y x) z) 8) 8) |
(/.f64 (*.f64 2 (*.f64 (*.f64 (+.f64 y x) z) 8)) 16) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 y x) z) 8))) 32) |
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 y x) z) 8))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 y x) z) 8)))) 64) |
| Outputs |
|---|
(sqrt.f64 (*.f64 z x)) |
(+.f64 (*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 z x)))) (sqrt.f64 (*.f64 z x))) |
(+.f64 (sqrt.f64 (*.f64 z x)) (*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 z x))))) |
(+.f64 (sqrt.f64 (*.f64 z x)) (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 y 1/2))) |
(+.f64 (sqrt.f64 (*.f64 z x)) (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 1/2 y))) |
(+.f64 (*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 z x)))) (+.f64 (*.f64 -1/8 (*.f64 (pow.f64 y 2) (sqrt.f64 (/.f64 z (pow.f64 x 3))))) (sqrt.f64 (*.f64 z x)))) |
(+.f64 (*.f64 -1/8 (*.f64 (pow.f64 y 2) (sqrt.f64 (/.f64 z (pow.f64 x 3))))) (+.f64 (sqrt.f64 (*.f64 z x)) (*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 z x)))))) |
(+.f64 (+.f64 (sqrt.f64 (*.f64 z x)) (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 y 1/2))) (*.f64 (sqrt.f64 (/.f64 z (pow.f64 x 3))) (*.f64 (pow.f64 y 2) -1/8))) |
(+.f64 (sqrt.f64 (*.f64 z x)) (+.f64 (*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 z x)))) (*.f64 -1/8 (*.f64 (pow.f64 y 2) (sqrt.f64 (/.f64 z (pow.f64 x 3))))))) |
(+.f64 (sqrt.f64 (*.f64 z x)) (+.f64 (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 1/2 y)) (*.f64 (pow.f64 y 2) (*.f64 -1/8 (sqrt.f64 (/.f64 z (pow.f64 x 3))))))) |
(+.f64 (*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 z x)))) (+.f64 (*.f64 -1/8 (*.f64 (pow.f64 y 2) (sqrt.f64 (/.f64 z (pow.f64 x 3))))) (+.f64 (*.f64 1/16 (*.f64 (pow.f64 y 3) (sqrt.f64 (/.f64 z (pow.f64 x 5))))) (sqrt.f64 (*.f64 z x))))) |
(+.f64 (*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 z x)))) (+.f64 (*.f64 -1/8 (*.f64 (pow.f64 y 2) (sqrt.f64 (/.f64 z (pow.f64 x 3))))) (+.f64 (sqrt.f64 (*.f64 z x)) (*.f64 1/16 (*.f64 (pow.f64 y 3) (sqrt.f64 (/.f64 z (pow.f64 x 5)))))))) |
(+.f64 (*.f64 (sqrt.f64 (/.f64 z (pow.f64 x 5))) (*.f64 (pow.f64 y 3) 1/16)) (+.f64 (+.f64 (sqrt.f64 (*.f64 z x)) (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 y 1/2))) (*.f64 (sqrt.f64 (/.f64 z (pow.f64 x 3))) (*.f64 (pow.f64 y 2) -1/8)))) |
(+.f64 (*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 z x)))) (+.f64 (sqrt.f64 (*.f64 z x)) (+.f64 (*.f64 -1/8 (*.f64 (pow.f64 y 2) (sqrt.f64 (/.f64 z (pow.f64 x 3))))) (*.f64 1/16 (*.f64 (pow.f64 y 3) (sqrt.f64 (/.f64 z (pow.f64 x 5)))))))) |
(+.f64 (sqrt.f64 (*.f64 z x)) (+.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 1/2 y)) (*.f64 (sqrt.f64 (/.f64 z (pow.f64 x 5))) (*.f64 1/16 (pow.f64 y 3)))) (*.f64 (pow.f64 y 2) (*.f64 -1/8 (sqrt.f64 (/.f64 z (pow.f64 x 3))))))) |
(+.f64 (sqrt.f64 (*.f64 z x)) (+.f64 (*.f64 (pow.f64 y 2) (*.f64 -1/8 (sqrt.f64 (/.f64 z (pow.f64 x 3))))) (+.f64 (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 1/2 y)) (*.f64 (sqrt.f64 (/.f64 z (pow.f64 x 5))) (*.f64 1/16 (pow.f64 y 3)))))) |
(sqrt.f64 (*.f64 y z)) |
(sqrt.f64 (*.f64 z y)) |
(+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 z y)) x)) (sqrt.f64 (*.f64 y z))) |
(+.f64 (sqrt.f64 (*.f64 z y)) (*.f64 (sqrt.f64 (/.f64 z y)) (*.f64 x 1/2))) |
(+.f64 (sqrt.f64 (*.f64 z y)) (*.f64 1/2 (*.f64 x (sqrt.f64 (/.f64 z y))))) |
(+.f64 (sqrt.f64 (*.f64 z y)) (*.f64 x (*.f64 1/2 (sqrt.f64 (/.f64 z y))))) |
(+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 z y)) x)) (+.f64 (sqrt.f64 (*.f64 y z)) (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 z (pow.f64 y 3))) (pow.f64 x 2))))) |
(+.f64 (sqrt.f64 (*.f64 z y)) (+.f64 (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 z (pow.f64 y 3))) (pow.f64 x 2))) (*.f64 (sqrt.f64 (/.f64 z y)) (*.f64 x 1/2)))) |
(+.f64 (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 z (pow.f64 y 3))) (pow.f64 x 2))) (+.f64 (sqrt.f64 (*.f64 z y)) (*.f64 (sqrt.f64 (/.f64 z y)) (*.f64 x 1/2)))) |
(+.f64 (*.f64 1/2 (*.f64 x (sqrt.f64 (/.f64 z y)))) (+.f64 (sqrt.f64 (*.f64 z y)) (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 z (pow.f64 y 3))) (pow.f64 x 2))))) |
(+.f64 (+.f64 (sqrt.f64 (*.f64 z y)) (*.f64 (sqrt.f64 (/.f64 z y)) (*.f64 x 1/2))) (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 z (pow.f64 y 3))) (pow.f64 x 2)))) |
(+.f64 (*.f64 x (*.f64 1/2 (sqrt.f64 (/.f64 z y)))) (+.f64 (sqrt.f64 (*.f64 z y)) (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 z (pow.f64 y 3))) (pow.f64 x 2))))) |
(+.f64 (*.f64 1/16 (*.f64 (sqrt.f64 (/.f64 z (pow.f64 y 5))) (pow.f64 x 3))) (+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 z y)) x)) (+.f64 (sqrt.f64 (*.f64 y z)) (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 z (pow.f64 y 3))) (pow.f64 x 2)))))) |
(+.f64 (*.f64 (sqrt.f64 (/.f64 z y)) (*.f64 x 1/2)) (+.f64 (+.f64 (sqrt.f64 (*.f64 z y)) (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 z (pow.f64 y 3))) (pow.f64 x 2)))) (*.f64 1/16 (*.f64 (pow.f64 x 3) (sqrt.f64 (/.f64 z (pow.f64 y 5))))))) |
(+.f64 (+.f64 (sqrt.f64 (*.f64 z y)) (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 z (pow.f64 y 3))) (pow.f64 x 2)))) (+.f64 (*.f64 (pow.f64 x 3) (*.f64 (sqrt.f64 (/.f64 z (pow.f64 y 5))) 1/16)) (*.f64 (sqrt.f64 (/.f64 z y)) (*.f64 x 1/2)))) |
(+.f64 (*.f64 1/2 (*.f64 x (sqrt.f64 (/.f64 z y)))) (+.f64 (sqrt.f64 (*.f64 z y)) (+.f64 (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 z (pow.f64 y 3))) (pow.f64 x 2))) (*.f64 (pow.f64 x 3) (*.f64 1/16 (sqrt.f64 (/.f64 z (pow.f64 y 5)))))))) |
(+.f64 (+.f64 (sqrt.f64 (*.f64 z y)) (*.f64 (sqrt.f64 (/.f64 z y)) (*.f64 x 1/2))) (+.f64 (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 z (pow.f64 y 3))) (pow.f64 x 2))) (*.f64 (pow.f64 x 3) (*.f64 1/16 (sqrt.f64 (/.f64 z (pow.f64 y 5))))))) |
(+.f64 (*.f64 x (*.f64 1/2 (sqrt.f64 (/.f64 z y)))) (+.f64 (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 z (pow.f64 y 3))) (pow.f64 x 2))) (+.f64 (sqrt.f64 (*.f64 z y)) (*.f64 (pow.f64 x 3) (*.f64 1/16 (sqrt.f64 (/.f64 z (pow.f64 y 5)))))))) |
(+.f64 (*.f64 (sqrt.f64 (/.f64 z y)) (*.f64 x 1/2)) (+.f64 (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 z (pow.f64 y 3))) (pow.f64 x 2))) (+.f64 (sqrt.f64 (*.f64 z y)) (*.f64 (sqrt.f64 (/.f64 z (pow.f64 y 5))) (*.f64 (pow.f64 x 3) 1/16))))) |
(*.f64 z x) |
(+.f64 (*.f64 y z) (*.f64 z x)) |
(+.f64 (*.f64 z x) (*.f64 z y)) |
(*.f64 z (+.f64 x y)) |
(+.f64 (*.f64 y z) (*.f64 z x)) |
(+.f64 (*.f64 z x) (*.f64 z y)) |
(*.f64 z (+.f64 x y)) |
(+.f64 (*.f64 y z) (*.f64 z x)) |
(+.f64 (*.f64 z x) (*.f64 z y)) |
(*.f64 z (+.f64 x y)) |
(*.f64 y z) |
(*.f64 z y) |
(+.f64 (*.f64 y z) (*.f64 z x)) |
(+.f64 (*.f64 z x) (*.f64 z y)) |
(*.f64 z (+.f64 x y)) |
(+.f64 (*.f64 y z) (*.f64 z x)) |
(+.f64 (*.f64 z x) (*.f64 z y)) |
(*.f64 z (+.f64 x y)) |
(+.f64 (*.f64 y z) (*.f64 z x)) |
(+.f64 (*.f64 z x) (*.f64 z y)) |
(*.f64 z (+.f64 x y)) |
(*.f64 y z) |
(*.f64 z y) |
(+.f64 (*.f64 y z) (*.f64 z x)) |
(+.f64 (*.f64 z x) (*.f64 z y)) |
(*.f64 z (+.f64 x y)) |
(+.f64 (*.f64 y z) (*.f64 z x)) |
(+.f64 (*.f64 z x) (*.f64 z y)) |
(*.f64 z (+.f64 x y)) |
(+.f64 (*.f64 y z) (*.f64 z x)) |
(+.f64 (*.f64 z x) (*.f64 z y)) |
(*.f64 z (+.f64 x y)) |
(*.f64 y z) |
(*.f64 z y) |
(+.f64 (*.f64 y z) (*.f64 z x)) |
(+.f64 (*.f64 z x) (*.f64 z y)) |
(*.f64 z (+.f64 x y)) |
(+.f64 (*.f64 y z) (*.f64 z x)) |
(+.f64 (*.f64 z x) (*.f64 z y)) |
(*.f64 z (+.f64 x y)) |
(+.f64 (*.f64 y z) (*.f64 z x)) |
(+.f64 (*.f64 z x) (*.f64 z y)) |
(*.f64 z (+.f64 x y)) |
(*.f64 z x) |
(+.f64 (*.f64 y z) (*.f64 z x)) |
(+.f64 (*.f64 z x) (*.f64 z y)) |
(*.f64 z (+.f64 x y)) |
(+.f64 (*.f64 y z) (*.f64 z x)) |
(+.f64 (*.f64 z x) (*.f64 z y)) |
(*.f64 z (+.f64 x y)) |
(+.f64 (*.f64 y z) (*.f64 z x)) |
(+.f64 (*.f64 z x) (*.f64 z y)) |
(*.f64 z (+.f64 x y)) |
(*.f64 z x) |
(+.f64 (*.f64 y z) (*.f64 z x)) |
(+.f64 (*.f64 z x) (*.f64 z y)) |
(*.f64 z (+.f64 x y)) |
(+.f64 (*.f64 y z) (*.f64 z x)) |
(+.f64 (*.f64 z x) (*.f64 z y)) |
(*.f64 z (+.f64 x y)) |
(+.f64 (*.f64 y z) (*.f64 z x)) |
(+.f64 (*.f64 z x) (*.f64 z y)) |
(*.f64 z (+.f64 x y)) |
(+.f64 (sqrt.f64 (*.f64 (+.f64 y x) z)) 0) |
(sqrt.f64 (*.f64 z (+.f64 x y))) |
(+.f64 0 (sqrt.f64 (*.f64 (+.f64 y x) z))) |
(sqrt.f64 (*.f64 z (+.f64 x y))) |
(+.f64 (*.f64 (sqrt.f64 (*.f64 (+.f64 y x) z)) 1/2) (*.f64 (sqrt.f64 (*.f64 (+.f64 y x) z)) 1/2)) |
(sqrt.f64 (*.f64 z (+.f64 x y))) |
(-.f64 (sqrt.f64 (*.f64 (+.f64 y x) z)) 0) |
(sqrt.f64 (*.f64 z (+.f64 x y))) |
(*.f64 (sqrt.f64 (*.f64 (+.f64 y x) z)) 1) |
(sqrt.f64 (*.f64 z (+.f64 x y))) |
(*.f64 1 (sqrt.f64 (*.f64 (+.f64 y x) z))) |
(sqrt.f64 (*.f64 z (+.f64 x y))) |
(*.f64 2 (*.f64 (sqrt.f64 (*.f64 (+.f64 y x) z)) 1/2)) |
(sqrt.f64 (*.f64 z (+.f64 x y))) |
(*.f64 (*.f64 (sqrt.f64 (*.f64 (+.f64 y x) z)) 2) 1/2) |
(sqrt.f64 (*.f64 z (+.f64 x y))) |
(*.f64 4 (/.f64 (sqrt.f64 (*.f64 (+.f64 y x) z)) 4)) |
(sqrt.f64 (*.f64 z (+.f64 x y))) |
(*.f64 (*.f64 (sqrt.f64 (*.f64 (+.f64 y x) z)) 4) 1/4) |
(sqrt.f64 (*.f64 z (+.f64 x y))) |
(*.f64 1/2 (*.f64 (sqrt.f64 (*.f64 (+.f64 y x) z)) 2)) |
(sqrt.f64 (*.f64 z (+.f64 x y))) |
(*.f64 (*.f64 (sqrt.f64 (*.f64 (+.f64 y x) z)) 1/2) 2) |
(sqrt.f64 (*.f64 z (+.f64 x y))) |
(*.f64 1/4 (*.f64 (sqrt.f64 (*.f64 (+.f64 y x) z)) 4)) |
(sqrt.f64 (*.f64 z (+.f64 x y))) |
(*.f64 (/.f64 (sqrt.f64 (*.f64 (+.f64 y x) z)) 4) 4) |
(sqrt.f64 (*.f64 z (+.f64 x y))) |
(/.f64 (sqrt.f64 (*.f64 (+.f64 y x) z)) 1) |
(sqrt.f64 (*.f64 z (+.f64 x y))) |
(/.f64 (*.f64 (sqrt.f64 (*.f64 (+.f64 y x) z)) 2) 2) |
(sqrt.f64 (*.f64 z (+.f64 x y))) |
(/.f64 (*.f64 (sqrt.f64 (*.f64 (+.f64 y x) z)) 4) 4) |
(sqrt.f64 (*.f64 z (+.f64 x y))) |
(/.f64 (*.f64 (sqrt.f64 (*.f64 (+.f64 y x) z)) 8) 8) |
(sqrt.f64 (*.f64 z (+.f64 x y))) |
(/.f64 (*.f64 2 (*.f64 (sqrt.f64 (*.f64 (+.f64 y x) z)) 8)) 16) |
(sqrt.f64 (*.f64 z (+.f64 x y))) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (*.f64 (+.f64 y x) z)) 8))) 32) |
(sqrt.f64 (*.f64 z (+.f64 x y))) |
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (*.f64 (+.f64 y x) z)) 8))) (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (*.f64 (+.f64 y x) z)) 8)))) 64) |
(sqrt.f64 (*.f64 z (+.f64 x y))) |
(+.f64 (*.f64 (+.f64 y x) z) 0) |
(+.f64 (*.f64 z x) (*.f64 z y)) |
(*.f64 z (+.f64 x y)) |
(+.f64 0 (*.f64 (+.f64 y x) z)) |
(+.f64 (*.f64 z x) (*.f64 z y)) |
(*.f64 z (+.f64 x y)) |
(+.f64 (*.f64 (+.f64 y x) (*.f64 z 1/2)) (*.f64 (+.f64 y x) (*.f64 z 1/2))) |
(+.f64 (*.f64 z x) (*.f64 z y)) |
(*.f64 z (+.f64 x y)) |
(-.f64 (*.f64 (+.f64 y x) z) 0) |
(+.f64 (*.f64 z x) (*.f64 z y)) |
(*.f64 z (+.f64 x y)) |
(/.f64 (*.f64 (+.f64 y x) z) 1) |
(+.f64 (*.f64 z x) (*.f64 z y)) |
(*.f64 z (+.f64 x y)) |
(/.f64 (*.f64 (+.f64 y x) (+.f64 z z)) 2) |
(+.f64 (*.f64 z x) (*.f64 z y)) |
(*.f64 z (+.f64 x y)) |
(/.f64 (*.f64 (+.f64 y x) (*.f64 z 4)) 4) |
(+.f64 (*.f64 z x) (*.f64 z y)) |
(*.f64 z (+.f64 x y)) |
(/.f64 (*.f64 (*.f64 (+.f64 y x) z) 8) 8) |
(+.f64 (*.f64 z x) (*.f64 z y)) |
(*.f64 z (+.f64 x y)) |
(/.f64 (*.f64 2 (*.f64 (*.f64 (+.f64 y x) z) 8)) 16) |
(+.f64 (*.f64 z x) (*.f64 z y)) |
(*.f64 z (+.f64 x y)) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 y x) z) 8))) 32) |
(+.f64 (*.f64 z x) (*.f64 z y)) |
(*.f64 z (+.f64 x y)) |
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 y x) z) 8))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 y x) z) 8)))) 64) |
(+.f64 (*.f64 z x) (*.f64 z y)) |
(*.f64 z (+.f64 x y)) |
Compiled 3728 to 2104 computations (43.6% saved)
10 alts after pruning (5 fresh and 5 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 215 | 3 | 218 |
| Fresh | 0 | 2 | 2 |
| Picked | 0 | 1 | 1 |
| Done | 0 | 4 | 4 |
| Total | 215 | 10 | 225 |
| Status | Error | Program |
|---|---|---|
| ▶ | 43.3b | (*.f64 2 (+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 x y)) z)) (sqrt.f64 (*.f64 y x)))) |
| ▶ | 62.2b | (*.f64 2 (+.f64 (*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 z x)))) (sqrt.f64 (*.f64 z x)))) |
| ▶ | 62.2b | (*.f64 2 (+.f64 (sqrt.f64 (*.f64 z x)) (*.f64 y (*.f64 (*.f64 (+.f64 z x) (sqrt.f64 (/.f64 1 (*.f64 z x)))) 1/2)))) |
| ▶ | 38.7b | (*.f64 2 (+.f64 (sqrt.f64 (*.f64 y x)) (*.f64 z (*.f64 (*.f64 (+.f64 y x) (sqrt.f64 (/.f64 1 (*.f64 y x)))) 1/2)))) |
| ▶ | 42.2b | (*.f64 2 (sqrt.f64 (+.f64 (*.f64 z x) (*.f64 z y)))) |
| ✓ | 37.0b | (*.f64 2 (sqrt.f64 (*.f64 (+.f64 y z) x))) |
| ✓ | 42.2b | (*.f64 2 (sqrt.f64 (*.f64 (+.f64 y x) z))) |
| ✓ | 61.7b | (*.f64 2 (sqrt.f64 (*.f64 z x))) |
| ✓ | 43.1b | (*.f64 2 (sqrt.f64 (*.f64 y z))) |
| ✓ | 38.5b | (*.f64 2 (sqrt.f64 (*.f64 y x))) |
Compiled 243 to 171 computations (29.6% saved)
Found 4 expressions with local error:
| New | Error | Program |
|---|---|---|
| ✓ | 0.2b | (*.f64 z (*.f64 (*.f64 (+.f64 y x) (sqrt.f64 (/.f64 1 (*.f64 y x)))) 1/2)) |
| ✓ | 0.4b | (/.f64 1 (*.f64 y x)) |
| ✓ | 13.5b | (sqrt.f64 (/.f64 1 (*.f64 y x))) |
| 18.0b | (sqrt.f64 (*.f64 y x)) |
Compiled 106 to 49 computations (53.8% saved)
21 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 63.0ms | x | @ | inf | (sqrt.f64 (/.f64 1 (*.f64 y x))) |
| 2.0ms | x | @ | -inf | (*.f64 z (*.f64 (*.f64 (+.f64 y x) (sqrt.f64 (/.f64 1 (*.f64 y x)))) 1/2)) |
| 1.0ms | z | @ | 0 | (*.f64 z (*.f64 (*.f64 (+.f64 y x) (sqrt.f64 (/.f64 1 (*.f64 y x)))) 1/2)) |
| 1.0ms | y | @ | -inf | (*.f64 z (*.f64 (*.f64 (+.f64 y x) (sqrt.f64 (/.f64 1 (*.f64 y x)))) 1/2)) |
| 1.0ms | x | @ | 0 | (*.f64 z (*.f64 (*.f64 (+.f64 y x) (sqrt.f64 (/.f64 1 (*.f64 y x)))) 1/2)) |
| 1× | batch-egg-rewrite |
| 2072× | bool.json-1 |
| 2072× | bool.json-2 |
| 1022× | rational.json-simplify-35 |
| 924× | rational.json-1 |
| 924× | rational.json-2 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 15 | 71 |
| 1 | 159 | 71 |
| 2 | 443 | 71 |
| 3 | 1051 | 71 |
| 4 | 2761 | 71 |
| 5 | 6975 | 71 |
| 1× | node limit |
| Inputs |
|---|
(sqrt.f64 (/.f64 1 (*.f64 y x))) |
(/.f64 1 (*.f64 y x)) |
(*.f64 z (*.f64 (*.f64 (+.f64 y x) (sqrt.f64 (/.f64 1 (*.f64 y x)))) 1/2)) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (sqrt.f64 (/.f64 1 (*.f64 y x))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) 1/2) (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (sqrt.f64 (/.f64 1 (*.f64 y x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) 4)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) 4)) (*.f64 2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) 4))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (sqrt.f64 (/.f64 1 (*.f64 y x)))))))) (#(struct:change #<rule egg-rr> (2) ((x and (sqrt.f64 (/.f64 1 (*.f64 y x))) (sqrt.f64 (/.f64 1 (*.f64 y x))))))) (#(struct:change #<rule egg-rr> (2) ((x or (sqrt.f64 (/.f64 1 (*.f64 y x))) (sqrt.f64 (/.f64 1 (*.f64 y x)))))))) |
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (/.f64 1 (*.f64 y x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (/.f64 1 (*.f64 y x)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 1 (*.f64 y x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (/.f64 1 (*.f64 y x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (*.f64 y x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (/.f64 1 (*.f64 y x)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (/.f64 1/2 (*.f64 y x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 y) (/.f64 1 x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (/.f64 1 (*.f64 y x)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (/.f64 1 y)) (/.f64 1/2 x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 x) (/.f64 1 y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (/.f64 (/.f64 -1 y) x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 -1 y) (/.f64 -1 x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 -1 x) (/.f64 -1 y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (/.f64 -1 y) x) -1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1/2 x) (*.f64 2 (/.f64 1 y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1/2 (*.f64 y x)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (/.f64 (/.f64 -1 y) x))))) (#(struct:change #<rule egg-rr> (2) ((x not (not (/.f64 1 (*.f64 y x))))))) (#(struct:change #<rule egg-rr> (2) ((x and (/.f64 1 (*.f64 y x)) (/.f64 1 (*.f64 y x)))))) (#(struct:change #<rule egg-rr> (2) ((x or (/.f64 1 (*.f64 y x)) (/.f64 1 (*.f64 y x))))))) |
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 z (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 (+.f64 y x) 1/2))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 z (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 (+.f64 y x) 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 z (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 (+.f64 y x) 1/2))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 z (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 (+.f64 y x) 1/2))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 z (+.f64 y x))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 z (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 (+.f64 y x) 2))) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 z (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 (+.f64 y x) 2)))) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 z (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 (+.f64 y x) 2)))) (*.f64 2 (*.f64 z (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 (+.f64 y x) 2))))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 z (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 (+.f64 y x) 1/2)))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 z (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 (+.f64 y x) 1/2))) (*.f64 z (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 (+.f64 y x) 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 z (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 (+.f64 y x) 1/2))) (*.f64 z (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 (+.f64 y x) 1/2)))))))) |
| 1× | egg-herbie |
| 2248× | rational.json-simplify-2 |
| 968× | rational.json-simplify-41 |
| 920× | rational.json-simplify-35 |
| 866× | rational.json-simplify-50 |
| 656× | rational.json-simplify-51 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 86 | 1333 |
| 1 | 182 | 1333 |
| 2 | 457 | 1333 |
| 3 | 1303 | 1333 |
| 4 | 2805 | 1333 |
| 5 | 4652 | 1333 |
| 6 | 5363 | 1333 |
| 7 | 6022 | 1333 |
| 8 | 6971 | 1333 |
| 9 | 7947 | 1333 |
| 1× | node limit |
| Inputs |
|---|
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 (+.f64 y x) z))) |
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 (+.f64 y x) z))) |
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 (+.f64 y x) z))) |
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 (+.f64 y x) z))) |
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 (+.f64 y x) z))) |
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 (+.f64 y x) z))) |
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 (+.f64 y x) z))) |
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 (+.f64 y x) z))) |
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 (+.f64 y x) z))) |
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 (+.f64 y x) z))) |
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 (+.f64 y x) z))) |
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 (+.f64 y x) z))) |
(+.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) 0) |
(+.f64 0 (sqrt.f64 (/.f64 1 (*.f64 y x)))) |
(+.f64 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) 1/2) (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) 1/2)) |
(-.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) 0) |
(*.f64 1 (sqrt.f64 (/.f64 1 (*.f64 y x)))) |
(*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) 1) |
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) 2)) |
(*.f64 2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) 1/2)) |
(*.f64 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) 2) 1/2) |
(*.f64 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) 1/2) 2) |
(/.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) 1) |
(/.f64 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) 2) 2) |
(/.f64 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) 4) 4) |
(/.f64 (*.f64 2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) 4)) 8) |
(/.f64 (+.f64 (*.f64 2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) 4)) (*.f64 2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) 4))) 16) |
(+.f64 (/.f64 1 (*.f64 y x)) 0) |
(+.f64 0 (/.f64 1 (*.f64 y x))) |
(-.f64 (/.f64 1 (*.f64 y x)) 0) |
(*.f64 1 (/.f64 1 (*.f64 y x))) |
(*.f64 (/.f64 1 (*.f64 y x)) 1) |
(*.f64 1/2 (*.f64 (/.f64 1 (*.f64 y x)) 2)) |
(*.f64 2 (/.f64 1/2 (*.f64 y x))) |
(*.f64 (/.f64 1 y) (/.f64 1 x)) |
(*.f64 (*.f64 (/.f64 1 (*.f64 y x)) 2) 1/2) |
(*.f64 (*.f64 2 (/.f64 1 y)) (/.f64 1/2 x)) |
(*.f64 (/.f64 1 x) (/.f64 1 y)) |
(*.f64 -1 (/.f64 (/.f64 -1 y) x)) |
(*.f64 (/.f64 -1 y) (/.f64 -1 x)) |
(*.f64 (/.f64 -1 x) (/.f64 -1 y)) |
(*.f64 (/.f64 (/.f64 -1 y) x) -1) |
(*.f64 (/.f64 1/2 x) (*.f64 2 (/.f64 1 y))) |
(*.f64 (/.f64 1/2 (*.f64 y x)) 2) |
(neg.f64 (/.f64 (/.f64 -1 y) x)) |
(+.f64 (*.f64 z (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 (+.f64 y x) 1/2))) 0) |
(+.f64 0 (*.f64 z (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 (+.f64 y x) 1/2)))) |
(-.f64 (*.f64 z (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 (+.f64 y x) 1/2))) 0) |
(/.f64 (*.f64 z (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 (+.f64 y x) 1/2))) 1) |
(/.f64 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 z (+.f64 y x))) 2) |
(/.f64 (*.f64 z (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 (+.f64 y x) 2))) 4) |
(/.f64 (*.f64 2 (*.f64 z (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 (+.f64 y x) 2)))) 8) |
(/.f64 (+.f64 (*.f64 2 (*.f64 z (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 (+.f64 y x) 2)))) (*.f64 2 (*.f64 z (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 (+.f64 y x) 2))))) 16) |
| Outputs |
|---|
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 (+.f64 y x) z))) |
(*.f64 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (+.f64 y x)) (/.f64 z 2)) |
(*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 1/2 (*.f64 (+.f64 y x) z))) |
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 (+.f64 y x) z))) |
(*.f64 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (+.f64 y x)) (/.f64 z 2)) |
(*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 1/2 (*.f64 (+.f64 y x) z))) |
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 (+.f64 y x) z))) |
(*.f64 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (+.f64 y x)) (/.f64 z 2)) |
(*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 1/2 (*.f64 (+.f64 y x) z))) |
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 (+.f64 y x) z))) |
(*.f64 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (+.f64 y x)) (/.f64 z 2)) |
(*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 1/2 (*.f64 (+.f64 y x) z))) |
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 (+.f64 y x) z))) |
(*.f64 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (+.f64 y x)) (/.f64 z 2)) |
(*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 1/2 (*.f64 (+.f64 y x) z))) |
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 (+.f64 y x) z))) |
(*.f64 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (+.f64 y x)) (/.f64 z 2)) |
(*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 1/2 (*.f64 (+.f64 y x) z))) |
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 (+.f64 y x) z))) |
(*.f64 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (+.f64 y x)) (/.f64 z 2)) |
(*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 1/2 (*.f64 (+.f64 y x) z))) |
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 (+.f64 y x) z))) |
(*.f64 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (+.f64 y x)) (/.f64 z 2)) |
(*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 1/2 (*.f64 (+.f64 y x) z))) |
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 (+.f64 y x) z))) |
(*.f64 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (+.f64 y x)) (/.f64 z 2)) |
(*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 1/2 (*.f64 (+.f64 y x) z))) |
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 (+.f64 y x) z))) |
(*.f64 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (+.f64 y x)) (/.f64 z 2)) |
(*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 1/2 (*.f64 (+.f64 y x) z))) |
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 (+.f64 y x) z))) |
(*.f64 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (+.f64 y x)) (/.f64 z 2)) |
(*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 1/2 (*.f64 (+.f64 y x) z))) |
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 (+.f64 y x) z))) |
(*.f64 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (+.f64 y x)) (/.f64 z 2)) |
(*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 1/2 (*.f64 (+.f64 y x) z))) |
(+.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) 0) |
(sqrt.f64 (/.f64 1 (*.f64 y x))) |
(+.f64 0 (sqrt.f64 (/.f64 1 (*.f64 y x)))) |
(sqrt.f64 (/.f64 1 (*.f64 y x))) |
(+.f64 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) 1/2) (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) 1/2)) |
(sqrt.f64 (/.f64 1 (*.f64 y x))) |
(-.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) 0) |
(sqrt.f64 (/.f64 1 (*.f64 y x))) |
(*.f64 1 (sqrt.f64 (/.f64 1 (*.f64 y x)))) |
(sqrt.f64 (/.f64 1 (*.f64 y x))) |
(*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) 1) |
(sqrt.f64 (/.f64 1 (*.f64 y x))) |
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) 2)) |
(sqrt.f64 (/.f64 1 (*.f64 y x))) |
(*.f64 2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) 1/2)) |
(sqrt.f64 (/.f64 1 (*.f64 y x))) |
(*.f64 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) 2) 1/2) |
(sqrt.f64 (/.f64 1 (*.f64 y x))) |
(*.f64 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) 1/2) 2) |
(sqrt.f64 (/.f64 1 (*.f64 y x))) |
(/.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) 1) |
(sqrt.f64 (/.f64 1 (*.f64 y x))) |
(/.f64 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) 2) 2) |
(sqrt.f64 (/.f64 1 (*.f64 y x))) |
(/.f64 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) 4) 4) |
(sqrt.f64 (/.f64 1 (*.f64 y x))) |
(/.f64 (*.f64 2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) 4)) 8) |
(sqrt.f64 (/.f64 1 (*.f64 y x))) |
(/.f64 (+.f64 (*.f64 2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) 4)) (*.f64 2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) 4))) 16) |
(sqrt.f64 (/.f64 1 (*.f64 y x))) |
(+.f64 (/.f64 1 (*.f64 y x)) 0) |
(/.f64 1 (*.f64 y x)) |
(+.f64 0 (/.f64 1 (*.f64 y x))) |
(/.f64 1 (*.f64 y x)) |
(-.f64 (/.f64 1 (*.f64 y x)) 0) |
(/.f64 1 (*.f64 y x)) |
(*.f64 1 (/.f64 1 (*.f64 y x))) |
(/.f64 1 (*.f64 y x)) |
(*.f64 (/.f64 1 (*.f64 y x)) 1) |
(/.f64 1 (*.f64 y x)) |
(*.f64 1/2 (*.f64 (/.f64 1 (*.f64 y x)) 2)) |
(/.f64 1 (*.f64 y x)) |
(*.f64 2 (/.f64 1/2 (*.f64 y x))) |
(*.f64 2 (/.f64 (/.f64 1/2 y) x)) |
(*.f64 (/.f64 1 y) (/.f64 1 x)) |
(/.f64 1 (*.f64 y x)) |
(*.f64 (*.f64 (/.f64 1 (*.f64 y x)) 2) 1/2) |
(/.f64 1 (*.f64 y x)) |
(*.f64 (*.f64 2 (/.f64 1 y)) (/.f64 1/2 x)) |
(*.f64 2 (/.f64 1/2 (*.f64 y x))) |
(*.f64 2 (/.f64 (/.f64 1/2 y) x)) |
(*.f64 (/.f64 1 x) (/.f64 1 y)) |
(/.f64 1 (*.f64 y x)) |
(*.f64 -1 (/.f64 (/.f64 -1 y) x)) |
(/.f64 1 (*.f64 y x)) |
(*.f64 (/.f64 -1 y) (/.f64 -1 x)) |
(/.f64 1 (*.f64 y x)) |
(*.f64 (/.f64 -1 x) (/.f64 -1 y)) |
(/.f64 1 (*.f64 y x)) |
(*.f64 (/.f64 (/.f64 -1 y) x) -1) |
(/.f64 1 (*.f64 y x)) |
(*.f64 (/.f64 1/2 x) (*.f64 2 (/.f64 1 y))) |
(*.f64 2 (/.f64 1/2 (*.f64 y x))) |
(*.f64 2 (/.f64 (/.f64 1/2 y) x)) |
(*.f64 (/.f64 1/2 (*.f64 y x)) 2) |
(*.f64 2 (/.f64 1/2 (*.f64 y x))) |
(*.f64 2 (/.f64 (/.f64 1/2 y) x)) |
(neg.f64 (/.f64 (/.f64 -1 y) x)) |
(/.f64 1 (*.f64 y x)) |
(+.f64 (*.f64 z (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 (+.f64 y x) 1/2))) 0) |
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 (+.f64 y x) z))) |
(*.f64 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (+.f64 y x)) (/.f64 z 2)) |
(*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 1/2 (*.f64 (+.f64 y x) z))) |
(+.f64 0 (*.f64 z (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 (+.f64 y x) 1/2)))) |
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 (+.f64 y x) z))) |
(*.f64 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (+.f64 y x)) (/.f64 z 2)) |
(*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 1/2 (*.f64 (+.f64 y x) z))) |
(-.f64 (*.f64 z (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 (+.f64 y x) 1/2))) 0) |
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 (+.f64 y x) z))) |
(*.f64 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (+.f64 y x)) (/.f64 z 2)) |
(*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 1/2 (*.f64 (+.f64 y x) z))) |
(/.f64 (*.f64 z (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 (+.f64 y x) 1/2))) 1) |
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 (+.f64 y x) z))) |
(*.f64 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (+.f64 y x)) (/.f64 z 2)) |
(*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 1/2 (*.f64 (+.f64 y x) z))) |
(/.f64 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 z (+.f64 y x))) 2) |
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 (+.f64 y x) z))) |
(*.f64 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (+.f64 y x)) (/.f64 z 2)) |
(*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 1/2 (*.f64 (+.f64 y x) z))) |
(/.f64 (*.f64 z (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 (+.f64 y x) 2))) 4) |
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 (+.f64 y x) z))) |
(*.f64 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (+.f64 y x)) (/.f64 z 2)) |
(*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 1/2 (*.f64 (+.f64 y x) z))) |
(/.f64 (*.f64 2 (*.f64 z (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 (+.f64 y x) 2)))) 8) |
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 (+.f64 y x) z))) |
(*.f64 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (+.f64 y x)) (/.f64 z 2)) |
(*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 1/2 (*.f64 (+.f64 y x) z))) |
(/.f64 (+.f64 (*.f64 2 (*.f64 z (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 (+.f64 y x) 2)))) (*.f64 2 (*.f64 z (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 (+.f64 y x) 2))))) 16) |
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 (+.f64 y x) z))) |
(*.f64 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (+.f64 y x)) (/.f64 z 2)) |
(*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 1/2 (*.f64 (+.f64 y x) z))) |
Found 2 expressions with local error:
| New | Error | Program |
|---|---|---|
| ✓ | 0.2b | (+.f64 (*.f64 z x) (*.f64 z y)) |
| ✓ | 10.8b | (sqrt.f64 (+.f64 (*.f64 z x) (*.f64 z y))) |
Compiled 38 to 10 computations (73.7% saved)
18 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 1.0ms | z | @ | -inf | (sqrt.f64 (+.f64 (*.f64 z x) (*.f64 z y))) |
| 0.0ms | z | @ | -inf | (+.f64 (*.f64 z x) (*.f64 z y)) |
| 0.0ms | z | @ | 0 | (sqrt.f64 (+.f64 (*.f64 z x) (*.f64 z y))) |
| 0.0ms | z | @ | 0 | (+.f64 (*.f64 z x) (*.f64 z y)) |
| 0.0ms | x | @ | -inf | (sqrt.f64 (+.f64 (*.f64 z x) (*.f64 z y))) |
| 1× | batch-egg-rewrite |
| 1458× | bool.json-1 |
| 1458× | bool.json-2 |
| 1428× | rational.json-1 |
| 1428× | rational.json-2 |
| 1428× | rational.json-4 |
Useful iterations: 1 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 10 | 42 |
| 1 | 98 | 30 |
| 2 | 257 | 30 |
| 3 | 543 | 30 |
| 4 | 1122 | 30 |
| 5 | 2509 | 30 |
| 6 | 5343 | 30 |
| 1× | node limit |
| Inputs |
|---|
(sqrt.f64 (+.f64 (*.f64 z x) (*.f64 z y))) |
(+.f64 (*.f64 z x) (*.f64 z y)) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (sqrt.f64 (*.f64 z (+.f64 x y))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (sqrt.f64 (*.f64 z (+.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (sqrt.f64 (*.f64 z (+.f64 x y))) 1/2) (*.f64 (sqrt.f64 (*.f64 z (+.f64 x y))) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (sqrt.f64 (*.f64 z (+.f64 x y))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 z (+.f64 x y))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (sqrt.f64 (*.f64 z (+.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (sqrt.f64 (*.f64 z (+.f64 x y))) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sqrt.f64 (*.f64 z (+.f64 x y))) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (sqrt.f64 (*.f64 z (+.f64 x y))) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sqrt.f64 (*.f64 z (+.f64 x y))) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (sqrt.f64 (*.f64 z (+.f64 x y))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sqrt.f64 (*.f64 z (+.f64 x y))) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (sqrt.f64 (*.f64 z (+.f64 x y))) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 (*.f64 z (+.f64 x y))) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (sqrt.f64 (*.f64 z (+.f64 x y))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sqrt.f64 (*.f64 z (+.f64 x y))) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sqrt.f64 (*.f64 z (+.f64 x y))) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sqrt.f64 (*.f64 z (+.f64 x y))) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (sqrt.f64 (*.f64 z (+.f64 x y))) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (*.f64 z (+.f64 x y))) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (sqrt.f64 (*.f64 z (+.f64 x y)))))))) (#(struct:change #<rule egg-rr> (2) ((x and (sqrt.f64 (*.f64 z (+.f64 x y))) (sqrt.f64 (*.f64 z (+.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x or (sqrt.f64 (*.f64 z (+.f64 x y))) (sqrt.f64 (*.f64 z (+.f64 x y)))))))) |
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 z (+.f64 x y)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 z (+.f64 x y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 z (+.f64 x y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 z (+.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 z (/.f64 (+.f64 x y) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (+.f64 (*.f64 z (*.f64 y 1/2)) (*.f64 z (*.f64 x 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (+.f64 (*.f64 z (*.f64 x 1/2)) (*.f64 z (*.f64 y 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 z (*.f64 2 (+.f64 x y))) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 z z) (*.f64 (+.f64 x y) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 z z) (/.f64 (+.f64 x y) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 z z) (+.f64 (*.f64 y 1/2) (*.f64 x 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 z z) (+.f64 (*.f64 x 1/2) (*.f64 y 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x y) z)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (*.f64 z (+.f64 x y)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 z (*.f64 (+.f64 x y) 4)) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (+.f64 x y)) (*.f64 z 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 z (*.f64 2 (+.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (*.f64 z (+.f64 y y)) (*.f64 z (+.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (*.f64 z (+.f64 x x)) (*.f64 z (+.f64 y y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 z 1/2) (*.f64 2 (+.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 z 1/2) (+.f64 (+.f64 y y) (+.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 z 1/2) (+.f64 (+.f64 x x) (+.f64 y y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 z (/.f64 (+.f64 x y) 2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x y) 1/2) (+.f64 z z))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 z (*.f64 (+.f64 x y) 4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 x y) 2) (+.f64 z z))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 z (+.f64 x y)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 z (+.f64 x y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 z (*.f64 2 (+.f64 x y))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 z (*.f64 (+.f64 x y) 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 z (+.f64 x y)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 z (+.f64 x y)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 z (+.f64 x y)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 z (+.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 z (+.f64 x y)) (*.f64 z (+.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 z (+.f64 x y)) (*.f64 z (+.f64 x y))))))) |
| 1× | egg-herbie |
| 2268× | rational.json-simplify-2 |
| 1908× | rational.json-simplify-35 |
| 1006× | rational.json-simplify-1 |
| 806× | rational.json-simplify-61 |
| 746× | rational.json-simplify-51 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 163 | 1697 |
| 1 | 335 | 1697 |
| 2 | 725 | 1697 |
| 3 | 1892 | 1697 |
| 4 | 3638 | 1697 |
| 5 | 4317 | 1697 |
| 6 | 4692 | 1697 |
| 7 | 5016 | 1697 |
| 8 | 5323 | 1697 |
| 9 | 5369 | 1697 |
| 10 | 5990 | 1697 |
| 11 | 7125 | 1697 |
| 12 | 7977 | 1697 |
| 1× | node limit |
| Inputs |
|---|
(sqrt.f64 (*.f64 y z)) |
(+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 z y)) x)) (sqrt.f64 (*.f64 y z))) |
(+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 z y)) x)) (+.f64 (sqrt.f64 (*.f64 y z)) (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 z (pow.f64 y 3))) (pow.f64 x 2))))) |
(+.f64 (*.f64 1/16 (*.f64 (sqrt.f64 (/.f64 z (pow.f64 y 5))) (pow.f64 x 3))) (+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 z y)) x)) (+.f64 (sqrt.f64 (*.f64 y z)) (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 z (pow.f64 y 3))) (pow.f64 x 2)))))) |
(sqrt.f64 (*.f64 z x)) |
(+.f64 (*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 z x)))) (sqrt.f64 (*.f64 z x))) |
(+.f64 (*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 z x)))) (+.f64 (*.f64 -1/8 (*.f64 (pow.f64 y 2) (sqrt.f64 (/.f64 z (pow.f64 x 3))))) (sqrt.f64 (*.f64 z x)))) |
(+.f64 (*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 z x)))) (+.f64 (*.f64 -1/8 (*.f64 (pow.f64 y 2) (sqrt.f64 (/.f64 z (pow.f64 x 3))))) (+.f64 (*.f64 1/16 (*.f64 (pow.f64 y 3) (sqrt.f64 (/.f64 z (pow.f64 x 5))))) (sqrt.f64 (*.f64 z x))))) |
(*.f64 (+.f64 y x) z) |
(*.f64 (+.f64 y x) z) |
(*.f64 (+.f64 y x) z) |
(*.f64 (+.f64 y x) z) |
(*.f64 (+.f64 y x) z) |
(*.f64 (+.f64 y x) z) |
(*.f64 (+.f64 y x) z) |
(*.f64 (+.f64 y x) z) |
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 x) (*.f64 -1 y)) z)) |
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 x) (*.f64 -1 y)) z)) |
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 x) (*.f64 -1 y)) z)) |
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 x) (*.f64 -1 y)) z)) |
(*.f64 y z) |
(+.f64 (*.f64 y z) (*.f64 z x)) |
(+.f64 (*.f64 y z) (*.f64 z x)) |
(+.f64 (*.f64 y z) (*.f64 z x)) |
(*.f64 z x) |
(+.f64 (*.f64 y z) (*.f64 z x)) |
(+.f64 (*.f64 y z) (*.f64 z x)) |
(+.f64 (*.f64 y z) (*.f64 z x)) |
(*.f64 z x) |
(+.f64 (*.f64 y z) (*.f64 z x)) |
(+.f64 (*.f64 y z) (*.f64 z x)) |
(+.f64 (*.f64 y z) (*.f64 z x)) |
(*.f64 z x) |
(+.f64 (*.f64 y z) (*.f64 z x)) |
(+.f64 (*.f64 y z) (*.f64 z x)) |
(+.f64 (*.f64 y z) (*.f64 z x)) |
(*.f64 y z) |
(+.f64 (*.f64 y z) (*.f64 z x)) |
(+.f64 (*.f64 y z) (*.f64 z x)) |
(+.f64 (*.f64 y z) (*.f64 z x)) |
(*.f64 y z) |
(+.f64 (*.f64 y z) (*.f64 z x)) |
(+.f64 (*.f64 y z) (*.f64 z x)) |
(+.f64 (*.f64 y z) (*.f64 z x)) |
(+.f64 (sqrt.f64 (*.f64 z (+.f64 x y))) 0) |
(+.f64 0 (sqrt.f64 (*.f64 z (+.f64 x y)))) |
(+.f64 (*.f64 (sqrt.f64 (*.f64 z (+.f64 x y))) 1/2) (*.f64 (sqrt.f64 (*.f64 z (+.f64 x y))) 1/2)) |
(-.f64 (sqrt.f64 (*.f64 z (+.f64 x y))) 0) |
(*.f64 (sqrt.f64 (*.f64 z (+.f64 x y))) 1) |
(*.f64 1 (sqrt.f64 (*.f64 z (+.f64 x y)))) |
(*.f64 2 (*.f64 (sqrt.f64 (*.f64 z (+.f64 x y))) 1/2)) |
(*.f64 (*.f64 (sqrt.f64 (*.f64 z (+.f64 x y))) 2) 1/2) |
(*.f64 4 (/.f64 (sqrt.f64 (*.f64 z (+.f64 x y))) 4)) |
(*.f64 (*.f64 (sqrt.f64 (*.f64 z (+.f64 x y))) 4) 1/4) |
(*.f64 1/2 (*.f64 (sqrt.f64 (*.f64 z (+.f64 x y))) 2)) |
(*.f64 (*.f64 (sqrt.f64 (*.f64 z (+.f64 x y))) 1/2) 2) |
(*.f64 1/4 (*.f64 (sqrt.f64 (*.f64 z (+.f64 x y))) 4)) |
(*.f64 (/.f64 (sqrt.f64 (*.f64 z (+.f64 x y))) 4) 4) |
(/.f64 (sqrt.f64 (*.f64 z (+.f64 x y))) 1) |
(/.f64 (*.f64 (sqrt.f64 (*.f64 z (+.f64 x y))) 2) 2) |
(/.f64 (*.f64 (sqrt.f64 (*.f64 z (+.f64 x y))) 4) 4) |
(/.f64 (*.f64 (sqrt.f64 (*.f64 z (+.f64 x y))) 8) 8) |
(/.f64 (*.f64 2 (*.f64 (sqrt.f64 (*.f64 z (+.f64 x y))) 8)) 16) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (*.f64 z (+.f64 x y))) 8))) 32) |
(-.f64 (*.f64 z (+.f64 x y)) 0) |
(*.f64 z (+.f64 x y)) |
(*.f64 (*.f64 z (+.f64 x y)) 1) |
(*.f64 1 (*.f64 z (+.f64 x y))) |
(*.f64 2 (*.f64 z (/.f64 (+.f64 x y) 2))) |
(*.f64 2 (+.f64 (*.f64 z (*.f64 y 1/2)) (*.f64 z (*.f64 x 1/2)))) |
(*.f64 2 (+.f64 (*.f64 z (*.f64 x 1/2)) (*.f64 z (*.f64 y 1/2)))) |
(*.f64 (*.f64 z (*.f64 2 (+.f64 x y))) 1/2) |
(*.f64 (+.f64 z z) (*.f64 (+.f64 x y) 1/2)) |
(*.f64 (+.f64 z z) (/.f64 (+.f64 x y) 2)) |
(*.f64 (+.f64 z z) (+.f64 (*.f64 y 1/2) (*.f64 x 1/2))) |
(*.f64 (+.f64 z z) (+.f64 (*.f64 x 1/2) (*.f64 y 1/2))) |
(*.f64 (+.f64 x y) z) |
(*.f64 4 (/.f64 (*.f64 z (+.f64 x y)) 4)) |
(*.f64 (*.f64 z (*.f64 (+.f64 x y) 4)) 1/4) |
(*.f64 (*.f64 2 (+.f64 x y)) (*.f64 z 1/2)) |
(*.f64 1/2 (*.f64 z (*.f64 2 (+.f64 x y)))) |
(*.f64 1/2 (+.f64 (*.f64 z (+.f64 y y)) (*.f64 z (+.f64 x x)))) |
(*.f64 1/2 (+.f64 (*.f64 z (+.f64 x x)) (*.f64 z (+.f64 y y)))) |
(*.f64 (*.f64 z 1/2) (*.f64 2 (+.f64 x y))) |
(*.f64 (*.f64 z 1/2) (+.f64 (+.f64 y y) (+.f64 x x))) |
(*.f64 (*.f64 z 1/2) (+.f64 (+.f64 x x) (+.f64 y y))) |
(*.f64 (*.f64 z (/.f64 (+.f64 x y) 2)) 2) |
(*.f64 (*.f64 (+.f64 x y) 1/2) (+.f64 z z)) |
(*.f64 1/4 (*.f64 z (*.f64 (+.f64 x y) 4))) |
(*.f64 (/.f64 (+.f64 x y) 2) (+.f64 z z)) |
(*.f64 (/.f64 (*.f64 z (+.f64 x y)) 4) 4) |
(/.f64 (*.f64 z (+.f64 x y)) 1) |
(/.f64 (*.f64 z (*.f64 2 (+.f64 x y))) 2) |
(/.f64 (*.f64 z (*.f64 (+.f64 x y) 4)) 4) |
(/.f64 (*.f64 (*.f64 z (+.f64 x y)) 8) 8) |
(/.f64 (*.f64 2 (*.f64 (*.f64 z (+.f64 x y)) 8)) 16) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 z (+.f64 x y)) 8))) 32) |
| Outputs |
|---|
(sqrt.f64 (*.f64 y z)) |
(+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 z y)) x)) (sqrt.f64 (*.f64 y z))) |
(+.f64 (sqrt.f64 (*.f64 y z)) (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 z y)) x))) |
(+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 z y)) x)) (+.f64 (sqrt.f64 (*.f64 y z)) (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 z (pow.f64 y 3))) (pow.f64 x 2))))) |
(+.f64 (sqrt.f64 (*.f64 y z)) (+.f64 (*.f64 (sqrt.f64 (/.f64 z (pow.f64 y 3))) (*.f64 (pow.f64 x 2) -1/8)) (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 z y)) x)))) |
(+.f64 (sqrt.f64 (*.f64 y z)) (+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 z y)) x)) (*.f64 (pow.f64 x 2) (*.f64 (sqrt.f64 (/.f64 z (pow.f64 y 3))) -1/8)))) |
(+.f64 (+.f64 (sqrt.f64 (*.f64 y z)) (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 z y)) x))) (*.f64 (sqrt.f64 (/.f64 z (pow.f64 y 3))) (*.f64 -1/8 (pow.f64 x 2)))) |
(+.f64 (sqrt.f64 (*.f64 y z)) (+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 z y)) x)) (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 z (pow.f64 y 3))) (pow.f64 x 2))))) |
(+.f64 (*.f64 1/16 (*.f64 (sqrt.f64 (/.f64 z (pow.f64 y 5))) (pow.f64 x 3))) (+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 z y)) x)) (+.f64 (sqrt.f64 (*.f64 y z)) (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 z (pow.f64 y 3))) (pow.f64 x 2)))))) |
(+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 z y)) x)) (+.f64 (+.f64 (sqrt.f64 (*.f64 y z)) (*.f64 (sqrt.f64 (/.f64 z (pow.f64 y 3))) (*.f64 (pow.f64 x 2) -1/8))) (*.f64 1/16 (*.f64 (sqrt.f64 (/.f64 z (pow.f64 y 5))) (pow.f64 x 3))))) |
(+.f64 (+.f64 (sqrt.f64 (*.f64 y z)) (+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 z y)) x)) (*.f64 (pow.f64 x 2) (*.f64 (sqrt.f64 (/.f64 z (pow.f64 y 3))) -1/8)))) (*.f64 1/16 (*.f64 (sqrt.f64 (/.f64 z (pow.f64 y 5))) (pow.f64 x 3)))) |
(+.f64 (sqrt.f64 (*.f64 y z)) (+.f64 (*.f64 1/16 (*.f64 (sqrt.f64 (/.f64 z (pow.f64 y 5))) (pow.f64 x 3))) (+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 z y)) x)) (*.f64 (sqrt.f64 (/.f64 z (pow.f64 y 3))) (*.f64 -1/8 (pow.f64 x 2)))))) |
(+.f64 (sqrt.f64 (*.f64 y z)) (+.f64 (*.f64 (sqrt.f64 (/.f64 z (pow.f64 y 3))) (*.f64 -1/8 (pow.f64 x 2))) (+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 z y)) x)) (*.f64 1/16 (*.f64 (sqrt.f64 (/.f64 z (pow.f64 y 5))) (pow.f64 x 3)))))) |
(+.f64 (sqrt.f64 (*.f64 y z)) (+.f64 (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 z (pow.f64 y 3))) (pow.f64 x 2))) (+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 z y)) x)) (*.f64 1/16 (*.f64 (sqrt.f64 (/.f64 z (pow.f64 y 5))) (pow.f64 x 3)))))) |
(sqrt.f64 (*.f64 z x)) |
(+.f64 (*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 z x)))) (sqrt.f64 (*.f64 z x))) |
(+.f64 (sqrt.f64 (*.f64 z x)) (*.f64 y (*.f64 (sqrt.f64 (/.f64 z x)) 1/2))) |
(+.f64 (sqrt.f64 (*.f64 z x)) (*.f64 y (*.f64 1/2 (sqrt.f64 (/.f64 z x))))) |
(+.f64 (*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 z x)))) (+.f64 (*.f64 -1/8 (*.f64 (pow.f64 y 2) (sqrt.f64 (/.f64 z (pow.f64 x 3))))) (sqrt.f64 (*.f64 z x)))) |
(+.f64 (*.f64 -1/8 (*.f64 (pow.f64 y 2) (sqrt.f64 (/.f64 z (pow.f64 x 3))))) (+.f64 (sqrt.f64 (*.f64 z x)) (*.f64 y (*.f64 (sqrt.f64 (/.f64 z x)) 1/2)))) |
(+.f64 (sqrt.f64 (*.f64 z x)) (+.f64 (*.f64 -1/8 (*.f64 (pow.f64 y 2) (sqrt.f64 (/.f64 z (pow.f64 x 3))))) (*.f64 y (*.f64 1/2 (sqrt.f64 (/.f64 z x)))))) |
(+.f64 (+.f64 (sqrt.f64 (*.f64 z x)) (*.f64 y (*.f64 1/2 (sqrt.f64 (/.f64 z x))))) (*.f64 (pow.f64 y 2) (*.f64 -1/8 (sqrt.f64 (/.f64 z (pow.f64 x 3)))))) |
(+.f64 (sqrt.f64 (*.f64 z x)) (+.f64 (*.f64 y (*.f64 1/2 (sqrt.f64 (/.f64 z x)))) (*.f64 -1/8 (*.f64 (pow.f64 y 2) (sqrt.f64 (/.f64 z (pow.f64 x 3))))))) |
(+.f64 (*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 z x)))) (+.f64 (*.f64 -1/8 (*.f64 (pow.f64 y 2) (sqrt.f64 (/.f64 z (pow.f64 x 3))))) (+.f64 (*.f64 1/16 (*.f64 (pow.f64 y 3) (sqrt.f64 (/.f64 z (pow.f64 x 5))))) (sqrt.f64 (*.f64 z x))))) |
(+.f64 (*.f64 y (*.f64 (sqrt.f64 (/.f64 z x)) 1/2)) (+.f64 (*.f64 -1/8 (*.f64 (pow.f64 y 2) (sqrt.f64 (/.f64 z (pow.f64 x 3))))) (+.f64 (sqrt.f64 (*.f64 z x)) (*.f64 (pow.f64 y 3) (*.f64 (sqrt.f64 (/.f64 z (pow.f64 x 5))) 1/16))))) |
(+.f64 (*.f64 y (*.f64 1/2 (sqrt.f64 (/.f64 z x)))) (+.f64 (sqrt.f64 (*.f64 z x)) (+.f64 (*.f64 -1/8 (*.f64 (pow.f64 y 2) (sqrt.f64 (/.f64 z (pow.f64 x 3))))) (*.f64 1/16 (*.f64 (pow.f64 y 3) (sqrt.f64 (/.f64 z (pow.f64 x 5)))))))) |
(+.f64 (*.f64 (pow.f64 y 2) (*.f64 -1/8 (sqrt.f64 (/.f64 z (pow.f64 x 3))))) (+.f64 (sqrt.f64 (*.f64 z x)) (+.f64 (*.f64 (sqrt.f64 (/.f64 z (pow.f64 x 5))) (*.f64 (pow.f64 y 3) 1/16)) (*.f64 y (*.f64 1/2 (sqrt.f64 (/.f64 z x))))))) |
(+.f64 (sqrt.f64 (*.f64 z x)) (+.f64 (+.f64 (*.f64 y (*.f64 1/2 (sqrt.f64 (/.f64 z x)))) (*.f64 (sqrt.f64 (/.f64 z (pow.f64 x 5))) (*.f64 (pow.f64 y 3) 1/16))) (*.f64 (pow.f64 y 2) (*.f64 -1/8 (sqrt.f64 (/.f64 z (pow.f64 x 3))))))) |
(+.f64 (sqrt.f64 (*.f64 z x)) (+.f64 (*.f64 (pow.f64 y 2) (*.f64 -1/8 (sqrt.f64 (/.f64 z (pow.f64 x 3))))) (+.f64 (*.f64 y (*.f64 1/2 (sqrt.f64 (/.f64 z x)))) (*.f64 (sqrt.f64 (/.f64 z (pow.f64 x 5))) (*.f64 (pow.f64 y 3) 1/16))))) |
(+.f64 (sqrt.f64 (*.f64 z x)) (+.f64 (*.f64 -1/8 (*.f64 (pow.f64 y 2) (sqrt.f64 (/.f64 z (pow.f64 x 3))))) (+.f64 (*.f64 y (*.f64 1/2 (sqrt.f64 (/.f64 z x)))) (*.f64 1/16 (*.f64 (pow.f64 y 3) (sqrt.f64 (/.f64 z (pow.f64 x 5)))))))) |
(*.f64 (+.f64 y x) z) |
(*.f64 z (+.f64 y x)) |
(*.f64 (+.f64 y x) z) |
(*.f64 z (+.f64 y x)) |
(*.f64 (+.f64 y x) z) |
(*.f64 z (+.f64 y x)) |
(*.f64 (+.f64 y x) z) |
(*.f64 z (+.f64 y x)) |
(*.f64 (+.f64 y x) z) |
(*.f64 z (+.f64 y x)) |
(*.f64 (+.f64 y x) z) |
(*.f64 z (+.f64 y x)) |
(*.f64 (+.f64 y x) z) |
(*.f64 z (+.f64 y x)) |
(*.f64 (+.f64 y x) z) |
(*.f64 z (+.f64 y x)) |
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 x) (*.f64 -1 y)) z)) |
(*.f64 z (+.f64 y x)) |
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 x) (*.f64 -1 y)) z)) |
(*.f64 z (+.f64 y x)) |
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 x) (*.f64 -1 y)) z)) |
(*.f64 z (+.f64 y x)) |
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 x) (*.f64 -1 y)) z)) |
(*.f64 z (+.f64 y x)) |
(*.f64 y z) |
(+.f64 (*.f64 y z) (*.f64 z x)) |
(*.f64 z (+.f64 y x)) |
(+.f64 (*.f64 y z) (*.f64 z x)) |
(*.f64 z (+.f64 y x)) |
(+.f64 (*.f64 y z) (*.f64 z x)) |
(*.f64 z (+.f64 y x)) |
(*.f64 z x) |
(+.f64 (*.f64 y z) (*.f64 z x)) |
(*.f64 z (+.f64 y x)) |
(+.f64 (*.f64 y z) (*.f64 z x)) |
(*.f64 z (+.f64 y x)) |
(+.f64 (*.f64 y z) (*.f64 z x)) |
(*.f64 z (+.f64 y x)) |
(*.f64 z x) |
(+.f64 (*.f64 y z) (*.f64 z x)) |
(*.f64 z (+.f64 y x)) |
(+.f64 (*.f64 y z) (*.f64 z x)) |
(*.f64 z (+.f64 y x)) |
(+.f64 (*.f64 y z) (*.f64 z x)) |
(*.f64 z (+.f64 y x)) |
(*.f64 z x) |
(+.f64 (*.f64 y z) (*.f64 z x)) |
(*.f64 z (+.f64 y x)) |
(+.f64 (*.f64 y z) (*.f64 z x)) |
(*.f64 z (+.f64 y x)) |
(+.f64 (*.f64 y z) (*.f64 z x)) |
(*.f64 z (+.f64 y x)) |
(*.f64 y z) |
(+.f64 (*.f64 y z) (*.f64 z x)) |
(*.f64 z (+.f64 y x)) |
(+.f64 (*.f64 y z) (*.f64 z x)) |
(*.f64 z (+.f64 y x)) |
(+.f64 (*.f64 y z) (*.f64 z x)) |
(*.f64 z (+.f64 y x)) |
(*.f64 y z) |
(+.f64 (*.f64 y z) (*.f64 z x)) |
(*.f64 z (+.f64 y x)) |
(+.f64 (*.f64 y z) (*.f64 z x)) |
(*.f64 z (+.f64 y x)) |
(+.f64 (*.f64 y z) (*.f64 z x)) |
(*.f64 z (+.f64 y x)) |
(+.f64 (sqrt.f64 (*.f64 z (+.f64 x y))) 0) |
(sqrt.f64 (*.f64 z (+.f64 y x))) |
(+.f64 0 (sqrt.f64 (*.f64 z (+.f64 x y)))) |
(sqrt.f64 (*.f64 z (+.f64 y x))) |
(+.f64 (*.f64 (sqrt.f64 (*.f64 z (+.f64 x y))) 1/2) (*.f64 (sqrt.f64 (*.f64 z (+.f64 x y))) 1/2)) |
(sqrt.f64 (*.f64 z (+.f64 y x))) |
(-.f64 (sqrt.f64 (*.f64 z (+.f64 x y))) 0) |
(sqrt.f64 (*.f64 z (+.f64 y x))) |
(*.f64 (sqrt.f64 (*.f64 z (+.f64 x y))) 1) |
(sqrt.f64 (*.f64 z (+.f64 y x))) |
(*.f64 1 (sqrt.f64 (*.f64 z (+.f64 x y)))) |
(sqrt.f64 (*.f64 z (+.f64 y x))) |
(*.f64 2 (*.f64 (sqrt.f64 (*.f64 z (+.f64 x y))) 1/2)) |
(sqrt.f64 (*.f64 z (+.f64 y x))) |
(*.f64 (*.f64 (sqrt.f64 (*.f64 z (+.f64 x y))) 2) 1/2) |
(sqrt.f64 (*.f64 z (+.f64 y x))) |
(*.f64 4 (/.f64 (sqrt.f64 (*.f64 z (+.f64 x y))) 4)) |
(sqrt.f64 (*.f64 z (+.f64 y x))) |
(*.f64 (*.f64 (sqrt.f64 (*.f64 z (+.f64 x y))) 4) 1/4) |
(sqrt.f64 (*.f64 z (+.f64 y x))) |
(*.f64 1/2 (*.f64 (sqrt.f64 (*.f64 z (+.f64 x y))) 2)) |
(sqrt.f64 (*.f64 z (+.f64 y x))) |
(*.f64 (*.f64 (sqrt.f64 (*.f64 z (+.f64 x y))) 1/2) 2) |
(sqrt.f64 (*.f64 z (+.f64 y x))) |
(*.f64 1/4 (*.f64 (sqrt.f64 (*.f64 z (+.f64 x y))) 4)) |
(sqrt.f64 (*.f64 z (+.f64 y x))) |
(*.f64 (/.f64 (sqrt.f64 (*.f64 z (+.f64 x y))) 4) 4) |
(sqrt.f64 (*.f64 z (+.f64 y x))) |
(/.f64 (sqrt.f64 (*.f64 z (+.f64 x y))) 1) |
(sqrt.f64 (*.f64 z (+.f64 y x))) |
(/.f64 (*.f64 (sqrt.f64 (*.f64 z (+.f64 x y))) 2) 2) |
(sqrt.f64 (*.f64 z (+.f64 y x))) |
(/.f64 (*.f64 (sqrt.f64 (*.f64 z (+.f64 x y))) 4) 4) |
(sqrt.f64 (*.f64 z (+.f64 y x))) |
(/.f64 (*.f64 (sqrt.f64 (*.f64 z (+.f64 x y))) 8) 8) |
(sqrt.f64 (*.f64 z (+.f64 y x))) |
(/.f64 (*.f64 2 (*.f64 (sqrt.f64 (*.f64 z (+.f64 x y))) 8)) 16) |
(sqrt.f64 (*.f64 z (+.f64 y x))) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (*.f64 z (+.f64 x y))) 8))) 32) |
(sqrt.f64 (*.f64 z (+.f64 y x))) |
(-.f64 (*.f64 z (+.f64 x y)) 0) |
(*.f64 z (+.f64 y x)) |
(*.f64 z (+.f64 x y)) |
(*.f64 z (+.f64 y x)) |
(*.f64 (*.f64 z (+.f64 x y)) 1) |
(*.f64 z (+.f64 y x)) |
(*.f64 1 (*.f64 z (+.f64 x y))) |
(*.f64 z (+.f64 y x)) |
(*.f64 2 (*.f64 z (/.f64 (+.f64 x y) 2))) |
(*.f64 z (+.f64 y x)) |
(*.f64 2 (+.f64 (*.f64 z (*.f64 y 1/2)) (*.f64 z (*.f64 x 1/2)))) |
(*.f64 z (+.f64 y x)) |
(*.f64 2 (+.f64 (*.f64 z (*.f64 x 1/2)) (*.f64 z (*.f64 y 1/2)))) |
(*.f64 z (+.f64 y x)) |
(*.f64 (*.f64 z (*.f64 2 (+.f64 x y))) 1/2) |
(*.f64 z (+.f64 y x)) |
(*.f64 (+.f64 z z) (*.f64 (+.f64 x y) 1/2)) |
(*.f64 z (+.f64 y x)) |
(*.f64 (+.f64 z z) (/.f64 (+.f64 x y) 2)) |
(*.f64 z (+.f64 y x)) |
(*.f64 (+.f64 z z) (+.f64 (*.f64 y 1/2) (*.f64 x 1/2))) |
(*.f64 z (+.f64 y x)) |
(*.f64 (+.f64 z z) (+.f64 (*.f64 x 1/2) (*.f64 y 1/2))) |
(*.f64 z (+.f64 y x)) |
(*.f64 (+.f64 x y) z) |
(*.f64 z (+.f64 y x)) |
(*.f64 4 (/.f64 (*.f64 z (+.f64 x y)) 4)) |
(*.f64 z (+.f64 y x)) |
(*.f64 (*.f64 z (*.f64 (+.f64 x y) 4)) 1/4) |
(*.f64 z (+.f64 y x)) |
(*.f64 (*.f64 2 (+.f64 x y)) (*.f64 z 1/2)) |
(*.f64 z (+.f64 y x)) |
(*.f64 1/2 (*.f64 z (*.f64 2 (+.f64 x y)))) |
(*.f64 z (+.f64 y x)) |
(*.f64 1/2 (+.f64 (*.f64 z (+.f64 y y)) (*.f64 z (+.f64 x x)))) |
(*.f64 z (+.f64 y x)) |
(*.f64 1/2 (+.f64 (*.f64 z (+.f64 x x)) (*.f64 z (+.f64 y y)))) |
(*.f64 z (+.f64 y x)) |
(*.f64 (*.f64 z 1/2) (*.f64 2 (+.f64 x y))) |
(*.f64 z (+.f64 y x)) |
(*.f64 (*.f64 z 1/2) (+.f64 (+.f64 y y) (+.f64 x x))) |
(*.f64 z (+.f64 y x)) |
(*.f64 (*.f64 z 1/2) (+.f64 (+.f64 x x) (+.f64 y y))) |
(*.f64 z (+.f64 y x)) |
(*.f64 (*.f64 z (/.f64 (+.f64 x y) 2)) 2) |
(*.f64 z (+.f64 y x)) |
(*.f64 (*.f64 (+.f64 x y) 1/2) (+.f64 z z)) |
(*.f64 z (+.f64 y x)) |
(*.f64 1/4 (*.f64 z (*.f64 (+.f64 x y) 4))) |
(*.f64 z (+.f64 y x)) |
(*.f64 (/.f64 (+.f64 x y) 2) (+.f64 z z)) |
(*.f64 z (+.f64 y x)) |
(*.f64 (/.f64 (*.f64 z (+.f64 x y)) 4) 4) |
(*.f64 z (+.f64 y x)) |
(/.f64 (*.f64 z (+.f64 x y)) 1) |
(*.f64 z (+.f64 y x)) |
(/.f64 (*.f64 z (*.f64 2 (+.f64 x y))) 2) |
(*.f64 z (+.f64 y x)) |
(/.f64 (*.f64 z (*.f64 (+.f64 x y) 4)) 4) |
(*.f64 z (+.f64 y x)) |
(/.f64 (*.f64 (*.f64 z (+.f64 x y)) 8) 8) |
(*.f64 z (+.f64 y x)) |
(/.f64 (*.f64 2 (*.f64 (*.f64 z (+.f64 x y)) 8)) 16) |
(*.f64 z (+.f64 y x)) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 z (+.f64 x y)) 8))) 32) |
(*.f64 z (+.f64 y x)) |
Found 4 expressions with local error:
| New | Error | Program |
|---|---|---|
| ✓ | 0.0b | (+.f64 (*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 z x)))) (sqrt.f64 (*.f64 z x))) |
| ✓ | 0.1b | (*.f64 y (sqrt.f64 (/.f64 z x))) |
| 5.1b | (sqrt.f64 (*.f64 z x)) | |
| ✓ | 22.2b | (sqrt.f64 (/.f64 z x)) |
Compiled 64 to 20 computations (68.8% saved)
24 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 61.0ms | z | @ | 0 | (+.f64 (*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 z x)))) (sqrt.f64 (*.f64 z x))) |
| 4.0ms | x | @ | inf | (+.f64 (*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 z x)))) (sqrt.f64 (*.f64 z x))) |
| 1.0ms | z | @ | -inf | (+.f64 (*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 z x)))) (sqrt.f64 (*.f64 z x))) |
| 1.0ms | y | @ | 0 | (*.f64 y (sqrt.f64 (/.f64 z x))) |
| 1.0ms | z | @ | inf | (+.f64 (*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 z x)))) (sqrt.f64 (*.f64 z x))) |
| 1× | batch-egg-rewrite |
| 1014× | rational.json-simplify-50 |
| 974× | rational.json-simplify-53 |
| 772× | rational.json-simplify-1 |
| 736× | rational.json-simplify-35 |
| 654× | bool.json-1 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 14 | 67 |
| 1 | 140 | 67 |
| 2 | 376 | 67 |
| 3 | 846 | 67 |
| 4 | 1998 | 67 |
| 5 | 5885 | 67 |
| 1× | node limit |
| Inputs |
|---|
(sqrt.f64 (/.f64 z x)) |
(*.f64 y (sqrt.f64 (/.f64 z x))) |
(+.f64 (*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 z x)))) (sqrt.f64 (*.f64 z x))) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (sqrt.f64 (/.f64 z x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (sqrt.f64 (/.f64 z x)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (sqrt.f64 (/.f64 z x)) 1/2) (*.f64 (sqrt.f64 (/.f64 z x)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (sqrt.f64 (/.f64 z x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (/.f64 z x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (sqrt.f64 (/.f64 z x)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (sqrt.f64 (/.f64 z x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sqrt.f64 (/.f64 z x)) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (sqrt.f64 (/.f64 z x)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sqrt.f64 (/.f64 z x)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (sqrt.f64 (/.f64 z x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sqrt.f64 (/.f64 z x)) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sqrt.f64 (/.f64 z x)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (sqrt.f64 (/.f64 z x)) 4)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (/.f64 z x)) 4))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (sqrt.f64 (/.f64 z x))))))) (#(struct:change #<rule egg-rr> (2) ((x and (sqrt.f64 (/.f64 z x)) (sqrt.f64 (/.f64 z x)))))) (#(struct:change #<rule egg-rr> (2) ((x or (sqrt.f64 (/.f64 z x)) (sqrt.f64 (/.f64 z x))))))) |
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (sqrt.f64 (/.f64 z x)) y) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 y 1/2)) (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 y 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (sqrt.f64 (/.f64 z x)) y))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (sqrt.f64 (/.f64 z x)) y) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sqrt.f64 (/.f64 z x)) y) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sqrt.f64 (/.f64 z x)) (+.f64 y y)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 y 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 y 4))) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 y 4)))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 (sqrt.f64 (/.f64 z x)) y)))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 (sqrt.f64 (/.f64 z x)) y) (*.f64 (sqrt.f64 (/.f64 z x)) y))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 (sqrt.f64 (/.f64 z x)) y) (*.f64 (sqrt.f64 (/.f64 z x)) y)))))) |
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 y 1/2)) (sqrt.f64 (*.f64 z x))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 y 1/2)) (sqrt.f64 (*.f64 z x))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (*.f64 (sqrt.f64 (/.f64 z x)) y) (*.f64 (sqrt.f64 (*.f64 z x)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 y 1/2)) (sqrt.f64 (*.f64 z x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 y 1/2)) (sqrt.f64 (*.f64 z x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (/.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 y 1/2)) (sqrt.f64 (*.f64 z x))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (/.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 y 1/2)) (sqrt.f64 (*.f64 z x))) 2) 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 y 1/2)) (sqrt.f64 (*.f64 z x))) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 y 1/2)) (sqrt.f64 (*.f64 z x))) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 y 1/2)) (sqrt.f64 (*.f64 z x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 y 1/2)) (sqrt.f64 (*.f64 z x))) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 y 1/2)) (sqrt.f64 (*.f64 z x))) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 y 1/2)) (sqrt.f64 (*.f64 z x))) 4)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 y 1/2)) (sqrt.f64 (*.f64 z x))) 4))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (+.f64 (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 y 1/2)) (sqrt.f64 (*.f64 z x)))))))) (#(struct:change #<rule egg-rr> (2) ((x and (+.f64 (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 y 1/2)) (sqrt.f64 (*.f64 z x))) (+.f64 (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 y 1/2)) (sqrt.f64 (*.f64 z x))))))) (#(struct:change #<rule egg-rr> (2) ((x or (+.f64 (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 y 1/2)) (sqrt.f64 (*.f64 z x))) (+.f64 (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 y 1/2)) (sqrt.f64 (*.f64 z x)))))))) |
| 1× | egg-herbie |
| 3294× | rational.json-simplify-41 |
| 2460× | rational.json-simplify-2 |
| 2044× | rational.json-simplify-53 |
| 1876× | rational.json-simplify-35 |
| 668× | rational.json-simplify-51 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 80 | 921 |
| 1 | 175 | 921 |
| 2 | 435 | 921 |
| 3 | 1184 | 921 |
| 4 | 2365 | 921 |
| 5 | 3025 | 921 |
| 6 | 3132 | 921 |
| 7 | 3220 | 921 |
| 8 | 3303 | 921 |
| 9 | 3385 | 921 |
| 10 | 4006 | 921 |
| 11 | 4608 | 921 |
| 12 | 4690 | 921 |
| 13 | 4772 | 921 |
| 14 | 4854 | 921 |
| 15 | 4936 | 921 |
| 16 | 5018 | 921 |
| 17 | 5018 | 921 |
| 18 | 7526 | 921 |
| 1× | node limit |
| Inputs |
|---|
(sqrt.f64 (*.f64 z x)) |
(*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 z x)))) |
(*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 z x)))) |
(+.f64 (sqrt.f64 (/.f64 z x)) 0) |
(+.f64 0 (sqrt.f64 (/.f64 z x))) |
(+.f64 (*.f64 (sqrt.f64 (/.f64 z x)) 1/2) (*.f64 (sqrt.f64 (/.f64 z x)) 1/2)) |
(-.f64 (sqrt.f64 (/.f64 z x)) 0) |
(*.f64 (sqrt.f64 (/.f64 z x)) 1) |
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 z x)) 2)) |
(*.f64 1 (sqrt.f64 (/.f64 z x))) |
(*.f64 (*.f64 (sqrt.f64 (/.f64 z x)) 1/2) 2) |
(*.f64 2 (*.f64 (sqrt.f64 (/.f64 z x)) 1/2)) |
(*.f64 (*.f64 (sqrt.f64 (/.f64 z x)) 2) 1/2) |
(/.f64 (sqrt.f64 (/.f64 z x)) 1) |
(/.f64 (*.f64 (sqrt.f64 (/.f64 z x)) 2) 2) |
(/.f64 (*.f64 (sqrt.f64 (/.f64 z x)) 4) 4) |
(/.f64 (*.f64 2 (*.f64 (sqrt.f64 (/.f64 z x)) 4)) 8) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (/.f64 z x)) 4))) 16) |
(+.f64 (*.f64 (sqrt.f64 (/.f64 z x)) y) 0) |
(+.f64 (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 y 1/2)) (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 y 1/2))) |
(+.f64 0 (*.f64 (sqrt.f64 (/.f64 z x)) y)) |
(-.f64 (*.f64 (sqrt.f64 (/.f64 z x)) y) 0) |
(/.f64 (*.f64 (sqrt.f64 (/.f64 z x)) y) 1) |
(/.f64 (*.f64 (sqrt.f64 (/.f64 z x)) (+.f64 y y)) 2) |
(/.f64 (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 y 4)) 4) |
(/.f64 (*.f64 2 (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 y 4))) 8) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 y 4)))) 16) |
(-.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 y 1/2)) (sqrt.f64 (*.f64 z x))) 0) |
(*.f64 1/2 (*.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 y 1/2)) (sqrt.f64 (*.f64 z x))) 2)) |
(*.f64 1/2 (+.f64 (*.f64 (sqrt.f64 (/.f64 z x)) y) (*.f64 (sqrt.f64 (*.f64 z x)) 2))) |
(*.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 y 1/2)) (sqrt.f64 (*.f64 z x))) 1) |
(*.f64 1 (+.f64 (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 y 1/2)) (sqrt.f64 (*.f64 z x)))) |
(*.f64 2 (/.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 y 1/2)) (sqrt.f64 (*.f64 z x))) 2)) |
(*.f64 2 (*.f64 (/.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 y 1/2)) (sqrt.f64 (*.f64 z x))) 2) 1)) |
(*.f64 (*.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 y 1/2)) (sqrt.f64 (*.f64 z x))) 2) 1/2) |
(*.f64 (/.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 y 1/2)) (sqrt.f64 (*.f64 z x))) 2) 2) |
(/.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 y 1/2)) (sqrt.f64 (*.f64 z x))) 1) |
(/.f64 (*.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 y 1/2)) (sqrt.f64 (*.f64 z x))) 2) 2) |
(/.f64 (*.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 y 1/2)) (sqrt.f64 (*.f64 z x))) 4) 4) |
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 y 1/2)) (sqrt.f64 (*.f64 z x))) 4)) 8) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 y 1/2)) (sqrt.f64 (*.f64 z x))) 4))) 16) |
| Outputs |
|---|
(sqrt.f64 (*.f64 z x)) |
(*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 z x)))) |
(*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 1/2 y)) |
(*.f64 y (*.f64 1/2 (sqrt.f64 (/.f64 z x)))) |
(*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 z x)))) |
(*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 1/2 y)) |
(*.f64 y (*.f64 1/2 (sqrt.f64 (/.f64 z x)))) |
(+.f64 (sqrt.f64 (/.f64 z x)) 0) |
(sqrt.f64 (/.f64 z x)) |
(+.f64 0 (sqrt.f64 (/.f64 z x))) |
(sqrt.f64 (/.f64 z x)) |
(+.f64 (*.f64 (sqrt.f64 (/.f64 z x)) 1/2) (*.f64 (sqrt.f64 (/.f64 z x)) 1/2)) |
(sqrt.f64 (/.f64 z x)) |
(-.f64 (sqrt.f64 (/.f64 z x)) 0) |
(sqrt.f64 (/.f64 z x)) |
(*.f64 (sqrt.f64 (/.f64 z x)) 1) |
(sqrt.f64 (/.f64 z x)) |
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 z x)) 2)) |
(sqrt.f64 (/.f64 z x)) |
(*.f64 1 (sqrt.f64 (/.f64 z x))) |
(sqrt.f64 (/.f64 z x)) |
(*.f64 (*.f64 (sqrt.f64 (/.f64 z x)) 1/2) 2) |
(sqrt.f64 (/.f64 z x)) |
(*.f64 2 (*.f64 (sqrt.f64 (/.f64 z x)) 1/2)) |
(sqrt.f64 (/.f64 z x)) |
(*.f64 (*.f64 (sqrt.f64 (/.f64 z x)) 2) 1/2) |
(sqrt.f64 (/.f64 z x)) |
(/.f64 (sqrt.f64 (/.f64 z x)) 1) |
(sqrt.f64 (/.f64 z x)) |
(/.f64 (*.f64 (sqrt.f64 (/.f64 z x)) 2) 2) |
(sqrt.f64 (/.f64 z x)) |
(/.f64 (*.f64 (sqrt.f64 (/.f64 z x)) 4) 4) |
(sqrt.f64 (/.f64 z x)) |
(/.f64 (*.f64 2 (*.f64 (sqrt.f64 (/.f64 z x)) 4)) 8) |
(sqrt.f64 (/.f64 z x)) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (/.f64 z x)) 4))) 16) |
(sqrt.f64 (/.f64 z x)) |
(+.f64 (*.f64 (sqrt.f64 (/.f64 z x)) y) 0) |
(*.f64 y (sqrt.f64 (/.f64 z x))) |
(+.f64 (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 y 1/2)) (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 y 1/2))) |
(*.f64 y (sqrt.f64 (/.f64 z x))) |
(+.f64 0 (*.f64 (sqrt.f64 (/.f64 z x)) y)) |
(*.f64 y (sqrt.f64 (/.f64 z x))) |
(-.f64 (*.f64 (sqrt.f64 (/.f64 z x)) y) 0) |
(*.f64 y (sqrt.f64 (/.f64 z x))) |
(/.f64 (*.f64 (sqrt.f64 (/.f64 z x)) y) 1) |
(*.f64 y (sqrt.f64 (/.f64 z x))) |
(/.f64 (*.f64 (sqrt.f64 (/.f64 z x)) (+.f64 y y)) 2) |
(*.f64 y (sqrt.f64 (/.f64 z x))) |
(/.f64 (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 y 4)) 4) |
(*.f64 y (sqrt.f64 (/.f64 z x))) |
(/.f64 (*.f64 2 (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 y 4))) 8) |
(*.f64 y (sqrt.f64 (/.f64 z x))) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 y 4)))) 16) |
(*.f64 y (sqrt.f64 (/.f64 z x))) |
(-.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 y 1/2)) (sqrt.f64 (*.f64 z x))) 0) |
(+.f64 (sqrt.f64 (*.f64 z x)) (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 1/2 y))) |
(+.f64 (sqrt.f64 (*.f64 z x)) (*.f64 y (*.f64 1/2 (sqrt.f64 (/.f64 z x))))) |
(*.f64 1/2 (*.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 y 1/2)) (sqrt.f64 (*.f64 z x))) 2)) |
(+.f64 (sqrt.f64 (*.f64 z x)) (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 1/2 y))) |
(+.f64 (sqrt.f64 (*.f64 z x)) (*.f64 y (*.f64 1/2 (sqrt.f64 (/.f64 z x))))) |
(*.f64 1/2 (+.f64 (*.f64 (sqrt.f64 (/.f64 z x)) y) (*.f64 (sqrt.f64 (*.f64 z x)) 2))) |
(+.f64 (sqrt.f64 (*.f64 z x)) (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 1/2 y))) |
(+.f64 (sqrt.f64 (*.f64 z x)) (*.f64 y (*.f64 1/2 (sqrt.f64 (/.f64 z x))))) |
(*.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 y 1/2)) (sqrt.f64 (*.f64 z x))) 1) |
(+.f64 (sqrt.f64 (*.f64 z x)) (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 1/2 y))) |
(+.f64 (sqrt.f64 (*.f64 z x)) (*.f64 y (*.f64 1/2 (sqrt.f64 (/.f64 z x))))) |
(*.f64 1 (+.f64 (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 y 1/2)) (sqrt.f64 (*.f64 z x)))) |
(+.f64 (sqrt.f64 (*.f64 z x)) (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 1/2 y))) |
(+.f64 (sqrt.f64 (*.f64 z x)) (*.f64 y (*.f64 1/2 (sqrt.f64 (/.f64 z x))))) |
(*.f64 2 (/.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 y 1/2)) (sqrt.f64 (*.f64 z x))) 2)) |
(+.f64 (sqrt.f64 (*.f64 z x)) (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 1/2 y))) |
(+.f64 (sqrt.f64 (*.f64 z x)) (*.f64 y (*.f64 1/2 (sqrt.f64 (/.f64 z x))))) |
(*.f64 2 (*.f64 (/.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 y 1/2)) (sqrt.f64 (*.f64 z x))) 2) 1)) |
(+.f64 (sqrt.f64 (*.f64 z x)) (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 1/2 y))) |
(+.f64 (sqrt.f64 (*.f64 z x)) (*.f64 y (*.f64 1/2 (sqrt.f64 (/.f64 z x))))) |
(*.f64 (*.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 y 1/2)) (sqrt.f64 (*.f64 z x))) 2) 1/2) |
(+.f64 (sqrt.f64 (*.f64 z x)) (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 1/2 y))) |
(+.f64 (sqrt.f64 (*.f64 z x)) (*.f64 y (*.f64 1/2 (sqrt.f64 (/.f64 z x))))) |
(*.f64 (/.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 y 1/2)) (sqrt.f64 (*.f64 z x))) 2) 2) |
(+.f64 (sqrt.f64 (*.f64 z x)) (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 1/2 y))) |
(+.f64 (sqrt.f64 (*.f64 z x)) (*.f64 y (*.f64 1/2 (sqrt.f64 (/.f64 z x))))) |
(/.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 y 1/2)) (sqrt.f64 (*.f64 z x))) 1) |
(+.f64 (sqrt.f64 (*.f64 z x)) (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 1/2 y))) |
(+.f64 (sqrt.f64 (*.f64 z x)) (*.f64 y (*.f64 1/2 (sqrt.f64 (/.f64 z x))))) |
(/.f64 (*.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 y 1/2)) (sqrt.f64 (*.f64 z x))) 2) 2) |
(+.f64 (sqrt.f64 (*.f64 z x)) (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 1/2 y))) |
(+.f64 (sqrt.f64 (*.f64 z x)) (*.f64 y (*.f64 1/2 (sqrt.f64 (/.f64 z x))))) |
(/.f64 (*.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 y 1/2)) (sqrt.f64 (*.f64 z x))) 4) 4) |
(+.f64 (sqrt.f64 (*.f64 z x)) (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 1/2 y))) |
(+.f64 (sqrt.f64 (*.f64 z x)) (*.f64 y (*.f64 1/2 (sqrt.f64 (/.f64 z x))))) |
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 y 1/2)) (sqrt.f64 (*.f64 z x))) 4)) 8) |
(+.f64 (sqrt.f64 (*.f64 z x)) (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 1/2 y))) |
(+.f64 (sqrt.f64 (*.f64 z x)) (*.f64 y (*.f64 1/2 (sqrt.f64 (/.f64 z x))))) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 y 1/2)) (sqrt.f64 (*.f64 z x))) 4))) 16) |
(+.f64 (sqrt.f64 (*.f64 z x)) (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 1/2 y))) |
(+.f64 (sqrt.f64 (*.f64 z x)) (*.f64 y (*.f64 1/2 (sqrt.f64 (/.f64 z x))))) |
Found 4 expressions with local error:
| New | Error | Program |
|---|---|---|
| ✓ | 0.0b | (+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 x y)) z)) (sqrt.f64 (*.f64 y x))) |
| ✓ | 0.2b | (*.f64 (sqrt.f64 (/.f64 x y)) z) |
| ✓ | 8.1b | (sqrt.f64 (/.f64 x y)) |
| 18.0b | (sqrt.f64 (*.f64 y x)) |
Compiled 64 to 20 computations (68.8% saved)
24 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 1.0ms | x | @ | -inf | (+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 x y)) z)) (sqrt.f64 (*.f64 y x))) |
| 1.0ms | z | @ | 0 | (*.f64 (sqrt.f64 (/.f64 x y)) z) |
| 1.0ms | x | @ | 0 | (+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 x y)) z)) (sqrt.f64 (*.f64 y x))) |
| 1.0ms | y | @ | -inf | (+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 x y)) z)) (sqrt.f64 (*.f64 y x))) |
| 1.0ms | x | @ | inf | (+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 x y)) z)) (sqrt.f64 (*.f64 y x))) |
| 1× | batch-egg-rewrite |
| 1014× | rational.json-simplify-50 |
| 974× | rational.json-simplify-53 |
| 772× | rational.json-simplify-1 |
| 736× | rational.json-simplify-35 |
| 654× | bool.json-1 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 14 | 67 |
| 1 | 140 | 67 |
| 2 | 376 | 67 |
| 3 | 846 | 67 |
| 4 | 1998 | 67 |
| 5 | 5885 | 67 |
| 1× | node limit |
| Inputs |
|---|
(sqrt.f64 (/.f64 x y)) |
(*.f64 (sqrt.f64 (/.f64 x y)) z) |
(+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 x y)) z)) (sqrt.f64 (*.f64 y x))) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (sqrt.f64 (/.f64 x y)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (sqrt.f64 (/.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (sqrt.f64 (/.f64 x y)) 1/2) (*.f64 (sqrt.f64 (/.f64 x y)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (sqrt.f64 (/.f64 x y)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (/.f64 x y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (sqrt.f64 (/.f64 x y)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (sqrt.f64 (/.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (sqrt.f64 (/.f64 x y)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sqrt.f64 (/.f64 x y)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sqrt.f64 (/.f64 x y)) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (sqrt.f64 (/.f64 x y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sqrt.f64 (/.f64 x y)) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sqrt.f64 (/.f64 x y)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (sqrt.f64 (/.f64 x y)) 4)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (/.f64 x y)) 4))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (sqrt.f64 (/.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x and (sqrt.f64 (/.f64 x y)) (sqrt.f64 (/.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x or (sqrt.f64 (/.f64 x y)) (sqrt.f64 (/.f64 x y))))))) |
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (sqrt.f64 (/.f64 x y)) z) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 z 1/2)) (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 z 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (sqrt.f64 (/.f64 x y)) z))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (sqrt.f64 (/.f64 x y)) z) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sqrt.f64 (/.f64 x y)) z) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sqrt.f64 (/.f64 x y)) (+.f64 z z)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 z 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 z 4))) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 z 4)))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 (sqrt.f64 (/.f64 x y)) z)))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 (sqrt.f64 (/.f64 x y)) z) (*.f64 (sqrt.f64 (/.f64 x y)) z))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 (sqrt.f64 (/.f64 x y)) z) (*.f64 (sqrt.f64 (/.f64 x y)) z)))))) |
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 z 1/2)) (sqrt.f64 (*.f64 x y))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 z 1/2)) (sqrt.f64 (*.f64 x y))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (*.f64 (sqrt.f64 (/.f64 x y)) z) (*.f64 (sqrt.f64 (*.f64 x y)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 z 1/2)) (sqrt.f64 (*.f64 x y))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 z 1/2)) (sqrt.f64 (*.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (/.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 z 1/2)) (sqrt.f64 (*.f64 x y))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (/.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 z 1/2)) (sqrt.f64 (*.f64 x y))) 2) 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 z 1/2)) (sqrt.f64 (*.f64 x y))) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 z 1/2)) (sqrt.f64 (*.f64 x y))) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 z 1/2)) (sqrt.f64 (*.f64 x y))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 z 1/2)) (sqrt.f64 (*.f64 x y))) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 z 1/2)) (sqrt.f64 (*.f64 x y))) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 z 1/2)) (sqrt.f64 (*.f64 x y))) 4)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 z 1/2)) (sqrt.f64 (*.f64 x y))) 4))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (+.f64 (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 z 1/2)) (sqrt.f64 (*.f64 x y)))))))) (#(struct:change #<rule egg-rr> (2) ((x and (+.f64 (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 z 1/2)) (sqrt.f64 (*.f64 x y))) (+.f64 (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 z 1/2)) (sqrt.f64 (*.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x or (+.f64 (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 z 1/2)) (sqrt.f64 (*.f64 x y))) (+.f64 (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 z 1/2)) (sqrt.f64 (*.f64 x y)))))))) |
| 1× | egg-herbie |
| 3306× | rational.json-simplify-41 |
| 2452× | rational.json-simplify-2 |
| 2050× | rational.json-simplify-53 |
| 1876× | rational.json-simplify-35 |
| 672× | rational.json-simplify-51 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 81 | 921 |
| 1 | 175 | 921 |
| 2 | 434 | 921 |
| 3 | 1202 | 921 |
| 4 | 2392 | 921 |
| 5 | 3048 | 921 |
| 6 | 3155 | 921 |
| 7 | 3243 | 921 |
| 8 | 3326 | 921 |
| 9 | 3408 | 921 |
| 10 | 4030 | 921 |
| 11 | 4630 | 921 |
| 12 | 4712 | 921 |
| 13 | 4794 | 921 |
| 14 | 4876 | 921 |
| 15 | 4958 | 921 |
| 16 | 5040 | 921 |
| 17 | 5040 | 921 |
| 18 | 7583 | 921 |
| 1× | node limit |
| Inputs |
|---|
(sqrt.f64 (*.f64 y x)) |
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 x y)) z)) |
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 x y)) z)) |
(+.f64 (sqrt.f64 (/.f64 x y)) 0) |
(+.f64 0 (sqrt.f64 (/.f64 x y))) |
(+.f64 (*.f64 (sqrt.f64 (/.f64 x y)) 1/2) (*.f64 (sqrt.f64 (/.f64 x y)) 1/2)) |
(-.f64 (sqrt.f64 (/.f64 x y)) 0) |
(*.f64 (sqrt.f64 (/.f64 x y)) 1) |
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 x y)) 2)) |
(*.f64 1 (sqrt.f64 (/.f64 x y))) |
(*.f64 2 (*.f64 (sqrt.f64 (/.f64 x y)) 1/2)) |
(*.f64 (*.f64 (sqrt.f64 (/.f64 x y)) 2) 1/2) |
(*.f64 (*.f64 (sqrt.f64 (/.f64 x y)) 1/2) 2) |
(/.f64 (sqrt.f64 (/.f64 x y)) 1) |
(/.f64 (*.f64 (sqrt.f64 (/.f64 x y)) 2) 2) |
(/.f64 (*.f64 (sqrt.f64 (/.f64 x y)) 4) 4) |
(/.f64 (*.f64 2 (*.f64 (sqrt.f64 (/.f64 x y)) 4)) 8) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (/.f64 x y)) 4))) 16) |
(+.f64 (*.f64 (sqrt.f64 (/.f64 x y)) z) 0) |
(+.f64 (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 z 1/2)) (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 z 1/2))) |
(+.f64 0 (*.f64 (sqrt.f64 (/.f64 x y)) z)) |
(-.f64 (*.f64 (sqrt.f64 (/.f64 x y)) z) 0) |
(/.f64 (*.f64 (sqrt.f64 (/.f64 x y)) z) 1) |
(/.f64 (*.f64 (sqrt.f64 (/.f64 x y)) (+.f64 z z)) 2) |
(/.f64 (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 z 4)) 4) |
(/.f64 (*.f64 2 (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 z 4))) 8) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 z 4)))) 16) |
(-.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 z 1/2)) (sqrt.f64 (*.f64 x y))) 0) |
(*.f64 1/2 (*.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 z 1/2)) (sqrt.f64 (*.f64 x y))) 2)) |
(*.f64 1/2 (+.f64 (*.f64 (sqrt.f64 (/.f64 x y)) z) (*.f64 (sqrt.f64 (*.f64 x y)) 2))) |
(*.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 z 1/2)) (sqrt.f64 (*.f64 x y))) 1) |
(*.f64 1 (+.f64 (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 z 1/2)) (sqrt.f64 (*.f64 x y)))) |
(*.f64 2 (/.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 z 1/2)) (sqrt.f64 (*.f64 x y))) 2)) |
(*.f64 2 (*.f64 (/.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 z 1/2)) (sqrt.f64 (*.f64 x y))) 2) 1)) |
(*.f64 (*.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 z 1/2)) (sqrt.f64 (*.f64 x y))) 2) 1/2) |
(*.f64 (/.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 z 1/2)) (sqrt.f64 (*.f64 x y))) 2) 2) |
(/.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 z 1/2)) (sqrt.f64 (*.f64 x y))) 1) |
(/.f64 (*.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 z 1/2)) (sqrt.f64 (*.f64 x y))) 2) 2) |
(/.f64 (*.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 z 1/2)) (sqrt.f64 (*.f64 x y))) 4) 4) |
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 z 1/2)) (sqrt.f64 (*.f64 x y))) 4)) 8) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 z 1/2)) (sqrt.f64 (*.f64 x y))) 4))) 16) |
| Outputs |
|---|
(sqrt.f64 (*.f64 y x)) |
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 x y)) z)) |
(*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 1/2 z)) |
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 x y)) z)) |
(*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 1/2 z)) |
(+.f64 (sqrt.f64 (/.f64 x y)) 0) |
(sqrt.f64 (/.f64 x y)) |
(+.f64 0 (sqrt.f64 (/.f64 x y))) |
(sqrt.f64 (/.f64 x y)) |
(+.f64 (*.f64 (sqrt.f64 (/.f64 x y)) 1/2) (*.f64 (sqrt.f64 (/.f64 x y)) 1/2)) |
(sqrt.f64 (/.f64 x y)) |
(-.f64 (sqrt.f64 (/.f64 x y)) 0) |
(sqrt.f64 (/.f64 x y)) |
(*.f64 (sqrt.f64 (/.f64 x y)) 1) |
(sqrt.f64 (/.f64 x y)) |
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 x y)) 2)) |
(sqrt.f64 (/.f64 x y)) |
(*.f64 1 (sqrt.f64 (/.f64 x y))) |
(sqrt.f64 (/.f64 x y)) |
(*.f64 2 (*.f64 (sqrt.f64 (/.f64 x y)) 1/2)) |
(sqrt.f64 (/.f64 x y)) |
(*.f64 (*.f64 (sqrt.f64 (/.f64 x y)) 2) 1/2) |
(sqrt.f64 (/.f64 x y)) |
(*.f64 (*.f64 (sqrt.f64 (/.f64 x y)) 1/2) 2) |
(sqrt.f64 (/.f64 x y)) |
(/.f64 (sqrt.f64 (/.f64 x y)) 1) |
(sqrt.f64 (/.f64 x y)) |
(/.f64 (*.f64 (sqrt.f64 (/.f64 x y)) 2) 2) |
(sqrt.f64 (/.f64 x y)) |
(/.f64 (*.f64 (sqrt.f64 (/.f64 x y)) 4) 4) |
(sqrt.f64 (/.f64 x y)) |
(/.f64 (*.f64 2 (*.f64 (sqrt.f64 (/.f64 x y)) 4)) 8) |
(sqrt.f64 (/.f64 x y)) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (/.f64 x y)) 4))) 16) |
(sqrt.f64 (/.f64 x y)) |
(+.f64 (*.f64 (sqrt.f64 (/.f64 x y)) z) 0) |
(*.f64 (sqrt.f64 (/.f64 x y)) z) |
(+.f64 (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 z 1/2)) (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 z 1/2))) |
(*.f64 (sqrt.f64 (/.f64 x y)) z) |
(+.f64 0 (*.f64 (sqrt.f64 (/.f64 x y)) z)) |
(*.f64 (sqrt.f64 (/.f64 x y)) z) |
(-.f64 (*.f64 (sqrt.f64 (/.f64 x y)) z) 0) |
(*.f64 (sqrt.f64 (/.f64 x y)) z) |
(/.f64 (*.f64 (sqrt.f64 (/.f64 x y)) z) 1) |
(*.f64 (sqrt.f64 (/.f64 x y)) z) |
(/.f64 (*.f64 (sqrt.f64 (/.f64 x y)) (+.f64 z z)) 2) |
(*.f64 (sqrt.f64 (/.f64 x y)) z) |
(/.f64 (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 z 4)) 4) |
(*.f64 (sqrt.f64 (/.f64 x y)) z) |
(/.f64 (*.f64 2 (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 z 4))) 8) |
(*.f64 (sqrt.f64 (/.f64 x y)) z) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 z 4)))) 16) |
(*.f64 (sqrt.f64 (/.f64 x y)) z) |
(-.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 z 1/2)) (sqrt.f64 (*.f64 x y))) 0) |
(+.f64 (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 1/2 z)) (sqrt.f64 (*.f64 y x))) |
(+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 x y)) z)) (sqrt.f64 (*.f64 y x))) |
(*.f64 1/2 (*.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 z 1/2)) (sqrt.f64 (*.f64 x y))) 2)) |
(+.f64 (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 1/2 z)) (sqrt.f64 (*.f64 y x))) |
(+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 x y)) z)) (sqrt.f64 (*.f64 y x))) |
(*.f64 1/2 (+.f64 (*.f64 (sqrt.f64 (/.f64 x y)) z) (*.f64 (sqrt.f64 (*.f64 x y)) 2))) |
(+.f64 (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 1/2 z)) (sqrt.f64 (*.f64 y x))) |
(+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 x y)) z)) (sqrt.f64 (*.f64 y x))) |
(*.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 z 1/2)) (sqrt.f64 (*.f64 x y))) 1) |
(+.f64 (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 1/2 z)) (sqrt.f64 (*.f64 y x))) |
(+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 x y)) z)) (sqrt.f64 (*.f64 y x))) |
(*.f64 1 (+.f64 (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 z 1/2)) (sqrt.f64 (*.f64 x y)))) |
(+.f64 (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 1/2 z)) (sqrt.f64 (*.f64 y x))) |
(+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 x y)) z)) (sqrt.f64 (*.f64 y x))) |
(*.f64 2 (/.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 z 1/2)) (sqrt.f64 (*.f64 x y))) 2)) |
(+.f64 (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 1/2 z)) (sqrt.f64 (*.f64 y x))) |
(+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 x y)) z)) (sqrt.f64 (*.f64 y x))) |
(*.f64 2 (*.f64 (/.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 z 1/2)) (sqrt.f64 (*.f64 x y))) 2) 1)) |
(+.f64 (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 1/2 z)) (sqrt.f64 (*.f64 y x))) |
(+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 x y)) z)) (sqrt.f64 (*.f64 y x))) |
(*.f64 (*.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 z 1/2)) (sqrt.f64 (*.f64 x y))) 2) 1/2) |
(+.f64 (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 1/2 z)) (sqrt.f64 (*.f64 y x))) |
(+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 x y)) z)) (sqrt.f64 (*.f64 y x))) |
(*.f64 (/.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 z 1/2)) (sqrt.f64 (*.f64 x y))) 2) 2) |
(+.f64 (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 1/2 z)) (sqrt.f64 (*.f64 y x))) |
(+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 x y)) z)) (sqrt.f64 (*.f64 y x))) |
(/.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 z 1/2)) (sqrt.f64 (*.f64 x y))) 1) |
(+.f64 (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 1/2 z)) (sqrt.f64 (*.f64 y x))) |
(+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 x y)) z)) (sqrt.f64 (*.f64 y x))) |
(/.f64 (*.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 z 1/2)) (sqrt.f64 (*.f64 x y))) 2) 2) |
(+.f64 (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 1/2 z)) (sqrt.f64 (*.f64 y x))) |
(+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 x y)) z)) (sqrt.f64 (*.f64 y x))) |
(/.f64 (*.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 z 1/2)) (sqrt.f64 (*.f64 x y))) 4) 4) |
(+.f64 (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 1/2 z)) (sqrt.f64 (*.f64 y x))) |
(+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 x y)) z)) (sqrt.f64 (*.f64 y x))) |
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 z 1/2)) (sqrt.f64 (*.f64 x y))) 4)) 8) |
(+.f64 (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 1/2 z)) (sqrt.f64 (*.f64 y x))) |
(+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 x y)) z)) (sqrt.f64 (*.f64 y x))) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 z 1/2)) (sqrt.f64 (*.f64 x y))) 4))) 16) |
(+.f64 (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 1/2 z)) (sqrt.f64 (*.f64 y x))) |
(+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 x y)) z)) (sqrt.f64 (*.f64 y x))) |
Found 4 expressions with local error:
| New | Error | Program |
|---|---|---|
| ✓ | 0.1b | (*.f64 (+.f64 z x) (sqrt.f64 (/.f64 1 (*.f64 z x)))) |
| ✓ | 0.4b | (/.f64 1 (*.f64 z x)) |
| 5.1b | (sqrt.f64 (*.f64 z x)) | |
| ✓ | 5.3b | (sqrt.f64 (/.f64 1 (*.f64 z x))) |
Compiled 106 to 49 computations (53.8% saved)
18 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 1.0ms | z | @ | -inf | (sqrt.f64 (/.f64 1 (*.f64 z x))) |
| 1.0ms | z | @ | -inf | (*.f64 (+.f64 z x) (sqrt.f64 (/.f64 1 (*.f64 z x)))) |
| 1.0ms | x | @ | -inf | (*.f64 (+.f64 z x) (sqrt.f64 (/.f64 1 (*.f64 z x)))) |
| 1.0ms | z | @ | inf | (*.f64 (+.f64 z x) (sqrt.f64 (/.f64 1 (*.f64 z x)))) |
| 0.0ms | x | @ | inf | (*.f64 (+.f64 z x) (sqrt.f64 (/.f64 1 (*.f64 z x)))) |
| 1× | batch-egg-rewrite |
| 2050× | bool.json-1 |
| 2050× | bool.json-2 |
| 1604× | bool.json-3 |
| 910× | rational.json-simplify-35 |
| 758× | rational.json-1 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 11 | 59 |
| 1 | 119 | 59 |
| 2 | 346 | 59 |
| 3 | 818 | 59 |
| 4 | 2248 | 59 |
| 5 | 6216 | 59 |
| 1× | node limit |
| Inputs |
|---|
(sqrt.f64 (/.f64 1 (*.f64 z x))) |
(/.f64 1 (*.f64 z x)) |
(*.f64 (+.f64 z x) (sqrt.f64 (/.f64 1 (*.f64 z x)))) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (sqrt.f64 (/.f64 1 (*.f64 z x))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (sqrt.f64 (/.f64 1 (*.f64 z x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (/.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (/.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) 2) 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) 4)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) 4)) (*.f64 2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) 4))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (sqrt.f64 (/.f64 1 (*.f64 z x)))))))) (#(struct:change #<rule egg-rr> (2) ((x and (sqrt.f64 (/.f64 1 (*.f64 z x))) (sqrt.f64 (/.f64 1 (*.f64 z x))))))) (#(struct:change #<rule egg-rr> (2) ((x or (sqrt.f64 (/.f64 1 (*.f64 z x))) (sqrt.f64 (/.f64 1 (*.f64 z x)))))))) |
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (/.f64 1 (*.f64 z x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (/.f64 1 (*.f64 z x)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 1 (*.f64 z x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (/.f64 1 (*.f64 z x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (*.f64 z x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (/.f64 1/2 (*.f64 z x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (/.f64 1/2 (*.f64 z x)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 z) (/.f64 1 x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (/.f64 1 (*.f64 z x)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (/.f64 1 z)) (/.f64 1/2 x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (/.f64 1 z)) (*.f64 (/.f64 1/2 x) 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (/.f64 1 z)) (*.f64 1/2 (/.f64 1 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 x) (/.f64 1 z))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (/.f64 (/.f64 -1 z) x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (*.f64 (/.f64 (/.f64 -1 z) x) 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 -1 z) (/.f64 -1 x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 -1 x) (/.f64 -1 z))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (/.f64 1 (*.f64 z x)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (/.f64 -1 z) x) -1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1/2 x) (*.f64 2 (/.f64 1 z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1/2 (*.f64 z x)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (/.f64 (/.f64 -1 z) x))))) (#(struct:change #<rule egg-rr> (2) ((x not (not (/.f64 1 (*.f64 z x))))))) (#(struct:change #<rule egg-rr> (2) ((x and (/.f64 1 (*.f64 z x)) (/.f64 1 (*.f64 z x)))))) (#(struct:change #<rule egg-rr> (2) ((x or (/.f64 1 (*.f64 z x)) (/.f64 1 (*.f64 z x))))))) |
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) (+.f64 z x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) (+.f64 z x)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) (+.f64 z x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) (+.f64 z x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) (*.f64 (+.f64 z x) 2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) (*.f64 (+.f64 z x) 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) (*.f64 (+.f64 z x) 4))) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) (*.f64 (+.f64 z x) 4))) (*.f64 2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) (*.f64 (+.f64 z x) 4)))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) (+.f64 z x))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) (+.f64 z x)) (*.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) (+.f64 z x)))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) (+.f64 z x)) (*.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) (+.f64 z x))))))) |
| 1× | egg-herbie |
| 1484× | rational.json-simplify-53 |
| 1386× | rational.json-simplify-35 |
| 1102× | rational.json-simplify-2 |
| 932× | rational.json-simplify-41 |
| 736× | rational.json-simplify-50 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 88 | 773 |
| 1 | 179 | 773 |
| 2 | 403 | 773 |
| 3 | 1061 | 773 |
| 4 | 2267 | 773 |
| 5 | 3735 | 773 |
| 6 | 4541 | 773 |
| 7 | 5144 | 773 |
| 8 | 5996 | 773 |
| 9 | 6864 | 773 |
| 1× | node limit |
| Inputs |
|---|
(+.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) 0) |
(+.f64 0 (sqrt.f64 (/.f64 1 (*.f64 z x)))) |
(-.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) 0) |
(*.f64 1 (sqrt.f64 (/.f64 1 (*.f64 z x)))) |
(*.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) 1) |
(*.f64 2 (/.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) 2)) |
(*.f64 2 (*.f64 (/.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) 2) 1)) |
(*.f64 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) 2) 1/2) |
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) 2)) |
(*.f64 (/.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) 2) 2) |
(/.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) 1) |
(/.f64 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) 2) 2) |
(/.f64 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) 4) 4) |
(/.f64 (*.f64 2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) 4)) 8) |
(/.f64 (+.f64 (*.f64 2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) 4)) (*.f64 2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) 4))) 16) |
(+.f64 (/.f64 1 (*.f64 z x)) 0) |
(+.f64 0 (/.f64 1 (*.f64 z x))) |
(-.f64 (/.f64 1 (*.f64 z x)) 0) |
(*.f64 1 (/.f64 1 (*.f64 z x))) |
(*.f64 (/.f64 1 (*.f64 z x)) 1) |
(*.f64 2 (/.f64 1/2 (*.f64 z x))) |
(*.f64 2 (*.f64 (/.f64 1/2 (*.f64 z x)) 1)) |
(*.f64 (/.f64 1 z) (/.f64 1 x)) |
(*.f64 (*.f64 (/.f64 1 (*.f64 z x)) 2) 1/2) |
(*.f64 (*.f64 2 (/.f64 1 z)) (/.f64 1/2 x)) |
(*.f64 (*.f64 2 (/.f64 1 z)) (*.f64 (/.f64 1/2 x) 1)) |
(*.f64 (*.f64 2 (/.f64 1 z)) (*.f64 1/2 (/.f64 1 x))) |
(*.f64 (/.f64 1 x) (/.f64 1 z)) |
(*.f64 -1 (/.f64 (/.f64 -1 z) x)) |
(*.f64 -1 (*.f64 (/.f64 (/.f64 -1 z) x) 1)) |
(*.f64 (/.f64 -1 z) (/.f64 -1 x)) |
(*.f64 (/.f64 -1 x) (/.f64 -1 z)) |
(*.f64 1/2 (*.f64 (/.f64 1 (*.f64 z x)) 2)) |
(*.f64 (/.f64 (/.f64 -1 z) x) -1) |
(*.f64 (/.f64 1/2 x) (*.f64 2 (/.f64 1 z))) |
(*.f64 (/.f64 1/2 (*.f64 z x)) 2) |
(neg.f64 (/.f64 (/.f64 -1 z) x)) |
(+.f64 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) (+.f64 z x)) 0) |
(+.f64 0 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) (+.f64 z x))) |
(-.f64 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) (+.f64 z x)) 0) |
(/.f64 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) (+.f64 z x)) 1) |
(/.f64 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) (*.f64 (+.f64 z x) 2)) 2) |
(/.f64 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) (*.f64 (+.f64 z x) 4)) 4) |
(/.f64 (*.f64 2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) (*.f64 (+.f64 z x) 4))) 8) |
(/.f64 (+.f64 (*.f64 2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) (*.f64 (+.f64 z x) 4))) (*.f64 2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) (*.f64 (+.f64 z x) 4)))) 16) |
| Outputs |
|---|
(+.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) 0) |
(sqrt.f64 (/.f64 1 (*.f64 z x))) |
(+.f64 0 (sqrt.f64 (/.f64 1 (*.f64 z x)))) |
(sqrt.f64 (/.f64 1 (*.f64 z x))) |
(-.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) 0) |
(sqrt.f64 (/.f64 1 (*.f64 z x))) |
(*.f64 1 (sqrt.f64 (/.f64 1 (*.f64 z x)))) |
(sqrt.f64 (/.f64 1 (*.f64 z x))) |
(*.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) 1) |
(sqrt.f64 (/.f64 1 (*.f64 z x))) |
(*.f64 2 (/.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) 2)) |
(sqrt.f64 (/.f64 1 (*.f64 z x))) |
(*.f64 2 (*.f64 (/.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) 2) 1)) |
(sqrt.f64 (/.f64 1 (*.f64 z x))) |
(*.f64 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) 2) 1/2) |
(sqrt.f64 (/.f64 1 (*.f64 z x))) |
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) 2)) |
(sqrt.f64 (/.f64 1 (*.f64 z x))) |
(*.f64 (/.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) 2) 2) |
(sqrt.f64 (/.f64 1 (*.f64 z x))) |
(/.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) 1) |
(sqrt.f64 (/.f64 1 (*.f64 z x))) |
(/.f64 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) 2) 2) |
(sqrt.f64 (/.f64 1 (*.f64 z x))) |
(/.f64 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) 4) 4) |
(sqrt.f64 (/.f64 1 (*.f64 z x))) |
(/.f64 (*.f64 2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) 4)) 8) |
(sqrt.f64 (/.f64 1 (*.f64 z x))) |
(/.f64 (+.f64 (*.f64 2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) 4)) (*.f64 2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) 4))) 16) |
(sqrt.f64 (/.f64 1 (*.f64 z x))) |
(+.f64 (/.f64 1 (*.f64 z x)) 0) |
(/.f64 1 (*.f64 z x)) |
(+.f64 0 (/.f64 1 (*.f64 z x))) |
(/.f64 1 (*.f64 z x)) |
(-.f64 (/.f64 1 (*.f64 z x)) 0) |
(/.f64 1 (*.f64 z x)) |
(*.f64 1 (/.f64 1 (*.f64 z x))) |
(/.f64 1 (*.f64 z x)) |
(*.f64 (/.f64 1 (*.f64 z x)) 1) |
(/.f64 1 (*.f64 z x)) |
(*.f64 2 (/.f64 1/2 (*.f64 z x))) |
(/.f64 1 (*.f64 z x)) |
(*.f64 2 (*.f64 (/.f64 1/2 (*.f64 z x)) 1)) |
(/.f64 1 (*.f64 z x)) |
(*.f64 (/.f64 1 z) (/.f64 1 x)) |
(/.f64 1 (*.f64 z x)) |
(*.f64 (*.f64 (/.f64 1 (*.f64 z x)) 2) 1/2) |
(/.f64 1 (*.f64 z x)) |
(*.f64 (*.f64 2 (/.f64 1 z)) (/.f64 1/2 x)) |
(/.f64 1 (*.f64 z x)) |
(*.f64 (*.f64 2 (/.f64 1 z)) (*.f64 (/.f64 1/2 x) 1)) |
(/.f64 1 (*.f64 z x)) |
(*.f64 (*.f64 2 (/.f64 1 z)) (*.f64 1/2 (/.f64 1 x))) |
(/.f64 1 (*.f64 z x)) |
(*.f64 (/.f64 1 x) (/.f64 1 z)) |
(/.f64 1 (*.f64 z x)) |
(*.f64 -1 (/.f64 (/.f64 -1 z) x)) |
(/.f64 1 (*.f64 z x)) |
(*.f64 -1 (*.f64 (/.f64 (/.f64 -1 z) x) 1)) |
(/.f64 1 (*.f64 z x)) |
(*.f64 (/.f64 -1 z) (/.f64 -1 x)) |
(/.f64 1 (*.f64 z x)) |
(*.f64 (/.f64 -1 x) (/.f64 -1 z)) |
(/.f64 1 (*.f64 z x)) |
(*.f64 1/2 (*.f64 (/.f64 1 (*.f64 z x)) 2)) |
(/.f64 1 (*.f64 z x)) |
(*.f64 (/.f64 (/.f64 -1 z) x) -1) |
(/.f64 1 (*.f64 z x)) |
(*.f64 (/.f64 1/2 x) (*.f64 2 (/.f64 1 z))) |
(/.f64 1 (*.f64 z x)) |
(*.f64 (/.f64 1/2 (*.f64 z x)) 2) |
(/.f64 1 (*.f64 z x)) |
(neg.f64 (/.f64 (/.f64 -1 z) x)) |
(/.f64 1 (*.f64 z x)) |
(+.f64 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) (+.f64 z x)) 0) |
(*.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) (+.f64 z x)) |
(+.f64 0 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) (+.f64 z x))) |
(*.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) (+.f64 z x)) |
(-.f64 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) (+.f64 z x)) 0) |
(*.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) (+.f64 z x)) |
(/.f64 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) (+.f64 z x)) 1) |
(*.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) (+.f64 z x)) |
(/.f64 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) (*.f64 (+.f64 z x) 2)) 2) |
(*.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) (+.f64 z x)) |
(/.f64 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) (*.f64 (+.f64 z x) 4)) 4) |
(*.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) (+.f64 z x)) |
(/.f64 (*.f64 2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) (*.f64 (+.f64 z x) 4))) 8) |
(*.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) (+.f64 z x)) |
(/.f64 (+.f64 (*.f64 2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) (*.f64 (+.f64 z x) 4))) (*.f64 2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) (*.f64 (+.f64 z x) 4)))) 16) |
(*.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) (+.f64 z x)) |
Compiled 7536 to 4020 computations (46.7% saved)
11 alts after pruning (3 fresh and 8 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 361 | 3 | 364 |
| Fresh | 0 | 0 | 0 |
| Picked | 0 | 1 | 1 |
| Done | 2 | 7 | 9 |
| Total | 363 | 11 | 374 |
| Status | Error | Program |
|---|---|---|
| ✓ | 62.2b | (*.f64 2 (+.f64 (sqrt.f64 (*.f64 z x)) (*.f64 y (*.f64 (*.f64 (+.f64 z x) (sqrt.f64 (/.f64 1 (*.f64 z x)))) 1/2)))) |
| ▶ | 62.2b | (*.f64 2 (+.f64 (sqrt.f64 (*.f64 z x)) (*.f64 y (*.f64 (*.f64 (+.f64 z x) (sqrt.f64 (*.f64 (/.f64 1 z) (/.f64 1 x)))) 1/2)))) |
| ✓ | 38.7b | (*.f64 2 (+.f64 (sqrt.f64 (*.f64 y x)) (*.f64 z (*.f64 (*.f64 (+.f64 y x) (sqrt.f64 (/.f64 1 (*.f64 y x)))) 1/2)))) |
| ▶ | 62.8b | (*.f64 2 (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 1/2 y))) |
| ▶ | 62.0b | (*.f64 2 (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 1/2 z))) |
| ✓ | 42.2b | (*.f64 2 (sqrt.f64 (+.f64 (*.f64 z x) (*.f64 z y)))) |
| ✓ | 37.0b | (*.f64 2 (sqrt.f64 (*.f64 (+.f64 y z) x))) |
| ✓ | 42.2b | (*.f64 2 (sqrt.f64 (*.f64 (+.f64 y x) z))) |
| ✓ | 61.7b | (*.f64 2 (sqrt.f64 (*.f64 z x))) |
| ✓ | 43.1b | (*.f64 2 (sqrt.f64 (*.f64 y z))) |
| ✓ | 38.5b | (*.f64 2 (sqrt.f64 (*.f64 y x))) |
Compiled 162 to 117 computations (27.8% saved)
Found 2 expressions with local error:
| New | Error | Program |
|---|---|---|
| ✓ | 0.2b | (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 1/2 z)) |
| 8.1b | (sqrt.f64 (/.f64 x y)) |
Compiled 36 to 17 computations (52.8% saved)
9 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 0.0ms | y | @ | -inf | (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 1/2 z)) |
| 0.0ms | x | @ | 0 | (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 1/2 z)) |
| 0.0ms | x | @ | -inf | (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 1/2 z)) |
| 0.0ms | x | @ | inf | (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 1/2 z)) |
| 0.0ms | y | @ | inf | (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 1/2 z)) |
| 1× | batch-egg-rewrite |
| 1900× | bool.json-1 |
| 1900× | bool.json-2 |
| 1588× | bool.json-3 |
| 646× | rational.json-simplify-35 |
| 564× | rational.json-simplify-49 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 11 | 23 |
| 1 | 111 | 23 |
| 2 | 317 | 23 |
| 3 | 729 | 23 |
| 4 | 1703 | 23 |
| 5 | 5523 | 23 |
| 1× | node limit |
| Inputs |
|---|
(*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 1/2 z)) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 1/2 (*.f64 z (sqrt.f64 (/.f64 x y)))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 1/2 (*.f64 z (sqrt.f64 (/.f64 x y)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 1/2 (*.f64 z (sqrt.f64 (/.f64 x y)))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 1/2 (*.f64 z (sqrt.f64 (/.f64 x y)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 z (sqrt.f64 (/.f64 x y))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 z (*.f64 2 (sqrt.f64 (/.f64 x y)))) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 z (sqrt.f64 (/.f64 x y))) 4) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 (*.f64 z (sqrt.f64 (/.f64 x y))) 4) (*.f64 (*.f64 z (sqrt.f64 (/.f64 x y))) 4)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 1/2 (*.f64 z (sqrt.f64 (/.f64 x y))))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 1/2 (*.f64 z (sqrt.f64 (/.f64 x y)))) (*.f64 1/2 (*.f64 z (sqrt.f64 (/.f64 x y)))))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 1/2 (*.f64 z (sqrt.f64 (/.f64 x y)))) (*.f64 1/2 (*.f64 z (sqrt.f64 (/.f64 x y))))))))) |
| 1× | egg-herbie |
| 4398× | rational.json-simplify-41 |
| 2252× | rational.json-simplify-2 |
| 1764× | rational.json-simplify-35 |
| 1064× | rational.json-simplify-53 |
| 644× | rational.json-simplify-43 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 31 | 460 |
| 1 | 64 | 460 |
| 2 | 134 | 460 |
| 3 | 305 | 460 |
| 4 | 714 | 460 |
| 5 | 2146 | 460 |
| 6 | 2997 | 460 |
| 7 | 3260 | 460 |
| 8 | 3326 | 460 |
| 9 | 3384 | 460 |
| 10 | 3440 | 460 |
| 11 | 3495 | 460 |
| 12 | 3855 | 460 |
| 13 | 4296 | 460 |
| 14 | 4542 | 460 |
| 15 | 4709 | 460 |
| 16 | 4765 | 460 |
| 17 | 4820 | 460 |
| 18 | 4875 | 460 |
| 19 | 4930 | 460 |
| 20 | 4985 | 460 |
| 21 | 7990 | 460 |
| 1× | node limit |
| Inputs |
|---|
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 x y)) z)) |
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 x y)) z)) |
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 x y)) z)) |
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 x y)) z)) |
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 x y)) z)) |
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 x y)) z)) |
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 x y)) z)) |
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 x y)) z)) |
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 x y)) z)) |
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 x y)) z)) |
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 x y)) z)) |
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 x y)) z)) |
(+.f64 (*.f64 1/2 (*.f64 z (sqrt.f64 (/.f64 x y)))) 0) |
(+.f64 0 (*.f64 1/2 (*.f64 z (sqrt.f64 (/.f64 x y))))) |
(-.f64 (*.f64 1/2 (*.f64 z (sqrt.f64 (/.f64 x y)))) 0) |
(/.f64 (*.f64 1/2 (*.f64 z (sqrt.f64 (/.f64 x y)))) 1) |
(/.f64 (*.f64 z (sqrt.f64 (/.f64 x y))) 2) |
(/.f64 (*.f64 z (*.f64 2 (sqrt.f64 (/.f64 x y)))) 4) |
(/.f64 (*.f64 (*.f64 z (sqrt.f64 (/.f64 x y))) 4) 8) |
(/.f64 (+.f64 (*.f64 (*.f64 z (sqrt.f64 (/.f64 x y))) 4) (*.f64 (*.f64 z (sqrt.f64 (/.f64 x y))) 4)) 16) |
| Outputs |
|---|
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 x y)) z)) |
(*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 1/2 z)) |
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 x y)) z)) |
(*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 1/2 z)) |
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 x y)) z)) |
(*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 1/2 z)) |
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 x y)) z)) |
(*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 1/2 z)) |
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 x y)) z)) |
(*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 1/2 z)) |
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 x y)) z)) |
(*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 1/2 z)) |
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 x y)) z)) |
(*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 1/2 z)) |
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 x y)) z)) |
(*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 1/2 z)) |
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 x y)) z)) |
(*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 1/2 z)) |
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 x y)) z)) |
(*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 1/2 z)) |
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 x y)) z)) |
(*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 1/2 z)) |
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 x y)) z)) |
(*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 1/2 z)) |
(+.f64 (*.f64 1/2 (*.f64 z (sqrt.f64 (/.f64 x y)))) 0) |
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 x y)) z)) |
(*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 1/2 z)) |
(+.f64 0 (*.f64 1/2 (*.f64 z (sqrt.f64 (/.f64 x y))))) |
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 x y)) z)) |
(*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 1/2 z)) |
(-.f64 (*.f64 1/2 (*.f64 z (sqrt.f64 (/.f64 x y)))) 0) |
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 x y)) z)) |
(*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 1/2 z)) |
(/.f64 (*.f64 1/2 (*.f64 z (sqrt.f64 (/.f64 x y)))) 1) |
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 x y)) z)) |
(*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 1/2 z)) |
(/.f64 (*.f64 z (sqrt.f64 (/.f64 x y))) 2) |
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 x y)) z)) |
(*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 1/2 z)) |
(/.f64 (*.f64 z (*.f64 2 (sqrt.f64 (/.f64 x y)))) 4) |
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 x y)) z)) |
(*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 1/2 z)) |
(/.f64 (*.f64 (*.f64 z (sqrt.f64 (/.f64 x y))) 4) 8) |
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 x y)) z)) |
(*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 1/2 z)) |
(/.f64 (+.f64 (*.f64 (*.f64 z (sqrt.f64 (/.f64 x y))) 4) (*.f64 (*.f64 z (sqrt.f64 (/.f64 x y))) 4)) 16) |
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 x y)) z)) |
(*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 1/2 z)) |
Found 2 expressions with local error:
| New | Error | Program |
|---|---|---|
| ✓ | 0.1b | (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 1/2 y)) |
| 22.2b | (sqrt.f64 (/.f64 z x)) |
Compiled 36 to 17 computations (52.8% saved)
9 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 34.0ms | x | @ | inf | (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 1/2 y)) |
| 0.0ms | x | @ | -inf | (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 1/2 y)) |
| 0.0ms | z | @ | -inf | (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 1/2 y)) |
| 0.0ms | z | @ | 0 | (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 1/2 y)) |
| 0.0ms | z | @ | inf | (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 1/2 y)) |
| 1× | batch-egg-rewrite |
| 1900× | bool.json-1 |
| 1900× | bool.json-2 |
| 1588× | bool.json-3 |
| 646× | rational.json-simplify-35 |
| 564× | rational.json-simplify-49 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 11 | 23 |
| 1 | 111 | 23 |
| 2 | 317 | 23 |
| 3 | 729 | 23 |
| 4 | 1703 | 23 |
| 5 | 5523 | 23 |
| 1× | node limit |
| Inputs |
|---|
(*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 1/2 y)) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 z x)))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 z x)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 z x)))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 z x)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (sqrt.f64 (/.f64 z x))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (*.f64 2 (sqrt.f64 (/.f64 z x)))) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 y (sqrt.f64 (/.f64 z x))) 4) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 (*.f64 y (sqrt.f64 (/.f64 z x))) 4) (*.f64 (*.f64 y (sqrt.f64 (/.f64 z x))) 4)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 z x))))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 z x)))) (*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 z x)))))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 z x)))) (*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 z x))))))))) |
| 1× | egg-herbie |
| 4380× | rational.json-simplify-41 |
| 2196× | rational.json-simplify-2 |
| 1834× | rational.json-simplify-35 |
| 970× | rational.json-simplify-53 |
| 674× | rational.json-simplify-43 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 29 | 460 |
| 1 | 61 | 460 |
| 2 | 131 | 460 |
| 3 | 298 | 460 |
| 4 | 707 | 460 |
| 5 | 2241 | 460 |
| 6 | 3087 | 460 |
| 7 | 3479 | 460 |
| 8 | 3552 | 460 |
| 9 | 3617 | 460 |
| 10 | 3680 | 460 |
| 11 | 3742 | 460 |
| 12 | 3804 | 460 |
| 13 | 4133 | 460 |
| 14 | 4412 | 460 |
| 15 | 4621 | 460 |
| 16 | 4768 | 460 |
| 17 | 4872 | 460 |
| 18 | 4951 | 460 |
| 19 | 5022 | 460 |
| 20 | 5093 | 460 |
| 1× | node limit |
| Inputs |
|---|
(*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 z x)))) |
(*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 z x)))) |
(*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 z x)))) |
(*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 z x)))) |
(*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 z x)))) |
(*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 z x)))) |
(*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 z x)))) |
(*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 z x)))) |
(*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 z x)))) |
(*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 z x)))) |
(*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 z x)))) |
(*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 z x)))) |
(+.f64 (*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 z x)))) 0) |
(+.f64 0 (*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 z x))))) |
(-.f64 (*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 z x)))) 0) |
(/.f64 (*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 z x)))) 1) |
(/.f64 (*.f64 y (sqrt.f64 (/.f64 z x))) 2) |
(/.f64 (*.f64 y (*.f64 2 (sqrt.f64 (/.f64 z x)))) 4) |
(/.f64 (*.f64 (*.f64 y (sqrt.f64 (/.f64 z x))) 4) 8) |
(/.f64 (+.f64 (*.f64 (*.f64 y (sqrt.f64 (/.f64 z x))) 4) (*.f64 (*.f64 y (sqrt.f64 (/.f64 z x))) 4)) 16) |
| Outputs |
|---|
(*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 z x)))) |
(*.f64 (sqrt.f64 (/.f64 z x)) (/.f64 y 2)) |
(*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 1/2 y)) |
(*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 z x)))) |
(*.f64 (sqrt.f64 (/.f64 z x)) (/.f64 y 2)) |
(*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 1/2 y)) |
(*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 z x)))) |
(*.f64 (sqrt.f64 (/.f64 z x)) (/.f64 y 2)) |
(*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 1/2 y)) |
(*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 z x)))) |
(*.f64 (sqrt.f64 (/.f64 z x)) (/.f64 y 2)) |
(*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 1/2 y)) |
(*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 z x)))) |
(*.f64 (sqrt.f64 (/.f64 z x)) (/.f64 y 2)) |
(*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 1/2 y)) |
(*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 z x)))) |
(*.f64 (sqrt.f64 (/.f64 z x)) (/.f64 y 2)) |
(*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 1/2 y)) |
(*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 z x)))) |
(*.f64 (sqrt.f64 (/.f64 z x)) (/.f64 y 2)) |
(*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 1/2 y)) |
(*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 z x)))) |
(*.f64 (sqrt.f64 (/.f64 z x)) (/.f64 y 2)) |
(*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 1/2 y)) |
(*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 z x)))) |
(*.f64 (sqrt.f64 (/.f64 z x)) (/.f64 y 2)) |
(*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 1/2 y)) |
(*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 z x)))) |
(*.f64 (sqrt.f64 (/.f64 z x)) (/.f64 y 2)) |
(*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 1/2 y)) |
(*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 z x)))) |
(*.f64 (sqrt.f64 (/.f64 z x)) (/.f64 y 2)) |
(*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 1/2 y)) |
(*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 z x)))) |
(*.f64 (sqrt.f64 (/.f64 z x)) (/.f64 y 2)) |
(*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 1/2 y)) |
(+.f64 (*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 z x)))) 0) |
(*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 z x)))) |
(*.f64 (sqrt.f64 (/.f64 z x)) (/.f64 y 2)) |
(*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 1/2 y)) |
(+.f64 0 (*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 z x))))) |
(*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 z x)))) |
(*.f64 (sqrt.f64 (/.f64 z x)) (/.f64 y 2)) |
(*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 1/2 y)) |
(-.f64 (*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 z x)))) 0) |
(*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 z x)))) |
(*.f64 (sqrt.f64 (/.f64 z x)) (/.f64 y 2)) |
(*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 1/2 y)) |
(/.f64 (*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 z x)))) 1) |
(*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 z x)))) |
(*.f64 (sqrt.f64 (/.f64 z x)) (/.f64 y 2)) |
(*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 1/2 y)) |
(/.f64 (*.f64 y (sqrt.f64 (/.f64 z x))) 2) |
(*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 z x)))) |
(*.f64 (sqrt.f64 (/.f64 z x)) (/.f64 y 2)) |
(*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 1/2 y)) |
(/.f64 (*.f64 y (*.f64 2 (sqrt.f64 (/.f64 z x)))) 4) |
(*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 z x)))) |
(*.f64 (sqrt.f64 (/.f64 z x)) (/.f64 y 2)) |
(*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 1/2 y)) |
(/.f64 (*.f64 (*.f64 y (sqrt.f64 (/.f64 z x))) 4) 8) |
(*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 z x)))) |
(*.f64 (sqrt.f64 (/.f64 z x)) (/.f64 y 2)) |
(*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 1/2 y)) |
(/.f64 (+.f64 (*.f64 (*.f64 y (sqrt.f64 (/.f64 z x))) 4) (*.f64 (*.f64 y (sqrt.f64 (/.f64 z x))) 4)) 16) |
(*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 z x)))) |
(*.f64 (sqrt.f64 (/.f64 z x)) (/.f64 y 2)) |
(*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 1/2 y)) |
Found 4 expressions with local error:
| New | Error | Program |
|---|---|---|
| ✓ | 0.1b | (*.f64 (+.f64 z x) (sqrt.f64 (*.f64 (/.f64 1 z) (/.f64 1 x)))) |
| ✓ | 0.3b | (*.f64 (/.f64 1 z) (/.f64 1 x)) |
| 5.1b | (sqrt.f64 (*.f64 z x)) | |
| ✓ | 5.3b | (sqrt.f64 (*.f64 (/.f64 1 z) (/.f64 1 x))) |
Compiled 126 to 74 computations (41.3% saved)
18 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 0.0ms | x | @ | -inf | (*.f64 (+.f64 z x) (sqrt.f64 (*.f64 (/.f64 1 z) (/.f64 1 x)))) |
| 0.0ms | z | @ | -inf | (*.f64 (+.f64 z x) (sqrt.f64 (*.f64 (/.f64 1 z) (/.f64 1 x)))) |
| 0.0ms | z | @ | -inf | (sqrt.f64 (*.f64 (/.f64 1 z) (/.f64 1 x))) |
| 0.0ms | x | @ | -inf | (sqrt.f64 (*.f64 (/.f64 1 z) (/.f64 1 x))) |
| 0.0ms | x | @ | inf | (*.f64 (+.f64 z x) (sqrt.f64 (*.f64 (/.f64 1 z) (/.f64 1 x)))) |
| 1× | batch-egg-rewrite |
| 1960× | bool.json-1 |
| 1960× | bool.json-2 |
| 1508× | bool.json-3 |
| 998× | rational.json-simplify-35 |
| 780× | rational.json-1 |
Useful iterations: 1 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 12 | 77 |
| 1 | 128 | 59 |
| 2 | 359 | 59 |
| 3 | 800 | 59 |
| 4 | 2208 | 59 |
| 5 | 6248 | 59 |
| 1× | node limit |
| Inputs |
|---|
(sqrt.f64 (*.f64 (/.f64 1 z) (/.f64 1 x))) |
(*.f64 (/.f64 1 z) (/.f64 1 x)) |
(*.f64 (+.f64 z x) (sqrt.f64 (*.f64 (/.f64 1 z) (/.f64 1 x)))) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (sqrt.f64 (/.f64 (/.f64 1 x) z)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (sqrt.f64 (/.f64 (/.f64 1 x) z)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (sqrt.f64 (/.f64 (/.f64 1 x) z)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (sqrt.f64 (/.f64 (/.f64 1 x) z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (/.f64 (/.f64 1 x) z)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (/.f64 (sqrt.f64 (/.f64 (/.f64 1 x) z)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (/.f64 (sqrt.f64 (/.f64 (/.f64 1 x) z)) 2) 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sqrt.f64 (/.f64 (/.f64 1 x) z)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (sqrt.f64 (/.f64 (/.f64 1 x) z)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 (/.f64 (/.f64 1 x) z)) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (sqrt.f64 (/.f64 (/.f64 1 x) z)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sqrt.f64 (/.f64 (/.f64 1 x) z)) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sqrt.f64 (/.f64 (/.f64 1 x) z)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (sqrt.f64 (/.f64 (/.f64 1 x) z)) 4)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 (sqrt.f64 (/.f64 (/.f64 1 x) z)) 4)) (*.f64 2 (*.f64 (sqrt.f64 (/.f64 (/.f64 1 x) z)) 4))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (sqrt.f64 (/.f64 (/.f64 1 x) z))))))) (#(struct:change #<rule egg-rr> (2) ((x and (sqrt.f64 (/.f64 (/.f64 1 x) z)) (sqrt.f64 (/.f64 (/.f64 1 x) z)))))) (#(struct:change #<rule egg-rr> (2) ((x or (sqrt.f64 (/.f64 (/.f64 1 x) z)) (sqrt.f64 (/.f64 (/.f64 1 x) z))))))) |
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (/.f64 (/.f64 1 x) z) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (/.f64 (/.f64 1 x) z))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (/.f64 1 x) z) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (*.f64 z x))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 z (/.f64 1 x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (-.f64 0 (*.f64 x (neg.f64 z))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 1 z) x)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 1 z) (/.f64 1 (/.f64 1 x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 1 x) z)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 1 x) (/.f64 2 (/.f64 2 z)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (/.f64 1 x) z) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 2 (*.f64 z (+.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 2 (/.f64 z (/.f64 1/2 x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 z z) (*.f64 x (*.f64 z (+.f64 z z))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 x x) (*.f64 z (*.f64 x (+.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 2 x) (+.f64 z z))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 2 x) (/.f64 4 (/.f64 2 z)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 4 (*.f64 x (*.f64 z 4)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 4 (*.f64 2 (/.f64 z (/.f64 1/2 x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 4 (/.f64 (*.f64 z 4) (/.f64 1 x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x 4) (+.f64 (*.f64 z (*.f64 x (+.f64 x x))) (*.f64 z (*.f64 x (+.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 2 z) (+.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 2 z) (/.f64 1 (/.f64 1/2 x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 z 4) (+.f64 (*.f64 x (*.f64 z (+.f64 z z))) (*.f64 x (*.f64 z (+.f64 z z)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 -1 (*.f64 x (neg.f64 z)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 -1 (-.f64 0 (/.f64 z (/.f64 1 x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 -1 (-.f64 0 (*.f64 z x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 4 x) (*.f64 z 4))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 8 (*.f64 z (*.f64 x 8)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 8 (+.f64 (/.f64 (*.f64 z 4) (/.f64 1 x)) (/.f64 (*.f64 z 4) (/.f64 1 x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 8 (+.f64 (*.f64 2 (/.f64 z (/.f64 1/2 x))) (*.f64 2 (/.f64 z (/.f64 1/2 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 -2 (*.f64 x (*.f64 z -2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 -2 (*.f64 x (neg.f64 (+.f64 z z))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 -2 (*.f64 z (neg.f64 (+.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 -2 (-.f64 0 (/.f64 z (/.f64 1/2 x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 -2 (-.f64 0 (*.f64 z (+.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (/.f64 1 z) (/.f64 4 x)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 4 z) (*.f64 x 4))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (/.f64 2 z) x) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 -1 x) (neg.f64 z))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 -1 z) (neg.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (/.f64 4 x)) (*.f64 z 8))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 16 (+.f64 (*.f64 z (*.f64 x 8)) (*.f64 z (*.f64 x 8))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 -4 (+.f64 (*.f64 x (*.f64 z -2)) (*.f64 x (*.f64 z -2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 -4 (+.f64 (*.f64 x (neg.f64 (+.f64 z z))) (*.f64 x (neg.f64 (+.f64 z z)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 -4 (+.f64 (*.f64 z (neg.f64 (+.f64 x x))) (*.f64 z (neg.f64 (+.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 -4 (-.f64 0 (*.f64 x (*.f64 z 4))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (/.f64 1 z) (/.f64 4 x))) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (/.f64 -1 x)) (*.f64 z -2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (/.f64 -1 z)) (*.f64 x -2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (/.f64 4 z)) (*.f64 x 8))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 8 x) (*.f64 z 8))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 -2 x) (*.f64 z -2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 -2 x) (neg.f64 (+.f64 z z)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (/.f64 4 x) z) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 8 z) (*.f64 x 8))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 -2 z) (*.f64 x -2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 -2 z) (neg.f64 (+.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 x z) (*.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 z x) (*.f64 z z))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 -1/2 z) (*.f64 x -1/2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (/.f64 1/2 z) x) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 1/2 z) (*.f64 x 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 1/2 z) (/.f64 x 2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 -1/2 x) (*.f64 z -1/2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 1/2 x) (*.f64 z 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 1/2 x) (/.f64 z 2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (/.f64 2 x)) (neg.f64 (+.f64 z z)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (/.f64 2 z)) (neg.f64 (+.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (/.f64 4 x)) (neg.f64 (*.f64 z 4)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (/.f64 4 z)) (neg.f64 (*.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (/.f64 (/.f64 1/2 z) x) (/.f64 (/.f64 1/2 z) x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (/.f64 4 x)) (*.f64 2 (/.f64 4 x))) (*.f64 2 (*.f64 z 8)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (/.f64 (/.f64 4 x) z) (/.f64 (/.f64 4 x) z)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (/.f64 8 z) (/.f64 8 z)) (*.f64 2 (*.f64 x 8)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (/.f64 -2 z) (/.f64 -2 z)) (*.f64 2 (*.f64 x -2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (/.f64 -2 z) (/.f64 -2 z)) (*.f64 2 (neg.f64 (+.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (/.f64 8 x) (/.f64 8 x)) (*.f64 2 (*.f64 z 8)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (/.f64 -2 x) (/.f64 -2 x)) (*.f64 2 (*.f64 z -2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (/.f64 -2 x) (/.f64 -2 x)) (*.f64 2 (neg.f64 (+.f64 z z))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (neg.f64 (/.f64 2 x)) (neg.f64 (/.f64 2 x))) (*.f64 2 (neg.f64 (+.f64 z z))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (neg.f64 (/.f64 2 z)) (neg.f64 (/.f64 2 z))) (*.f64 2 (neg.f64 (+.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 (/.f64 1 z) (/.f64 4 x))) (*.f64 2 (*.f64 (/.f64 1 z) (/.f64 4 x)))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (/.f64 -1 x)) (*.f64 2 (/.f64 -1 x))) (*.f64 2 (*.f64 z -2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (/.f64 -1 z)) (*.f64 2 (/.f64 -1 z))) (*.f64 2 (*.f64 x -2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (/.f64 x z) (/.f64 x z)) (*.f64 x (+.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (/.f64 z x) (/.f64 z x)) (*.f64 z (+.f64 z z)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (neg.f64 (/.f64 4 x)) (neg.f64 (/.f64 4 x))) (+.f64 (neg.f64 (*.f64 z 4)) (neg.f64 (*.f64 z 4))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (neg.f64 (/.f64 4 z)) (neg.f64 (/.f64 4 z))) (+.f64 (neg.f64 (*.f64 x 4)) (neg.f64 (*.f64 x 4))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (/.f64 4 z)) (*.f64 2 (/.f64 4 z))) (*.f64 2 (*.f64 x 8)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (/.f64 1 z) (*.f64 x 4)) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (/.f64 1 x) (*.f64 z 4)) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (/.f64 -1 x) z) -1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (/.f64 -1 z) x) -1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (/.f64 x z) x) x)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (/.f64 x z) (+.f64 x x)) (*.f64 x 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (/.f64 z x) z) z)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (/.f64 z x) (+.f64 z z)) (*.f64 z 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (neg.f64 (/.f64 2 x))) (+.f64 z z))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (neg.f64 (/.f64 2 x))) (-.f64 0 (neg.f64 (+.f64 z z))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (neg.f64 (/.f64 2 z))) (+.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (neg.f64 (/.f64 2 z))) (-.f64 0 (neg.f64 (+.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (*.f64 2 (/.f64 4 x))) (-.f64 0 (*.f64 z 8)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (*.f64 2 (/.f64 -1 x))) (-.f64 0 (*.f64 z -2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (*.f64 2 (/.f64 4 z))) (-.f64 0 (*.f64 x 8)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (*.f64 2 (/.f64 -1 z))) (-.f64 0 (*.f64 x -2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (/.f64 8 x)) (-.f64 0 (*.f64 z 8)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (/.f64 -2 x)) (+.f64 z z))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (/.f64 -2 x)) (-.f64 0 (*.f64 z -2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (/.f64 -2 x)) (-.f64 0 (neg.f64 (+.f64 z z))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (/.f64 8 z)) (-.f64 0 (*.f64 x 8)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (/.f64 -2 z)) (+.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (/.f64 -2 z)) (-.f64 0 (*.f64 x -2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (/.f64 -2 z)) (-.f64 0 (neg.f64 (+.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (/.f64 x z)) (-.f64 0 (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (/.f64 z x)) (-.f64 0 (*.f64 z z)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (neg.f64 (/.f64 4 x))) (*.f64 z 4))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (neg.f64 (/.f64 4 z))) (*.f64 x 4))))) (#(struct:change #<rule egg-rr> (2) ((x not (not (/.f64 (/.f64 1 x) z)))))) (#(struct:change #<rule egg-rr> (2) ((x and (/.f64 (/.f64 1 x) z) (/.f64 (/.f64 1 x) z))))) (#(struct:change #<rule egg-rr> (2) ((x or (/.f64 (/.f64 1 x) z) (/.f64 (/.f64 1 x) z)))))) |
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (sqrt.f64 (/.f64 (/.f64 1 x) z)) (+.f64 z x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (sqrt.f64 (/.f64 (/.f64 1 x) z)) (+.f64 z x)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (sqrt.f64 (/.f64 (/.f64 1 x) z)) (+.f64 z x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sqrt.f64 (/.f64 (/.f64 1 x) z)) (+.f64 z x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sqrt.f64 (/.f64 (/.f64 1 x) z)) (*.f64 (+.f64 z x) 2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sqrt.f64 (/.f64 (/.f64 1 x) z)) (*.f64 (+.f64 z x) 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (sqrt.f64 (/.f64 (/.f64 1 x) z)) (*.f64 (+.f64 z x) 4))) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 (sqrt.f64 (/.f64 (/.f64 1 x) z)) (*.f64 (+.f64 z x) 4))) (*.f64 2 (*.f64 (sqrt.f64 (/.f64 (/.f64 1 x) z)) (*.f64 (+.f64 z x) 4)))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 (sqrt.f64 (/.f64 (/.f64 1 x) z)) (+.f64 z x))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 (sqrt.f64 (/.f64 (/.f64 1 x) z)) (+.f64 z x)) (*.f64 (sqrt.f64 (/.f64 (/.f64 1 x) z)) (+.f64 z x)))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 (sqrt.f64 (/.f64 (/.f64 1 x) z)) (+.f64 z x)) (*.f64 (sqrt.f64 (/.f64 (/.f64 1 x) z)) (+.f64 z x))))))) |
| 1× | egg-herbie |
| 1144× | rational.json-simplify-50 |
| 1092× | rational.json-simplify-41 |
| 1080× | rational.json-simplify-35 |
| 892× | rational.json-simplify-49 |
| 770× | rational.json-simplify-2 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 315 | 2333 |
| 1 | 1043 | 2333 |
| 2 | 3056 | 2333 |
| 3 | 6364 | 2333 |
| 1× | node limit |
| Inputs |
|---|
(/.f64 1 (*.f64 z x)) |
(/.f64 1 (*.f64 z x)) |
(/.f64 1 (*.f64 z x)) |
(/.f64 1 (*.f64 z x)) |
(/.f64 1 (*.f64 z x)) |
(/.f64 1 (*.f64 z x)) |
(/.f64 1 (*.f64 z x)) |
(/.f64 1 (*.f64 z x)) |
(/.f64 1 (*.f64 z x)) |
(/.f64 1 (*.f64 z x)) |
(/.f64 1 (*.f64 z x)) |
(/.f64 1 (*.f64 z x)) |
(/.f64 1 (*.f64 z x)) |
(/.f64 1 (*.f64 z x)) |
(/.f64 1 (*.f64 z x)) |
(/.f64 1 (*.f64 z x)) |
(/.f64 1 (*.f64 z x)) |
(/.f64 1 (*.f64 z x)) |
(/.f64 1 (*.f64 z x)) |
(/.f64 1 (*.f64 z x)) |
(/.f64 1 (*.f64 z x)) |
(/.f64 1 (*.f64 z x)) |
(/.f64 1 (*.f64 z x)) |
(/.f64 1 (*.f64 z x)) |
(+.f64 (sqrt.f64 (/.f64 (/.f64 1 x) z)) 0) |
(+.f64 0 (sqrt.f64 (/.f64 (/.f64 1 x) z))) |
(-.f64 (sqrt.f64 (/.f64 (/.f64 1 x) z)) 0) |
(*.f64 1 (sqrt.f64 (/.f64 (/.f64 1 x) z))) |
(*.f64 (sqrt.f64 (/.f64 (/.f64 1 x) z)) 1) |
(*.f64 2 (/.f64 (sqrt.f64 (/.f64 (/.f64 1 x) z)) 2)) |
(*.f64 2 (*.f64 (/.f64 (sqrt.f64 (/.f64 (/.f64 1 x) z)) 2) 1)) |
(*.f64 (*.f64 (sqrt.f64 (/.f64 (/.f64 1 x) z)) 2) 1/2) |
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 (/.f64 1 x) z)) 2)) |
(*.f64 (/.f64 (sqrt.f64 (/.f64 (/.f64 1 x) z)) 2) 2) |
(/.f64 (sqrt.f64 (/.f64 (/.f64 1 x) z)) 1) |
(/.f64 (*.f64 (sqrt.f64 (/.f64 (/.f64 1 x) z)) 2) 2) |
(/.f64 (*.f64 (sqrt.f64 (/.f64 (/.f64 1 x) z)) 4) 4) |
(/.f64 (*.f64 2 (*.f64 (sqrt.f64 (/.f64 (/.f64 1 x) z)) 4)) 8) |
(/.f64 (+.f64 (*.f64 2 (*.f64 (sqrt.f64 (/.f64 (/.f64 1 x) z)) 4)) (*.f64 2 (*.f64 (sqrt.f64 (/.f64 (/.f64 1 x) z)) 4))) 16) |
(+.f64 (/.f64 (/.f64 1 x) z) 0) |
(+.f64 0 (/.f64 (/.f64 1 x) z)) |
(-.f64 (/.f64 (/.f64 1 x) z) 0) |
(/.f64 1 (*.f64 z x)) |
(/.f64 1 (/.f64 z (/.f64 1 x))) |
(/.f64 1 (-.f64 0 (*.f64 x (neg.f64 z)))) |
(/.f64 (/.f64 1 z) x) |
(/.f64 (/.f64 1 z) (/.f64 1 (/.f64 1 x))) |
(/.f64 (/.f64 1 x) z) |
(/.f64 (/.f64 1 x) (/.f64 2 (/.f64 2 z))) |
(/.f64 (/.f64 (/.f64 1 x) z) 1) |
(/.f64 2 (*.f64 z (+.f64 x x))) |
(/.f64 2 (/.f64 z (/.f64 1/2 x))) |
(/.f64 (+.f64 z z) (*.f64 x (*.f64 z (+.f64 z z)))) |
(/.f64 (+.f64 x x) (*.f64 z (*.f64 x (+.f64 x x)))) |
(/.f64 (/.f64 2 x) (+.f64 z z)) |
(/.f64 (/.f64 2 x) (/.f64 4 (/.f64 2 z))) |
(/.f64 4 (*.f64 x (*.f64 z 4))) |
(/.f64 4 (*.f64 2 (/.f64 z (/.f64 1/2 x)))) |
(/.f64 4 (/.f64 (*.f64 z 4) (/.f64 1 x))) |
(/.f64 (*.f64 x 4) (+.f64 (*.f64 z (*.f64 x (+.f64 x x))) (*.f64 z (*.f64 x (+.f64 x x))))) |
(/.f64 (/.f64 2 z) (+.f64 x x)) |
(/.f64 (/.f64 2 z) (/.f64 1 (/.f64 1/2 x))) |
(/.f64 (*.f64 z 4) (+.f64 (*.f64 x (*.f64 z (+.f64 z z))) (*.f64 x (*.f64 z (+.f64 z z))))) |
(/.f64 -1 (*.f64 x (neg.f64 z))) |
(/.f64 -1 (-.f64 0 (/.f64 z (/.f64 1 x)))) |
(/.f64 -1 (-.f64 0 (*.f64 z x))) |
(/.f64 (/.f64 4 x) (*.f64 z 4)) |
(/.f64 8 (*.f64 z (*.f64 x 8))) |
(/.f64 8 (+.f64 (/.f64 (*.f64 z 4) (/.f64 1 x)) (/.f64 (*.f64 z 4) (/.f64 1 x)))) |
(/.f64 8 (+.f64 (*.f64 2 (/.f64 z (/.f64 1/2 x))) (*.f64 2 (/.f64 z (/.f64 1/2 x))))) |
(/.f64 -2 (*.f64 x (*.f64 z -2))) |
(/.f64 -2 (*.f64 x (neg.f64 (+.f64 z z)))) |
(/.f64 -2 (*.f64 z (neg.f64 (+.f64 x x)))) |
(/.f64 -2 (-.f64 0 (/.f64 z (/.f64 1/2 x)))) |
(/.f64 -2 (-.f64 0 (*.f64 z (+.f64 x x)))) |
(/.f64 (*.f64 (/.f64 1 z) (/.f64 4 x)) 4) |
(/.f64 (/.f64 4 z) (*.f64 x 4)) |
(/.f64 (/.f64 (/.f64 2 z) x) 2) |
(/.f64 (/.f64 -1 x) (neg.f64 z)) |
(/.f64 (/.f64 -1 z) (neg.f64 x)) |
(/.f64 (*.f64 2 (/.f64 4 x)) (*.f64 z 8)) |
(/.f64 16 (+.f64 (*.f64 z (*.f64 x 8)) (*.f64 z (*.f64 x 8)))) |
(/.f64 -4 (+.f64 (*.f64 x (*.f64 z -2)) (*.f64 x (*.f64 z -2)))) |
(/.f64 -4 (+.f64 (*.f64 x (neg.f64 (+.f64 z z))) (*.f64 x (neg.f64 (+.f64 z z))))) |
(/.f64 -4 (+.f64 (*.f64 z (neg.f64 (+.f64 x x))) (*.f64 z (neg.f64 (+.f64 x x))))) |
(/.f64 -4 (-.f64 0 (*.f64 x (*.f64 z 4)))) |
(/.f64 (*.f64 2 (*.f64 (/.f64 1 z) (/.f64 4 x))) 8) |
(/.f64 (*.f64 2 (/.f64 -1 x)) (*.f64 z -2)) |
(/.f64 (*.f64 2 (/.f64 -1 z)) (*.f64 x -2)) |
(/.f64 (*.f64 2 (/.f64 4 z)) (*.f64 x 8)) |
(/.f64 (/.f64 8 x) (*.f64 z 8)) |
(/.f64 (/.f64 -2 x) (*.f64 z -2)) |
(/.f64 (/.f64 -2 x) (neg.f64 (+.f64 z z))) |
(/.f64 (/.f64 (/.f64 4 x) z) 4) |
(/.f64 (/.f64 8 z) (*.f64 x 8)) |
(/.f64 (/.f64 -2 z) (*.f64 x -2)) |
(/.f64 (/.f64 -2 z) (neg.f64 (+.f64 x x))) |
(/.f64 (/.f64 x z) (*.f64 x x)) |
(/.f64 (/.f64 z x) (*.f64 z z)) |
(/.f64 (/.f64 -1/2 z) (*.f64 x -1/2)) |
(/.f64 (/.f64 (/.f64 1/2 z) x) 1/2) |
(/.f64 (/.f64 1/2 z) (*.f64 x 1/2)) |
(/.f64 (/.f64 1/2 z) (/.f64 x 2)) |
(/.f64 (/.f64 -1/2 x) (*.f64 z -1/2)) |
(/.f64 (/.f64 1/2 x) (*.f64 z 1/2)) |
(/.f64 (/.f64 1/2 x) (/.f64 z 2)) |
(/.f64 (neg.f64 (/.f64 2 x)) (neg.f64 (+.f64 z z))) |
(/.f64 (neg.f64 (/.f64 2 z)) (neg.f64 (+.f64 x x))) |
(/.f64 (neg.f64 (/.f64 4 x)) (neg.f64 (*.f64 z 4))) |
(/.f64 (neg.f64 (/.f64 4 z)) (neg.f64 (*.f64 x 4))) |
(/.f64 (+.f64 (/.f64 (/.f64 1/2 z) x) (/.f64 (/.f64 1/2 z) x)) 1) |
(/.f64 (+.f64 (*.f64 2 (/.f64 4 x)) (*.f64 2 (/.f64 4 x))) (*.f64 2 (*.f64 z 8))) |
(/.f64 (+.f64 (/.f64 (/.f64 4 x) z) (/.f64 (/.f64 4 x) z)) 8) |
(/.f64 (+.f64 (/.f64 8 z) (/.f64 8 z)) (*.f64 2 (*.f64 x 8))) |
(/.f64 (+.f64 (/.f64 -2 z) (/.f64 -2 z)) (*.f64 2 (*.f64 x -2))) |
(/.f64 (+.f64 (/.f64 -2 z) (/.f64 -2 z)) (*.f64 2 (neg.f64 (+.f64 x x)))) |
(/.f64 (+.f64 (/.f64 8 x) (/.f64 8 x)) (*.f64 2 (*.f64 z 8))) |
(/.f64 (+.f64 (/.f64 -2 x) (/.f64 -2 x)) (*.f64 2 (*.f64 z -2))) |
(/.f64 (+.f64 (/.f64 -2 x) (/.f64 -2 x)) (*.f64 2 (neg.f64 (+.f64 z z)))) |
(/.f64 (+.f64 (neg.f64 (/.f64 2 x)) (neg.f64 (/.f64 2 x))) (*.f64 2 (neg.f64 (+.f64 z z)))) |
(/.f64 (+.f64 (neg.f64 (/.f64 2 z)) (neg.f64 (/.f64 2 z))) (*.f64 2 (neg.f64 (+.f64 x x)))) |
(/.f64 (+.f64 (*.f64 2 (*.f64 (/.f64 1 z) (/.f64 4 x))) (*.f64 2 (*.f64 (/.f64 1 z) (/.f64 4 x)))) 16) |
(/.f64 (+.f64 (*.f64 2 (/.f64 -1 x)) (*.f64 2 (/.f64 -1 x))) (*.f64 2 (*.f64 z -2))) |
(/.f64 (+.f64 (*.f64 2 (/.f64 -1 z)) (*.f64 2 (/.f64 -1 z))) (*.f64 2 (*.f64 x -2))) |
(/.f64 (+.f64 (/.f64 x z) (/.f64 x z)) (*.f64 x (+.f64 x x))) |
(/.f64 (+.f64 (/.f64 z x) (/.f64 z x)) (*.f64 z (+.f64 z z))) |
(/.f64 (+.f64 (neg.f64 (/.f64 4 x)) (neg.f64 (/.f64 4 x))) (+.f64 (neg.f64 (*.f64 z 4)) (neg.f64 (*.f64 z 4)))) |
(/.f64 (+.f64 (neg.f64 (/.f64 4 z)) (neg.f64 (/.f64 4 z))) (+.f64 (neg.f64 (*.f64 x 4)) (neg.f64 (*.f64 x 4)))) |
(/.f64 (+.f64 (*.f64 2 (/.f64 4 z)) (*.f64 2 (/.f64 4 z))) (*.f64 2 (*.f64 x 8))) |
(/.f64 (/.f64 (/.f64 1 z) (*.f64 x 4)) 1/4) |
(/.f64 (/.f64 (/.f64 1 x) (*.f64 z 4)) 1/4) |
(/.f64 (/.f64 (/.f64 -1 x) z) -1) |
(/.f64 (/.f64 (/.f64 -1 z) x) -1) |
(/.f64 (/.f64 (/.f64 x z) x) x) |
(/.f64 (/.f64 (/.f64 x z) (+.f64 x x)) (*.f64 x 1/2)) |
(/.f64 (/.f64 (/.f64 z x) z) z) |
(/.f64 (/.f64 (/.f64 z x) (+.f64 z z)) (*.f64 z 1/2)) |
(/.f64 (neg.f64 (neg.f64 (/.f64 2 x))) (+.f64 z z)) |
(/.f64 (neg.f64 (neg.f64 (/.f64 2 x))) (-.f64 0 (neg.f64 (+.f64 z z)))) |
(/.f64 (neg.f64 (neg.f64 (/.f64 2 z))) (+.f64 x x)) |
(/.f64 (neg.f64 (neg.f64 (/.f64 2 z))) (-.f64 0 (neg.f64 (+.f64 x x)))) |
(/.f64 (neg.f64 (*.f64 2 (/.f64 4 x))) (-.f64 0 (*.f64 z 8))) |
(/.f64 (neg.f64 (*.f64 2 (/.f64 -1 x))) (-.f64 0 (*.f64 z -2))) |
(/.f64 (neg.f64 (*.f64 2 (/.f64 4 z))) (-.f64 0 (*.f64 x 8))) |
(/.f64 (neg.f64 (*.f64 2 (/.f64 -1 z))) (-.f64 0 (*.f64 x -2))) |
(/.f64 (neg.f64 (/.f64 8 x)) (-.f64 0 (*.f64 z 8))) |
(/.f64 (neg.f64 (/.f64 -2 x)) (+.f64 z z)) |
(/.f64 (neg.f64 (/.f64 -2 x)) (-.f64 0 (*.f64 z -2))) |
(/.f64 (neg.f64 (/.f64 -2 x)) (-.f64 0 (neg.f64 (+.f64 z z)))) |
(/.f64 (neg.f64 (/.f64 8 z)) (-.f64 0 (*.f64 x 8))) |
(/.f64 (neg.f64 (/.f64 -2 z)) (+.f64 x x)) |
(/.f64 (neg.f64 (/.f64 -2 z)) (-.f64 0 (*.f64 x -2))) |
(/.f64 (neg.f64 (/.f64 -2 z)) (-.f64 0 (neg.f64 (+.f64 x x)))) |
(/.f64 (neg.f64 (/.f64 x z)) (-.f64 0 (*.f64 x x))) |
(/.f64 (neg.f64 (/.f64 z x)) (-.f64 0 (*.f64 z z))) |
(/.f64 (neg.f64 (neg.f64 (/.f64 4 x))) (*.f64 z 4)) |
(/.f64 (neg.f64 (neg.f64 (/.f64 4 z))) (*.f64 x 4)) |
(+.f64 (*.f64 (sqrt.f64 (/.f64 (/.f64 1 x) z)) (+.f64 z x)) 0) |
(+.f64 0 (*.f64 (sqrt.f64 (/.f64 (/.f64 1 x) z)) (+.f64 z x))) |
(-.f64 (*.f64 (sqrt.f64 (/.f64 (/.f64 1 x) z)) (+.f64 z x)) 0) |
(/.f64 (*.f64 (sqrt.f64 (/.f64 (/.f64 1 x) z)) (+.f64 z x)) 1) |
(/.f64 (*.f64 (sqrt.f64 (/.f64 (/.f64 1 x) z)) (*.f64 (+.f64 z x) 2)) 2) |
(/.f64 (*.f64 (sqrt.f64 (/.f64 (/.f64 1 x) z)) (*.f64 (+.f64 z x) 4)) 4) |
(/.f64 (*.f64 2 (*.f64 (sqrt.f64 (/.f64 (/.f64 1 x) z)) (*.f64 (+.f64 z x) 4))) 8) |
(/.f64 (+.f64 (*.f64 2 (*.f64 (sqrt.f64 (/.f64 (/.f64 1 x) z)) (*.f64 (+.f64 z x) 4))) (*.f64 2 (*.f64 (sqrt.f64 (/.f64 (/.f64 1 x) z)) (*.f64 (+.f64 z x) 4)))) 16) |
| Outputs |
|---|
(/.f64 1 (*.f64 z x)) |
(/.f64 1 (*.f64 z x)) |
(/.f64 1 (*.f64 z x)) |
(/.f64 1 (*.f64 z x)) |
(/.f64 1 (*.f64 z x)) |
(/.f64 1 (*.f64 z x)) |
(/.f64 1 (*.f64 z x)) |
(/.f64 1 (*.f64 z x)) |
(/.f64 1 (*.f64 z x)) |
(/.f64 1 (*.f64 z x)) |
(/.f64 1 (*.f64 z x)) |
(/.f64 1 (*.f64 z x)) |
(/.f64 1 (*.f64 z x)) |
(/.f64 1 (*.f64 z x)) |
(/.f64 1 (*.f64 z x)) |
(/.f64 1 (*.f64 z x)) |
(/.f64 1 (*.f64 z x)) |
(/.f64 1 (*.f64 z x)) |
(/.f64 1 (*.f64 z x)) |
(/.f64 1 (*.f64 z x)) |
(/.f64 1 (*.f64 z x)) |
(/.f64 1 (*.f64 z x)) |
(/.f64 1 (*.f64 z x)) |
(/.f64 1 (*.f64 z x)) |
(+.f64 (sqrt.f64 (/.f64 (/.f64 1 x) z)) 0) |
(sqrt.f64 (/.f64 1 (*.f64 z x))) |
(+.f64 0 (sqrt.f64 (/.f64 (/.f64 1 x) z))) |
(sqrt.f64 (/.f64 1 (*.f64 z x))) |
(-.f64 (sqrt.f64 (/.f64 (/.f64 1 x) z)) 0) |
(sqrt.f64 (/.f64 1 (*.f64 z x))) |
(*.f64 1 (sqrt.f64 (/.f64 (/.f64 1 x) z))) |
(sqrt.f64 (/.f64 1 (*.f64 z x))) |
(*.f64 (sqrt.f64 (/.f64 (/.f64 1 x) z)) 1) |
(sqrt.f64 (/.f64 1 (*.f64 z x))) |
(*.f64 2 (/.f64 (sqrt.f64 (/.f64 (/.f64 1 x) z)) 2)) |
(sqrt.f64 (/.f64 1 (*.f64 z x))) |
(*.f64 2 (*.f64 (/.f64 (sqrt.f64 (/.f64 (/.f64 1 x) z)) 2) 1)) |
(sqrt.f64 (/.f64 1 (*.f64 z x))) |
(*.f64 (*.f64 (sqrt.f64 (/.f64 (/.f64 1 x) z)) 2) 1/2) |
(sqrt.f64 (/.f64 1 (*.f64 z x))) |
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 (/.f64 1 x) z)) 2)) |
(sqrt.f64 (/.f64 1 (*.f64 z x))) |
(*.f64 (/.f64 (sqrt.f64 (/.f64 (/.f64 1 x) z)) 2) 2) |
(sqrt.f64 (/.f64 1 (*.f64 z x))) |
(/.f64 (sqrt.f64 (/.f64 (/.f64 1 x) z)) 1) |
(sqrt.f64 (/.f64 1 (*.f64 z x))) |
(/.f64 (*.f64 (sqrt.f64 (/.f64 (/.f64 1 x) z)) 2) 2) |
(sqrt.f64 (/.f64 1 (*.f64 z x))) |
(/.f64 (*.f64 (sqrt.f64 (/.f64 (/.f64 1 x) z)) 4) 4) |
(sqrt.f64 (/.f64 1 (*.f64 z x))) |
(/.f64 (*.f64 2 (*.f64 (sqrt.f64 (/.f64 (/.f64 1 x) z)) 4)) 8) |
(sqrt.f64 (/.f64 1 (*.f64 z x))) |
(/.f64 (+.f64 (*.f64 2 (*.f64 (sqrt.f64 (/.f64 (/.f64 1 x) z)) 4)) (*.f64 2 (*.f64 (sqrt.f64 (/.f64 (/.f64 1 x) z)) 4))) 16) |
(sqrt.f64 (/.f64 1 (*.f64 z x))) |
(+.f64 (/.f64 (/.f64 1 x) z) 0) |
(/.f64 1 (*.f64 z x)) |
(+.f64 0 (/.f64 (/.f64 1 x) z)) |
(/.f64 1 (*.f64 z x)) |
(-.f64 (/.f64 (/.f64 1 x) z) 0) |
(/.f64 1 (*.f64 z x)) |
(/.f64 1 (*.f64 z x)) |
(/.f64 1 (/.f64 z (/.f64 1 x))) |
(/.f64 1 (*.f64 z x)) |
(/.f64 1 (-.f64 0 (*.f64 x (neg.f64 z)))) |
(/.f64 1 (*.f64 z x)) |
(/.f64 (/.f64 1 z) x) |
(/.f64 1 (*.f64 z x)) |
(/.f64 (/.f64 1 z) (/.f64 1 (/.f64 1 x))) |
(/.f64 1 (*.f64 z x)) |
(/.f64 (/.f64 1 x) z) |
(/.f64 1 (*.f64 z x)) |
(/.f64 (/.f64 1 x) (/.f64 2 (/.f64 2 z))) |
(/.f64 1 (*.f64 z x)) |
(/.f64 (/.f64 (/.f64 1 x) z) 1) |
(/.f64 1 (*.f64 z x)) |
(/.f64 2 (*.f64 z (+.f64 x x))) |
(/.f64 1 (*.f64 z x)) |
(/.f64 2 (/.f64 z (/.f64 1/2 x))) |
(/.f64 1 (*.f64 z x)) |
(/.f64 (+.f64 z z) (*.f64 x (*.f64 z (+.f64 z z)))) |
(/.f64 1 (*.f64 z x)) |
(/.f64 (+.f64 x x) (*.f64 z (*.f64 x (+.f64 x x)))) |
(/.f64 1 (*.f64 z x)) |
(/.f64 (/.f64 2 x) (+.f64 z z)) |
(/.f64 1 (*.f64 z x)) |
(/.f64 (/.f64 2 x) (/.f64 4 (/.f64 2 z))) |
(/.f64 1 (*.f64 z x)) |
(/.f64 4 (*.f64 x (*.f64 z 4))) |
(/.f64 1 (*.f64 z x)) |
(/.f64 4 (*.f64 2 (/.f64 z (/.f64 1/2 x)))) |
(/.f64 1 (*.f64 z x)) |
(/.f64 4 (/.f64 (*.f64 z 4) (/.f64 1 x))) |
(/.f64 1 (*.f64 z x)) |
(/.f64 (*.f64 x 4) (+.f64 (*.f64 z (*.f64 x (+.f64 x x))) (*.f64 z (*.f64 x (+.f64 x x))))) |
(/.f64 1 (*.f64 z x)) |
(/.f64 (/.f64 2 z) (+.f64 x x)) |
(/.f64 1 (*.f64 z x)) |
(/.f64 (/.f64 2 z) (/.f64 1 (/.f64 1/2 x))) |
(/.f64 1 (*.f64 z x)) |
(/.f64 (*.f64 z 4) (+.f64 (*.f64 x (*.f64 z (+.f64 z z))) (*.f64 x (*.f64 z (+.f64 z z))))) |
(/.f64 1 (*.f64 z x)) |
(/.f64 -1 (*.f64 x (neg.f64 z))) |
(/.f64 1 (*.f64 z x)) |
(/.f64 -1 (-.f64 0 (/.f64 z (/.f64 1 x)))) |
(/.f64 1 (*.f64 z x)) |
(/.f64 -1 (-.f64 0 (*.f64 z x))) |
(/.f64 1 (*.f64 z x)) |
(/.f64 (/.f64 4 x) (*.f64 z 4)) |
(/.f64 1 (*.f64 z x)) |
(/.f64 8 (*.f64 z (*.f64 x 8))) |
(/.f64 1 (*.f64 z x)) |
(/.f64 8 (+.f64 (/.f64 (*.f64 z 4) (/.f64 1 x)) (/.f64 (*.f64 z 4) (/.f64 1 x)))) |
(/.f64 1 (*.f64 z x)) |
(/.f64 8 (+.f64 (*.f64 2 (/.f64 z (/.f64 1/2 x))) (*.f64 2 (/.f64 z (/.f64 1/2 x))))) |
(/.f64 1 (*.f64 z x)) |
(/.f64 -2 (*.f64 x (*.f64 z -2))) |
(/.f64 1 (*.f64 z x)) |
(/.f64 -2 (*.f64 x (neg.f64 (+.f64 z z)))) |
(/.f64 1 (*.f64 z x)) |
(/.f64 -2 (*.f64 z (neg.f64 (+.f64 x x)))) |
(/.f64 1 (*.f64 z x)) |
(/.f64 -2 (-.f64 0 (/.f64 z (/.f64 1/2 x)))) |
(/.f64 1 (*.f64 z x)) |
(/.f64 -2 (-.f64 0 (*.f64 z (+.f64 x x)))) |
(/.f64 1 (*.f64 z x)) |
(/.f64 (*.f64 (/.f64 1 z) (/.f64 4 x)) 4) |
(/.f64 1 (*.f64 z x)) |
(/.f64 (/.f64 4 z) (*.f64 x 4)) |
(/.f64 1 (*.f64 z x)) |
(/.f64 (/.f64 (/.f64 2 z) x) 2) |
(/.f64 1 (*.f64 z x)) |
(/.f64 (/.f64 -1 x) (neg.f64 z)) |
(/.f64 1 (*.f64 z x)) |
(/.f64 (/.f64 -1 z) (neg.f64 x)) |
(/.f64 1 (*.f64 z x)) |
(/.f64 (*.f64 2 (/.f64 4 x)) (*.f64 z 8)) |
(/.f64 1 (*.f64 z x)) |
(/.f64 16 (+.f64 (*.f64 z (*.f64 x 8)) (*.f64 z (*.f64 x 8)))) |
(/.f64 1 (*.f64 z x)) |
(/.f64 -4 (+.f64 (*.f64 x (*.f64 z -2)) (*.f64 x (*.f64 z -2)))) |
(/.f64 1 (*.f64 z x)) |
(/.f64 -4 (+.f64 (*.f64 x (neg.f64 (+.f64 z z))) (*.f64 x (neg.f64 (+.f64 z z))))) |
(/.f64 1 (*.f64 z x)) |
(/.f64 -4 (+.f64 (*.f64 z (neg.f64 (+.f64 x x))) (*.f64 z (neg.f64 (+.f64 x x))))) |
(/.f64 1 (*.f64 z x)) |
(/.f64 -4 (-.f64 0 (*.f64 x (*.f64 z 4)))) |
(/.f64 1 (*.f64 z x)) |
(/.f64 (*.f64 2 (*.f64 (/.f64 1 z) (/.f64 4 x))) 8) |
(/.f64 1 (*.f64 z x)) |
(/.f64 (*.f64 2 (/.f64 -1 x)) (*.f64 z -2)) |
(/.f64 1 (*.f64 z x)) |
(/.f64 (*.f64 2 (/.f64 -1 z)) (*.f64 x -2)) |
(/.f64 1 (*.f64 z x)) |
(/.f64 (*.f64 2 (/.f64 4 z)) (*.f64 x 8)) |
(/.f64 1 (*.f64 z x)) |
(/.f64 (/.f64 8 x) (*.f64 z 8)) |
(/.f64 1 (*.f64 z x)) |
(/.f64 (/.f64 -2 x) (*.f64 z -2)) |
(/.f64 1 (*.f64 z x)) |
(/.f64 (/.f64 -2 x) (neg.f64 (+.f64 z z))) |
(/.f64 1 (*.f64 z x)) |
(/.f64 (/.f64 (/.f64 4 x) z) 4) |
(/.f64 1 (*.f64 z x)) |
(/.f64 (/.f64 8 z) (*.f64 x 8)) |
(/.f64 1 (*.f64 z x)) |
(/.f64 (/.f64 -2 z) (*.f64 x -2)) |
(/.f64 1 (*.f64 z x)) |
(/.f64 (/.f64 -2 z) (neg.f64 (+.f64 x x))) |
(/.f64 1 (*.f64 z x)) |
(/.f64 (/.f64 x z) (*.f64 x x)) |
(/.f64 1 (*.f64 z x)) |
(/.f64 (/.f64 z x) (*.f64 z z)) |
(/.f64 1 (*.f64 z x)) |
(/.f64 (/.f64 -1/2 z) (*.f64 x -1/2)) |
(/.f64 1 (*.f64 z x)) |
(/.f64 (/.f64 (/.f64 1/2 z) x) 1/2) |
(/.f64 1 (*.f64 z x)) |
(/.f64 (/.f64 1/2 z) (*.f64 x 1/2)) |
(/.f64 1 (*.f64 z x)) |
(/.f64 (/.f64 1/2 z) (/.f64 x 2)) |
(/.f64 1 (*.f64 z x)) |
(/.f64 (/.f64 -1/2 x) (*.f64 z -1/2)) |
(/.f64 1 (*.f64 z x)) |
(/.f64 (/.f64 1/2 x) (*.f64 z 1/2)) |
(/.f64 1 (*.f64 z x)) |
(/.f64 (/.f64 1/2 x) (/.f64 z 2)) |
(/.f64 1 (*.f64 z x)) |
(/.f64 (neg.f64 (/.f64 2 x)) (neg.f64 (+.f64 z z))) |
(/.f64 1 (*.f64 z x)) |
(/.f64 (neg.f64 (/.f64 2 z)) (neg.f64 (+.f64 x x))) |
(/.f64 1 (*.f64 z x)) |
(/.f64 (neg.f64 (/.f64 4 x)) (neg.f64 (*.f64 z 4))) |
(/.f64 1 (*.f64 z x)) |
(/.f64 (neg.f64 (/.f64 4 z)) (neg.f64 (*.f64 x 4))) |
(/.f64 1 (*.f64 z x)) |
(/.f64 (+.f64 (/.f64 (/.f64 1/2 z) x) (/.f64 (/.f64 1/2 z) x)) 1) |
(/.f64 1 (*.f64 z x)) |
(/.f64 (+.f64 (*.f64 2 (/.f64 4 x)) (*.f64 2 (/.f64 4 x))) (*.f64 2 (*.f64 z 8))) |
(/.f64 1 (*.f64 z x)) |
(/.f64 (+.f64 (/.f64 (/.f64 4 x) z) (/.f64 (/.f64 4 x) z)) 8) |
(/.f64 1 (*.f64 z x)) |
(/.f64 (+.f64 (/.f64 8 z) (/.f64 8 z)) (*.f64 2 (*.f64 x 8))) |
(/.f64 1 (*.f64 z x)) |
(/.f64 (+.f64 (/.f64 -2 z) (/.f64 -2 z)) (*.f64 2 (*.f64 x -2))) |
(/.f64 1 (*.f64 z x)) |
(/.f64 (+.f64 (/.f64 -2 z) (/.f64 -2 z)) (*.f64 2 (neg.f64 (+.f64 x x)))) |
(/.f64 1 (*.f64 z x)) |
(/.f64 (+.f64 (/.f64 8 x) (/.f64 8 x)) (*.f64 2 (*.f64 z 8))) |
(/.f64 1 (*.f64 z x)) |
(/.f64 (+.f64 (/.f64 -2 x) (/.f64 -2 x)) (*.f64 2 (*.f64 z -2))) |
(/.f64 1 (*.f64 z x)) |
(/.f64 (+.f64 (/.f64 -2 x) (/.f64 -2 x)) (*.f64 2 (neg.f64 (+.f64 z z)))) |
(/.f64 1 (*.f64 z x)) |
(/.f64 (+.f64 (neg.f64 (/.f64 2 x)) (neg.f64 (/.f64 2 x))) (*.f64 2 (neg.f64 (+.f64 z z)))) |
(/.f64 1 (*.f64 z x)) |
(/.f64 (+.f64 (neg.f64 (/.f64 2 z)) (neg.f64 (/.f64 2 z))) (*.f64 2 (neg.f64 (+.f64 x x)))) |
(/.f64 1 (*.f64 z x)) |
(/.f64 (+.f64 (*.f64 2 (*.f64 (/.f64 1 z) (/.f64 4 x))) (*.f64 2 (*.f64 (/.f64 1 z) (/.f64 4 x)))) 16) |
(/.f64 1 (*.f64 z x)) |
(/.f64 (+.f64 (*.f64 2 (/.f64 -1 x)) (*.f64 2 (/.f64 -1 x))) (*.f64 2 (*.f64 z -2))) |
(/.f64 1 (*.f64 z x)) |
(/.f64 (+.f64 (*.f64 2 (/.f64 -1 z)) (*.f64 2 (/.f64 -1 z))) (*.f64 2 (*.f64 x -2))) |
(/.f64 1 (*.f64 z x)) |
(/.f64 (+.f64 (/.f64 x z) (/.f64 x z)) (*.f64 x (+.f64 x x))) |
(/.f64 1 (*.f64 z x)) |
(/.f64 (+.f64 (/.f64 z x) (/.f64 z x)) (*.f64 z (+.f64 z z))) |
(/.f64 1 (*.f64 z x)) |
(/.f64 (+.f64 (neg.f64 (/.f64 4 x)) (neg.f64 (/.f64 4 x))) (+.f64 (neg.f64 (*.f64 z 4)) (neg.f64 (*.f64 z 4)))) |
(/.f64 1 (*.f64 z x)) |
(/.f64 (+.f64 (neg.f64 (/.f64 4 z)) (neg.f64 (/.f64 4 z))) (+.f64 (neg.f64 (*.f64 x 4)) (neg.f64 (*.f64 x 4)))) |
(/.f64 1 (*.f64 z x)) |
(/.f64 (+.f64 (*.f64 2 (/.f64 4 z)) (*.f64 2 (/.f64 4 z))) (*.f64 2 (*.f64 x 8))) |
(/.f64 1 (*.f64 z x)) |
(/.f64 (/.f64 (/.f64 1 z) (*.f64 x 4)) 1/4) |
(/.f64 1 (*.f64 z x)) |
(/.f64 (/.f64 (/.f64 1 x) (*.f64 z 4)) 1/4) |
(/.f64 1 (*.f64 z x)) |
(/.f64 (/.f64 (/.f64 -1 x) z) -1) |
(/.f64 1 (*.f64 z x)) |
(/.f64 (/.f64 (/.f64 -1 z) x) -1) |
(/.f64 1 (*.f64 z x)) |
(/.f64 (/.f64 (/.f64 x z) x) x) |
(/.f64 1 (*.f64 z x)) |
(/.f64 (/.f64 (/.f64 x z) (+.f64 x x)) (*.f64 x 1/2)) |
(/.f64 1 (*.f64 z x)) |
(/.f64 (/.f64 (/.f64 z x) z) z) |
(/.f64 1 (*.f64 z x)) |
(/.f64 (/.f64 (/.f64 z x) (+.f64 z z)) (*.f64 z 1/2)) |
(/.f64 1 (*.f64 z x)) |
(/.f64 (neg.f64 (neg.f64 (/.f64 2 x))) (+.f64 z z)) |
(/.f64 1 (*.f64 z x)) |
(/.f64 (neg.f64 (neg.f64 (/.f64 2 x))) (-.f64 0 (neg.f64 (+.f64 z z)))) |
(/.f64 1 (*.f64 z x)) |
(/.f64 (neg.f64 (neg.f64 (/.f64 2 z))) (+.f64 x x)) |
(/.f64 1 (*.f64 z x)) |
(/.f64 (neg.f64 (neg.f64 (/.f64 2 z))) (-.f64 0 (neg.f64 (+.f64 x x)))) |
(/.f64 1 (*.f64 z x)) |
(/.f64 (neg.f64 (*.f64 2 (/.f64 4 x))) (-.f64 0 (*.f64 z 8))) |
(/.f64 1 (*.f64 z x)) |
(/.f64 (neg.f64 (*.f64 2 (/.f64 -1 x))) (-.f64 0 (*.f64 z -2))) |
(/.f64 1 (*.f64 z x)) |
(/.f64 (neg.f64 (*.f64 2 (/.f64 4 z))) (-.f64 0 (*.f64 x 8))) |
(/.f64 1 (*.f64 z x)) |
(/.f64 (neg.f64 (*.f64 2 (/.f64 -1 z))) (-.f64 0 (*.f64 x -2))) |
(/.f64 1 (*.f64 z x)) |
(/.f64 (neg.f64 (/.f64 8 x)) (-.f64 0 (*.f64 z 8))) |
(/.f64 1 (*.f64 z x)) |
(/.f64 (neg.f64 (/.f64 -2 x)) (+.f64 z z)) |
(/.f64 1 (*.f64 z x)) |
(/.f64 (neg.f64 (/.f64 -2 x)) (-.f64 0 (*.f64 z -2))) |
(/.f64 1 (*.f64 z x)) |
(/.f64 (neg.f64 (/.f64 -2 x)) (-.f64 0 (neg.f64 (+.f64 z z)))) |
(/.f64 1 (*.f64 z x)) |
(/.f64 (neg.f64 (/.f64 8 z)) (-.f64 0 (*.f64 x 8))) |
(/.f64 1 (*.f64 z x)) |
(/.f64 (neg.f64 (/.f64 -2 z)) (+.f64 x x)) |
(/.f64 1 (*.f64 z x)) |
(/.f64 (neg.f64 (/.f64 -2 z)) (-.f64 0 (*.f64 x -2))) |
(/.f64 1 (*.f64 z x)) |
(/.f64 (neg.f64 (/.f64 -2 z)) (-.f64 0 (neg.f64 (+.f64 x x)))) |
(/.f64 1 (*.f64 z x)) |
(/.f64 (neg.f64 (/.f64 x z)) (-.f64 0 (*.f64 x x))) |
(/.f64 1 (*.f64 z x)) |
(/.f64 (neg.f64 (/.f64 z x)) (-.f64 0 (*.f64 z z))) |
(/.f64 1 (*.f64 z x)) |
(/.f64 (neg.f64 (neg.f64 (/.f64 4 x))) (*.f64 z 4)) |
(/.f64 1 (*.f64 z x)) |
(/.f64 (neg.f64 (neg.f64 (/.f64 4 z))) (*.f64 x 4)) |
(/.f64 1 (*.f64 z x)) |
(+.f64 (*.f64 (sqrt.f64 (/.f64 (/.f64 1 x) z)) (+.f64 z x)) 0) |
(*.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) (+.f64 z x)) |
(+.f64 0 (*.f64 (sqrt.f64 (/.f64 (/.f64 1 x) z)) (+.f64 z x))) |
(*.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) (+.f64 z x)) |
(-.f64 (*.f64 (sqrt.f64 (/.f64 (/.f64 1 x) z)) (+.f64 z x)) 0) |
(*.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) (+.f64 z x)) |
(/.f64 (*.f64 (sqrt.f64 (/.f64 (/.f64 1 x) z)) (+.f64 z x)) 1) |
(*.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) (+.f64 z x)) |
(/.f64 (*.f64 (sqrt.f64 (/.f64 (/.f64 1 x) z)) (*.f64 (+.f64 z x) 2)) 2) |
(*.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) (+.f64 z x)) |
(/.f64 (*.f64 (sqrt.f64 (/.f64 (/.f64 1 x) z)) (*.f64 (+.f64 z x) 4)) 4) |
(*.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) (+.f64 z x)) |
(/.f64 (*.f64 2 (*.f64 (sqrt.f64 (/.f64 (/.f64 1 x) z)) (*.f64 (+.f64 z x) 4))) 8) |
(*.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) (+.f64 z x)) |
(/.f64 (+.f64 (*.f64 2 (*.f64 (sqrt.f64 (/.f64 (/.f64 1 x) z)) (*.f64 (+.f64 z x) 4))) (*.f64 2 (*.f64 (sqrt.f64 (/.f64 (/.f64 1 x) z)) (*.f64 (+.f64 z x) 4)))) 16) |
(*.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) (+.f64 z x)) |
Compiled 5002 to 2849 computations (43% saved)
11 alts after pruning (2 fresh and 9 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 216 | 2 | 218 |
| Fresh | 0 | 0 | 0 |
| Picked | 1 | 0 | 1 |
| Done | 1 | 9 | 10 |
| Total | 218 | 11 | 229 |
| Status | Error | Program |
|---|---|---|
| 62.4b | (*.f64 2 (+.f64 (sqrt.f64 (*.f64 z x)) (*.f64 y (*.f64 (*.f64 (+.f64 z x) (sqrt.f64 (/.f64 (/.f64 (/.f64 z x) z) z))) 1/2)))) | |
| 62.2b | (*.f64 2 (+.f64 (sqrt.f64 (*.f64 z x)) (*.f64 y (*.f64 (*.f64 (+.f64 z x) (sqrt.f64 (/.f64 (/.f64 1 x) z))) 1/2)))) | |
| ✓ | 38.7b | (*.f64 2 (+.f64 (sqrt.f64 (*.f64 y x)) (*.f64 z (*.f64 (*.f64 (+.f64 y x) (sqrt.f64 (/.f64 1 (*.f64 y x)))) 1/2)))) |
| ✓ | 62.8b | (*.f64 2 (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 1/2 y))) |
| ✓ | 62.0b | (*.f64 2 (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 1/2 z))) |
| ✓ | 42.2b | (*.f64 2 (sqrt.f64 (+.f64 (*.f64 z x) (*.f64 z y)))) |
| ✓ | 37.0b | (*.f64 2 (sqrt.f64 (*.f64 (+.f64 y z) x))) |
| ✓ | 42.2b | (*.f64 2 (sqrt.f64 (*.f64 (+.f64 y x) z))) |
| ✓ | 61.7b | (*.f64 2 (sqrt.f64 (*.f64 z x))) |
| ✓ | 43.1b | (*.f64 2 (sqrt.f64 (*.f64 y z))) |
| ✓ | 38.5b | (*.f64 2 (sqrt.f64 (*.f64 y x))) |
Compiled 162 to 116 computations (28.4% saved)
| Inputs |
|---|
(*.f64 2 (sqrt.f64 (*.f64 y x))) |
(*.f64 2 (sqrt.f64 (*.f64 y z))) |
(*.f64 2 (sqrt.f64 (*.f64 z x))) |
(*.f64 2 (sqrt.f64 (*.f64 (+.f64 y x) z))) |
(*.f64 2 (sqrt.f64 (*.f64 (+.f64 y z) x))) |
(*.f64 2 (sqrt.f64 (+.f64 (*.f64 z x) (*.f64 z y)))) |
(*.f64 2 (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 1/2 z))) |
(*.f64 2 (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 1/2 y))) |
(*.f64 2 (sqrt.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 y x))))) |
(*.f64 2 (sqrt.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 y z)))) |
(*.f64 2 (sqrt.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 x z)) (*.f64 y z)))) |
(*.f64 2 (+.f64 (*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 z x)))) (sqrt.f64 (*.f64 z x)))) |
(*.f64 2 (+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 x y)) z)) (sqrt.f64 (*.f64 y x)))) |
(*.f64 2 (+.f64 (sqrt.f64 (*.f64 y x)) (*.f64 z (*.f64 (*.f64 (+.f64 y x) (sqrt.f64 (/.f64 1 (*.f64 y x)))) 1/2)))) |
(*.f64 2 (+.f64 (sqrt.f64 (*.f64 z x)) (*.f64 y (*.f64 (*.f64 (+.f64 z x) (sqrt.f64 (/.f64 1 (*.f64 z x)))) 1/2)))) |
(*.f64 2 (+.f64 (sqrt.f64 (*.f64 z x)) (*.f64 y (*.f64 (*.f64 (+.f64 z x) (sqrt.f64 (/.f64 (/.f64 1 x) z))) 1/2)))) |
(*.f64 2 (+.f64 (sqrt.f64 (*.f64 z x)) (*.f64 y (*.f64 (*.f64 (+.f64 z x) (sqrt.f64 (*.f64 (/.f64 1 z) (/.f64 1 x)))) 1/2)))) |
(*.f64 2 (+.f64 (sqrt.f64 (*.f64 z x)) (*.f64 y (*.f64 (*.f64 (+.f64 z x) (sqrt.f64 (/.f64 (/.f64 (/.f64 z x) z) z))) 1/2)))) |
| Outputs |
|---|
(*.f64 2 (sqrt.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 y z)))) |
6 calls:
| 15.0ms | (+.f64 (+.f64 (*.f64 x y) (*.f64 x z)) (*.f64 y z)) |
| 10.0ms | z |
| 9.0ms | x |
| 9.0ms | y |
| 9.0ms | (sqrt.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 x z)) (*.f64 y z))) |
| Error | Segments | Branch |
|---|---|---|
| 17.5b | 1 | x |
| 17.5b | 1 | y |
| 17.5b | 1 | z |
| 17.5b | 1 | (*.f64 2 (sqrt.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 x z)) (*.f64 y z)))) |
| 17.5b | 1 | (sqrt.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 x z)) (*.f64 y z))) |
| 17.5b | 1 | (+.f64 (+.f64 (*.f64 x y) (*.f64 x z)) (*.f64 y z)) |
Compiled 302 to 166 computations (45% saved)
| Inputs |
|---|
(*.f64 2 (sqrt.f64 (*.f64 y x))) |
(*.f64 2 (sqrt.f64 (*.f64 y z))) |
(*.f64 2 (sqrt.f64 (*.f64 z x))) |
(*.f64 2 (sqrt.f64 (*.f64 (+.f64 y x) z))) |
(*.f64 2 (sqrt.f64 (*.f64 (+.f64 y z) x))) |
(*.f64 2 (sqrt.f64 (+.f64 (*.f64 z x) (*.f64 z y)))) |
(*.f64 2 (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 1/2 z))) |
(*.f64 2 (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 1/2 y))) |
(*.f64 2 (sqrt.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 y x))))) |
| Outputs |
|---|
(*.f64 2 (sqrt.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 y x))))) |
3 calls:
| 6.0ms | y |
| 6.0ms | z |
| 6.0ms | x |
| Error | Segments | Branch |
|---|---|---|
| 17.5b | 1 | x |
| 17.5b | 1 | y |
| 17.5b | 1 | z |
Compiled 91 to 59 computations (35.2% saved)
| Inputs |
|---|
(*.f64 2 (sqrt.f64 (*.f64 y x))) |
(*.f64 2 (sqrt.f64 (*.f64 y z))) |
(*.f64 2 (sqrt.f64 (*.f64 z x))) |
(*.f64 2 (sqrt.f64 (*.f64 (+.f64 y x) z))) |
(*.f64 2 (sqrt.f64 (*.f64 (+.f64 y z) x))) |
(*.f64 2 (sqrt.f64 (+.f64 (*.f64 z x) (*.f64 z y)))) |
(*.f64 2 (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 1/2 z))) |
(*.f64 2 (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 1/2 y))) |
| Outputs |
|---|
(*.f64 2 (sqrt.f64 (*.f64 (+.f64 y z) x))) |
(*.f64 2 (sqrt.f64 (*.f64 (+.f64 y x) z))) |
3 calls:
| 19.0ms | z |
| 15.0ms | x |
| 11.0ms | y |
| Error | Segments | Branch |
|---|---|---|
| 19.8b | 2 | x |
| 17.5b | 2 | y |
| 19.6b | 4 | z |
Compiled 79 to 53 computations (32.9% saved)
| 1× | binary-search |
| Time | Left | Right |
|---|---|---|
| 106.0ms | -3.9097325433286544e-277 | 1.1789421960426277e-263 |
| 99.0ms | 64× | body | 256 | valid |
| 6.0ms | 54× | body | 256 | invalid |
Compiled 119 to 88 computations (26.1% saved)
| Inputs |
|---|
(*.f64 2 (sqrt.f64 (*.f64 y x))) |
(*.f64 2 (sqrt.f64 (*.f64 y z))) |
(*.f64 2 (sqrt.f64 (*.f64 z x))) |
(*.f64 2 (sqrt.f64 (*.f64 (+.f64 y x) z))) |
| Outputs |
|---|
(*.f64 2 (sqrt.f64 (*.f64 y x))) |
(*.f64 2 (sqrt.f64 (*.f64 (+.f64 y x) z))) |
3 calls:
| 33.0ms | z |
| 12.0ms | x |
| 8.0ms | y |
| Error | Segments | Branch |
|---|---|---|
| 21.0b | 2 | x |
| 18.8b | 2 | y |
| 20.9b | 4 | z |
Compiled 41 to 29 computations (29.3% saved)
| 1× | binary-search |
| Time | Left | Right |
|---|---|---|
| 44.0ms | -3.9097325433286544e-277 | 1.1789421960426277e-263 |
| 23.0ms | 192× | body | 256 | valid |
| 19.0ms | 179× | body | 256 | invalid |
Compiled 287 to 220 computations (23.3% saved)
Total -43.5b remaining (-224.8%)
Threshold costs -43.5b (-224.8%)
| Inputs |
|---|
(*.f64 2 (sqrt.f64 (*.f64 y x))) |
(*.f64 2 (sqrt.f64 (*.f64 y z))) |
(*.f64 2 (sqrt.f64 (*.f64 z x))) |
| Outputs |
|---|
(*.f64 2 (sqrt.f64 (*.f64 y x))) |
(*.f64 2 (sqrt.f64 (*.f64 y z))) |
3 calls:
| 13.0ms | z |
| 11.0ms | x |
| 8.0ms | y |
| Error | Segments | Branch |
|---|---|---|
| 21.5b | 2 | x |
| 19.4b | 2 | y |
| 21.3b | 4 | z |
Compiled 33 to 24 computations (27.3% saved)
| 1× | binary-search |
| Time | Left | Right |
|---|---|---|
| 45.0ms | -3.9097325433286544e-277 | 1.1789421960426277e-263 |
| 21.0ms | 192× | body | 256 | valid |
| 20.0ms | 191× | body | 256 | invalid |
Compiled 263 to 208 computations (20.9% saved)
| 1× | egg-herbie |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 43 | 234 |
| 1× | fuel |
| 1× | saturated |
| Inputs |
|---|
(*.f64 2 (sqrt.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 y z)))) |
(*.f64 2 (sqrt.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 y x))))) |
(if (<=.f64 y -7906338019816821/1581267603963364205878869896241541461324661326282360299663291859589299527874963647593440497667477535118649045814975093057732880760826511538023542187037019608761854877160674698159897716735103252665935684988068320848140683464255411707953932466009059033912578566502802887127604801681488301032705683661296923932091466727292928) (*.f64 2 (sqrt.f64 (*.f64 (+.f64 y z) x))) (*.f64 2 (sqrt.f64 (*.f64 (+.f64 y x) z)))) |
(if (<=.f64 y -7584193176231935/19958403095347198116563727130368385660674512604354575415025472424372118918689640657849579654926357010893424468441924952439724379883935936607391717982848314203200056729510856765175377214443629871826533567445439239933308104551208703888888552684480441575071209068757560416423584952303440099278848) (*.f64 2 (sqrt.f64 (*.f64 y x))) (*.f64 2 (sqrt.f64 (*.f64 (+.f64 y x) z)))) |
(if (<=.f64 y -101201126653655/202402253307310618352495346718917307049556649764142118356901358027430339567995346891960383701437124495187077864316811911389808737385793476867013399940738509921517424276566361364466907742093216341239767678472745068562007483424692698618103355649159556340810056512358769552333414615230502532186327508646006263307707741093494784) (*.f64 2 (sqrt.f64 (*.f64 y x))) (*.f64 2 (sqrt.f64 (*.f64 y z)))) |
(*.f64 2 (sqrt.f64 (*.f64 y x))) |
| Outputs |
|---|
(*.f64 2 (sqrt.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 y z)))) |
(*.f64 2 (sqrt.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 y x))))) |
(if (<=.f64 y -7906338019816821/1581267603963364205878869896241541461324661326282360299663291859589299527874963647593440497667477535118649045814975093057732880760826511538023542187037019608761854877160674698159897716735103252665935684988068320848140683464255411707953932466009059033912578566502802887127604801681488301032705683661296923932091466727292928) (*.f64 2 (sqrt.f64 (*.f64 (+.f64 y z) x))) (*.f64 2 (sqrt.f64 (*.f64 (+.f64 y x) z)))) |
(if (<=.f64 y -7584193176231935/19958403095347198116563727130368385660674512604354575415025472424372118918689640657849579654926357010893424468441924952439724379883935936607391717982848314203200056729510856765175377214443629871826533567445439239933308104551208703888888552684480441575071209068757560416423584952303440099278848) (*.f64 2 (sqrt.f64 (*.f64 y x))) (*.f64 2 (sqrt.f64 (*.f64 (+.f64 y x) z)))) |
(if (<=.f64 y -101201126653655/202402253307310618352495346718917307049556649764142118356901358027430339567995346891960383701437124495187077864316811911389808737385793476867013399940738509921517424276566361364466907742093216341239767678472745068562007483424692698618103355649159556340810056512358769552333414615230502532186327508646006263307707741093494784) (*.f64 2 (sqrt.f64 (*.f64 y x))) (*.f64 2 (sqrt.f64 (*.f64 y z)))) |
(*.f64 2 (sqrt.f64 (*.f64 y x))) |
Compiled 102 to 72 computations (29.4% saved)
| 2× | egg-herbie |
| 18× | rational.json-simplify-1 |
| 18× | rational.json-simplify-1 |
| 14× | rational.json-simplify-2 |
| 14× | rational.json-simplify-2 |
| 8× | rational.json-simplify-51 |
Useful iterations: 1 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 14 | 41 |
| 1 | 20 | 35 |
| 2 | 28 | 35 |
| 3 | 37 | 35 |
| 4 | 41 | 35 |
| 0 | 14 | 41 |
| 1 | 20 | 35 |
| 2 | 28 | 35 |
| 3 | 37 | 35 |
| 4 | 41 | 35 |
| 1× | saturated |
| 1× | saturated |
Compiled 142 to 64 computations (54.9% saved)
Compiled 133 to 80 computations (39.8% saved)
Loading profile data...