\frac{x \cdot y}{\left(\left(x + y\right) \cdot \left(x + y\right)\right) \cdot \left(\left(x + y\right) + 1.0\right)}\left(\left(\frac{\sqrt[3]{\sqrt[3]{x}} \cdot \sqrt[3]{y}}{\sqrt[3]{x + y}} \cdot \frac{\frac{\sqrt[3]{\sqrt[3]{x} \cdot \sqrt[3]{x}}}{\sqrt[3]{x + y}}}{\sqrt[3]{x + y}}\right) \cdot \frac{\sqrt[3]{x}}{\frac{x + y}{\sqrt[3]{y}}}\right) \cdot \frac{\sqrt[3]{x}}{\frac{1.0 + \left(x + y\right)}{\sqrt[3]{y}}}double f(double x, double y) {
double r23705796 = x;
double r23705797 = y;
double r23705798 = r23705796 * r23705797;
double r23705799 = r23705796 + r23705797;
double r23705800 = r23705799 * r23705799;
double r23705801 = 1.0;
double r23705802 = r23705799 + r23705801;
double r23705803 = r23705800 * r23705802;
double r23705804 = r23705798 / r23705803;
return r23705804;
}
double f(double x, double y) {
double r23705805 = x;
double r23705806 = cbrt(r23705805);
double r23705807 = cbrt(r23705806);
double r23705808 = y;
double r23705809 = cbrt(r23705808);
double r23705810 = r23705807 * r23705809;
double r23705811 = r23705805 + r23705808;
double r23705812 = cbrt(r23705811);
double r23705813 = r23705810 / r23705812;
double r23705814 = r23705806 * r23705806;
double r23705815 = cbrt(r23705814);
double r23705816 = r23705815 / r23705812;
double r23705817 = r23705816 / r23705812;
double r23705818 = r23705813 * r23705817;
double r23705819 = r23705811 / r23705809;
double r23705820 = r23705806 / r23705819;
double r23705821 = r23705818 * r23705820;
double r23705822 = 1.0;
double r23705823 = r23705822 + r23705811;
double r23705824 = r23705823 / r23705809;
double r23705825 = r23705806 / r23705824;
double r23705826 = r23705821 * r23705825;
return r23705826;
}




Bits error versus x




Bits error versus y
Results
| Original | 19.8 |
|---|---|
| Target | 0.1 |
| Herbie | 0.8 |
Initial program 19.8
rmApplied associate-/l*11.6
rmApplied add-cube-cbrt12.0
Applied times-frac10.0
Applied add-cube-cbrt10.1
Applied times-frac8.3
Simplified0.9
rmApplied *-un-lft-identity0.9
Applied cbrt-prod0.9
Applied add-cube-cbrt0.8
Applied times-frac0.8
Applied add-cube-cbrt0.8
Applied cbrt-prod0.8
Applied times-frac0.8
Simplified0.8
Simplified0.8
Final simplification0.8
herbie shell --seed 2019165
(FPCore (x y)
:name "Numeric.SpecFunctions:incompleteBetaApprox from math-functions-0.1.5.2, A"
:herbie-target
(/ (/ (/ x (+ (+ y 1) x)) (+ y x)) (/ 1 (/ y (+ y x))))
(/ (* x y) (* (* (+ x y) (+ x y)) (+ (+ x y) 1.0))))