Equirectangular approximation to distance on a great circle

Time bar (total: 2.4s)

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)

sample37.0ms (1.5%)

Memory
3.4MiB live, 12.3MiB allocated
Samples
15.0ms194×0valid
13.0ms66×1valid
Precisions
Click to see histograms. Total time spent on operations: 20.0ms
ival-hypot: 4.0ms (19.9% of total)
ival-mult: 4.0ms (19.9% of total)
adjust: 3.0ms (14.9% of total)
ival-cos: 3.0ms (14.9% of total)
ival-div: 2.0ms (9.9% of total)
ival-sub: 2.0ms (9.9% of total)
ival-add: 1.0ms (5% of total)
ival-assert: 0.0ms (0% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)
Bogosity

explain2.2s (89.7%)

Memory
12.0MiB live, 1 339.1MiB allocated
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))))
70128(6.899880368525531e+237 2.4595443345718926e+243 1.8240907582600852e-104 -2.6779369046873594e-170 -983057321340.8853)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)))sensitivity1980
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-rescue1760
(*.f64 (-.f64 phi1 phi2) (-.f64 phi1 phi2))overflow111
(*.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)))))overflow118
(+.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)))overflow176
Confusion
Predicted +Predicted -
+1070
-11831
Precision
0.47555555555555556
Recall
1.0
Confusion?
Predicted +Predicted MaybePredicted -
+10700
-118031
Precision?
0.47555555555555556
Recall?
1.0
2:
4:
8:
16:
32:
64:
128:
256:
512:
1024:
2048:
Freqs
test
numberfreq
031
176
2149
Total Confusion?
Predicted +Predicted MaybePredicted -
+100
-000
Precision?
1.0
Recall?
1.0
Total Time
11.302490234375
Average Time
0.044150352478027344
Samples
696.0ms2 328×1valid
82.0ms744×0valid
Compiler

Compiled 5 988 to 840 computations (86% saved)

Precisions
Click to see histograms. Total time spent on operations: 588.0ms
ival-cos: 139.0ms (23.6% of total)
ival-mult: 133.0ms (22.6% of total)
adjust: 112.0ms (19% of total)
ival-hypot: 74.0ms (12.6% of total)
ival-sub: 45.0ms (7.7% of total)
ival-add: 45.0ms (7.7% of total)
ival-div: 34.0ms (5.8% of total)
ival-true: 2.0ms (0.3% of total)
exact: 2.0ms (0.3% of total)
ival-assert: 1.0ms (0.2% of total)

preprocess164.0ms (6.8%)

Memory
4.6MiB 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
60.2%
(*.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)

simplify31.0ms (1.3%)

Memory
-10.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)

preprocess14.0ms (0.6%)

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...