Distance on a great circle

Time bar (total: 10.3s)

start0.0ms (0%)

Memory
0.2MiB live, 0.2MiB allocated; 0ms collecting garbage

analyze1.2s (11.5%)

Memory
5.7MiB live, 998.0MiB allocated; 103ms collecting garbage
Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
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
Compiler

Compiled 67 to 28 computations (58.2% saved)

sample8.3s (80.8%)

Memory
-155.8MiB live, 6 340.2MiB allocated; 1.6s collecting garbage
Samples
7.5s7 659×1valid
103.0ms597×0valid
Precisions
Click to see histograms. Total time spent on operations: 6.9s
ival-cos: 2.3s (33.4% of total)
ival-sin: 2.0s (28.7% of total)
adjust: 701.0ms (10.1% of total)
ival-mult: 629.0ms (9.1% of total)
ival-sub: 326.0ms (4.7% of total)
ival-div: 260.0ms (3.8% of total)
ival-sqrt: 252.0ms (3.6% of total)
ival-pow2: 180.0ms (2.6% of total)
ival-atan2: 179.0ms (2.6% of total)
ival-add: 73.0ms (1.1% of total)
exact: 12.0ms (0.2% of total)
ival-assert: 3.0ms (0% of total)
Bogosity

explain668.0ms (6.5%)

Memory
-6.0MiB live, 326.8MiB allocated; 14ms collecting garbage
FPErrors
Click to see full error table
Ground TruthOverpredictionsExampleUnderpredictionsExampleSubexpression
77118(-2.272085015838879e-126 12248418.61120417 4.846963621029378e-278 9.722387591845204e-85 -4.362614075667253e-216)0-(sin.f64 (/.f64 (-.f64 lambda1 lambda2) #s(literal 2 binary64)))
77120(1.959196990179298e-24 6.8668949744847685e+106 -1.328593829025062e+193 -27050611160.51599 5.482715880065918e-193)0-(sin.f64 (/.f64 (-.f64 phi1 phi2) #s(literal 2 binary64)))
92(1.8372837257538143e+248 1.175837571259679e+137 -4.816844277944744e+214 -8.614971447311396e-304 7.246883123101679e-231)2(-3.3196399368669075e-136 -1.8851349533688368e+90 -1.0198026545693904e-246 4.098472053382253e-128 -2.5406870478404008e+38)(-.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))))))
30-1(-6.341583206535372e+52 -1.3557713713084918e-155 -1.3203796204875093e-276 3.809703800364596e-240 -1.745074491626511e-239)(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))))))
10-1(-5.025592858920861e+109 -3.036659269336581e+220 -3.4432989330997037e-193 -3.676346517908125e+233 -1.4368575199681878e+44)(+.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)))))
00-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))))
00-0-lambda2
00-0-#s(literal 1 binary64)
00-0-phi2
00-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))))))))
00-0-(pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) #s(literal 2 binary64))) #s(literal 2 binary64))
00-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)))))))))
00-0-(*.f64 (cos.f64 phi1) (cos.f64 phi2))
00-0-(-.f64 lambda1 lambda2)
00-0-R
00-0-(cos.f64 phi2)
00-0-lambda1
00-0-phi1
00-0-(/.f64 (-.f64 lambda1 lambda2) #s(literal 2 binary64))
00-0-(*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) #s(literal 2 binary64))))
00-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)))))))
00-0-#s(literal 2 binary64)
00-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))))))))))
00-0-(/.f64 (-.f64 phi1 phi2) #s(literal 2 binary64))
00-0-(-.f64 phi1 phi2)
00-0-(cos.f64 phi1)
Explanations
Click to see full explanations table
OperatorSubexpressionExplanationCount
sin.f64(sin.f64 (/.f64 (-.f64 phi1 phi2) #s(literal 2 binary64)))sensitivity1970
sin.f64(sin.f64 (/.f64 (-.f64 lambda1 lambda2) #s(literal 2 binary64)))sensitivity1950
-.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))))))cancellation911
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-rescue20
(pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) #s(literal 2 binary64))) #s(literal 2 binary64))underflow12
(*.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))))underflow14
(+.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)))))underflow2
Confusion
Predicted +Predicted -
+1421
-10013
Precision
0.5867768595041323
Recall
0.993006993006993
Confusion?
Predicted +Predicted MaybePredicted -
+14201
-100013
Precision?
0.5867768595041323
Recall?
0.993006993006993
Freqs
test
numberfreq
014
184
2155
33
Total Confusion?
Predicted +Predicted MaybePredicted -
+100
-000
Precision?
1.0
Recall?
1.0
Samples
414.0ms476×1valid
6.0ms36×0valid
Compiler

Compiled 849 to 82 computations (90.3% saved)

Precisions
Click to see histograms. Total time spent on operations: 373.0ms
ival-cos: 125.0ms (33.5% of total)
ival-sin: 109.0ms (29.2% of total)
adjust: 37.0ms (9.9% of total)
ival-mult: 33.0ms (8.8% of total)
ival-sub: 15.0ms (4% of total)
ival-sqrt: 13.0ms (3.5% of total)
ival-div: 13.0ms (3.5% of total)
ival-atan2: 13.0ms (3.5% of total)
ival-pow2: 10.0ms (2.7% of total)
ival-add: 4.0ms (1.1% of total)
exact: 1.0ms (0.3% of total)
ival-true: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

preprocess120.0ms (1.2%)

Memory
31.7MiB live, 31.7MiB allocated; 0ms collecting garbage
Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02341374
15621369
215111369
351321369
02665
04565
18365
216765
348665
4143965
5483565
0842465
Stop Event
iter limit
node limit
iter limit
node limit

end0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated; 0ms collecting garbage

Profiling

Loading profile data...