Details

rewrite10.3m (69.2%)

Algorithm
152×rewrite-expression-head
Calls

421 calls:

1.4s
(+ (/ (/ 1 (/ (/ (+ (fma 2.0 i beta) alpha) (+ alpha beta)) (- beta alpha))) (+ (+ (+ alpha beta) (* 2.0 i)) 2.0)) 1.0)
1.2s
(* (sqrt (* (/ 1.0 (sqrt PI)) (+ (+ (+ (* 2.0 (fabs x)) (* (/ 2.0 3.0) (* (* (fabs x) (fabs x)) (fabs x)))) (* (/ 1.0 5.0) (* (* (* (* (fabs x) (fabs x)) (fabs x)) (fabs x)) (fabs x)))) (* (/ 1.0 21.0) (* (* (* (* (* (* (fabs x) (fabs x)) (fabs x)) (fabs x)) (fabs x)) (fabs x)) (fabs x)))))) (sqrt (* (/ 1.0 (sqrt PI)) (+ (+ (+ (* 2.0 (fabs x)) (* (/ 2.0 3.0) (* (* (fabs x) (fabs x)) (fabs x)))) (* (/ 1.0 5.0) (* (* (* (* (fabs x) (fabs x)) (fabs x)) (fabs x)) (fabs x)))) (* (/ 1.0 21.0) (* (* (* (* (* (* (fabs x) (fabs x)) (fabs x)) (fabs x)) (fabs x)) (fabs x)) (fabs x)))))))
1.1s
(* (* (sqrt (* PI 2.0)) (pow (+ (+ (- z 1.0) 7.0) 0.5) (+ (- z 1.0) 0.5))) (exp (- (+ (+ (- z 1.0) 7.0) 0.5))))
509.0ms
(/ (+ (- (pow (+ (+ alpha beta) (* 2.0 i)) 3)) (* (fma i 2.0 (+ alpha beta)) 1.0)) (sqrt (fma beta alpha (* i (+ (+ alpha beta) i)))))
467.0ms
(/ (+ (+ (* (* x (* (pow (* x x) 3) (pow x 3))) (+ 0.0008327945 (* 0.0003579942 (pow x 2)))) (fma (* 0.2909738639 x) (pow x 3) (fma (* 0.7715471019 x) x 1.0))) (* (pow x 6) (+ 0.0694555761 (* (* x x) 0.0140005442)))) (+ (+ (* (pow (* x x) 4) (+ 0.0005064034 (* (* x x) 0.0001789971))) (fma (* 0.1049934947 x) x 1.0)) (* (pow x 4) (+ 0.0424060604 (* (* x x) 0.0072644182)))))
Rules
32054×times-frac
25774×*-un-lft-identity
16077×add-sqr-sqrt
13751×add-cube-cbrt
5582×distribute-lft-out
4314×sqrt-prod
2602×add-exp-log
1658×associate-/l*
1630×add-cbrt-cube
1565×prod-diff
1529×fma-def
1236×pow1
1041×associate-/r/
939×prod-exp
895×associate-*l*
869×difference-of-squares
854×distribute-lft-out--
792×flip-+ flip3-+
726×sqrt-div
722×associate-*r*
717×div-exp
691×div-inv
600×add-log-exp
540×associate-/r*
487×associate-*r/
473×associate-*l/
445×cbrt-unprod
444×frac-add
431×frac-times
419×log1p-expm1-u expm1-log1p-u
363×cbrt-undiv
324×unpow-prod-down
306×pow-prod-down
265×cbrt-prod
260×exp-sum
239×unswap-sqr
224×log-prod
214×log-pow
210×fma-neg
194×distribute-rgt-in distribute-lft-in
190×1-exp
177×flip3-- flip--
138×cube-prod
127×associate--l+
117×*-commutative
115×pow-exp
112×sqrt-pow1
111×associate-/l/
107×sqr-pow
102×rec-exp
96×pow1/3
92×clear-num frac-2neg
89×cbrt-div
83×pow1/2
81×sub-neg
79×swap-sqr
77×pow-unpow
72×pow-to-exp associate--r+
70×diff-log
55×fma-udef
52×pow-prod-up
38×distribute-rgt-neg-in distribute-lft-neg-in pow-sqr
34×rem-sqrt-square neg-mul-1
32×exp-prod
29×sum-log
23×unpow3 cube-mult
20×pow-plus
19×pow-pow
18×associate-+l+ +-commutative pow2
14×div-sub hypot-def
13×associate--l-
11×sqrt-unprod pow-flip
rem-cube-cbrt inv-pow
unpow1/2 associate-+l- rem-log-exp
exp-diff
neg-sub0
cube-div rem-exp-log rem-square-sqrt distribute-rgt-neg-out log-div
sin-sum pow-sub frac-sub
un-div-inv exp-neg distribute-neg-in
unpow2 hypot-udef neg-log distribute-neg-frac exp-to-pow
sqrt-undiv sqrt-pow2 pow3 associate--r- unpow-prod-up expm1-log1p unsub-neg associate-+r+ expm1-udef distribute-frac-neg cos-sum

sample1.7m (11.3%)

Algorithm
99×intervals
Results
44.1s12192×body10240exit
18.1s448145×body80valid
11.1s27204×body1280valid
5.0s21595×body640valid
2.5s69241×body80nan
1.7s1661×body1280nan
1.6s10664×body320valid
967.0ms1378×body640nan
964.0ms9265×body160valid
665.0ms49536×pre80true
358.0ms702×body320nan
341.0ms1482×body2560valid
147.0ms633×body5120valid
101.0ms302×body160nan

prune1.3m (8.6%)

series1.2m (8.0%)

Calls

419 calls:

7.3s
(/ (+ (pow (+ (+ alpha beta) (* 2.0 i)) 3) (* (fma i 2.0 (+ alpha beta)) (- 1.0))) (sqrt (fma beta alpha (* i (+ (+ alpha beta) i)))))
4.0s
(/ (+ (- (pow (+ (+ alpha beta) (* 2.0 i)) 3)) (* (fma i 2.0 (+ alpha beta)) 1.0)) (sqrt (fma beta alpha (* i (+ (+ alpha beta) i)))))
1.8s
(/ (* (* (- (* (+ (+ alpha beta) (* 2.0 i)) (+ (+ alpha beta) (* 2.0 i))) 1.0) (fma i 2.0 (+ alpha beta))) (fma i 2.0 (+ alpha beta))) (fma beta alpha (* i (+ (+ alpha beta) i))))
1.8s
(fma (/ (/ 1 (/ (/ 1 (* (cbrt (+ alpha beta)) (cbrt (+ alpha beta)))) 1)) (* (cbrt (+ (+ (+ alpha beta) (* 2.0 i)) 2.0)) (cbrt (+ (+ (+ alpha beta) (* 2.0 i)) 2.0)))) (/ (/ 1 (/ (/ (+ (fma 2.0 i beta) alpha) (cbrt (+ alpha beta))) (- beta alpha))) (* (cbrt (* (cbrt (+ (+ (+ alpha beta) (* 2.0 i)) 2.0)) (cbrt (+ (+ (+ alpha beta) (* 2.0 i)) 2.0)))) (cbrt (cbrt (+ (+ (+ alpha beta) (* 2.0 i)) 2.0))))) 1.0)
1.8s
(fma (/ (/ 1 (/ (/ 1 (* (cbrt (+ alpha beta)) (cbrt (+ alpha beta)))) 1)) (* (cbrt (+ (+ (+ alpha beta) (* 2.0 i)) 2.0)) (cbrt (+ (+ (+ alpha beta) (* 2.0 i)) 2.0)))) (/ (/ 1 (/ (/ (+ (fma 2.0 i beta) alpha) (cbrt (+ alpha beta))) (- beta alpha))) (cbrt (+ (+ (+ alpha beta) (* 2.0 i)) 2.0))) 1.0)

simplify17.5s (2.0%)

Algorithm
250×egg-herbie

regimes5.5s (0.6%)

Accuracy

Total 39.0b remaining (28%)

Threshold costs 3.5b (2.5%)

8.8b28.1%_divideComplex, imaginary part
7.4b34.6%_divideComplex, real part
5.3b20.3%Octave 3.8, jcobi/2
4.0b34.6%math.sqrt on complex, imaginary part, im greater than 0 branch
2.8b77.8%Octave 3.8, jcobi/1

localize2.5s (0.3%)

bsearch986.0ms (0.1%)

end1.0ms (0.0%)