Equirectangular approximation to distance on a great circle

Time bar (total: 2.3s)

start0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated

analyze0.0ms (0%)

Memory
0.1MiB live, 0.1MiB allocated
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)

sample36.0ms (1.5%)

Memory
3.0MiB live, 11.8MiB allocated
Samples
16.0ms202×0valid
11.0ms58×1valid
Precisions
Click to see histograms. Total time spent on operations: 19.0ms
ival-hypot: 4.0ms (20.6% of total)
ival-mult: 4.0ms (20.6% of total)
ival-sub: 3.0ms (15.4% of total)
ival-cos: 3.0ms (15.4% of total)
ival-div: 2.0ms (10.3% of total)
ival-add: 1.0ms (5.1% of total)
adjust: 1.0ms (5.1% of total)
ival-assert: 0.0ms (0% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)
Bogosity

explain2.1s (89.7%)

Memory
10.3MiB live, 1 327.4MiB allocated
FPErrors
Click to see full error table
Ground TruthOverpredictionsExampleUnderpredictionsExampleSubexpression
1750-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))))
62118(1.8874365599516237e-279 1.1356108677362649e-14 5.860397685507339e-195 3.616498352026143e-238 5.013743725418967e+93)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)))sensitivity1800
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-rescue1730
(*.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)))))overflow115
(+.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)))overflow173
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-rescue20
(*.f64 (-.f64 phi1 phi2) (-.f64 phi1 phi2))underflow14
(*.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)))))underflow19
(+.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)))underflow2
Confusion
Predicted +Predicted -
+1110
-10342
Precision
0.5186915887850467
Recall
1.0
Confusion?
Predicted +Predicted MaybePredicted -
+11100
-103042
Precision?
0.5186915887850467
Recall?
1.0
2:
4:
8:
16:
32:
64:
128:
256:
512:
1024:
2048:
Freqs
test
numberfreq
042
173
2141
Total Confusion?
Predicted +Predicted MaybePredicted -
+100
-000
Precision?
1.0
Recall?
1.0
Total Time
11.387939453125
Average Time
0.04448413848876953
Samples
604.0ms2 112×1valid
109.0ms960×0valid
Compiler

Compiled 5 988 to 840 computations (86% saved)

Precisions
Click to see histograms. Total time spent on operations: 526.0ms
ival-mult: 131.0ms (24.9% of total)
ival-cos: 128.0ms (24.3% of total)
ival-hypot: 74.0ms (14.1% of total)
adjust: 65.0ms (12.4% of total)
ival-sub: 45.0ms (8.6% of total)
ival-add: 45.0ms (8.6% of total)
ival-div: 34.0ms (6.5% of total)
ival-true: 2.0ms (0.4% of total)
exact: 2.0ms (0.4% of total)
ival-assert: 1.0ms (0.2% of total)

preprocess169.0ms (7.3%)

Memory
-1.2MiB live, 40.7MiB allocated
Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0149667
1357661
2923645
34473645
47816645
01732
02832
14332
28832
330232
4105532
5334832
6681232
0814916
Stop Event
iter limit
node limit
iter limit
node limit
Calls
Call 1
Inputs
(*.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)))))
Outputs
(*.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)))))
(*.f64 (hypot.f64 (-.f64 phi2 phi1) (*.f64 (cos.f64 (/.f64 (+.f64 phi2 phi1) #s(literal 2 binary64))) (-.f64 lambda1 lambda2))) R)
Symmetry

(negabs R)

(sort lambda1 lambda2)

(sort phi1 phi2)

Compiler

Compiled 32 to 17 computations (46.9% saved)

eval0.0ms (0%)

Memory
0.1MiB live, 0.1MiB allocated
Compiler

Compiled 0 to 5 computations (-∞% saved)

prune1.0ms (0%)

Memory
0.6MiB live, 0.6MiB allocated
Alt Table
Click to see full alt table
StatusAccuracyProgram
58.7%
(*.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)))))
Compiler

Compiled 64 to 34 computations (46.9% saved)

simplify20.0ms (0.9%)

Memory
2.9MiB live, 18.6MiB allocated
Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01732
12532
23332
33732
43932
Stop Event
saturated
Calls
Call 1
Inputs
(*.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)))))
Outputs
(*.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)))))
(*.f64 (sqrt.f64 (+.f64 (*.f64 (-.f64 phi1 phi2) (-.f64 phi1 phi2)) (*.f64 (*.f64 (cos.f64 (/.f64 (+.f64 phi2 phi1) #s(literal 2 binary64))) (-.f64 lambda1 lambda2)) (*.f64 (cos.f64 (/.f64 (+.f64 phi2 phi1) #s(literal 2 binary64))) (-.f64 lambda1 lambda2))))) R)

soundness0.0ms (0%)

Memory
0.2MiB live, 0.2MiB allocated
Stop Event
fuel
Compiler

Compiled 32 to 17 computations (46.9% saved)

preprocess13.0ms (0.5%)

Memory
-0.1MiB live, 7.7MiB allocated
Remove

(sort phi1 phi2)

(sort lambda1 lambda2)

(negabs R)

Compiler

Compiled 512 to 272 computations (46.9% saved)

end0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated

Profiling

Loading profile data...