\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 + \left(t - 1\right) \cdot \log a\right) - b}}{y}double f(double x, double y, double z, double t, double a, double b) {
double r416033 = x;
double r416034 = y;
double r416035 = z;
double r416036 = log(r416035);
double r416037 = r416034 * r416036;
double r416038 = t;
double r416039 = 1.0;
double r416040 = r416038 - r416039;
double r416041 = a;
double r416042 = log(r416041);
double r416043 = r416040 * r416042;
double r416044 = r416037 + r416043;
double r416045 = b;
double r416046 = r416044 - r416045;
double r416047 = exp(r416046);
double r416048 = r416033 * r416047;
double r416049 = r416048 / r416034;
return r416049;
}
double f(double x, double y, double z, double t, double a, double b) {
double r416050 = x;
double r416051 = y;
double r416052 = z;
double r416053 = log(r416052);
double r416054 = r416051 * r416053;
double r416055 = t;
double r416056 = 1.0;
double r416057 = r416055 - r416056;
double r416058 = a;
double r416059 = log(r416058);
double r416060 = r416057 * r416059;
double r416061 = r416054 + r416060;
double r416062 = b;
double r416063 = r416061 - r416062;
double r416064 = exp(r416063);
double r416065 = r416050 * r416064;
double r416066 = r416065 / r416051;
return r416066;
}




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.3 |
| Herbie | 1.9 |
Initial program 1.9
Final simplification1.9
herbie shell --seed 2019326
(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)) y)) (- (+ b 1) (* y (log z)))) (if (< t 852031.2288374073) (/ (* (/ x y) (pow a (- t 1))) (exp (- b (* (log z) y)))) (/ (* x (/ (pow a (- t 1)) y)) (- (+ b 1) (* y (log z))))))
(/ (* x (exp (- (+ (* y (log z)) (* (- t 1) (log a))) b))) y))