x \cdot e^{y \cdot \left(\log z - t\right) + a \cdot \left(\log \left(1 - z\right) - b\right)}\left(x \cdot \sqrt{e^{y \cdot \left(\log z - t\right) + a \cdot \left(\left(\log 1 - \left(\frac{1}{2} \cdot \frac{{z}^{2}}{{1}^{2}} + 1 \cdot z\right)\right) - b\right)}}\right) \cdot \sqrt{e^{y \cdot \left(\log z - t\right) + a \cdot \left(\left(\log 1 - \left(\frac{1}{2} \cdot \frac{{z}^{2}}{{1}^{2}} + 1 \cdot z\right)\right) - b\right)}}double f(double x, double y, double z, double t, double a, double b) {
double r137855 = x;
double r137856 = y;
double r137857 = z;
double r137858 = log(r137857);
double r137859 = t;
double r137860 = r137858 - r137859;
double r137861 = r137856 * r137860;
double r137862 = a;
double r137863 = 1.0;
double r137864 = r137863 - r137857;
double r137865 = log(r137864);
double r137866 = b;
double r137867 = r137865 - r137866;
double r137868 = r137862 * r137867;
double r137869 = r137861 + r137868;
double r137870 = exp(r137869);
double r137871 = r137855 * r137870;
return r137871;
}
double f(double x, double y, double z, double t, double a, double b) {
double r137872 = x;
double r137873 = y;
double r137874 = z;
double r137875 = log(r137874);
double r137876 = t;
double r137877 = r137875 - r137876;
double r137878 = r137873 * r137877;
double r137879 = a;
double r137880 = 1.0;
double r137881 = log(r137880);
double r137882 = 0.5;
double r137883 = 2.0;
double r137884 = pow(r137874, r137883);
double r137885 = pow(r137880, r137883);
double r137886 = r137884 / r137885;
double r137887 = r137882 * r137886;
double r137888 = r137880 * r137874;
double r137889 = r137887 + r137888;
double r137890 = r137881 - r137889;
double r137891 = b;
double r137892 = r137890 - r137891;
double r137893 = r137879 * r137892;
double r137894 = r137878 + r137893;
double r137895 = exp(r137894);
double r137896 = sqrt(r137895);
double r137897 = r137872 * r137896;
double r137898 = r137897 * r137896;
return r137898;
}



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
Taylor expanded around 0 0.5
rmApplied add-sqr-sqrt0.5
Applied associate-*r*0.5
Final simplification0.5
herbie shell --seed 2020042
(FPCore (x y z t a b)
:name "Numeric.SpecFunctions:incompleteBetaApprox from math-functions-0.1.5.2, B"
:precision binary64
(* x (exp (+ (* y (- (log z) t)) (* a (- (log (- 1 z)) b))))))