\frac{\left(1 - x\right) \cdot \left(3 - x\right)}{y \cdot 3}\frac{1 - x}{y} \cdot \left(1 - \frac{x}{3}\right)double f(double x, double y) {
double r621985 = 1.0;
double r621986 = x;
double r621987 = r621985 - r621986;
double r621988 = 3.0;
double r621989 = r621988 - r621986;
double r621990 = r621987 * r621989;
double r621991 = y;
double r621992 = r621991 * r621988;
double r621993 = r621990 / r621992;
return r621993;
}
double f(double x, double y) {
double r621994 = 1.0;
double r621995 = x;
double r621996 = r621994 - r621995;
double r621997 = y;
double r621998 = r621996 / r621997;
double r621999 = 1.0;
double r622000 = 3.0;
double r622001 = r621995 / r622000;
double r622002 = r621999 - r622001;
double r622003 = r621998 * r622002;
return r622003;
}




Bits error versus x




Bits error versus y
Results
| Original | 5.6 |
|---|---|
| Target | 0.1 |
| Herbie | 0.1 |
Initial program 5.6
rmApplied times-frac0.1
rmApplied div-sub0.1
Simplified0.1
Final simplification0.1
herbie shell --seed 2020001 +o rules:numerics
(FPCore (x y)
:name "Diagrams.TwoD.Arc:bezierFromSweepQ1 from diagrams-lib-1.3.0.3"
:precision binary64
:herbie-target
(* (/ (- 1 x) y) (/ (- 3 x) 3))
(/ (* (- 1 x) (- 3 x)) (* y 3)))