\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.218811762387359090359297706344973358133 \cdot 10^{-281} \lor \neg \left(y \le 4.216998801399994992491902428717653999299 \cdot 10^{-137}\right):\\
\;\;\;\;{\left(\frac{1}{{a}^{1}}\right)}^{1} \cdot \sqrt[3]{{\left(\frac{e^{\left(t \cdot \log a - b\right) + \log z \cdot y} \cdot x}{y}\right)}^{3}}\\
\mathbf{else}:\\
\;\;\;\;\frac{x}{y \cdot \frac{\frac{1}{{z}^{y}}}{\frac{\frac{{a}^{t}}{{a}^{1}}}{e^{b}}}}\\
\end{array}double f(double x, double y, double z, double t, double a, double b) {
double r75818 = x;
double r75819 = y;
double r75820 = z;
double r75821 = log(r75820);
double r75822 = r75819 * r75821;
double r75823 = t;
double r75824 = 1.0;
double r75825 = r75823 - r75824;
double r75826 = a;
double r75827 = log(r75826);
double r75828 = r75825 * r75827;
double r75829 = r75822 + r75828;
double r75830 = b;
double r75831 = r75829 - r75830;
double r75832 = exp(r75831);
double r75833 = r75818 * r75832;
double r75834 = r75833 / r75819;
return r75834;
}
double f(double x, double y, double z, double t, double a, double b) {
double r75835 = y;
double r75836 = -1.2188117623873591e-281;
bool r75837 = r75835 <= r75836;
double r75838 = 4.216998801399995e-137;
bool r75839 = r75835 <= r75838;
double r75840 = !r75839;
bool r75841 = r75837 || r75840;
double r75842 = 1.0;
double r75843 = a;
double r75844 = 1.0;
double r75845 = pow(r75843, r75844);
double r75846 = r75842 / r75845;
double r75847 = pow(r75846, r75844);
double r75848 = t;
double r75849 = log(r75843);
double r75850 = r75848 * r75849;
double r75851 = b;
double r75852 = r75850 - r75851;
double r75853 = z;
double r75854 = log(r75853);
double r75855 = r75854 * r75835;
double r75856 = r75852 + r75855;
double r75857 = exp(r75856);
double r75858 = x;
double r75859 = r75857 * r75858;
double r75860 = r75859 / r75835;
double r75861 = 3.0;
double r75862 = pow(r75860, r75861);
double r75863 = cbrt(r75862);
double r75864 = r75847 * r75863;
double r75865 = pow(r75853, r75835);
double r75866 = r75842 / r75865;
double r75867 = pow(r75843, r75848);
double r75868 = r75867 / r75845;
double r75869 = exp(r75851);
double r75870 = r75868 / r75869;
double r75871 = r75866 / r75870;
double r75872 = r75835 * r75871;
double r75873 = r75858 / r75872;
double r75874 = r75841 ? r75864 : r75873;
return r75874;
}



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.2188117623873591e-281 or 4.216998801399995e-137 < y Initial program 1.6
rmApplied associate-/l*1.4
Simplified20.3
rmApplied pow-sub20.3
Taylor expanded around inf 20.5
Simplified11.3
rmApplied add-cbrt-cube11.3
Applied add-cbrt-cube20.4
Applied add-cbrt-cube35.5
Applied cbrt-undiv36.7
Applied cbrt-unprod36.7
Simplified4.9
if -1.2188117623873591e-281 < y < 4.216998801399995e-137Initial program 4.4
rmApplied associate-/l*4.7
Simplified10.8
rmApplied pow-sub10.7
rmApplied div-inv10.7
Simplified10.7
Final simplification5.8
herbie shell --seed 2019179
(FPCore (x y z t a b)
:name "Numeric.SpecFunctions:incompleteBetaWorker from math-functions-0.1.5.2"
(/ (* x (exp (- (+ (* y (log z)) (* (- t 1.0) (log a))) b))) y))