x \cdot e^{y \cdot \left(\log z - t\right) + a \cdot \left(\log \left(1.0 - z\right) - b\right)}e^{\mathsf{fma}\left(y, \log z - t, a \cdot \left(\left(\log 1.0 - \mathsf{fma}\left(z, 1.0, \frac{1}{2} \cdot \left(\frac{z}{1.0} \cdot \frac{z}{1.0}\right)\right)\right) - b\right)\right)} \cdot xdouble f(double x, double y, double z, double t, double a, double b) {
double r1562869 = x;
double r1562870 = y;
double r1562871 = z;
double r1562872 = log(r1562871);
double r1562873 = t;
double r1562874 = r1562872 - r1562873;
double r1562875 = r1562870 * r1562874;
double r1562876 = a;
double r1562877 = 1.0;
double r1562878 = r1562877 - r1562871;
double r1562879 = log(r1562878);
double r1562880 = b;
double r1562881 = r1562879 - r1562880;
double r1562882 = r1562876 * r1562881;
double r1562883 = r1562875 + r1562882;
double r1562884 = exp(r1562883);
double r1562885 = r1562869 * r1562884;
return r1562885;
}
double f(double x, double y, double z, double t, double a, double b) {
double r1562886 = y;
double r1562887 = z;
double r1562888 = log(r1562887);
double r1562889 = t;
double r1562890 = r1562888 - r1562889;
double r1562891 = a;
double r1562892 = 1.0;
double r1562893 = log(r1562892);
double r1562894 = 0.5;
double r1562895 = r1562887 / r1562892;
double r1562896 = r1562895 * r1562895;
double r1562897 = r1562894 * r1562896;
double r1562898 = fma(r1562887, r1562892, r1562897);
double r1562899 = r1562893 - r1562898;
double r1562900 = b;
double r1562901 = r1562899 - r1562900;
double r1562902 = r1562891 * r1562901;
double r1562903 = fma(r1562886, r1562890, r1562902);
double r1562904 = exp(r1562903);
double r1562905 = x;
double r1562906 = r1562904 * r1562905;
return r1562906;
}



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 1.9
Simplified1.7
Taylor expanded around 0 0.2
Simplified0.2
Final simplification0.2
herbie shell --seed 2019156 +o rules:numerics
(FPCore (x y z t a b)
:name "Numeric.SpecFunctions:incompleteBetaApprox from math-functions-0.1.5.2, B"
(* x (exp (+ (* y (- (log z) t)) (* a (- (log (- 1.0 z)) b))))))