\frac{x \cdot e^{\left(y \cdot \log z + \left(t - 1\right) \cdot \log a\right) - b}}{y}\frac{e^{\left(-\log a\right) \cdot \left(1 - t\right) - \left(b - y \cdot \log z\right)}}{y} \cdot xdouble f(double x, double y, double z, double t, double a, double b) {
double r88491 = x;
double r88492 = y;
double r88493 = z;
double r88494 = log(r88493);
double r88495 = r88492 * r88494;
double r88496 = t;
double r88497 = 1.0;
double r88498 = r88496 - r88497;
double r88499 = a;
double r88500 = log(r88499);
double r88501 = r88498 * r88500;
double r88502 = r88495 + r88501;
double r88503 = b;
double r88504 = r88502 - r88503;
double r88505 = exp(r88504);
double r88506 = r88491 * r88505;
double r88507 = r88506 / r88492;
return r88507;
}
double f(double x, double y, double z, double t, double a, double b) {
double r88508 = a;
double r88509 = log(r88508);
double r88510 = -r88509;
double r88511 = 1.0;
double r88512 = t;
double r88513 = r88511 - r88512;
double r88514 = r88510 * r88513;
double r88515 = b;
double r88516 = y;
double r88517 = z;
double r88518 = log(r88517);
double r88519 = r88516 * r88518;
double r88520 = r88515 - r88519;
double r88521 = r88514 - r88520;
double r88522 = exp(r88521);
double r88523 = r88522 / r88516;
double r88524 = x;
double r88525 = r88523 * r88524;
return r88525;
}



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
Initial program 1.9
Taylor expanded around inf 1.9
Simplified2.1
Final simplification2.1
herbie shell --seed 2020042
(FPCore (x y z t a b)
:name "Numeric.SpecFunctions:incompleteBetaWorker from math-functions-0.1.5.2"
:precision binary64
(/ (* x (exp (- (+ (* y (log z)) (* (- t 1) (log a))) b))) y))