\frac{x + y}{1 - \frac{y}{z}}\frac{y + x}{1 - \frac{y}{z}}double f(double x, double y, double z) {
double r433023 = x;
double r433024 = y;
double r433025 = r433023 + r433024;
double r433026 = 1.0;
double r433027 = z;
double r433028 = r433024 / r433027;
double r433029 = r433026 - r433028;
double r433030 = r433025 / r433029;
return r433030;
}
double f(double x, double y, double z) {
double r433031 = y;
double r433032 = x;
double r433033 = r433031 + r433032;
double r433034 = 1.0;
double r433035 = z;
double r433036 = r433031 / r433035;
double r433037 = r433034 - r433036;
double r433038 = r433033 / r433037;
return r433038;
}




Bits error versus x




Bits error versus y




Bits error versus z
Results
| Original | 7.7 |
|---|---|
| Target | 4.3 |
| Herbie | 7.7 |
Initial program 7.7
rmApplied div-inv7.8
rmApplied pow17.8
Applied pow17.8
Applied pow-prod-down7.8
Simplified7.7
Final simplification7.7
herbie shell --seed 2019199
(FPCore (x y z)
:name "Graphics.Rendering.Chart.Backend.Diagrams:calcFontMetrics from Chart-diagrams-1.5.1, A"
:herbie-target
(if (< y -3.7429310762689856e+171) (* (/ (+ y x) (- y)) z) (if (< y 3.5534662456086734e+168) (/ (+ x y) (- 1.0 (/ y z))) (* (/ (+ y x) (- y)) z)))
(/ (+ x y) (- 1.0 (/ y z))))