\frac{e^{x \cdot \log \left(\frac{x}{x + y}\right)}}{x}\begin{array}{l}
\mathbf{if}\;x \le -1.81817434923962274 \cdot 10^{140} \lor \neg \left(x \le 5.23835627656106507 \cdot 10^{-4}\right):\\
\;\;\;\;\frac{e^{-y}}{x}\\
\mathbf{else}:\\
\;\;\;\;\frac{\left({\left(\frac{\sqrt[3]{x}}{\sqrt[3]{x + y}}\right)}^{x} \cdot {\left(\frac{\sqrt[3]{x}}{\sqrt[3]{x + y}}\right)}^{x}\right) \cdot {\left(\frac{\sqrt[3]{x}}{\sqrt[3]{x + y}}\right)}^{x}}{x}\\
\end{array}double f(double x, double y) {
double r498236 = x;
double r498237 = y;
double r498238 = r498236 + r498237;
double r498239 = r498236 / r498238;
double r498240 = log(r498239);
double r498241 = r498236 * r498240;
double r498242 = exp(r498241);
double r498243 = r498242 / r498236;
return r498243;
}
double f(double x, double y) {
double r498244 = x;
double r498245 = -1.8181743492396227e+140;
bool r498246 = r498244 <= r498245;
double r498247 = 0.0005238356276561065;
bool r498248 = r498244 <= r498247;
double r498249 = !r498248;
bool r498250 = r498246 || r498249;
double r498251 = y;
double r498252 = -r498251;
double r498253 = exp(r498252);
double r498254 = r498253 / r498244;
double r498255 = cbrt(r498244);
double r498256 = r498244 + r498251;
double r498257 = cbrt(r498256);
double r498258 = r498255 / r498257;
double r498259 = pow(r498258, r498244);
double r498260 = r498259 * r498259;
double r498261 = r498260 * r498259;
double r498262 = r498261 / r498244;
double r498263 = r498250 ? r498254 : r498262;
return r498263;
}




Bits error versus x




Bits error versus y
Results
| Original | 11.2 |
|---|---|
| Target | 7.6 |
| Herbie | 0.7 |
if x < -1.8181743492396227e+140 or 0.0005238356276561065 < x Initial program 12.0
Simplified12.0
Taylor expanded around inf 0.2
if -1.8181743492396227e+140 < x < 0.0005238356276561065Initial program 10.5
Simplified10.5
rmApplied add-cube-cbrt17.5
Applied add-cube-cbrt10.5
Applied times-frac10.5
Applied unpow-prod-down3.0
rmApplied times-frac3.0
Applied unpow-prod-down1.1
Final simplification0.7
herbie shell --seed 2020046
(FPCore (x y)
:name "Numeric.SpecFunctions:invIncompleteBetaWorker from math-functions-0.1.5.2, F"
:precision binary64
:herbie-target
(if (< y -3.7311844206647956e+94) (/ (exp (/ -1 y)) x) (if (< y 2.817959242728288e+37) (/ (pow (/ x (+ y x)) x) x) (if (< y 2.347387415166998e+178) (log (exp (/ (pow (/ x (+ y x)) x) x))) (/ (exp (/ -1 y)) x))))
(/ (exp (* x (log (/ x (+ x y))))) x))