
Time bar (total: 8.3s)
| 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)
| 171.0ms | 235× | 1 | valid |
| 4.0ms | 25× | 0 | valid |
ival-sin: 53.0ms (32.4% of total)ival-cos: 53.0ms (32.4% of total)ival-mult: 15.0ms (9.2% of total)adjust: 11.0ms (6.7% of total)ival-sub: 7.0ms (4.3% of total)ival-sqrt: 6.0ms (3.7% of total)ival-div: 6.0ms (3.7% of total)ival-atan2: 6.0ms (3.7% of total)ival-pow2: 5.0ms (3.1% of total)ival-add: 2.0ms (1.2% 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 |
|---|---|---|---|---|---|
| 79 | 106 | (-1.3959735936388587e+67 8.615286944815702e-98 -2.088335945683133e+88 -4.018519321886243e+291 4.244057442509283e-62) | 0 | - | (sin.f64 (/.f64 (-.f64 phi1 phi2) #s(literal 2 binary64))) |
| 76 | 118 | (-1.3959735936388587e+67 8.615286944815702e-98 -2.088335945683133e+88 -4.018519321886243e+291 4.244057442509283e-62) | 0 | - | (sin.f64 (/.f64 (-.f64 lambda1 lambda2) #s(literal 2 binary64))) |
| 14 | 0 | - | 2 | (-1.6294311690478434e-25 9.982117444334392e-13 3.2534168844740025e+283 -1.932799130345845e-261 -5.583756611254321e-237) | (-.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 | - | 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 | - | (+.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 | - | 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 lambda1 lambda2) #s(literal 2 binary64))) | sensitivity | 194 | 3 |
sin.f64 | (sin.f64 (/.f64 (-.f64 phi1 phi2) #s(literal 2 binary64))) | sensitivity | 185 | 1 |
-.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 | 12 | 11 |
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 | 13 | |
| ↳ | (*.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 | 13 | |
| ↳ | (+.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 - | |
|---|---|---|
| + | 135 | 0 |
| - | 106 | 15 |
| Predicted + | Predicted Maybe | Predicted - | |
|---|---|---|---|
| + | 135 | 0 | 0 |
| - | 106 | 2 | 13 |
| number | freq |
|---|---|
| 0 | 15 |
| 1 | 92 |
| 2 | 147 |
| 3 | 2 |
| Predicted + | Predicted Maybe | Predicted - | |
|---|---|---|---|
| + | 1 | 0 | 0 |
| - | 0 | 0 | 0 |
| 4.3s | 5 544× | 1 | valid |
| 109.0ms | 600× | 0 | valid |
Compiled 14 868 to 1 296 computations (91.3% saved)
ival-sin: 1.3s (32.6% of total)ival-cos: 1.2s (31.6% of total)ival-mult: 362.0ms (9.4% of total)adjust: 265.0ms (6.9% of total)ival-sub: 166.0ms (4.3% of total)ival-sqrt: 145.0ms (3.8% of total)ival-div: 137.0ms (3.6% of total)ival-atan2: 131.0ms (3.4% of total)ival-pow2: 113.0ms (2.9% of total)ival-add: 47.0ms (1.2% of total)exact: 7.0ms (0.2% of total)ival-true: 5.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 |
|---|---|---|
| 57.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...