Details

simplify24.5m

Calls

16090 calls:

Slowest
2.2s
(im (+.c (+.c (+.c (+.c (+.c (+.c (*.c (*.c (*.c (*.c (*.c (complex -1 1) (complex -1 1)) (complex -1 1)) (complex -1 1)) (complex -1 1)) (complex -1 1)) (*.c (*.c (*.c (*.c (*.c (complex 6 0) (complex -1 1)) (complex -1 1)) (complex -1 1)) (complex -1 1)) (complex -1 1))) (*.c (*.c (*.c (*.c (complex 15 0) (complex -1 1)) (complex -1 1)) (complex -1 1)) (complex -1 1))) (*.c (*.c (*.c (complex 20 0) (complex -1 1)) (complex -1 1)) (complex -1 1))) (*.c (*.c (complex 15 0) (complex -1 1)) (complex -1 1))) (*.c (complex 6 0) (complex -1 1))) (complex 1 0)))
2.0s
(/ (* (* (- (* a c)) (- (* a c))) (- (* a c))) (* (* (* a (+ (sqrt (- (* b_2 b_2) (* a c))) b_2)) (* a (+ (sqrt (- (* b_2 b_2) (* a c))) b_2))) (* a (+ (sqrt (- (* b_2 b_2) (* a c))) b_2))))
1.7s
(re (+.c (+.c (+.c (+.c (+.c (+.c (*.c (*.c (*.c (*.c (*.c (complex -1 1) (complex -1 1)) (complex -1 1)) (complex -1 1)) (complex -1 1)) (complex -1 1)) (*.c (*.c (*.c (*.c (*.c (complex 6 0) (complex -1 1)) (complex -1 1)) (complex -1 1)) (complex -1 1)) (complex -1 1))) (*.c (*.c (*.c (*.c (complex 15 0) (complex -1 1)) (complex -1 1)) (complex -1 1)) (complex -1 1))) (*.c (*.c (*.c (complex 20 0) (complex -1 1)) (complex -1 1)) (complex -1 1))) (*.c (*.c (complex 15 0) (complex -1 1)) (complex -1 1))) (*.c (complex 6 0) (complex -1 1))) (complex 1 0)))
1.7s
(/ (* (* (* (- 0 (* a (* c -4))) -1/2) (* (- 0 (* a (* c -4))) -1/2)) (* (- 0 (* a (* c -4))) -1/2)) (* (* (* (- b (sqrt (fma a (* c -4) (* b b)))) a) (* (- b (sqrt (fma a (* c -4) (* b b)))) a)) (* (- b (sqrt (fma a (* c -4) (* b b)))) a)))
1.6s
(/ (* (* (* a c) (* a c)) (* a c)) (* (* (* a (+ (- b_2) (sqrt (- (* b_2 b_2) (* a c))))) (* a (+ (- b_2) (sqrt (- (* b_2 b_2) (* a c)))))) (* a (+ (- b_2) (sqrt (- (* b_2 b_2) (* a c)))))))

sample5.0m

Algorithm
56×intervals
16×halfpoints
Results
1.1m66475×body1280valid
41.5s17763×body2560valid
27.6s41579×body640valid
14.3s12253×body10240exit
11.3s94162×body80valid
10.2s20902×body320valid
6.8s64708×body80nan
3.2s10452×body160valid
2.3s47299×pre80true
849.0ms728×body1280nan
613.0ms489×body5120valid
476.0ms630×body640nan
267.0ms358×body320nan
58.0ms195×body160nan

prune2.6m

series37.5s

Calls

367 calls:

Slowest
873.0ms
(- (/ (fma (+ (tan eps) (tan x)) (* (tan eps) (tan x)) (+ (tan eps) (tan x))) (- 1 (* (* (tan eps) (tan x)) (* (tan eps) (tan x))))) (tan x))
793.0ms
(fma (/ 1 (+ 1 (* (tan eps) (tan x)))) (/ (fma (+ (tan eps) (tan x)) (* (tan eps) (tan x)) (+ (tan eps) (tan x))) (- 1 (* (tan eps) (tan x)))) (- (tan x)))
639.0ms
(* (expm1 (* (+ b a) eps)) (/ (/ eps (expm1 (* eps a))) (expm1 (* eps b))))
566.0ms
(/ (/ (* (expm1 (* (+ a b) eps)) eps) (expm1 (* eps a))) (expm1 (* eps b)))
544.0ms
(- (/ (+ (tan x) (tan eps)) (- 1 (* (tan x) (tan eps)))) (tan x))

rewrite8.5s

Algorithm
114×rewrite-expression-head
Calls

367 calls:

Slowest
181.0ms
(/ (- (sqrt (- (* b_2 b_2) (* a c))) b_2) a)
172.0ms
(+ (- (/ 1 (+ x 1)) (/ 2 x)) (/ 1 (- x 1)))
157.0ms
(* (* (* x (sqrt (sqrt (fma 1/3 (* x x) 2)))) (sqrt (sqrt (fma 1/3 (* x x) 2)))) (sqrt (fma 1/3 (* x x) 2)))
137.0ms
(* (- (sqrt (- (* b_2 b_2) (* a c))) b_2) (/ 1 a))
131.0ms
(- (/ (+ (tan x) (tan eps)) (- 1 (* (tan x) (tan eps)))) (tan x))
Rules
8294×*-un-lft-identity
7674×add-sqr-sqrt
7592×times-frac
5578×add-cube-cbrt
3046×prod-diff
2505×sqrt-prod
1547×cbrt-div
1225×add-exp-log
1204×pow1
1077×add-cbrt-cube
899×difference-of-squares
660×distribute-lft-out--
641×frac-times
628×distribute-lft-out
584×flip-+ flip3-+
553×add-log-exp
508×associate-*l*
492×associate-*r*
485×log-prod
463×div-inv
393×associate-/l*
364×log1p-expm1-u
360×expm1-log1p-u
359×insert-posit16
346×associate-/r/
342×fma-neg
305×prod-exp
304×associate-/r*
292×cbrt-prod
265×div-exp
259×associate-*l/
252×cbrt-unprod
236×associate-+l+
232×associate-*r/
228×pow-prod-down
195×cbrt-undiv
186×swap-sqr
182×unpow-prod-down
172×flip3-- flip--
158×sqrt-div
155×unswap-sqr
141×log-pow
139×pow-prod-up
136×fma-def
104×distribute-rgt-neg-in
91×sqrt-pow1 pow-unpow pow1/2
87×pow-sqr
80×*-commutative
78×diff-log
72×distribute-lft-neg-in
69×frac-2neg clear-num
67×pow-plus sub-neg
60×sqr-pow
53×associate--l+
52×tan-quot pow2
48×pow1/3
38×1-exp rec-exp associate-/l/
36×sum-log
35×fma-udef
34×associate--r+
28×rem-sqrt-square
26×pow-flip
25×neg-mul-1
24×+-commutative
20×div-sub
17×exp-prod
15×inv-pow
13×pow-exp pow-to-exp
12×frac-sub hypot-def rem-log-exp
10×exp-sum frac-add log-div
distribute-rgt-in difference-of-sqr-1 distribute-lft-in
associate--l- pow-pow log1p-udef
expm1-log1p expm1-udef sqrt-unprod
neg-sub0 associate-+r+
neg-log un-div-inv distribute-neg-frac sin-mult
sin-sum distribute-rgt-out-- rem-square-sqrt
distribute-lft-neg-out exp-diff cube-unmult distribute-frac-neg +.c-commutative sqr-sin tan-sum frac-2neg-c rem-exp-log associate-+l- log1p-def cos-sum rem-cbrt-cube e-exp-1
diff-atan log1p-expm1 pow3 sub0-neg hypot-1-def sub-div diff-sin diff-cos expm1-def

regimes3.9s

Accuracy

Total 23.2b remaining (20.9%)

4.6b82.6%quadm (p42, negative)
4.5b83.8%quadp (p42, positive)
3.6b67.9%2nthrt (problem 3.4.6)
3.3b0%expq3 (problem 3.4.2)
1.7b92.8%quad2p (problem 3.2.1, positive)

localize3.9s

bsearch2.0s

end1.0ms