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^{\left(y \cdot \left(\sqrt[3]{\log z - t} \cdot \sqrt[3]{\log z - t}\right)\right) \cdot \sqrt[3]{\log z - t} + 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 r103003 = x;
double r103004 = y;
double r103005 = z;
double r103006 = log(r103005);
double r103007 = t;
double r103008 = r103006 - r103007;
double r103009 = r103004 * r103008;
double r103010 = a;
double r103011 = 1.0;
double r103012 = r103011 - r103005;
double r103013 = log(r103012);
double r103014 = b;
double r103015 = r103013 - r103014;
double r103016 = r103010 * r103015;
double r103017 = r103009 + r103016;
double r103018 = exp(r103017);
double r103019 = r103003 * r103018;
return r103019;
}
double f(double x, double y, double z, double t, double a, double b) {
double r103020 = x;
double r103021 = y;
double r103022 = z;
double r103023 = log(r103022);
double r103024 = t;
double r103025 = r103023 - r103024;
double r103026 = r103021 * r103025;
double r103027 = a;
double r103028 = 1.0;
double r103029 = log(r103028);
double r103030 = 0.5;
double r103031 = 2.0;
double r103032 = pow(r103022, r103031);
double r103033 = pow(r103028, r103031);
double r103034 = r103032 / r103033;
double r103035 = r103030 * r103034;
double r103036 = r103028 * r103022;
double r103037 = r103035 + r103036;
double r103038 = r103029 - r103037;
double r103039 = b;
double r103040 = r103038 - r103039;
double r103041 = r103027 * r103040;
double r103042 = r103026 + r103041;
double r103043 = exp(r103042);
double r103044 = sqrt(r103043);
double r103045 = r103020 * r103044;
double r103046 = cbrt(r103025);
double r103047 = r103046 * r103046;
double r103048 = r103021 * r103047;
double r103049 = r103048 * r103046;
double r103050 = r103049 + r103041;
double r103051 = exp(r103050);
double r103052 = sqrt(r103051);
double r103053 = r103045 * r103052;
return r103053;
}



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.1
Taylor expanded around 0 0.5
rmApplied add-sqr-sqrt0.5
Applied associate-*r*0.5
rmApplied add-cube-cbrt0.5
Applied associate-*r*0.5
Final simplification0.5
herbie shell --seed 2019294
(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))))))