Details

simplify10.5m

Calls

5327 calls:

Slowest
1.4s
(/ (* (* (* (* (- lambda1 lambda2) (- lambda1 lambda2)) (- lambda1 lambda2)) (* (* (cos (/ (+ phi1 phi2) 2)) (cos (/ (+ phi1 phi2) 2))) (cos (/ (+ phi1 phi2) 2)))) (* (* (* (- (* lambda1 lambda1) (* lambda2 lambda2)) (- (* lambda1 lambda1) (* lambda2 lambda2))) (- (* lambda1 lambda1) (* lambda2 lambda2))) (* (* (cos (/ (+ phi1 phi2) 2)) (cos (/ (+ phi1 phi2) 2))) (cos (/ (+ phi1 phi2) 2))))) (* (* (+ lambda1 lambda2) (+ lambda1 lambda2)) (+ lambda1 lambda2)))
1.3s
(/ (* (* (* (* (- lambda1 lambda2) (cos (/ (+ phi1 phi2) 2))) (* (- lambda1 lambda2) (cos (/ (+ phi1 phi2) 2)))) (* (- lambda1 lambda2) (cos (/ (+ phi1 phi2) 2)))) (* (* (* (- (* lambda1 lambda1) (* lambda2 lambda2)) (- (* lambda1 lambda1) (* lambda2 lambda2))) (- (* lambda1 lambda1) (* lambda2 lambda2))) (* (* (cos (/ (+ phi1 phi2) 2)) (cos (/ (+ phi1 phi2) 2))) (cos (/ (+ phi1 phi2) 2))))) (* (* (+ lambda1 lambda2) (+ lambda1 lambda2)) (+ lambda1 lambda2)))
1.3s
(/ (* (* (* (* (- lambda1 lambda2) (- lambda1 lambda2)) (- lambda1 lambda2)) (* (* (cos (/ (+ phi1 phi2) 2)) (cos (/ (+ phi1 phi2) 2))) (cos (/ (+ phi1 phi2) 2)))) (* (* (* (- (* lambda1 lambda1) (* lambda2 lambda2)) (cos (/ (+ phi1 phi2) 2))) (* (- (* lambda1 lambda1) (* lambda2 lambda2)) (cos (/ (+ phi1 phi2) 2)))) (* (- (* lambda1 lambda1) (* lambda2 lambda2)) (cos (/ (+ phi1 phi2) 2))))) (* (* (+ lambda1 lambda2) (+ lambda1 lambda2)) (+ lambda1 lambda2)))
1.2s
(sqrt (+ (* (* (* (- (pow lambda1 3) (pow lambda2 3)) (cos (/ (+ phi1 phi2) 2))) (* (- (* lambda1 lambda1) (* lambda2 lambda2)) (cos (/ (+ phi1 phi2) 2)))) (+ (* phi1 phi1) (+ (* phi2 phi2) (* phi1 phi2)))) (* (* (+ (* lambda1 lambda1) (+ (* lambda2 lambda2) (* lambda1 lambda2))) (+ lambda1 lambda2)) (* (- phi1 phi2) (- (pow phi1 3) (pow phi2 3))))))
1.2s
(/ (* (* (* -3/2 (/ a (/ b c))) (* -3/2 (/ a (/ b c)))) (* -3/2 (/ a (/ b c)))) (* (* (* 3 a) (* 3 a)) (* 3 a)))

sample10.4m

Algorithm
72×intervals
Results
7.5m79662×body10240exit
51.3s33355×body1280valid
26.1s197936×body80valid
22.8s24257×body640valid
20.8s152770×body80nan
12.4s25570×body320valid
11.8s34650×body160valid
9.7s153826×pre80true
3.1s3060×body2560valid
1.8s7791×body160nan
925.0ms4067×pre10240exit
261.0ms238×body5120valid

prune1.7m

series35.0s

Calls

406 calls:

Slowest
729.0ms
(sqrt (+ (/ (* (* (- lambda1 lambda2) (cos (/ (+ phi1 phi2) 2))) (* (- (* lambda1 lambda1) (* lambda2 lambda2)) (cos (/ (+ phi1 phi2) 2)))) (+ lambda1 lambda2)) (* (- phi1 phi2) (- phi1 phi2))))
592.0ms
(sqrt (+ (* (* (- lambda1 lambda2) (cos (/ (+ phi1 phi2) 2))) (* (- lambda1 lambda2) (cos (/ (+ phi1 phi2) 2)))) (* (- phi1 phi2) (- phi1 phi2))))
527.0ms
(/ (* (pow (/ 1 (+ 1 (exp (- s)))) c_p) (pow (- 1 (/ 1 (+ 1 (exp (- s))))) c_n)) (* (pow (/ 1 (+ 1 (exp (- t)))) c_p) (pow (- 1 (/ 1 (+ 1 (exp (- t))))) c_n)))
475.0ms
(+ (* (cos (/ (acos (/ g h)) 3)) (cos (/ PI 3/2))) (* (sin (/ (acos (/ g h)) 3)) (sin (/ PI 3/2))))
395.0ms
(cbrt (* (/ 1 (* 2 a)) (- (- g) (sqrt (- (* g g) (* h h))))))

regimes10.7s

Accuracy

Total 61.0b remaining (34.2%)

7.5b43.3%Cubic critical, narrow range
7.5b51.4%Equirectangular approximation to distance on a great circle
7.3b-6.3%Cubic critical, medium range
7.1b48%Quadratic roots, narrow range
6.4b7.3%Quadratic roots, medium range

rewrite3.4s

Algorithm
126×rewrite-expression-head
Calls

406 calls:

Slowest
125.0ms
(cbrt (* (* (* (/ (sin x) (cos x)) (/ (sin x) (cos x))) (* (/ (sin x) (cos x)) (/ (sin x) (cos x)))) (* (/ (sin x) (cos x)) (/ (sin x) (cos x)))))
69.0ms
(/ (exp a) (+ (exp (+ (+ a a) a)) (exp (+ (+ b b) b))))
61.0ms
(- (+ (log (sqrt (+ 1 (exp x)))) (log (sqrt (+ 1 (exp x))))) (* x y))
52.0ms
(/ (- (sqrt (- (* b b) (* a (* 4 c)))) b) (* 2 a))
51.0ms
(log (exp (- (pow (/ x (+ x 1)) 3) (pow (/ (+ x 1) (- x 1)) 3))))
Rules
1346×add-exp-log
1127×add-sqr-sqrt
1106×*-un-lft-identity
950×add-cube-cbrt
809×pow1
806×add-cbrt-cube
519×add-log-exp
496×prod-exp
488×flip--
487×flip3--
482×frac-times
461×associate-*r/
449×times-frac
432×associate-*l/
406×insert-posit16
336×associate-*r*
279×associate-*l*
275×pow-exp
270×div-exp
239×sqrt-div
227×frac-add
219×div-inv
204×associate-/r*
192×pow-to-exp
184×associate-/r/
177×flip-+
176×flip3-+
167×sqrt-prod
166×cbrt-div
164×cbrt-unprod
162×cbrt-prod
160×log-prod
118×unpow-prod-down
117×pow-prod-down
113×sub-neg
110×associate-/l*
108×rec-exp
106×cube-prod *-commutative
103×cbrt-undiv
99×pow-prod-up
98×frac-sub
94×frac-2neg clear-num
90×log-div
85×log-pow
73×difference-of-squares
63×associate-/l/
57×distribute-lft-out
55×distribute-rgt-in distribute-lft-in
52×tan-quot
51×pow-plus
43×pow1/3
41×pow2
38×distribute-lft-out-- diff-log
37×pow1/2
36×exp-prod
33×pow-flip inv-pow rem-sqrt-square
30×+-commutative
28×distribute-neg-frac
27×cube-div rem-log-exp
26×sum-log
25×associate-+r+ associate--l+
21×exp-diff
19×div-sub
17×pow-pow
14×associate-+l+ sub-div
13×associate--l-
12×associate--r+ tanh-def distribute-rgt-neg-in un-div-inv associate-+l- distribute-lft-neg-in
11×exp-sum sin-mult
10×difference-of-sqr-1 associate--r-
rem-cube-cbrt cos-sum
cube-mult cos-diff
cos-mult associate-+r- unpow3
distribute-lft-neg-out sin-sum log-rec acos-asin
distribute-rgt-neg-out pow3 neg-mul-1 distribute-rgt-out
distribute-frac-neg difference-cubes acos-neg rem-cbrt-cube
cube-unmult distribute-rgt-out-- rem-exp-log unsub-neg distribute-rgt1-in
sin-cos-mult sqrt-unprod tanh-undef sin-PI/3 exp-to-pow asin-acos sum-cubes sqr-neg sin-diff

localize2.9s

bsearch1.6s

end1.0ms