
Time bar (total: 5.8s)
| 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 |
| 100% | 99.9% | 0% | 0.1% | 0% | 0% | 0% | 4 |
Compiled 18 to 12 computations (33.3% saved)
| 1.4s | 8256× | 0 | valid-rival |
| 929.0ms | 8253× | 0 | valid-sollya |
| 15.0ms | 3× | 0 | exit-sollya |
| 1× | egg-herbie |
| 696× | fma-neg |
| 285× | fma-define |
| 111× | cancel-sign-sub |
| 88× | div-sub |
| 75× | sub-neg |
Useful iterations: 1 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 50 | 617 |
| 1 | 92 | 573 |
| 2 | 184 | 573 |
| 3 | 406 | 573 |
| 4 | 780 | 573 |
| 5 | 1218 | 573 |
| 6 | 1826 | 573 |
| 7 | 2217 | 573 |
| 1× | saturated |
| Inputs |
|---|
(sqrt.f64 (/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) #s(literal 3 binary64))) |
(sqrt.f64 (/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) #s(literal 3 binary64))) |
(sqrt.f64 (/.f64 (+.f64 (+.f64 (*.f64 (neg.f64 x) (neg.f64 x)) (*.f64 y y)) (*.f64 z z)) #s(literal 3 binary64))) |
(sqrt.f64 (/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 (neg.f64 y) (neg.f64 y))) (*.f64 z z)) #s(literal 3 binary64))) |
(sqrt.f64 (/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 (neg.f64 z) (neg.f64 z))) #s(literal 3 binary64))) |
(neg.f64 (sqrt.f64 (/.f64 (+.f64 (+.f64 (*.f64 (neg.f64 x) (neg.f64 x)) (*.f64 y y)) (*.f64 z z)) #s(literal 3 binary64)))) |
(neg.f64 (sqrt.f64 (/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 (neg.f64 y) (neg.f64 y))) (*.f64 z z)) #s(literal 3 binary64)))) |
(neg.f64 (sqrt.f64 (/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 (neg.f64 z) (neg.f64 z))) #s(literal 3 binary64)))) |
(sqrt.f64 (/.f64 (+.f64 (+.f64 (*.f64 y y) (*.f64 x x)) (*.f64 z z)) #s(literal 3 binary64))) |
(sqrt.f64 (/.f64 (+.f64 (+.f64 (*.f64 z z) (*.f64 y y)) (*.f64 x x)) #s(literal 3 binary64))) |
(sqrt.f64 (/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 z z)) (*.f64 y y)) #s(literal 3 binary64))) |
| Outputs |
|---|
(sqrt.f64 (/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) #s(literal 3 binary64))) |
(sqrt.f64 (/.f64 (+.f64 (*.f64 x x) (fma.f64 z z (*.f64 y y))) #s(literal 3 binary64))) |
(sqrt.f64 (/.f64 (fma.f64 x x (fma.f64 y y (*.f64 z z))) #s(literal 3 binary64))) |
(sqrt.f64 (/.f64 (fma.f64 y y (fma.f64 x x (*.f64 z z))) #s(literal 3 binary64))) |
(sqrt.f64 (*.f64 (fma.f64 y y (fma.f64 x x (*.f64 z z))) #s(literal 1/3 binary64))) |
(sqrt.f64 (/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) #s(literal 3 binary64))) |
(sqrt.f64 (/.f64 (+.f64 (*.f64 x x) (fma.f64 z z (*.f64 y y))) #s(literal 3 binary64))) |
(sqrt.f64 (/.f64 (fma.f64 x x (fma.f64 y y (*.f64 z z))) #s(literal 3 binary64))) |
(sqrt.f64 (/.f64 (fma.f64 y y (fma.f64 x x (*.f64 z z))) #s(literal 3 binary64))) |
(sqrt.f64 (*.f64 (fma.f64 y y (fma.f64 x x (*.f64 z z))) #s(literal 1/3 binary64))) |
(sqrt.f64 (/.f64 (+.f64 (+.f64 (*.f64 (neg.f64 x) (neg.f64 x)) (*.f64 y y)) (*.f64 z z)) #s(literal 3 binary64))) |
(sqrt.f64 (/.f64 (+.f64 (*.f64 x x) (fma.f64 z z (*.f64 y y))) #s(literal 3 binary64))) |
(sqrt.f64 (/.f64 (fma.f64 x x (fma.f64 y y (*.f64 z z))) #s(literal 3 binary64))) |
(sqrt.f64 (/.f64 (fma.f64 y y (fma.f64 x x (*.f64 z z))) #s(literal 3 binary64))) |
(sqrt.f64 (*.f64 (fma.f64 y y (fma.f64 x x (*.f64 z z))) #s(literal 1/3 binary64))) |
(sqrt.f64 (/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 (neg.f64 y) (neg.f64 y))) (*.f64 z z)) #s(literal 3 binary64))) |
(sqrt.f64 (/.f64 (+.f64 (*.f64 x x) (fma.f64 z z (*.f64 y y))) #s(literal 3 binary64))) |
(sqrt.f64 (/.f64 (fma.f64 x x (fma.f64 y y (*.f64 z z))) #s(literal 3 binary64))) |
(sqrt.f64 (/.f64 (fma.f64 y y (fma.f64 x x (*.f64 z z))) #s(literal 3 binary64))) |
(sqrt.f64 (*.f64 (fma.f64 y y (fma.f64 x x (*.f64 z z))) #s(literal 1/3 binary64))) |
(sqrt.f64 (/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 (neg.f64 z) (neg.f64 z))) #s(literal 3 binary64))) |
(sqrt.f64 (/.f64 (+.f64 (*.f64 x x) (fma.f64 z z (*.f64 y y))) #s(literal 3 binary64))) |
(sqrt.f64 (/.f64 (fma.f64 x x (fma.f64 y y (*.f64 z z))) #s(literal 3 binary64))) |
(sqrt.f64 (/.f64 (fma.f64 y y (fma.f64 x x (*.f64 z z))) #s(literal 3 binary64))) |
(sqrt.f64 (*.f64 (fma.f64 y y (fma.f64 x x (*.f64 z z))) #s(literal 1/3 binary64))) |
(neg.f64 (sqrt.f64 (/.f64 (+.f64 (+.f64 (*.f64 (neg.f64 x) (neg.f64 x)) (*.f64 y y)) (*.f64 z z)) #s(literal 3 binary64)))) |
(neg.f64 (sqrt.f64 (/.f64 (+.f64 (*.f64 x x) (fma.f64 z z (*.f64 y y))) #s(literal 3 binary64)))) |
(neg.f64 (sqrt.f64 (/.f64 (fma.f64 x x (fma.f64 y y (*.f64 z z))) #s(literal 3 binary64)))) |
(neg.f64 (sqrt.f64 (/.f64 (fma.f64 y y (fma.f64 x x (*.f64 z z))) #s(literal 3 binary64)))) |
(neg.f64 (sqrt.f64 (*.f64 (fma.f64 y y (fma.f64 x x (*.f64 z z))) #s(literal 1/3 binary64)))) |
(neg.f64 (sqrt.f64 (/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 (neg.f64 y) (neg.f64 y))) (*.f64 z z)) #s(literal 3 binary64)))) |
(neg.f64 (sqrt.f64 (/.f64 (+.f64 (*.f64 x x) (fma.f64 z z (*.f64 y y))) #s(literal 3 binary64)))) |
(neg.f64 (sqrt.f64 (/.f64 (fma.f64 x x (fma.f64 y y (*.f64 z z))) #s(literal 3 binary64)))) |
(neg.f64 (sqrt.f64 (/.f64 (fma.f64 y y (fma.f64 x x (*.f64 z z))) #s(literal 3 binary64)))) |
(neg.f64 (sqrt.f64 (*.f64 (fma.f64 y y (fma.f64 x x (*.f64 z z))) #s(literal 1/3 binary64)))) |
(neg.f64 (sqrt.f64 (/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 (neg.f64 z) (neg.f64 z))) #s(literal 3 binary64)))) |
(neg.f64 (sqrt.f64 (/.f64 (+.f64 (*.f64 x x) (fma.f64 z z (*.f64 y y))) #s(literal 3 binary64)))) |
(neg.f64 (sqrt.f64 (/.f64 (fma.f64 x x (fma.f64 y y (*.f64 z z))) #s(literal 3 binary64)))) |
(neg.f64 (sqrt.f64 (/.f64 (fma.f64 y y (fma.f64 x x (*.f64 z z))) #s(literal 3 binary64)))) |
(neg.f64 (sqrt.f64 (*.f64 (fma.f64 y y (fma.f64 x x (*.f64 z z))) #s(literal 1/3 binary64)))) |
(sqrt.f64 (/.f64 (+.f64 (+.f64 (*.f64 y y) (*.f64 x x)) (*.f64 z z)) #s(literal 3 binary64))) |
(sqrt.f64 (/.f64 (+.f64 (*.f64 x x) (fma.f64 z z (*.f64 y y))) #s(literal 3 binary64))) |
(sqrt.f64 (/.f64 (fma.f64 x x (fma.f64 y y (*.f64 z z))) #s(literal 3 binary64))) |
(sqrt.f64 (/.f64 (fma.f64 y y (fma.f64 x x (*.f64 z z))) #s(literal 3 binary64))) |
(sqrt.f64 (*.f64 (fma.f64 y y (fma.f64 x x (*.f64 z z))) #s(literal 1/3 binary64))) |
(sqrt.f64 (/.f64 (+.f64 (+.f64 (*.f64 z z) (*.f64 y y)) (*.f64 x x)) #s(literal 3 binary64))) |
(sqrt.f64 (/.f64 (+.f64 (*.f64 x x) (fma.f64 z z (*.f64 y y))) #s(literal 3 binary64))) |
(sqrt.f64 (/.f64 (fma.f64 x x (fma.f64 y y (*.f64 z z))) #s(literal 3 binary64))) |
(sqrt.f64 (/.f64 (fma.f64 y y (fma.f64 x x (*.f64 z z))) #s(literal 3 binary64))) |
(sqrt.f64 (*.f64 (fma.f64 y y (fma.f64 x x (*.f64 z z))) #s(literal 1/3 binary64))) |
(sqrt.f64 (/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 z z)) (*.f64 y y)) #s(literal 3 binary64))) |
(sqrt.f64 (/.f64 (+.f64 (*.f64 x x) (fma.f64 z z (*.f64 y y))) #s(literal 3 binary64))) |
(sqrt.f64 (/.f64 (fma.f64 x x (fma.f64 y y (*.f64 z z))) #s(literal 3 binary64))) |
(sqrt.f64 (/.f64 (fma.f64 y y (fma.f64 x x (*.f64 z z))) #s(literal 3 binary64))) |
(sqrt.f64 (*.f64 (fma.f64 y y (fma.f64 x x (*.f64 z z))) #s(literal 1/3 binary64))) |
(abs x)
(abs y)
(abs z)
(sort x y z)
Compiled 17 to 11 computations (35.3% saved)
Compiled 3 to 3 computations (0% saved)
| Status | Accuracy | Program |
|---|---|---|
| 39.7% | (sqrt.f64 (/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) #s(literal 3 binary64))) |
Compiled 34 to 22 computations (35.3% saved)
| 1× | egg-herbie |
| 2× | +-commutative |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 18 | 59 |
| 1 | 20 | 59 |
| 1× | saturated |
| Inputs |
|---|
(sqrt.f64 (/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) #s(literal 3 binary64))) |
| Outputs |
|---|
(sqrt.f64 (/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) #s(literal 3 binary64))) |
| 1× | fuel |
Compiled 17 to 11 computations (35.3% saved)
(sort x y z)
(abs z)
(abs y)
(abs x)
Compiled 410 to 266 computations (35.1% saved)
Loading profile data...