x \cdot e^{y \cdot \left(\log z - t\right) + a \cdot \left(\log \left(1 - z\right) - b\right)}\left(x \cdot {\left(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)}^{\frac{2}{3}}\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 r129208 = x;
double r129209 = y;
double r129210 = z;
double r129211 = log(r129210);
double r129212 = t;
double r129213 = r129211 - r129212;
double r129214 = r129209 * r129213;
double r129215 = a;
double r129216 = 1.0;
double r129217 = r129216 - r129210;
double r129218 = log(r129217);
double r129219 = b;
double r129220 = r129218 - r129219;
double r129221 = r129215 * r129220;
double r129222 = r129214 + r129221;
double r129223 = exp(r129222);
double r129224 = r129208 * r129223;
return r129224;
}
double f(double x, double y, double z, double t, double a, double b) {
double r129225 = x;
double r129226 = y;
double r129227 = z;
double r129228 = log(r129227);
double r129229 = t;
double r129230 = r129228 - r129229;
double r129231 = a;
double r129232 = 1.0;
double r129233 = log(r129232);
double r129234 = 0.5;
double r129235 = 2.0;
double r129236 = pow(r129227, r129235);
double r129237 = pow(r129232, r129235);
double r129238 = r129236 / r129237;
double r129239 = r129234 * r129238;
double r129240 = r129232 * r129227;
double r129241 = r129239 + r129240;
double r129242 = r129233 - r129241;
double r129243 = b;
double r129244 = r129242 - r129243;
double r129245 = r129231 * r129244;
double r129246 = fma(r129226, r129230, r129245);
double r129247 = exp(r129246);
double r129248 = 0.6666666666666666;
double r129249 = pow(r129247, r129248);
double r129250 = r129225 * r129249;
double r129251 = cbrt(r129247);
double r129252 = r129250 * r129251;
return r129252;
}



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 1.9
Taylor expanded around 0 0.5
rmApplied fma-def0.2
rmApplied add-cube-cbrt0.3
Applied associate-*r*0.3
rmApplied pow1/30.3
Applied pow1/30.3
Applied pow-prod-up0.2
Simplified0.2
Final simplification0.2
herbie shell --seed 2020025 +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))))))