


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
if y < -1.5324354381186935e-213Initial program 3.5
rmApplied *-un-lft-identity3.5
Applied prod-diff22.7
Simplified21.0
Simplified1.6
if -1.5324354381186935e-213 < y Initial program 3.6
rmApplied div-inv3.6
Applied fma-neg2.5
Final simplification2.1
herbie shell --seed 2019007 +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: 49.9s)Debug log
1 calls. Slowest were:
| 219.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:
| 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))) t) |
| 2.0ms | (* z (sqrt (+ t a))) |
4 calls. Slowest were:
| 171.0ms | (- (/ (* z (sqrt (+ t a))) t) (* (- b c) (- (+ a (/ 5.0 6.0)) (/ 2.0 (* t 3.0))))) |
| 57.0ms | (/ (* z (sqrt (+ t a))) t) |
| 44.0ms | (* z (sqrt (+ t a))) |
| 13.0ms | (/ 2.0 (* t 3.0)) |
92 calls. Slowest were:
| 779.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)) |
| 581.0ms | (* t (* (+ b c) (* (- a (/ 5.0 6.0)) (* t 3.0)))) |
| 558.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)))))) |
3 alts after pruning (3 fresh and 0 done)
Merged error: 0b
Found 4 expressions with local error:
| 5.7b | (* (/ z t) (sqrt (+ a t))) |
| 1.6b | (fma (- c b) (- (+ (/ 5.0 6.0) a) (/ 2.0 (* t 3.0))) (* (/ z t) (sqrt (+ a t)))) |
| 0.2b | (/ 2.0 (* t 3.0)) |
| 0.0b | (+ (/ 5.0 6.0) a) |
4 calls. Slowest were:
| 12.0ms | (* (/ z t) (sqrt (+ a t))) |
| 2.0ms | (+ (/ 5.0 6.0) a) |
| 0.0ms | (/ 2.0 (* t 3.0)) |
4 calls. Slowest were:
| 161.0ms | (fma (- c b) (- (+ (/ 5.0 6.0) a) (/ 2.0 (* t 3.0))) (* (/ z t) (sqrt (+ a t)))) |
| 42.0ms | (* (/ z t) (sqrt (+ a t))) |
| 16.0ms | (+ (/ 5.0 6.0) a) |
| 13.0ms | (/ 2.0 (* t 3.0)) |
32 calls. Slowest were:
| 483.0ms | (* (* (* (/ z t) (/ z t)) (/ z t)) (* (* (sqrt (+ a t)) (sqrt (+ a t))) (sqrt (+ a t)))) |
| 115.0ms | (- (* a c) (+ (* a b) (* 0.8333333333333334 b))) |
| 91.0ms | (* z (sqrt (- (* a a) (* t t)))) |
3 alts after pruning (2 fresh and 1 done)
Merged error: 0b
Found 4 expressions with local error:
| 5.7b | (fma (* z (sqrt (+ t a))) (/ 1 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)) |
| 0.1b | (* (- b c) (- (+ a (/ 5.0 6.0)) (/ 2.0 (* t 3.0)))) |
4 calls. Slowest were:
| 24.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:
| 199.0ms | (fma (* z (sqrt (+ t a))) (/ 1 t) (- (* (- b c) (- (+ a (/ 5.0 6.0)) (/ 2.0 (* t 3.0)))))) |
| 64.0ms | (* (- b c) (- (+ a (/ 5.0 6.0)) (/ 2.0 (* t 3.0)))) |
| 36.0ms | (* z (sqrt (+ t a))) |
| 12.0ms | (/ 2.0 (* t 3.0)) |
82 calls. Slowest were:
| 741.0ms | (* (+ (* b b) (+ (* c c) (* b c))) (* (- a (/ 5.0 6.0)) (* t 3.0))) |
| 578.0ms | (* (+ b c) (* (+ (* a a) (- (* (/ 5.0 6.0) (/ 5.0 6.0)) (* a (/ 5.0 6.0)))) (* t 3.0))) |
| 514.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 (1 fresh and 2 done)
Merged error: 0b
Found 3 expressions with local error:
| 0.2b | (* y (exp (* 2.0 (+ (fma (/ 0.6666666666666666 t) (- b c) (* 0.8333333333333334 c)) 0)))) |
| 0.1b | (fma (/ 0.6666666666666666 t) (- b c) (* 0.8333333333333334 c)) |
| 0.0b | (/ x (+ x (* y (exp (* 2.0 (+ (fma (/ 0.6666666666666666 t) (- b c) (* 0.8333333333333334 c)) 0)))))) |
3 calls. Slowest were:
| 3.0ms | (* y (exp (* 2.0 (+ (fma (/ 0.6666666666666666 t) (- b c) (* 0.8333333333333334 c)) 0)))) |
| 0.0ms | (/ x (+ x (* y (exp (* 2.0 (+ (fma (/ 0.6666666666666666 t) (- b c) (* 0.8333333333333334 c)) 0)))))) |
| 0.0ms | (fma (/ 0.6666666666666666 t) (- b c) (* 0.8333333333333334 c)) |
3 calls. Slowest were:
| 168.0ms | (/ x (+ x (* y (exp (* 2.0 (+ (fma (/ 0.6666666666666666 t) (- b c) (* 0.8333333333333334 c)) 0)))))) |
| 79.0ms | (* y (exp (* 2.0 (+ (fma (/ 0.6666666666666666 t) (- b c) (* 0.8333333333333334 c)) 0)))) |
| 43.0ms | (fma (/ 0.6666666666666666 t) (- b c) (* 0.8333333333333334 c)) |
19 calls. Slowest were:
| 615.0ms | (sqrt (+ x (* y (exp (* 2.0 (+ (fma (/ 0.6666666666666666 t) (- b c) (* 0.8333333333333334 c)) 0)))))) |
| 225.0ms | (sqrt (exp (* 2.0 (+ (fma (/ 0.6666666666666666 t) (- b c) (* 0.8333333333333334 c)) 0)))) |
| 210.0ms | (exp (* 2.0 (+ (fma (/ 0.6666666666666666 t) (- b c) (* 0.8333333333333334 c)) 0))) |
3 alts after pruning (0 fresh and 3 done)
Merged error: 0b
-23.6% (2.0b remaining)
Error of 2.1b against oracle of 0.1b and baseline of 1.7b