\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 4.54646832498951517 \cdot 10^{-20}:\\
\;\;\;\;\left(x \cdot \frac{{\left(\frac{1}{a}\right)}^{1}}{e^{\mathsf{fma}\left(y, \log \left(\frac{1}{z}\right), \mathsf{fma}\left(\log \left(\frac{1}{a}\right), t, b\right)\right)}}\right) \cdot \frac{1}{y}\\
\mathbf{else}:\\
\;\;\;\;x \cdot \frac{\frac{{\left(\frac{1}{a}\right)}^{1}}{e^{\mathsf{fma}\left(y, \log \left(\frac{1}{z}\right), \mathsf{fma}\left(\log \left(\frac{1}{a}\right), t, b\right)\right)}}}{y}\\
\end{array}double f(double x, double y, double z, double t, double a, double b) {
double r86181 = x;
double r86182 = y;
double r86183 = z;
double r86184 = log(r86183);
double r86185 = r86182 * r86184;
double r86186 = t;
double r86187 = 1.0;
double r86188 = r86186 - r86187;
double r86189 = a;
double r86190 = log(r86189);
double r86191 = r86188 * r86190;
double r86192 = r86185 + r86191;
double r86193 = b;
double r86194 = r86192 - r86193;
double r86195 = exp(r86194);
double r86196 = r86181 * r86195;
double r86197 = r86196 / r86182;
return r86197;
}
double f(double x, double y, double z, double t, double a, double b) {
double r86198 = a;
double r86199 = 4.546468324989515e-20;
bool r86200 = r86198 <= r86199;
double r86201 = x;
double r86202 = 1.0;
double r86203 = r86202 / r86198;
double r86204 = 1.0;
double r86205 = pow(r86203, r86204);
double r86206 = y;
double r86207 = z;
double r86208 = r86202 / r86207;
double r86209 = log(r86208);
double r86210 = log(r86203);
double r86211 = t;
double r86212 = b;
double r86213 = fma(r86210, r86211, r86212);
double r86214 = fma(r86206, r86209, r86213);
double r86215 = exp(r86214);
double r86216 = r86205 / r86215;
double r86217 = r86201 * r86216;
double r86218 = r86202 / r86206;
double r86219 = r86217 * r86218;
double r86220 = r86216 / r86206;
double r86221 = r86201 * r86220;
double r86222 = r86200 ? r86219 : r86221;
return r86222;
}



Bits error versus x



Bits error versus y



Bits error versus z



Bits error versus t



Bits error versus a



Bits error versus b
if a < 4.546468324989515e-20Initial program 0.6
Taylor expanded around inf 0.6
Simplified0.2
rmApplied div-inv0.2
if 4.546468324989515e-20 < a Initial program 2.8
Taylor expanded around inf 2.8
Simplified2.1
rmApplied *-un-lft-identity2.1
Applied times-frac0.1
Simplified0.1
Final simplification0.2
herbie shell --seed 2020020 +o rules:numerics
(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))