


Bits error versus x



Bits error versus y



Bits error versus z



Bits error versus t



Bits error versus a



Bits error versus b



Bits error versus c
Results
if t < -6.71262786876705e-162 or 4.08452459885081e-75 < t Initial program 2.6
rmApplied associate-/l*0.8
if -6.71262786876705e-162 < t < 4.08452459885081e-75Initial program 5.5
rmApplied associate-/l*7.1
rmApplied flip-+9.9
Applied frac-sub9.9
Applied associate-*r/9.9
Applied frac-sub11.2
Simplified4.3
Final simplification2.0
herbie shell --seed 2019007
(FPCore (x y z t a b c)
:name "Numeric.SpecFunctions:invIncompleteBetaWorker from math-functions-0.1.5.2"
(/ x (+ x (* y (exp (* 2.0 (- (/ (* z (sqrt (+ t a))) t) (* (- b c) (- (+ a (/ 5.0 6.0)) (/ 2.0 (* t 3.0)))))))))))
Time bar (total: 2.7m)Debug log
1 calls. Slowest were:
| 196.0ms | (/ x (+ x (* y (exp (* 2.0 (- (/ (* z (sqrt (+ t a))) t) (* (- b c) (- (+ a (/ 5.0 6.0)) (/ 2.0 (* t 3.0)))))))))) |
1 alts after pruning (1 fresh and 0 done)
Merged error: 3.4b
Found 4 expressions with local error:
| 6.1b | (/ (* z (sqrt (+ t a))) t) |
| 2.0b | (- (/ (* z (sqrt (+ t a))) t) (* (- b c) (- (+ a (/ 5.0 6.0)) (/ 2.0 (* t 3.0))))) |
| 0.2b | (* z (sqrt (+ t a))) |
| 0.2b | (/ 2.0 (* t 3.0)) |
4 calls. Slowest were:
| 9.0ms | (- (/ (* z (sqrt (+ t a))) t) (* (- b c) (- (+ a (/ 5.0 6.0)) (/ 2.0 (* t 3.0))))) |
| 4.0ms | (/ (* z (sqrt (+ t a))) t) |
| 2.0ms | (* z (sqrt (+ t a))) |
4 calls. Slowest were:
| 157.0ms | (- (/ (* z (sqrt (+ t a))) t) (* (- b c) (- (+ a (/ 5.0 6.0)) (/ 2.0 (* t 3.0))))) |
| 63.0ms | (* z (sqrt (+ t a))) |
| 61.0ms | (/ (* z (sqrt (+ t a))) t) |
| 14.0ms | (/ 2.0 (* t 3.0)) |
57 calls. Slowest were:
| 477.0ms | (* t (* (+ b c) (* (- a (/ 5.0 6.0)) (* t 3.0)))) |
| 469.0ms | (- (* (* z (sqrt (+ t a))) (* (+ b c) (+ (* (+ a (/ 5.0 6.0)) (+ a (/ 5.0 6.0))) (+ (* (/ 2.0 (* t 3.0)) (/ 2.0 (* t 3.0))) (* (+ a (/ 5.0 6.0)) (/ 2.0 (* t 3.0))))))) (* t (* (- (* b b) (* c c)) (- (pow (+ a (/ 5.0 6.0)) 3) (pow (/ 2.0 (* t 3.0)) 3))))) |
| 449.0ms | (- (* (* z (sqrt (+ t a))) (* (+ (* b b) (+ (* c c) (* b c))) (+ (* (+ a (/ 5.0 6.0)) (+ a (/ 5.0 6.0))) (+ (* (/ 2.0 (* t 3.0)) (/ 2.0 (* t 3.0))) (* (+ a (/ 5.0 6.0)) (/ 2.0 (* t 3.0))))))) (* t (* (- (pow b 3) (pow c 3)) (- (pow (+ a (/ 5.0 6.0)) 3) (pow (/ 2.0 (* t 3.0)) 3))))) |
5 alts after pruning (5 fresh and 0 done)
Merged error: 0.5b
Found 4 expressions with local error:
| 2.0b | (- (/ z (/ t (sqrt (+ t a)))) (* (- b c) (- (+ a (/ 5.0 6.0)) (/ 2.0 (* t 3.0))))) |
| 0.4b | (/ z (/ t (sqrt (+ t a)))) |
| 0.4b | (/ t (sqrt (+ t a))) |
| 0.2b | (/ 2.0 (* t 3.0)) |
4 calls. Slowest were:
| 15.0ms | (- (/ z (/ t (sqrt (+ t a)))) (* (- b c) (- (+ a (/ 5.0 6.0)) (/ 2.0 (* t 3.0))))) |
| 1.0ms | (/ t (sqrt (+ t a))) |
| 1.0ms | (/ z (/ t (sqrt (+ t a)))) |
4 calls. Slowest were:
| 186.0ms | (- (/ z (/ t (sqrt (+ t a)))) (* (- b c) (- (+ a (/ 5.0 6.0)) (/ 2.0 (* t 3.0))))) |
| 46.0ms | (/ t (sqrt (+ t a))) |
| 43.0ms | (/ z (/ t (sqrt (+ t a)))) |
| 8.0ms | (/ 2.0 (* t 3.0)) |
62 calls. Slowest were:
| 519.0ms | (* (/ t (sqrt (+ t a))) (* (+ (* a a) (- (* (/ 5.0 6.0) (/ 5.0 6.0)) (* a (/ 5.0 6.0)))) (* t 3.0))) |
| 455.0ms | (- (* z (* (+ (* b b) (+ (* c c) (* b c))) (+ (* (+ a (/ 5.0 6.0)) (+ a (/ 5.0 6.0))) (+ (* (/ 2.0 (* t 3.0)) (/ 2.0 (* t 3.0))) (* (+ a (/ 5.0 6.0)) (/ 2.0 (* t 3.0))))))) (* (/ t (sqrt (+ t a))) (* (- (pow b 3) (pow c 3)) (- (pow (+ a (/ 5.0 6.0)) 3) (pow (/ 2.0 (* t 3.0)) 3))))) |
| 384.0ms | (- (* z (* (+ b c) (+ (* (+ a (/ 5.0 6.0)) (+ a (/ 5.0 6.0))) (+ (* (/ 2.0 (* t 3.0)) (/ 2.0 (* t 3.0))) (* (+ a (/ 5.0 6.0)) (/ 2.0 (* t 3.0))))))) (* (/ t (sqrt (+ t a))) (* (- (* b b) (* c c)) (- (pow (+ a (/ 5.0 6.0)) 3) (pow (/ 2.0 (* t 3.0)) 3))))) |
3 alts after pruning (2 fresh and 1 done)
Merged error: 0b
Found 4 expressions with local error:
| 16.6b | (/ (- (* z (+ b c)) (* (/ t (sqrt (+ t a))) (* (- (* b b) (* c c)) (- (+ a (/ 5.0 6.0)) (/ 2.0 (* t 3.0)))))) (* (/ t (sqrt (+ t a))) (+ b c))) |
| 6.6b | (* (/ t (sqrt (+ t a))) (* (- (* b b) (* c c)) (- (+ a (/ 5.0 6.0)) (/ 2.0 (* t 3.0))))) |
| 5.8b | (- (* b b) (* c c)) |
| 4.6b | (- (* z (+ b c)) (* (/ t (sqrt (+ t a))) (* (- (* b b) (* c c)) (- (+ a (/ 5.0 6.0)) (/ 2.0 (* t 3.0)))))) |
4 calls. Slowest were:
| 42.0ms | (* (/ t (sqrt (+ t a))) (* (- (* b b) (* c c)) (- (+ a (/ 5.0 6.0)) (/ 2.0 (* t 3.0))))) |
| 39.0ms | (- (* z (+ b c)) (* (/ t (sqrt (+ t a))) (* (- (* b b) (* c c)) (- (+ a (/ 5.0 6.0)) (/ 2.0 (* t 3.0)))))) |
| 26.0ms | (/ (- (* z (+ b c)) (* (/ t (sqrt (+ t a))) (* (- (* b b) (* c c)) (- (+ a (/ 5.0 6.0)) (/ 2.0 (* t 3.0)))))) (* (/ t (sqrt (+ t a))) (+ b c))) |
4 calls. Slowest were:
| 876.0ms | (/ (- (* z (+ b c)) (* (/ t (sqrt (+ t a))) (* (- (* b b) (* c c)) (- (+ a (/ 5.0 6.0)) (/ 2.0 (* t 3.0)))))) (* (/ t (sqrt (+ t a))) (+ b c))) |
| 712.0ms | (- (* z (+ b c)) (* (/ t (sqrt (+ t a))) (* (- (* b b) (* c c)) (- (+ a (/ 5.0 6.0)) (/ 2.0 (* t 3.0)))))) |
| 379.0ms | (* (/ t (sqrt (+ t a))) (* (- (* b b) (* c c)) (- (+ a (/ 5.0 6.0)) (/ 2.0 (* t 3.0))))) |
| 16.0ms | (- (* b b) (* c c)) |
291 calls. Slowest were:
| 939.0ms | (- (* (* z (- (* b b) (* c c))) (+ (* (+ a (/ 5.0 6.0)) (+ a (/ 5.0 6.0))) (+ (* (/ 2.0 (* t 3.0)) (/ 2.0 (* t 3.0))) (* (+ a (/ 5.0 6.0)) (/ 2.0 (* t 3.0)))))) (* (- b c) (* (/ t (sqrt (+ t a))) (* (- (* b b) (* c c)) (- (pow (+ a (/ 5.0 6.0)) 3) (pow (/ 2.0 (* t 3.0)) 3)))))) |
| 875.0ms | (* (/ t (sqrt (+ t a))) (* (- (/ 5.0 6.0) (/ 2.0 (* t 3.0))) (- (* b b) (* c c)))) |
| 802.0ms | (- (* (* z (- (* b b) (* c c))) (* (sqrt (+ t a)) (* (+ (* (* b b) (* b b)) (+ (* (* c c) (* c c)) (* (* b b) (* c c)))) (+ (+ a (/ 5.0 6.0)) (/ 2.0 (* t 3.0)))))) (* (- b c) (* t (* (- (pow (* b b) 3) (pow (* c c) 3)) (- (* (+ a (/ 5.0 6.0)) (+ a (/ 5.0 6.0))) (* (/ 2.0 (* t 3.0)) (/ 2.0 (* t 3.0)))))))) |
3 alts after pruning (1 fresh and 2 done)
Merged error: 0b
Found 4 expressions with local error:
| 26.4b | (/ (- (* (- a (/ 5.0 6.0)) (* z (* 3.0 t))) (* (* (- a (/ 5.0 6.0)) (- (* (* 3.0 t) (+ a (/ 5.0 6.0))) 2.0)) (/ (* t (- b c)) (sqrt (+ a t))))) (* (/ t (sqrt (+ t a))) (* (- a (/ 5.0 6.0)) (* t 3.0)))) |
| 7.4b | (/ (* t (- b c)) (sqrt (+ a t))) |
| 5.8b | (- (* (- a (/ 5.0 6.0)) (* z (* 3.0 t))) (* (* (- a (/ 5.0 6.0)) (- (* (* 3.0 t) (+ a (/ 5.0 6.0))) 2.0)) (/ (* t (- b c)) (sqrt (+ a t))))) |
| 2.6b | (* (* (- a (/ 5.0 6.0)) (- (* (* 3.0 t) (+ a (/ 5.0 6.0))) 2.0)) (/ (* t (- b c)) (sqrt (+ a t)))) |
4 calls. Slowest were:
| 67.0ms | (- (* (- a (/ 5.0 6.0)) (* z (* 3.0 t))) (* (* (- a (/ 5.0 6.0)) (- (* (* 3.0 t) (+ a (/ 5.0 6.0))) 2.0)) (/ (* t (- b c)) (sqrt (+ a t))))) |
| 65.0ms | (* (* (- a (/ 5.0 6.0)) (- (* (* 3.0 t) (+ a (/ 5.0 6.0))) 2.0)) (/ (* t (- b c)) (sqrt (+ a t)))) |
| 58.0ms | (/ (- (* (- a (/ 5.0 6.0)) (* z (* 3.0 t))) (* (* (- a (/ 5.0 6.0)) (- (* (* 3.0 t) (+ a (/ 5.0 6.0))) 2.0)) (/ (* t (- b c)) (sqrt (+ a t))))) (* (/ t (sqrt (+ t a))) (* (- a (/ 5.0 6.0)) (* t 3.0)))) |
4 calls. Slowest were:
| 1.3s | (/ (- (* (- a (/ 5.0 6.0)) (* z (* 3.0 t))) (* (* (- a (/ 5.0 6.0)) (- (* (* 3.0 t) (+ a (/ 5.0 6.0))) 2.0)) (/ (* t (- b c)) (sqrt (+ a t))))) (* (/ t (sqrt (+ t a))) (* (- a (/ 5.0 6.0)) (* t 3.0)))) |
| 747.0ms | (- (* (- a (/ 5.0 6.0)) (* z (* 3.0 t))) (* (* (- a (/ 5.0 6.0)) (- (* (* 3.0 t) (+ a (/ 5.0 6.0))) 2.0)) (/ (* t (- b c)) (sqrt (+ a t))))) |
| 171.0ms | (* (* (- a (/ 5.0 6.0)) (- (* (* 3.0 t) (+ a (/ 5.0 6.0))) 2.0)) (/ (* t (- b c)) (sqrt (+ a t)))) |
| 95.0ms | (/ (* t (- b c)) (sqrt (+ a t))) |
216 calls. Slowest were:
| 913.0ms | (- (* (* (- (pow a 3) (pow (/ 5.0 6.0) 3)) (* z (* 3.0 t))) (* (+ a (/ 5.0 6.0)) (+ (* (* 3.0 t) (+ a (/ 5.0 6.0))) 2.0))) (* (+ (* a a) (+ (* (/ 5.0 6.0) (/ 5.0 6.0)) (* a (/ 5.0 6.0)))) (* (* (- (* a a) (* (/ 5.0 6.0) (/ 5.0 6.0))) (- (* (* (* 3.0 t) (+ a (/ 5.0 6.0))) (* (* 3.0 t) (+ a (/ 5.0 6.0)))) (* 2.0 2.0))) (/ (* t (- b c)) (sqrt (+ a t)))))) |
| 897.0ms | (- (* (* (- (pow a 3) (pow (/ 5.0 6.0) 3)) (* z (* 3.0 t))) (+ (* (* 3.0 t) (+ a (/ 5.0 6.0))) 2.0)) (* (+ (* a a) (+ (* (/ 5.0 6.0) (/ 5.0 6.0)) (* a (/ 5.0 6.0)))) (* (* (- a (/ 5.0 6.0)) (- (* (* (* 3.0 t) (+ a (/ 5.0 6.0))) (* (* 3.0 t) (+ a (/ 5.0 6.0)))) (* 2.0 2.0))) (/ (* t (- b c)) (sqrt (+ a t)))))) |
| 666.0ms | (/ (* (* (- (* (- a (/ 5.0 6.0)) (* z (* 3.0 t))) (* (* (- a (/ 5.0 6.0)) (- (* (* 3.0 t) (+ a (/ 5.0 6.0))) 2.0)) (/ (* t (- b c)) (sqrt (+ a t))))) (- (* (- a (/ 5.0 6.0)) (* z (* 3.0 t))) (* (* (- a (/ 5.0 6.0)) (- (* (* 3.0 t) (+ a (/ 5.0 6.0))) 2.0)) (/ (* t (- b c)) (sqrt (+ a t)))))) (- (* (- a (/ 5.0 6.0)) (* z (* 3.0 t))) (* (* (- a (/ 5.0 6.0)) (- (* (* 3.0 t) (+ a (/ 5.0 6.0))) 2.0)) (/ (* t (- b c)) (sqrt (+ a t)))))) (* (* (* (/ t (sqrt (+ t a))) (/ t (sqrt (+ t a)))) (/ t (sqrt (+ t a)))) (* (* (* (- a (/ 5.0 6.0)) (- a (/ 5.0 6.0))) (- a (/ 5.0 6.0))) (* (* (* t 3.0) (* t 3.0)) (* t 3.0))))) |
3 alts after pruning (0 fresh and 3 done)
Merged error: 0b
39.5% (1.4b remaining)
Error of 2.0b against oracle of 0.6b and baseline of 2.9b