
Time bar (total: 11.2s)
| 1× | search |
| Probability | Valid | Unknown | Precondition | Infinite | Domain | Can't | Iter |
|---|---|---|---|---|---|---|---|
| 0% | 0% | 99.9% | 0.1% | 0% | 0% | 0% | 0 |
| 100% | 99.9% | 0% | 0.1% | 0% | 0% | 0% | 1 |
Compiled 23 to 13 computations (43.5% saved)
| 2.4s | 8256× | 0 | valid-rival |
| 1.3s | 8238× | 0 | valid-sollya |
| 90.0ms | 18× | 0 | exit-sollya |
| 1× | egg-herbie |
| 1241× | fma-define |
| 680× | times-frac |
| 547× | fma-neg |
| 460× | div-sub |
| 356× | associate-/r* |
Useful iterations: 1 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 48 | 606 |
| 1 | 145 | 562 |
| 2 | 421 | 562 |
| 3 | 1139 | 562 |
| 4 | 2837 | 562 |
| 5 | 5639 | 562 |
| 6 | 6583 | 562 |
| 7 | 7394 | 562 |
| 8 | 7471 | 562 |
| 9 | 7487 | 562 |
| 1× | node limit |
| Inputs |
|---|
(+.f64 (*.f64 (/.f64 (cos.f64 th) (sqrt.f64 #s(literal 2 binary64))) (*.f64 a1 a1)) (*.f64 (/.f64 (cos.f64 th) (sqrt.f64 #s(literal 2 binary64))) (*.f64 a2 a2))) |
(+.f64 (*.f64 (/.f64 (cos.f64 th) (sqrt.f64 #s(literal 2 binary64))) (*.f64 a1 a1)) (*.f64 (/.f64 (cos.f64 th) (sqrt.f64 #s(literal 2 binary64))) (*.f64 a2 a2))) |
(+.f64 (*.f64 (/.f64 (cos.f64 th) (sqrt.f64 #s(literal 2 binary64))) (*.f64 (neg.f64 a1) (neg.f64 a1))) (*.f64 (/.f64 (cos.f64 th) (sqrt.f64 #s(literal 2 binary64))) (*.f64 a2 a2))) |
(+.f64 (*.f64 (/.f64 (cos.f64 th) (sqrt.f64 #s(literal 2 binary64))) (*.f64 a1 a1)) (*.f64 (/.f64 (cos.f64 th) (sqrt.f64 #s(literal 2 binary64))) (*.f64 (neg.f64 a2) (neg.f64 a2)))) |
(+.f64 (*.f64 (/.f64 (cos.f64 (neg.f64 th)) (sqrt.f64 #s(literal 2 binary64))) (*.f64 a1 a1)) (*.f64 (/.f64 (cos.f64 (neg.f64 th)) (sqrt.f64 #s(literal 2 binary64))) (*.f64 a2 a2))) |
(neg.f64 (+.f64 (*.f64 (/.f64 (cos.f64 th) (sqrt.f64 #s(literal 2 binary64))) (*.f64 (neg.f64 a1) (neg.f64 a1))) (*.f64 (/.f64 (cos.f64 th) (sqrt.f64 #s(literal 2 binary64))) (*.f64 a2 a2)))) |
(neg.f64 (+.f64 (*.f64 (/.f64 (cos.f64 th) (sqrt.f64 #s(literal 2 binary64))) (*.f64 a1 a1)) (*.f64 (/.f64 (cos.f64 th) (sqrt.f64 #s(literal 2 binary64))) (*.f64 (neg.f64 a2) (neg.f64 a2))))) |
(neg.f64 (+.f64 (*.f64 (/.f64 (cos.f64 (neg.f64 th)) (sqrt.f64 #s(literal 2 binary64))) (*.f64 a1 a1)) (*.f64 (/.f64 (cos.f64 (neg.f64 th)) (sqrt.f64 #s(literal 2 binary64))) (*.f64 a2 a2)))) |
(+.f64 (*.f64 (/.f64 (cos.f64 th) (sqrt.f64 #s(literal 2 binary64))) (*.f64 a2 a2)) (*.f64 (/.f64 (cos.f64 th) (sqrt.f64 #s(literal 2 binary64))) (*.f64 a1 a1))) |
(+.f64 (*.f64 (/.f64 (cos.f64 a1) (sqrt.f64 #s(literal 2 binary64))) (*.f64 th th)) (*.f64 (/.f64 (cos.f64 a1) (sqrt.f64 #s(literal 2 binary64))) (*.f64 a2 a2))) |
(+.f64 (*.f64 (/.f64 (cos.f64 a2) (sqrt.f64 #s(literal 2 binary64))) (*.f64 a1 a1)) (*.f64 (/.f64 (cos.f64 a2) (sqrt.f64 #s(literal 2 binary64))) (*.f64 th th))) |
| Outputs |
|---|
(+.f64 (*.f64 (/.f64 (cos.f64 th) (sqrt.f64 #s(literal 2 binary64))) (*.f64 a1 a1)) (*.f64 (/.f64 (cos.f64 th) (sqrt.f64 #s(literal 2 binary64))) (*.f64 a2 a2))) |
(*.f64 (/.f64 (cos.f64 th) (sqrt.f64 #s(literal 2 binary64))) (+.f64 (*.f64 a1 a1) (*.f64 a2 a2))) |
(*.f64 (/.f64 (cos.f64 th) (sqrt.f64 #s(literal 2 binary64))) (fma.f64 a1 a1 (*.f64 a2 a2))) |
(*.f64 (cos.f64 th) (/.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (sqrt.f64 #s(literal 2 binary64)))) |
(+.f64 (*.f64 (/.f64 (cos.f64 th) (sqrt.f64 #s(literal 2 binary64))) (*.f64 a1 a1)) (*.f64 (/.f64 (cos.f64 th) (sqrt.f64 #s(literal 2 binary64))) (*.f64 a2 a2))) |
(*.f64 (/.f64 (cos.f64 th) (sqrt.f64 #s(literal 2 binary64))) (+.f64 (*.f64 a1 a1) (*.f64 a2 a2))) |
(*.f64 (/.f64 (cos.f64 th) (sqrt.f64 #s(literal 2 binary64))) (fma.f64 a1 a1 (*.f64 a2 a2))) |
(*.f64 (cos.f64 th) (/.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (sqrt.f64 #s(literal 2 binary64)))) |
(+.f64 (*.f64 (/.f64 (cos.f64 th) (sqrt.f64 #s(literal 2 binary64))) (*.f64 (neg.f64 a1) (neg.f64 a1))) (*.f64 (/.f64 (cos.f64 th) (sqrt.f64 #s(literal 2 binary64))) (*.f64 a2 a2))) |
(*.f64 (/.f64 (cos.f64 th) (sqrt.f64 #s(literal 2 binary64))) (+.f64 (*.f64 a1 a1) (*.f64 a2 a2))) |
(*.f64 (/.f64 (cos.f64 th) (sqrt.f64 #s(literal 2 binary64))) (fma.f64 a1 a1 (*.f64 a2 a2))) |
(*.f64 (cos.f64 th) (/.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (sqrt.f64 #s(literal 2 binary64)))) |
(+.f64 (*.f64 (/.f64 (cos.f64 th) (sqrt.f64 #s(literal 2 binary64))) (*.f64 a1 a1)) (*.f64 (/.f64 (cos.f64 th) (sqrt.f64 #s(literal 2 binary64))) (*.f64 (neg.f64 a2) (neg.f64 a2)))) |
(*.f64 (/.f64 (cos.f64 th) (sqrt.f64 #s(literal 2 binary64))) (+.f64 (*.f64 a1 a1) (*.f64 a2 a2))) |
(*.f64 (/.f64 (cos.f64 th) (sqrt.f64 #s(literal 2 binary64))) (fma.f64 a1 a1 (*.f64 a2 a2))) |
(*.f64 (cos.f64 th) (/.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (sqrt.f64 #s(literal 2 binary64)))) |
(+.f64 (*.f64 (/.f64 (cos.f64 (neg.f64 th)) (sqrt.f64 #s(literal 2 binary64))) (*.f64 a1 a1)) (*.f64 (/.f64 (cos.f64 (neg.f64 th)) (sqrt.f64 #s(literal 2 binary64))) (*.f64 a2 a2))) |
(*.f64 (/.f64 (cos.f64 th) (sqrt.f64 #s(literal 2 binary64))) (+.f64 (*.f64 a1 a1) (*.f64 a2 a2))) |
(*.f64 (/.f64 (cos.f64 th) (sqrt.f64 #s(literal 2 binary64))) (fma.f64 a1 a1 (*.f64 a2 a2))) |
(*.f64 (cos.f64 th) (/.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (sqrt.f64 #s(literal 2 binary64)))) |
(neg.f64 (+.f64 (*.f64 (/.f64 (cos.f64 th) (sqrt.f64 #s(literal 2 binary64))) (*.f64 (neg.f64 a1) (neg.f64 a1))) (*.f64 (/.f64 (cos.f64 th) (sqrt.f64 #s(literal 2 binary64))) (*.f64 a2 a2)))) |
(neg.f64 (*.f64 (/.f64 (cos.f64 th) (sqrt.f64 #s(literal 2 binary64))) (+.f64 (*.f64 a1 a1) (*.f64 a2 a2)))) |
(*.f64 (/.f64 (cos.f64 th) (sqrt.f64 #s(literal 2 binary64))) (neg.f64 (fma.f64 a1 a1 (*.f64 a2 a2)))) |
(*.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (/.f64 (cos.f64 th) (neg.f64 (sqrt.f64 #s(literal 2 binary64))))) |
(*.f64 (cos.f64 th) (/.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (neg.f64 (sqrt.f64 #s(literal 2 binary64))))) |
(neg.f64 (+.f64 (*.f64 (/.f64 (cos.f64 th) (sqrt.f64 #s(literal 2 binary64))) (*.f64 a1 a1)) (*.f64 (/.f64 (cos.f64 th) (sqrt.f64 #s(literal 2 binary64))) (*.f64 (neg.f64 a2) (neg.f64 a2))))) |
(neg.f64 (*.f64 (/.f64 (cos.f64 th) (sqrt.f64 #s(literal 2 binary64))) (+.f64 (*.f64 a1 a1) (*.f64 a2 a2)))) |
(*.f64 (/.f64 (cos.f64 th) (sqrt.f64 #s(literal 2 binary64))) (neg.f64 (fma.f64 a1 a1 (*.f64 a2 a2)))) |
(*.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (/.f64 (cos.f64 th) (neg.f64 (sqrt.f64 #s(literal 2 binary64))))) |
(*.f64 (cos.f64 th) (/.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (neg.f64 (sqrt.f64 #s(literal 2 binary64))))) |
(neg.f64 (+.f64 (*.f64 (/.f64 (cos.f64 (neg.f64 th)) (sqrt.f64 #s(literal 2 binary64))) (*.f64 a1 a1)) (*.f64 (/.f64 (cos.f64 (neg.f64 th)) (sqrt.f64 #s(literal 2 binary64))) (*.f64 a2 a2)))) |
(neg.f64 (*.f64 (/.f64 (cos.f64 th) (sqrt.f64 #s(literal 2 binary64))) (+.f64 (*.f64 a1 a1) (*.f64 a2 a2)))) |
(*.f64 (/.f64 (cos.f64 th) (sqrt.f64 #s(literal 2 binary64))) (neg.f64 (fma.f64 a1 a1 (*.f64 a2 a2)))) |
(*.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (/.f64 (cos.f64 th) (neg.f64 (sqrt.f64 #s(literal 2 binary64))))) |
(*.f64 (cos.f64 th) (/.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (neg.f64 (sqrt.f64 #s(literal 2 binary64))))) |
(+.f64 (*.f64 (/.f64 (cos.f64 th) (sqrt.f64 #s(literal 2 binary64))) (*.f64 a2 a2)) (*.f64 (/.f64 (cos.f64 th) (sqrt.f64 #s(literal 2 binary64))) (*.f64 a1 a1))) |
(*.f64 (/.f64 (cos.f64 th) (sqrt.f64 #s(literal 2 binary64))) (+.f64 (*.f64 a1 a1) (*.f64 a2 a2))) |
(*.f64 (/.f64 (cos.f64 th) (sqrt.f64 #s(literal 2 binary64))) (fma.f64 a1 a1 (*.f64 a2 a2))) |
(*.f64 (cos.f64 th) (/.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (sqrt.f64 #s(literal 2 binary64)))) |
(+.f64 (*.f64 (/.f64 (cos.f64 a1) (sqrt.f64 #s(literal 2 binary64))) (*.f64 th th)) (*.f64 (/.f64 (cos.f64 a1) (sqrt.f64 #s(literal 2 binary64))) (*.f64 a2 a2))) |
(*.f64 (/.f64 (cos.f64 a1) (sqrt.f64 #s(literal 2 binary64))) (+.f64 (*.f64 th th) (*.f64 a2 a2))) |
(*.f64 (/.f64 (cos.f64 a1) (sqrt.f64 #s(literal 2 binary64))) (fma.f64 th th (*.f64 a2 a2))) |
(*.f64 (cos.f64 a1) (/.f64 (fma.f64 th th (*.f64 a2 a2)) (sqrt.f64 #s(literal 2 binary64)))) |
(+.f64 (*.f64 (/.f64 (cos.f64 a2) (sqrt.f64 #s(literal 2 binary64))) (*.f64 a1 a1)) (*.f64 (/.f64 (cos.f64 a2) (sqrt.f64 #s(literal 2 binary64))) (*.f64 th th))) |
(*.f64 (/.f64 (cos.f64 a2) (sqrt.f64 #s(literal 2 binary64))) (+.f64 (*.f64 a1 a1) (*.f64 th th))) |
(*.f64 (/.f64 (cos.f64 a2) (sqrt.f64 #s(literal 2 binary64))) (fma.f64 a1 a1 (*.f64 th th))) |
(*.f64 (cos.f64 a2) (/.f64 (fma.f64 th th (*.f64 a1 a1)) (sqrt.f64 #s(literal 2 binary64)))) |
(*.f64 (/.f64 (cos.f64 a2) (sqrt.f64 #s(literal 2 binary64))) (fma.f64 th th (*.f64 a1 a1))) |
(abs a1)
(abs a2)
(abs th)
(sort a1 a2)
Compiled 22 to 12 computations (45.5% saved)
Compiled 3 to 3 computations (0% saved)
| Status | Accuracy | Program |
|---|---|---|
| 99.5% | (+.f64 (*.f64 (/.f64 (cos.f64 th) (sqrt.f64 #s(literal 2 binary64))) (*.f64 a1 a1)) (*.f64 (/.f64 (cos.f64 th) (sqrt.f64 #s(literal 2 binary64))) (*.f64 a2 a2))) |
Compiled 44 to 24 computations (45.5% saved)
| 1× | egg-herbie |
| 2× | *-commutative |
| 1× | +-commutative |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 19 | 77 |
| 1 | 22 | 77 |
| 1× | saturated |
| Inputs |
|---|
(+.f64 (*.f64 (/.f64 (cos.f64 th) (sqrt.f64 #s(literal 2 binary64))) (*.f64 a1 a1)) (*.f64 (/.f64 (cos.f64 th) (sqrt.f64 #s(literal 2 binary64))) (*.f64 a2 a2))) |
| Outputs |
|---|
(+.f64 (*.f64 (/.f64 (cos.f64 th) (sqrt.f64 #s(literal 2 binary64))) (*.f64 a1 a1)) (*.f64 (/.f64 (cos.f64 th) (sqrt.f64 #s(literal 2 binary64))) (*.f64 a2 a2))) |
| 1× | fuel |
Compiled 22 to 12 computations (45.5% saved)
(sort a1 a2)
(abs th)
(abs a2)
(abs a1)
Compiled 440 to 240 computations (45.5% saved)
Loading profile data...