


Bits error versus x



Bits error versus y



Bits error versus z



Bits error versus t



Bits error versus a



Bits error versus b
if y < -1.3107533376997555 or 4.508099059790703 < y Initial program 0.0
rmApplied add-cbrt-cube0.0
if -1.3107533376997555 < y < 4.508099059790703Initial program 3.4
rmApplied add-cbrt-cube12.0
Taylor expanded around inf 3.4
Simplified2.1
Taylor expanded around -inf 62.8
Simplified2.1
Final simplification1.1
herbie shell --seed 2018360 +o rules:numerics
(FPCore (x y z t a b)
:name "Numeric.SpecFunctions:incompleteBetaWorker from math-functions-0.1.5.2"
(/ (* x (exp (- (+ (* y (log z)) (* (- t 1.0) (log a))) b))) y))
Time bar (total: 35.8s)Debug log
2 alts after pruning (2 fresh and 0 done)
Merged error: 1.1b
Found 4 expressions with local error:
| 1.2b | (exp (- (+ (* y (log z)) (* (- t 1.0) (log a))) b)) |
| 0.8b | (/ (* x (exp (- (+ (* y (log z)) (* (- t 1.0) (log a))) b))) y) |
| 0.3b | (* y (log z)) |
| 0.1b | (* (- t 1.0) (log a)) |
4 calls. Slowest were:
| 42.0ms | (exp (- (+ (* y (log z)) (* (- t 1.0) (log a))) b)) |
| 12.0ms | (/ (* x (exp (- (+ (* y (log z)) (* (- t 1.0) (log a))) b))) y) |
| 4.0ms | (* (- t 1.0) (log a)) |
4 calls. Slowest were:
| 181.0ms | (/ (* x (exp (- (+ (* y (log z)) (* (- t 1.0) (log a))) b))) y) |
| 145.0ms | (exp (- (+ (* y (log z)) (* (- t 1.0) (log a))) b)) |
| 82.0ms | (* (- t 1.0) (log a)) |
| 50.0ms | (* y (log z)) |
34 calls. Slowest were:
| 501.0ms | (exp (- (+ (* y (log -1)) (+ (* 1.0 (log (/ -1 a))) (* t (log -1)))) (+ b (+ (* t (log (/ -1 a))) (+ (* y (log (/ -1 z))) (* 1.0 (log -1))))))) |
| 374.0ms | (+ (* t (* (log a) (exp (- (* 1.0 (log a)))))) (+ (exp (- (* 1.0 (log a)))) (* (log z) (* (exp (- (* 1.0 (log a)))) y)))) |
| 372.0ms | (- (+ (* t (log -1)) (* 1.0 (log (/ -1 a)))) (+ (* t (log (/ -1 a))) (* 1.0 (log -1)))) |
7 alts after pruning (7 fresh and 0 done)
Merged error: 0.0b
Found 4 expressions with local error:
| 8.5b | (cbrt (* (* (exp (- (+ (* y (log z)) (* (- t 1.0) (log a))) b)) (exp (- (+ (* y (log z)) (* (- t 1.0) (log a))) b))) (exp (- (+ (* y (log z)) (* (- t 1.0) (log a))) b)))) |
| 1.2b | (exp (- (+ (* y (log z)) (* (- t 1.0) (log a))) b)) |
| 1.2b | (exp (- (+ (* y (log z)) (* (- t 1.0) (log a))) b)) |
| 1.2b | (exp (- (+ (* y (log z)) (* (- t 1.0) (log a))) b)) |
4 calls. Slowest were:
| 376.0ms | (cbrt (* (* (exp (- (+ (* y (log z)) (* (- t 1.0) (log a))) b)) (exp (- (+ (* y (log z)) (* (- t 1.0) (log a))) b))) (exp (- (+ (* y (log z)) (* (- t 1.0) (log a))) b)))) |
| 47.0ms | (exp (- (+ (* y (log z)) (* (- t 1.0) (log a))) b)) |
| 30.0ms | (exp (- (+ (* y (log z)) (* (- t 1.0) (log a))) b)) |
4 calls. Slowest were:
| 172.0ms | (cbrt (* (* (exp (- (+ (* y (log z)) (* (- t 1.0) (log a))) b)) (exp (- (+ (* y (log z)) (* (- t 1.0) (log a))) b))) (exp (- (+ (* y (log z)) (* (- t 1.0) (log a))) b)))) |
| 164.0ms | (exp (- (+ (* y (log z)) (* (- t 1.0) (log a))) b)) |
| 160.0ms | (exp (- (+ (* y (log z)) (* (- t 1.0) (log a))) b)) |
| 144.0ms | (exp (- (+ (* y (log z)) (* (- t 1.0) (log a))) b)) |
45 calls. Slowest were:
| 368.0ms | (cbrt (* (* (exp (+ (* y (log z)) (* (- t 1.0) (log a)))) (exp (- (+ (* y (log z)) (* (- t 1.0) (log a))) b))) (exp (- (+ (* y (log z)) (* (- t 1.0) (log a))) b)))) |
| 302.0ms | (cbrt (* (* (exp (- (+ (* y (log z)) (* (- t 1.0) (log a))) b)) (exp (+ (* y (log z)) (* (- t 1.0) (log a))))) (exp (- (+ (* y (log z)) (* (- t 1.0) (log a))) b)))) |
| 299.0ms | (cbrt (* (* (exp (+ (* y (log z)) (* (- t 1.0) (log a)))) (exp (+ (* y (log z)) (* (- t 1.0) (log a))))) (exp (+ (* y (log z)) (* (- t 1.0) (log a)))))) |
8 alts after pruning (7 fresh and 1 done)
Merged error: 0.0b
Found 4 expressions with local error:
| 0.8b | (/ (* x (* (* (pow a (- 1.0)) (pow z y)) (exp (fma t (log a) (- b))))) y) |
| 0.7b | (* (* (pow a (- 1.0)) (pow z y)) (exp (fma t (log a) (- b)))) |
| 0.2b | (* (pow a (- 1.0)) (pow z y)) |
| 0.1b | (fma t (log a) (- b)) |
4 calls. Slowest were:
| 15.0ms | (* (* (pow a (- 1.0)) (pow z y)) (exp (fma t (log a) (- b)))) |
| 14.0ms | (/ (* x (* (* (pow a (- 1.0)) (pow z y)) (exp (fma t (log a) (- b))))) y) |
| 4.0ms | (* (pow a (- 1.0)) (pow z y)) |
4 calls. Slowest were:
| 442.0ms | (/ (* x (* (* (pow a (- 1.0)) (pow z y)) (exp (fma t (log a) (- b))))) y) |
| 287.0ms | (* (* (pow a (- 1.0)) (pow z y)) (exp (fma t (log a) (- b)))) |
| 198.0ms | (* (pow a (- 1.0)) (pow z y)) |
| 61.0ms | (fma t (log a) (- b)) |
41 calls. Slowest were:
| 411.0ms | (+ (+ (* (log a) (- 1.0)) (log (pow z y))) (fma t (log a) (- b))) |
| 391.0ms | (+ (+ (* (log a) (- 1.0)) (* (log z) y)) (fma t (log a) (- b))) |
| 367.0ms | (+ (* (pow (/ 1 (pow a 1.0)) 1.0) (/ (* x (* t (log a))) y)) (+ (* (pow (/ 1 (pow a 1.0)) 1.0) (* x (log z))) (* (pow (/ 1 (pow a 1.0)) 1.0) (/ x y)))) |
6 alts after pruning (5 fresh and 1 done)
Merged error: 0b
Found 4 expressions with local error:
| 0.8b | (/ (* x (* (* (pow a -1.0) (pow z y)) (exp (fma t (log a) (- b))))) y) |
| 0.7b | (* (* (pow a -1.0) (pow z y)) (exp (fma t (log a) (- b)))) |
| 0.2b | (* (pow a -1.0) (pow z y)) |
| 0.1b | (fma t (log a) (- b)) |
4 calls. Slowest were:
| 18.0ms | (* (* (pow a -1.0) (pow z y)) (exp (fma t (log a) (- b)))) |
| 11.0ms | (/ (* x (* (* (pow a -1.0) (pow z y)) (exp (fma t (log a) (- b))))) y) |
| 5.0ms | (* (pow a -1.0) (pow z y)) |
4 calls. Slowest were:
| 376.0ms | (/ (* x (* (* (pow a -1.0) (pow z y)) (exp (fma t (log a) (- b))))) y) |
| 361.0ms | (* (* (pow a -1.0) (pow z y)) (exp (fma t (log a) (- b)))) |
| 242.0ms | (* (pow a -1.0) (pow z y)) |
| 68.0ms | (fma t (log a) (- b)) |
35 calls. Slowest were:
| 475.0ms | (+ (* (pow (/ 1 (pow a 1.0)) 1.0) (/ (* x (* t (log a))) y)) (+ (* (pow (/ 1 (pow a 1.0)) 1.0) (* x (log z))) (* (pow (/ 1 (pow a 1.0)) 1.0) (/ x y)))) |
| 380.0ms | (+ (* (pow (/ 1 (pow a 1.0)) 1.0) (* (log z) y)) (+ (* 1/2 (* (pow (/ 1 (pow a 1.0)) 1.0) (* (pow (log z) 2) (pow y 2)))) (pow (/ 1 (pow a 1.0)) 1.0))) |
| 321.0ms | (* (* (* (* (pow a -1.0) (pow z y)) (* (pow a -1.0) (pow z y))) (* (pow a -1.0) (pow z y))) (* (* (exp (fma t (log a) (- b))) (exp (fma t (log a) (- b)))) (exp (fma t (log a) (- b))))) |
6 alts after pruning (4 fresh and 2 done)
Merged error: 0b
83% (1.1b remaining)
Error of 1.1b against oracle of 0.0b and baseline of 6.3b