\frac{e^{x \cdot \log \left(\frac{x}{x + y}\right)}}{x}\begin{array}{l}
\mathbf{if}\;x \le -34762.528692470238 \lor \neg \left(x \le 25.356729299496507\right):\\
\;\;\;\;\frac{1}{x \cdot e^{y}}\\
\mathbf{else}:\\
\;\;\;\;\frac{{\left(\frac{\sqrt[3]{x} \cdot \sqrt[3]{x}}{\sqrt[3]{x + y} \cdot \sqrt[3]{x + y}}\right)}^{x}}{\frac{x}{{\left(\frac{\sqrt[3]{x}}{\sqrt[3]{x + y}}\right)}^{x}}}\\
\end{array}double f(double x, double y) {
double r431636 = x;
double r431637 = y;
double r431638 = r431636 + r431637;
double r431639 = r431636 / r431638;
double r431640 = log(r431639);
double r431641 = r431636 * r431640;
double r431642 = exp(r431641);
double r431643 = r431642 / r431636;
return r431643;
}
double f(double x, double y) {
double r431644 = x;
double r431645 = -34762.52869247024;
bool r431646 = r431644 <= r431645;
double r431647 = 25.356729299496507;
bool r431648 = r431644 <= r431647;
double r431649 = !r431648;
bool r431650 = r431646 || r431649;
double r431651 = 1.0;
double r431652 = y;
double r431653 = exp(r431652);
double r431654 = r431644 * r431653;
double r431655 = r431651 / r431654;
double r431656 = cbrt(r431644);
double r431657 = r431656 * r431656;
double r431658 = r431644 + r431652;
double r431659 = cbrt(r431658);
double r431660 = r431659 * r431659;
double r431661 = r431657 / r431660;
double r431662 = pow(r431661, r431644);
double r431663 = r431656 / r431659;
double r431664 = pow(r431663, r431644);
double r431665 = r431644 / r431664;
double r431666 = r431662 / r431665;
double r431667 = r431650 ? r431655 : r431666;
return r431667;
}




Bits error versus x




Bits error versus y
Results
| Original | 11.3 |
|---|---|
| Target | 8.2 |
| Herbie | 1.0 |
if x < -34762.52869247024 or 25.356729299496507 < x Initial program 11.3
Simplified11.3
Taylor expanded around inf 0.1
Simplified0.1
rmApplied clear-num0.1
Simplified0.1
if -34762.52869247024 < x < 25.356729299496507Initial program 11.4
Simplified11.4
rmApplied add-cube-cbrt11.5
Applied add-cube-cbrt11.4
Applied times-frac11.4
Applied unpow-prod-down2.0
Applied associate-/l*2.0
Final simplification1.0
herbie shell --seed 2020064
(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))