\frac{x \cdot e^{\left(y \cdot \log z + \left(t - 1\right) \cdot \log a\right) - b}}{y}\begin{array}{l}
\mathbf{if}\;y \le -1.8083024609859045665823801975839258441 \cdot 10^{-147} \lor \neg \left(y \le 3.644923159639203359098206726180046552643 \cdot 10^{-51}\right):\\
\;\;\;\;\frac{x \cdot \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}\\
\mathbf{else}:\\
\;\;\;\;x \cdot \left(\frac{{\left(\frac{1}{a}\right)}^{1}}{e^{\log \left(\frac{1}{a}\right) \cdot t + b} \cdot {\left(\frac{1}{z}\right)}^{y}} \cdot \frac{1}{y}\right)\\
\end{array}double f(double x, double y, double z, double t, double a, double b) {
double r82231 = x;
double r82232 = y;
double r82233 = z;
double r82234 = log(r82233);
double r82235 = r82232 * r82234;
double r82236 = t;
double r82237 = 1.0;
double r82238 = r82236 - r82237;
double r82239 = a;
double r82240 = log(r82239);
double r82241 = r82238 * r82240;
double r82242 = r82235 + r82241;
double r82243 = b;
double r82244 = r82242 - r82243;
double r82245 = exp(r82244);
double r82246 = r82231 * r82245;
double r82247 = r82246 / r82232;
return r82247;
}
double f(double x, double y, double z, double t, double a, double b) {
double r82248 = y;
double r82249 = -1.8083024609859046e-147;
bool r82250 = r82248 <= r82249;
double r82251 = 3.6449231596392034e-51;
bool r82252 = r82248 <= r82251;
double r82253 = !r82252;
bool r82254 = r82250 || r82253;
double r82255 = x;
double r82256 = 1.0;
double r82257 = a;
double r82258 = r82256 / r82257;
double r82259 = 1.0;
double r82260 = pow(r82258, r82259);
double r82261 = z;
double r82262 = r82256 / r82261;
double r82263 = log(r82262);
double r82264 = r82248 * r82263;
double r82265 = log(r82258);
double r82266 = t;
double r82267 = r82265 * r82266;
double r82268 = b;
double r82269 = r82267 + r82268;
double r82270 = r82264 + r82269;
double r82271 = exp(r82270);
double r82272 = r82260 / r82271;
double r82273 = r82255 * r82272;
double r82274 = r82273 / r82248;
double r82275 = exp(r82269);
double r82276 = pow(r82262, r82248);
double r82277 = r82275 * r82276;
double r82278 = r82260 / r82277;
double r82279 = r82256 / r82248;
double r82280 = r82278 * r82279;
double r82281 = r82255 * r82280;
double r82282 = r82254 ? r82274 : r82281;
return r82282;
}



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 < -1.8083024609859046e-147 or 3.6449231596392034e-51 < y Initial program 0.7
Taylor expanded around inf 0.7
Simplified0.3
if -1.8083024609859046e-147 < y < 3.6449231596392034e-51Initial program 4.1
Taylor expanded around inf 4.1
Simplified2.8
rmApplied *-un-lft-identity2.8
Applied times-frac3.2
Simplified3.2
Simplified3.2
rmApplied div-inv3.3
Final simplification1.4
herbie shell --seed 2019354
(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))