\frac{x \cdot e^{\left(y \cdot \log z + \left(t - 1\right) \cdot \log a\right) - b}}{y}x \cdot \frac{e^{\log z \cdot y - \left(b - \log a \cdot \left(t - 1\right)\right)}}{y}double f(double x, double y, double z, double t, double a, double b) {
double r237908 = x;
double r237909 = y;
double r237910 = z;
double r237911 = log(r237910);
double r237912 = r237909 * r237911;
double r237913 = t;
double r237914 = 1.0;
double r237915 = r237913 - r237914;
double r237916 = a;
double r237917 = log(r237916);
double r237918 = r237915 * r237917;
double r237919 = r237912 + r237918;
double r237920 = b;
double r237921 = r237919 - r237920;
double r237922 = exp(r237921);
double r237923 = r237908 * r237922;
double r237924 = r237923 / r237909;
return r237924;
}
double f(double x, double y, double z, double t, double a, double b) {
double r237925 = x;
double r237926 = z;
double r237927 = log(r237926);
double r237928 = y;
double r237929 = r237927 * r237928;
double r237930 = b;
double r237931 = a;
double r237932 = log(r237931);
double r237933 = t;
double r237934 = 1.0;
double r237935 = r237933 - r237934;
double r237936 = r237932 * r237935;
double r237937 = r237930 - r237936;
double r237938 = r237929 - r237937;
double r237939 = exp(r237938);
double r237940 = r237939 / r237928;
double r237941 = r237925 * r237940;
return r237941;
}



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 *-un-lft-identity2.0
Applied times-frac2.1
Simplified2.1
Simplified18.2
rmApplied add-exp-log18.9
Applied pow-exp18.9
Applied div-exp13.4
Applied add-exp-log13.4
Applied pow-exp13.4
Applied div-exp2.1
Final simplification2.1
herbie shell --seed 2019323 +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))