
Time bar (total: 6.4s)
| 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)
| 207.0ms | 244× | 1 | valid |
| 2.0ms | 16× | 0 | valid |
ival-cos: 68.0ms (34.7% of total)ival-sin: 59.0ms (30.1% of total)adjust: 18.0ms (9.2% of total)ival-mult: 17.0ms (8.7% of total)ival-sub: 8.0ms (4.1% of total)ival-sqrt: 7.0ms (3.6% of total)ival-div: 6.0ms (3.1% of total)ival-pow2: 5.0ms (2.6% of total)ival-atan2: 5.0ms (2.6% of total)ival-add: 2.0ms (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 |
|---|---|---|---|---|---|
| 75 | 113 | (-3.1814613456340935e-9 -2.470773402865629e-246 4.655914230607804e+67 -3.749913372253837e-41 -1.9438211169052316e-216) | 0 | - | (sin.f64 (/.f64 (-.f64 lambda1 lambda2) #s(literal 2 binary64))) |
| 75 | 114 | (8.99802177660935e+144 -2.119809365757819e+243 -2.8878089378019143e+209 2.0539687798418767e+57 1.4327813149184734e-292) | 0 | - | (sin.f64 (/.f64 (-.f64 phi1 phi2) #s(literal 2 binary64))) |
| 3 | 4 | (-3.3401179839068975e-6 1.1959105689887507e-83 1.1183387352111217e-91 1.9283017026009535e+91 2.2530124639109643e+53) | 0 | - | (-.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)))))) |
| 2 | 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 | - | (*.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 | - | (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 (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 | 189 | 1 |
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 | 21 |
+.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))))) | cancellation | 2 | 3 |
| Predicted + | Predicted - | |
|---|---|---|
| + | 124 | 0 |
| - | 118 | 14 |
| Predicted + | Predicted Maybe | Predicted - | |
|---|---|---|---|
| + | 124 | 0 | 0 |
| - | 118 | 0 | 14 |
| number | freq |
|---|---|
| 0 | 14 |
| 1 | 103 |
| 2 | 134 |
| 3 | 5 |
| Predicted + | Predicted Maybe | Predicted - | |
|---|---|---|---|
| + | 1 | 0 | 0 |
| - | 0 | 0 | 0 |
| 2.6s | 2 892× | 1 | valid |
| 31.0ms | 180× | 0 | valid |
Compiled 14 844 to 1 272 computations (91.4% saved)
ival-cos: 811.0ms (34.7% of total)ival-sin: 693.0ms (29.7% of total)adjust: 223.0ms (9.5% of total)ival-mult: 201.0ms (8.6% of total)ival-sub: 94.0ms (4% of total)ival-sqrt: 78.0ms (3.3% of total)ival-div: 76.0ms (3.3% of total)ival-pow2: 64.0ms (2.7% of total)ival-atan2: 64.0ms (2.7% of total)ival-add: 26.0ms (1.1% of total)exact: 4.0ms (0.2% of total)ival-true: 2.0ms (0.1% of total)ival-assert: 1.0ms (0% 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 |
|---|---|---|
| 61.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)))))))))) |
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...