\frac{\left(x \cdot 2\right) \cdot y}{x - y}\left(\left(x \cdot 2\right) \cdot \frac{\left(\sqrt[3]{\sqrt[3]{y} \cdot \sqrt[3]{y}} \cdot \sqrt[3]{\sqrt[3]{y}}\right) \cdot \sqrt[3]{y}}{\sqrt[3]{x - y} \cdot \sqrt[3]{x - y}}\right) \cdot \frac{\sqrt[3]{y}}{\sqrt[3]{x - y}}double f(double x, double y) {
double r488285 = x;
double r488286 = 2.0;
double r488287 = r488285 * r488286;
double r488288 = y;
double r488289 = r488287 * r488288;
double r488290 = r488285 - r488288;
double r488291 = r488289 / r488290;
return r488291;
}
double f(double x, double y) {
double r488292 = x;
double r488293 = 2.0;
double r488294 = r488292 * r488293;
double r488295 = y;
double r488296 = cbrt(r488295);
double r488297 = r488296 * r488296;
double r488298 = cbrt(r488297);
double r488299 = cbrt(r488296);
double r488300 = r488298 * r488299;
double r488301 = r488300 * r488296;
double r488302 = r488292 - r488295;
double r488303 = cbrt(r488302);
double r488304 = r488303 * r488303;
double r488305 = r488301 / r488304;
double r488306 = r488294 * r488305;
double r488307 = r488296 / r488303;
double r488308 = r488306 * r488307;
return r488308;
}




Bits error versus x




Bits error versus y
Results
| Original | 15.3 |
|---|---|
| Target | 0.3 |
| Herbie | 2.8 |
Initial program 15.3
rmApplied *-un-lft-identity15.3
Applied times-frac7.4
Simplified7.4
rmApplied add-cube-cbrt8.6
Applied add-cube-cbrt8.0
Applied times-frac8.0
Applied associate-*r*2.4
rmApplied add-cube-cbrt2.6
Applied cbrt-prod2.8
Final simplification2.8
herbie shell --seed 2020033 +o rules:numerics
(FPCore (x y)
:name "Linear.Projection:perspective from linear-1.19.1.3, B"
:precision binary64
:herbie-target
(if (< x -1.7210442634149447e+81) (* (/ (* 2 x) (- x y)) y) (if (< x 83645045635564432) (/ (* x 2) (/ (- x y) y)) (* (/ (* 2 x) (- x y)) y)))
(/ (* (* x 2) y) (- x y)))