\frac{x \cdot e^{\left(y \cdot \log z + \left(t - 1\right) \cdot \log a\right) - b}}{y}\frac{x \cdot \frac{{\left(\frac{1}{a}\right)}^{1}}{e^{y \cdot \log \left(\frac{1}{z}\right) + \left(\log \left(\frac{1}{a}\right) \cdot t + b\right)}}}{y}double f(double x, double y, double z, double t, double a, double b) {
double r86980 = x;
double r86981 = y;
double r86982 = z;
double r86983 = log(r86982);
double r86984 = r86981 * r86983;
double r86985 = t;
double r86986 = 1.0;
double r86987 = r86985 - r86986;
double r86988 = a;
double r86989 = log(r86988);
double r86990 = r86987 * r86989;
double r86991 = r86984 + r86990;
double r86992 = b;
double r86993 = r86991 - r86992;
double r86994 = exp(r86993);
double r86995 = r86980 * r86994;
double r86996 = r86995 / r86981;
return r86996;
}
double f(double x, double y, double z, double t, double a, double b) {
double r86997 = x;
double r86998 = 1.0;
double r86999 = a;
double r87000 = r86998 / r86999;
double r87001 = 1.0;
double r87002 = pow(r87000, r87001);
double r87003 = y;
double r87004 = z;
double r87005 = r86998 / r87004;
double r87006 = log(r87005);
double r87007 = r87003 * r87006;
double r87008 = log(r87000);
double r87009 = t;
double r87010 = r87008 * r87009;
double r87011 = b;
double r87012 = r87010 + r87011;
double r87013 = r87007 + r87012;
double r87014 = exp(r87013);
double r87015 = r87002 / r87014;
double r87016 = r86997 * r87015;
double r87017 = r87016 / r87003;
return r87017;
}



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
Simplified1.2
Final simplification1.2
herbie shell --seed 2020002
(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))