\frac{x \cdot e^{\left(y \cdot \log z + \left(t - 1\right) \cdot \log a\right) - b}}{y}\frac{x \cdot e^{\left(y \cdot \log z + \log a \cdot \left(t - 1\right)\right) - b}}{y}(FPCore (x y z t a b) :precision binary64 (/ (* x (exp (- (+ (* y (log z)) (* (- t 1.0) (log a))) b))) y))
(FPCore (x y z t a b) :precision binary64 (/ (* x (exp (- (+ (* y (log z)) (* (log a) (- t 1.0))) b))) y))
double code(double x, double y, double z, double t, double a, double b) {
return (x * exp(((y * log(z)) + ((t - 1.0) * log(a))) - b)) / y;
}
double code(double x, double y, double z, double t, double a, double b) {
return (x * exp(((y * log(z)) + (log(a) * (t - 1.0))) - b)) / y;
}









Bits error versus x









Bits error versus y









Bits error versus z









Bits error versus t









Bits error versus a









Bits error versus b
Results
| Original | 1.9 |
|---|---|
| Target | 11.2 |
| Herbie | 1.9 |
| Alternative 1 | |
|---|---|
| Error | 2.0 |
| Cost | 20224 |
| Alternative 2 | |
|---|---|
| Error | 16.1 |
| Cost | 53635 |
| Alternative 3 | |
|---|---|
| Error | 16.1 |
| Cost | 53132 |
| Alternative 4 | |
|---|---|
| Error | 18.7 |
| Cost | 52672 |
| Alternative 5 | |
|---|---|
| Error | 28.0 |
| Cost | 52928 |

Initial program 1.9
Simplified1.9
Final simplification1.9
herbie shell --seed 2021043
(FPCore (x y z t a b)
:name "Numeric.SpecFunctions:incompleteBetaWorker from math-functions-0.1.5.2, A"
:precision binary64
:herbie-target
(if (< t -0.8845848504127471) (/ (* x (/ (pow a (- t 1.0)) y)) (- (+ b 1.0) (* y (log z)))) (if (< t 852031.2288374073) (/ (* (/ x y) (pow a (- t 1.0))) (exp (- b (* (log z) y)))) (/ (* x (/ (pow a (- t 1.0)) y)) (- (+ b 1.0) (* y (log z))))))
(/ (* x (exp (- (+ (* y (log z)) (* (- t 1.0) (log a))) b))) y))