Details

prune10.1m (38.9%)

sample9.6m (37.3%)

Algorithm
78×intervals
Results
6.3m41707×body10240exit
1.3m43718×body1280valid
27.0s30409×body640valid
18.6s204361×body80valid
15.7s153009×body80nan
12.7s27727×body320valid
9.7s179917×pre80true
9.3s35925×body160valid
1.9s3019×body2560valid
1.3s8035×body160nan
546.0ms4132×pre10240exit
286.0ms233×body5120valid
1.0msbody640nan

simplify4.0m (15.6%)

series1.1m (4.3%)

Calls

503 calls:

1.8s
(pow (- (pow (cos delta) 2) (* (* (sin (asin (+ (* (cos theta) (* (sin delta) (cos phi1))) (* (sin phi1) (cos delta))))) (pow (sin phi1) 2)) (sin (asin (+ (* (cos theta) (* (sin delta) (cos phi1))) (* (sin phi1) (cos delta))))))) 3)
1.1s
(sqrt (+ (* (- phi1 phi2) (- phi1 phi2)) (* (- lambda1 lambda2) (* (* (cbrt (* (- lambda1 lambda2) (* (cos (/ (+ phi2 phi1) 2.0)) (cos (/ (+ phi2 phi1) 2.0))))) (cbrt (* (- lambda1 lambda2) (* (cos (/ (+ phi2 phi1) 2.0)) (cos (/ (+ phi2 phi1) 2.0)))))) (cbrt (* (- lambda1 lambda2) (* (cos (/ (+ phi2 phi1) 2.0)) (cos (/ (+ phi2 phi1) 2.0)))))))))
1.1s
(cbrt (* (/ (- (sqrt (* (+ h g) (- g h))) g) (sqrt 2.0)) (/ 1.0 (cbrt a))))
1.0s
(sqrt (+ (* (- phi1 phi2) (- phi1 phi2)) (* (- lambda1 lambda2) (* (* (cbrt (* (- lambda1 lambda2) (* (cos (/ (+ phi2 phi1) 2.0)) (cos (/ (+ phi2 phi1) 2.0))))) (cbrt (* (- lambda1 lambda2) (* (cos (/ (+ phi2 phi1) 2.0)) (cos (/ (+ phi2 phi1) 2.0)))))) (cbrt (* (- lambda1 lambda2) (* (cos (/ (+ phi2 phi1) 2.0)) (cos (/ (+ phi2 phi1) 2.0)))))))))
957.0ms
(cbrt (pow (- (pow (cos delta) 2) (* (* (sin (asin (+ (* (cos theta) (* (sin delta) (cos phi1))) (* (sin phi1) (cos delta))))) (pow (sin phi1) 2)) (sin (asin (+ (* (cos theta) (* (sin delta) (cos phi1))) (* (sin phi1) (cos delta))))))) 3))

rewrite36.4s (2.3%)

Algorithm
145×rewrite-expression-head
Calls

503 calls:

1.4s
(exp (log (sqrt (+ (* (- phi1 phi2) (- phi1 phi2)) (* (- lambda1 lambda2) (* (* (cbrt (* (- lambda1 lambda2) (* (cos (/ (+ phi2 phi1) 2.0)) (cos (/ (+ phi2 phi1) 2.0))))) (cbrt (* (- lambda1 lambda2) (* (cos (/ (+ phi2 phi1) 2.0)) (cos (/ (+ phi2 phi1) 2.0)))))) (cbrt (* (- lambda1 lambda2) (* (cos (/ (+ phi2 phi1) 2.0)) (cos (/ (+ phi2 phi1) 2.0)))))))))))
1.2s
(pow (exp 1/2) (log (+ (* (- phi1 phi2) (- phi1 phi2)) (* (- lambda1 lambda2) (* (* (cbrt (* (- lambda1 lambda2) (* (cos (/ (+ phi2 phi1) 2.0)) (cos (/ (+ phi2 phi1) 2.0))))) (cbrt (* (- lambda1 lambda2) (* (cos (/ (+ phi2 phi1) 2.0)) (cos (/ (+ phi2 phi1) 2.0)))))) (cbrt (* (- lambda1 lambda2) (* (cos (/ (+ phi2 phi1) 2.0)) (cos (/ (+ phi2 phi1) 2.0))))))))))
1.1s
(* (/ (cbrt a1) (/ b1 (cbrt a1))) (/ (- (cbrt a1)) (- (/ 1 a2))))
1.0s
(log (+ (* (- phi1 phi2) (- phi1 phi2)) (* (- lambda1 lambda2) (* (* (cbrt (* (- lambda1 lambda2) (* (cos (/ (+ phi2 phi1) 2.0)) (cos (/ (+ phi2 phi1) 2.0))))) (cbrt (* (- lambda1 lambda2) (* (cos (/ (+ phi2 phi1) 2.0)) (cos (/ (+ phi2 phi1) 2.0)))))) (cbrt (* (- lambda1 lambda2) (* (cos (/ (+ phi2 phi1) 2.0)) (cos (/ (+ phi2 phi1) 2.0)))))))))
862.0ms
(sqrt (+ (* (- phi1 phi2) (- phi1 phi2)) (* (- lambda1 lambda2) (* (* (cbrt (* (- lambda1 lambda2) (* (cos (/ (+ phi2 phi1) 2.0)) (cos (/ (+ phi2 phi1) 2.0))))) (cbrt (* (- lambda1 lambda2) (* (cos (/ (+ phi2 phi1) 2.0)) (cos (/ (+ phi2 phi1) 2.0)))))) (cbrt (* (- lambda1 lambda2) (* (cos (/ (+ phi2 phi1) 2.0)) (cos (/ (+ phi2 phi1) 2.0)))))))))
Rules
95375×frac-times
64900×cbrt-div
54410×flip--
54409×flip3--
40583×associate-*l/
38886×cos-mult
32450×associate-*r/
25965×frac-add
15762×sqrt-div
15578×log-div
13578×times-frac
9290×*-un-lft-identity
8940×add-sqr-sqrt
6922×add-cube-cbrt
5180×exp-diff
5178×pow-sub
3810×add-exp-log
1958×add-cbrt-cube
1929×distribute-rgt-neg-in
1811×distribute-lft-neg-in
1511×div-exp
1199×pow1
1189×prod-exp
1165×associate-*r*
1080×cbrt-prod
1070×associate-/l*
877×difference-of-squares
822×associate-*l*
809×add-log-exp
668×associate-/r*
658×sqrt-prod
641×div-inv
614×distribute-lft-out
543×distribute-lft-out--
513×cbrt-undiv
468×cbrt-unprod
411×unpow-prod-down
364×pow-exp
360×associate-/r/
344×log-prod
327×neg-mul-1
299×pow-prod-down
282×flip-+
281×flip3-+
264×pow-to-exp
259×cube-prod
194×sqr-pow
184×unswap-sqr
176×1-exp
152×rec-exp
120×swap-sqr
117×frac-2neg clear-num
109×sub-neg
107×*-commutative
91×associate-/l/ diff-log
87×exp-sum
78×frac-sub
72×sum-log
71×pow-unpow
68×sqrt-pow1
58×div-sub
54×pow1/3 pow1/2
49×+-commutative pow-prod-up
42×cube-mult
41×unpow3
40×distribute-neg-frac
37×pow-pow
35×log-pow
34×distribute-rgt-in distribute-lft-in
32×pow-plus
30×exp-prod pow-sqr
29×rem-sqrt-square
28×neg-sub0
26×associate-+l- cube-div
24×tan-quot
23×sin-mult rem-log-exp
18×associate--l+ sin-diff
17×sin-cos-mult
16×sum-cubes
15×pow2
14×rem-cube-cbrt neg-log
13×pow-flip associate--l- cos-sum distribute-frac-neg cos-diff
10×associate--r-
difference-cubes
associate--r+ inv-pow acos-asin
sin-sum associate-+r- associate-+r+ rem-cbrt-cube distribute-rgt-out
asin-acos
unpow2
distribute-rgt-neg-out
unpow-prod-up sqrt-unprod sub-div un-div-inv rem-exp-log acos-neg
cube-unmult
distribute-lft-neg-out sqrt-undiv pow3 tanh-def distribute-neg-in sqr-cos tanh-undef distribute-rgt1-in

regimes16.0s (1.0%)

Accuracy

Total 29.2b remaining (22.1%)

Threshold costs 8.0b (6.1%)

9.0b51.1%Equirectangular approximation to distance on a great circle
4.9b52.8%Quotient of products
4.8b83.2%Quadratic roots, full range
1.5b93.4%Cubic critical
1.0b0%(- (/ x0 (- 1 x1)) x0)

localize7.9s (0.5%)

bsearch1.6s (0.1%)

end1.0ms (0.0%)