


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
Initial program 3.9
rmApplied div-inv3.9
Applied fma-neg2.6
Final simplification2.6
herbie shell --seed 2019002 +o rules:numerics
(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: 56.6s)Debug log
1 calls. Slowest were:
| 345.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: 1.2b
Found 4 expressions with local error:
| 4.8b | (/ (* z (sqrt (+ t a))) t) |
| 0.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:
| 10.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:
| 161.0ms | (- (/ (* z (sqrt (+ t a))) t) (* (- b c) (- (+ a (/ 5.0 6.0)) (/ 2.0 (* t 3.0))))) |
| 59.0ms | (/ (* z (sqrt (+ t a))) t) |
| 35.0ms | (* z (sqrt (+ t a))) |
| 8.0ms | (/ 2.0 (* t 3.0)) |
92 calls. Slowest were:
| 757.0ms | (* t (* (+ (* a a) (- (* (/ 5.0 6.0) (/ 5.0 6.0)) (* a (/ 5.0 6.0)))) (* t 3.0))) |
| 627.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))))) |
| 618.0ms | (* t (* (+ b c) (* (- a (/ 5.0 6.0)) (* t 3.0)))) |
2 alts after pruning (2 fresh and 0 done)
Merged error: 0.0b
Found 4 expressions with local error:
| 3.7b | (fma (* z (sqrt (+ t a))) (/ 1 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))) |
| 0.1b | (* (- b c) (- (+ a (/ 5.0 6.0)) (/ 2.0 (* t 3.0)))) |
4 calls. Slowest were:
| 16.0ms | (* (- b c) (- (+ a (/ 5.0 6.0)) (/ 2.0 (* t 3.0)))) |
| 2.0ms | (* z (sqrt (+ t a))) |
| 0.0ms | (/ 2.0 (* t 3.0)) |
4 calls. Slowest were:
| 163.0ms | (fma (* z (sqrt (+ t a))) (/ 1 t) (- (* (- b c) (- (+ a (/ 5.0 6.0)) (/ 2.0 (* t 3.0)))))) |
| 48.0ms | (* z (sqrt (+ t a))) |
| 45.0ms | (* (- b c) (- (+ a (/ 5.0 6.0)) (/ 2.0 (* t 3.0)))) |
| 8.0ms | (/ 2.0 (* t 3.0)) |
82 calls. Slowest were:
| 825.0ms | (* (+ b c) (* (+ (* a a) (- (* (/ 5.0 6.0) (/ 5.0 6.0)) (* a (/ 5.0 6.0)))) (* t 3.0))) |
| 818.0ms | (* (+ (* b b) (+ (* c c) (* b c))) (* (- a (/ 5.0 6.0)) (* t 3.0))) |
| 654.0ms | (* (- b c) (fma (- (sqrt (/ 2.0 (* t 3.0)))) (sqrt (/ 2.0 (* t 3.0))) (* (sqrt (/ 2.0 (* t 3.0))) (sqrt (/ 2.0 (* t 3.0)))))) |
2 alts after pruning (1 fresh and 1 done)
Merged error: 0.0b
Found 4 expressions with local error:
| 0.0b | (exp (* 2.0 (fma (- c b) a (* 0.8333333333333334 c)))) |
| 0.0b | (fma (- c b) a (* 0.8333333333333334 c)) |
| 0.0b | (* y (exp (* 2.0 (fma (- c b) a (* 0.8333333333333334 c))))) |
| 0.0b | (/ x (+ x (* y (exp (* 2.0 (fma (- c b) a (* 0.8333333333333334 c))))))) |
4 calls. Slowest were:
| 3.0ms | (* y (exp (* 2.0 (fma (- c b) a (* 0.8333333333333334 c))))) |
| 2.0ms | (exp (* 2.0 (fma (- c b) a (* 0.8333333333333334 c)))) |
| 0.0ms | (/ x (+ x (* y (exp (* 2.0 (fma (- c b) a (* 0.8333333333333334 c))))))) |
4 calls. Slowest were:
| 129.0ms | (/ x (+ x (* y (exp (* 2.0 (fma (- c b) a (* 0.8333333333333334 c))))))) |
| 92.0ms | (* y (exp (* 2.0 (fma (- c b) a (* 0.8333333333333334 c))))) |
| 34.0ms | (exp (* 2.0 (fma (- c b) a (* 0.8333333333333334 c)))) |
| 26.0ms | (fma (- c b) a (* 0.8333333333333334 c)) |
26 calls. Slowest were:
| 871.0ms | (exp (* (* (- c b) a) 2.0)) |
| 447.0ms | (exp (* 2.0 (* (- c b) a))) |
| 349.0ms | (+ (* x x) (- (* (* y (exp (* 2.0 (fma (- c b) a (* 0.8333333333333334 c))))) (* y (exp (* 2.0 (fma (- c b) a (* 0.8333333333333334 c)))))) (* x (* y (exp (* 2.0 (fma (- c b) a (* 0.8333333333333334 c)))))))) |
2 alts after pruning (1 fresh and 1 done)
Merged error: 0b
Found 4 expressions with local error:
| 0.5b | (expm1 (/ x (+ x (* y (exp (* 2.0 (fma (- c b) a (* 0.8333333333333334 c)))))))) |
| 0.0b | (exp (* 2.0 (fma (- c b) a (* 0.8333333333333334 c)))) |
| 0.0b | (fma (- c b) a (* 0.8333333333333334 c)) |
| 0.0b | (* y (exp (* 2.0 (fma (- c b) a (* 0.8333333333333334 c))))) |
4 calls. Slowest were:
| 6.0ms | (* y (exp (* 2.0 (fma (- c b) a (* 0.8333333333333334 c))))) |
| 4.0ms | (exp (* 2.0 (fma (- c b) a (* 0.8333333333333334 c)))) |
| 1.0ms | (expm1 (/ x (+ x (* y (exp (* 2.0 (fma (- c b) a (* 0.8333333333333334 c)))))))) |
4 calls. Slowest were:
| 160.0ms | (expm1 (/ x (+ x (* y (exp (* 2.0 (fma (- c b) a (* 0.8333333333333334 c)))))))) |
| 55.0ms | (* y (exp (* 2.0 (fma (- c b) a (* 0.8333333333333334 c))))) |
| 46.0ms | (exp (* 2.0 (fma (- c b) a (* 0.8333333333333334 c)))) |
| 31.0ms | (fma (- c b) a (* 0.8333333333333334 c)) |
22 calls. Slowest were:
| 532.0ms | (exp (* 2.0 (* (- c b) a))) |
| 529.0ms | (exp (* (* (- c b) a) 2.0)) |
| 256.0ms | (/ x (+ x (* y (exp (* 2.0 (fma (- c b) a (* 0.8333333333333334 c))))))) |
2 alts after pruning (0 fresh and 2 done)
Merged error: 0b
0% (1.7b remaining)
Error of 2.6b against oracle of 0.9b and baseline of 2.6b