x \cdot e^{y \cdot \left(\log z - t\right) + a \cdot \left(\log \left(1 - z\right) - b\right)}x \cdot \left(\sqrt[3]{{\left(e^{2}\right)}^{\left(\mathsf{fma}\left(y, \log z - t, \left(\log 1 - \left(\mathsf{fma}\left(\frac{1}{2}, \frac{{z}^{2}}{{1}^{2}}, 1 \cdot z\right) + b\right)\right) \cdot a\right)\right)}} \cdot \sqrt[3]{{e}^{\left(\mathsf{fma}\left(y, \log z - t, \left(\log 1 - \left(\mathsf{fma}\left(\frac{1}{2}, \frac{{z}^{2}}{{1}^{2}}, 1 \cdot z\right) + b\right)\right) \cdot a\right)\right)}}\right)double f(double x, double y, double z, double t, double a, double b) {
double r120154 = x;
double r120155 = y;
double r120156 = z;
double r120157 = log(r120156);
double r120158 = t;
double r120159 = r120157 - r120158;
double r120160 = r120155 * r120159;
double r120161 = a;
double r120162 = 1.0;
double r120163 = r120162 - r120156;
double r120164 = log(r120163);
double r120165 = b;
double r120166 = r120164 - r120165;
double r120167 = r120161 * r120166;
double r120168 = r120160 + r120167;
double r120169 = exp(r120168);
double r120170 = r120154 * r120169;
return r120170;
}
double f(double x, double y, double z, double t, double a, double b) {
double r120171 = x;
double r120172 = 2.0;
double r120173 = exp(r120172);
double r120174 = y;
double r120175 = z;
double r120176 = log(r120175);
double r120177 = t;
double r120178 = r120176 - r120177;
double r120179 = 1.0;
double r120180 = log(r120179);
double r120181 = 0.5;
double r120182 = pow(r120175, r120172);
double r120183 = pow(r120179, r120172);
double r120184 = r120182 / r120183;
double r120185 = r120179 * r120175;
double r120186 = fma(r120181, r120184, r120185);
double r120187 = b;
double r120188 = r120186 + r120187;
double r120189 = r120180 - r120188;
double r120190 = a;
double r120191 = r120189 * r120190;
double r120192 = fma(r120174, r120178, r120191);
double r120193 = pow(r120173, r120192);
double r120194 = cbrt(r120193);
double r120195 = exp(1.0);
double r120196 = pow(r120195, r120192);
double r120197 = cbrt(r120196);
double r120198 = r120194 * r120197;
double r120199 = r120171 * r120198;
return r120199;
}



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.4
rmApplied add-cbrt-cube0.4
Simplified0.4
rmApplied add-cube-cbrt0.5
Applied unpow-prod-down0.5
Simplified0.4
Simplified0.2
rmApplied cbrt-prod0.2
Final simplification0.2
herbie shell --seed 2020035 +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))))))