\frac{x \cdot e^{\left(y \cdot \log z + \left(t - 1\right) \cdot \log a\right) - b}}{y}\begin{array}{l}
\mathbf{if}\;a \le 2.031077836212711156393861827249665598026 \cdot 10^{-178}:\\
\;\;\;\;{\left(\frac{1}{{a}^{1}}\right)}^{1} \cdot \frac{x}{e^{\log \left(\frac{1}{z}\right) \cdot y + \left(\log \left(\frac{1}{a}\right) \cdot t + b\right)} \cdot y}\\
\mathbf{else}:\\
\;\;\;\;\frac{\frac{{\left(\frac{1}{a}\right)}^{1}}{e^{y \cdot \log \left(\frac{1}{z}\right) + \left(\log \left(\frac{1}{a}\right) \cdot t + b\right)}}}{y} \cdot x\\
\end{array}double f(double x, double y, double z, double t, double a, double b) {
double r105492 = x;
double r105493 = y;
double r105494 = z;
double r105495 = log(r105494);
double r105496 = r105493 * r105495;
double r105497 = t;
double r105498 = 1.0;
double r105499 = r105497 - r105498;
double r105500 = a;
double r105501 = log(r105500);
double r105502 = r105499 * r105501;
double r105503 = r105496 + r105502;
double r105504 = b;
double r105505 = r105503 - r105504;
double r105506 = exp(r105505);
double r105507 = r105492 * r105506;
double r105508 = r105507 / r105493;
return r105508;
}
double f(double x, double y, double z, double t, double a, double b) {
double r105509 = a;
double r105510 = 2.0310778362127112e-178;
bool r105511 = r105509 <= r105510;
double r105512 = 1.0;
double r105513 = 1.0;
double r105514 = pow(r105509, r105513);
double r105515 = r105512 / r105514;
double r105516 = pow(r105515, r105513);
double r105517 = x;
double r105518 = z;
double r105519 = r105512 / r105518;
double r105520 = log(r105519);
double r105521 = y;
double r105522 = r105520 * r105521;
double r105523 = r105512 / r105509;
double r105524 = log(r105523);
double r105525 = t;
double r105526 = r105524 * r105525;
double r105527 = b;
double r105528 = r105526 + r105527;
double r105529 = r105522 + r105528;
double r105530 = exp(r105529);
double r105531 = r105530 * r105521;
double r105532 = r105517 / r105531;
double r105533 = r105516 * r105532;
double r105534 = pow(r105523, r105513);
double r105535 = r105521 * r105520;
double r105536 = r105535 + r105528;
double r105537 = exp(r105536);
double r105538 = r105534 / r105537;
double r105539 = r105538 / r105521;
double r105540 = r105539 * r105517;
double r105541 = r105511 ? r105533 : r105540;
return r105541;
}



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 a < 2.0310778362127112e-178Initial program 0.7
Taylor expanded around inf 0.7
Simplified5.7
Taylor expanded around inf 0.1
if 2.0310778362127112e-178 < a Initial program 2.3
Taylor expanded around inf 2.4
Simplified6.4
rmApplied associate-/r/0.7
Final simplification0.5
herbie shell --seed 2019352
(FPCore (x y z t a b)
:name "Numeric.SpecFunctions:incompleteBetaWorker from math-functions-0.1.5.2"
:precision binary64
(/ (* x (exp (- (+ (* y (log z)) (* (- t 1) (log a))) b))) y))