x \cdot e^{y \cdot \left(\log z - t\right) + a \cdot \left(\log \left(1 - z\right) - b\right)}{\left({\left(e^{\sqrt[3]{\mathsf{fma}\left(\log z - t, y, a \cdot \left(\log 1 - \mathsf{fma}\left(\frac{1}{2}, \frac{{z}^{2}}{{1}^{2}}, \mathsf{fma}\left(1, z, b\right)\right)\right)\right)}}\right)}^{\left(\sqrt[3]{\mathsf{fma}\left(\log z - t, y, a \cdot \left(\log 1 - \mathsf{fma}\left(\frac{1}{2}, \frac{{z}^{2}}{{1}^{2}}, \mathsf{fma}\left(1, z, b\right)\right)\right)\right)}\right)}\right)}^{\left(\sqrt[3]{\mathsf{fma}\left(y, \log z - t, a \cdot \left(\left(\log 1 - \mathsf{fma}\left(\frac{1}{2}, \frac{{z}^{2}}{{1}^{2}}, 1 \cdot z\right)\right) - b\right)\right)}\right)} \cdot xdouble f(double x, double y, double z, double t, double a, double b) {
double r137922 = x;
double r137923 = y;
double r137924 = z;
double r137925 = log(r137924);
double r137926 = t;
double r137927 = r137925 - r137926;
double r137928 = r137923 * r137927;
double r137929 = a;
double r137930 = 1.0;
double r137931 = r137930 - r137924;
double r137932 = log(r137931);
double r137933 = b;
double r137934 = r137932 - r137933;
double r137935 = r137929 * r137934;
double r137936 = r137928 + r137935;
double r137937 = exp(r137936);
double r137938 = r137922 * r137937;
return r137938;
}
double f(double x, double y, double z, double t, double a, double b) {
double r137939 = z;
double r137940 = log(r137939);
double r137941 = t;
double r137942 = r137940 - r137941;
double r137943 = y;
double r137944 = a;
double r137945 = 1.0;
double r137946 = log(r137945);
double r137947 = 0.5;
double r137948 = 2.0;
double r137949 = pow(r137939, r137948);
double r137950 = pow(r137945, r137948);
double r137951 = r137949 / r137950;
double r137952 = b;
double r137953 = fma(r137945, r137939, r137952);
double r137954 = fma(r137947, r137951, r137953);
double r137955 = r137946 - r137954;
double r137956 = r137944 * r137955;
double r137957 = fma(r137942, r137943, r137956);
double r137958 = cbrt(r137957);
double r137959 = exp(r137958);
double r137960 = pow(r137959, r137958);
double r137961 = r137945 * r137939;
double r137962 = fma(r137947, r137951, r137961);
double r137963 = r137946 - r137962;
double r137964 = r137963 - r137952;
double r137965 = r137944 * r137964;
double r137966 = fma(r137943, r137942, r137965);
double r137967 = cbrt(r137966);
double r137968 = pow(r137960, r137967);
double r137969 = x;
double r137970 = r137968 * r137969;
return r137970;
}



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.0
Simplified1.7
Taylor expanded around 0 0.3
Simplified0.3
rmApplied add-cube-cbrt0.3
Applied exp-prod0.3
Simplified0.3
Final simplification0.3
herbie shell --seed 2019303 +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))))))