Details

sample7.2m (39.2%)

Algorithm
78×intervals
Results
3.0m25814×body10240exit
1.7m44166×body1280valid
37.5s30015×body640valid
27.5s202470×body80valid
20.4s152484×body80nan
17.0s27642×body320valid
14.9s36258×body160valid
11.3s162500×pre80true
3.5s3133×body2560valid
1.8s7984×body160nan
1.2s4071×pre10240exit
298.0ms246×body5120valid

prune6.0m (32.5%)

simplify3.7m (20.0%)

series47.6s (4.3%)

Calls

468 calls:

4.0s
(/ (+ (* (* (cos phi2) (+ (* (sin lambda2) (sin lambda1)) (* (cos lambda1) (cos lambda2)))) (* (* (cos phi2) (+ (* (sin lambda2) (sin lambda1)) (* (cos lambda1) (cos lambda2)))) (* (cos phi2) (+ (* (sin lambda2) (sin lambda1)) (* (cos lambda1) (cos lambda2)))))) (* (cos phi1) (* (cos phi1) (cos phi1)))) (+ (* (* (cos phi2) (+ (* (sin lambda2) (sin lambda1)) (* (cos lambda1) (cos lambda2)))) (- (* (cos phi2) (+ (* (sin lambda2) (sin lambda1)) (* (cos lambda1) (cos lambda2)))) (cos phi1))) (* (cos phi1) (cos phi1))))
867.0ms
(sqrt (+ (* (- phi1 phi2) (- phi1 phi2)) (* (* (* (- lambda1 lambda2) (cos (/ (+ phi1 phi2) 2))) (* (* (cbrt (cos (/ (+ phi1 phi2) 2))) (cbrt (cos (/ (+ phi1 phi2) 2)))) (- lambda1 lambda2))) (cbrt (* (cbrt (cos (/ (+ phi1 phi2) 2))) (* (cbrt (cos (/ (+ phi1 phi2) 2))) (cbrt (cos (/ (+ phi1 phi2) 2)))))))))
834.0ms
(cbrt (* (+ (* (- phi1 phi2) (- phi1 phi2)) (* (* (* (- lambda1 lambda2) (cos (/ (+ phi1 phi2) 2))) (* (* (cbrt (cos (/ (+ phi1 phi2) 2))) (cbrt (cos (/ (+ phi1 phi2) 2)))) (- lambda1 lambda2))) (cbrt (* (cbrt (cos (/ (+ phi1 phi2) 2))) (* (cbrt (cos (/ (+ phi1 phi2) 2))) (cbrt (cos (/ (+ phi1 phi2) 2)))))))) (sqrt (+ (* (- phi1 phi2) (- phi1 phi2)) (* (* (* (- lambda1 lambda2) (cos (/ (+ phi1 phi2) 2))) (* (* (cbrt (cos (/ (+ phi1 phi2) 2))) (cbrt (cos (/ (+ phi1 phi2) 2)))) (- lambda1 lambda2))) (cbrt (* (cbrt (cos (/ (+ phi1 phi2) 2))) (* (cbrt (cos (/ (+ phi1 phi2) 2))) (cbrt (cos (/ (+ phi1 phi2) 2)))))))))))
568.0ms
(sqrt (+ (* (* (- lambda1 lambda2) (cos (/ (+ phi1 phi2) 2))) (* (- lambda1 lambda2) (cos (/ (+ phi1 phi2) 2)))) (* (- phi1 phi2) (- phi1 phi2))))
540.0ms
(sqrt (+ (* (* (- lambda1 lambda2) (cos (/ (+ phi1 phi2) 2))) (* (* (- lambda1 lambda2) (* (cbrt (cos (/ (+ phi1 phi2) 2))) (cbrt (cos (/ (+ phi1 phi2) 2))))) (cbrt (cos (/ (+ phi1 phi2) 2))))) (* (- phi1 phi2) (- phi1 phi2))))

rewrite18.7s (1.7%)

Algorithm
145×rewrite-expression-head
Calls

468 calls:

1.2s
(/ (+ (* (* (cos phi2) (+ (* (sin lambda2) (sin lambda1)) (* (cos lambda1) (cos lambda2)))) (* (* (cos phi2) (+ (* (sin lambda2) (sin lambda1)) (* (cos lambda1) (cos lambda2)))) (* (cos phi2) (+ (* (sin lambda2) (sin lambda1)) (* (cos lambda1) (cos lambda2)))))) (* (cos phi1) (* (cos phi1) (cos phi1)))) (+ (* (* (cos phi2) (+ (* (sin lambda2) (sin lambda1)) (* (cos lambda1) (cos lambda2)))) (- (* (cos phi2) (+ (* (sin lambda2) (sin lambda1)) (* (cos lambda1) (cos lambda2)))) (cos phi1))) (* (cos phi1) (cos phi1))))
619.0ms
(cbrt (* (+ (* (- phi1 phi2) (- phi1 phi2)) (* (* (* (- lambda1 lambda2) (cos (/ (+ phi1 phi2) 2))) (* (* (cbrt (cos (/ (+ phi1 phi2) 2))) (cbrt (cos (/ (+ phi1 phi2) 2)))) (- lambda1 lambda2))) (cbrt (* (cbrt (cos (/ (+ phi1 phi2) 2))) (* (cbrt (cos (/ (+ phi1 phi2) 2))) (cbrt (cos (/ (+ phi1 phi2) 2)))))))) (sqrt (+ (* (- phi1 phi2) (- phi1 phi2)) (* (* (* (- lambda1 lambda2) (cos (/ (+ phi1 phi2) 2))) (* (* (cbrt (cos (/ (+ phi1 phi2) 2))) (cbrt (cos (/ (+ phi1 phi2) 2)))) (- lambda1 lambda2))) (cbrt (* (cbrt (cos (/ (+ phi1 phi2) 2))) (* (cbrt (cos (/ (+ phi1 phi2) 2))) (cbrt (cos (/ (+ phi1 phi2) 2)))))))))))
572.0ms
(sqrt (+ (* (* (- lambda1 lambda2) (cos (/ (+ phi1 phi2) 2))) (* (* (- lambda1 lambda2) (* (cbrt (cos (/ (+ phi1 phi2) 2))) (cbrt (cos (/ (+ phi1 phi2) 2))))) (cbrt (* (* (cbrt (cos (/ (+ phi1 phi2) 2))) (cbrt (cos (/ (+ phi1 phi2) 2)))) (cbrt (cos (/ (+ phi1 phi2) 2))))))) (* (- phi1 phi2) (- phi1 phi2))))
485.0ms
(sqrt (+ (* (* (- lambda1 lambda2) (cos (/ (+ phi1 phi2) 2))) (* (* (- lambda1 lambda2) (* (cbrt (cos (/ (+ phi1 phi2) 2))) (cbrt (cos (/ (+ phi1 phi2) 2))))) (cbrt (cos (/ (+ phi1 phi2) 2))))) (* (- phi1 phi2) (- phi1 phi2))))
400.0ms
(* (* (/ (* -2 (/ (* a c) b)) a) (/ (* -2 (/ (* a c) b)) a)) (/ (* -2 (/ (* a c) b)) a))
Rules
20181×associate-*l/
13587×flip--
13586×flip3--
13575×frac-times
11492×associate-*r/
8988×frac-add
5935×add-exp-log
5066×sqrt-div
4861×add-sqr-sqrt
4844×*-un-lft-identity
4715×cbrt-div
4520×times-frac
4294×add-cbrt-cube
2931×add-cube-cbrt
2580×prod-exp
2161×div-exp
1721×cbrt-unprod
1379×cbrt-undiv
1258×pow1
1095×sqrt-prod
730×associate-*r*
728×add-log-exp
726×difference-of-squares
702×associate-*l*
701×pow-exp
501×associate-/r*
468×insert-posit16
465×flip-+
464×flip3-+
441×distribute-lft-out
362×associate-/l*
357×distribute-lft-out--
352×pow-to-exp
328×log-prod
304×associate-/r/
286×div-inv
272×pow-prod-down
255×cbrt-prod
214×1-exp rec-exp
211×swap-sqr
193×unswap-sqr
159×associate-/l/
153×difference-of-sqr-1
146×cos-mult
122×*-commutative
105×pow-prod-up
102×sub-neg
97×frac-2neg clear-num
84×diff-log
82×sin-mult
67×pow-plus
65×unpow-prod-down
64×log-pow
60×frac-sub
56×sum-log
51×sqrt-pow1 pow1/2
49×pow-flip
47×pow1/3
46×distribute-lft-in distribute-rgt-in pow-sqr
44×inv-pow log-div
41×rem-sqrt-square
36×rem-log-exp
34×exp-prod
33×associate-+r+
32×pow2
31×div-sub
30×+-commutative
29×associate-+l+
27×associate--l+
20×sum-cubes tan-quot
18×cos-diff
17×sqr-pow cube-mult
16×sin-cos-mult
15×pow3
14×sin-diff
13×cos-sum
11×associate--l- sqrt-undiv
10×associate--r+ acos-asin distribute-rgt-out
pow-unpow un-div-inv
distribute-rgt-out-- cube-unmult pow-pow associate-+l-
associate-+r- rem-exp-log rem-cbrt-cube
sin-sum sqrt-unprod exp-to-pow sub-div
distribute-frac-neg distribute-rgt-neg-out log-rec distribute-rgt-neg-in acos-neg distribute-lft-neg-in distribute-rgt1-in
rem-cube-cbrt pow-div exp-diff exp-sum
remove-posit16 cube-prod unsub-neg unpow3 tanh-undef tanh-def neg-mul-1 asin-acos rem-square-sqrt e-exp-1

regimes18.6s (1.7%)

Accuracy

Total 63.6b remaining (31%)

Threshold costs 5.8b (2.8%)

9.9b44.7%Equirectangular approximation to distance on a great circle
7.0b48.1%Quadratic roots, narrow range
7.0b47.3%Cubic critical, narrow range
6.2b3.2%Cubic critical, medium range
5.8b12.1%Quadratic roots, medium range

localize5.8s (0.5%)

bsearch842.0ms (0.1%)

end1.0ms (0.0%)