
Time bar (total: 6.9s)
| 1× | search |
| Probability | Valid | Unknown | Precondition | Infinite | Domain | Can't | Iter |
|---|---|---|---|---|---|---|---|
| 0% | 0% | 99.8% | 0.2% | 0% | 0% | 0% | 0 |
| 0% | 0% | 99.8% | 0.2% | 0% | 0% | 0% | 1 |
| 0% | 0% | 99.8% | 0.2% | 0% | 0% | 0% | 2 |
| 0% | 0% | 99.8% | 0.2% | 0% | 0% | 0% | 3 |
| 0% | 0% | 99.8% | 0.2% | 0% | 0% | 0% | 4 |
| 0% | 0% | 99.8% | 0.2% | 0% | 0% | 0% | 5 |
| 0% | 0% | 99.8% | 0.2% | 0% | 0% | 0% | 6 |
| 0% | 0% | 99.8% | 0.2% | 0% | 0% | 0% | 7 |
| 0% | 0% | 99.8% | 0.2% | 0% | 0% | 0% | 8 |
| 0% | 0% | 99.8% | 0.2% | 0% | 0% | 0% | 9 |
| 0% | 0% | 99.8% | 0.2% | 0% | 0% | 0% | 10 |
| 0% | 0% | 99.8% | 0.2% | 0% | 0% | 0% | 11 |
| 0% | 0% | 99.8% | 0.2% | 0% | 0% | 0% | 12 |
Compiled 67 to 28 computations (58.2% saved)
| 184.0ms | 232× | 1 | valid |
| 5.0ms | 28× | 0 | valid |
ival-cos: 58.0ms (33.2% of total)ival-sin: 52.0ms (29.7% of total)ival-mult: 17.0ms (9.7% of total)adjust: 11.0ms (6.3% of total)ival-sub: 8.0ms (4.6% of total)ival-sqrt: 7.0ms (4% of total)ival-div: 7.0ms (4% of total)ival-pow2: 6.0ms (3.4% of total)ival-atan2: 6.0ms (3.4% of total)ival-add: 2.0ms (1.1% of total)ival-true: 0.0ms (0% of total)ival-assert: 0.0ms (0% of total)exact: 0.0ms (0% of total)| Ground Truth | Overpredictions | Example | Underpredictions | Example | Subexpression |
|---|---|---|---|---|---|
| 82 | 116 | (-1.3487337169289216e+166 5.742227908398197e-31 8.496614083528458e+204 -1.2721193781495218e-101 1.9689341136347636e+34) | 0 | - | (sin.f64 (/.f64 (-.f64 phi1 phi2) #s(literal 2 binary64))) |
| 71 | 117 | (-1.3487337169289216e+166 5.742227908398197e-31 8.496614083528458e+204 -1.2721193781495218e-101 1.9689341136347636e+34) | 0 | - | (sin.f64 (/.f64 (-.f64 lambda1 lambda2) #s(literal 2 binary64))) |
| 9 | 0 | - | 2 | (-1.3399535355030784e-73 2.1856516417779573e+275 4.600004965978298e+254 -1.4352447304123834e+261 3.5168329341188533e+167) | (-.f64 #s(literal 1 binary64) (+.f64 (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) #s(literal 2 binary64))) #s(literal 2 binary64)) (*.f64 (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) #s(literal 2 binary64)))) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) #s(literal 2 binary64)))))) |
| 1 | 0 | - | 1 | (-1.5550665791478977e-292 1.4147881536367542e-64 46473134280258240.0 2.317722889034898e+26 8.220913819176366e-251) | (+.f64 (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) #s(literal 2 binary64))) #s(literal 2 binary64)) (*.f64 (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) #s(literal 2 binary64)))) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) #s(literal 2 binary64))))) |
| 1 | 0 | - | 0 | - | (sqrt.f64 (+.f64 (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) #s(literal 2 binary64))) #s(literal 2 binary64)) (*.f64 (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) #s(literal 2 binary64)))) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) #s(literal 2 binary64)))))) |
| 0 | 0 | - | 0 | - | (*.f64 (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) #s(literal 2 binary64)))) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) #s(literal 2 binary64)))) |
| 0 | 0 | - | 0 | - | lambda2 |
| 0 | 0 | - | 0 | - | #s(literal 1 binary64) |
| 0 | 0 | - | 0 | - | phi2 |
| 0 | 0 | - | 0 | - | (atan2.f64 (sqrt.f64 (+.f64 (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) #s(literal 2 binary64))) #s(literal 2 binary64)) (*.f64 (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) #s(literal 2 binary64)))) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) #s(literal 2 binary64)))))) (sqrt.f64 (-.f64 #s(literal 1 binary64) (+.f64 (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) #s(literal 2 binary64))) #s(literal 2 binary64)) (*.f64 (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) #s(literal 2 binary64)))) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) #s(literal 2 binary64)))))))) |
| 0 | 0 | - | 0 | - | (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) #s(literal 2 binary64))) #s(literal 2 binary64)) |
| 0 | 0 | - | 0 | - | (*.f64 #s(literal 2 binary64) (atan2.f64 (sqrt.f64 (+.f64 (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) #s(literal 2 binary64))) #s(literal 2 binary64)) (*.f64 (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) #s(literal 2 binary64)))) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) #s(literal 2 binary64)))))) (sqrt.f64 (-.f64 #s(literal 1 binary64) (+.f64 (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) #s(literal 2 binary64))) #s(literal 2 binary64)) (*.f64 (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) #s(literal 2 binary64)))) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) #s(literal 2 binary64))))))))) |
| 0 | 0 | - | 0 | - | (*.f64 (cos.f64 phi1) (cos.f64 phi2)) |
| 0 | 0 | - | 0 | - | (-.f64 lambda1 lambda2) |
| 0 | 0 | - | 0 | - | R |
| 0 | 0 | - | 0 | - | (cos.f64 phi2) |
| 0 | 0 | - | 0 | - | lambda1 |
| 0 | 0 | - | 0 | - | phi1 |
| 0 | 0 | - | 0 | - | (/.f64 (-.f64 lambda1 lambda2) #s(literal 2 binary64)) |
| 0 | 0 | - | 0 | - | (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) #s(literal 2 binary64)))) |
| 0 | 0 | - | 0 | - | (sqrt.f64 (-.f64 #s(literal 1 binary64) (+.f64 (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) #s(literal 2 binary64))) #s(literal 2 binary64)) (*.f64 (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) #s(literal 2 binary64)))) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) #s(literal 2 binary64))))))) |
| 0 | 0 | - | 0 | - | #s(literal 2 binary64) |
| 0 | 0 | - | 0 | - | (*.f64 R (*.f64 #s(literal 2 binary64) (atan2.f64 (sqrt.f64 (+.f64 (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) #s(literal 2 binary64))) #s(literal 2 binary64)) (*.f64 (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) #s(literal 2 binary64)))) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) #s(literal 2 binary64)))))) (sqrt.f64 (-.f64 #s(literal 1 binary64) (+.f64 (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) #s(literal 2 binary64))) #s(literal 2 binary64)) (*.f64 (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) #s(literal 2 binary64)))) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) #s(literal 2 binary64)))))))))) |
| 0 | 0 | - | 0 | - | (/.f64 (-.f64 phi1 phi2) #s(literal 2 binary64)) |
| 0 | 0 | - | 0 | - | (-.f64 phi1 phi2) |
| 0 | 0 | - | 0 | - | (cos.f64 phi1) |
| Operator | Subexpression | Explanation | Count | |
|---|---|---|---|---|
sin.f64 | (sin.f64 (/.f64 (-.f64 phi1 phi2) #s(literal 2 binary64))) | sensitivity | 198 | 0 |
sin.f64 | (sin.f64 (/.f64 (-.f64 lambda1 lambda2) #s(literal 2 binary64))) | sensitivity | 188 | 0 |
-.f64 | (-.f64 #s(literal 1 binary64) (+.f64 (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) #s(literal 2 binary64))) #s(literal 2 binary64)) (*.f64 (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) #s(literal 2 binary64)))) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) #s(literal 2 binary64)))))) | cancellation | 7 | 8 |
sqrt.f64 | (sqrt.f64 (+.f64 (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) #s(literal 2 binary64))) #s(literal 2 binary64)) (*.f64 (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) #s(literal 2 binary64)))) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) #s(literal 2 binary64)))))) | uflow-rescue | 1 | 0 |
| ↳ | (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) #s(literal 2 binary64))) #s(literal 2 binary64)) | underflow | 12 | |
| ↳ | (*.f64 (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) #s(literal 2 binary64)))) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) #s(literal 2 binary64)))) | underflow | 17 | |
| ↳ | (+.f64 (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) #s(literal 2 binary64))) #s(literal 2 binary64)) (*.f64 (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) #s(literal 2 binary64)))) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) #s(literal 2 binary64))))) | underflow | 1 |
| Predicted + | Predicted - | |
|---|---|---|
| + | 131 | 0 |
| - | 111 | 14 |
| Predicted + | Predicted Maybe | Predicted - | |
|---|---|---|---|
| + | 131 | 0 | 0 |
| - | 111 | 0 | 14 |
| number | freq |
|---|---|
| 0 | 14 |
| 1 | 90 |
| 2 | 152 |
| Predicted + | Predicted Maybe | Predicted - | |
|---|---|---|---|
| + | 1 | 0 | 0 |
| - | 0 | 0 | 0 |
| 2.3s | 2 748× | 1 | valid |
| 70.0ms | 324× | 0 | valid |
Compiled 14 844 to 1 272 computations (91.4% saved)
ival-cos: 679.0ms (32.9% of total)ival-sin: 614.0ms (29.7% of total)ival-mult: 206.0ms (10% of total)adjust: 133.0ms (6.4% of total)ival-sub: 97.0ms (4.7% of total)ival-sqrt: 81.0ms (3.9% of total)ival-div: 78.0ms (3.8% of total)ival-atan2: 72.0ms (3.5% of total)ival-pow2: 68.0ms (3.3% of total)ival-add: 28.0ms (1.4% of total)exact: 5.0ms (0.2% of total)ival-true: 3.0ms (0.1% of total)ival-assert: 2.0ms (0.1% of total)| 1× | egg-herbie |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 233 | 1311 |
| 1 | 544 | 1304 |
| 2 | 1353 | 1304 |
| 3 | 3532 | 1280 |
| 4 | 6186 | 1272 |
| 0 | 26 | 65 |
| 0 | 45 | 65 |
| 1 | 74 | 65 |
| 2 | 132 | 65 |
| 3 | 273 | 65 |
| 4 | 523 | 65 |
| 5 | 873 | 65 |
| 6 | 1345 | 65 |
| 7 | 1637 | 65 |
| 8 | 2167 | 65 |
| 9 | 2949 | 65 |
| 10 | 4120 | 65 |
| 11 | 4386 | 65 |
| 12 | 4527 | 65 |
| 13 | 4587 | 65 |
| 14 | 4611 | 65 |
| 15 | 4780 | 65 |
| 16 | 5221 | 65 |
| 17 | 5310 | 65 |
| 18 | 5310 | 65 |
| 19 | 5318 | 65 |
| 20 | 6371 | 65 |
| 0 | 8561 | 63 |
| 1× | iter limit |
| 1× | node limit |
| 1× | iter limit |
| 1× | node limit |
| Inputs |
|---|
(*.f64 R (*.f64 #s(literal 2 binary64) (atan2.f64 (sqrt.f64 (+.f64 (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) #s(literal 2 binary64))) #s(literal 2 binary64)) (*.f64 (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) #s(literal 2 binary64)))) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) #s(literal 2 binary64)))))) (sqrt.f64 (-.f64 #s(literal 1 binary64) (+.f64 (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) #s(literal 2 binary64))) #s(literal 2 binary64)) (*.f64 (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) #s(literal 2 binary64)))) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) #s(literal 2 binary64)))))))))) |
| Outputs |
|---|
(*.f64 R (*.f64 #s(literal 2 binary64) (atan2.f64 (sqrt.f64 (+.f64 (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) #s(literal 2 binary64))) #s(literal 2 binary64)) (*.f64 (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) #s(literal 2 binary64)))) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) #s(literal 2 binary64)))))) (sqrt.f64 (-.f64 #s(literal 1 binary64) (+.f64 (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) #s(literal 2 binary64))) #s(literal 2 binary64)) (*.f64 (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) #s(literal 2 binary64)))) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) #s(literal 2 binary64)))))))))) |
(*.f64 (*.f64 #s(literal 2 binary64) R) (atan2.f64 (sqrt.f64 (fma.f64 (*.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) (-.f64 lambda2 lambda1))) (cos.f64 phi2)) (*.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) (-.f64 lambda2 lambda1))) (cos.f64 phi1)) (pow.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) (-.f64 phi1 phi2))) #s(literal 2 binary64)))) (sqrt.f64 (-.f64 (fma.f64 (*.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) (-.f64 lambda2 lambda1))) (cos.f64 phi2)) (*.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) (-.f64 lambda1 lambda2))) (cos.f64 phi1)) #s(literal 1 binary64)) (pow.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) (-.f64 phi1 phi2))) #s(literal 2 binary64)))))) |
(negabs R)
Compiled 65 to 26 computations (60% saved)
Compiled 0 to 5 computations (-∞% saved)
| Status | Accuracy | Program |
|---|---|---|
| 59.8% | (*.f64 R (*.f64 #s(literal 2 binary64) (atan2.f64 (sqrt.f64 (+.f64 (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) #s(literal 2 binary64))) #s(literal 2 binary64)) (*.f64 (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) #s(literal 2 binary64)))) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) #s(literal 2 binary64)))))) (sqrt.f64 (-.f64 #s(literal 1 binary64) (+.f64 (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) #s(literal 2 binary64))) #s(literal 2 binary64)) (*.f64 (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) #s(literal 2 binary64)))) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) #s(literal 2 binary64)))))))))) |
Compiled 130 to 52 computations (60% saved)
| 1× | egg-herbie |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 26 | 65 |
| 1 | 41 | 65 |
| 2 | 55 | 65 |
| 3 | 73 | 65 |
| 4 | 89 | 65 |
| 5 | 103 | 65 |
| 6 | 111 | 65 |
| 7 | 116 | 65 |
| 8 | 118 | 65 |
| 1× | saturated |
| Inputs |
|---|
(*.f64 R (*.f64 #s(literal 2 binary64) (atan2.f64 (sqrt.f64 (+.f64 (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) #s(literal 2 binary64))) #s(literal 2 binary64)) (*.f64 (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) #s(literal 2 binary64)))) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) #s(literal 2 binary64)))))) (sqrt.f64 (-.f64 #s(literal 1 binary64) (+.f64 (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) #s(literal 2 binary64))) #s(literal 2 binary64)) (*.f64 (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) #s(literal 2 binary64)))) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) #s(literal 2 binary64)))))))))) |
| Outputs |
|---|
(*.f64 R (*.f64 #s(literal 2 binary64) (atan2.f64 (sqrt.f64 (+.f64 (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) #s(literal 2 binary64))) #s(literal 2 binary64)) (*.f64 (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) #s(literal 2 binary64)))) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) #s(literal 2 binary64)))))) (sqrt.f64 (-.f64 #s(literal 1 binary64) (+.f64 (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) #s(literal 2 binary64))) #s(literal 2 binary64)) (*.f64 (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) #s(literal 2 binary64)))) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) #s(literal 2 binary64)))))))))) |
(*.f64 (*.f64 (atan2.f64 (sqrt.f64 (+.f64 (*.f64 (*.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) #s(literal 2 binary64))) (*.f64 (cos.f64 phi2) (cos.f64 phi1))) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) #s(literal 2 binary64)))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) #s(literal 2 binary64))) #s(literal 2 binary64)))) (sqrt.f64 (-.f64 #s(literal 1 binary64) (+.f64 (*.f64 (*.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) #s(literal 2 binary64))) (*.f64 (cos.f64 phi2) (cos.f64 phi1))) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) #s(literal 2 binary64)))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) #s(literal 2 binary64))) #s(literal 2 binary64)))))) #s(literal 2 binary64)) R) |
| 1× | fuel |
Compiled 65 to 26 computations (60% saved)
(negabs R)
Compiled 520 to 208 computations (60% saved)
Loading profile data...