\frac{x \cdot e^{\left(y \cdot \log z + \left(t - 1\right) \cdot \log a\right) - b}}{y}\frac{x \cdot e^{\left(\left(t - 1\right) \cdot \log a + \log z \cdot y\right) - b}}{y}double f(double x, double y, double z, double t, double a, double b) {
double r90073 = x;
double r90074 = y;
double r90075 = z;
double r90076 = log(r90075);
double r90077 = r90074 * r90076;
double r90078 = t;
double r90079 = 1.0;
double r90080 = r90078 - r90079;
double r90081 = a;
double r90082 = log(r90081);
double r90083 = r90080 * r90082;
double r90084 = r90077 + r90083;
double r90085 = b;
double r90086 = r90084 - r90085;
double r90087 = exp(r90086);
double r90088 = r90073 * r90087;
double r90089 = r90088 / r90074;
return r90089;
}
double f(double x, double y, double z, double t, double a, double b) {
double r90090 = x;
double r90091 = t;
double r90092 = 1.0;
double r90093 = r90091 - r90092;
double r90094 = a;
double r90095 = log(r90094);
double r90096 = r90093 * r90095;
double r90097 = z;
double r90098 = log(r90097);
double r90099 = y;
double r90100 = r90098 * r90099;
double r90101 = r90096 + r90100;
double r90102 = b;
double r90103 = r90101 - r90102;
double r90104 = exp(r90103);
double r90105 = r90090 * r90104;
double r90106 = r90105 / r90099;
return r90106;
}



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 2.0
rmApplied pow12.0
Applied pow12.0
Applied pow-prod-down2.0
Simplified2.0
Final simplification2.0
herbie shell --seed 2019303 +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))