


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.6
rmApplied add-cube-cbrt3.6
Applied prod-diff22.5
Simplified20.7
Simplified1.7
Final simplification1.7
herbie shell --seed 2019008 +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: 51.4s)Debug log
1 calls. Slowest were:
| 292.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:
| 11.0ms | (- (/ (* z (sqrt (+ t a))) t) (* (- b c) (- (+ a (/ 5.0 6.0)) (/ 2.0 (* t 3.0))))) |
| 4.0ms | (* z (sqrt (+ t a))) |
| 4.0ms | (/ (* z (sqrt (+ t a))) t) |
4 calls. Slowest were:
| 153.0ms | (- (/ (* z (sqrt (+ t a))) t) (* (- b c) (- (+ a (/ 5.0 6.0)) (/ 2.0 (* t 3.0))))) |
| 78.0ms | (/ (* z (sqrt (+ t a))) t) |
| 43.0ms | (* z (sqrt (+ t a))) |
| 8.0ms | (/ 2.0 (* t 3.0)) |
92 calls. Slowest were:
| 595.0ms | (* t (* (+ b c) (* (- a (/ 5.0 6.0)) (* t 3.0)))) |
| 540.0ms | (- (* (* z (sqrt (+ t a))) (+ (+ a (/ 5.0 6.0)) (/ 2.0 (* t 3.0)))) (* t (* (- b c) (- (* (+ a (/ 5.0 6.0)) (+ a (/ 5.0 6.0))) (* (/ 2.0 (* t 3.0)) (/ 2.0 (* t 3.0))))))) |
| 507.0ms | (* (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))))) (- b c)) |
3 alts after pruning (3 fresh and 0 done)
Merged error: 0.0b
Found 4 expressions with local error:
| 4.6b | (* (/ z t) (sqrt (+ t a))) |
| 1.6b | (fma (- (+ a (/ 5.0 6.0)) (/ (/ 2.0 t) 3.0)) (- c b) (* (/ z t) (sqrt (+ t a)))) |
| 0.5b | (/ (/ 2.0 t) 3.0) |
| 0.0b | (+ a (/ 5.0 6.0)) |
4 calls. Slowest were:
| 9.0ms | (* (/ z t) (sqrt (+ t a))) |
| 5.0ms | (/ (/ 2.0 t) 3.0) |
| 2.0ms | (+ a (/ 5.0 6.0)) |
4 calls. Slowest were:
| 147.0ms | (fma (- (+ a (/ 5.0 6.0)) (/ (/ 2.0 t) 3.0)) (- c b) (* (/ z t) (sqrt (+ t a)))) |
| 53.0ms | (* (/ z t) (sqrt (+ t a))) |
| 15.0ms | (+ a (/ 5.0 6.0)) |
| 12.0ms | (/ (/ 2.0 t) 3.0) |
32 calls. Slowest were:
| 598.0ms | (* (* (* (/ z t) (/ z t)) (/ z t)) (* (* (sqrt (+ t a)) (sqrt (+ t a))) (sqrt (+ t a)))) |
| 139.0ms | (- (* a c) (+ (* a b) (* 0.8333333333333334 b))) |
| 134.0ms | (- (+ (* 0.6666666666666666 (/ b t)) (* 0.8333333333333334 c)) (* 0.6666666666666666 (/ c t))) |
3 alts after pruning (2 fresh and 1 done)
Merged error: 0.0b
Found 4 expressions with local error:
| 3.6b | (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:
| 23.0ms | (* (- b c) (- (+ a (/ 5.0 6.0)) (/ 2.0 (* t 3.0)))) |
| 4.0ms | (* z (sqrt (+ t a))) |
| 1.0ms | (/ 2.0 (* t 3.0)) |
4 calls. Slowest were:
| 170.0ms | (fma (* z (sqrt (+ t a))) (/ 1 t) (- (* (- b c) (- (+ a (/ 5.0 6.0)) (/ 2.0 (* t 3.0)))))) |
| 53.0ms | (* z (sqrt (+ t a))) |
| 40.0ms | (* (- b c) (- (+ a (/ 5.0 6.0)) (/ 2.0 (* t 3.0)))) |
| 13.0ms | (/ 2.0 (* t 3.0)) |
82 calls. Slowest were:
| 731.0ms | (+ (* (+ 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))))) |
| 666.0ms | (* (+ b c) (* (+ (* a a) (- (* (/ 5.0 6.0) (/ 5.0 6.0)) (* a (/ 5.0 6.0)))) (* t 3.0))) |
| 652.0ms | (* (+ (* b b) (+ (* c c) (* b c))) (* (- a (/ 5.0 6.0)) (* t 3.0))) |
3 alts after pruning (1 fresh and 2 done)
Merged error: 0.0b
Found 4 expressions with local error:
| 0.0b | (* y (exp (* 2.0 (fma (- c b) a (* 0.8333333333333334 c))))) |
| 0.0b | (fma (- c b) a (* 0.8333333333333334 c)) |
| 0.0b | (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:
| 107.0ms | (/ x (+ x (* y (exp (* 2.0 (fma (- c b) a (* 0.8333333333333334 c))))))) |
| 71.0ms | (* y (exp (* 2.0 (fma (- c b) a (* 0.8333333333333334 c))))) |
| 40.0ms | (exp (* 2.0 (fma (- c b) a (* 0.8333333333333334 c)))) |
| 38.0ms | (fma (- c b) a (* 0.8333333333333334 c)) |
26 calls. Slowest were:
| 475.0ms | (exp (* 2.0 (* (- c b) a))) |
| 464.0ms | (exp (* (* (- c b) a) 2.0)) |
| 326.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)))))))) |
3 alts after pruning (1 fresh and 2 done)
Merged error: 0.0b
0% (1.6b remaining)
Error of 1.7b against oracle of 0.0b and baseline of 1.7b