\frac{e^{x \cdot \log \left(\frac{x}{x + y}\right)}}{x}\begin{array}{l}
\mathbf{if}\;x \le -4.980242683664132068157952579233092791682 \cdot 10^{60} \lor \neg \left(x \le 8.738743363977151004581063748076582071774 \cdot 10^{-24}\right):\\
\;\;\;\;\frac{\sqrt[3]{e^{-y}} \cdot \sqrt[3]{e^{-y}}}{\frac{x}{\sqrt[3]{e^{-y}}}}\\
\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 r293204 = x;
double r293205 = y;
double r293206 = r293204 + r293205;
double r293207 = r293204 / r293206;
double r293208 = log(r293207);
double r293209 = r293204 * r293208;
double r293210 = exp(r293209);
double r293211 = r293210 / r293204;
return r293211;
}
double f(double x, double y) {
double r293212 = x;
double r293213 = -4.980242683664132e+60;
bool r293214 = r293212 <= r293213;
double r293215 = 8.738743363977151e-24;
bool r293216 = r293212 <= r293215;
double r293217 = !r293216;
bool r293218 = r293214 || r293217;
double r293219 = y;
double r293220 = -r293219;
double r293221 = exp(r293220);
double r293222 = cbrt(r293221);
double r293223 = r293222 * r293222;
double r293224 = r293212 / r293222;
double r293225 = r293223 / r293224;
double r293226 = cbrt(r293212);
double r293227 = r293212 + r293219;
double r293228 = cbrt(r293227);
double r293229 = r293226 / r293228;
double r293230 = pow(r293229, r293212);
double r293231 = r293230 * r293230;
double r293232 = r293231 * r293230;
double r293233 = r293232 / r293212;
double r293234 = r293218 ? r293225 : r293233;
return r293234;
}




Bits error versus x




Bits error versus y
Results
| Original | 10.8 |
|---|---|
| Target | 8.3 |
| Herbie | 0.7 |
if x < -4.980242683664132e+60 or 8.738743363977151e-24 < x Initial program 10.7
Simplified10.7
Taylor expanded around inf 1.0
rmApplied add-cube-cbrt1.1
Applied associate-/l*1.1
if -4.980242683664132e+60 < x < 8.738743363977151e-24Initial program 10.9
Simplified10.9
rmApplied add-cube-cbrt13.9
Applied add-cube-cbrt10.9
Applied times-frac10.9
Applied unpow-prod-down2.3
rmApplied times-frac2.3
Applied unpow-prod-down0.2
Final simplification0.7
herbie shell --seed 2019326
(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))