\frac{x \cdot e^{\left(y \cdot \log z + \left(t - 1\right) \cdot \log a\right) - b}}{y}\begin{array}{l}
\mathbf{if}\;x \le -1.02164264538042179 \cdot 10^{-94} \lor \neg \left(x \le 1.1903560079159271 \cdot 10^{-222}\right):\\
\;\;\;\;\frac{x \cdot \frac{{\left(\frac{1}{a}\right)}^{1}}{e^{\sqrt[3]{{\left(\mathsf{fma}\left(\log \left(\frac{1}{z}\right), y, \mathsf{fma}\left(\log \left(\frac{1}{a}\right), t, b\right)\right)\right)}^{3}}}}}{y}\\
\mathbf{else}:\\
\;\;\;\;\frac{{\left(\frac{1}{{a}^{1}}\right)}^{1}}{e^{\mathsf{fma}\left(\log \left(\frac{1}{z}\right), y, \mathsf{fma}\left(\log \left(\frac{1}{a}\right), t, b\right)\right)}} \cdot \frac{x}{y}\\
\end{array}double f(double x, double y, double z, double t, double a, double b) {
double r98098 = x;
double r98099 = y;
double r98100 = z;
double r98101 = log(r98100);
double r98102 = r98099 * r98101;
double r98103 = t;
double r98104 = 1.0;
double r98105 = r98103 - r98104;
double r98106 = a;
double r98107 = log(r98106);
double r98108 = r98105 * r98107;
double r98109 = r98102 + r98108;
double r98110 = b;
double r98111 = r98109 - r98110;
double r98112 = exp(r98111);
double r98113 = r98098 * r98112;
double r98114 = r98113 / r98099;
return r98114;
}
double f(double x, double y, double z, double t, double a, double b) {
double r98115 = x;
double r98116 = -1.0216426453804218e-94;
bool r98117 = r98115 <= r98116;
double r98118 = 1.190356007915927e-222;
bool r98119 = r98115 <= r98118;
double r98120 = !r98119;
bool r98121 = r98117 || r98120;
double r98122 = 1.0;
double r98123 = a;
double r98124 = r98122 / r98123;
double r98125 = 1.0;
double r98126 = pow(r98124, r98125);
double r98127 = z;
double r98128 = r98122 / r98127;
double r98129 = log(r98128);
double r98130 = y;
double r98131 = log(r98124);
double r98132 = t;
double r98133 = b;
double r98134 = fma(r98131, r98132, r98133);
double r98135 = fma(r98129, r98130, r98134);
double r98136 = 3.0;
double r98137 = pow(r98135, r98136);
double r98138 = cbrt(r98137);
double r98139 = exp(r98138);
double r98140 = r98126 / r98139;
double r98141 = r98115 * r98140;
double r98142 = r98141 / r98130;
double r98143 = pow(r98123, r98125);
double r98144 = r98122 / r98143;
double r98145 = pow(r98144, r98125);
double r98146 = exp(r98135);
double r98147 = r98145 / r98146;
double r98148 = r98115 / r98130;
double r98149 = r98147 * r98148;
double r98150 = r98121 ? r98142 : r98149;
return r98150;
}



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 x < -1.0216426453804218e-94 or 1.190356007915927e-222 < x Initial program 1.5
Taylor expanded around inf 1.6
Simplified0.8
rmApplied add-cbrt-cube0.8
Simplified0.8
if -1.0216426453804218e-94 < x < 1.190356007915927e-222Initial program 3.3
Taylor expanded around inf 3.3
Simplified2.5
rmApplied add-cbrt-cube2.5
Simplified2.5
Taylor expanded around inf 0.1
Simplified0.1
Final simplification0.6
herbie shell --seed 2020024 +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))