\frac{e^{x \cdot \log \left(\frac{x}{x + y}\right)}}{x}\begin{array}{l}
\mathbf{if}\;x \le -5.89791977930625:\\
\;\;\;\;\frac{e^{-1 \cdot y}}{x}\\
\mathbf{elif}\;x \le 9.2977525610777332 \cdot 10^{-4}:\\
\;\;\;\;\frac{{\left(\frac{1}{\sqrt[3]{x + y} \cdot \sqrt[3]{x + y}}\right)}^{x} \cdot {\left(\frac{x}{\sqrt[3]{x + y}}\right)}^{x}}{x}\\
\mathbf{else}:\\
\;\;\;\;\frac{1}{x \cdot e^{y}}\\
\end{array}double f(double x, double y) {
double r339429 = x;
double r339430 = y;
double r339431 = r339429 + r339430;
double r339432 = r339429 / r339431;
double r339433 = log(r339432);
double r339434 = r339429 * r339433;
double r339435 = exp(r339434);
double r339436 = r339435 / r339429;
return r339436;
}
double f(double x, double y) {
double r339437 = x;
double r339438 = -5.89791977930625;
bool r339439 = r339437 <= r339438;
double r339440 = -1.0;
double r339441 = y;
double r339442 = r339440 * r339441;
double r339443 = exp(r339442);
double r339444 = r339443 / r339437;
double r339445 = 0.0009297752561077733;
bool r339446 = r339437 <= r339445;
double r339447 = 1.0;
double r339448 = r339437 + r339441;
double r339449 = cbrt(r339448);
double r339450 = r339449 * r339449;
double r339451 = r339447 / r339450;
double r339452 = pow(r339451, r339437);
double r339453 = r339437 / r339449;
double r339454 = pow(r339453, r339437);
double r339455 = r339452 * r339454;
double r339456 = r339455 / r339437;
double r339457 = exp(r339441);
double r339458 = r339437 * r339457;
double r339459 = r339447 / r339458;
double r339460 = r339446 ? r339456 : r339459;
double r339461 = r339439 ? r339444 : r339460;
return r339461;
}




Bits error versus x




Bits error versus y
Results
| Original | 11.1 |
|---|---|
| Target | 8.1 |
| Herbie | 1.5 |
if x < -5.89791977930625Initial program 11.6
Simplified11.6
Taylor expanded around inf 0.1
Simplified0.1
if -5.89791977930625 < x < 0.0009297752561077733Initial program 11.6
Simplified11.6
rmApplied add-cube-cbrt11.6
Applied *-un-lft-identity11.6
Applied times-frac11.6
Applied unpow-prod-down2.9
if 0.0009297752561077733 < x Initial program 9.9
Simplified9.9
Taylor expanded around inf 0.3
Simplified0.3
rmApplied clear-num0.3
Simplified0.3
Final simplification1.5
herbie shell --seed 2020027
(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))