Details

sample6.3m (37.9%)

Algorithm
78×intervals
Results
2.1m21229×body10240exit
1.7m43883×body1280valid
37.7s30599×body640valid
24.1s202294×body80valid
16.3s27969×body320valid
15.9s153192×body80nan
12.1s36016×body160valid
10.1s158431×pre80true
2.8s3051×body2560valid
1.1s7749×body160nan
605.0ms4156×pre10240exit
290.0ms8242×pre80false
279.0ms245×body5120valid
5.0msbody640nan

simplify5.5m (33.5%)

prune2.0m (12.3%)

series1.4m (8.6%)

Calls

471 calls:

4.1s
(sqrt (+ (+ (* (pow lambda1 2) (+ (* (pow (sin (* 0.5 phi2)) 2) (pow (sin (* 0.5 phi1)) 2)) (* (pow (cos (* 0.5 phi1)) 2) (pow (cos (* 0.5 phi2)) 2)))) (- (* (pow lambda2 2) (pow (cos (* 0.5 (+ phi2 phi1))) 2)) (* 2 (+ (* (cos (* 0.5 phi1)) (* (sin (* 0.5 phi1)) (* (cos (* 0.5 phi2)) (* (sin (* 0.5 phi2)) (pow lambda1 2))))) (* lambda2 (* (pow (cos (* 0.5 (+ phi2 phi1))) 2) lambda1)))))) (* (- phi1 phi2) (- phi1 phi2))))
2.7s
(+ (pow (cos phi1) 3) (pow (* (cos phi2) (+ (* (cos lambda1) (cos lambda2)) (* (sin lambda2) (sin lambda1)))) 3))
1.7s
(sqrt (+ (- (+ (* (pow lambda2 2) (pow (cos (* 0.5 (+ phi2 phi1))) 2)) (* (pow (- (* (cos (* 0.5 phi2)) (cos (* 0.5 phi1))) (* (sin (* 0.5 phi2)) (sin (* 0.5 phi1)))) 2) (pow lambda1 2))) (* 2 (* lambda2 (* (pow (cos (* 0.5 (+ phi2 phi1))) 2) lambda1)))) (* (- phi1 phi2) (- phi1 phi2))))
1.6s
(/ (- (* (cos delta) (cos delta)) (* (* (sin (asin (+ (* (sin phi1) (cos delta)) (* (* (cos phi1) (sin delta)) (cos theta))))) (sin (asin (+ (* (sin phi1) (cos delta)) (* (* (cos phi1) (sin delta)) (cos theta)))))) (pow (sin phi1) 2))) (+ (cos delta) (* (sin phi1) (sin (asin (+ (* (sin phi1) (cos delta)) (* (* (cos phi1) (sin delta)) (cos theta))))))))
1.1s
(/ (- (* (* (/ x (+ x 1.0)) (/ x (+ x 1.0))) (* (/ x (+ x 1.0)) (/ x (+ x 1.0)))) (* (* (/ (+ x 1.0) (- x 1.0)) (/ (+ x 1.0) (- x 1.0))) (* (/ (+ x 1.0) (- x 1.0)) (/ (+ x 1.0) (- x 1.0))))) (* (+ (/ x (+ x 1.0)) (/ (+ x 1.0) (- x 1.0))) (+ (* (/ x (+ x 1.0)) (/ x (+ x 1.0))) (* (/ (+ x 1.0) (- x 1.0)) (/ (+ x 1.0) (- x 1.0))))))

rewrite40.9s (4.1%)

Algorithm
144×rewrite-expression-head
Calls

471 calls:

2.0s
(- (pow (cos delta) 2) (+ (* (pow (sin phi1) 3) (* (cos phi1) (* (cos delta) (* (sin delta) (cos theta))))) (+ (* (pow (sin phi1) 2) (* (pow (cos phi1) 2) (* (pow (cos theta) 2) (pow (sin delta) 2)))) (+ (* (pow (sin phi1) 4) (pow (cos delta) 2)) (* (pow (sin phi1) 3) (* (cos phi1) (* (sin delta) (* (cos delta) (cos theta)))))))))
885.0ms
(/ (- (* (* (/ x (+ x 1.0)) (/ x (+ x 1.0))) (* (/ x (+ x 1.0)) (/ x (+ x 1.0)))) (* (* (/ (+ x 1.0) (- x 1.0)) (/ (+ x 1.0) (- x 1.0))) (* (/ (+ x 1.0) (- x 1.0)) (/ (+ x 1.0) (- x 1.0))))) (* (+ (/ x (+ x 1.0)) (/ (+ x 1.0) (- x 1.0))) (+ (* (/ x (+ x 1.0)) (/ x (+ x 1.0))) (* (/ (+ x 1.0) (- x 1.0)) (/ (+ x 1.0) (- x 1.0))))))
856.0ms
(- (- (/ 0.125 (pow x 3)) (/ 0.5 x)) (/ 0.0625 (pow x 5)))
743.0ms
(* (* (- (/ m (/ v (- 1.0 m))) 1.0) (+ (sqrt 1.0) (sqrt m))) (- (sqrt 1.0) (sqrt m)))
684.0ms
(* (- (- (* 1.0 (/ m v)) (/ (pow m 2) v)) 1.0) (- 1.0 m))
Rules
7974×times-frac
7890×*-un-lft-identity
6914×add-sqr-sqrt
4205×add-cube-cbrt
3848×add-exp-log
2039×add-cbrt-cube
1507×prod-exp
1351×frac-times
1293×distribute-lft-out--
1270×div-exp
1234×pow1
1117×difference-of-squares
977×associate-*l/
965×associate-*r*
942×associate-*r/
876×associate-/l*
774×unpow-prod-down
750×add-log-exp
743×sqrt-prod
736×distribute-lft-out
630×pow-exp
597×associate-*l*
580×cbrt-unprod
495×cbrt-undiv frac-sub
458×flip--
457×flip3--
450×pow-to-exp
444×distribute-rgt-neg-in
433×associate-/r*
388×distribute-rgt-out--
360×cube-prod
357×div-inv
346×cbrt-prod
343×associate-/l/
320×associate-/r/
288×distribute-lft-neg-in
284×log-prod
267×pow-prod-down
254×sqrt-div
244×frac-add
215×unswap-sqr
208×sqr-pow
204×flip-+
203×flip3-+
187×swap-sqr
181×exp-prod
121×pow-prod-up
117×*-commutative
112×sub-neg
99×clear-num log-pow frac-2neg
96×neg-mul-1
93×diff-log
91×pow-sqr
65×sqrt-pow1
63×pow-unpow
62×unpow3 1-exp cube-mult rec-exp cbrt-div
56×pow-plus
50×div-sub
49×pow1/2 distribute-rgt-in distribute-lft-in
47×sum-log
46×distribute-rgt-out
45×pow2
43×log-div
38×unpow2
36×pow1/3
34×tan-quot
30×rem-sqrt-square
29×+-commutative
25×cube-div cos-sum rem-log-exp pow-pow
22×neg-sub0
20×sin-mult
19×associate--l-
18×sin-diff
17×rem-cube-cbrt sin-sum
16×sin-cos-mult distribute-lft1-in acos-asin neg-log associate--l+
15×cos-diff
14×distribute-rgt1-in exp-sum associate-+l- exp-to-pow
10×count-2
cos-mult
associate-+r-
associate-+r+ associate--r- associate--r+
sin-neg distribute-lft-neg-out sub-div rem-cbrt-cube
un-div-inv
acos-neg exp-neg distribute-frac-neg tanh-def
exp-diff pow-flip
asin-acos distribute-rgt-neg-out
difference-cubes sum-cubes rem-exp-log sqrt-unprod inv-pow sqr-sin unsub-neg rem-square-sqrt log-rec tanh-undef sqr-cos

regimes25.9s (2.6%)

Accuracy

Total 43.5b remaining (29.8%)

Threshold costs 7.2b (4.9%)

11.9b43.8%Equirectangular approximation to distance on a great circle
7.1b47.6%Cubic critical, narrow range
5.9b47.8%Quotient of products
5.0b82.7%Cubic critical
3.0b88.9%Quadratic roots, full range

localize7.8s (0.8%)

bsearch1.6s (0.2%)

end1.0ms (0.0%)