x \cdot e^{y \cdot \left(\log z - t\right) + a \cdot \left(\log \left(1 - z\right) - b\right)}x \cdot e^{y \cdot \log \left(\sqrt[3]{z} \cdot \sqrt[3]{z}\right) + \left(\left(\log \left(\sqrt[3]{z}\right) - t\right) \cdot y + 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 r128064 = x;
double r128065 = y;
double r128066 = z;
double r128067 = log(r128066);
double r128068 = t;
double r128069 = r128067 - r128068;
double r128070 = r128065 * r128069;
double r128071 = a;
double r128072 = 1.0;
double r128073 = r128072 - r128066;
double r128074 = log(r128073);
double r128075 = b;
double r128076 = r128074 - r128075;
double r128077 = r128071 * r128076;
double r128078 = r128070 + r128077;
double r128079 = exp(r128078);
double r128080 = r128064 * r128079;
return r128080;
}
double f(double x, double y, double z, double t, double a, double b) {
double r128081 = x;
double r128082 = y;
double r128083 = z;
double r128084 = cbrt(r128083);
double r128085 = r128084 * r128084;
double r128086 = log(r128085);
double r128087 = r128082 * r128086;
double r128088 = log(r128084);
double r128089 = t;
double r128090 = r128088 - r128089;
double r128091 = r128090 * r128082;
double r128092 = a;
double r128093 = 1.0;
double r128094 = log(r128093);
double r128095 = 0.5;
double r128096 = 2.0;
double r128097 = pow(r128083, r128096);
double r128098 = pow(r128093, r128096);
double r128099 = r128097 / r128098;
double r128100 = r128095 * r128099;
double r128101 = r128093 * r128083;
double r128102 = r128100 + r128101;
double r128103 = r128094 - r128102;
double r128104 = b;
double r128105 = r128103 - r128104;
double r128106 = r128092 * r128105;
double r128107 = r128091 + r128106;
double r128108 = r128087 + r128107;
double r128109 = exp(r128108);
double r128110 = r128081 * r128109;
return r128110;
}



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-cube-cbrt0.5
Applied log-prod0.5
Applied associate--l+0.5
Applied distribute-lft-in0.6
Applied associate-+l+0.6
Simplified0.6
Final simplification0.6
herbie shell --seed 2020100
(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))))))