\frac{e^{x \cdot \log \left(\frac{x}{x + y}\right)}}{x}\frac{\left({\left(\left|\frac{\sqrt[3]{x}}{\sqrt[3]{x + y}}\right|\right)}^{\left(2 \cdot \frac{x}{2}\right)} \cdot {\left(\left|\frac{\sqrt[3]{x}}{\sqrt[3]{x + y}}\right|\right)}^{\left(2 \cdot \frac{x}{2}\right)}\right) \cdot {\left(\frac{\sqrt[3]{x}}{\sqrt[3]{x + y}}\right)}^{x}}{x}double f(double x, double y) {
double r341829 = x;
double r341830 = y;
double r341831 = r341829 + r341830;
double r341832 = r341829 / r341831;
double r341833 = log(r341832);
double r341834 = r341829 * r341833;
double r341835 = exp(r341834);
double r341836 = r341835 / r341829;
return r341836;
}
double f(double x, double y) {
double r341837 = x;
double r341838 = cbrt(r341837);
double r341839 = y;
double r341840 = r341837 + r341839;
double r341841 = cbrt(r341840);
double r341842 = r341838 / r341841;
double r341843 = fabs(r341842);
double r341844 = 2.0;
double r341845 = r341837 / r341844;
double r341846 = r341844 * r341845;
double r341847 = pow(r341843, r341846);
double r341848 = r341847 * r341847;
double r341849 = pow(r341842, r341837);
double r341850 = r341848 * r341849;
double r341851 = r341850 / r341837;
return r341851;
}




Bits error versus x




Bits error versus y
Results
| Original | 8.2 |
|---|---|
| Target | 7.7 |
| Herbie | 1.0 |
Initial program 8.2
Simplified8.2
rmApplied add-cube-cbrt21.2
Applied add-cube-cbrt8.2
Applied times-frac8.2
Applied unpow-prod-down2.5
rmApplied add-sqr-sqrt2.5
Applied unpow-prod-down2.5
Simplified2.5
Simplified1.0
Final simplification1.0
herbie shell --seed 2020021 +o rules:numerics
(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))