x \cdot e^{y \cdot \left(\log z - t\right) + a \cdot \left(\log \left(1.0 - z\right) - b\right)}\left(x \cdot \sqrt{e^{a \cdot \left(\left(\left(\log 1.0 - z \cdot 1.0\right) + \left(\frac{z}{1.0} \cdot \frac{z}{1.0}\right) \cdot \frac{-1}{2}\right) - b\right) + \left(\log z - t\right) \cdot y}}\right) \cdot \sqrt{e^{a \cdot \left(\left(\left(\log 1.0 - z \cdot 1.0\right) + \left(\frac{z}{1.0} \cdot \frac{z}{1.0}\right) \cdot \frac{-1}{2}\right) - b\right) + \left(\log z - t\right) \cdot y}}double f(double x, double y, double z, double t, double a, double b) {
double r8959882 = x;
double r8959883 = y;
double r8959884 = z;
double r8959885 = log(r8959884);
double r8959886 = t;
double r8959887 = r8959885 - r8959886;
double r8959888 = r8959883 * r8959887;
double r8959889 = a;
double r8959890 = 1.0;
double r8959891 = r8959890 - r8959884;
double r8959892 = log(r8959891);
double r8959893 = b;
double r8959894 = r8959892 - r8959893;
double r8959895 = r8959889 * r8959894;
double r8959896 = r8959888 + r8959895;
double r8959897 = exp(r8959896);
double r8959898 = r8959882 * r8959897;
return r8959898;
}
double f(double x, double y, double z, double t, double a, double b) {
double r8959899 = x;
double r8959900 = a;
double r8959901 = 1.0;
double r8959902 = log(r8959901);
double r8959903 = z;
double r8959904 = r8959903 * r8959901;
double r8959905 = r8959902 - r8959904;
double r8959906 = r8959903 / r8959901;
double r8959907 = r8959906 * r8959906;
double r8959908 = -0.5;
double r8959909 = r8959907 * r8959908;
double r8959910 = r8959905 + r8959909;
double r8959911 = b;
double r8959912 = r8959910 - r8959911;
double r8959913 = r8959900 * r8959912;
double r8959914 = log(r8959903);
double r8959915 = t;
double r8959916 = r8959914 - r8959915;
double r8959917 = y;
double r8959918 = r8959916 * r8959917;
double r8959919 = r8959913 + r8959918;
double r8959920 = exp(r8959919);
double r8959921 = sqrt(r8959920);
double r8959922 = r8959899 * r8959921;
double r8959923 = r8959922 * r8959921;
return r8959923;
}



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.8
Taylor expanded around 0 0.4
Simplified0.4
rmApplied add-sqr-sqrt0.4
Applied associate-*r*0.4
Final simplification0.4
herbie shell --seed 2019164
(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))))))