Equirectangular approximation to distance on a great circle

Time bar (total: 1.9s)

start0.0ms (0%)

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

analyze1.0ms (0%)

Memory
0.6MiB live, 0.6MiB allocated; 0ms collecting garbage
Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%99.8%0.2%0%0%0%0
100%99.8%0%0.2%0%0%0%1
Compiler

Compiled 34 to 16 computations (52.9% saved)

sample1.5s (78%)

Memory
56.8MiB live, 1 595.4MiB allocated; 298ms collecting garbage
Samples
690.0ms6 442×0valid
420.0ms1 814×1valid
Precisions
Click to see histograms. Total time spent on operations: 822.0ms
ival-hypot: 169.0ms (20.6% of total)
ival-div: 143.0ms (17.4% of total)
ival-mult: 127.0ms (15.5% of total)
ival-cos: 122.0ms (14.8% of total)
ival-sub: 118.0ms (14.4% of total)
adjust: 80.0ms (9.7% of total)
ival-add: 54.0ms (6.6% of total)
exact: 6.0ms (0.7% of total)
ival-assert: 3.0ms (0.4% of total)
Bogosity

explain326.0ms (16.7%)

Memory
-21.3MiB live, 461.7MiB allocated; 65ms collecting garbage
FPErrors
Click to see full error table
Ground TruthOverpredictionsExampleUnderpredictionsExampleSubexpression
1760-0-(sqrt.f64 (+.f64 (*.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) #s(literal 2 binary64)))) (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) #s(literal 2 binary64))))) (*.f64 (-.f64 phi1 phi2) (-.f64 phi1 phi2))))
52138(6.073636348979847e-17 6.947180726169075e-8 2.1788052402726058e-232 2.243695763253903e+65 2.2535108584550506e-169)0-(cos.f64 (/.f64 (+.f64 phi1 phi2) #s(literal 2 binary64)))
00-0-(*.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) #s(literal 2 binary64)))) (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) #s(literal 2 binary64)))))
00-0-lambda2
00-0-(+.f64 phi1 phi2)
00-0-phi2
00-0-(+.f64 (*.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) #s(literal 2 binary64)))) (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) #s(literal 2 binary64))))) (*.f64 (-.f64 phi1 phi2) (-.f64 phi1 phi2)))
00-0-(-.f64 lambda1 lambda2)
00-0-(*.f64 (-.f64 phi1 phi2) (-.f64 phi1 phi2))
00-0-R
00-0-lambda1
00-0-phi1
00-0-(*.f64 R (sqrt.f64 (+.f64 (*.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) #s(literal 2 binary64)))) (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) #s(literal 2 binary64))))) (*.f64 (-.f64 phi1 phi2) (-.f64 phi1 phi2)))))
00-0-#s(literal 2 binary64)
00-0-(/.f64 (+.f64 phi1 phi2) #s(literal 2 binary64))
00-0-(-.f64 phi1 phi2)
00-0-(*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) #s(literal 2 binary64))))
Explanations
Click to see full explanations table
OperatorSubexpressionExplanationCount
cos.f64(cos.f64 (/.f64 (+.f64 phi1 phi2) #s(literal 2 binary64)))sensitivity1900
sqrt.f64(sqrt.f64 (+.f64 (*.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) #s(literal 2 binary64)))) (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) #s(literal 2 binary64))))) (*.f64 (-.f64 phi1 phi2) (-.f64 phi1 phi2))))oflow-rescue1750
(*.f64 (-.f64 phi1 phi2) (-.f64 phi1 phi2))overflow109
(*.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) #s(literal 2 binary64)))) (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) #s(literal 2 binary64)))))overflow121
(+.f64 (*.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) #s(literal 2 binary64)))) (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) #s(literal 2 binary64))))) (*.f64 (-.f64 phi1 phi2) (-.f64 phi1 phi2)))overflow175
sqrt.f64(sqrt.f64 (+.f64 (*.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) #s(literal 2 binary64)))) (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) #s(literal 2 binary64))))) (*.f64 (-.f64 phi1 phi2) (-.f64 phi1 phi2))))uflow-rescue10
(*.f64 (-.f64 phi1 phi2) (-.f64 phi1 phi2))underflow13
(*.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) #s(literal 2 binary64)))) (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) #s(literal 2 binary64)))))underflow9
(+.f64 (*.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) #s(literal 2 binary64)))) (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) #s(literal 2 binary64))))) (*.f64 (-.f64 phi1 phi2) (-.f64 phi1 phi2)))underflow1
Confusion
Predicted +Predicted -
+1110
-10639
Precision
0.511520737327189
Recall
1.0
Confusion?
Predicted +Predicted MaybePredicted -
+11100
-106039
Precision?
0.511520737327189
Recall?
1.0
Freqs
test
numberfreq
039
168
2149
Total Confusion?
Predicted +Predicted MaybePredicted -
+100
-000
Precision?
1.0
Recall?
1.0
Samples
151.0ms376×1valid
19.0ms136×0valid
Compiler

Compiled 346 to 55 computations (84.1% saved)

Precisions
Click to see histograms. Total time spent on operations: 135.0ms
ival-mult: 39.0ms (28.8% of total)
ival-cos: 26.0ms (19.2% of total)
adjust: 25.0ms (18.5% of total)
ival-add: 15.0ms (11.1% of total)
ival-hypot: 14.0ms (10.4% of total)
ival-sub: 9.0ms (6.7% of total)
ival-div: 6.0ms (4.4% of total)
ival-true: 1.0ms (0.7% of total)
ival-assert: 0.0ms (0% of total)
exact: 0.0ms (0% of total)

preprocess101.0ms (5.2%)

Memory
-6.2MiB live, 84.8MiB allocated; 10ms collecting garbage
Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0150701
1503701
21661701
35246701
01732
02832
16032
216332
346332
4126832
5327832
0825432
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...