
Time bar (total: 3.4s)
| 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 44 to 27 computations (38.6% saved)
| 796.0ms | 8 256× | 73 | valid-baseline |
| 684.0ms | 8 256× | 73 | valid-rival |
| 634.0ms | 8 256× | 73 | valid-sollya |
ival-cos: 181.0ms (35.8% of total)ival-mult: 169.0ms (33.4% of total)ival-sqrt: 58.0ms (11.5% of total)ival-div: 50.0ms (9.9% of total)ival-add: 33.0ms (6.5% of total)ival-true: 8.0ms (1.6% of total)...in/eval/compile.rkt:110:19: 4.0ms (0.8% of total)ival-assert: 3.0ms (0.6% of total)ival-mult: 185.0ms (36% of total)ival-cos: 169.0ms (32.9% of total)ival-sqrt: 57.0ms (11.1% of total)ival-div: 53.0ms (10.3% of total)ival-add: 37.0ms (7.2% of total)const: 12.0ms (2.3% of total)| 1× | egg-herbie |
| 1 241× | fma-define |
| 680× | times-frac |
| 547× | fmm-def |
| 457× | div-sub |
| 352× | 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 | 5637 | 562 |
| 6 | 6570 | 562 |
| 7 | 7382 | 562 |
| 8 | 7458 | 562 |
| 9 | 7474 | 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 a1 a1 (*.f64 a2 a2)) (sqrt.f64 #s(literal 2 binary64)))) |
(*.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 a1 a1 (*.f64 a2 a2)) (sqrt.f64 #s(literal 2 binary64)))) |
(*.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 a1 a1 (*.f64 a2 a2)) (sqrt.f64 #s(literal 2 binary64)))) |
(*.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 a1 a1 (*.f64 a2 a2)) (sqrt.f64 #s(literal 2 binary64)))) |
(*.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 a1 a1 (*.f64 a2 a2)) (sqrt.f64 #s(literal 2 binary64)))) |
(*.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 a1 a1 (*.f64 a2 a2)) (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 a1 a1 (*.f64 a2 a2)) (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 a1 a1 (*.f64 a2 a2)) (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 a1 a1 (*.f64 a2 a2)) (sqrt.f64 #s(literal 2 binary64)))) |
(*.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)))) |
(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.6% | (+.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...