\frac{x \cdot e^{\left(y \cdot \log z + \left(t - 1\right) \cdot \log a\right) - b}}{y}\frac{x}{\frac{y}{e^{\left(-\log a\right) \cdot \left(1 - t\right) - \left(b - y \cdot \log z\right)}}}double f(double x, double y, double z, double t, double a, double b) {
double r105604 = x;
double r105605 = y;
double r105606 = z;
double r105607 = log(r105606);
double r105608 = r105605 * r105607;
double r105609 = t;
double r105610 = 1.0;
double r105611 = r105609 - r105610;
double r105612 = a;
double r105613 = log(r105612);
double r105614 = r105611 * r105613;
double r105615 = r105608 + r105614;
double r105616 = b;
double r105617 = r105615 - r105616;
double r105618 = exp(r105617);
double r105619 = r105604 * r105618;
double r105620 = r105619 / r105605;
return r105620;
}
double f(double x, double y, double z, double t, double a, double b) {
double r105621 = x;
double r105622 = y;
double r105623 = a;
double r105624 = log(r105623);
double r105625 = -r105624;
double r105626 = 1.0;
double r105627 = t;
double r105628 = r105626 - r105627;
double r105629 = r105625 * r105628;
double r105630 = b;
double r105631 = z;
double r105632 = log(r105631);
double r105633 = r105622 * r105632;
double r105634 = r105630 - r105633;
double r105635 = r105629 - r105634;
double r105636 = exp(r105635);
double r105637 = r105622 / r105636;
double r105638 = r105621 / r105637;
return r105638;
}



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.0
Final simplification2.0
herbie shell --seed 2020042 +o rules:numerics
(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))