\frac{x \cdot e^{\left(y \cdot \log z + \left(t - 1\right) \cdot \log a\right) - b}}{y}\frac{1}{\frac{\frac{y}{\frac{x}{e^{b - \mathsf{fma}\left(\log z, y, \log a \cdot t\right)}}}}{{\left(\frac{1}{{a}^{1}}\right)}^{1}}}double f(double x, double y, double z, double t, double a, double b) {
double r84237 = x;
double r84238 = y;
double r84239 = z;
double r84240 = log(r84239);
double r84241 = r84238 * r84240;
double r84242 = t;
double r84243 = 1.0;
double r84244 = r84242 - r84243;
double r84245 = a;
double r84246 = log(r84245);
double r84247 = r84244 * r84246;
double r84248 = r84241 + r84247;
double r84249 = b;
double r84250 = r84248 - r84249;
double r84251 = exp(r84250);
double r84252 = r84237 * r84251;
double r84253 = r84252 / r84238;
return r84253;
}
double f(double x, double y, double z, double t, double a, double b) {
double r84254 = 1.0;
double r84255 = y;
double r84256 = x;
double r84257 = b;
double r84258 = z;
double r84259 = log(r84258);
double r84260 = a;
double r84261 = log(r84260);
double r84262 = t;
double r84263 = r84261 * r84262;
double r84264 = fma(r84259, r84255, r84263);
double r84265 = r84257 - r84264;
double r84266 = exp(r84265);
double r84267 = r84256 / r84266;
double r84268 = r84255 / r84267;
double r84269 = 1.0;
double r84270 = pow(r84260, r84269);
double r84271 = r84254 / r84270;
double r84272 = pow(r84271, r84269);
double r84273 = r84268 / r84272;
double r84274 = r84254 / r84273;
return r84274;
}



Bits error versus x



Bits error versus y



Bits error versus z



Bits error versus t



Bits error versus a



Bits error versus b
Initial program 2.0
Taylor expanded around inf 2.0
Simplified1.3
Taylor expanded around inf 1.3
Simplified1.3
rmApplied *-un-lft-identity1.3
rmApplied clear-num1.4
Simplified1.2
Final simplification1.2
herbie shell --seed 2020047 +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))