Details

simplify13.8m (43.8%)

sample13.1m (41.7%)

Algorithm
77×intervals
Results
9.8m57426×body10240exit
1.3m42716×body1280valid
30.4s28957×body640valid
22.9s201287×body80valid
15.1s27171×body320valid
13.6s151601×body80nan
11.7s197447×pre80true
9.1s35664×body160valid
1.9s3036×body2560valid
1.4s7845×body160nan
1.1s4138×pre10240exit
705.0ms205×body5120valid
9.0msbody640nan
2.0msbody320nan

rewrite1.6m (5.2%)

Algorithm
142×rewrite-expression-head
Calls

463 calls:

6.4s
(cbrt (* (* (- (* (* (tan x) (tan x)) (* (tan x) (tan x))) (* (tan x) (tan x))) (- (* (* (tan x) (tan x)) (* (tan x) (tan x))) (* (tan x) (tan x)))) (- (* (* (tan x) (tan x)) (* (tan x) (tan x))) (* (tan x) (tan x)))))
1.3s
(/ (+ (* (* (* (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))))
906.0ms
(* (- (* (* (tan x) (tan x)) (* (tan x) (tan x))) (* (tan x) (tan x))) (- (* (* (tan x) (tan x)) (* (tan x) (tan x))) (* (tan x) (tan x))))
566.0ms
(+ (* (* (* (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))))
518.0ms
(/ (+ (* 1/216000 (* (* (pow x 5) (pow x 5)) (pow x 5))) (* (* (+ (* 1/3 (* x x)) 2) (+ (* 1/3 (* x x)) 2)) (* (+ (* 1/3 (* x x)) 2) (* (* x x) x)))) (+ (* (* x (+ (* 1/3 (* x x)) 2)) (* x (+ (* 1/3 (* x x)) 2))) (- (* (* 1/60 (pow x 5)) (* 1/60 (pow x 5))) (* (* x (+ (* 1/3 (* x x)) 2)) (* 1/60 (pow x 5))))))
Rules
2285240×tan-quot
1379177×frac-times
766475×associate-*l/
762839×associate-*r/
524728×frac-sub
238596×cbrt-div
163240×sub-div
12458×flip--
12457×flip3--
4870×*-un-lft-identity
4842×times-frac
4413×add-sqr-sqrt
3125×add-cube-cbrt
2981×add-exp-log
1662×add-cbrt-cube
1606×pow1
1185×prod-exp
989×sqrt-prod
935×div-exp
749×frac-add
733×add-log-exp
699×pow-exp
669×sqrt-div
579×associate-*r*
506×associate-/r*
485×associate-*l*
471×difference-of-squares
470×cbrt-unprod
463×insert-posit16
444×cbrt-prod
425×cos-mult
409×pow-prod-down
406×flip-+
405×flip3-+
386×distribute-lft-out
382×associate-/l*
372×distribute-lft-out--
351×pow-to-exp
305×cbrt-undiv
301×div-inv
228×log-prod exp-prod
194×pow-prod-up
175×sqrt-pow1
163×associate-/r/
157×unswap-sqr
154×sin-mult
139×associate-/l/
138×1-exp rec-exp
127×swap-sqr
121×*-commutative
118×sub-neg
114×pow-sqr
100×frac-2neg clear-num
93×log-pow
91×diff-log
87×pow-plus
78×log-div
73×pow1/2 unpow-prod-down
70×distribute-rgt-in distribute-lft-in
59×difference-of-sqr-1
57×sum-log distribute-rgt-neg-in
54×pow2
47×pow1/3
44×div-sub
34×distribute-lft-neg-in
32×+-commutative
31×rem-sqrt-square rem-log-exp
28×exp-sum
23×associate--r+
21×cos-diff
20×associate--l+ cos-sum
19×sqr-pow associate--r-
18×sin-diff
16×associate-+r+
15×pow-flip associate--l-
13×acos-asin
12×exp-diff inv-pow distribute-rgt-out--
11×pow3
10×associate-+l+
cube-unmult
associate-+l-
sin-cos-mult rem-exp-log
neg-sub0 pow-unpow pow-pow distribute-rgt-out
sqrt-unprod sum-cubes exp-neg
sin-sum un-div-inv
log-rec distribute-frac-neg neg-log acos-neg sqr-cos
associate-+r- rem-square-sqrt rem-cbrt-cube distribute-rgt1-in
remove-posit16 distribute-rgt-neg-out neg-mul-1 tanh-def difference-cubes tanh-undef asin-acos

prune1.5m (4.8%)

series56.9s (3.0%)

Calls

463 calls:

3.7s
(/ (+ (* (* (* (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))))
1.3s
(/ (+ 1/2 (- (* 1/2 (cos (* 2 delta))) (* (* (sin phi1) (sin (asin (+ (* (sin phi1) (cos delta)) (* (* (cos phi1) (sin delta)) (cos theta)))))) (* (sin phi1) (sin (asin (+ (* (sin phi1) (cos delta)) (* (* (cos phi1) (sin delta)) (cos theta))))))))) (+ (cos delta) (* (sin phi1) (sin (asin (+ (* (sin phi1) (cos delta)) (* (* (cos phi1) (sin delta)) (cos theta))))))))
1.3s
(+ (* (* (* (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))))
1.2s
(/ (- (* (cos delta) (cos delta)) (* (* (sin phi1) (sin (asin (+ (* (sin phi1) (cos delta)) (* (* (cos phi1) (sin delta)) (cos theta)))))) (* (sin phi1) (sin (asin (+ (* (sin phi1) (cos delta)) (* (* (cos phi1) (sin delta)) (cos theta)))))))) (+ (cos delta) (* (sin phi1) (sin (asin (+ (* (sin phi1) (cos delta)) (* (* (cos phi1) (sin delta)) (cos theta))))))))
906.0ms
(sqrt (+ (- (* (* (cos (* 1/2 (+ phi1 phi2))) (cos (* 1/2 (+ phi1 phi2)))) (+ (* lambda2 lambda2) (* lambda1 lambda1))) (* 2 (* (* lambda1 lambda2) (* (cos (* 1/2 (+ phi1 phi2))) (cos (* 1/2 (+ phi1 phi2))))))) (* (- phi1 phi2) (- phi1 phi2))))

regimes21.1s (1.1%)

Accuracy

Total 70.4b remaining (34.6%)

Threshold costs 5.2b (2.6%)

11.1b41.2%Equirectangular approximation to distance on a great circle
7.4b-9.6%Cubic critical, medium range
7.3b46.9%Quadratic roots, narrow range
7.2b47.2%Cubic critical, narrow range
6.8b0%Quadratic roots, medium range

localize6.6s (0.3%)

bsearch1.0s (0.1%)

end1.0ms (0.0%)