


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 < 1.666340051769319e-208Initial program 6.7
rmApplied associate-/l*7.7
rmApplied flip-+10.6
Applied frac-sub16.3
Applied associate-*r/16.3
Applied frac-sub17.5
Simplified11.3
rmApplied *-un-lft-identity11.3
Applied times-frac10.6
Simplified10.6
Simplified3.9
if 1.666340051769319e-208 < t Initial program 2.6
rmApplied associate-/l*1.1
Final simplification2.1
herbie shell --seed 2018362
(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: 1.2m)Debug log
1 alts after pruning (1 fresh and 0 done)
Merged error: 2.9b
Found 4 expressions with local error:
| 3.9b | (/ (* z (sqrt (+ t a))) t) |
| 1.8b | (- (/ (* z (sqrt (+ t a))) t) (* (- b c) (- (+ a (/ 5.0 6.0)) (/ 2.0 (* t 3.0))))) |
| 0.3b | (/ 2.0 (* t 3.0)) |
| 0.2b | (* z (sqrt (+ t a))) |
4 calls. Slowest were:
| 26.0ms | (- (/ (* z (sqrt (+ t a))) t) (* (- b c) (- (+ a (/ 5.0 6.0)) (/ 2.0 (* t 3.0))))) |
| 8.0ms | (/ (* z (sqrt (+ t a))) t) |
| 3.0ms | (* z (sqrt (+ t a))) |
4 calls. Slowest were:
| 183.0ms | (- (/ (* z (sqrt (+ t a))) t) (* (- b c) (- (+ a (/ 5.0 6.0)) (/ 2.0 (* t 3.0))))) |
| 62.0ms | (/ (* z (sqrt (+ t a))) t) |
| 56.0ms | (* z (sqrt (+ t a))) |
| 13.0ms | (/ 2.0 (* t 3.0)) |
57 calls. Slowest were:
| 533.0ms | (* t (* (+ b c) (* (- a (/ 5.0 6.0)) (* t 3.0)))) |
| 498.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))))) |
| 474.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))))) |
3 alts after pruning (3 fresh and 0 done)
Merged error: 0.2b
Found 4 expressions with local error:
| 1.8b | (- (/ z (/ t (sqrt (+ t a)))) (* (- b c) (- (+ a (/ 5.0 6.0)) (/ 2.0 (* t 3.0))))) |
| 1.8b | (/ z (/ t (sqrt (+ t a)))) |
| 0.4b | (/ t (sqrt (+ t a))) |
| 0.3b | (/ 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:
| 172.0ms | (- (/ z (/ t (sqrt (+ t a)))) (* (- b c) (- (+ a (/ 5.0 6.0)) (/ 2.0 (* t 3.0))))) |
| 48.0ms | (/ z (/ t (sqrt (+ t a)))) |
| 37.0ms | (/ t (sqrt (+ t a))) |
| 11.0ms | (/ 2.0 (* t 3.0)) |
62 calls. Slowest were:
| 559.0ms | (* (/ t (sqrt (+ t a))) (* (+ (* a a) (- (* (/ 5.0 6.0) (/ 5.0 6.0)) (* a (/ 5.0 6.0)))) (* t 3.0))) |
| 439.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))))) |
| 371.0ms | (* (/ t (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))))))) |
3 alts after pruning (2 fresh and 1 done)
Merged error: 0.2b
Found 4 expressions with local error:
| 23.7b | (/ (- (* (- 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)))) |
| 6.4b | (/ (* t (- b c)) (sqrt (+ a t))) |
| 4.2b | (* (* (- a (/ 5.0 6.0)) (- (* (* 3.0 t) (+ a (/ 5.0 6.0))) 2.0)) (/ (* t (- b c)) (sqrt (+ a t)))) |
| 3.8b | (* (- a (/ 5.0 6.0)) (* z (* 3.0 t))) |
4 calls. Slowest were:
| 106.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)))) |
| 33.0ms | (* (* (- a (/ 5.0 6.0)) (- (* (* 3.0 t) (+ a (/ 5.0 6.0))) 2.0)) (/ (* t (- b c)) (sqrt (+ a t)))) |
| 5.0ms | (* (- a (/ 5.0 6.0)) (* z (* 3.0 t))) |
4 calls. Slowest were:
| 1.7s | (/ (- (* (- 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)))) |
| 203.0ms | (* (* (- a (/ 5.0 6.0)) (- (* (* 3.0 t) (+ a (/ 5.0 6.0))) 2.0)) (/ (* t (- b c)) (sqrt (+ a t)))) |
| 105.0ms | (/ (* t (- b c)) (sqrt (+ a t))) |
| 45.0ms | (* (- a (/ 5.0 6.0)) (* z (* 3.0 t))) |
151 calls. Slowest were:
| 904.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)))))) |
| 721.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))) (* (- a (/ 5.0 6.0)) (* t 3.0))) (* (/ t (sqrt (+ t a))) (* (- a (/ 5.0 6.0)) (* t 3.0)))) (* (/ t (sqrt (+ t a))) (* (- a (/ 5.0 6.0)) (* t 3.0))))) |
| 708.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))))) |
2 alts after pruning (1 fresh and 1 done)
Merged error: 0b
Found 4 expressions with local error:
| 21.1b | (/ (* t (- b c)) (* (* t 3.0) (sqrt (+ a t)))) |
| 6.9b | (* (/ (sqrt (+ t a)) t) (- (* (/ z 1) 1) (* (/ (- (* (+ (/ 5.0 6.0) a) (* t 3.0)) 2.0) 1) (/ (* t (- b c)) (* (* t 3.0) (sqrt (+ a t))))))) |
| 2.5b | (* (/ (- (* (+ (/ 5.0 6.0) a) (* t 3.0)) 2.0) 1) (/ (* t (- b c)) (* (* t 3.0) (sqrt (+ a t))))) |
| 0.3b | (* (+ (/ 5.0 6.0) a) (* t 3.0)) |
4 calls. Slowest were:
| 30.0ms | (* (/ (- (* (+ (/ 5.0 6.0) a) (* t 3.0)) 2.0) 1) (/ (* t (- b c)) (* (* t 3.0) (sqrt (+ a t))))) |
| 17.0ms | (* (/ (sqrt (+ t a)) t) (- (* (/ z 1) 1) (* (/ (- (* (+ (/ 5.0 6.0) a) (* t 3.0)) 2.0) 1) (/ (* t (- b c)) (* (* t 3.0) (sqrt (+ a t))))))) |
| 13.0ms | (* (+ (/ 5.0 6.0) a) (* t 3.0)) |
4 calls. Slowest were:
| 1.4s | (* (/ (sqrt (+ t a)) t) (- (* (/ z 1) 1) (* (/ (- (* (+ (/ 5.0 6.0) a) (* t 3.0)) 2.0) 1) (/ (* t (- b c)) (* (* t 3.0) (sqrt (+ a t))))))) |
| 228.0ms | (* (/ (- (* (+ (/ 5.0 6.0) a) (* t 3.0)) 2.0) 1) (/ (* t (- b c)) (* (* t 3.0) (sqrt (+ a t))))) |
| 144.0ms | (/ (* t (- b c)) (* (* t 3.0) (sqrt (+ a t)))) |
| 29.0ms | (* (+ (/ 5.0 6.0) a) (* t 3.0)) |
82 calls. Slowest were:
| 696.0ms | (* (* (* (/ (- (* (+ (/ 5.0 6.0) a) (* t 3.0)) 2.0) 1) (/ (- (* (+ (/ 5.0 6.0) a) (* t 3.0)) 2.0) 1)) (/ (- (* (+ (/ 5.0 6.0) a) (* t 3.0)) 2.0) 1)) (/ (* (* (* t (- b c)) (* t (- b c))) (* t (- b c))) (* (* (* (* t 3.0) (sqrt (+ a t))) (* (* t 3.0) (sqrt (+ a t)))) (* (* t 3.0) (sqrt (+ a t)))))) |
| 625.0ms | (* (* (* (/ (- (* (+ (/ 5.0 6.0) a) (* t 3.0)) 2.0) 1) (/ (- (* (+ (/ 5.0 6.0) a) (* t 3.0)) 2.0) 1)) (/ (- (* (+ (/ 5.0 6.0) a) (* t 3.0)) 2.0) 1)) (/ (* (* (* t (- b c)) (* t (- b c))) (* t (- b c))) (* (* (* (* t 3.0) (* t 3.0)) (* t 3.0)) (* (* (sqrt (+ a t)) (sqrt (+ a t))) (sqrt (+ a t)))))) |
| 544.0ms | (* (* (* (/ (- (* (+ (/ 5.0 6.0) a) (* t 3.0)) 2.0) 1) (/ (- (* (+ (/ 5.0 6.0) a) (* t 3.0)) 2.0) 1)) (/ (- (* (+ (/ 5.0 6.0) a) (* t 3.0)) 2.0) 1)) (* (* (/ (* t (- b c)) (* (* t 3.0) (sqrt (+ a t)))) (/ (* t (- b c)) (* (* t 3.0) (sqrt (+ a t))))) (/ (* t (- b c)) (* (* t 3.0) (sqrt (+ a t)))))) |
2 alts after pruning (0 fresh and 2 done)
Merged error: 0b
39.7% (2.0b remaining)
Error of 2.1b against oracle of 0.1b and baseline of 3.4b