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^{\mathsf{fma}\left(y, \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)\right)}}\right) \cdot \sqrt{\left(\sqrt[3]{e^{\mathsf{fma}\left(y, \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)\right)}} \cdot \sqrt[3]{e^{\mathsf{fma}\left(y, \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)\right)}}\right) \cdot \sqrt[3]{e^{\mathsf{fma}\left(y, \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)\right)}}}double f(double x, double y, double z, double t, double a, double b) {
double r149950 = x;
double r149951 = y;
double r149952 = z;
double r149953 = log(r149952);
double r149954 = t;
double r149955 = r149953 - r149954;
double r149956 = r149951 * r149955;
double r149957 = a;
double r149958 = 1.0;
double r149959 = r149958 - r149952;
double r149960 = log(r149959);
double r149961 = b;
double r149962 = r149960 - r149961;
double r149963 = r149957 * r149962;
double r149964 = r149956 + r149963;
double r149965 = exp(r149964);
double r149966 = r149950 * r149965;
return r149966;
}
double f(double x, double y, double z, double t, double a, double b) {
double r149967 = x;
double r149968 = y;
double r149969 = z;
double r149970 = log(r149969);
double r149971 = t;
double r149972 = r149970 - r149971;
double r149973 = a;
double r149974 = 1.0;
double r149975 = log(r149974);
double r149976 = 0.5;
double r149977 = 2.0;
double r149978 = pow(r149969, r149977);
double r149979 = pow(r149974, r149977);
double r149980 = r149978 / r149979;
double r149981 = r149976 * r149980;
double r149982 = r149974 * r149969;
double r149983 = r149981 + r149982;
double r149984 = r149975 - r149983;
double r149985 = b;
double r149986 = r149984 - r149985;
double r149987 = r149973 * r149986;
double r149988 = fma(r149968, r149972, r149987);
double r149989 = exp(r149988);
double r149990 = sqrt(r149989);
double r149991 = r149967 * r149990;
double r149992 = cbrt(r149989);
double r149993 = r149992 * r149992;
double r149994 = r149993 * r149992;
double r149995 = sqrt(r149994);
double r149996 = r149991 * r149995;
return r149996;
}



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 2.1
Taylor expanded around 0 0.6
rmApplied fma-def0.3
rmApplied add-sqr-sqrt0.3
Applied associate-*r*0.3
rmApplied add-cube-cbrt0.3
Final simplification0.3
herbie shell --seed 2019354 +o rules:numerics
(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))))))