Details

rewrite10.5m (57.2%)

Algorithm
102×rewrite-expression-head
Calls

284 calls:

2.4m
(- (* (+ (* (/ 77617.0 (* 2.0 33096.0)) (- (/ 77617.0 (* 2.0 33096.0)) (* 5.5 (pow 33096.0 8.0)))) (* (pow 33096.0 (* 2 8.0)) (* 5.5 5.5))) (* (+ (pow (* (* 77617.0 77617.0) (+ (- (* (* 11.0 (* 77617.0 77617.0)) (* 33096.0 33096.0)) (pow 33096.0 6.0)) (+ (* -121.0 (pow 33096.0 4.0)) -2.0))) 3) (pow (* 333.75 (pow 33096.0 6.0)) 3)) (+ (pow (* (* 77617.0 77617.0) (+ (- (* (* 11.0 (* 77617.0 77617.0)) (* 33096.0 33096.0)) (pow 33096.0 6.0)) (+ (* -121.0 (pow 33096.0 4.0)) -2.0))) 3) (pow (* 333.75 (pow 33096.0 6.0)) 3)))) (* (+ (* (* (* 77617.0 77617.0) (+ (- (* (* 11.0 (* 77617.0 77617.0)) (* 33096.0 33096.0)) (pow 33096.0 6.0)) (+ (* -121.0 (pow 33096.0 4.0)) -2.0))) (* (* 77617.0 77617.0) (+ (- (* (* 11.0 (* 77617.0 77617.0)) (* 33096.0 33096.0)) (pow 33096.0 6.0)) (+ (* -121.0 (pow 33096.0 4.0)) -2.0)))) (* (* 333.75 (pow 33096.0 6.0)) (- (* 333.75 (pow 33096.0 6.0)) (* (* 77617.0 77617.0) (+ (- (* (* 11.0 (* 77617.0 77617.0)) (* 33096.0 33096.0)) (pow 33096.0 6.0)) (+ (* -121.0 (pow 33096.0 4.0)) -2.0)))))) (* (* (+ (pow (* 5.5 (pow 33096.0 8.0)) 3) (pow (/ 77617.0 (* 2.0 33096.0)) 3)) (+ (* (* (* 77617.0 77617.0) (+ (- (* (* 11.0 (* 77617.0 77617.0)) (* 33096.0 33096.0)) (pow 33096.0 6.0)) (+ (* -121.0 (pow 33096.0 4.0)) -2.0))) (* (* 77617.0 77617.0) (+ (- (* (* 11.0 (* 77617.0 77617.0)) (* 33096.0 33096.0)) (pow 33096.0 6.0)) (+ (* -121.0 (pow 33096.0 4.0)) -2.0)))) (* (* 333.75 (pow 33096.0 6.0)) (- (* 333.75 (pow 33096.0 6.0)) (* (* 77617.0 77617.0) (+ (- (* (* 11.0 (* 77617.0 77617.0)) (* 33096.0 33096.0)) (pow 33096.0 6.0)) (+ (* -121.0 (pow 33096.0 4.0)) -2.0))))))) (+ (* 5.5 (pow 33096.0 8.0)) (/ 77617.0 (* 2.0 33096.0))))))
13.8s
(* (+ (* (* (* 77617.0 77617.0) (+ (- (* (* 11.0 (* 77617.0 77617.0)) (* 33096.0 33096.0)) (pow 33096.0 6.0)) (+ (* -121.0 (pow 33096.0 4.0)) -2.0))) (* (* 77617.0 77617.0) (+ (- (* (* 11.0 (* 77617.0 77617.0)) (* 33096.0 33096.0)) (pow 33096.0 6.0)) (+ (* -121.0 (pow 33096.0 4.0)) -2.0)))) (* (* 333.75 (pow 33096.0 6.0)) (- (* 333.75 (pow 33096.0 6.0)) (* (* 77617.0 77617.0) (+ (- (* (* 11.0 (* 77617.0 77617.0)) (* 33096.0 33096.0)) (pow 33096.0 6.0)) (+ (* -121.0 (pow 33096.0 4.0)) -2.0)))))) (* (+ (* (/ 77617.0 (* 2.0 33096.0)) (- (/ 77617.0 (* 2.0 33096.0)) (* 5.5 (pow 33096.0 8.0)))) (* (pow 33096.0 (* 2 8.0)) (* 5.5 5.5))) (+ (* (* (* 77617.0 77617.0) (+ (- (* (* 11.0 (* 77617.0 77617.0)) (* 33096.0 33096.0)) (pow 33096.0 6.0)) (+ (* -121.0 (pow 33096.0 4.0)) -2.0))) (* (* 77617.0 77617.0) (+ (- (* (* 11.0 (* 77617.0 77617.0)) (* 33096.0 33096.0)) (pow 33096.0 6.0)) (+ (* -121.0 (pow 33096.0 4.0)) -2.0)))) (* (* 333.75 (pow 33096.0 6.0)) (- (* 333.75 (pow 33096.0 6.0)) (* (* 77617.0 77617.0) (+ (- (* (* 11.0 (* 77617.0 77617.0)) (* 33096.0 33096.0)) (pow 33096.0 6.0)) (+ (* -121.0 (pow 33096.0 4.0)) -2.0))))))))
8.7s
(cbrt (+ (* (* (* 2.0 x1) (/ (- (+ (* (* 3.0 x1) x1) (* 2.0 x2)) x1) (+ (* x1 x1) 1.0))) (* (* (cbrt (- (/ (- (+ (* (* 3.0 x1) x1) (* 2.0 x2)) x1) (+ (* x1 x1) 1.0)) 3.0)) (cbrt (- (/ (- (+ (* (* 3.0 x1) x1) (* 2.0 x2)) x1) (+ (* x1 x1) 1.0)) 3.0))) (cbrt (- (/ (- (+ (* (* 3.0 x1) x1) (* 2.0 x2)) x1) (+ (* x1 x1) 1.0)) 3.0)))) (* (* x1 x1) (- (* 4.0 (/ (- (+ (* (* 3.0 x1) x1) (* 2.0 x2)) x1) (+ (* x1 x1) 1.0))) 6.0))))
5.2s
(/ (- (* (+ (* (* 77617.0 77617.0) (+ (- (* (* 11.0 (* 77617.0 77617.0)) (* 33096.0 33096.0)) (pow 33096.0 6.0)) (+ (* -121.0 (pow 33096.0 4.0)) -2.0))) (* 333.75 (pow 33096.0 6.0))) (+ (* (* 77617.0 77617.0) (+ (- (* (* 11.0 (* 77617.0 77617.0)) (* 33096.0 33096.0)) (pow 33096.0 6.0)) (+ (* -121.0 (pow 33096.0 4.0)) -2.0))) (* 333.75 (pow 33096.0 6.0)))) (* (+ (* 5.5 (pow 33096.0 8.0)) (/ 77617.0 (* 2.0 33096.0))) (+ (* 5.5 (pow 33096.0 8.0)) (/ 77617.0 (* 2.0 33096.0))))) (- (+ (* (* 77617.0 77617.0) (+ (- (* (* 11.0 (* 77617.0 77617.0)) (* 33096.0 33096.0)) (pow 33096.0 6.0)) (+ (* -121.0 (pow 33096.0 4.0)) -2.0))) (* 333.75 (pow 33096.0 6.0))) (+ (* 5.5 (pow 33096.0 8.0)) (/ 77617.0 (* 2.0 33096.0)))))
3.7s
(+ (+ (* 333.75 (pow y 6.0)) (* (* x x) (- (- (- (* (* (* (* 11.0 x) x) y) y) (pow y 6.0)) (* 121.0 (pow y 4.0))) 2.0))) (* 5.5 (pow y 8.0)))
Rules
6013×times-frac
5150×*-un-lft-identity
4437×add-sqr-sqrt
3099×add-cube-cbrt
1517×add-exp-log
1255×add-cbrt-cube
775×associate-*r*
735×distribute-lft-out
693×pow1
656×associate-*r/
616×add-log-exp
555×associate-*l*
477×associate-/l*
464×difference-of-squares
450×frac-times
444×cbrt-div
439×flip-+ flip3-+
437×prod-exp
416×flip-- div-exp flip3--
396×associate-/r*
358×distribute-rgt-neg-in
349×cbrt-unprod
345×distribute-lft-neg-in
343×distribute-lft-out--
330×div-inv
324×sqrt-prod
314×unpow-prod-down
306×cbrt-prod
304×cbrt-undiv
246×associate-/r/
241×frac-add
230×associate-*l/
192×pow-prod-down
172×unswap-sqr
159×associate-/l/
143×frac-sub
139×sum-log
125×sqr-pow
116×sqrt-div cube-prod
115×neg-mul-1
79×sqrt-pow1
75×sub-neg swap-sqr
70×clear-num frac-2neg
68×*-commutative
61×diff-log
58×pow1/2
56×distribute-rgt-in distribute-lft-in
55×unpow2
37×pow1/3
36×rec-exp 1-exp
32×+-commutative
29×pow-prod-up div-sub
26×rem-sqrt-square
24×pow-exp
23×pow-to-exp pow-sqr
22×log-prod
18×associate-+l+ associate-+r+
15×cube-mult
14×cube-div unpow3
12×pow-plus associate--l+
11×pow2 sum-cubes
pow-unpow
sqrt-unprod pow-flip distribute-frac-neg exp-sum associate--r+
inv-pow neg-sub0
associate--l-
rem-cbrt-cube
log-pow distribute-rgt-out exp-to-pow pow-pow
un-div-inv distribute-lft1-in distribute-lft-neg-out neg-log
rem-cube-cbrt rem-exp-log distribute-rgt-out-- associate-+r- rem-square-sqrt exp-prod log-div
associate--r- rem-log-exp

simplify5.1m (27.8%)

sample1.2m (6.5%)

Algorithm
72×intervals
Results
29.2s294983×body80valid
9.5s13568×body1280valid
4.2s9467×body640valid
3.8s3868×body2560valid
3.2s2268×body10240exit
3.0s100591×pre80true
1.9s19629×body80nan
1.8s6805×body320valid
1.2s8921×body160valid
148.0ms248×body5120valid
7.0ms100×pre80false

prune44.2s (4.0%)

series40.6s (3.7%)

Calls

280 calls:

791.0ms
(cbrt (* x x))
737.0ms
(cbrt (+ (* (* (* 2.0 x1) (/ (- (+ (* (* 3.0 x1) x1) (* 2.0 x2)) x1) (+ (* x1 x1) 1.0))) (- (/ (- (+ (* (* 3.0 x1) x1) (* 2.0 x2)) x1) (+ (* x1 x1) 1.0)) 3.0)) (* (* x1 x1) (- (* 4.0 (/ (- (+ (* (* 3.0 x1) x1) (* 2.0 x2)) x1) (+ (* x1 x1) 1.0))) 6.0))))
693.0ms
(cbrt (+ (* (* (* 2.0 x1) (/ (- (+ (* (* 3.0 x1) x1) (* 2.0 x2)) x1) (+ (* x1 x1) 1.0))) (- (/ (- (+ (* (* 3.0 x1) x1) (* 2.0 x2)) x1) (+ (* x1 x1) 1.0)) 3.0)) (* (* x1 x1) (- (* 4.0 (/ (- (+ (* (* 3.0 x1) x1) (* 2.0 x2)) x1) (+ (* x1 x1) 1.0))) 6.0))))
683.0ms
(cbrt (+ (* (* (* 2.0 x1) (/ (- (+ (* (* 3.0 x1) x1) (* 2.0 x2)) x1) (+ (* x1 x1) 1.0))) (- (/ (- (+ (* (* 3.0 x1) x1) (* 2.0 x2)) x1) (+ (* x1 x1) 1.0)) 3.0)) (* (* x1 x1) (- (* 4.0 (/ (- (+ (* (* 3.0 x1) x1) (* 2.0 x2)) x1) (+ (* x1 x1) 1.0))) 6.0))))
662.0ms
(- (* 9.0 (pow x 4.0)) (pow y 4))

regimes4.7s (0.4%)

Accuracy

Total 35.1b remaining (9.4%)

Threshold costs 2.9b (0.8%)

10.6b58.1%Compound Interest
4.7b83.5%The quadratic formula (r1)
4.5b77.4%Kahan p9 Example
3.9b85.1%The quadratic formula (r2)
3.3b0%Complex division, imag part

localize2.6s (0.2%)

bsearch1.4s (0.1%)

end1.0ms (0.0%)