x \cdot e^{y \cdot \left(\log z - t\right) + a \cdot \left(\log \left(1.0 - z\right) - b\right)}\begin{array}{l}
\mathbf{if}\;y \le -2.7635926318262873 \cdot 10^{+131}:\\
\;\;\;\;e^{\log 1.0 \cdot a + \left(\log z - t\right) \cdot y} \cdot x\\
\mathbf{elif}\;y \le -3.3939892220623794 \cdot 10^{+73}:\\
\;\;\;\;x \cdot e^{-\left(1.0 \cdot \left(a \cdot z\right) + \left(a \cdot b + 0.5 \cdot \left(a \cdot \left(z \cdot z\right)\right)\right)\right)}\\
\mathbf{elif}\;y \le -8.816833859851974 \cdot 10^{-47}:\\
\;\;\;\;e^{\log 1.0 \cdot a + \left(\log z - t\right) \cdot y} \cdot x\\
\mathbf{elif}\;y \le 9.077191310208735 \cdot 10^{-77}:\\
\;\;\;\;x \cdot e^{-\left(1.0 \cdot \left(a \cdot z\right) + \left(a \cdot b + 0.5 \cdot \left(a \cdot \left(z \cdot z\right)\right)\right)\right)}\\
\mathbf{else}:\\
\;\;\;\;e^{\log 1.0 \cdot a + \left(\log z - t\right) \cdot y} \cdot x\\
\end{array}double f(double x, double y, double z, double t, double a, double b) {
double r7266308 = x;
double r7266309 = y;
double r7266310 = z;
double r7266311 = log(r7266310);
double r7266312 = t;
double r7266313 = r7266311 - r7266312;
double r7266314 = r7266309 * r7266313;
double r7266315 = a;
double r7266316 = 1.0;
double r7266317 = r7266316 - r7266310;
double r7266318 = log(r7266317);
double r7266319 = b;
double r7266320 = r7266318 - r7266319;
double r7266321 = r7266315 * r7266320;
double r7266322 = r7266314 + r7266321;
double r7266323 = exp(r7266322);
double r7266324 = r7266308 * r7266323;
return r7266324;
}
double f(double x, double y, double z, double t, double a, double b) {
double r7266325 = y;
double r7266326 = -2.7635926318262873e+131;
bool r7266327 = r7266325 <= r7266326;
double r7266328 = 1.0;
double r7266329 = log(r7266328);
double r7266330 = a;
double r7266331 = r7266329 * r7266330;
double r7266332 = z;
double r7266333 = log(r7266332);
double r7266334 = t;
double r7266335 = r7266333 - r7266334;
double r7266336 = r7266335 * r7266325;
double r7266337 = r7266331 + r7266336;
double r7266338 = exp(r7266337);
double r7266339 = x;
double r7266340 = r7266338 * r7266339;
double r7266341 = -3.3939892220623794e+73;
bool r7266342 = r7266325 <= r7266341;
double r7266343 = r7266330 * r7266332;
double r7266344 = r7266328 * r7266343;
double r7266345 = b;
double r7266346 = r7266330 * r7266345;
double r7266347 = 0.5;
double r7266348 = r7266332 * r7266332;
double r7266349 = r7266330 * r7266348;
double r7266350 = r7266347 * r7266349;
double r7266351 = r7266346 + r7266350;
double r7266352 = r7266344 + r7266351;
double r7266353 = -r7266352;
double r7266354 = exp(r7266353);
double r7266355 = r7266339 * r7266354;
double r7266356 = -8.816833859851974e-47;
bool r7266357 = r7266325 <= r7266356;
double r7266358 = 9.077191310208735e-77;
bool r7266359 = r7266325 <= r7266358;
double r7266360 = r7266359 ? r7266355 : r7266340;
double r7266361 = r7266357 ? r7266340 : r7266360;
double r7266362 = r7266342 ? r7266355 : r7266361;
double r7266363 = r7266327 ? r7266340 : r7266362;
return r7266363;
}



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
if y < -2.7635926318262873e+131 or -3.3939892220623794e+73 < y < -8.816833859851974e-47 or 9.077191310208735e-77 < y Initial program 1.7
Taylor expanded around 0 8.7
Simplified8.7
if -2.7635926318262873e+131 < y < -3.3939892220623794e+73 or -8.816833859851974e-47 < y < 9.077191310208735e-77Initial program 2.5
Taylor expanded around 0 0.1
Simplified0.1
Taylor expanded around inf 6.6
Simplified6.6
Final simplification7.6
herbie shell --seed 2019165
(FPCore (x y z t a b)
:name "Numeric.SpecFunctions:incompleteBetaApprox from math-functions-0.1.5.2, B"
(* x (exp (+ (* y (- (log z) t)) (* a (- (log (- 1.0 z)) b))))))