


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 a < -7.724721290750151e-15 or 6.951921396237591e+158 < a Initial program 6.0
Taylor expanded around -inf 6.0
Taylor expanded around inf 11.3
Simplified8.3
if -7.724721290750151e-15 < a < 6.951921396237591e+158Initial program 2.6
Taylor expanded around -inf 2.6
Taylor expanded around 0 11.3
Simplified10.1
Final simplification9.5
herbie shell --seed 2019008
(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: 48.0s)Debug log
1 calls. Slowest were:
| 228.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: 2.7b
Found 4 expressions with local error:
| 4.5b | (/ (* z (sqrt (+ t a))) t) |
| 1.9b | (- (/ (* 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:
| 9.0ms | (- (/ (* z (sqrt (+ t a))) t) (* (- b c) (- (+ a (/ 5.0 6.0)) (/ 2.0 (* t 3.0))))) |
| 7.0ms | (/ 2.0 (* t 3.0)) |
| 4.0ms | (/ (* z (sqrt (+ t a))) t) |
4 calls. Slowest were:
| 200.0ms | (- (/ (* z (sqrt (+ t a))) t) (* (- b c) (- (+ a (/ 5.0 6.0)) (/ 2.0 (* t 3.0))))) |
| 58.0ms | (* z (sqrt (+ t a))) |
| 46.0ms | (/ (* z (sqrt (+ t a))) t) |
| 14.0ms | (/ 2.0 (* t 3.0)) |
57 calls. Slowest were:
| 526.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))))) |
| 489.0ms | (* t (* (+ b c) (* (- a (/ 5.0 6.0)) (* t 3.0)))) |
| 396.0ms | (- (* (* z (sqrt (+ t a))) (* (+ (* b b) (+ (* c c) (* b c))) (+ (+ a (/ 5.0 6.0)) (/ 2.0 (* t 3.0))))) (* t (* (- (pow b 3) (pow c 3)) (- (* (+ a (/ 5.0 6.0)) (+ a (/ 5.0 6.0))) (* (/ 2.0 (* t 3.0)) (/ 2.0 (* t 3.0))))))) |
4 alts after pruning (4 fresh and 0 done)
Merged error: 0.5b
Found 4 expressions with local error:
| 4.5b | (/ (* z (sqrt (+ t a))) t) |
| 1.9b | (- (/ (* z (sqrt (+ t a))) t) (* (- b c) (- (+ a (/ 5.0 6.0)) (/ 0.6666666666666666 t)))) |
| 0.2b | (* z (sqrt (+ t a))) |
| 0.1b | (* (- b c) (- (+ a (/ 5.0 6.0)) (/ 0.6666666666666666 t))) |
4 calls. Slowest were:
| 20.0ms | (* (- b c) (- (+ a (/ 5.0 6.0)) (/ 0.6666666666666666 t))) |
| 15.0ms | (- (/ (* z (sqrt (+ t a))) t) (* (- b c) (- (+ a (/ 5.0 6.0)) (/ 0.6666666666666666 t)))) |
| 7.0ms | (/ (* z (sqrt (+ t a))) t) |
4 calls. Slowest were:
| 208.0ms | (- (/ (* z (sqrt (+ t a))) t) (* (- b c) (- (+ a (/ 5.0 6.0)) (/ 0.6666666666666666 t)))) |
| 60.0ms | (/ (* z (sqrt (+ t a))) t) |
| 59.0ms | (* z (sqrt (+ t a))) |
| 46.0ms | (* (- b c) (- (+ a (/ 5.0 6.0)) (/ 0.6666666666666666 t))) |
95 calls. Slowest were:
| 637.0ms | (- (* (* z (sqrt (+ t a))) (* (+ (* b b) (+ (* c c) (* b c))) (* (+ (* a a) (- (* (/ 5.0 6.0) (/ 5.0 6.0)) (* a (/ 5.0 6.0)))) t))) (* t (* (- (pow b 3) (pow c 3)) (- (* (+ (pow a 3) (pow (/ 5.0 6.0) 3)) t) (* (+ (* a a) (- (* (/ 5.0 6.0) (/ 5.0 6.0)) (* a (/ 5.0 6.0)))) 0.6666666666666666))))) |
| 615.0ms | (* (- (pow b 3) (pow c 3)) (- (* (+ a (/ 5.0 6.0)) (+ a (/ 5.0 6.0))) (* (/ 0.6666666666666666 t) (/ 0.6666666666666666 t)))) |
| 573.0ms | (* (+ (* b b) (+ (* c c) (* b c))) (* (+ (* a a) (- (* (/ 5.0 6.0) (/ 5.0 6.0)) (* a (/ 5.0 6.0)))) t)) |
3 alts after pruning (3 fresh and 0 done)
Merged error: 0.2b
Found 4 expressions with local error:
| 4.5b | (/ (* z (sqrt (+ t a))) t) |
| 1.3b | (- (/ (* z (sqrt (+ t a))) t) (+ (* 0.8333333333333334 b) (* (- c b) (/ 0.6666666666666666 t)))) |
| 0.2b | (* z (sqrt (+ t a))) |
| 0.2b | (* (- c b) (/ 0.6666666666666666 t)) |
4 calls. Slowest were:
| 16.0ms | (- (/ (* z (sqrt (+ t a))) t) (+ (* 0.8333333333333334 b) (* (- c b) (/ 0.6666666666666666 t)))) |
| 7.0ms | (* (- c b) (/ 0.6666666666666666 t)) |
| 5.0ms | (/ (* z (sqrt (+ t a))) t) |
4 calls. Slowest were:
| 158.0ms | (- (/ (* z (sqrt (+ t a))) t) (+ (* 0.8333333333333334 b) (* (- c b) (/ 0.6666666666666666 t)))) |
| 77.0ms | (/ (* z (sqrt (+ t a))) t) |
| 62.0ms | (* z (sqrt (+ t a))) |
| 35.0ms | (* (- c b) (/ 0.6666666666666666 t)) |
47 calls. Slowest were:
| 414.0ms | (* (* (* (- c b) (- c b)) (- c b)) (* (* (/ 0.6666666666666666 t) (/ 0.6666666666666666 t)) (/ 0.6666666666666666 t))) |
| 334.0ms | (* (- (* c c) (* b b)) 0.6666666666666666) |
| 321.0ms | (- (/ (* z (sqrt (+ t a))) t) (+ (* 0.8333333333333334 b) (* (- c b) (/ 0.6666666666666666 t)))) |
3 alts after pruning (2 fresh and 1 done)
Merged error: 0.2b
Found 4 expressions with local error:
| 0.0b | (* (- b c) a) |
| 0.0b | (* y (exp (* 2.0 (- (* 0.8333333333333334 c) (* (- b c) a))))) |
| 0.0b | (- (* 0.8333333333333334 c) (* (- b c) a)) |
| 0.0b | (/ x (+ x (* y (exp (* 2.0 (- (* 0.8333333333333334 c) (* (- b c) a))))))) |
4 calls. Slowest were:
| 4.0ms | (* y (exp (* 2.0 (- (* 0.8333333333333334 c) (* (- b c) a))))) |
| 2.0ms | (* (- b c) a) |
| 2.0ms | (- (* 0.8333333333333334 c) (* (- b c) a)) |
4 calls. Slowest were:
| 103.0ms | (/ x (+ x (* y (exp (* 2.0 (- (* 0.8333333333333334 c) (* (- b c) a))))))) |
| 68.0ms | (* y (exp (* 2.0 (- (* 0.8333333333333334 c) (* (- b c) a))))) |
| 27.0ms | (- (* 0.8333333333333334 c) (* (- b c) a)) |
| 22.0ms | (* (- b c) a) |
29 calls. Slowest were:
| 330.0ms | (* (- (* b b) (* c c)) a) |
| 254.0ms | (* (exp (* 2.0 (- (+ (* a c) (* 0.8333333333333334 c)) (* a b)))) y) |
| 244.0ms | (+ (* x x) (- (* (* y (exp (* 2.0 (- (* 0.8333333333333334 c) (* (- b c) a))))) (* y (exp (* 2.0 (- (* 0.8333333333333334 c) (* (- b c) a)))))) (* x (* y (exp (* 2.0 (- (* 0.8333333333333334 c) (* (- b c) a)))))))) |
4 alts after pruning (2 fresh and 2 done)
Merged error: 0.0b
35.6% (9.2b remaining)
Error of 9.5b against oracle of 0.4b and baseline of 14.6b